matlab自控仿真实验报告 本文关键词:自控,仿真,实验,报告,matlab
matlab自控仿真实验报告 本文简介:目录实验一MATLAB及仿真实验(控制系统的时域分析)…………1实验二MATLAB及仿真实验(控制系统的根轨迹分析)…………4实验三MATLAB及仿真实验(控制系统的频域分析)…………7实验一MATLAB及仿真实验(控制系统的时域分析)学习利用MATLAB进行以下实验,要求熟练掌握实验内容中所用到的
matlab自控仿真实验报告 本文内容:
目
录
实验一
MATLAB及仿真实验(控制系统的时域分析)
…………
1
实验二
MATLAB及仿真实验(控制系统的根轨迹分析)…………
4
实验三
MATLAB及仿真实验(控制系统的频域分析)
…………
7
实验一
MATLAB及仿真实验(控制系统的时域分析)
学习利用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.
系统传函为,试判断其稳定性
den=[1
3
4
2
7
2];
p=roots(den)
输出结果是:
p
=-1.7680
+
1.2673i
-1.7680
-
1.2673i
0.4176
+
1.1130i
0.4176
-
1.1130i
-0.2991
有实部为正根,所以系统不稳定。
2.
用Matlab求出的极点。
den=[1
7
3
5
2];p=roots(den)
输出结果:p
=
-6.6553
0.0327
+
0.8555i
0.0327
-
0.8555i
-0.4100
(二)阶跃响应
1.
二阶系统
1)键入程序,观察并记录单位阶跃响应曲线
num=10;den=[1
2
10];t=10;sys=tf(num,den);step(sys,t)
2)计算系统的闭环根、阻尼比、无阻尼振荡频率,并记录
P1
=-1.0000
+
3.0000i;
P2=-1.0000
-
3.0000i;ξ=10/√10;w=√10
3)记录实际测取的峰值大小、峰值时间及过渡过程时间,并填表:
实际值
理论值
峰值Cmax
1.35
峰值时间tp
1.03
过渡时间
ts
4)修改参数,分别实现和的响应曲线,并记录
5)修改参数,分别写出程序实现和的响应曲线,并记录
2.
作出以下系统的阶跃响应,并与原系统响应曲线进行比较,作出相应的实验分析结果
(1),有系统零点的情况
num=[2
10];den=[1
2
10];t=10;sys=tf(num,den);step(sys,t)
(2),分子、分母多项式阶数相等
num=[1
0.5
10];den=[1
2
10];t=10;sys=tf(num,den);step(sys,t)
(3),分子多项式零次项为零
num=[1
0.5
0];den=[1
2
10];t=10;sys=tf(num,den);step(sys,t)
(4),原响应的微分,微分系数为1/10
3.
单位阶跃响应:
求该系统单位阶跃响应曲线,并在所得图形上加网格线和标题
(三)系统动态特性分析
用Matlab求二阶系统和的峰值时间上升时间调整时间超调量。
num1=[120];den1=[1
12
120];sys1=tf(num1,den1);
num2=[0.01];den2=[1
0.002
0.01];sys2=tf(num2,den2);
t=0:0.01:10;
figure(1)
step(sys1,t);grid
figure(2)
step(sys2,t);grid
由图知第一个的峰值时间=0.34
,上升时间=0.159
,调整时间=0.532
,超调量=12.8
由图知第二个的调整时间=10
,超调量=0
五.实验报告要求:
a)
完成上述各题
b)分析阻尼比、无阻尼振荡频率对系统阶跃响应和脉冲响应的影响
c)分析零初值、非零初值与系统模型的关系
d)分析响应曲线的稳态值与系统模型的关系
e)分析零极点对系统性能的影响
实验二
MATLAB及仿真实验(控制系统的根轨迹分析)
一
实验目的
1.利用计算机完成控制系统的根轨迹作图
2.了解控制系统根轨迹图的一般规律
3.利用根轨迹图进行系统分析
二
预习要点
1.
预习什么是系统根轨迹?
2.
闭环系统根轨迹绘制规则。
三
实验方法
(一)
方法:当系统中的开环增益k从0到变化时,闭环特征方程的根在复平面上的一组曲线为根轨迹。设系统的开环传函为:,则系统的闭环特征方程为:
根轨迹即是描述上面方程的根,随k变化在复平面的分布。
(二)
MATLAB画根轨迹的函数常用格式:利用Matlab绘制控制系统的根轨迹主要用pzmap,rlocus,rlocfind,sgrid函数。
1、零极点图绘制
q
[p,z]=pzmap(a,b,c,d):返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。
q
[p,z]=pzmap(num,den):返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。
q
pzmap(a,b,c,d)或pzmap(num,den):不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用×表示,零点用o表示。
q
pzmap(p,z):根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用×表示,零点用o表示。
2、根轨迹图绘制
q
rlocus(a,b,c,d)或者rlocus(num,den):根据SISO开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图。开环增益的值从零到无穷大变化。
q
rlocus(a,b,c,d,k)或rlocus(num,den,k):
通过指定开环增益k的变化范围来绘制系统的根轨迹图。
q
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。
q
若给出传递函数描述系统的分子项num为负,则利用rlocus函数绘制的是系统的零度根轨迹。(正反馈系统或非最小相位系统)
3、rlocfind()函数
q
[k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)
它要求在屏幕上先已经绘制好有关的根轨迹图。然后,此命令将产生一个光标以用来选择希望的闭环极点。命令执行结果:k为对应选择点处根轨迹开环增益;p为此点处的系统闭环特征根。
q
不带输出参数项[k,p]时,同样可以执行,只是此时只将k的值返回到缺省变量ans中。
4、sgrid()函数
q
sgrid:在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn、阻尼比矢量z对应的格线。
q
sgrid(‘new’):是先清屏,再画格线。
q
sgrid(z,wn):则绘制由用户指定的阻尼比矢量z、自然振荡频率wn的格线。
四
实验内容
1.
要求:
(a)
记录根轨迹的起点、终点与根轨迹的条数;
num=[0
0
0
1];
den=conv([1
0],[1
1]);
den=conv([den],[1
2]);rlocus(num,den);
v=[-8
2
-4
4];axis(v);
den=conv([1
0],[1
1]);
den=conv([den],[1
2]);rlocus(num,den);
v=[-8
2
-4
4];axis(v);
(b)
确定根轨迹的分离点与相应的根轨迹增益;
num=[0
0
0
1];den=conv([1
0],[1
1]);
den=conv(den,[1
2]);
rlocus(num,den)
v=[-8
2
-4
4];axis(v);
[k,poles]=rlocfind(num,den)
Select
a
point
in
the
graphics
window
selected_point
=
0.8507
-
0.0870i
k
=4.5187
poles
=
-2.8540
-0.0730
+
1.2562i
-0.0730
-
1.2562i
(c)
确定临界稳定时的根轨迹增益
2.
要求:确定系统具有最大超调量时的根轨迹增益;
3.绘制下列各系统根轨迹图。
num=[1
2
4];den1=conv([1
0],[1
4]);
den2=conv([1
6],[1
4
1]);
den=[den1,den2];
G=tf(num,den);
sys=feedback(G,1,-1);
rlocus(sys)
4.绘制下列各系统根轨迹图。开环传递函数:
;
num=[1
0.2];den=conv([1
0
0],[1
3.6]);
sys=tf(num,den);
rlocus(sys)
(2)
num=[0
0
0
1];den1=conv([1
0
],[1
0.5]);
den=conv(den1,[1
0.6
10])
sys=tf(num,den);
rlocus(sys)
输出结果:den
=
1.0000
1.1000
10.3000
5.0000
0
5.试绘制下面系统根轨迹图
—
R(s)
C(s)
num=[1
1];den1=conv([1
0
],[1
-1]);
den=conv(den1,[1
4
16])
G=tf(num,den);
sys=feedback(G,1,-1);
rlocus(sys)
输出结果:
den
=
1
3
12
-16
0
五
实验报告要求
(a)记录与显示给定系统根轨迹图
(b)完成上述各题
实验三
MATLAB及仿真实验(控制系统的频域分析)
学习利用MATLAB进行以下实验,要求熟练掌握实验内容中所用到的指令,并按内容要求完成实验。
一
实验目的
1.
利用计算机作出开环系统的波特图
2.
观察记录控制系统的开环频率特性
3.
控制系统的开环频率特性分析
二
预习要点
1.
预习Bode图和Nyquist图的画法;
2.
映射定理的内容;
3.
Nyquist稳定性判据内容。
三
实验方法
1、奈奎斯特图(幅相频率特性图)
q
对于频率特性函数G(jw),给出w从负无穷到正无穷的一系列数值,分别求出Im(G(jw))和Re(G(jw))。以Re(G(jw))
为横坐标,
Im(G(jw))
为纵坐标绘制成为极坐标频率特性图。
MATLAB提供了函数nyquist()来绘制系统的极坐标图,其用法如下:
q
nyquist(a,b,c,d):绘制出系统的一组Nyquist曲线,每条曲线相应于连续状态空间系统[a,b,c,d]的输入/输出组合对。其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。
q
nyquist(a,b,c,d,iu):可得到从系统第iu个输入到所有输出的极坐标图。
q
nyquist(num,den):可绘制出以连续时间多项式传递函数表示的系统的极坐标图。
q
nyquist(a,b,c,d,iu,w)或nyquist(num,den,w):可利用指定的角频率矢量绘制出系统的极坐标图。
q
当不带返回参数时,直接在屏幕上绘制出系统的极坐标图(图上用箭头表示w的变化方向,负无穷到正无穷)
。当带输出变量[re,im,w]引用函数时,可得到系统频率特性函数的实部re和虚部im及角频率点w矢量(为正的部分)。可以用plot(re,im)绘制出对应w从负无穷到零变化的部分。
2、对数频率特性图(波特图)
对数频率特性图包括了对数幅频特性图和对数相频特性图。横坐标为频率w,采用对数分度,单位为弧度/秒;纵坐标均匀分度,分别为幅值函数20lgA(w),以dB表示;相角,以度表示。
MATLAB提供了函数bode()来绘制系统的波特图,其用法如下:
q
bode(a,b,c,d,iu):可得到从系统第iu个输入到所有输出的波特图。
bode(a,求取系统对数频率特性图(波特图):bode()
求取系统奈奎斯特图(幅相曲线图或极坐标图):nyquist()
b,c,d):自动绘制出系统的一组Bode图,它们是针对连续状态空间系统[a,b,c,d]的每个输入的Bode图。其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。
q
bode(num,den):可绘制出以连续时间多项式传递函数表示的系统的波特图。
q
bode(a,b,c,d,iu,w)或bode(num,den,w):可利用指定的角频率矢量绘制出系统的波特图。
q
当带输出变量[mag,pha,w]或[mag,pha]引用函数时,可得到系统波特图相应的幅值mag、相角pha及角频率点w矢量或只是返回幅值与相角。相角以度为单位,幅值可转换为分贝单位:magdb=20×log10(mag)
四
实验内容
1.用Matlab作Bode图.
要求:
画出对应Bode图,并加标题.
(1)
num=25;den=[1
4
25];
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nichols(G);
axis([-207
0
-40
40]);ngrid
figure(3)
nyquist(G);
axis
equal
(2)
num=conv([0
1],[1
0.2
1]);den=conv([1
0],[1
1.2
9]);
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nichols(G);
axis([-207
0
-40
40]);ngrid
figure(3)
nyquist(G);
axis
equal
2.用Matlab作
Nyquist图.
要求画对应Nyquist图,并加网格标题.
num=1;den=[1
0.8
1];
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nichols(G);
axis([-207
0
-40
40]);ngrid
figure(3)
nyquist(G);
axis
equal
3.典型二阶系统,试绘制取不同值时的Bode图。取。
当w=6,ζ=0.1时
num=36;den=[1
1.2
36];
G=tf(num,den);
figure(1)
margin(G);
4.某开环传函为:,试绘制系统的Nyquist
曲线,并判断闭环系统稳定性,最后求出闭环系统的单位脉冲响应。
num=50;den=conv([1
5],[1
-2]);
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nichols(G);
axis([-207
0
-40
40]);ngrid
figure(3)
nyquist(G);
axis
equal
由奈奎斯特图可知它有左半平面的开环极点,也可看出他包围了(-1,j0),所以系统不稳定。
5.
当T=0.1,ζ=2时
num=1;den=[0.01
0.4
1];
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nichols(G);
axis([-207
0
-40
40]);ngrid
figure(3)
nyquist(G);
axis
equal
title(
波特图
)
当T=0.1,ζ=1时
num=1;den=[0.01
0.2
1];
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nichols(G);
axis([-207
0
-40
40]);ngrid
figure(3)
nyquist(G);
axis
equal
title(
波特图
)
当T=0.1,ζ=0.5时
num=1;den=[0.01
0.1
1];
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nichols(G);
axis([-207
0
-40
40]);ngrid
figure(3)
nyquist(G);
axis
equal
title(
波特图
)
当T=0.1,ζ=0.1
num=1;den=[0.01
0.02
1];
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nichols(G);
axis([-207
0
-40
40]);ngrid
figure(3)
nyquist(G);
axis
equal
title(
波特图
)
6.
要求:
(a)
作波特图
den=conv(den,[0.1
1]);
G=tf(num,den);
figure(1)
margin(G);
figure(2)
nyquist(G);
(b)
由稳定裕度命令计算系统的稳定裕度和,并确定系统的稳定性
由Bode图得:幅值裕度=1.08dB和相角裕度=22.3
有奈奎斯特图可知它有左半平面的开环极点,也可看出他包围了(-1,j0),所以系统不稳定。
(c)
在图上作近似折线特性,与原准确特性相比
R(s)
Y(s)
7.已知系统结构图如图所示
:
其中:(1)
(2)
要求:(a)作波特图,并将曲线保持进行比较
当Gc(s)=1时
num=1;den=conv([1
0],[1
1]);
G=tf(num,den);
figure(1)
margin(G)
当Gc(s)=1/(s+1)s时
num=1;den=conv([1
0
0],[1
2
1]);
G=tf(num,den);
figure(1)
margin(G)
(b)分别计算两个系统的稳定裕度值,然后作性能比较
五
实验报告要求
(a)记录与显示给定系统波特图、极坐标图
(b)完成上述各题
注:实验五所含各项实验,要求学生在教师的指导下,以自学为主的方式进行。实验过程和结果的检查与考核由教师根据学生学习情况自定。
30