线性的控制试验报告材料.docx
《线性的控制试验报告材料.docx》由会员分享,可在线阅读,更多相关《线性的控制试验报告材料.docx(31页珍藏版)》请在冰豆网上搜索。
线性的控制试验报告材料
实验一
基于MATLAB/Simulink建立控制系统的数学模型
一.试验目的
1)熟悉MATLAB试验环境,掌握MATLAB命令窗口的基本操作。
2)掌握MATLAB建立控制系统数学模型的命令及模型相互转换的方法。
3)掌握使用MATLAB命令化简模型基本连接的方法。
4)学会使用Simulink模型结构图化简复杂控制系统模型的方法。
二.实验内容
(1)控制系统模型的建立
控制系统常用的数学模型有四种:
传递函数模型(tf对象),零极点增益模型(zpk对象),结构框图模型和状态空间模型(ss对象)。
经典控制理论中数学模型一般使用前三种模型,状态空间模型属于现代控制理论范畴。
1)传递函数模型(也称多项式模型)。
连续系统的传递函数模型为
G(s)=≧m
在MATLAB中用分子,分母多项式系数按s的降幂次序构成两个向量:
Num=[b0,b1,…bm],den=[a0,a1,…an]。
用函数tf()来建立控制系统的传递函数模型,用函数printsys()来输出控制系统的函数,其命令调用格式为
Sys=tf(num,den)和printsys(num,den)
Tips:
对于已知的多项式模型传递函数,其分子,分母多项式系数两个向量可分别用sys.num{1}与sys.den{1}命令求出。
这在MATLAB程序设计中非常有用。
(2)实例
【1】已知系统传递函数
【解】MATLAB程序为
>>num=[013];
>>den=[1221];
>>printsys(num,den)
运行后命令窗口显示:
num/den=
s+3
---------------------
s^3+2s^2+2s+1
【2】已知系统传递函数,试建立控制系统的传递函数模型。
【解】MATLAB程序为
>>num=5*conv(conv([1,2],[1,2]),[1,6,7]);
>>den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,0,2,1]))));
>>Gs=tf(num,den)
运行后命令窗口显示:
Transferfunction:
5s^4+50s^3+175s^2+260s+140
-----------------------------------------------
s^7+3s^6+5s^5+8s^4+9s^3+5s^2+s
【3】建立控制系统的传递函数模型:
【解】MATLAB程序为
>>num=5;
>>den=conv([1,0],conv([1,1],[1,4,4]));
>>Gs=tf(num,den)
运行后命令窗口显示:
Transferfunction:
5
-------------------------
s^4+5s^3+8s^2+4s
【4】已知传递函数,试建立控制系统的零极点模型。
【解】MATLAB程序为
>>k=10;
>>z=[-5];
>>p=[-0.5,-2,-3];
>>sys=zpk(z,p,k)
运行后命令窗口显示:
Zero/pole/gain:
10(s+5)
-------------------
(s+0.5)(s+2)(s+3)
【5】建立控制系统的零极点模型:
【解】MATLAB程序为
>>k=8;
>>z=[-1+i,-1-i];
>>p=[0,0,-5,-6,i,-i];
>>sys=zpk(z,p,k)
运行后命令窗口显示:
Zero/pole/gain:
8(s^2+2s+2)
------------------------
s^2(s+5)(s+6)(s^2+1)
【6】已知系统传递函数,求其等效的零极点模型。
【解】MATLAB程序为
>>num=[1,5,6];dem=[1,2,1,0];
>>[z,p,k]=tf2zp(num,den);
>>sys=zpk(z,p,k)
运行后命令窗口显示:
Zero/pole/gain:
(s+3)(s+2)
---------------
s(s+1)^2
【7】建立控制系统的多项式模型。
【解】MATLAB程序为
>>k=8;z=[-1;-2];p=[0;-5;-6;-3];
>>[num,den]=zp2tf(z,p,k);
>>sys=tf(num,den)
运行后命令窗口显示:
Transferfunction:
8s^2+24s+16
----------------------------
s^4+14s^3+63s^2+90s
【8】已知系统,,求负反馈闭环传递函数。
【解】MATLAB程序为
>>numg=[2,5,1];deng=[1,2,3];
>>numh=[5,10];denh=[1,10];
>>[num,den]=feedback(numg,deng,numh,denh);
>>printsys(num,den)
运行后命令窗口显示:
num/den=
2s^3+25s^2+51s+10
---------------------------
11s^3+57s^2+78s+40
【9】已知系统,求它的单位负反馈闭环传递函数。
【解】MATLAB程序为
>>numg=[2,1];deng=[1,2,3];
>>numh=[1];denh=[1];
>>[num,den]=feedback(numg,deng,numh,denh);
>>printsys(num,den)
运行后命令窗口显示:
num/den=
2s+1
-------------
s^2+4s+4
三、实验小结
通过对自动控制原理实验教程的学习,让我学到了很多东西:
1.自控实验和我本学期所学的线性控制密切相连,线性控制是自动化专业必修并且需要深入研究的课程,通过对自动控制实验的学习,使得理论与实践融合在了一起,在实践中验证了所学的理论,又在实践中发展了理论,培养了我们理论与实践相结合、开拓创新思维的能力。
2.通过老师的认真讲解,让我对Matlab有了更深一层的了解。
实验二
基于MATLAB控制系统的单位阶跃响应
一.试验目的
1)学会使用MATLAB编程绘制控制系统的单位阶跃响应曲线。
2)研究二阶控制系统中ξ,Wn对系统阶跃响应的影响。
3)掌握准确读取动态特性指标的方法。
4)分析二阶系统闭环极点和闭环零点对系统动态性能的影响。
二.实验内容
已知二阶控制系统:
(1)求该系统的特征根
若已知系统的多项式,D(s),利用roots()函数可以求其特征根。
若已知系统的传递函数,利用eig()函数可以直接求出系统的特征根。
两函数计算的结果完全相同。
num=10;den=[1210];roots(den)
sys=tf(num,den);eig(sys)
可得到系统的特征根为-1.0000+3.0000i
-1.0000-3.0000i
(2)求相同的闭环根,ξ,Wn
函数damp()可以计算出系统的闭环根,阻尼比ξ和无阻尼振荡频率Wn
den=[1210];
damp(den)
结果显示:
EigenvalueDampingFreq.(rad/s)
-1.00e+000+3.00e+000i3.16e-0013.16e+000
-1.00e+000-3.00e+000i3.16e-0013.16e+000
即系统的闭环根为一对共轭复根-1+3i与-1-3i,阻尼比ξ=0.316,无阻尼振荡频率为
Wn=3.16rad/s。
(3)求系统的单位阶跃响应
step()函数可以计算连续系统单位阶跃响应,其调用格式为
step(sys)或step(num,den)
函数在当前图形窗口中直接绘制出系统的单位阶跃响应曲线,对象sys可以是tf(),zpk()函数中任何一个建立的系统模型。
第二种格式中的t可以指定一个仿真终止时间,也可以设置为一个时间矢量(如t=Tstart:
dt:
Tfinal,即Tstart是初始时刻,dt是步长,Tfinal是终止时刻)。
(3)实例
【1】用MATLAB画传递函数的阶跃时域响应
解:
作单位阶跃响应曲线MATLAB程序如下:
>>step(10,[1210])
运行该程序,可得系统的单位阶跃响应曲线如下:
【2】已知单位负反馈前项通道的传递函数,试作出其单位阶跃响应曲线,准确读出其动态性能指标,并记录数据。
解:
作单位阶跃响应曲线MATLAB程序如下:
>>sys=tf(100,[1,5,0]);
>>sysc=feedback(sys,1);
>>step(sysc)
运行该程序,可得系统的单位阶跃响应曲线如下:
【3】用MATLAB画传递函数的单位阶跃响应曲线。
解:
作单位阶跃响应曲线MATLAB程序如下:
>>num=100;
>>den=[1,0,100];
>>step(num,den)
运行该程序,可得系统的单位阶跃响应曲线如下:
【4】用MATLAB画传递函数的单位阶跃响应曲线。
解:
作单位阶跃响应曲线MATLAB程序如下:
>>num=100;
>>den=[1,14.14,100];
>>step(num,den)
运行该程序,可得系统的单位阶跃响应曲线如下:
【5】用MATLAB画传递函数的单位阶跃响应曲线。
解:
作单位阶跃响应曲线MATLAB程序如下:
>>num=100;
>>den=[1,20,100];
>>step(num,den)
运行该程序,可得系统的单位阶跃响应曲线如下:
【6】用MATLAB语句画传递函数的单位阶跃响应曲线。
解:
作单位阶跃响应曲线MATLAB程序如下:
>>num=100;
>>den=[1,24,100];
>>step(num,den)
运行该程序,可得系统的单位阶跃响应曲线如下:
总结:
当ξ=0时,系统的阶跃响应曲线等幅振荡;当0<ξ<1时系统的阶跃响应曲线衰减振荡;当ξ>=1时,系统阶跃响应曲线单调上升,且无超调量。
【7】用MATLAB画传递函数
的阶跃响应图。
解:
作单位阶跃响应曲线MATLAB程序如下:
>>num=100;
>>den=[1,5,100];
>>step(num,den),holdon
>>num=900;
>>den=[1,15,900];
>>step(num,den)
>>num=25;
den=[1,2.5,25];
>>step(num,den)>>
运行该程序,可得系统的单位阶跃响应曲线如下:
结论:
当ξ一定时,随着Wn增大,系统响应加速,振荡频率增大,系统调整时间缩短,但超调量没变化。
三、实验小结
纸上得来终觉浅,绝知此事要躬行。
实践是检验真理的唯一标准。
在短暂的实验过程中,我深深的感觉到自己所学知识的肤浅。
做任何事我们都不要想着一蹴而就,坚持和努力,才能达到一定的高度。
实验三
基于Simulink控制系统的稳态误差分析
一.试验目的
1)掌握使用Simulink仿真环境进行控制系统稳态误差分析的方法。
2)了解稳态误差分析的前提条件是系统处于稳定状态。
3)研究系统在不同典型输入信号作用下,稳态误差变化。
4)分析系统型次及开环增益对稳态误差的影响。
二.实验原理
稳态误差是系统稳态性能指标,是系统控制精度的度量。
计算稳态误差一系统稳定为前提条件。
系统稳态误差既与其结构和参数有关,也与控制信号的形式,大小和作用点有关。
三.实验内容
【1】已知一个负反馈系统开环传递函数为,
分别作出K=1和K=10时,系统单位阶跃响应曲线并求单位阶跃响应稳态误差。
【解】K=10时
MATLAB判稳程序为:
>>n1=100;
>>d1=conv([10],[0.11]);
>>G=tf(n1,d1);
>>sys=feedback(G,1);
>>roots(sys.den{1})
执行结果为:
ans=
-5.0000+31.2250i
-5.0000-31.2250i
在simulink环境下,建立系统数学模型,如下图1所示。
设置仿真参数并运行,观察示波器Scope中系统的单位阶跃响应曲线,如下图2所示。
图1
图2
【分析】曲线表明,1型单位反馈系统在单位阶跃输入作用下,稳态误差=0,即单位反馈系统稳态时能完全跟踪阶跃输入,是一阶无静差系统。
K=1时,MATLAB判稳程序为:
>>n1=10;
>>d1=conv([10],[0.11]);
>>G=tf(n1,d1);
>>sys=feedback(G,1);
>>roots(sys.den{1})
执行结果为:
ans=
-5.0000+8.6603i
-5.0000-8.6603i
在simulink环境下,建立系统数学模型,如下图1所示。
设置仿真参数并运行,观察示波器Scope中系统的单位阶跃响应曲线,如下图2所示。
图1
图2
【2】对【1】中的系统,分别作出K=0.1和K=1时,系统单位斜坡响应曲线并求单位斜坡响应稳态误差。
【解】K=0.1时
在simulink环境下,建立系统数学模型,如下图1所示。
设置仿真参数并运行,观察示波器Scope中系统的单位阶跃响应曲线,如下图2所示。
图1
图2
当K=1时
在simulink环境下,建立系统数学模型,如下图1所示。
设置仿真参数并运行,观察示波器Scope中系统的单位阶跃响应曲线,如下图2所示。
图1
图2
实验曲线表明,1型单位反馈系统在单位斜坡输入作用下,1型系统稳态时能跟踪斜坡输入,但存在一个稳态位置误差为1,而且随着系统开环增益的增加,稳态误差减小,故可以通过增大系统开环增益来减小稳态误差。
【3】将上述实验内容中的积分环节改换为一个惯性环节,开环增益改为1,系统变为0型系统,在输入端分别给单位阶跃信号和单位斜坡信号,重新仿真运行,在示波器scope中观察系统响应曲线,并读出稳态误差。
单位阶跃
单位斜坡
斜坡误差响应和单位斜坡响应
阶跃误差响应和单位阶跃响应
实验表明,0型系统在单位阶跃输入作用下,系统稳态时能跟踪阶跃输入,但存在一个稳态误差=0.5.但是0型系统在单位斜坡输入作用下,系统不能跟踪斜坡输入,随时间的增加,误差越来越大。
【4】将上述实验内容中开环增益改为1,在其前项通道中再增加一个积分环节,系统变成2型系统。
分别取零点s+5,s+8,s+10,s+12.在输入端给定单位斜坡信号,重新仿真运行,观察系统响应曲线和稳态误差。
2型系统(取零点s+5)
斜坡误差响应和单位斜坡响应图(取零点s+5)
2型系统(取零点s+8)
斜坡误差响应和单位斜坡响应图(取零点s+8)
2型系统(取零点s+10)
斜坡误差响应和单位斜坡响应图(取零点s+10)
2型系统(取零点s+12)
斜坡误差响应和单位斜坡响应图(取零点s+12)
结论:
零点值越大,系统振荡的越厉害,也越不稳定。
四、实验小结
自控原理实验课让我收获颇丰,同时也让我发现了自身的不足。
在实验课上学得的,我将发挥到其它中去,也将在今后的学习和工作中不断提高、完善;在此间发现的不足,我将努力改善,通过学习、实践等方式不断提高,克服那些不应成为学习、获得知识的障碍。
在今后的学习、工作中有更大的收获,在不断地探索中、在无私的学习、奉献中实现自己的人身价值!
实验四
基于MATLAB控制系统的根轨迹及其性能分析
一.试验目的
1)掌握使用MATLAB绘制控制系统零极点图和根轨迹图
2)学会分析控制系统根轨迹的一般规律。
3)利用根轨迹图进行系统性能分析。
4)研究闭环零,极点对系统性能的影响。
二.实验原理
(1)根轨迹与稳定性
当系统开环增益从0到无穷大变化时,若根轨迹不会越过虚轴进入右半平面,那么系统对所有的k值都是稳定的;若根轨迹越过虚轴进入右半平面,那么根轨迹与虚轴交点处的k值,就是临界开环增益。
应用根轨迹法,可以迅速确定系统在某一开环增益或某一参数下的闭环零,极点位置,从而得到相应的闭环传递函数。
(2)二阶系统根轨迹的一般规律
若闭环极点为负数极点,系统为欠阻尼系统,单位阶跃响应为阻尼振荡过程,且超调量将随k值的增大而加大,但调节时间的变化不显著。
若闭环两个实数极点重合,系统为临界阻尼系统,单位阶跃响应为非周期过程,但是影响速度较过阻尼快。
若所有闭环极点位于实轴上,系统为过阻尼系统,单位阶跃响应为非周期过程。
三.实验内容
1.已知开环传递函数
绘制控制系统的根轨迹图,并分析根轨迹的一般规律。
MATLAB程序为:
>>k=1;
>>z=[];
>>p=[0-1-2];
>>[num,den]=zp2tf(z,p,k);
>>rlocus(num,den),grid
运行后得到的根轨迹如下图1:
图1
分析:
1.根轨迹的条数及其运动方向。
根轨迹有3条,分别从起点(0,0),(-1,0)和(-2,0)出发,随着k从0到无穷大变化,趋向无穷远处。
2.位于负实轴上的根轨迹(-∞,-2)和(-1,0)区段,其对应的阻尼ξ>1,超调量为0,系统处
于过阻尼状态,而且在远离虚轴的方向,增益k增大,振荡频率
随之提高,系统动态衰减速率相应加大。
3.在根轨迹的分离点(-0.423,0)处,对应用阻尼ξ=1,超调量为0,开环增益k=0.385,系统处于临界阻尼状态。
4.根轨迹经过分离点后;离开实轴,吵s右半平面运动。
根轨迹在分离点与虚轴这个区间时,闭环极点由实数极点变为共轭复数极点,对应阻尼0<ξ<1,超调量越靠近虚轴,增益k越大,阻尼越小,振荡频率
越高,振幅衰减越大。
5.当根轨迹与虚轴相交时,闭环根位于虚轴上,闭环极点是一对纯虚根(±j1.44),
阻尼ξ=0,超调量达到100%,系统处于无阻尼状态,其动态响应将出现等幅震荡。
此时对应的K=6,称为临界稳定增益
2.已知一负反馈系统的开环传递函数
绘制其根轨迹图,确定根轨迹的分离点与相应的增益K,临界稳定时的增益
MATLAB程序为:
>>k=1;z=[-3];p=[0-2];
>>[num,den]=zp2tf(z,p,k);
>>rlocus(num,den),grid
运行后得到的根轨迹及根轨迹的分离点与相应的增益K,临界稳定时的增益
如下图2:
图2
四、实验小结
在这几个星期实验课的学习中,让我受益颇多。
一、自动控制实验让我养成了课前预习的好习惯。
一直以来就没能养成课前预习的好习惯(虽然一直认为课前预习是很重要的),但经过这一段时间,让我深深的懂得课前预习的重要。
只有在课前进行了认真的预习,才能在课上更好的学习,收获的更多、掌握的更多。
二、自动控制实验培养了我的动手能力。
“实验就是为了让你动手做,去探索一些你未知的或是你尚不是深刻理解的东西。
”