自动控制原理实验.docx
- 文档编号:9018166
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:34
- 大小:382.89KB
自动控制原理实验.docx
《自动控制原理实验.docx》由会员分享,可在线阅读,更多相关《自动控制原理实验.docx(34页珍藏版)》请在冰豆网上搜索。
自动控制原理实验
实验1.控制系统模型的建立
1.1.实验目的
1、掌握利用MATLAB建立控制系统模型的方法。
2、掌握系统的各种模型表述及相互之间的转换关系。
3、学习和掌握系统模型连接的等效变换。
1.2.实验原理
1.2.1.系统模型的MATLAB描述
系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数模型、状态空间模型等。
这里主要介绍系统传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的MATLAB描述方法。
1)传递函数(TF)模型
传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为
在MATLAB中,直接使用分子分母多项式的行向量表示系统,即
调用tf函数可以建立传递函数TF对象模型,调用格式如下:
tfdata函数可以从TF对象模型中提取分子分母多项式,调用格式如下:
2)零极点增益(ZPK)模型
传递函数因式分解后可以写成
式中,称为传递函数的零点,称为传递函数的极点,称为传递系数(系统增益)。
即:
调用zpk函数可以创建ZPK对象模型,调用格式如下:
同样,MATLAB提供了zpkdata命令用来提取系统的零极点及其增益,调用格式如下:
函数pzmap可用于求取系统的零极点或绘制系统的零极点图,调用格式如下:
3)状态空间(SS)模型
由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成:
其中:
x为n维状态向量;u为r维输入向量;y为m维输出向量;A为n×n方阵,称为系统矩阵;B为n×r矩阵,称为输入矩阵或控制矩阵;C为m×n矩阵;D为m×r矩阵,称为直接传输矩阵。
在MATLAB中,直接用矩阵组表示系统,调用ss函数可以创建SS对象模型,调用格式如下:
同样,MATLAB提供了ssdata命令用来提取系统的A,B,C,D矩阵,调用格式如下:
4)三种模型之间的转换
上述三种模型之间可以相互转换,MATLAB实现方法如下:
TF模型→ZPK模型:
zpk(SYS)或tf2zp(num,den)
TF模型→SS模型:
ss(SYS)或tf2ss(num,den)
ZPK模型→TF模型:
tf(SYS)或zp2tf(z,p,k)
ZPK模型→SS模型:
ss(SYS)或zp2ss(z,p,k)
SS模型→TF模型:
tf(SYS)或ss2tf(A,B,C,D)
SS模型→ZPK模型:
zpk(SYS)或ss2zp(A,B,C,D)
1.2.2.系统模型的连接
在实际应用中,整个系统是由多个单一的模型组合而成基本组合方式有串联连接、并联连接和反馈连接
在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。
在MATLAB中可以直接使用“*”运算实现串联连接,使用“+”运算实现并联连接。
反馈系统传递函数求解可以通过命令feedback实现,调用格式如下:
其中,G为前向传递函数,H为反馈传递函数;当sign=+1时,GH为正反馈系统传递函数;当sign=-1时,GH为负反馈系统传递函数;默认是负反馈系统。
1.3.实验内容及结果
1、已知控制系统的传递函数如下:
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统的零极点图。
●代码:
num=[21840];
den=[1586];
Gtf=tf(num,den)
Gzpk=zpk(Gtf)
Gss=ss(Gtf)
pzmap(Gzpk);
gridon;
●系统传递函数模型:
Gtf=
2s^2+18s+40
---------------------
s^3+5s^2+8s+6
●零极点增益模型:
Gzpk=
2(s+5)(s+4)
--------------------
(s+3)(s^2+2s+2)
●系统的状态空间方程模型:
Gss=
a=
x1x2x3
x1-5-2-1.5
x2400
x3010
b=
u1
x14
x20
x30
c=
x1x2x3
y10.51.1252.5
d=
u1
y10
●零极点图:
系统的零极点图
2、已知控制系统的状态空间方程如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
●代码:
a=[0100;0010;0001;-1-2-3-4];
b=[0;0;0;1];
c=[10200];
d=[0];
Gss=ss(a,b,c,d)
Gtf=tf(Gss)
Gzpk=zpk(Gss)
pzmap(Gzpk);
gridon;
●实验结果:
Gss=
a=
x1x2x3x4
x10100
x20010
x30001
x4-1-2-3-4
b=
u1
x10
x20
x30
x41
c=
x1x2x3x4
y110200
d=
u1
y10
Continuous-timestate-spacemodel.
Gtf=
2s+10
-----------------------------
s^4+4s^3+3s^2+2s+1
Continuous-timetransferfunction.
Gzpk=
2(s+5)
---------------------------------------------
(s+3.234)(s+0.6724)(s^2+0.0936s+0.4599)
Continuous-timezero/pole/gainmodel.
●零极点图:
系统的零极点图
3、已知三个系统的传递函数分别为
试用MATLAB求上述三个系统串联后的总传递函数。
●代码:
num1=[265];
den1=[1452];
G1=tf(num1,den1);
num2=[141];
den2=[1980];
G2=tf(num2,den2);
z=[-3-7];
p=[-1-4-6];
k=[5];
G3=zpk(z,p,k);
G=G1*G2*G3
●实验结果:
G=
10(s+3.732)(s+3)(s+7)(s+0.2679)(s^2+3s+2.5)
----------------------------------------------------
s(s+8)(s+6)(s+4)(s+2)(s+1)^4
4、已知如下图所示的系统框图
试用MATLAB求该系统的闭环传递函数。
●代码:
num1=[1];
den1=[11];
G1=tf(num1,den1);
num2=[1];
den2=[0.51];
G2=tf(num2,den2);
num3=[3];
den3=[1,0];
G3=tf(num3,den3);
H=G2;
G=(G1+G2)*G3;
Gtf=feedback(G,H,-1)
●实验结果:
Gtf=
2.25s^2+7.5s+6
---------------------------------------
0.25s^4+1.25s^3+2s^2+5.5s+6
5、已知如下图所示的系统框图
试用MATLAB求该系统的闭环传递函数。
●代码:
num1=[10];
den1=[11];
G1=tf(num1,den1);
num2=[2];
den2=[110];
G2=tf(num2,den2);
num3=[13];
den3=[12];
H2=tf(num3,den3);
num4=[50];
den4=[168];
H1=tf(num4,den4);
G=G1*feedback(G2,H2,+1);
Gtf=feedback(G,H1,-1)
●实验结果:
Gtf=
20s^3+160s^2+400s+320
----------------------------------------------------
s^6+10s^5+35s^4+44s^3+82s^2+116s-48
1.4.实验与总结与体会:
实验2.控制系统的暂态特性分析
2.1.实验目的
1.学习和掌握利用MATLAB进行系统时域响应和仿真的方法。
2.考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。
2.2.实验原理
2.2.1.系统的暂态性能指标
控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位阶跃响应定义出来,这些指标分别为:
(1)延迟时间
d:
响应曲线首次到达稳态值的50%所需的时间。
(2)上升时间
r:
响应曲线从稳态值的10%上升到90%所需的时间长,对于欠阻尼系统,通常指响应曲线首次到达稳态值所需的时间。
(3)峰值时间
p:
响应曲线第一次到达最大值的时间。
(4)调整时间
s:
响应曲线开始进入并保持在允许的误差(
2%或
5%)范围内所需要的时间。
(5)超调量
:
响应曲线的最大值和稳态值之差,通常用百分比表示
其中y(t)为响应曲线。
在MATLAB中求取单位阶跃响应的函数为step,其使用方法如下
step(sys)在默认的时间范围内会出系统响应的时域波形
step(sys,T)绘出系统在0—T范围内响应的时域波形
step(sys,ts:
tp:
te)绘出系统在ts—te范围内,以tp为时间间隔取样的响应波形
[y,t]=step(…)该代用格式不绘出响应波形,而是返回响应的数值向量及其对应的时间向量。
系统的暂态性能指标可以根据上述定义。
在响应曲线上用鼠标读取关键点或通过搜索曲线对听得数值向量中关键点来确定。
2.2.2.LITViewer工具
在MATLAB中提供了线行驶不变系统仿真的工具LITViewer,可以方便地观察系统的响应曲线和性能指标。
在命令窗口中键入litviewer即可启动LITViewer。
下面简要介绍LITViewer工具的使用方法。
1)【file】菜单
Import选项:
可以从Workspace或MAT文件中倒入系统模型。
Export选项:
讲当前窗口中的对象模型保存到Workspace或文件中。
Toolboxpreferences选项:
属性设置功能,可以设置控制系统中得到各种属性值。
PageSetup选项:
页面设置功能,可以对打印输出和显示页面进行设置。
2)【edit】菜单
PlotConfiguration选项:
对显示窗口及显示内容进行配置。
LineStyle选项:
线型设置功能,可以对输出响应曲线的线型进行设置。
ViewerPreferences选项:
对当前窗口的坐标、颜色、字体、响应曲线的特性参数等属性进行设置。
3)右键菜单
在运行界面上点击鼠标右键,将会弹出一个弹出式菜单,菜单上个选项的功能分别为:
PlotTypes:
选择回执的曲线类型,可选的类型有单位阶跃响应、单位冲击响应、波特图、奈奎斯特图、零极点图。
System:
选择需要仿真的系统。
Characteristic:
系统的性能指标选项。
Grid:
显示和关闭网格。
Normalize:
正常显示模式。
FullView:
满界面显示模式。
Properties:
性能编辑器选项,可以设置画面的标题、坐标标志、坐标范围、线型、颜色、性能指标等。
2.3.实验内容及结果
1.已知单位负反馈系统的前向通道的传递函数为
试用MATLAB绘制系统的单位阶跃响应
●实验代码:
G1=tf([80],[1,2,0]);
G=feedback(G1,1,-1);
step(G);
●实验结果:
2.已知二阶系统
1)ζ=0.6,ωn=5,试用MATLAB绘制系统单位阶跃响应曲线,
并求取系统的暂态性能指标。
2)ωn=1,ζ从0变化到2,求此系统的单位阶跃响应。
3)ζ=0.5,ωn从0变化到1(
),求此系统的单位阶跃响应。
4)观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。
●2.1实验代码:
es=0.6;
wn=5;
Gs1=tf([wn^2],[1,2*es*wn,wn^2]);
step(Gs1)
●实验结果:
根据上图的结果可以看出:
系统的上升时间tr=0.371s
系统的峰值时间tp=0.783s
系统的调整时间ts=1.17s
系统的超调量:
9.48%
●2.2实验代码:
wn=1
fores=0.4:
0.4:
2
Gs2=tf([wn^2],[1,2*es*wn,wn^2]);
step(Gs2)
holdon
end
●实验结果:
●2.3实验代码:
es=0.5;
forwn=0.2:
0.2:
1
Gs3=tf([wn^2],[1,2*es*wn,wn^2]);
step(Gs3)
holdon
end
●实验结果:
●2.4结果分析:
根据上面的结果,可以知道,ζ主要影响系统响应的峰值以及是否震荡,当ζ越小时,系统单位阶跃响应的峰值越大且曲线震荡越厉害;ωn主要影响系统的上升时间(峰值时间、调整时间),当ωn越大时,系统进入稳态的时间越短。
2.4.实验心得与体会
实验3.根轨迹分析
3.1.实验目的
1.学习和掌握利用MATLAB回执根轨迹图的方法。
2.学习和掌握利用根轨迹图分析系统的性能。
3.2.实验原理
3.2.1.根轨迹分析的MATLAB实现
根轨迹式指系统某一参数变化时,闭环特征根在s平面上运动的轨迹。
在MATLAB张,提供了用根轨迹分析的专门函数。
1)rlocus函数
该函数的使用方法如下:
Rlocus(sys)绘制单输入单输出LIT系统的根轨迹图。
Rlocus(sys,k)使用用户指定的根轨迹增益k来绘制系统的根轨迹图。
[r,k]=rlocus(sys)返回根轨迹增益和闭环极点值,不绘制根轨迹图。
2)rlocfind函数
该函数的使用方法如下:
[k,ploes]=rlocfind(sys)计算鼠标选取点处的根轨迹增益值和闭环极点值,可在图形窗口根轨迹图中显示出十字光标,当用户选择其中一点时,响应的增益值和极点值记录在k和ploes中。
[k,ploes]=rlocfind(sys,p)计算最靠近给定闭环极点p处的根轨迹增益。
3)sgrid函数
该函数的使用方法如下:
Sgrid可在连续系统根轨迹或零极点图上绘制出栅格线,栅格线有等阻尼系数和等自然频率先构成。
sgrid(‘new’)先清除当前的图形,然后绘制出栅格线,并将坐标属性设置成holdon。
sgrid(z,Wn)指定阻尼系数z和自然频率Wn。
Sgrid(z,Wn,’new’)指定阻尼系数z和自然频率Wn,在绘制栅格线之前清除当前的图形并将坐标轴属性设置成holdon。
3.2.2.Rltool工具
MATLAB提供了一个根轨迹设计工具Rltool,在命令窗口输入rltool命令即可启动该工具,也可以输入rltool(sys)命令打开系统模型sys的根轨迹设计器。
Rltool工具既可以分析系统根轨迹也能对系统进行设计,具体使用方法可以参考MATLAB帮助或查阅相关资料。
3.3.实验内容及结果
1.已知系统开环传递函数为:
(1)使用MATLAB绘制系统的根轨迹图。
(2)求根轨迹的两条分支离开实轴时的K值,并确定该K值所对应的所有闭环极点。
(3)以区间[-40,-5]之间的值替代s=-12处的极点,重新绘制根轨迹图,观察其对根轨迹图的影响。
●
(1)代码:
p=[-1-3-12];
z=[-5];
k=[1];
G=zpk(z,p,k);
rlocus(G);
●结果:
●
(2)代码:
p=[-1-3-12];
z=[-5];
k=[1];
G=zpk(z,p,k);
rlocus(G);
[k,poles]=rlocfind(G);
●结果:
从工作区中读出图中标注的分支离开实轴的点的坐标值,此时极点值为-2.12,对应的K值为3.4。
●(3)代码:
s=input('s=');
p=[-1-3s];
z=[-5];
k=[1];
G=zpk(z,p,k);
rlocus(G);
实验结果:
S=-40时:
s=-20时:
s=-10时:
s=-5时:
根据上面的实验结果可以得出:
随着s的变大,根轨迹中分离点逐渐靠近s=-1,根轨迹中的汇合点逐渐靠近s=-5,最后会消失。
2.已知系统开环传递函数为
(1)使用MATLAB绘制系统的根轨迹图。
(2)计算两条分支进入有半平面和两条分支复数极点出发在实轴相处的K值。
(3)以区间[-20,-1]之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。
●
(1)代码:
p=[0-2-4-4j-4+4j];
z=[-8];
k=[1];
G=zpk(z,p,k);
rlocus(G);
●结果:
●
(2)实验结果图形:
从图中可以读出,两点处的K值分别为:
K=55.6和K=2070
●(3)代码:
z=input('z=');
p=[0-2-4-4j-4+4j];
z=[z];
k=[1];
G=zpk(z,p,k);
rlocus(G);
●结果:
z=-20时:
z=-10时:
z=-5时:
z=-1时:
3已知单位负反馈系统的开环传递函数为
(1)实验MATLAB绘制系统的根轨迹图。
(2)分析使用稳定的K值范围和使字体无超调的K值范围,病通过观察系统的单位阶跃响应曲线加以验证。
●
(1)代码:
p=[0-2+j-2-j];
z=[];
k=[1];
G=zpk(z,p,k);
rlocus(G);
●结果:
●
(2)当系统稳定时,系统的极点位于坐标面的左半平面。
由上图可以得出,当根轨迹与虚轴相交时,对应K值为20.3,所以使系统稳定的K值得范围是[0,20.3];
当系统不存在零点时,极点如果在实轴上,那么响应是单调的,即无超调。
根据上图可以得出,使得系统无超调的K的取值范围为[1.85,2]。
取K=1.9,求系统的单位阶跃响应进行验证:
●代码:
p=[0-2+j-2-j];
z=[];
k=[1.9];
G1=zpk(z,p,k);
G=feedback(G1,1,-1);
step(G);
●结果:
根据上图结果,可以看出系统无超调,所以验证结果正确,之前得出的结论是正确的。
3.4.实验心得与体会
实验4.系统的频率特性分析
4.1.实验目的
1.学习和掌握利用MATLAB绘制系统Nyquist图和Bode图的方法。
2.学习和掌握利用系统的频率特性分析系统的性能。
4.2.实验原理
系统的频率特性是一种图解方法,分析运用系统的开环频率特性曲线,分析闭环系统的性能,如系统的稳态性能、暂态性能常用的频率特性曲线有Nyquist图和Bode图,在MATLAB中,提供了Nyquist图和Bode图的专门函数。
4.2.1.Nyquist图
nyquist函数可以用于计算或绘制连续时间LTI系统的Nyquist频率曲线,其使用方法如下:
nyquist(sys)绘制系统的Nyquist曲线
Nnyquist(sys,w)利用给定的频率向量w来绘制系统的Nyquist曲线。
[re,im]=nyquist(sys,w)返回Nyquist曲线的实部re和虚部im,不绘图。
4.2.2.Bode图
bode函数可以用于计算或绘制连续时间LTI系统的Bode图,起使用方法如下:
bode(sys)绘制系统的Bode图。
bode(sys,w)利用给定的频率向量w来绘制系统的Bode图。
[mag,phase]=bode(sys,w)返回Bode图数据的幅度mag和相位phase,不绘图。
4.2.3.幅度和相位裕度计算
margin函数可以用于从频率响应数据中计算出幅度裕度、相位裕度及其对应的角频率,其使用方法如下:
margin(sys)
margin(sys,w)
[Gm,PmWcg,Wep]=margin(sys)
[Gm,PmWcg,Wep]=margin(mag,phase,w)
其中不带输出参数时,可绘制出标有幅度裕度和相位裕度值得Bode图,带输出参数时,返回幅度裕度Gm、相位裕度Pm及其对应的角频率Weg和Wep。
4.3.实验内容及结果
1.已知开环传递函数为
绘制系统的Nyquist图,并讨论其稳定性。
●实验代码
num=[1000];
den=[181710];
G=tf(num,den);
nyquist(G);
实验结果:
在(-1,j0)左侧正穿越0次,负穿越2次,所以正负穿越之差为-2,所以是闭环不稳定的。
2.已知系统的开环函数为
(1)绘制系统的零极点图,根据零极点分布判断系统的稳定性。
(1)绘制系统的bode图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。
●实验代码:
num=[25/165/41];
den=[100];
G1=tf(num,den);
z=[];
k=10/(10/3*0.2/3*1/40);
p=[-3/10-3/0.2-40];
G2=zpk(z,p,k);
G=G1*G2;
figure;
pzmap(G);
figure;
margin(G);
●实验结果:
在Bode图中,相位裕度大于
,所以系统是稳定的。
3.已知系统的开环传递函数为
分别判断当开环放大系数K=5和K=10时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动控制 原理 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)