自动控制原理MATLAB仿真实验报告.docx
《自动控制原理MATLAB仿真实验报告.docx》由会员分享,可在线阅读,更多相关《自动控制原理MATLAB仿真实验报告.docx(39页珍藏版)》请在冰豆网上搜索。
自动控制原理MATLAB仿真实验报告
(此文档为word格式,下载后您可任意编辑修改!
)
实验一MATLAB及仿真实验(控制系统的时域分析)
一、实验目的
学习利用MATLAB进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性;
二、预习要点
1、系统的典型响应有哪些?
2、如何判断系统稳定性?
3、系统的动态性能指标有哪些?
三、实验方法
(一)四种典型响应
1、阶跃响应:
阶跃响应常用格式:
1、;其中可以为连续系统,也可为离散系统。
2、;表示时间范围0---Tn。
3、;表示时间范围向量T指定。
4、;可详细了解某段时间的输入、输出情况。
2、脉冲响应:
脉冲函数在数学上的精确定义:
其拉氏变换为:
所以脉冲响应即为传函的反拉氏变换。
脉冲响应函数常用格式:
①;
②
③
(二)分析系统稳定性
有以下三种方法:
1、利用pzmap绘制连续系统的零极点图;
2、利用tf2zp求出系统零极点;
3、利用roots求分母多项式的根来确定系统的极点
(三)系统的动态特性分析
Matlab提供了求取连续系统的单位阶跃响应函数step、单位脉冲响应函数impulse、零输入响应函数initial以及任意输入下的仿真函数lsim.
四、实验内容
(一)稳定性
1.系统传函为
,试判断其稳定性
2.用Matlab求出的极点。
%Matlab计算程序
num=[32546];den=[134272];G=tf(num,den);pzmap(G);p=roots(den)
运行结果:
p=
-1.7680+1.2673i
-1.7680-1.2673i
0.4176+1.1130i
0.4176-1.1130i
-0.2991
图1-1零极点分布图
由计算结果可知,该系统的2个极点具有正实部,故系统不稳定。
%求取极点
num=[122];den=[17352];p=roots(den)
运行结果:
p=
-6.6553
0.0327+0.8555i
0.0327-0.8555i
-0.4100
故的极点s1=-6.6553,s2=0.0327+0.8555i,
s3=0.0327-0.8555i,s4=-0.41
(二)阶跃响应
1.二阶系统
1)键入程序,观察并记录单位阶跃响应曲线
2)计算系统的闭环根、阻尼比、无阻尼振荡频率,并记录
3)记录实际测取的峰值大小、峰值时间及过渡过程时间,并填表:
由图1-3及其相关理论知识可填下表:
=1.0472
实际值
理论值
峰值Cmax
1.35
1.3509
峰值时间tp
1.09
1.0472
过渡时间
ts
3.5
4.5
4)修改参数,分别实现和的响应曲线,并记录
5)修改参数,分别写出程序实现和的响应曲线,并记录
%单位阶跃响应曲线
num=[10];den=[1210];step(num,den);
title('StepResponseofG(s)=10(s^2+2s+10)');
图1-2二阶系统单位阶跃响应曲线
%计算系统的闭环根、阻尼比、无阻尼振荡频率
num=[10];den=[1210];G=tf(num,den);
[wn,z,p]=damp(G)
运行结果:
wn=
3.1623
3.1623
z=
0.3162
0.3162
p=
-1.0000+3.0000i
-1.0000-3.0000i
由上面的计算结果得系统的闭环根s=-1±3i,阻尼比、无阻尼振荡频率
图1-3单位阶跃响应曲线(附峰值等参数)
第4)题:
%kosi=1阶跃响应曲线
wn=sqrt(10);
kosi=1;
G=tf([wn*wn],[12*kosi*wnwn*wn]);
step(G);
title('StepResponseofkosi=1');
%kosi=2的阶跃响应曲线
wn=sqrt(10);kosi=2;
G=tf([wn*wn],[12*kosi*wnwn*wn]);step(G);
title('StepResponseofkosi=2');
当wn不变时,由和的响应曲线可归纳:
①平稳性,由曲线看出,阻尼系数ζ↑,超调量↓,响应的振荡↓,平稳性好;反之,ζ↓,振荡↑,平稳性差。
②快速性,ζ↑,ts↑,快速性差;反之,ζ↓,ts↓;但ζ过小,系统响应的起始速度较快,但振荡强烈,影响系统稳定。
第5)题:
%wn1=0.5w0的阶跃响应曲线
w0=sqrt(10);kosi=1sqrt(10);wn1=0.5*w0;
G=tf([wn1*wn1],[12*kosi*wn1wn1*wn1]);step(G);
title('StepResponseofwn1=0.5w0');
图1-6wn1=0.5w0的阶跃响应曲线
%wn2=2w0的阶跃响应曲线
w0=sqrt(10);kosi=1sqrt(10);wn2=2*w0;
G=tf([wn2*wn2],[12*kosi*wn2wn2*wn2]);
step(G);
title('StepResponseofwn2=2w0');
图1-7wn2=2w0的阶跃响应曲线
由图1-6和图1-7得:
当ζ一定时,ωn↑,ts↓,所以当ζ一定时,ωn越大,快速性越好。
2.作出以下系统的阶跃响应,并与原系统响应曲线进行比较,作出相应的实验分析结果
(1),有系统零点的情况
(2),分子、分母多项式阶数相等
(3),分子多项式零次项为零
(4),原响应的微分,微分系数为110
%各系统阶跃响应曲线比较
G0=tf([10],[1210]);G1=tf([210],[1210]);G2=tf([10.510],[1210]);
G3=tf([10.50],[1210]);G4=tf([10],[1210]);
step(G0,G1,G2,G3,G4);
gridon;
title('实验1.2StepResponse曲线比较');
图1-8各系统的阶跃响应曲线比较
3.单位阶跃响应:
求该系统单位阶跃响应曲线,并在所得图形上加网格线和标题
%单位阶跃响应
G=tf([25],[1425]);
step(G);
gridon;
title('实验1.3StepResponseofG(s)=25(s^2+4s+25)');
图1-9阶跃响应曲线
(三)系统动态特性分析
用Matlab求二阶系统和的峰值时间上升时间调整时间超调量。
%G1阶跃响应
G1=tf([120],[112120]);
step(G1);
gridon;
title('StepResponseofG1(s)=120(s^2+12s+120)');
图1-10阶跃响应曲线
由图知=0.336s,=0.159s,=0.532s,超调量=12.7%
%G2单位阶跃响应
G2=tf([0.01],[10.0020.01]);
step(G2);
gridon;
title('StepResponseofG2(s)=0.01(s^2+10.002s+0.01)');
图1-11阶跃响应曲线
实验二MATLAB及仿真实验(控制系统的根轨迹分析)
一实验目的
1.利用计算机完成控制系统的根轨迹作图
2.了解控制系统根轨迹图的一般规律
3.利用根轨迹图进行系统分析
二预习要点
1.预习什么是系统根轨迹?
2.闭环系统根轨迹绘制规则。
三实验方法
(一)方法:
当系统中的开环增益k从0到变化时,闭环特征方程的根在复平面上的一组曲线为根轨迹。
设系统的开环传函为:
,则系统的闭环特征方程为:
根轨迹即是描述上面方程的根,随k变化在复平面的分布。
(二)MATLAB画根轨迹的函数常用格式:
利用Matlab绘制控制系统的根轨迹主要用pzmap,rlocus,rlocfind,sgrid函数。
1、零极点图绘制
❑[p,z]=pzmap(a,b,c,d):
返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。
❑[p,z]=pzmap(num,den):
返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。
❑pzmap(a,b,c,d)或pzmap(num,den):
不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用×表示,零点用o表示。
❑pzmap(p,z):
根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用×表示,零点用o表示。
2、根轨迹图绘制
❑rlocus(a,b,c,d)或者rlocus(num,den):
根据SISO开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图。
开环增益的值从零到无穷大变化。
❑rlocus(a,b,c,d,k)或rlocus(num,den,k):
通过指定开环增益k的变化范围来绘制系统的根轨迹图。
❑r=rlocus(num,den,k)或者[r,k]=rlocus(num,den):
不在屏幕上直接绘出系统的根轨迹图,而根据开环增益变化矢量k,返回闭环系统特征方程1+k*num(s)den(s)=0的根r,它有length(k)行,length(den)-1列,每行对应某个k值时的所有闭环极点。
或者同时返回k与r。
❑若给出传递函数描述系统的分子项num为负,则利用rlocus函数绘制的是系统的零度根轨迹。
(正反馈系统或非最小相位系统)
3、rlocfind()函数
❑[k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)
它要求在屏幕上先已经绘制好有关的根轨迹图。
然后,此命令将产生一个光标以用来选择希望的闭环极点。
命令执行结果:
k为对应选择点处根轨迹开环增益;p为此点处的系统闭环特征根。
❑不带输出参数项[k,p]时,同样可以执行,只是此时只将k的值返回到缺省变量ans中。
4、sgrid()函数
❑sgrid:
在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn、阻尼比矢量z对应的格线。
❑sgrid(‘new’):
是先清屏,再画格线。
❑sgrid(z,wn):
则绘制由用户指定的阻尼比矢量z、自然振荡频率wn的格线。
四实验内容
1.要求:
二、记录根轨迹的起点、终点与根轨迹的条数;
三、确定根轨迹的分离点与相应的根轨迹增益;
四、确定临界稳定时的根轨迹增益
%Matlab计算程序
z=[];p=[0-1-2];k=1;G=zpk(z,p,k);figure
(1);pzmap(G)
figure
(2);rlocus(G)
title('实验2.1所作曲线');
(a)由图2-2知,起点分别为0,-1,-2,终点为无穷远处,共三条根轨迹.
(b)结合图2-3和图2-5得分离点d=-0.4226,相应的根轨迹增益k=-0.3849.
(c)结合图2-3和图2-4得临界稳定时的根轨迹增益=6.01
图2-1零、极点分布图
图2-2根轨迹图
图2-3根轨迹图
(2)
%求临界稳定时的根轨迹增益Kgl
z=[];p=[0-1-2];k=1;G=zpk(z,p,k);
rlocus(G)
title('实验2.1临界稳定时的根轨迹增益Kgl');
[k,p]=rlocfind(G)
运行结果:
Selectapointinthegraphicswindow
selected_point=
0.0059+1.4130i
k=
6.0139
p=
-3.0013
0.0006+1.4155i
0.0006-1.4155i
图2-4根轨迹图(3)
%求取根轨迹的分离点与相应的根轨迹增益
z=[];p=[0-1-2];k=1;G=zpk(z,p,k);
rlocus(G)
title('实验2.1根轨迹的分离点与相应的根轨迹增益曲线图');
[k,p]=rlocfind(G)
运行结果:
Selectapointinthegraphicswindow
selected_point=
-0.4226
k=
0.3849
p=
-2.1547
-0.4227
-0.4226
图2-5根轨迹图(4)
2.
要求:
确定系统具有最大超调量时的根轨迹增益;
解:
当Kg=5.5时,系统具有最大超调量=3.89%,如图2-6所示。
%Matlab程序
num=5.5*[13];den=[120];G0=tf(num,den);G=feedback(G0,1,-1);step(G)
title('实验2.2系统阶跃响应曲线');
图2-6实验2.2系统阶跃响应曲线
3.绘制下列各系统根轨迹图。
%Matlab计算程序
x1=[10];x2=[14];x3=[16];x4=[141];y1=conv(x1,x2);y2=conv(x3,x4);z=conv(y1,y2)
运行结果:
z=
11465106240
%绘制系统根轨迹图。
num=[124];den=[11465106240];G0=tf(num,den);
G=feedback(G0,1,-1);rlocus(G)
title('实验2.3系统根轨迹图');
图2-7系统根轨迹图
4.绘制下列各系统根轨迹图。
开环传递函数:
(1);
%Matlab计算程序
G=tf([10.2],[13.600]);
rlocus(G)
title('实验2.4开环系统G(s)H(s)=k(s+0.2)[s^2(s+3.6)]根轨迹图');
(2)
%Matlab计算程序
x1=[10];x2=[10.5];x3=[10.610];
y=conv(x1,x2);
z=conv(x3,y)
运行结果
z=
1.00001.100010.30005.00000
%绘制系统根轨迹图
G=tf([1],[11.110.350]);
rlocus(G)
title('实验2.4开环系统G(s)H(s)=k[s(s+0.5)(s^2+0.6s+10)]根轨迹图');
图2-8系统根轨迹图
图2-9系统根轨迹图
5.试绘制下面系统根轨迹图
%Matlab计算程序
z=[1416];r=roots(z)
运行结果:
r=
-2.0000+3.4641i
-2.0000-3.4641i
%绘制系统根轨迹图:
z=-1;p=[01-2.0000+3.4641i-2.0000-3.4641i];k=1;
G0=zpk(z,p,k);G=feedback(G0,1,-1);rlocus(G);
title('实验2.5所求系统根轨迹图');
图2-10系统根轨迹图
实验三MATLAB及仿真实验(控制系统的频域分析)
一实验目的
1.利用计算机作出开环系统的波特图
2.观察记录控制系统的开环频率特性
3.控制系统的开环频率特性分析
二预习要点
1.预习Bode图和Nyquist图的画法;
2.映射定理的内容;
3.Nyquist稳定性判据内容。
三实验方法
1、奈奎斯特图(幅相频率特性图)
❑对于频率特性函数G(jw),给出w从负无穷到正无穷的一系列数值,分别求出Im(G(jw))和Re(G(jw))。
以Re(G(jw))为横坐标,Im(G(jw))为纵坐标绘制成为极坐标频率特性图。
MATLAB提供了函数nyquist()来绘制系统的极坐标图,其用法如下:
❑nyquist(a,b,c,d):
绘制出系统的一组Nyquist曲线,每条曲线相应于连续状态空间系统[a,b,c,d]的输入输出组合对。
其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。
❑nyquist(a,b,c,d,iu):
可得到从系统第iu个输入到所有输出的极坐标图。
❑nyquist(num,den):
可绘制出以连续时间多项式传递函数表示的系统的极坐标图。
❑nyquist(a,b,c,d,iu,w)或nyquist(num,den,w):
可利用指定的角频率矢量绘制出系统的极坐标图。
❑当不带返回参数时,直接在屏幕上绘制出系统的极坐标图(图上用箭头表示w的变化方向,负无穷到正无穷)。
当带输出变量[re,im,w]引用函数时,可得到系统频率特性函数的实部re和虚部im及角频率点w矢量(为正的部分)。
可以用plot(re,im)绘制出对应w从负无穷到零变化的部分。
2、对数频率特性图(波特图)
对数频率特性图包括了对数幅频特性图和对数相频特性图。
横坐标为频率w,采用对数分度,单位为弧度秒;纵坐标均匀分度,分别为幅值函数20lgA(w),以dB表示;相角,以度表示。
MATLAB提供了函数bode()来绘制系统的波特图,其用法如下:
❑bode(a,b,c,d,iu):
可得到从系统第iu个输入到所有输出的波特图。
bode(a,求取系统对数频率特性图(波特图):
bode()
求取系统奈奎斯特图(幅相曲线图或极坐标图):
nyquist()b,c,d):
自动绘制出系统的一组Bode图,它们是针对连续状态空间系统[a,b,c,d]的每个输入的Bode图。
其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。
❑bode(num,den):
可绘制出以连续时间多项式传递函数表示的系统的波特图。
❑bode(a,b,c,d,iu,w)或bode(num,den,w):
可利用指定的角频率矢量绘制出系统的波特图。
❑当带输出变量[mag,pha,w]或[mag,pha]引用函数时,可得到系统波特图相应的幅值mag、相角pha及角频率点w矢量或只是返回幅值与相角。
相角以度为单位,幅值可转换为分贝单位:
magdb=20×log10(mag)
四实验内容
1.用Matlab作Bode图.要求:
画出对应Bode图,并加标题.
(1)
(2)
%Matlab计算程序
sys=tf([25],[1425]);figure
(1);bode(sys);
title('实验3.1BodeDiagramofG(s)=25(s^2+4s+25)');
图3-1Bode曲线图
%Matlab计算程序
sys=tf([91.89],[11.290]);
figure
(1);
bode(sys);
gridon;
title('实验3.1BodeDiagramofG(s)=9(s^2+0.2s+1)[s(s^2+1.2s+9)]');
图3-2Bode曲线图
%Matlab计算程序(扩大坐标的Bode图)
sys=tf([91.89],[11.290]);w=logspace();figure
(1);bode(sys,w);gridon;
title('实验3.1BodeDiagramofG(s)=9(s^2+0.2s+1)[s(s^2+1.2s+9)]');
图3-3Bode曲线图
2.用Matlab作Nyquist图.要求画对应Nyquist图,并加网格和标题.
%Matlab计算程序
sys=tf([1],[10.81]);
figure
(1);
nyquist(sys);
gridon;
title('实验3.2NyquistPlotofG(s)=1(s^2+0.8s+1)');
图3-4Nyquist曲线图
3.典型二阶系统,试绘制取不同值时的Bode图。
取。
Matlab绘图程如3_3.m所示
图3-5Bode曲线簇
4.某开环传函为:
,试绘制系统的Nyquist曲线,并判断闭环系统稳定性,最后求出闭环系统的单位脉冲响应。
%绘制系统的Nyquist曲线
z=[];
p=[-52];
k=50;
sys=zpk(z,p,k);
figure
(1);
nyquist(sys);
gridon;
title('实验3.4NyquistPlotofG(s)=50[(s+5)(s-2)]');
图3-6Nuquist曲线图
%闭环系统单位脉冲响应
z=[];p=[-52];k=50;sys=zpk(z,p,k);sys2=feedback(sys,1,-1);impulse(sys2)
gridon;
title('实验3.4闭环ImpulseResponseofG(s)=50[(s+5)(s-2)]');
图3-7闭环系统脉冲响应曲线图
5.
%作波特曲线图
kosi1=2;kosi2=1;kosi3=0.5;kosi4=0.1;
num=0.01;den1=[0.010.2*kosi11];den2=[0.010.2*kosi21];
den3=[0.010.2*kosi31];den4=[0.010.2*kosi41];
G1=tf(num,den1);G2=tf(num,den2);
G3=tf(num,den3);G4=tf(num,den4);
bode(G1,G2,G3,G4);gridon;
title('实验3.5G(s)波特曲线簇');
图3-8Bode曲线簇
6.,要求:
(a)作波特图
(b)由稳定裕度命令计算系统的稳定裕度和,并确定系统的稳定性
(c)在图上作近似折线特性,与原准确特性相比
(a)
%作波特图
G=zpk([],[0-100-10],31.6);bode(G);gridon;
title('实验3.6G(s)=31.6[s(0.01s+1)(0.1s+1)]Bode曲线图');
图3-9Bode曲线图
%计算系统的稳定裕度和
G=zpk([],[0-100-10],31.6);margin(G);gridon;
图3-10Bode曲线图
由图3-10得系统的稳定裕度=70.8dB,=89.8
7.已知系统结构图如图所示:
其中:
(1)
(2)
要求:
(a)作波特图,并将曲线保持进行比较
(b)分别计算两个系统的稳定裕度值,然后作性能比较
解
(a)
%Matlab计算程序
Gc1=tf([1],[1]);Gc2=tf([1],[110]);G=tf([1],[110]);G11=series(Gc1,G);G22=ser