1 阶跃响应
1.1 标准二阶系统的表达回顾
对于一个二阶系统:
G ( s ) = ω n 2 s 2 + 2 ζ ω n s + ω n 2 G(s)={\frac{\omega_n^2}{s^2+2\zeta \omega_n s+\omega_n^2}} G(s)=s2+2ζωns+ωn2ωn2
我们成为标准二阶系统。给定 ω n \omega_n ωn 和 ζ \zeta ζ 后,命令:
printsys(num, den)
% printsys(num, den, 's')
会将 n u m / d e n num/den num/den 显示成 s s s 的多项式
举例,生成 ω n = 5 r a d / s \omega_n=5rad/s ωn=5rad/s 和 ζ = 0.4 \zeta=0.4 ζ=0.4 的情况
wn = 5;
damping_ratio = 0.4;
[num0, den] = ord2(wn, damping_ratio);
num = 5^2*num0;
printsys(num, den, 's');
sys = tf(num, den);
1.2 使用 step()
命令来绘制阶跃响应曲线
然后我们用下面命令求取响应曲线:
step(sys);
则输出图片如下:
进一步细化:
t = 0: delta_t : T
step(sys,t); % 希望matlab每次隔 t 秒计算一次响应值,并且画出 0 ≤ t ≤ T 的响应曲线(其中 T 是 delta_t 的整数倍)
% step(num, den, t);
当其有左端参数的时候,则不会显示画出的图像,但会产生响应的数据:
y = step(sys, t);
% y = step(num, den, t);
[y, t] = step(sys, t);
% [y, t] = step(num, den, t);
当其输入为状态空间方程的时候(已知状态矩阵A,控制矩阵B,输出矩阵C和直接传输矩阵D),则输入如下:
step(A, B, C, D); %当step命令中没有明确包含t的时候,时间向量会自动确定
% sys = ss(A, B, C, D);
% step(sys)
同理具有左端参数的时候,屏幕不会显示图形:
[y,x,t] = step(num,den,t)
[y,x,t] = step(A,B,C,D,iu)
[y,x,t] = step(A,B,C,D,iu,t)
矩阵y和x分别包含在计算时间点t求得的输出响应和状态响应
标量 i u iu iu 是系统输人的下标,指明哪个输人用来计算响应; t t t 是用户规定的时间
1.3 想同时绘制多个系统的阶跃响应曲线
可以仿照 plot()
函数
step(G1, '-', G2, '-.b', G3, ':r'); % 使用实现绘制G1的响应,使用蓝色点画线绘制G2的响应,用红色点线绘制出系统G3的响应
1.4 参数分析
在 MATLAB 绘制出来的图中,直接鼠标左键长按点击曲线就可以出现点与其的信息:
在图中右键,弹出系统响应快捷菜单,点击 Characteristic
则可以得到分析系统的指标:
- 稳态值 y ( ∞ ) y(∞) y(∞) :对于传递函数来说,系统的稳态值即为分子、分母常数项的比值。如果已知系统的数学模型 G G G 则系统的阶跃响应稳态值可以由 d c g a i n ( G ) dcgain(G) dcgain(G) 直接求出