控制系统CAD作业

上传人:jiups****uk12 文档编号:40097072 上传时间:2018-05-23 格式:DOC 页数:6 大小:140.50KB
返回 下载 相关 举报
控制系统CAD作业_第1页
第1页 / 共6页
控制系统CAD作业_第2页
第2页 / 共6页
控制系统CAD作业_第3页
第3页 / 共6页
控制系统CAD作业_第4页
第4页 / 共6页
控制系统CAD作业_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《控制系统CAD作业》由会员分享,可在线阅读,更多相关《控制系统CAD作业(6页珍藏版)》请在金锄头文库上搜索。

1、MATLAB 基础与控制系统基础与控制系统 CAD仿真作业仿真作业学生学号: 学生姓名:一、 求如下非线性二阶系统的时间响应(20 分)3 21221 11 /8 . 0/xxdtdxxexdtdxt其中,要求绘出的系统状态响应曲线。2)0(, 0)0(21xx 3, 0t解:在命令行中输入:t,y=ode45(final_01,0,3,0,2);plot(t,y)得到如下结果:注:曲线中的坐标说明,网格等都是用编辑器而非命令行添加的。其中,final_01(t,y)是自己编写的M文件,代码如下:function dy=final_01(t,y)dy=-y(1)*exp(1-t)+0.8*y(

2、2);y(1)-y(2)3; 二、 已知系统的开环传递函数如下 (20 分)210( )525G sss(1) 把 G(s)转换成零极点形式的传递函数,判断开环系统稳定性。(2) 判别系统在单位负反馈下的稳定性,并求出闭环系统在 010 秒内的脉冲响应和单位阶跃响应,分别绘出响应曲线。解:(1)在命令行中输入:p=roots(1 5 25)得极点为 p=-2.5000 + 4.3301i-2.5000 - 4.3301i所以零极点形式的传递函数为:10( )(2.54.3301 )(2.54.3301 )G ssi si因为极点都在左半平面,所以系统稳定。(2)在命令行中输入:G=tf(10,

3、1 5 25);H=tf(1,1);T=feedback(G,H)得到闭环传递函数为:10T= -s2 + 5 s + 35由 roots(1 5 35)得其极点为:p= -2.5000 + 5.3619i-2.5000 - 5.3619i因为极点均在左半平面,所以系统稳定。(3)在命令行中输入:G=tf(10,1 5 25);H=tf(1,1);T=feedback(G,H);impulse_and_step(T,10)得到如下结果:其中 impulse_and_step(T,t)是自己编写的 M 文件,代码如下:function impulse_and_step(T,t)impulse(T

4、,t);hold on;step(T,t);grid on;title(Impulse and Step Response);三、 某单位负反馈系统如下图所示, (20 分)(1) 当比例控制器增益 K1 时,在 Simulink 中搭建系统,当输入为阶跃函 数时,用示波器观察系统的输出,绘出输出曲线。 (2) 把(1)中的对象输出和时钟输出输入 Workspace 中,通过在命令窗口中执行 M 文件求出系统在阶跃输入下的超调量()和峰值时间(),写%pt出源程序。(3) 调节控制器增益,使超调量且稳态误差,给出此时%32%2 . 0sseK 值的范围。解:(1)在 simulink 中搭建的

5、系统如下图:阶跃响应为:(2)在 simulink 中搭建的框图如下:在命令行中输入:G=tf(10,1 5 10);H=tf(1,1);T=feedback(G,H);dynamicperformance(T)得到如下结果:Stablevalue=0.500000,Peaktime=0.847731, /峰值时间;Overshoot=12.026425, /超调量;Delaytime=0.339092,Risetime=0.508638,Setllingtime=1.271596.同时自动绘出阶跃响应曲线如下:其中 dynamicperformance(T)是我自己编写的求解动态性能指标的通

6、用函数,详细代 码如下:function dynamicperformance(T)y,t=step(T); plot(t,y)grid on;Stablevalue=dcgain(T);Ymax,k=max(y);if(YmaxStablevalue)Peaktime=t(k);Overshoot=100*(Ymax-Stablevalue)/Stablevalue;else %空语句,无操作;endi=1;while(y(i)Stablevalue) sprintf(Stablevalue=%f,nPeaktime=%f,nOvershoot=%f,nDelaytime=%f,nRiset

7、ime=%f,nSetllingtime=%f.n,Stablevalue,Peaktime,Overshoot,Delaytime,Risetime,Setllingtime) %M文件中这句应该写在同一行。下同。elsesprintf(Stablevalue=%f,nPeaktime=NULL,nOvershoot=NULL,nDelaytime=%f,nRisetime=%f,nSetllingtime=%f.n,Stablevalue,Delaytime,Risetime,Setllingtime)end(3)通过符号运算求出稳态误差,在命令行中输入:GetEss();得到如下结果:E

8、ss=10/(K*10+10)=1/(K+1)根据题目要求,得到;2 . 0sse4K 又在命令行中输入:Getlarger_k(4)得到结果为:4.4084所以满足条件的K的取值范围为。44.4084K上述用到了两个我自己编写的函数,GetEss(),用来进行符号运算,求解稳态误差的表达式; Getlarger_k(lower_k),用穷举法来求解K的上限,其参数为K的下限。详细代码如下:function GetEss()syms R G T Y E sG=K*10/(s2+5*s+10);T=G/(1+G);Y=T*R;E=R-Y;Ess=limit(s*E,s,0)function larger_k=Getlarger_k(lower_k)Overshoot=0; while(Overshoot32)G=tf(10*lower_k,1 5 10);H=tf(1,1);T=feedback(G,H);y,t=step(T); Stablevalue=dcgain(T);Ymax,k=max(y);Overshoot=100*(Ymax-Stablevalue)/Stablevalue;lower_k=lower_k+0.0001;endlarger_k=lower_k;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号