资源描述
5.6 控制系统时域响应MATLAB仿真实训
5.6.1实训目标
1. 学会利用MATLAB绘制系统单位阶跃响应曲线,掌握读取系统动态性能指标方法;
2. 学会利用MATLAB绘制系统单位脉冲响应曲线方法;
3. 掌握利用MATLAB绘制系统零输入响应曲线方法;
4. 掌握利用MATLAB绘制系统通常输入响应曲线方法;
5. 学会经过仿真曲线读取相关信息,并依据相关信息进行系统时域分析。
5.6.2实训内容
1.编写程序求取下列各系统单位阶跃响应,完成表5-5并统计相关曲线。
解:>> n1=16;
>> d1=[1,3.2,16];
>> sys1=tf(n1,d1);
>> step(sys1)
>> n2=16;
>> d2=[1,2.4,16];
>> sys2=tf(n2,d2);
>> step(sys2)
>> n3=16;
>> d3=[1,1.6,16];
>> sys3=tf(n3,d3);
>> step(sys3)
>> n4=16;
>> d4=[1,1,16];
>> sys4=tf(n4,d4);
>> step(sys4)
表5-5
序号
()
计算值
试验
计算值
试验
计算值
试验值
1
0.4
4
1.2538
1.25
0.8569
0.863
2.1875
2.1
2
0.3
4
1.3723
1.37
0.8233
0.828
2.9167
2.81
3
0.2
4
1.5266
1.53
0.8016
0.8
4.3750
4.9
4
0.125
4
1.6731
1.67
0.7916
0.803
7.0000
7.33
>> z1=0.4;
w=4;
cmax1=1+exp(-z1*pi/sqrt(1-z1^2));
tp1=pi/(w*sqrt(1-z1^2));
ts1=3.5/(z1*w);
[cmax1,tp1,ts1]
ans =
1.2538 0.8569 2.1875
>> z2=0.3;
w=4;
cmax2=1+exp(-z2*pi/sqrt(1-z2^2));
tp2=pi/(w*sqrt(1-z2^2));
ts2=3.5/(z2*w);
[cmax2,tp2,ts2]
ans =
1.3723 0.8233 2.9167
>> z3=0.2;
w=4;
cmax3=1+exp(-z3*pi/sqrt(1-z3^2));
tp3=pi/(w*sqrt(1-z3^2));
ts3=3.5/(z3*w);
[cmax3,tp3,ts3]
ans =
1.5266 0.8016 4.3750
>> z4=0.125;
w=4;
cmax4=1+exp(-z4*pi/sqrt(1-z4^2));
tp4=pi/(w*sqrt(1-z4^2));
ts4=3.5/(z4*w);
[cmax4,tp4,ts4]
ans =
1.6731 0.7916 7.0000
说明:对于二阶欠阻尼系统(),若系统闭环传输函数为
则系统单位阶跃响应输出最大值
峰值时间
调整时间估算值
(以5%为误差带)
(以2%为误差带)
2.已知二阶系统闭环传输函数以下,编程求取系统单位阶跃响应并完成表5-6,统计相关曲线。
(1)
(2)
(3)
(4)
>> n1=8;
>> d1=[1,2,8];
>> sys1=tf(n1,d1);
>> impulse(sys1)
>> n2=10;
>> d2=[1,2,10];
>> sys2=tf(n2,d2);
>> impulse(sys2)
>> n3=12;
>> d3=[1,2,12];
>> sys3=tf(n3,d3);
>> impulse(sys3)
>> n4=16;
>> d4=[1,2,16];
>> sys4=tf(n4,d4);
>> impulse(sys4)
表5-6
序号
试验
试验
1
0.354
2.828
1.79
0.442
2
0.316
3.162
2.08
0.442
3
0.289
3.464
2.36
0.387
4
0.25
4
2.84
0.351
3.已知某单位负反馈系统开环传输函数为
若系统输入信号分别为
(1),
(2),
(3),
(4),
编写程序分别求取系统在给定输入信号下响应,统计对应曲线。
>> n=5;
>> d=conv([1,1,0],[0.1,1]);
>> [nc,dc]=cloop(n,d)
>>sysc=tf(nc,dc);
>> t=0:0.01:20;
>> u1=t;
>> u2=t.*exp(-0.5*t);
>> u3=sin(2*t).*exp(-0.5*t);
>> u4=cos(2*t).*exp(-3*t);
>> subplot(221);lsim(sysc,u1,t);subplot(222);lsim(sysc,u2,t);subplot(223);lsim(sysc,u3,t);subplot(224);lsim(sysc,u4,t);
4.编写程序绘制以下系统单位阶跃响应曲线和单位脉冲响应曲线。
(1)
>> a1=[-1,0;0,-4];
>> b1=[1;1];
>> c1=[0,3.5];
>> d1=6;
>> sys1=ss(a1,b1,c1,d1);
>> subplot(1,2,1);step(sys1);subplot(1,2,2);impulse(sys1);
(2)
>> a2=[2,4,3,8;0,3,1,5;2,1,4,6;3,5,-5,9];
>> b2=[1,2;2,1;4,3;3,7];
>> c2=[1,0,3,2;3,1,5,0];
>> d2=0;
>> sys2=ss(a2,b2,c2,d2);
>> step(sys2)
>> impulse(sys2)
(3)
>> sysa=zpk([-2],[-5;-4],[5])
Zero/pole/gain:
5 (s+2)
-----------
(s+5) (s+4)
>> sysb=tf([6.3,1.8],[1,3,0,5])
Transfer function:
6.3 s + 1.8
---------------
s^3 + 3 s^2 + 5
>> sys3=sysa*sysb
Zero/pole/gain:
31.5 (s+2) (s+0.2857)
-------------------------------------------------------
(s+5) (s+4) (s+3.426) (s^2 - 0.426s + 1.459)
>> step(sys3)
>> impulse(sys3)
5.有三个系统图5-17(a)、(b)、(c)所表示,编程分别绘制各系统单位阶跃响应和单位脉冲响应。
(a)>> sysa1=tf([5],[1,3,5]);
>> sysa2=zpk([-2],[0;-3;-5],[20]);
>> sysa3=tf([0.1,1],[2,1]);
>> sysa=sysa1*sysa2*sysa3
Zero/pole/gain:
5 (s+2) (s+10)
------------------------------------------------
s (s+3) (s+5) (s+0.5) (s^2 + 3s + 5)
>> step(sysa)
>> impulse(sysa)
(b)>> sysb1=tf([22,1],[1,5,23,15]);
>> sysb2=zpk([-6],[0;-3;-10],[0.2]);
>> sysb3=5*tf([0.6,1],[2,1])*tf([1.5,1],[3,7,1]);
>> sysb=sysb1-sysb2+sysb3
Zero/pole/gain:
0.75 (s+32.84) (s+10.05) (s+3.02) (s+2.269) (s+0.5509) (s-0.0083) (s^2 + 0.6734s + 0.3865)
--------------------------------------------------------------------------------------------------------------------
s (s+3) (s+2.18) (s+0.7582) (s+0.5) (s+10) (s+0.1529) (s^2 + 4.242s + 19.78)
>> step(sysb)
>> impulse(sysb)
(c)
>> G1=tf([10],[1,2,0]);
>> G2=cloop(tf([1],[0.5,1]),1)
Transfer function:
1
------------
0.5 s + 1
>> G2=feedback(tf([1],[0.5,1]),1,-1)
Transfer function:
1
------------
0.5 s + 2
>> G=G1*G2
Transfer function:
10
---------------------------
0.5 s^3 + 3 s^2 + 4 s
>> H=tf([3],[1,6,0])+tf([1],[0.1,1])
Transfer function:
s^2 + 6.3 s + 3
-----------------------------
0.1 s^3 + 1.6 s^2 + 6 s
>> sys=G/(1+G*H)
Transfer function:
0.5 s^6 + 11 s^5 + 82 s^4 + 244 s^3 + 240 s^2
------------------------------------------------------------------------------------------------------------------
0.025 s^9 + 0.7 s^8 + 7.6 s^7 + 41.2 s^6 + 123 s^5 + 231.1 s^4 + 340 s^3 + 342 s^2 + 120 s
>> step(sys)
>> impulse(sys)
(a)
(b)
(c)
图5-17
6.设三阶系统闭环传输函数为
试绘制其单位阶跃响应在内部分响应曲线。
>> n1=[1,5,6];
>> d1=[1,6,10,8];
>> sys1=tf(n1,d1);
>> sys=2*sys1
Transfer function:
2 s^2 + 10 s + 12
---------------------------
s^3 + 6 s^2 + 10 s + 8
>> step(sys,1.2:0.01:5.3)
7.某系统闭环传输函数为
依据主导极点概念,可知该高阶系统可近似成以下二阶系统
试在同一图上绘制原系统和近似系统单位阶跃响应曲线并观察有何区分。
>> sysyuan=tf([1.05],[0.125,1])*tf([0.4762,1],[0.5,1])*tf([1],[1,1,1])
Transfer function:
0.5 s + 1.05
-----------------------------------------------------------------
0.0625 s^4 + 0.6875 s^3 + 1.688 s^2 + 1.625 s + 1
>> sysjinsi=tf([1.05],[1,1,1])
Transfer function:
1.05
---------------
s^2 + s + 1
>> step(sysyuan)
>> hold on;
>> step(sysjinsi)
8.一个新型电动轮椅装有一个很实用速度控制系统,能使颈部以下有残疾人士自行驾驶这种电动轮椅。该系统在头盔上以间隔安装了四个速度传感器,用来指示前、后、左、右四个方向。头盔传感系统综合输出和头部运动幅度成正比,图5-18给出了该控制系统结构图,其中时间常数,,。要求
图5-18 轮椅控制系统
预期
速度
头部
动作
头盔上传感器
轮椅动力学模型
放大器
实际
速度
分别绘制,11.25,8,2时系统单位阶跃响应曲线并标注值。
解:系统开环传输函数为
当初,求取系统单位阶跃响应程序以下:
>> k=15;
>> no=k;
>> do=conv([0.5,1],conv([1,1],[0.25,1]));
>> [nc,dc]=cloop(no,do); %求取单位负反馈系统闭环传输函数分子分母多项式系数向量
>> sys=tf(nc,dc)
Transfer function:
15
-------------------------------------------
0.125 s^3 + 0.875 s^2 + 1.75 s + 16
>> step(sys)
>> k=11.25;
>> no=k;
>> do=conv([0.5,1],conv([1,1],[0.25,1]));
>> [nc,dc]=cloop(no,do);
>> sys=tf(nc,dc)
Transfer function:
11.25
-------------------------------------------------
0.125 s^3 + 0.875 s^2 + 1.75 s + 12.25
>> step(sys)
>> k=8;
>> no=k;
>> do=conv([0.5,1],conv([1,1],[0.25,1]));
>> [nc,dc]=cloop(no,do);
>> sys=tf(nc,dc)
Transfer function:
8
------------------------------------------
0.125 s^3 + 0.875 s^2 + 1.75 s + 9
>> step(sys)
>> k=2;
>> no=k;
>> do=conv([0.5,1],conv([1,1],[0.25,1]));
>> [nc,dc]=cloop(no,do);
>> sys=tf(nc,dc)
Transfer function:
2
-----------------------------------------
0.125 s^3 + 0.875 s^2 + 1.75 s + 3
>> step(sys)
展开阅读全文