《MATLABSimulink与控制系统仿真实验报告.pdf》由会员分享,可在线阅读,更多相关《MATLABSimulink与控制系统仿真实验报告.pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MATLAB/SimulinkMATLAB/Simulink 与控与控制系统仿真实验报告制系统仿真实验报告姓名:姓名:喻彬彬喻彬彬学号:学号:实验实验 1 1、MATLAB/SimulinkMATLAB/Simulink 仿真基础及控制系统模型的建立仿真基础及控制系统模型的建立一、实验目的一、实验目的1、掌握 MATLAB/Simulink仿真的基本知识;2、熟练应用 MATLAB软件建立控制系统模型。二、实验设备二、实验设备电脑一台;MATLAB仿真软件一个三、实验内容三、实验内容1、熟悉 MATLAB/Smulink仿真软件。2、一个单位负反馈二阶系统,其开环传递函数为G(s)10。用 S
2、imulink 建立该s23s控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。3、某控制系统的传递函数为Y(s)G(s)s50。用 Simulink 建,其中G(s)2X(s)1G(s)2s 3s立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。4、一 闭 环 系 统 结 构 如 图 所 示,其 中 系 统 前 向 通 道 的 传 递 函 数 为20,而且前向通道有一个,的限幅环节,图中用N 表示,反G(s)s0.5g3s0.1s
3、 12s220s馈通道的增益为,系统为负反馈,阶跃输入经倍的增益作用到系统。用 Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。四、实验报告要求四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。五、实验思考题五、实验思考题总结仿真模型构建及调试过程中的心得体会。题 1、(1)利用 Simulink 的 Library 窗口中的【File】【New】,打开一个新的模型窗口。(2)分别从信号源库(Sourse)、输出方式库(Sink)、数学运算
4、库(Math)、连续系统库(Continuous)中,用鼠标把阶跃信号发生器(Step)、示波器(Scope)、传递函数(TransfernFcn)和相加器(Sum)4 个标准功能模块选中,并将其拖至模型窗口。(3)按要求先将前向通道连好,然后把相加器(Sum)的另一个端口与传递函数和示波器的线段连好,形成闭环反馈。(4)双击传递函数。打开其“模块参数设置”对话框,并将其中的 numerator设置为“10”,denominator 设置为“1 3 0”,将相加器设置为“+-”。(5)绘制成功后,如图1 所示。(6)对模型进行仿真,运行后双击示波器,得到系统的阶跃响应曲线如图2 所示。图 1图
5、 2题 2:分别将 Simulink Library Browser 中的以下模块依次拖到untitled 窗口中,连接后便得到整个控制系统的模型,如图3 所示。图 3对模型进行仿真,运行后双击示波器,得到系统的阶跃响应曲线如图4 所示。图 4题 3:(1)在 MATLAB中的 Simulink Library Browser 窗口下找到符合要求的模块,搭建模型,如图 5 所示。图 5(2)修改各模块参数,运行仿真,单击“start”,点击示波器,得到如下结果,图6图 6实验实验 2 2MATLAB/SimulinkMATLAB/Simulink在控制系统建模中的应用在控制系统建模中的应用一、
6、实验目的一、实验目的1、掌握 MATLAB/Simulink在控制系统建模中的应用;二、实验设备二、实验设备电脑一台;MATLAB仿真软件一个三、实验内容三、实验内容1、给定 RLC 网络如图所示。其中,ui(t)为输入变量,u0(t)为输出变量。求解这个系统的传递函数模型,零极点增益模型以及状态空间模型(假设R11,R21,C 1F,L 1H)。2、已知某双环调速的电流环系统的结构图如图所示。试采用Simulink 动态结构图求其线性模型。题 1:步骤 1从数学上求出系统传递函数。根据电路基本定理,列出该电路的微分方程,如下:i1 i2i3同时还有uo i3R2i2 Cd di3uoLdtd
7、t整理以上方程,并在零初始条件下,取拉普拉斯变换,可得:代入具体数值可得G(s)12s 2s 2步骤 2使用 MATLAB程序代码如下。clear all;num=0,1;den=1 2 2;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)step(sys_tf);A,B,C,D=linmod(Samples_4_12)num,den=ss2tf(A,B,C,D);printsys(num,den,s);四、实验报告要求四、实验报告要求实验报告撰写应包括
8、实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。五、实验思考题五、实验思考题总结仿真模型构建及调试过程中的心得体会。实验实验 3 3MATLAB/SimulinkMATLAB/Simulink在时域分析法中的应用在时域分析法中的应用一、实验目的一、实验目的1、掌握时域分析中 MATLAB/Simulink函数的应用;2、掌握 MATLAB/Simulink在稳定性分析中的应用。二、实验设备二、实验设备电脑一台;MATLAB仿真软件一个三、实验内容三、实验内容1、某随动系统的结构如图所示。利用 MATLAB 完成如下工作:(1)对给定的随动系统建立数学模型;(2)分析系统的稳定
9、性,并且绘制阶跃响应曲线;(3)计算系统的稳态误差;(4)大致分析系统的总体性能,并给出理论上的解释。2、已知某二阶系统的传递函数为G(s)n,(1)将自然频率固定为n1,22s 2ns n分析变化时系统的单位阶跃响应;(2)将阻尼比固定为 0.55,0,0.1,.,1,2,3,5,分析自然频率n变化时系统的阶跃响应(n变化范围为1)。四、实验报告要求四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。五、实验思考题五、实验思考题总结仿真模型构建及调试过程中的心得体会。题 1:步骤 1求取系统的传递函数。首先需要对系统框图进行化简。不难看出,题中
10、给出的系统包含两级反馈:外环是单位负反馈;内环则是二阶系统与微分环节构成的负反馈。可以利用 MATLAB 中的 feedback 函数计算出系统的传递函数,代码如下。cic;clear aii;num1=20;den1=1 2 0;sys1=tf(num1,den1);num2=0;den2=0 1;sys2=tf(num1,den2);sys_inner=feedback(sys1,sys2);sys_outer=feedback(sys_inner,1)程序运行结果为:Transfer function:20-s2+4 s+20这样就得到了系统的总传递函数,即G(s)=20S2+4s+20
11、步骤 2进行稳态分析。根据求得的传递函数,对系统进行稳态性分析,代码如下:den=1 4 20;roots(den)pzmap(sys_outer);grid on;程序运行结果如下:ans=+-系统的零极点分布图如图1 所示图 1 系统的零极点分布图步骤 3求取阶跃响应计算系统的阶跃响应:可以采用 MATLAB 编程实现,还可以利用 simulink 对系统进行建模,直接观察响应曲线。MATLAB程序代码如下:num=20;den=1 4 20;plot(x,y);grid on;程序运行结果如图 2 所示图 2 系统阶跃响应曲线采用 simulink 对系统进行建模,如图3 所示图 3 利
12、用 Simulink 对系统建模可以从 scope 中得到系统的不同响应曲线,如下图4,这与编程的结果完全相同的。图 4 系统阶跃响应曲线步骤 4 分析系统的响应特性。y_stable=1;max_response=max(y);sigma=(max_respomse-y_stable)/y_stable程序运行结果为sigma=同时可看出,系统的稳态误差为 0。示波器 error 的波形显示如图 5 所示,可见,当阶跃输入作用系统 2s 后,输出就基本为 1 了。图 5 系统误差曲线还可以精确计算出系统的上升时间、峰值时间及调整时间。如上所述,y 中储存了系统阶跃响应的数据;同时,x 中方存
13、放了其中每个数据对应的时间,编写代码如下。for i=1:length(y)If y(i)y_stablebreak;endendtr=x(i)max_response,index=max(y);tp=x(index)for i=1:length(y)If max(y(i:length(y)*y_stablebreakendendendts=x(i)程序运次结果为tr=tp=ts=即上升时间为,峰值时间为,并且系统在经过后进入稳态。题 2利用 MATLAB建立控制系统的数学模型,并且同时显示 Wn=1,阻尼系数取不同值时系统的阶跃响应曲线,代码如下clc;clear;t=linspace(0,
14、20,200);omega=1;omega2=omega2;zuni=0,1,2,3,5;num=omega2;for k=1:8den=1 2*zuni(k)*omega omega2;sys=tf(num,den);y(:,k)=step(sys,t);endfigure(1);plot(t,y(:,1:8);grid;gtext(zuni=0);gtext(zuni=);gtext(zuni=);gtext(zuni=);gtext(zuni=1);gtext(zuni=2);gtext(zuni=3);gtext(zuni=5);运行程序,结果如图 6 所示图 6 固定自然频率,阻尼比
15、变化时系统的阶跃响应曲线利用 MATLAB在一幅图像的上绘制阻尼系数=,Wn 从变化到 1 时系统的阶跃响应曲线,代码如下clc;clear;t=linspace(0,20,200);zuni=;omega=,1;omega2=omega2;for k=1:5num=omega2(k);den=1 2*zuni*omega(k)omega2(k);sys=tf(num,den);y(:,k)=step(sys,t);endfigure(2);plot(t,y(:,1:5);grid;gtext(omega=);gtext(omega=);gtext(omega=);gtext(omega=);
16、gtext(omega=);运行代码,结果如图 7 所示图 7 固定阻尼系数,自然频率变化时系统的阶跃响应曲线实验实验 4 4MATLAB/SimulinkMATLAB/Simulink在根轨迹分析法中应用在根轨迹分析法中应用一、实验目的一、实验目的1、掌握 MATLAB/Simulink绘制根轨迹函数;2、掌握 MATLAB/Simulink绘制根轨迹的方法。二、实验设备二、实验设备电脑一台;MATLAB仿真软件一个三、实验内容三、实验内容1、已知单位负反馈控制系统的开环传递函数G(s)k(s 1)。(1)画出这个s(s 1)(s 4)系统的根轨迹;(2)确定使闭环系统稳定的增益值k;(3)
17、分析系统的阶跃响应性能;(4)利用 rltool 对系统的性能进行分析。实验代码实验代码 1 1:clc;clc;clear;clear;num=1 1;num=1 1;den=conv(1 0,conv(1-1,1 4);den=conv(1 0,conv(1-1,1 4);sys=tf(num,den)sys=tf(num,den)输出结果:输出结果:Transfer function:Transfer function:s+1s+1-s3+3 s2s3+3 s2-4 s 4 s实验代码实验代码 2 2:rlocus(sys);rlocus(sys);gridgrid onon;title
18、(title(11)输出结果:输出结果:实验代码实验代码 3 3:k,poles=rlocfind(sys)k,poles=rlocfind(sys)输出结果:输出结果:k,poles=rlocfind(sys)k,poles=rlocfind(sys)使用使用 rltoolrltool 进行分析:进行分析:K=6阶跃响应曲线:阶跃响应曲线:四、实验报告要求四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。五、实验思考题五、实验思考题总结仿真模型构建及调试过程中的心得体会。实验实验 5 5MATLAB/SimulinkMATLAB/Simuli
19、nk在频域分析法中的应用在频域分析法中的应用一、实验目的一、实验目的1、掌握 MATLAB绘制伯德图和乃奎斯特曲线;2、熟练应用 MATLAB分析稳定裕度。二、实验设备二、实验设备电脑一台;MATLAB仿真软件一个三、实验内容三、实验内容1、已知晶闸管-直流电机开环系统结构图如图所示。试用Simulink 动态结构图进行频域分析并求频域性能指标。四、实验报告要求四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。五、实验思考题五、实验思考题总结仿真模型构建及调试过程中的心得体会。步骤 1在 SIMULINK 中建立该系统的动态模型,如下图,并将模
20、型存为“”。步骤 2 求取系统的线性状态空间模型,并求取频域性能指标。在 MATLAB 命令窗口中运行以下命令。A,B,C,D=linmod(Samples_7_9);sys=ss(A,B,C,D);margin(sys);程序运行后,输出如下图所示曲线:从图中可以看出:幅值裕度 GM=,穿越频率为 152rad/sec;相位裕度 PM=54deg,穿越频率为 sec。实验实验 6 6MATLAB_SimulinkMATLAB_Simulink 在控制系统校正中的应用在控制系统校正中的应用一、实验目的一、实验目的1、掌握建立控制系统的数学模型及设计系统的串联校正装置;2、了解校正前后系统性能的
21、比较。二、实验设备二、实验设备电脑一台;MATLAB 仿真软件一个三、实验内容三、实验内容1、某单位负反馈控制系统的开环传递函数G(s)k,设计一个串联的校s(s 1)(s 2)正装置,使校正后的系统静态速度误差系数10s,相角裕度 45,增益裕量10dB。步骤 1:确定开环传递函数中的系数K。系统的静态速度误差系数计算公式为LimsG(s)lim=K*S =lim K =K s(s+1)(s+2)(s+1)(s+2)2根据题目要求,校正后的系统静态误差系数最小为10s*-1,因此可求得 K20,故可求得系统的开环传递函数为 G(s)=20 S(s+1)(s+2)。步骤 2:建立控制系统的数学
22、模型代码如下:clc;clear;num_open=0 20;den_open=conv(conv(1 0,1 1),1 2);sys_open=tf(num_open,den_open)1步骤 3:分析系统的动态特性代码如下:Gm,Pm,Wcg,Wcp=margin(sys_open)margin(sys_open);运行结果为:Gm=Pm=Wcg=Wcp=系统响应曲线如图 1图 1步骤 4:设计系统的串联校正装置首先设计滞后环节,假定系统增益穿越频率为1,取零极点之比为 10,系统响应曲线如图2图 2相应代码如下:num_zhihou=1;den_zhihou=1;sys_zhihou=t
23、f(num_zhihou,den_zhihou);sys_new=sys_open*sys_zhihoumargin(sys_new);再设计超前校正,系统响应曲线如图3图3不难看出此时闭环系统的增益裕量为,相角裕量为,增益穿越频率为;各项参数均符合题设要求。相应代码如下:num_chaoqian=1;den_chaoqian=1 5;sys_chaoqian=tf(num_chaoqian,den_chaoqian);sys_new=sys_new*sys_chaoqian;margin(sys_new);对比校正前后系统的频率响应如图4图 4代码如下:figure(1);bode(sys_
24、open);hold on;bode(sys_new);gtext(Dy);gtext(Dyo);gtext(Dy);gtext(Dyo);grid on综上所述,校正后的开环传递函数为20 s2+12s+1-s5+s4+s3+s2+四、实验报告要求四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。五、实验思考题五、实验思考题总结仿真模型构建及调试过程中的心得体会。实验实验 7 7MATLAB/SimulinkMATLAB/Simulink在非线性系统中的应用在非线性系统中的应用一、实验目的一、实验目的1、掌握非线性系统阶跃响应的分析。二、实验
25、设备二、实验设备电脑一台;MATLAB仿真软件一个三、实验内容三、实验内容1、给定如图所示的单位负反馈系统。在系统中分别引入不同的非线性环节(饱和、死区和磁滞),观察系统的阶跃响应,并且分析、比较不同的非线性环节对系统性能的影响。四、实验报告要求四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。五、实验思考题五、实验思考题总结仿真模型构建及调试过程中的心得体会。步骤 1 利用 MATLAB中的 simulink 工具箱,对题设控制系统进行建模,如下图1,没有任何非线性环节的系统,其阶跃响应曲线如下图2。图 1图 2步骤 2 在系统中加入饱和非线
26、性环节,系统框图 3 所示,其中,饱和非线性环节的输出上限为,输出下限为;阶跃信号幅值为1图 3利用 simulink 进行仿真,得到的阶跃响应曲线如图4图 4为了比较饱和非线性环节的输出上下限变化时系统阶跃响应的不同,可以利用 simulink 中的To Workspace模块,将多次仿真的结果记录到工作空间的不同数组中,并且绘制在同以一幅图像上,此时,系统框图如图5。图 5设定饱和非线性环节输出上限为,输出下限为,将仿真的结果记录到工作空间中的变量out1 中;输出上限为输出下限为时,仿真结果存放在 out2 中;输出上限为,输出下限为时,仿真结果存放在 out3 中;输出上限为,输出下限
27、为时,仿真结果存放在out4 中。将 4 种情况下系统的阶跃响应曲线绘制在同一幅图像中,代码如下。plot(tout1,out1);hold on;grid on;gtext();plot(tout2,out2);gtext();plot(tout3,out3);gtext();plot(tout4,out4);gtext();运行程序,结果如下图6:图 6从图 6 中可以看出,当饱和非线性环节的输出范围较窄时,系统的阶跃响应速度较慢,上升时间长;同时,超调量较小,振荡不明显;随着输出范围的扩大,系统的响应速度加快,上升时间大大减少,同时伴有显着的振荡。这是因为饱和环节会对信号起到限幅作用。不
28、难想象,限制作用越强,系统的输出越不容易超调,响应也会越慢,这从图6 中夜可以看出这一趋势。步骤 3在系统中引入死区非线性环节,系统框图如图7 所示。其中,死区范围为,;阶跃信号幅值为 1。图 7利用 simulink 进行仿真,得到的阶跃响应曲线如图7 所示。同样,为了对比范围不同时系统的阶跃响应,采用Simulink 中的 To Workspace模块,将仿真的结果保存在工作空间的数组里。绘制阶跃响应曲线的代码如下:plot(tout1,out1);hold on;grid on;gtext();plot(tout2,out2);gtext();plot(tout3,out3);gtext
29、();plot(tout4,out4);gtext();运行程序,结果如图8:图 8图中曲线上标注的、表示死区范围,不难看出,随着死区范围的增加,系统开始响应阶跃输入信号的时刻也逐渐推迟。这是因为死区环节会将死区内的输入“忽略”,使得系统的响应变慢。步骤 4尝试在系统中同时加入死区单元和饱和单元,系统框图如图9 所示。图 9利用 simulinh 进行仿真,得到的阶跃响应曲线如图10 所示:图 10步骤 5在系统中引入滞环非线性环节。结果如下:实验实验 8 8MATLAB/SimulinkMATLAB/Simulink在离散控制系统中的应用在离散控制系统中的应用一、实验目的一、实验目的1、掌握
30、2、了解采样周期对离散系统稳定性的影响。二、实验设备二、实验设备电脑一台;MATLAB仿真软件一个三、实验内容三、实验内容1、建立题目中要求的数学模型,MATLAB代码如下。clc;clear;Ts=1;num=1,1;den=1,0,0;sys_continue=tf(num,den)sys_discrete=c2d(sys_continue,Ts,zoh)sys_k=1;sys_open=sys_k*sys_discrete运行结果如下Transfer function:z-z2-2 z+1Sampling time:12、绘制系统的根轨迹。代码如下figure(1);rlocus(sys
31、_discrete);运行结果如图 1 所示。图 1从图中可以读到交点出的开环增益为 K=0;也就是说,使闭环系统稳定的 K 的范围是0K2。为了验证这一结论,可以绘制系统幅频特性曲线和Nyquist 曲线,代码如下sys_k=2;figure(2);margin(sys_k*sys_discrete);figure(3);dnum,dden=tfdata(sys_k*sys_discrete,v)dnyquist(dnum,dden,Ts)grid on;系统幅频特性曲线Nyquist曲线从图中可以看出,K=2 时,系统处于临界稳定状态,Nyquist 曲线恰好穿过(-1,0)点。可以确,系
32、统稳定时,K 的取值范围是(0,2)。3、分析系统的阶跃响应。给 K 赋予不同的值,代码如下。sys_k=1;figure(4);sys_close=feedback(sys_k*sys_discrete,1);dnumc,ddenc=tfdata(sys_close,v);dstep(dnumc,ddenc,25);sys_k=2;figure(5);sys_close=feedback(sys_k*sys_discrete,1);dnumc,ddenc=tfdata(sys_close,v);dstep(dnumc,ddenc,25);sys_k=3;figure(6);sys_close
33、=feedback(sys_k*sys_discrete,1);dnumc,ddenc=tfdata(sys_close,v);dstep(dnumc,ddenc,25);运行结果如图所示4、分析采样周期对系统稳定性的影响。取 TS=和 TS=2,代码如下sys_k=2;figure(7);Ts=;sys_discrete=c2d(sys_continue,Ts,zoh)sys_close=feedback(sys_k*sys_discrete,1);dnumc,ddenc=tfdata(sys_close,v);dstep(dnumc,ddenc,25);sys_k=2;figure(8);Ts=2;sys_discrete=c2d(sys_continue,Ts,zoh)sys_close=feedback(sys_k*sys_discrete,1);dnumc,ddenc=tfdata(sys_close,v);dstep(dnumc,ddenc,25);结果如图所示四、实验报告要求四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。五、实验思考题五、实验思考题总结仿真模型构建及调试过程中的心得体会。
限制150内