一、 实验目的
1、掌握如何使用Matlab进行系统的稳定性分析; 2、掌握如何使用Matlab进行系统的时域分析。 二、 实验目标
(1)、能够掌握线性系统稳定性的MATLAB判定方法; (2)、掌握MATLAB动态性能分析; (3)、掌握二阶系统的时域分析方法。 三、 实验内容
(一) 线性系统稳定性的MATLAB判定方法
C(s)s37s224s24传递函数G(s),利用MATLAB命令判断系统的稳定性。 R(s)s410s335s250s241、基础知识:
系统的稳定性,根据系统传递函数(s)极点的实部来进行判断:稳定——全为负,临界稳定——有一个为0,不稳定——有一个为负。
在MATLAB命令中,roots、tf2zp()、pzmap()指令可以用于判断系统的稳定性。 (1)直接求特征多项式的根
A、roots()可以直接求出传递函数的特征方程p=0在复数范围内的解x,该函数的调用格式为:x=roots(p) ,返回值为特征方程的根(即传递函数的极点)。
系统的特征方程式s410s335s250s240, 直接在MATLAB的命令窗口中输入: >> p=[1,10,35,50,24]; >> x=roots(p)
按回车键,在MATLAB命令窗口中观察运算结果,如右图所示,特征根的实部全部为负数,系统稳定。
B、利用tf2zp()命令可以将传递函数的一般形式转换成传递函数的零点、极点及增益。 直接在MATLAB的命令窗口中输入: >> num=[1,7,24,24]; den=[1,10,35,50,24]; [z,x,k]=tf2zp(num,den); x
按回车键,在MATLAB命令窗口中观察运算结果,如右图所示,特征根的实部全部为负数,系统稳定。
(2)零极点分布图
pzmap()函数绘制连续系统的零、极点(系统特征方程的根)图,从而分析系统的稳定性,该函数调用格式为:
pzmap(num,den)
在MATLAB的命令窗口中输入: >> num=[1,7,24,24]; den=[1,10,35,50,24]; pzmap(num,den)
按回车键,在MATLAB图形窗口得出零极点分布图,如右图所示,特征根的实部全部为负数,系统稳定。(备注:pzmap()函数默认情况下,极点用“×”
来表示,零点用“o”来表示。)
任务:试分别用roots、tf2zp()、pzmap()指令判断下列系统的稳定性。
2s24s5(1) 某系统的传递函数为G(s)4;
s7s32s26s67s32s24s5(2) 某系统的传递函数为G(s)4;
6s7s314s26s5613s34s9(3) 某系统的传递函数为G(s)4。
5s16s2s7(二) 掌握MATLAB动态性能分析;
任务:将因子形式传递函数G(s)10,在MATLAB中表示成多项式传递函数的
s22s20形式。
1、 基础知识
时域分析函数:
单位阶跃响应函数step; 单位脉冲响应函数impulse; 任意输入下的响应函数lsim。
I、阶跃响应
使用的函数:step(num,den) 或 step(num,den,t)
该函数将绘制出系统在单位阶跃输入条件下的动态响应图。t为图像显示的时间长度,是用户指定的时间向量,无t时由系统根据输出曲线的形状自行设定。
设某系统的传递函数: G(s)10,试画出该系统的单位阶跃响应
s2s202在MATLAB的命令窗口中输入: >> num=[10]; >> den=[1 2 20]; >> step(num,den);
>>title('G(s)=10/(s^2+2s+20)的单位阶跃响应')
按回车键,在MATLAB图形窗口得出系统的单位阶跃响应曲线。 练习内容:试画出该系统0~4s范围内的单位阶跃响应曲线。
II、单位脉冲响应:
使用的函数:impulse(num,den) 或impulse(num,den,t)
该函数将绘制出系统在单位脉冲输入条件下的动态响应图,同时给出稳态值。t为图像显示的时间长度,是用户指定的时间向量,无t时由系统根据输出曲线的形状自行设定。
设某系统的传递函数: G(s)10,试画出该系统的单位阶跃响应
s22s20在MATLAB的命令窗口中输入: >> num=[10]; >> den=[1 2 20];
>> impulse(num,den);
>>title(‘G(s)=10/(s^2+2s+20)的单位脉冲响应')
按回车键,在MATLAB图形窗口得出系统的单位脉冲响应曲线。 练习内容:试画出该系统0~10s范围内的单位脉冲响应曲线。 III、斜坡响应
方法:s除G(s),再利用阶跃响应命令。 设某系统的传递函数: G(s)G(s)10 3ss2s220s10,试画出该系统的单位斜坡响应。
s22s20在MATLAB的命令窗口中输入: >> num=[0 0 0 10]; >> den=[1 2 20 0]; >> t=0:0.1:7;
>> step(num,den,t)
按回车键,在MATLAB图形窗口得出系统的单位脉冲响应曲线。
10的单位抛物线响应。 2s2s20练习内容:1、画出传递函数G(s)C(s)s2s2、试画出某系统0~10s范围内的单位脉冲响应曲线。 32R(s)s5ss10IV、任意输入下的响应
使用的函数;lsim(G,u,t),可对任意输入的连续系统进行仿真。
例 某系统的传递函数为G(s)5s100,输入为u=1+exp(-t).*cos(5*t) ,
s2s16s218s1843则当系统的初始条件为零时,请求出其时域响应。
在MATLAB的命令窗口中输入: >> num=[5 100];
>> den=[1 2 16 18 18]; >> G=tf(num, den); >> t=0:0.04:4;
>> u=1+exp(-t).*cos(5*t); >> Y=lsim(G,u,t); >> plot(t,Y,'o',t,u,'-') >> grid
>>title('G(s)=(5s+100)/(s^4+s^3+16^2+18s+18)的响应曲线') >> xlabel('t(秒)')
>> ylabel('输入和输出')
按回车键,在MATLAB图形窗口得出系统的输入和输出响应。
10在输入为u=1+exp(-t).*sin(5*t) ,时间为
s22s20练习内容:1、画出传递函数G(s)0~10s范围内的输出响应。
C(s)s2s2、 试画出某系统在输入为u=1+exp(-t).*sin(5*t) ,时间为R(s)s35s2s100~10s范围内的输出响应。
(三) 阶跃响应的性能指标
任务:传递函数G(s)10的单位阶跃响应的性能指标(上升时间、峰值时间、
s22s20超调量、调节时间)。
1、基础知识:
响应曲线显示后,用鼠标左键点击时域响应图线任意一点,此点显示为“■”,同时系统会自动跳出一个小方框,小方框显示了这一点的横坐标(时间)和纵坐标(幅值)。按住鼠标左键在曲线上移动,可以找到曲线幅值最大的一点――即曲线最大峰值,此时小方框中显示的时间就是此系统的峰值时间,根据观察到的稳态值和峰值可以计算出系统的超调量。系统的上升时间和稳态响应时间可以依此类推。
应注意它不适用于用plot()命令画出的图形。 在MATLAB的命令窗口中输入: >> num=[10]; >> den=[1 2 20]; >> step(num,den);
>>title('G(s)=10/(s^2+2s+20)的单位阶跃响应')
按回车键,在MATLAB图形窗口中得到系统的阶跃响应。
将鼠标在阶跃响应曲线上移动,可得出系统的阶跃响应动态性能:
(1)上升时间tr=0.413s ,(2) 峰值时间t p=0.714s,(3) 超调量σ%=48.6%,(4) 调节时间t s=3.77s(2%误差)
练习内容:1、某系统G(s)4.5在单位阶跃响应的动态指标。
s2s10
因篇幅问题不能全部显示,请点此查看更多更全内容