1、MATLABSimulink与控制系统仿真实验报告MATLABSimulink与控制系统仿真实验报告MATLAB/Simulink与控制系统仿真实验报告姓名:喻彬彬学号:K031541725实验1、MATLAB/Simulink仿真基础及控制系统模型的建立一、实验目的1、掌握MATLAB/Simulink仿真的基本知识; 2、熟练应用MATLAB软件建立控制系统模型。 二、实验设备电脑一台;MATLAB仿真软件一个 三、实验内容1、熟悉MATLAB/Smulink仿真软件。2、一个单位负反馈二阶系统,其开环传递函数为G(s)10。用Simulink建立该s23s控制系统模型,用示波器观察模型的
2、阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。3、某控制系统的传递函数为Y(s)G(s)s50。用Simulink建其中G(s)2X(s)1G(s)2s3s立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。4、一闭环系统结构如图所示,其中系统前向通道的传递函数为20,而且前向通道有一个-,的限幅环节,图中用N表G(s)s12s20s示,反馈通道的增益为,系统为负反馈,阶跃输入经倍的增益作用到系统。用Simulink建立该控制系统模型,用示波器观察模型的阶跃响应
3、曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。 五、实验思考题总结仿真模型构建及调试过程中的心得体会。1题1、利用Simulink的Library窗口中的【File】【New】,打开一个新的模型窗口。 分别从信号源库、输出方式库、数学运算库、连续系统库中,用鼠标把阶跃信号发生器、示波器、传递函数和相加器4个标准功能模块选中,并将其拖至模型窗口。按要求先将前向通道连好,然后把相加器的另一个端口与传递函数和示波器的线段连好,形成闭环反馈。 双击传递函数。打
4、开其“模块参数设置”对话框,并将其中的numerator设置为“10”,denominator设置为“1 3 0”,将相加器设置为“+-”。 绘制成功后,如图1所示。对模型进行仿真,运行后双击示波器,得到系统的阶跃响应曲线如图2 所示。 图1图2题2:分别将Simulink Library Browser 中的以下模块依次拖到untitled窗口中,连接后便得到整个控制系统的模型,如图3所示。2图3对模型进行仿真,运行后双击示波器,得到系统的阶跃响应曲线如图4所示。图4 题3:在MATLAB中的Simulink Library Browser 窗口下找到符合要求的模块,搭建模型,如图5所示。图
5、53修改各模块参数,运行仿真,单击“start”,点击示波器,得到如下结果,图6图64实验2 MATLAB/Simulink在控制系统建模中的应用一、实验目的1、掌握MATLAB/Simulink在控制系统建模中的应用; 二、实验设备电脑一台;MATLAB仿真软件一个 三、实验内容1、给定RLC网络如图所示。其中,ui(t)为输入变量,u0(t)为输出变量。求解这个系统的传递函数模型,零极点增益模型以及状态空间模型。2、已知某双环调速的电流环系统的结构图如图所示。试采用Simulink动态结构图求其线性模型。题1: 步骤1从数学上求出系统传递函数。根据电路基本定理,列出该电路的微分方程,如下:
6、R1i1Ldi3u0ui dti1i2i3同时还有 uoi3R2i2Cddi3uoLdtdt整理以上方程,并在零初始条件下,取拉普拉斯变换,可得:5G(s)Uo(s)Ui(s)1LR1(R1Cs1)s1RR221 2s2s2代入具体数值可得G(s)步骤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(
7、Samples_4_12)num,den=ss2tf(A,B,C,D); printsys(num,den,s);6四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。 五、实验思考题总结仿真模型构建及调试过程中的心得体会。7实验3 MATLAB/Simulink在时域分析法中的应用一、实验目的1、掌握时域分析中MATLAB/Simulink函数的应用; 2、掌握MATLAB/Simulink在稳定性分析中的应用。 二、实验设备电脑一台;MATLAB仿真软件一个 三、实验内容1、某随动系统的结构如图所示。利用MATLAB完成如下工作:对给定的随动
8、系统建立数学模型;分析系统的稳定性,并且绘制阶跃响应曲线;计算系统的稳态误差;大致分析系统的总体性能,并给出理论上的解释。2、已知某二阶系统的传递函数为G(s)n,将自然频率固定为n1,2s22nsn分析变化时系统的单位阶跃响应;将阻尼比固定为,0,.,1,2,3,5,分析自然频率n变化时系统的阶跃响应。 四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。 五、实验思考题总结仿真模型构建及调试过程中的心得体会。题1:步骤1 求取系统的传递函数。首先需要对系统框图进行化简。不难看出,题中给出的系统包含两级反馈:外环是单位负反馈;内环则是二阶系统与
9、微分环节构成的负反馈。可以利用MATLAB中的 feedback函数计算出系统的传递函数,代码如下。 cic;clear aii;num1=20;den1=1 2 0; sys1=tf(num1,den1);8num2= 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=20S2+4s+20 步骤2 进行稳态分析。 根据求得的传递函数
10、,对系统进行稳态性分析,代码如下: den=1 4 20; roots(den)pzmap(sys_outer); grid on;程序运行结果如下: ans =- + - -系统的零极点分布图如图1所示Pole-Zero Axis图1系统的零极点分布图步骤3 求取阶跃响应计算系统的阶跃响应:可以采用MATLAB编程实现,还可以利用simulink对系统进行建模,直接观察响应曲线。MATLAB程序代码如下: num=20;den=1 4 20; =steo(num,den) plot(x,y); grid on;9程序运行结果如图2所示图2系统阶跃响应曲线采用simulink对系统进行建模,如
11、图3所示图3利用Simulink对系统建模可以从scope中得到系统的不同响应曲线,如下图4,这与编程的结果完全相同的。图4系统阶跃响应曲线10步骤4 分析系统的响应特性。在上面的语句=steo(num,den)执行之后,变量y中就存放了系统阶跃响应的具体数值。从响应曲线中不难看出,系统的稳态值为1。可以利用如下代码计算系统的超调量。 y_stable=1;max_response=max(y);sigma=(max_respomse-y_stable)/y_stable 程序运行结果为 sigma =同时可看出,系统的稳态误差为0。示波器error的波形显示如图5所示,可见,当阶跃输入作用系
12、统2s后,输出就基本为1了。图5系统误差曲线还可以精确计算出系统的上升时间、峰值时间及调整时间。如上所述,y中储存了系统阶跃响应的数据;同时,x中方存放了其中每个数据对应的时间,编写代码如下。 for i =1:length(y)If y(i)y_stable break;end end tr=x(i)max_response,index=max(y); tp=x(index)for i =1:length(y)If max(y(i:length(y)*y_stablebreak endend end ts=x(i)程序运次结果为 tr =tp =ts =11即上升时间为,峰值时间为,并且系统
13、在经过后进入稳态。 题2利用MATLAB建立控制系统的数学模型,并且同时显示Wn=1,阻尼系数取不同值时系统的阶跃响应曲线,代码如下 clc; clear;t=linspace(0,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); grid;gtext(zuni=0);gtext(zuni=);gtext(zuni=);gtext
14、(zuni=); gtext(zuni=1);gtext(zuni=2);gtext(zuni=3);gtext(zuni=5); 运行程序,结果如图6所示=0zuni=1zuni=2zuni=3zuni=52468101214161820图6固定自然频率,阻尼比变化时系统的阶跃响应曲线利用MATLAB在一幅图像的上绘制阻尼系数=,Wn从变化到1时系统的阶跃响应曲线,代码如下12clc; clear;t=linspace(0,20,200); zuni=;omega=,1; omega2=omega2; for k=1:5num=omega2(k);den=1 2 * zuni*omega(k
15、) omega2(k);sys=tf(num,den);y(:,k)=step(sys,t); endfigure(2);plot(t,y); grid;gtext(omega=);gtext(omega=);gtext(omega=); gtext(omega=);gtext(omega=); 运行代码,结果如图7所示=图7固定阻尼系数,自然频率变化时系统的阶跃响应曲线13实验4 MATLAB/Simulink在根轨迹分析法中应用一、实验目的1、掌握MATLAB/Simulink绘制根轨迹函数; 2、掌握MATLAB/Simulink绘制根轨迹的方法。 二、实验设备电脑一台;MATLAB仿真
16、软件一个 三、实验内容1、已知单位负反馈控制系统的开环传递函数G(s)k(s1)。画出这个s(s1)(s4)系统的根轨迹;确定使闭环系统稳定的增益值k;分析系统的阶跃响应性能;利用rltool对系统的性能进行分析。 实验代码1:clc; clear; num=1 1;den=conv(1 0,conv(1 -1,1 4); sys=tf(num,den)输出结果: Transfer function:s + 1 - s3 + 3 s2 - 4 s实验代码2:rlocus(sys); grid on;title(1)输出结果:14图1步骤4:设计系统的串联校正装置首先设计滞后环节,假定系统增益穿
17、越频率为1,取零极点之比为10,系统响应曲线如图2图2相应代码如下:num_zhihou = 1 ; den_zhihou = 1 ;sys_zhihou = tf(num_zhihou, den_zhihou); sys_new = sys_open * sys_zhihou margin(sys_new);再设计超前校正,系统响应曲线如图320图3不难看出此时闭环系统的增益裕量为,相角裕量为,增益穿越频率为;各项参数均符合题设要求。相应代码如下:num_chaoqian = 1 ; den_chaoqian = 1 5; sys_chaoqian = tf(num_chaoqian,den
18、_chaoqian); sys_new = sys_new * sys_chaoqian; margin(sys_new);对比校正前后系统的频率响应如图4图4代码如下:figure(1); bode(sys_open); hold on; bode(sys_new);gtext(Dy); gtext(Dyo); gtext(Dy); gtext(Dyo); grid on综上所述,校正后的开环传递函数为 20 s2 + 12s+1 -s5+ s4+ s3 + s2+四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。 五、实验思考题21总结仿真
19、模型构建及调试过程中的心得体会。实验7 MATLAB/Simulink在非线性系统中的应用一、实验目的1、掌握非线性系统阶跃响应的分析。 二、实验设备电脑一台;MATLAB仿真软件一个 三、实验内容1、给定如图所示的单位负反馈系统。在系统中分别引入不同的非线性环节,观察系统的阶跃响应,并且分析、比较不同的非线性环节对系统性能的影响。四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。 五、实验思考题总结仿真模型构建及调试过程中的心得体会。步骤1 利用MATLAB中的simulink工具箱,对题设控制系统进行建模,如下图1,没有任何非线性环节的系统
20、,其阶跃响应曲线如下图2。图1图222步骤2 在系统中加入饱和非线性环节,系统框图3所示,其中,饱和非线性环节的输出上限为,输出下限为-;阶跃信号幅值为1图3利用simulink进行仿真,得到的阶跃响应曲线如图4图4为了比较饱和非线性环节的输出上下限变化时系统阶跃响应的不同,可以利用simulink中的To Workspace模块,将多次仿真的结果记录到工作空间的不同数组中,并且绘制在同以一幅图像上,此时,系统框图如图5。23 图5设定饱和非线性环节输出上限为,输出下限为-,将仿真的结果记录到工作空间中的变量out1中;输出上限为输出下限为-时,仿真结果存放在out2中;输出上限为,输出下限为
21、-时,仿真结果存放在out3中;输出上限为,输出下限为-时,仿真结果存放在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中可以看出,当饱和非线性环节的输出范围较窄时,系统的阶跃响应速度较慢,上升时间长;同时,超调量较小,振荡不明显;随着输出范围的扩大,系统的响应速度加快,上升时间大大减少,
22、同时伴有显著的振荡。这是因为饱和环节会对信号起到限幅作用。不难想象,限制作用越强,系统的输出越不容易超调,响应也会越慢,这从图6中夜可以看出这一趋势。步骤3 在系统中引入死区非线性环节,系统框图如图7所示。其中,死区范围为-,; 阶跃信号幅值为1 。24图7利用simulink进行仿真,得到的阶跃响应曲线如图7所示。同样,为了对比范围不同时系统的阶跃响应,采用Simulink 中的To Workspace模块,将仿真的结果保存在工作空间的数组里。绘制阶跃响应曲线的代码如下:plot(tout1,out1); hold on; grid on; gtext(); plot(tout2,out2)
23、; gtext(); plot(tout3,out3); gtext(); plot(tout4,out4); gtext();运行程序,结果如图8: 图8图中曲线上标注的、表示死区范围,不难看出,随着死区范围的增加,系统开始响应阶跃输入信号的时刻也逐渐推迟。这是因为死区环节会将死区内的输入“忽略”,使得系统的响应变慢。25步骤4 尝试在系统中同时加入死区单元和饱和单元,系统框图如图9所示。图9利用simulinh进行仿真,得到的阶跃响应曲线如图10所示:图10步骤5 在系统中引入滞环非线性环节。结果如下:26实验8 MATLAB/Simulink在离散控制系统中的应用一、实验目的1、掌握2、
24、了解采样周期对离散系统稳定性的影响。 二、实验设备电脑一台;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 + 127Sampling time: 12、绘制系统的根轨迹。
25、代码如下figure(1); rlocus(sys_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;28系统幅频特性曲线Nyquist曲线从图中可以看出,K=2时,系统处于临
26、界稳定状态,Nyquist曲线恰好穿过点。可以确,系统稳定时,K的取值范围是。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);29sys_close = feedback(sys_k * sys_discrete,1); dnumc,ddenc = tfdata(sys_close,v); dste
27、p(dnumc,ddenc,25); sys_k = 3; figure(6);sys_close = feedback(sys_k * sys_discrete,1); dnumc,ddenc = tfdata(sys_close,v); dstep(dnumc,ddenc,25);运行结果如图所示304、分析采样周期对系统稳定性的影响。 取TS=和TS=2,代码如下sys_k = 2; figure(7); Ts = ;sys_discrete = c2d(sys_continue,Ts,zoh) sys_close = feedback(sys_k * sys_discrete,1);
28、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);结果如图所示31四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。 五、实验思考题总结仿真模型构建及调试过程中的心得体会。32MATLAB/Simulink与控制系统仿真实验报告姓名:喻彬彬学号:K031541725实验1、MATLAB/Simulink仿真基础及控制系统模型的建立一、实验目的1、掌握MATLAB/Simulink仿真的基本知识; 2、熟练应用MATLAB软件建立控制系统模型。 二、实验设备电脑一台;MATLAB仿真软件一个 三、实验内容1、熟悉MATLA
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1