实验一--典型环节的MATLAB仿真汇总.doc
实验一 典型环节的MATLAB仿真一、实验目的1熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。2通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。3定性了解各参数变化对典型环节动态特性的影响。二、SIMULINK的使用MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。1运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。2选择File菜单下New下的Model命令,新建一个simulink仿真环境常规模板。3在simulink仿真环境下,创建所需要的系统三、实验内容按下列各典型环节的传递函数,建立相应的SIMULINK仿真模型,观察并记录其单位阶跃响应波形。 比例环节和实验处理:SIMULINK仿真模型波形图为:实验处理: SIMULINK仿真模型波形图为:实验结果分析:增加比例函数环节以后,系统的输出型号将输入信号成倍数放大. 惯性环节和 实验处理:SIMULINK仿真模型波形图为:实验处理:SIMULINK仿真模型波形图为:实验结果分析:当时,系统达到稳定需要时间接近5s,当时,行动达到稳定需要时间为2.5s,由此可得,惯性环节可以调节系统达到稳定所需时间,可以通过惯性环节,调节系统达到稳定输出的时间。 积分环节实验处理: SIMULINK仿真模型实物图为:实验结果分析:由以上波形可以的出,当系统加入积分环节以后,系统的输出量随时间的变化成正比例增加。 微分环节实验处理:SIMULINK仿真模型波形图为:实验结果分析:微分环节,是将系统的输入对时间的倒数作为输出,当输入为阶跃信号时,加入微分环节后,输入变为0。 比例+微分环节(PD)和实验处理:SIMULINK仿真模型波形图为:实验处理:SIMULINK仿真模型实物图为:实验结果分析:当系统的输入为信号,即在有效时间内输入不随时间变化而变化时,微分环节对系统不起作用,比例环节将输入型号按倍数放大。 比例+积分环节(PI)和实验处理:SIMULINK仿真模型波形图为:实验处理:SIMULINK仿真模型波形图:实验结果分析:当系统加入比例积分环节后,系统的输出是比例放大倍数与积分环节单独作用是的叠加。实验心得与体会:同过本次实验,我基本掌握了MATLAB中SIMULINK 的使用,同时也掌握对系统结构图在软件上的绘制,通过对实验结果的分析,加深了我对比例环节,惯性环节、微分环节、积分环节的认识,比较直观的感受到了它们单独使用和组合使用时对系统输出产的影响。实验二 线性系统时域响应分析一、实验目的1熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。2通过响应曲线观测特征参量和对二阶系统性能的影响。3熟练掌握系统的稳定性的判断方法。二、基础知识及MATLAB函数(一)基础知识时域分析法直接在时间域中对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应和斜坡响应)。本次实验从分析系统的性能指标出发,给出了在MATLAB环境下获取系统时域响应和分析系统的动态性能和稳态性能的方法。用MATLAB求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以s的降幂排列写为两个数组num、den。由于控制系统分子的阶次m一般小于其分母的阶次n,所以num中的数组元素与分子多项式系数之间自右向左逐次对齐,不足部分用零补齐,缺项系数也用零补上。三、实验内容1观察函数step( )和impulse( )的调用格式,假设系统的传递函数模型为 可以用几种方法绘制出系统的阶跃响应曲线?试分别绘制。实验结果:用函数step( )的点用格式时其程序代码段为:num=0 0 1 3 7 den=1 4 6 4 1 step(num,den) grid xlabel('t/s'),ylabel('c(t)') title('Unit-step Respinse of G(s)=(s2+3s+7)/(s4+4s3+6s2+4s+1)')其对应的阶跃响应曲线为:用impulse( )的调用格式时其程序代码段为:num=0 0 0 1 3 7den=1 4 6 4 1 0impulse(num,den)gridxlabel('t/s'),ylabel('c(t)') title('Unit-step Respinse of G(s)/s=(s2+3s+7)/(s5+4s4+6s3+4s2+s)')其对应的阶跃响应曲线为:2对典型二阶系统1)分别绘出,分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数对系统的影响,并计算=0.25时的时域性能指标。实验结果:当取不同值时,输入的程序代码段为:num=0 0 4; den1=1 0 4; den2=1 1 4;den3=1 2 4;den4=1 4 4;den5=1 8 4; t=0:0.1:10; step(num,den1,t)grid text(4,1.7,'Zeta=0'); hold step(num,den2,t) text (3.3,1.5,'0.25') step(num,den3,t) text (3.5,1.2,'0.5') step(num,den4,t) text (3.3,0.9,'1.0') step(num,den5,t) text (3.3,0.6,'2.0') title('Step-Response Curves for G(s)=4/s2+4(zeta)s+4')Current plot held其对应的波形图为:实验结果分析:由=0的图形可得,其产生等幅震荡,当0<<1时,随着的增大,其震荡幅度越来越小,且振荡频率也变小;当=1时震荡频率消失,系统最终趋于稳定,且当>1时,随着的增大,系统趋于稳定所用时间就越长。由上可得,=1是系统的临界阻尼。计算=0.25时的各项性能指标如下:此时系统的特征方程为:D(s)=4/s2+s+4'),与标准形式对比得,故超调量=44.4%;故上升时间td=0.942s故其峰值时间tp=1.62s故其调节时间ts=6s由题可能系统为0型系统,由其中A=1,故静态误差为:ess=0.5将理论计算的各项性能指标与实验所得波形图相比较,其在误差允许范围内是正确的。(2)绘制出当=0.25, 分别取1,2,4,6时单位阶跃响应曲线,分析参数对系统的影响。实验结果:当=0.25,取不同值时,其对应的程序代码为:num1=0 0 1; den1=1 0.5 1; t=0:0.1:10; step(num1,den1,t); grid; hold ontext(3.1,1.4,'wn=1')num2=0 0 4; den2=1 1 4;step(num2,den2,t); hold ontext(1.7,1.4,'wn=2')num3=0 0 16; den3=1 2 16;step(num3,den3,t); hold ontext(1.0,1.4,'wn=3')num4=0 0 36;den4=1 3 36;step(num4,den4,t); hold ontext(0.1,1.4,'wn=4')其对应的波形图为:实验结果分析:由图可得,取不同值时,波形图所能达到的最大值不变,即不影响系统的超调量,由上可得越大时输出结果震荡的越快,其达到峰值的时间也越短,调节时间也越短,上升时间也越短。但系统在t区域无穷大时的稳态误差基本一致。3系统的特征方程式为,试用三种判稳方式判别该系统的稳定性。实验结果:判别系统稳定性的方法一相应的程序代码是:roots(2 1 3 5 10)ans = 0.7555 + 1.4444i 0.7555 - 1.4444i -1.0055 + 0.9331i -1.0055 - 0.9331i通过matlab软件直接对系统闭环特征方程求根,可得系统有两个共轭复根有正实部,即系统存在在虚轴右半部的根,有系统稳定的条件得,系统不稳定。判别系统稳定性的方法二其对应的程序代码应为:den=2 1 3 5 10; r,info=routh(den)r = 2.0000 3.0000 10.0000 1.0000 5.0000 0 -7.0000 10.0000 0 6.4286 0 0 10.0000 0 0info =所判定系统有 2 个不稳定根!通过使用matlab上的劳斯判据的程序,可直接得到系统有两个不稳定的根,即这是一个不稳定的系统。实验结果分析:对比一二可得,其结果相吻合,即系统不稳定。4单位负反馈系统的开环模型为试分别用劳斯稳定判据和赫尔维茨稳定判据判断系统的稳定性,并求出使得闭环系统稳定的K值范围。实验结果:用劳斯判据的程序代码分别由下,分别取k=666.24、666.25、666.26其对应的程序代码分别为:K=666.24时:den=1 12 69 198 200+666.24den = 1.0000 12.0000 69.0000 198.0000 866.2400 r,info=routh(den)r = 1.0000 69.0000 866.2400 12.0000 198.0000 0 52.5000 866.2400 0 0.0023 0 0 866.2400 0 0info =所要判定系统稳定!K=666.25时:r = 1.0000 69.0000 866.2500 12.0000 198.0000 0 52.5000 866.2500 0 105.0000 0 0 866.2500 0 0info =所要判定系统稳定!K=666.26时:den=1 12 69 198 200+666.26den = 1.0000 12.0000 69.0000 198.0000 866.2600>> r,info=routh(den)r = 1.0000 69.0000 866.2600 12.0000 198.0000 0 52.5000 866.2600 0 -0.0023 0 0 866.2600 0 0info =所判定系统有 2 个不稳定根!实验结果分析:有以上三个劳斯判据的结果可得,在k=666.25时系统临界稳定,有上可得系统稳定的时0<k<666.25。实验心得与体会:经过本实验对matlab函数调用的学习,让我在软件上比较直接的而观察到了,阻尼比和自然震荡频率的变化对系统动态性能指标的影响,基本上掌握了如何运用调解阻尼比和振动频率来调解系统动态指标从而让系统更好的符合要求运作的理论知识。此外对劳斯判据函数的学习,也让我掌握了如何运用软件求取复杂系统稳定的方法。实验三 线性系统的根轨迹一、实验目的1. 熟悉MATLAB用于控制系统中的一些基本编程语句和格式。2. 利用MATLAB语句绘制系统的根轨迹。3. 掌握用根轨迹分析系统性能的图解方法。4. 掌握系统参数变化对特征根位置的影响。二、基础知识及MATLAB函数 根轨迹是指系统的某一参数从零变到无穷大时,特征方程的根在s平面上的变化轨迹。这个参数一般选为开环系统的增益K。课本中介绍的手工绘制根轨迹的方法,只能绘制根轨迹草图。而用MATLAB可以方便地绘制精确的根轨迹图,并可观测参数变化对特征根位置的影响。假设系统的对象模型可以表示为 系统的闭环特征方程可以写成 对每一个K的取值,我们可以得到一组系统的闭环极点。如果我们改变K的数值,则可以得到一系列这样的极点集合。若将这些K的取值下得出的极点位置按照各个分支连接起来,则可以得到一些描述系统闭环位置的曲线,这些曲线又称为系统的根轨迹。三、实验内容1请绘制下面系统的根轨迹曲线同时得出在单位阶跃负反馈下使得闭环系统稳定的K值的范围。实验结果:当时其对应求根轨迹即相关参数的程序代码为:den=conv(1,2,2,1,6,13),0;num=1;G=tf(num,den);>> rlocus (G); %绘制系统的根轨迹 k,r=rlocfind(G) Select a point in the graphics windowselected_point = 0.0071 + 0.9627ik = 28.7425r = -2.8199 + 2.1667i -2.8199 - 2.1667i -2.3313 -0.0145 + 0.9873i -0.0145 - 0.9873i其对应的根轨迹图为:可得根轨迹的绘制规则:由题给开环函数得系统有一个在实轴上的极点为0,在复数域有俩对共轭极点,无有限零点,有五个无限零点。有上可得其有五条根轨迹,且在实轴上的根轨迹区间为0,无穷大,有四条渐近线分别为0.2,0.6,1.4,1.8,每条根轨迹沿着根轨迹方向趋近;对比如上根轨迹图,基本相符。用软件上取根轨迹与虚轴的交点得临界k=28.7425综合以上可得,系统稳定时k的取值范围为:0<K< 28.7425当时其对应求根轨迹即相关参数的程序代码为:den=conv(1,1,conv(1,12,100,1,10);num=1,12;G=tf(num,den);>> rlocus (G); >> grid>> xlabel('Real Axis'),ylabel('Imaginary Axis') title('Root Locus') >> k,r=rlocfind(G) Select a point in the graphics windowselected_point = -4.4964 +10.2484ik = 1.5299e+003r = -21.6829 -4.4371 +10.2156i -4.4371 -10.2156i -0.4429 其对应的根轨迹图为: 根轨迹绘制规则:由题给开环函数的,系统有两个在实轴上的极点,在复数域有一对共轭复数极点,在实轴上有一个零点,则其应有三个无穷零点。其在实轴上的根轨迹区间为-10,-1; -无穷大,-12,系统有三条渐近线,与实轴的夹角分别为/3;;4/3;两个实轴上的积点之间会产生一个分离点,共有四条根轨迹,分别向渐近线趋近。将以上规则与如上根轨迹图比较基本相符。用软件上取根轨迹与虚轴的交点得临界k=1529综合以上可得,系统稳定时k的取值范围为:0<K<1529当时其对应求根轨迹即相关参数的程序代码为:num=0.05 1;den=conv(0.0714,1,0.012,0.1,1),0;rlocus(num,den)gridxlabel('Real Axis'),ylabel('Imaginary Axis')title('Root Locus')k,r=rlocfind(num,den)Select a point in the graphics windowselected_point = 0.0384 + 8.5221ik = 7.9890r = 0.0123 + 8.5543i 0.0123 - 8.5543i -11.1818 + 1.5456i -11.1818 - 1.5456i其对应的波形图为:其根轨迹规则为;其在实轴上面有两个极点分别为0,-14;在复数域有一对共轭复数根;一个实数零点-20,其有四条根轨迹,实轴上的根轨迹区间为-14,0,无穷大,-20;实轴上的两个实极点之间有一个分离点,有三条渐近线分别为:/3,,4/3。根轨迹分别向相应的渐近线趋近。用软件上取根轨迹与虚轴的交点得临界k=7.9890综合以上可得,系统稳定时k的取值范围为:0<K<7.9890。2. 在系统设计工具rltool界面中,通过添加零点和极点方法,试凑出上述系统,并观察增加极、零点对系统的影响。实验结果:当时,通过逐次增加零极点的程序代码为: num=1;den=1 0;G=tf(num,den);rltool(G)其对应的根轨迹图为:此时对应的阶跃响应波形图为:当增加一对共轭复数根-1+j1,-1-j1,时,对应的根轨迹图为:此时对应的阶跃响应波形图为:分析:当增加一对共轭复根时,系统开始震荡,且超调量加大。当增加一对共轭复数根-3+2j,-3-2j时,对应的根轨迹图为:此时对应的阶跃响应波形图为:分析:当进一步加入极点时,系统的响应速度变快了,而且波动幅度和频率都变大了,达到稳定所需要的时间变得更长了。当时,其对应求根轨迹即相关参数的程序代码为: num=1;den=1,1;G=tf(num,den);rltool(G)对应的根轨迹图为:此时对应的阶跃响应波形图为:当增加一个积点-10时,其对应的根轨迹图为:此时对应的阶跃响应波形图为:结果分析:当增加一个极点时,系统的调节时间变短了,即响应速度变快了,但是系统误差变大了,系统稳定性变差。由于添加的极点离虚轴较远,鼓起对系统性能指标的影响相对较小。当增加一对共轭复数极点-6+8j,-6-8j,其对应的根轨迹图为:此时对应的阶跃响应波形图为:结果分析:根据以上根轨迹的变化可得当k的变化 超过一定值后,系统将出现不稳定的情况;加极点后,系统的波动加剧,稳定性进一步变差。增加一个实零点-12后其对应的根轨迹图为:此时对应的阶跃响应波形图为:结果分析:增加零点以后,系统趋于稳定所需要的时间大大缩短,根轨迹也被朝左半平面拉动,这说明增加零点后,系统的稳定性能变得更好了。当时,其对应求根轨迹即相关参数的程序代码为: num=1;den=1,0;G=tf(num,den);rltool(G)对应的根轨迹图为:此时对应的阶跃响应波形图为:当增加一个零点-20时,其对应的根轨迹图为:此时对应的阶跃响应波形图为:结果分析:当加入零点以后,系统的波动变小,稳定性能明显提高。当增加一个极点-14时,其对应的根轨迹图为:此时对应的阶跃响应波形图为:结果分析:当增加极点以后,系统的超调量变大,稳定性能降低。当增加一对共轭复数极点-4.15+8.11j,-4.15-8.11j,其对应的根轨迹图为:此时对应的阶跃响应波形图为:结果分析:当增加共轭极点后,系统的响应速度变快,但是出现震荡,震荡频率加快,系统稳定性变差。心得体会:通过本次实验,我了解了matlab中rlocus()及分析函数rlocfind(),sgrid()的使用,学会了用这些函数工具绘制系统的根轨迹,并且求系统稳定的临界开环增益K。在做添加零、极点的试验中,我学会了根轨迹的系统设计工具rltool,通过对此工具的使用,加深了我对在系统函数中添加零、极的作用的了解。