收藏 分销(赏)

matlab结业作业.doc

上传人:s4****5z 文档编号:8890574 上传时间:2025-03-06 格式:DOC 页数:21 大小:1.03MB
下载 相关 举报
matlab结业作业.doc_第1页
第1页 / 共21页
matlab结业作业.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述
《 Matlab/Simulink 与控制系统仿真》结业作业 一、必做题 Matlab学习心得体会: 本学期我们新开了一门MATLAB/Simulink与控制系统仿真的课程,虽说是这个学期才开始学习,但是我们却对MATLAB这个软件的基本使用一点都不陌生。而本学期的专门学习,更让我获益匪浅。 第一部分是利用MATLAB函数来对控制系统进行分析。 ① 例如要求取一个系统的阶跃响应时,我就可以调用MATLAB中的step函数 ② MATLAB在稳定性分析应用时,通过直接求根函数roots来判定系统的稳定性 ③ 在利用MATLAB分析系统的根轨迹时,使用rlocus函数来求取根轨迹图,使用pzmap函数求取系统的传递函数零极点 ④ 计算给定一组根的根轨迹增益函数 [k,poles]=rlocufind(sys);[k,poles]=rlocfind(sys,p) ⑤ MATLAB在稳定性分析应用时,也常通过使用用于计算系统稳定裕度的margin函数来完成,它可以从频率响应数据中计算出幅值裕度、相角裕度以及对应的频率 ⑥ 对于使用MATLAB来对系统进行频域响应的分析,又往往提供了绘制函数nyguist和bode来绘制系统的奈奎斯特曲线图和伯德图 ⑦ 其他:grid%添加栅格   hold on%保持,继续在原图绘画  title%添加标题  legend(x,y)%添加文字标注  gyext('TEXT')%在任意可选位置添加文字信息  xlabel(x,y);ylabel(x,y)%添加坐标轴  分割图形窗口 subplot(1,2,1)%分割为一行两列,并即将绘制第一个 第二部分是利用MATLAB的Simulink模块来对控制系统进行建模仿真。 Simulink是一个对动态系统(包括连续系统、离散系统和混合系统)进行建模、仿真和综合分析的集成软件包,是MATLAB的一个附加组件,其特点是模块化操作、易学易用,而且能够使用MATLAB提供的丰富的仿真资源。 对于一个给定的控制系统结构图,需要通过Simulink模块来建立该系统的动态模型。下面我就阐述一下,我在实验过程中常使用的一些模块。 Continuous(连续模块):Derivative对输入信号微分Integrator对输入信号积分Transfer Fcn 分子分母以多项式表示的传递函数 Discontinuous(非连续模块):Dead Zone设定死区范围Saturation 设置输入信号的正负限幅值模拟环节的饱和非线性特性 Math Operations(数学运算模块库):Sum求和 Add可加减标量,向量和矩阵Gain增益(输入信号乘以常数) Ports & Subsystems(端口和子系统模块库):In1输入端口 Out1输出端口 Sinks(接收器模块):To Workspace 将输出写入工作空间 Scope示波器 Sources(输入源模块库):Ramp 产生一个常数增加或减小的信号(斜坡函数信号) Step 产生幅值和起始时间可调的阶跃信号 第三部分是MATLAB中常用的工具。 根轨迹分析与设计工具rltool:rltool是图形化的交互式工具,可以打开工作空间的单输入单输出(SISO)系统模型,分析其根轨迹,并且允许用户在根轨迹图上直接放置零极点,完成对系统的校正设计。 操作:(1)在MATLAB工作空间中建立好控制系统的数学模型sys;(2)在MATLAB命令窗口中输入“rltool(sys)”,得到控制系统sys的根轨迹设计GUI窗口,对系统进行分析。 线性时不变系统分析的图形用户界面LTI Viewer: 在MATLAB的command Window中,建立LTI对象,之后使用LTI Viewer可以绘制LTI对象的单位阶跃响应曲线(Step)、单位脉冲响应曲线(Impulse)、波特图(Bode)、奈奎斯特图(Nyquist)以及零极点图(Pole/Zero)等。  操作:(1)在MATLAB工作空间中建立好控制系统的数学模型;(2)在命令窗口中输入“LTI View”,调出LTI View窗口,对系统进行分析。 总结:通过本学期Matlab/Simulink 与控制系统仿真这门课程的学习,我真正体会到应用MATLAB软件对控制系统分析的方便性、有效性;虽然我可能仅仅是简单地入了个门,但即使是这样我也感觉已经收获了不少东西。当然仅凭短时间的学习不可能掌握得很熟,所以在今后的时间里,我也会多查阅资料、多去实践,争取掌握更多更全的操作技能。 二、选做题 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,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; end end tr=x(i) %计算系统的调整时间 for i=1:length(y) if max(y(i:length(y)))<=1.02*y_stable if min(y(i:length(y)))>=0.98*y_stable break; end end end ts=x(i) ans = -3.0755 + 1.5228i -3.0755 - 1.5228i -0.8491 + 0.0000i sigma =-5.8847e-05 tr =12.0391 ts =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; end end tr=x(i) %计算系统的调整时间 for i=1:length(y) if max(y(i:length(y)))<=1.02*y_stable if min(y(i:length(y)))>=0.98*y_stable break; end end end ts=x(i) ans = -6.6925 + 0.0000i -0.1537 + 3.8624i -0.1537 - 3.8624i sigma =0.7608 tr =0.5642 ts =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=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; 此时系统处于临界稳定,固K<119。 2、 2、一单位负反馈控制系统的开环传递函数为。(1)利用MATLAB建立上述控制系统的3类数学模型;(2)利用MATLAB绘制系统的单位阶跃响应曲线和单位冲激响应曲线;(3)利用LTIViewer工具绘制系统的单位阶跃响应曲线和单位冲激响应曲线。 解:(1)由题建立系统模型,代码如下: clear all; num=[1.5 3]; den=[0.25 1.25 1 0]; sys_tf=tf(num,den) [z,p,k]=tf2zp(num,den) sys_zpk=zpk(z,p,k) [A,B,C,D]=zp2ss(z,p,k); sys_ss=ss(A,B,C,D) 程序运行结果如下: sys_tf = 1.5 s + 3 ----------------------- 0.25 s^3 + 1.25 s^2 + s Continuous-time transfer function. %%%%%传递函数模型%% sys_zpk = 6 (s+2) ------------- s (s+4) (s+1) Continuous-time zero/pole/gain model. %%%%%系统的零极点增益模型%% sys_ss = a = x1 x2 x3 x1 0 0 0 x2 2 -5 -2 x3 0 2 0 b = u1 x1 1 x2 1 x3 0 c = x1 x2 x3 y1 0 0 3 d = u1 y1 0 Continuous-time state-space model.%%%%%%系统的状态空间模型%% (2)由题阶跃函数MATLAB程序代码如下: figure(1) step(sys_tf); grid on figure(2) impulse(sys_tf); grid on 程序运行结果如下图: 调用LTIview函数,运行函数Plot Types选项,选择Step,impulse。运行结果如下图: 3. 一单位负反馈控制系统的开环传递函数为G(s)=k/(0.1s^2+s)。( 1)若系统的阻尼系数ζ为0.5,计算此时的系统增益k;( 2)当k=5时,绘制闭环系统的单位阶跃响应曲线,并计算上升时间、调节时间、超调量以及静态误差。 (1)已知开环传递函数G(s)=k/(0.1s^2+s),对比二阶系统的典型传递函数G(s)=C(s)/R(s)=(k/T)/( s^2+s/T+ k/T)得ζ=1/2√kT所以由ζ为0.5得到k=10; (2)k=5时: 程序编写如下: clc;clear; %%求阶跃响应曲线 num=[5]; den=[0.1,1,5]; [y,t,x]=step(num,den) plot(x,y); grid on; %%计算上升时间 for i=1:length(y) if y(i)>y_stable break; end end tr=x(i) %%计算系统的调节时间------取误差带为2 for i=1:length(y) if max(y(i:length(y)))<=1.02*y_stable if min(y(i:length(y)))>=0.98*y_stable end end end ts=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)判断点 - 2 ±i √10是否在根轨迹曲线上;(4)确定使闭环系统稳定的k的取值范围。 (1) 建立数学模型 程序编写如下: clear all; num=[-1,2];den=[1,3,0]; sys=tf(num,den) 运行结果: Transfer function: -s + 2 --------- s^2 + 3 s (2)%%绘制根轨迹图 clear all; num=[-1,2];den=[1,3,0]; sys=tf(num,den) rlocus(sys) grid on title('根轨迹图') (3)由上图知- 2 ±i √10不在根轨迹曲线上 (4)程序编写如下: [k,poles]=rlocfind(sys) 运行后得: (5)由上图知k=3是系统的临界增益,所以使闭环系统稳定的k的取值范围为0<k<3。 某单位负反馈控制系统的动态结构图如下: 试完成如下任务:(1)在 MATLAB 中建立上述控制系统的数学模型;(2)绘制系统的 根轨迹曲线;(3)判断点是否在根轨迹曲线上;(4)确定使闭环系统稳定的 k 的取值范围。 解: matlab代码如下: clear all; num=[-1,2];den=[1,3,0]; sys=tf(num,den) sys = 程序运行结果如下: -s + 2 --------- s^2 + 3 s matlab代码如下: clear all; num=[-1,2];den=[1,3,0]; sys=tf(num,den) rlocus(sys) grid on title('根轨迹图') 系统的根轨迹图如下图所示: 经图中的判断,点不在系统的根轨迹上。 matlab代码如下: [k,poles]=rlocfind(sys) 程序运行结果如下: 由图中可以得到,当0<k<3时,闭环系统稳定。 7、 某控制系统的动态结构图如下: 试完成如下任务:(1)在 MATLAB 中建立上述控制系统的数学模型;(2)绘制开环系 统的 Bode 曲线和 Nyquist 曲线;(3)判断系统的稳定性,若系统不稳定,绘制闭环系统的零极点图,给出极点的位置;(4)计算系统的截止角频率、相角裕度和幅值裕度;(5) 绘制系统的阶跃响应曲线。 (1) 建立数学模型: 输出曲线如图: (2)绘制开环系统的 Bode 曲线和 Nyquist 曲线 (3)系统零极点图 (4)程序编写如下: [A,B,C,D]=linmod('samples_7'); sys=ss(A,B,C,D); [Gm,Pm,Wcg,Wcp]=margin(sys) 运行结果: Gm =1.0667 Pm =0.6617 Wcg =1.8258 Wcp =1.7961 由运行结果可知:幅值稳定裕量Gm =1.0667,相角稳定裕量Pm =0.6617,相角穿越频率Wcg =1.8258,截止频率Wcp =1.7961。 (5)阶跃响应曲线 9.设单位负反馈控制系统的开环传递函数G(s)分别为、、,试绘制其 Nyquist 曲线,并确定使闭环系统稳定的 k 的取值范围。 解: (1) G(s)=时 matlab代码如下: clear all; num=[0.1,1];den=conv([1,-1],[1,0]); sys1=tf(num,den) rlocus(sys1) figure(1) grid title('根轨迹图') 由分析可知,k的取值范围为k>10。 (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的取值范围为0<k<14。 (3)G(s)=matlab代码如下: clear all; num=[0.5,1.5,1];den=conv([10,1],[1,-1]); sys3=tf(num,den) rlocus(sys3) figure(1) grid title('根轨迹图') 由分析可知,k的取值范围为k>6。 10、给定非线性控制系统的动态结构图如下,其中饱和环节的线性区为[-1,1],斜率为 1。试分析系统的稳定性,并绘制系统的阶跃响应曲线。 建立模型: 输出曲线如图所示: 由上图可知,系统不稳定。 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; sys_open=sys_k*sys_discrete 运行结果: Transfer function: 0.7992 z + 0.294 ------------------------ z^2 - 0.5032 z + 0.04979 Sampling time: 1 (2)求取系统的阶跃响应曲线 %k=1时 sys_k=1; figure(4); sys_close = feedback(sys_k*sys_discrete,1); [dnumc,ddenc]=tfdata(sys_close,'v'); dstep(dnumc,ddenc,25); 由图可知:k=1时闭环系统稳定,阶跃响应曲线收敛。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服