用matlab绘制不同阻尼比取值下的单位阶跃、脉冲、斜坡响应曲线怎么绘制
时间: 2023-11-12 07:07:42 浏览: 556
绘制阶跃响应曲线的matlab程序(重新更新版)
在MATLAB中可以使用`step`, `impulse`, `lsim`函数来绘制阻尼比不同取值下的单位阶跃、脉冲、斜坡响应曲线。具体步骤如下:
1. 定义系统传递函数:
假设系统的传递函数为:
$$
G(s) = \frac{\omega_n^2}{s^2+2\zeta \omega_n s+\omega_n^2}
$$
其中,$\omega_n$为自然频率,$\zeta$为阻尼比。
2. 定义阻尼比不同取值:
我们可以定义一个阻尼比的向量,例如:
```
zeta = [0.1, 0.3, 0.5, 0.7, 0.9];
```
3. 绘制单位阶跃响应曲线:
使用`step`函数绘制单位阶跃响应曲线,代码如下:
```
for i=1:length(zeta)
sys = tf([1], [1 2*zeta(i) 1]);
step(sys);
hold on;
end
legend('zeta=0.1', 'zeta=0.3', 'zeta=0.5', 'zeta=0.7', 'zeta=0.9');
```
其中,`tf([1], [1 2*zeta(i) 1])`表示创建一个传递函数,分子为1,分母为$s^2+2\zeta \omega_n s+\omega_n^2$。
4. 绘制脉冲响应曲线:
使用`impulse`函数绘制脉冲响应曲线,代码如下:
```
for i=1:length(zeta)
sys = tf([1], [1 2*zeta(i) 1]);
impulse(sys);
hold on;
end
legend('zeta=0.1', 'zeta=0.3', 'zeta=0.5', 'zeta=0.7', 'zeta=0.9');
```
5. 绘制斜坡响应曲线:
使用`lsim`函数绘制斜坡响应曲线,代码如下:
```
t = linspace(0, 10, 1000);
u = t;
for i=1:length(zeta)
sys = tf([1], [1 2*zeta(i) 1]);
y = lsim(sys, u, t);
plot(t, y);
hold on;
end
legend('zeta=0.1', 'zeta=0.3', 'zeta=0.5', 'zeta=0.7', 'zeta=0.9');
```
其中,`lsim(sys, u, t)`表示计算系统对输入信号$u$在时间$t$下的响应。
绘制完成后,可以使用`legend`函数添加图例。
阅读全文