实验二 基于MATLAB的线性系统时域分析
[实验目的]
1.研究线性系统在典型输入信号作用下的暂态响应; 2.熟悉线性系统的暂态性能指标;
3.研究二阶系统重要参数阻尼比ξ对系统动态性能的影响; 4.熟悉在MATLAB下判断系统稳定性的方法; 5.熟悉在MATLAB下求取稳态误差的方法。 [实验指导]
MATLAB中有两类用于求解系统时域响应的方法。
其一是利用 MATLAB 中的控制系统工具箱(Control System Toolbox)提供的函数(命令);
其二是Simulink仿真,它主要用于对复杂系统进行建模和仿真。 一、用MATLAB函数(命令)进行暂态响应分析 1 求取线性连续系统的单位阶跃响应的函数——step
基本格式为: step(sys) step(num,den) step(A,B,C,D)
step(sys,t) step(sys1,sys2,…,t) y=step(sys,t) [y,t]=step(sys) [y,t,x]=step(sys)
其中模型对象的类型如下:
sys = tf(num,den) 多项式模型 sys = zpk(z,p,k) 零点极点模型 sys = ss(a,b,c,d) 状态空间模型 参数无t,表示时间向量t的范围自动设定。
参数有t,表示给定时间向量t,应该有初值,时间增量,末值,如t=0:0.01:2。
源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删====
前5种函数可以绘出阶跃响应曲线;后3种函数不绘阶跃响应曲线,而是返回响应变量y,时间向量t,以及状态变量x。
2 求取线性连续系统的单位脉冲响应的函数——impulse
基本格式为: impulse(sys) impulse(num,den) impulse (sys,tf) impulse (sys,t) impulse (sys1,sys2,…,t) y=impulse(sys,t) [y,t]=impulse(sys) [y,t,x]=impulse (sys)
3 求取线性连续系统的单位斜坡响应
MATLAB没有直接求系统斜坡响应的功能函数。在求取控制系统的斜坡响应时,通常用阶跃响应函数step()求取传递函数为 G (s)/s的系统的阶跃响应,则其结果就是原系统G (s)的斜坡响应。原因是,单位阶跃信号的拉氏变换为1/s ,而单位斜坡信号的拉氏变换为1/s2 。
4.求取线性连续系统对任意输入的响应的函数——lsim
其格式为
y=lsim(sys,u,t)
其中,t为仿真时间,u为控制系统的任意输入信号。 5.暂态响应性能指标
在阶跃响应曲线窗口,使用右键弹出浮动菜单,选择其中的Characteristics子菜单,有4个子项:
①Peak Response 峰值响应,点击将出现标峰值记点,单击此标记点可获得峰值幅值,超调量和峰值时间。
②Settling Time 调节时间,点击将出现调节时间标记点,单击此标记点即可获得调节时间。
③Rise Time 上升时间,点击将出现上升时间标记点,单击此标记点即可获得上升时间。
④Steady State 稳定状态,若系统稳定,点击将在稳态值处出现标记点,单击此
源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删====
标记点即可获得稳态值;若系统不稳定,标记点不会出现。
对于不同的系统响应类型,Characteristics菜单的内容并不相同。虽然不同响应曲线的特性参数不相同,但是均可以使用类似的方法从系统响应曲线中获得相应的信息。
Step Response1.5 System: sys Settling Time: 3.4 1.5Step ResponseAmplitude0.5Amplitude110.5 System: sys Peak amplitude: 1.11 Overshoot (%): 10.8 At time: 2.22 00123450024Time (sec)68Time (sec)
6、其它
①hold on 命令:可以允许在已经画曲线的图形窗口上再画新曲线;hold off命令取消该功能。
②figure(i)命令:打开第i个图形窗口,把曲线绘在该图形窗口。 ③grid on命令:使图上出现网格。
④subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,可在每个区域中分别画一个图。
⑤也可以通过主界面菜单file/new/figure打开1个新图形窗口,系统自动为其编号。 7.举例
例1:系统传递函数为G(s)20s33,求其阶跃响应、脉冲响应、斜坡响应、
s22s10①分3个图形窗口分别显示的程序:
>> n=[20,33];d=[1,2,10];sys=tf(n,d);step(sys);figure(2);impulse(sys); n1=[20,33];d1=[1,2,10,0];sys1=tf(n1,d1);figure(3);step(sys1) 运行结果:
源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删====
Step Response7 System: sys Peak amplitude: 6.68 Overshoot (%): 103 At time: 0.607 65Amplitude4 System: sys Rise Time: 0.142 System: sys Settling Time: 4.13 System: sys DC gain: 3.3 32100123Time (sec)456
Impulse Response20 System: sys Peak amplitude: 20 At time: 0 1510Amplitude5 System: sys Settling Time: 3.5 0-5-100123Time (sec)456
源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删====
Step Response353025Amplitude20151050012345Time (sec)678910
③在1个窗口中的3个子图形窗口显示的程序:
>> figure(1);n=[20,33];d=[1,2,10];sys=tf(n,d);subplot(2,2,1);impulse(sys); subplot(2,2,2);n1=[20,33];d1=[1,2,10,0];sys1=tf(n1,d1);step(sys1); subplot(2,2,3);step(sys) 运行结果:
Impulse Response204030AmplitudeStep ResponseAmplitude10201000-1002Time (sec)4605Time (sec)10Step Response86Amplitude42002Time (sec)46
例2:系统传递函数为G(s)应。
10,求输入分别是自定义的1(t)和4*1(t)时的响2s2s10源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删====
①2个输入和2个输出波形分别在4个子图形窗口显示的程序:
>> figure(7);n=[10];d=[1,2,10];sys=tf(n,d);subplot(2,2,1);u=1+0*t;t=0:0.01:10;plot(t,u); subplot(2,2,3);y=lsim(sys,u,t);plot(t,y) ;
>> u1=4+0*t;subplot(2,2,2);plot(t,u1);subplot(2,2,4);y1=lsim(sys,u1,t);plot(t,y1) 运行结果:
21.510.5054.543.53051005101.56140.520051000510
②2个输入和2个输出波形在1个图形窗口同时显示的程序:
>> n=[10];d=[1,2,10];sys=tf(n,d); t=0:0.01:10;u=1+0*t;sys2=tf([1],[1]) ; lsim(sys2,u,t);hold on;lsim(sys,u,t);u1=4+0*t;plot(t,u1);lsim(sys,u1,t)
源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删====
Linear Simulation Results654Amplitude3210012345Time (sec)678910
例3:系统传递函数为G(s)应。
20,求输入分别是自定义的1(t)+3*sin(t)时的响
s22s10程序;
>> n=[20];d=[1,2,10];sys=tf(n,d); t=0:0.001:15;u=1+sin(t);sys2=tf([1],[1]) ;figure(16); lsim(sys2,u,t);hold on;lsim(sys,u,t)
Linear Simulation Results105Amplitude0-505Time (sec)1015
源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删====
例4:系统传递函数为G(s)20,求系统的阶跃响应。
s32s22s10程序;
>> n=[20];d=[1,2,6,10];sys=tf(n,d); figure(24);step(sys)
Step Response32.52Amplitude1.510.5005101520Time (sec)25303540
二、用Simulink进行暂态响应分析
1.系统仿真方框图的建立
方框图的建立与实验一中所述相同,不同点是不用输入点与输出点标记,输入点安置信号发生器,比如阶跃输入信号;输出点安置示波器。需要如下操作:
打开Simulink→Sources子库,将step模块(阶跃输入信号)复制到(拽到)模型文件窗口,放到相应位置。(或其他输入信号模块)
打开Simulink→Sinks子库,将scope模块(示波器)复制到(拽到)模型文件窗口,放到相应位置。
输入信号模块和示波器模块都可以进行参数设置。 2.设置仿真控制参数
打开Simulation菜单,找到Parameters选项,可打开参数设置对话框。它包括仿真时间范围的选择、仿真算法的选择、仿真步长的指定及仿真精度(误差)的定义等。
3.运行
可选择 Simulation→ Start。点击示波器,在示波器窗口中可以看到响应仿真曲线。 举例;系统方框图和阶跃输入下示波器显示的响应曲线如下:
源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删==== s+242s +s+10StepTransfer FcnScope
三、在MATLAB下判断系统稳定性
首先求得闭环传递函数,再使用MATLAB函数(命令)roots(den)解出特征方程的根,即闭环极点,再根据极点位置,判断系统是否稳定。
举例:判断系统G(s)程序和结果:
>> d=[1 2 8 5 26]; roots(d) ans =
-1.4509 + 2.1633i -1.4509 - 2.1633i 0.4509 + 1.9049i 0.4509 - 1.9049i
分析判断:有2个根在s平面右半部分,系统不稳定。 或者:
>> n=[50]; d=[1 2 8 5 26];sys=tf(n,d)
Transfer function: 50
----------------------------------------
源-于-网-络-收-集
50 是否稳定。
s42s38s25s26====Word行业资料分享--可编辑版本--双击可删====
s^4 + 2 s^3 + 8 s^2 + 5 s + 26
>> roots(sys.den{1})
ans =
-1.4509 + 2.1633i -1.4509 - 2.1633i 0.4509 + 1.9049i 0.4509 - 1.9049i
四、在MATLAB下求取稳态误差
求取稳态误差终值的函数(命令)为dcgain( ) 调用格式为
dcg=dcgain(G ) 其中 G=s·R(S)·φe(S)
R(S): 输入信号的拉氏变换; φe(S):误差传递函数; 举例:系统前向通道传递函数为G(s)50,反馈通道传递函数为
2s38s25s8H(s)4/25,求输入为r(t)=1(t)时的稳态误差。
1解:e(s)1G(s)H(s)程序和结果:
12s38s25s83 25042s8s5s1613•22s8s5s825>> n=[50]; d=[ 2 8 5 8];sys=tf(n,d); n1=4;d1=25;sys1=tf(n1,d1); sys2=1+sys*sys1; sys3=tf(sys2.den,sys2.num); n4=[1,0];d4=[1];sys4=tf(n4,d4); n5=1;d5=[1 0];r=tf(n5,d5); dcg=dcgain(sys3*sys4*r) dcg = 0.5000
[实验内容]
1.研究一阶系统对阶跃输入、脉冲输入、斜坡输入、自定义输入的响应及性能指标。一阶系统系统具体参数自定。
2.研究二阶系统对阶跃输入、脉冲输入、斜坡输入、自定义输入的响应及性能指标。具体参数自定。哪一个参数变化及变化方案自定。
①典型二阶系统在阶跃输入下,阻尼比或自然振荡频率改变对某1项性能指标的影响。 ②非典型二阶系统与典型二阶系统在阶跃输入下的响应有什么不同。
源-于-网-络-收-集
====Word行业资料分享--可编辑版本--双击可删====
3.高于二阶的系统对阶跃输入、脉冲输入、斜坡输入、自定义输入的响应。具体参数自定。
4.自定一系统闭环传递函数,计算在r(t)=1(t)、t、0.5t2下的给定稳态误差。 5.自定一系统闭环传递函数,判断系统稳定性。 [实验报告要求]
1.写明实验目的和实验原理。实验原理中简要说明得到系统暂态响应的方法和采用的语句或函数,说明求取给定稳态误差的方法及采用的语句或函数,说明判断系统稳定性方法。
2.在实验过程和结果中,要列项目反映各自的实验内容,编写的程序,运行结果,按实验内容对结果的分析与判断。程序和运行结果(图)可以从屏幕上复制,打印报告或打印粘贴在报告上。不方便打印的同学,要求手动从屏幕上抄写和绘制。
3.简要写出实验心得和问题或建议。
源-于-网-络-收-集
因篇幅问题不能全部显示,请点此查看更多更全内容