《MATLAB基础与控制系统CAD》仿真作业
学生学号: 学生姓名:
一、 求如下非线性二阶系统的时间响应(20分)
dx1/dt??x1e1?t?0.8x2dx2/dt?x1?x32
其中x1(0)?0,x2(0)?2,要求绘出t?[0,3]的系统状态响应曲线。 解:源程序:
f=@(t,x)[-x(1)*exp(1-t)+x(2)*0.8;x(1)-x(2)^3]; [t,x]=ode45(f,[0,3],[0,2]); subplot(121)
plot(x(:,1),x(:,2),'-') xlabel('x1') ylabel('x2') title('向量平面图') grid on subplot(122) plot(t,x) xlabel('t') ylabel('x') legend('x1','x2') title('状态响应曲线')
grid on 运行结果为:
二、 已知系统的开环传递函数如下 (20分)
10G(s)?2
s?5s?25(1) 把G(s)转换成零极点形式的传递函数,判断开环系统稳定性。 (2) 判别系统在单位负反馈下的稳定性,并求出闭环系统在0~10
秒内的脉冲响应和单位阶跃响应,分别绘出响应曲线。
解:(1) >> num=10; >> den=[1 5 25];
>> [Z,P,K]=tf2zp(num,den) Z =
Empty matrix: 0-by-1 P =
-2.5000 + 4.3301i -2.5000 - 4.3301i K = 10
即转换成的零极点形式的传递函数为:??=
10
s+2.5000+4.3301i (s+2.5000?4.3301i)
可通过判断系统传递函数的极点是否在虚轴左半平面来判断系统的稳定性。稳定性判据:传递函数的极点在虚轴左半平面时系统稳定。
>> p=[1 5 25]; >> r=roots(p); >> r r =
-2.5000 + 4.3301i -2.5000 - 4.3301i
可以看出,传递函数的极点均在虚轴左半平面,因此该开环系统稳定。 (2)首先求闭环反馈系统的传递函数,源程序如下: >>num=10; >> den=[1 5 25];
>> [numc,denc]=cloop(num,den) numc =
0 0 10 denc =
1 5 35
则系统的闭环传递函数为:G1 S =>>p=[1 5 35]; >>r=roots(p) r =
-2.5000 + 5.3619i -2.5000 - 5.3619i
根据稳定性判据,传递函数的极点均在虚轴左半平面,因此该闭环
10 s^2+5s+35
。
系统稳定。 >>numc=[10]; >>denc=[1 5 35]; >>t=[0:0.1:10];
>>y1=impulse(numc,denc,t)
>>y2=step(numc,denc,t);plot(t,y1,'b-',t,y2,'r:');grid;xlabel('Time[sec]t');ylabel('y');title('脉冲响应和单位阶跃相应曲线');legend('脉冲响应曲线','单位阶跃响应曲线') 绘制出的响应曲线如图所示:
三、 某单位负反馈系统如下图所示,(20分)
(1) 当比例控制器增益K=1时,在Simulink中搭建系统,当输入
为阶跃函数时,用示波器观察系统的输出,绘出输出曲线。 (2) 把(1)中的对象输出和时钟输出输入Workspace中,通过在命
令窗口中执行M文件求出系统在阶跃输入下的超调量(?%)和峰值时间(tp),写出源程序。
(3) 调节控制器增益,使超调量?%?32%且稳态误差ess?0.2,给
出此时K值的范围。
解:(1)在Simulink中搭建系统,构建的模型如图所示:
点击示波器,观察输出的波形如图所示: