MATLAB 系统仿真与建模(四)—— 瞬态响应分析-阶跃响应

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) 直接求出

猜你喜欢

转载自blog.csdn.net/weixin_43229030/article/details/110791883