自动控制原理MATLAB仿真实验报告.docx
《自动控制原理MATLAB仿真实验报告.docx》由会员分享,可在线阅读,更多相关《自动控制原理MATLAB仿真实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
![自动控制原理MATLAB仿真实验报告.docx](https://file1.bdocx.com/fileroot1/2022-11/17/831388ad-35d7-40f0-89b1-3cc58a553fde/831388ad-35d7-40f0-89b1-3cc58a553fde1.gif)
自动控制原理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-1零极点分布图
由计算结果可知,该系统的2个极点具有正实部,故系统不稳定。
%求取极点
num=[122];den=[17352];p=roots(den)
运行结果:
p=
+
-
故
的极点s1=,s2=+,
s3=-,s4=
(二)阶跃响应
1.二阶系统
1)键入程序,观察并记录单位阶跃响应曲线
2)计算系统的闭环根、阻尼比、无阻尼振荡频率,并记录
3)记录实际测取的峰值大小、峰值时间及过渡过程时间,并填表:
由图1-3及其相关理论知识可填下表:
=
实际值
理论值
峰值Cmax
峰值时间tp
过渡时间
ts
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=
z=
p=
+
-
由上面的计算结果得系统的闭环根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=的阶跃响应曲线
w0=sqrt(10);kosi=1/sqrt(10);wn1=*w0;
G=tf([wn1*wn1],[12*kosi*wn1wn1*wn1]);step(G);
title('StepResponseofwn1=');
图1-6wn1=的阶跃响应曲线
%wn2=2w0的阶跃响应曲线
w0=sqrt(10);kosi=1/sqrt(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)
,原响应的微分,微分系数为1/10
%各系统阶跃响应曲线比较
G0=tf([10],[1210]);G1=tf([210],[1210]);G2=tf([110],[1210]);
G3=tf([10],[1210]);G4=tf([10],[1210]);
step(G0,G1,G2,G3,G4);
gridon;
title('实验StepResponse曲线比较');
图1-8各系统的阶跃响应曲线比较
3.单位阶跃响应:
求该系统单位阶跃响应曲线,并在所得图形上加网格线和标题
%单位阶跃响应
G=tf([25],[1425]);
step(G);
gridon;
title('实验StepResponseofG(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
阶跃响应曲线
由图知
=,
=,
=,超调量
=%
%G2单位阶跃响应
G2=tf([],[1]);
step(G2);
gridon;
title('StepResponseofG2(s)=(s^2++');
图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('实验所作曲线');
(a)由图2-2知,起点分别为0,-1,-2,终点为无穷远处,共三条根轨迹.
(b)结合图2-3和图2-5得分离点d=,相应的根轨迹增益k=.
(c)结合图2-3和图2-4得临界稳定时的根轨迹增益
=
图2-1零、极点分布图
图2-2根轨迹图
图2-3根轨迹图
(2)
%求临界稳定时的根轨迹增益Kgl
z=[];p=[0-1-2];k=1;G=zpk(z,p,k);
rlocus(G)
title('实验临界稳定时的根轨迹增益Kgl');
[k,p]=rlocfind(G)
运行结果:
Selectapointinthegraphicswindow
selected_point=
+
k=
p=
+
-
图2-4根轨迹图(3)
%求取根轨迹的分离点与相应的根轨迹增益
z=[];p=[0-1-2];k=1;G=zpk(z,p,k);
rlocus(G)