matlab结业作业_第1页
matlab结业作业_第2页
matlab结业作业_第3页
matlab结业作业_第4页
matlab结业作业_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Matlab/Simulink 与控制系统仿真结业作业一、必做题Matlab学习心得体会: 本学期我们新开了一门MATLAB/Simulink与控制系统仿真的课程,虽说是这个学期才开始学习,但是我们却对MATLAB这个软件的基本使用一点都不陌生。而本学期的专门学习,更让我获益匪浅。 第一部分是利用MATLAB函数来对控制系统进行分析。 例如要求取一个系统的阶跃响应时,我就可以调用MATLAB中的step函数 MATLAB在稳定性分析应用时,通过直接求根函数roots来判定系统的稳定性 在利用MATLAB分析系统的根轨迹时,使用rlocus函数来求取根轨迹图,使用pzmap函数求取系统的传递函

2、数零极点 计算给定一组根的根轨迹增益函数k,poles=rlocufind(sys);k,poles=rlocfind(sys,p) MATLAB在稳定性分析应用时,也常通过使用用于计算系统稳定裕度的margin函数来完成,它可以从频率响应数据中计算出幅值裕度、相角裕度以及对应的频率 对于使用MATLAB来对系统进行频域响应的分析,又往往提供了绘制函数nyguist和bode来绘制系统的奈奎斯特曲线图和伯德图 其他:grid%添加栅格 holdon%保持,继续在原图绘画 title%添加标题 legend(x,y)%添加文字标注 gyext(TEXT)%在任意可选位置添加文字信息 xlabel

3、(x,y);ylabel(x,y)%添加坐标轴 分割图形窗口subplot(1,2,1)%分割为一行两列,并即将绘制第一个 第二部分是利用MATLAB的Simulink模块来对控制系统进行建模仿真。Simulink是一个对动态系统(包括连续系统、离散系统和混合系统)进行建模、仿真和综合分析的集成软件包,是MATLAB的一个附加组件,其特点是模块化操作、易学易用,而且能够使用MATLAB提供的丰富的仿真资源。对于一个给定的控制系统结构图,需要通过Simulink模块来建立该系统的动态模型。下面我就阐述一下,我在实验过程中常使用的一些模块。Continuous(连续模块):Derivative对输

4、入信号微分Integrator对输入信号积分Transfer Fcn 分子分母以多项式表示的传递函数Discontinuous(非连续模块):Dead Zone设定死区范围Saturation 设置输入信号的正负限幅值模拟环节的饱和非线性特性Math Operations(数学运算模块库):Sum求和 Add可加减标量,向量和矩阵Gain增益(输入信号乘以常数)Ports & Subsystems(端口和子系统模块库):In1输入端口 Out1输出端口Sinks(接收器模块):To Workspace 将输出写入工作空间 Scope示波器Sources(输入源模块库):Ramp 产生一个常数增

5、加或减小的信号(斜坡函数信号) Step 产生幅值和起始时间可调的阶跃信号第三部分是MATLAB中常用的工具。根轨迹分析与设计工具rltool:rltool是图形化的交互式工具,可以打开工作空间的单输入单输出(SISO)系统模型,分析其根轨迹,并且允许用户在根轨迹图上直接放置零极点,完成对系统的校正设计。操作:(1)在MATLAB工作空间中建立好控制系统的数学模型sys;(2)在MATLAB命令窗口中输入“rltool(sys)”,得到控制系统sys的根轨迹设计GUI窗口,对系统进行分析。线性时不变系统分析的图形用户界面LTI Viewer: 在MATLAB的commandWindow中,建立

6、LTI对象,之后使用LTIViewer可以绘制LTI对象的单位阶跃响应曲线(Step)、单位脉冲响应曲线(Impulse)、波特图(Bode)、奈奎斯特图(Nyquist)以及零极点图(Pole/Zero)等。操作:(1)在MATLAB工作空间中建立好控制系统的数学模型;(2)在命令窗口中输入“LTI View”,调出LTI View窗口,对系统进行分析。总结:通过本学期Matlab/Simulink 与控制系统仿真这门课程的学习,我真正体会到应用MATLAB软件对控制系统分析的方便性、有效性;虽然我可能仅仅是简单地入了个门,但即使是这样我也感觉已经收获了不少东西。当然仅凭短时间的学习不可能掌

7、握得很熟,所以在今后的时间里,我也会多查阅资料、多去实践,争取掌握更多更全的操作技能。二、选做题1、 一单位负反馈控制系统的开环传递函数为( 1)绘制k=10、100时闭环系统的阶跃响应曲线,并计算稳态误差、上升时间、超调量和调节时间;( 2)绘制k=1000时闭环系统的阶跃响应曲线,并与k=10、100所得结果相比较,分析增益系数与系统稳定性的关系;( 3)利用roots命令确定使系统稳定时k的取值范围。程序:K=10时:clc;clear all;num=10;den=1 7 17 10;sys=tf(num,den);roots(den)pzmap(sys);y,t,x=step(num

8、,den);plot(x,y);grid on;%计算系统的超调量y_stable=1;max_response=max(y);sigma=(max_response-y_stable)/y_stable%计算系统上升时间for i=1:length(y) if y(i)y_stable break; endendtr=x(i)%计算系统的调整时间for i=1:length(y) if max(y(i:length(y)=0.98*y_stable break; end endendts=x(i)ans = -3.0755 + 1.5228i -3.0755 - 1.5228i -0.849

9、1 + 0.0000isigma =-5.8847e-05tr =12.0391ts =5.1810 K=100时:clc;clear all;num=10;den=1 7 17 10;sys=tf(num,den);roots(den)pzmap(sys);y,t,x=step(num,den);plot(x,y);grid on;%计算系统的超调量y_stable=1;max_response=max(y);sigma=(max_response-y_stable)/y_stable%计算系统上升时间for i=1:length(y) if y(i)y_stable break; ende

10、ndtr=x(i)%计算系统的调整时间for i=1:length(y) if max(y(i:length(y)=0.98*y_stable break; end endendts=x(i)ans = -6.6925 + 0.0000i -0.1537 + 3.8624i -0.1537 - 3.8624isigma =0.7608tr =0.5642ts =24.5930 K=1000:clc;clear all;num=1000;den=1 7 17 1000;y,t,x=step(num,den);plot(x,y);grid on; 在使系统稳定的条件下,k值越大,则系统越稳定。取k

11、=120时:clc;clear all;num=120;den=1 7 17 120;sys=tf(num,den);roots(den)pzmap(sys);y,t,x=step(num,den);plot(x,y);grid on; 此时系统不稳定。取k=119时:clc;clear all;num=119;den=1 7 17 119;sys=tf(num,den);roots(den)pzmap(sys);y,t,x=step(num,den);plot(x,y);grid on;此时系统处于临界稳定,固Ky_stable break; endendtr=x(i)%计算系统的调节时间-

12、取误差带为2for i=1:length(y) if max(y(i:length(y)=0.98*y_stable end endendts=x(i)运行结果:上升时间tr =0.4748调节时间ts =1.1926%计算超调量y_stable=1;max_response=max(y);sigma=(max_response-y_stable)/y_stable运行结果:sigma =0.0432求静态误差:利用simulink建模得5、某单位负反馈控制系统的动态结构图如下:试完成如下任务:(1)在 MATLAB 中建立上述控制系统的数学模型;( 2)绘制系统的根轨迹曲线;(3)判断点 -

13、 2 i 10是否在根轨迹曲线上;(4)确定使闭环系统稳定的k的取值范围。(1) 建立数学模型程序编写如下:clear all;num=-1,2;den=1,3,0;sys=tf(num,den)运行结果:Transfer function: -s + 2-s2 + 3 s(2)%绘制根轨迹图clear all;num=-1,2;den=1,3,0;sys=tf(num,den)rlocus(sys)grid ontitle(根轨迹图)(3)由上图知- 2 i 10不在根轨迹曲线上(4)程序编写如下:k,poles=rlocfind(sys)运行后得: (5)由上图知k=3是系统的临界增益,所

14、以使闭环系统稳定的k的取值范围为0k3。某单位负反馈控制系统的动态结构图如下:试完成如下任务:(1)在 MATLAB 中建立上述控制系统的数学模型;(2)绘制系统的根轨迹曲线;(3)判断点是否在根轨迹曲线上;(4)确定使闭环系统稳定的 k 的取值范围。解:matlab代码如下:clear all;num=-1,2;den=1,3,0;sys=tf(num,den)sys =程序运行结果如下: -s + 2 - s2 + 3 smatlab代码如下:clear all;num=-1,2;den=1,3,0;sys=tf(num,den)rlocus(sys)grid ontitle(根轨迹图)系

15、统的根轨迹图如下图所示:经图中的判断,点不在系统的根轨迹上。matlab代码如下:k,poles=rlocfind(sys)程序运行结果如下:由图中可以得到,当0k10。(2)G(s)=matlab代码如下:clear all;num=1;den=conv(1,0,conv(0.1,1,0.25,1);sys2=tf(num,den)rlocus(sys2)figure(1)grid title(根轨迹图)由分析可知,k的取值范围为0k6。10、给定非线性控制系统的动态结构图如下,其中饱和环节的线性区为-1,1,斜率为 1。试分析系统的稳定性,并绘制系统的阶跃响应曲线。建立模型:输出曲线如图所

16、示:由上图可知,系统不稳定。11.给定非线性控制系统的动态结构图如下,试:(1)在 Simulink 中建立上述系统的模型;(2)设定开环增益为k=1,绘制系统的阶跃响应曲线;(3)设定开环增益为k =10,绘制系统的阶跃响应曲线,并与(2)得到的曲线进行比较;(4)继续修改 k 的取值,分析阶跃响应曲线的变化。解:(1) 在simulink库中建立以下模型:(2) 系统的阶跃响应曲线如下图所示:(3) 系统的阶跃响应曲线如下图所示:k=1时与k=10时的曲线相比,k=10时的曲线出现了超调量,上升时间减少,稳态误差增大。(4) k=100时,系统的阶跃响应曲线如下:k=1000时,系统的阶跃响应曲线如下:从图中可以看出当k继续增大时,稳态误差最终稳定在0.5。13、 某离散控制系统的结构图如下,试:( 1)在 MATLAB 中建立此控制系统的模型;( 2)采样周期值为 1s,判断系统的稳定性,并绘制系统的阶跃响应曲线。(1) 数学模型如下:程序编写:clc;clear;%建立控制系统的数学模型Ts=1;num=4;den=1,3,2;sys_continue = tf(num,den);sys_discrete = c2d(sys_continue,Ts,zoh);sys_k=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论