(MATlab仿真部分习题答案
[4.1]控制系统结构如图4.1所示
利用MATLAB对以上单位负反馈控制系统建立传递函数;
将第一问中求得的传递函数模型转化为零极点增益形式和状态空间形式。
解:(1)num=[2 2];den=[1 2 1];[num1,den1]=cloop(num,den);sys=tf(num1,den1)
程序运行结果如下:
Transfer function:
2 s + 2
-------------
s^2 + 4 s + 3
(2)[z,p,k]=tf2zp(num1,den1);g_zpk=zpk(z,p,k);[A,B,C,D]=zp2ss(z,p,k);g_ss=ss(A,B,C,D)
程序运行结果如下:
z = -1 p = -3 -1 k = 2
a = x1 x2
x1 -4 -1.732
x2 1.732 0
b = u1
x1 1
x2 0
c = x1 x2
y1 2 1.155
d = u1
y1 0
[5.1]设单位负反馈控制系统的开环传递函数为G(S)=
(1)试绘制k=10、100时闭环系统的阶跃响应曲线,并计算稳态误差、上升时间、超调量和过渡过程时间;
(2)绘制k=1000时闭环系统的阶跃响应曲线,与k=10、100时 所得的结果相比较,分析增益系数与系统稳定性的关系;
解:(1)k=10时,
K=100时,
K=10时,利用MATLAB工作区输入程序:
num=[10];den=[1,7,17,0];[z,p,k]=tf2zp( num,den);运行得z,p,k的值
p= -3.5+2.1794*i -3.5-2.1794*i k=10
G=zpk([ ],[-3.5+2.1794*i,-3.5-2.1794*i],10);c=dcgain(G);[y,t]=step(G);plot(t,y)
[Y,K]=max(y);timetopeak=t(k);percentovershoot=100*(y-c)/c
n=1;while y(n)0.98*c&y(i)<1.02*c) i=i-1;
End setllingtime=t(i) 运行程序结果为:稳定值c=0.5882,响应时间setllingtime=1.0096s,上升时间risetime=1.1989s,最大峰值时间 timetopeak=1.4356,超调量percentovershoot=0.555%
同理得k=100时,稳定值c=5.882,响应时间setllingtime=1.0096s, 上升时间risetime=1.1989s,最大峰值时间 timetopeak=1.4356,超调量percentovershoot=0.555%
(3)k=1000时,由其响应曲线可知,增益系数越大,其稳定性越差。
K(s+1)
------------------
[6.1]已知单位负反馈控制系统的前向传递函数分别为G(S)= s^2(s+2)(s+4) 、
K(s+1) k(s+8)
---------------------和 --------------------------- ,试利用MATLAB分别绘制各系统的根轨迹。
S(s-1)(s^2+4s+16) s^2(s+3)(s+5)(s+7)(s+15)
解:MATLAB程序代码如下:
num1=[1,1];den1=conv([1 0 0],conv([1 2],[1 4]));
num2=[1 1];den2=conv([1 0],conv([1 -1],[1 4 16]));
num3=[1 8];den3=conv(