CH4、控制系统的分析方法
? 早期的控制系统分析过程复杂而耗时,如想得到一个系统
的冲激响应曲线,首先需要编写一个求解微分方程的子程
序,然后将已经获得的系统模型输入计算机,通过计算机
的运算获得冲激响应的响应数据,然后再编写一个绘图程
序,将数据绘制成可供工程分析的响应曲线。
? MATLAB控制系统工具箱和 SIMULINK辅助环境的出现,
给控制系统分析带来了福音。
? 控制系统的分析包括系统的稳定性分析、时域分析、频域
分析及根轨迹分析。
第一节 控制系统的稳定性分析
?对于连续时间系统,如果闭环极点全部在 S平面左半
平面,则系统是稳定的。
?对于离散时间系统,如果系统全部极点都位于 Z平面
的单位圆内,则系统是稳定的。
?若连续时间系统的 全部零极点 都位于 S左半平面;或
若离散时间系统的全部零极点都位于 Z平面单位圆内,
则系统是最小相位系统。
一、系统稳定及最小相位系统判据
2、直接判别
MATLAB提供了直接求取系统所有零极点的函数,因此
可以直接根据零极点的分布情况对系统的稳定性及是否
为最小相位系统进行判断。
二、系统稳定及最小相位系统的判别方法
1、间接判别(工程方法)
劳斯判据:劳斯表中第一列各值严格为正,则系统稳定,
如果劳斯表第一列中出现小于零的数值,系统不稳定。
胡尔维茨判据:当且仅当由系统分母多项式构成的胡尔
维茨矩阵为正定矩阵时,系统稳定。
例 exp4_1.m
已知某系统的模型如右所示:
? ? uxy
uxx
71652
1
0
0
1
6127
5874
0362
2121
???
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
??
要求判断系统的稳定性及系统是否为最小相位系统。
例 exp4_2.m
系统模型如下所示,判断系统的稳定性,以及系统
是否为最小相位系统。
1 1 22 1 1 71 4 9 45 2 81 1 014
2841163)(
23456
23
??????
????
ssssss
ssssG
ii=find(条件式 )
用来求取满足条件的向量的下标向量,以列向量表示。
例如 exp4_1.m中的条件式为 real(p>0),其含义就是找出极点
向量 p中满足实部的值大于 0的所有元素下标,并将结果返回到 ii
向量中去。这样如果找到了实部大于 0的极点,则会将该极点的
序号返回到 ii下。如果最终的结果里 ii的元素个数大于 0,则认为
找到了不稳定极点,因而给出系统不稳定的提示,若产生的 ii向
量的元素个数为 0,则认为没有找到不稳定的极点,因而得出系
统稳定的结论。
pzmap(p,z)
根据系统已知的零极点 p和 z绘制出系统的零极点图
第二节 控制系统的时域分析
一个动态系统的性能常用典型输入作用下的响应
来描述。响应是指零初始值条件下某种典型的输入函数
作用下对象的响应,控制系统常用的输入函数为单位阶
跃函数和脉冲激励函数(即冲激函数)。在 MATLAB的
控制系统工具箱中提供了求取这两种输入下系统响应的
函数。
一、时域分析的一般方法
?求取系统单位阶跃响应,step()
?求取系统的冲激响应,impulse()
1,step()函数的用法 exp4_3_.m
?y=step(num,den,t):其中 num和 den分别为系统传递函数描述中的分子和
分母多项式系数,t为选定的仿真时间向量,一般可以由 t=0:step:end等步
长地产生出来。该函数返回值 y为系统在仿真时刻各个输出所组成的矩阵。
?[y,x,t]=step(A,B,C,D,iu):其中 A,B,C,D为系统的状态空间描述矩阵,iu
用来指明输入变量的序号。 x为系统返回的状态轨迹。
?如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可
调用以下的格式:
step(num,den); step(num,den,t); step(A,B,C,D,iu,t); step(A,B,C,D,iu);
例 e x p 4 _ 3, m 已知系统的开环传递函数为:
ssss
sG o
40368
20)(
234 ????
求系统在单位负反馈下的阶跃响应曲线。
?线性系统的稳态值可以通过函数 dcgain()来求取,其调用格式为:
dc=dcgain(num,den)或 dc=dcgain(a,b,c,d)
?[y,x,t]=step(num,den):此时时间向量 t由系统模型的特性自动生成,状
态变量 x返回为空矩阵 。
2,impulse()函数的用法
例 e x p 4 _ 4, m 已知系统的开环传递函数为:
ssss
sG o
40368
20)(
234 ????
求系统在单位负反馈下的脉冲激励响应曲线。
例 e x p 4 _ 5, m 已知某典型二阶系统的传递函数为,
22
2
2
)(
nn
n
wsws
w
sG
??
?
?
,,6.0?? 5?nw,求系统的阶跃响应曲线。
例 e x p 4 _ 6, m 已知某闭环系统的传递函数为:
251096.116.0
2510)(
23 ???
??
sss
ssG
求其阶跃响应曲线。
求取脉冲激励响应的调用方法与 step()函数基本一致。
y=impulse(num,den,t); [y,x,t]=impulse(num,den); [y,x,t]=impulse(A,B,C,D,iu,t)
impulse(num,den); impulse(num,den,t)
impulse(A,B,C,D,iu); impulse(A,B,C,D,iu,t)
仿真时间 t的选择:
?对于典型二阶系统根据其响应时间的估算公式 可以确定。
?对于高阶系统往往其响应时间很难估计,一般采用试探的方法,把 t选
大一些,看看响应曲线的结果,最后再确定其合适的仿真时间。
?一般来说,先不指定仿真时间,由 MATLAB自己确定,然后根据结果,
最后确定合适的仿真时间。
?在指定仿真时间时,步长的不同会影响到输出曲线的光滑程度,一般
不易取太大。
?例 exp4_6_.m
n
s wt ?
4~3?
二、常用时域分析函数
时间响应探究系统对输入和扰动在时域内的瞬态行为,系统
特征如:上升时间、调节时间、超调量和稳态误差都能从时间响应上
反映出来。 MATLAB除了提供前面介绍的对系统阶跃响应、冲激响应
等进行仿真的函数外,还提供了大量对控制系统进行时域分析的函数,
如:
covar:连续系统对白噪声的方差响应
initial:连续系统的零输入响应
lsim:连续系统对任意输入的响应
对于离散系统只需在连续系统对应函数前加 d就可以,如 dstep,
dimpulse等。
它们的调用格式与 step,impulse类似,可以通过 help命令来察看自学。
三、时域分析应用实例
例 e xp4 _7,m 某 2 输入 2 输出系统如下所示,
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???
??
?
?
?
?
?
?
?
?
?
?
?
?
?
2
1
4
3
2
1
4
3
2
1
00
02
02
14
056.200
56.22.314.11
00022.1
0022.15.2
u
u
x
x
x
x
x
x
x
x
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
2
1
4
3
2
1
2
1
02
20
1000
3010
u
u
x
x
x
x
y
y
,求系统的单位阶跃响应和冲激响应。
MATLAB的 step()和 impulse()函数本身可以处理多输入多输出
的情况,因此编写 MATLAB程序并不因为系统输入输出的增
加而变得复杂。
例 e x p 4 _ 8, m 某 系统 框图 如 下 所示, 求 d 和 e 的 值, 使 系统 的 阶跃 响应 满足, ( 1 ) 超调量 不
大于 40 %, ( 2 ) 峰值 时间 为 0,8 秒 。
)1( ?ss
d
1 + e s
+
_
R ( s ) C ( s )
由图可得闭环传递函数为:
dseds
d
sG
c
????
?
)1(
)(
2
,其为典型二阶系统。
由典型二阶系统特征参数计算公式 1 0 0
2
1
??
?
?
?
??
? e, )1(
2
?? ???
np
wt 得,
2
1
22
])
100
( l n/[
100
ln
?
?
?
? ??,
)1(
2
?
?
??
?
p
n
t
w
例 ex p 4 _ 9, m 根据输入的典型二阶系统参数阻尼比 a l p h 及自然振荡频率 wn,求取系统的单
位阶跃响应参数:超调量 pos ( 100 %);峰值时间 tp ;上升时间 tr ;调节时间 t s 2 ( %2? )
第三节 控制系统的频域分析
?频率响应是指系统对正弦输入信号的稳态响应,从频率响应中可以得出
带宽、增益、转折频率、闭环稳定性等系统特征。
?频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关
系特性。频率特性函数与传递函数有直接的关系,记为:
一、频域分析的一般方法
?求取系统对数频率特性图(波特图),bode()
?求取系统奈奎斯特图(幅相曲线图或极坐标图),nyquist()
为相频特性为幅频特性其中 )()()(
)(
)()(
)(
)(
)()( )(
www
wX
wXwA
ewA
jwX
jwXjwG
io
i
o
wj
i
o
???
?
???
??
?频域分析法是应用频率特性研究控制系统的一种典型方法。采用这种方法
可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确,
对于诸如防止结构谐振、抑制噪声、改善系统稳定性和暂态性能等问题,都
可以从系统的频率特性上明确地看出其物理实质和解决途经。通常将频率特
性用曲线的形式进行表示,包括对数频率特性曲线和幅相频率特性曲线简称
幅相曲线,MATLAB提供了绘制这两种曲线的函数。
1、对数频率特性图(波特图) exp4_10.m exp4_10_.m
?对数频率特性图包括了对数幅频特性图和对数相频特性图。横坐标为
频率 w,采用对数分度,单位为弧度 /秒;纵坐标均匀分度,分别为幅值
函数 20lgA(w),以 dB表示;相角,以度表示。
MATLAB提供了函数 bode()来绘制系统的波特图,其用法如下:
?bode(a,b,c,d):自动绘制出系统的一组 Bode图,它们是针对连续状态
空间系统 [a,b,c,d]的每个输入的 Bode图。其中频率范围由函数自动选取,
而且在响应快速变化的位置会自动采用更多取样点。
?bode(a,b,c,d,iu):可得到从系统第 iu个输入到所有输出的波特图。
?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)
2、奈奎斯特图(幅相频率特性图) exp4_11.m exp4_11_.m
?对于频率特性函数 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从负无穷到零变化的部分。
二、常用频域分析函数
MATLAB除了提供前面介绍的基本频域分析函数外,还提
供了大量在工程实际中广泛应用的库函数,由这些函数可
以求得系统的各种频率响应曲线和 特征值。如:
margin:求幅值裕度和相角裕度及对应的转折频率
freqs:模拟滤波器特性
nichols:求连续系统的尼科尔斯频率响应曲线(即对数
幅相曲线)
ngrid:尼科尔斯方格图
margin()函数 exp4_12.m exp4_12_.m
?margin函数可以从频率响应数据中计算出幅值裕度、相角裕度以及对应
的频率。幅值裕度和相角裕度是针对开环 SISO系统而言,它指示出系统闭
环时的相对稳定性。当不带输出变量引用时,margin可在当前图形窗口中
绘制出带有裕量及相应频率显示的 Bode图,其中幅值裕度以分贝为单位。
?幅值裕度是在相角为 -180度处使开环增益为 1的增益量,如在 -180度相频
处的开环增益为 g,则幅值裕度为 1/g;若用分贝值表示幅值裕度,则等于:
-20*log10(g)。类似地,相角裕度是当开环增益为 1.0时,相应的相角与 180
度角的和。
?margin(mag,phase,w):由 bode指令得到的幅值 mag(不是以 dB为单位),
相角 phase及角频率 w矢量绘制出带有裕量及相应频率显示的 bode图。
?margin(num,den),可计算出连续系统传递函数表示的幅值裕度和相角裕
度并绘制相应波特图。类似,margin(a,b,c,d)可以计算出连续状态空间系统
表示的幅值裕度和相角裕度并绘制相应波特图。
?[gm,pm,wcg,wcp]=margin(mag,phase,w):由幅值 mag(不是以 dB为单
位),相角 phase及角频率 w矢量计算出系统幅值裕度和相角裕度及相应
的相角交界频率 wcg、截止频率 wcp,而不直接绘出 Bode图曲线。
freqs()函数 exp4_13.m
?freqs用于计算由矢量 a和 b构成的模拟滤波器 H(s)=B(s)/A(s)的幅频响
应。
?h=freqs(b,a,w)用于计算模拟滤波器的幅频响应,其中实矢量 w用于
指定频率值,返回值 h为一个复数行向量,要得到幅值必须对它取绝
对值,即求模。
?[h,w]=freqs(b,a)自动设定 200个频率点来计算频率响应,这 200个频
率值记录在 w中。
?[h,w]=freqs(b,a,n)设定 n个频率点计算频率响应。
?不带输出变量的 freqs函数,将在当前图形窗口中绘制出幅频和相
频曲线,其中幅相曲线对纵坐标与横坐标均为对数分度。
)1(...)2(1
)1(...)2()1(
)(
)()(
1
1
?????
??????
?
?
nasas
mbsbsb
sA
sBsH
nn
mm
三、频域分析应用实例
例 e x p 4 _ 1 4,m e x p 4 _ 1 4 _, m 已知某系统的开环传递函数为:
)1)(6(
26
)(
??
?
ss
sG
要求( 1 )绘制系统的奈奎斯特曲线,判断闭环系统的稳定性,求出系统的单位阶跃响应。
( 2 )给系统增加一个开环极点 p =2,求此时的奈奎斯特曲线,判断此时闭环系统的稳定性,
并绘制系统的单位阶跃响应曲线。
?Nyquist曲线是根据开环频率特性在复平面上绘出的幅相轨迹,根据开环
的 Nyquist曲线,可以判断闭环系统的稳定性。
?系统稳定的充要条件为,Nyquist曲线按逆时针包围临界点 (-1,j0)的圈数 R,
等于开环传递函数位于 s右半平面的极点数 P,否则闭环系统不稳定,闭环
正实部特征根个数 Z=P-R。若刚好过临界点,则系统临界稳定。
例 e x p 4 _ 1 5, m 线性时不变系统如下所示:要求绘制系统的波特图和奈奎斯特图,判断系统
稳定性,如果系统稳定,求出系统稳定裕度,并绘制系统的单位冲激响应以验证判断结论。
? ? xy
uxx
32.0000
0
0
0
1
032.000
32.07.096.00
00004.1
0004.16.0
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
??
??
例 e x p 4 _ 1 6, m 系统传递函数模型为,se
s
ssH 5.0
3)2(
1)( ?
?
??
,求出有理传递函数的频率响
应,然后在同一张图上绘出以四阶 p a d e 近似表示的系统频率响应。
Pade函数可以近似表示延时环节 e^(-st),它的调用格式为:
(num,den)=pade(t,n),产生最佳逼近时延 t秒的 n阶传递函数形式。
(a,b,c,d)=pade(t,n),则产生的是 n阶 SISO的状态空间模型。
例 e x p 4 _ 1 7, m 系统结构图如下所示,试用 n y q u i s t 频率曲线判断系统的稳定性。
其中
)10 6 2 5.0)(125.0)(185.0(
7.16
)(
???
?
sss
s
sG
10 G ( s ) R ( s ) C ( s )
+ +
_
_
第四节 控制系统的根轨迹分析
?所谓根轨迹是指,当开环系统某一参数从零变到无穷
大时,闭环系统特征方程的根在 s平面上的轨迹。一般来
说,这一参数选作开环系统的增益 K,而在无零极点对
消时,闭环系统特征方程的根就是闭环传递函数的极点。
?根轨迹分析方法是分析和设计线性定常控制系统的图
解方法,使用十分简便。利用它可以对系统进行各种性
能分析,例 exp4_18.m
一、根轨迹分析方法的概念
( 1)稳定性
当开环增益 K从零到无穷大变化时,图中的根轨迹不会越过虚轴进
入右半 s平面,因此这个系统对所有的 K值都是稳定的。如果根轨迹
越过虚轴进入右半 s平面,则其交点的 K值就是临界稳定开环增益。
( 2)稳态性能
开环系统在坐标原点有一个极点,因此根轨迹上的 K值就是静态速
度误差系数,如果给定系统的稳态误差要求,则可由根轨迹确定闭
环极点容许的范围。
( 3)动态性能
当 0<K<0.5时,所有闭环极点位于实轴上,系统为过阻尼系统,单
位阶跃响应为非周期过程;当 K=0.5时,闭环两个极点重合,系统为
临界阻尼系统,单位阶跃响应仍为非周期过程,但速度更快;当
K>0.5时,闭环极点为复数极点,系统为欠阻尼系统,单位阶跃响应
为阻尼振荡过程,且超调量与 K成正比。
二、根轨迹分析函数
通常来说,绘制系统的根轨迹是很繁琐的事情,因
此在教科书中介绍的是一种按照一定规则进行绘制的概略
根轨迹。在 MATLAB中,专门提供了绘制根轨迹的有关函
数。
pzmap:绘制线性系统的零极点图
rlocus:求系统根轨迹。
rlocfind:计算给定一组根的根轨迹增益。
sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系
数和自然频率栅格。
1、零极点图绘制 exp4_19.m
MATLAB提供了函数 pzmap()来绘制系统的零极点图,其
用法如下:
?[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、根轨迹图绘制 exp4_20.m
MATLAB提供了函数 rlocus()来绘制系统的根轨迹图,其
用法如下:
?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()函数
MATLAB提供了函数 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的
格线。
三、根轨迹分析应用实例
例 exp4 _ 21,m 已知某单位反馈系统的开环传递函数为:
)102.0)(101.0(
)(
??
?
sss
ksG
要求:绘制系统的闭环根轨迹,并确定使系统产生重实根和纯虚根的开环增益 k 。
例 e x p 4 _ 2 2, m 某开环系统传递函数如下所示:要求绘制系统的闭环根轨迹,分析其稳定性,
并绘制出当 k = 5 5 和 k = 5 6 时系统的闭环冲激响应。
22
)34(
)2(
)(
??
?
?
ss
sk
sG
o
例 exp4_23.m
例 exp4_24.m
? 控制系统的分析是进行控制系统设计的基础,同时也是工程实际当中
解决问题的主要方法,因而对控制系统的分析在控制系统仿真中具有
举足轻重的作用。
? 通过求取系统的零极点增益模型直接获得系统的零极点,从而可以直
接对控制系统的稳定性及是否为最小相位系统作出判断。
? 控制系统的经典分析方法(时域、频域分析)是目前控制系统界进行
科学研究的主要方法,是进行控制系统设计的基础,要求熟练掌握单
位阶跃响应、波特图等常用命令的使用。
? 根轨迹分析是求解闭环特征方程根的简单的图解方法,要求熟练掌握
根轨迹的绘制。
本章小结
? 早期的控制系统分析过程复杂而耗时,如想得到一个系统
的冲激响应曲线,首先需要编写一个求解微分方程的子程
序,然后将已经获得的系统模型输入计算机,通过计算机
的运算获得冲激响应的响应数据,然后再编写一个绘图程
序,将数据绘制成可供工程分析的响应曲线。
? MATLAB控制系统工具箱和 SIMULINK辅助环境的出现,
给控制系统分析带来了福音。
? 控制系统的分析包括系统的稳定性分析、时域分析、频域
分析及根轨迹分析。
第一节 控制系统的稳定性分析
?对于连续时间系统,如果闭环极点全部在 S平面左半
平面,则系统是稳定的。
?对于离散时间系统,如果系统全部极点都位于 Z平面
的单位圆内,则系统是稳定的。
?若连续时间系统的 全部零极点 都位于 S左半平面;或
若离散时间系统的全部零极点都位于 Z平面单位圆内,
则系统是最小相位系统。
一、系统稳定及最小相位系统判据
2、直接判别
MATLAB提供了直接求取系统所有零极点的函数,因此
可以直接根据零极点的分布情况对系统的稳定性及是否
为最小相位系统进行判断。
二、系统稳定及最小相位系统的判别方法
1、间接判别(工程方法)
劳斯判据:劳斯表中第一列各值严格为正,则系统稳定,
如果劳斯表第一列中出现小于零的数值,系统不稳定。
胡尔维茨判据:当且仅当由系统分母多项式构成的胡尔
维茨矩阵为正定矩阵时,系统稳定。
例 exp4_1.m
已知某系统的模型如右所示:
? ? uxy
uxx
71652
1
0
0
1
6127
5874
0362
2121
???
?
?
?
?
?
?
?
?
?
?
?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
??
要求判断系统的稳定性及系统是否为最小相位系统。
例 exp4_2.m
系统模型如下所示,判断系统的稳定性,以及系统
是否为最小相位系统。
1 1 22 1 1 71 4 9 45 2 81 1 014
2841163)(
23456
23
??????
????
ssssss
ssssG
ii=find(条件式 )
用来求取满足条件的向量的下标向量,以列向量表示。
例如 exp4_1.m中的条件式为 real(p>0),其含义就是找出极点
向量 p中满足实部的值大于 0的所有元素下标,并将结果返回到 ii
向量中去。这样如果找到了实部大于 0的极点,则会将该极点的
序号返回到 ii下。如果最终的结果里 ii的元素个数大于 0,则认为
找到了不稳定极点,因而给出系统不稳定的提示,若产生的 ii向
量的元素个数为 0,则认为没有找到不稳定的极点,因而得出系
统稳定的结论。
pzmap(p,z)
根据系统已知的零极点 p和 z绘制出系统的零极点图
第二节 控制系统的时域分析
一个动态系统的性能常用典型输入作用下的响应
来描述。响应是指零初始值条件下某种典型的输入函数
作用下对象的响应,控制系统常用的输入函数为单位阶
跃函数和脉冲激励函数(即冲激函数)。在 MATLAB的
控制系统工具箱中提供了求取这两种输入下系统响应的
函数。
一、时域分析的一般方法
?求取系统单位阶跃响应,step()
?求取系统的冲激响应,impulse()
1,step()函数的用法 exp4_3_.m
?y=step(num,den,t):其中 num和 den分别为系统传递函数描述中的分子和
分母多项式系数,t为选定的仿真时间向量,一般可以由 t=0:step:end等步
长地产生出来。该函数返回值 y为系统在仿真时刻各个输出所组成的矩阵。
?[y,x,t]=step(A,B,C,D,iu):其中 A,B,C,D为系统的状态空间描述矩阵,iu
用来指明输入变量的序号。 x为系统返回的状态轨迹。
?如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可
调用以下的格式:
step(num,den); step(num,den,t); step(A,B,C,D,iu,t); step(A,B,C,D,iu);
例 e x p 4 _ 3, m 已知系统的开环传递函数为:
ssss
sG o
40368
20)(
234 ????
求系统在单位负反馈下的阶跃响应曲线。
?线性系统的稳态值可以通过函数 dcgain()来求取,其调用格式为:
dc=dcgain(num,den)或 dc=dcgain(a,b,c,d)
?[y,x,t]=step(num,den):此时时间向量 t由系统模型的特性自动生成,状
态变量 x返回为空矩阵 。
2,impulse()函数的用法
例 e x p 4 _ 4, m 已知系统的开环传递函数为:
ssss
sG o
40368
20)(
234 ????
求系统在单位负反馈下的脉冲激励响应曲线。
例 e x p 4 _ 5, m 已知某典型二阶系统的传递函数为,
22
2
2
)(
nn
n
wsws
w
sG
??
?
?
,,6.0?? 5?nw,求系统的阶跃响应曲线。
例 e x p 4 _ 6, m 已知某闭环系统的传递函数为:
251096.116.0
2510)(
23 ???
??
sss
ssG
求其阶跃响应曲线。
求取脉冲激励响应的调用方法与 step()函数基本一致。
y=impulse(num,den,t); [y,x,t]=impulse(num,den); [y,x,t]=impulse(A,B,C,D,iu,t)
impulse(num,den); impulse(num,den,t)
impulse(A,B,C,D,iu); impulse(A,B,C,D,iu,t)
仿真时间 t的选择:
?对于典型二阶系统根据其响应时间的估算公式 可以确定。
?对于高阶系统往往其响应时间很难估计,一般采用试探的方法,把 t选
大一些,看看响应曲线的结果,最后再确定其合适的仿真时间。
?一般来说,先不指定仿真时间,由 MATLAB自己确定,然后根据结果,
最后确定合适的仿真时间。
?在指定仿真时间时,步长的不同会影响到输出曲线的光滑程度,一般
不易取太大。
?例 exp4_6_.m
n
s wt ?
4~3?
二、常用时域分析函数
时间响应探究系统对输入和扰动在时域内的瞬态行为,系统
特征如:上升时间、调节时间、超调量和稳态误差都能从时间响应上
反映出来。 MATLAB除了提供前面介绍的对系统阶跃响应、冲激响应
等进行仿真的函数外,还提供了大量对控制系统进行时域分析的函数,
如:
covar:连续系统对白噪声的方差响应
initial:连续系统的零输入响应
lsim:连续系统对任意输入的响应
对于离散系统只需在连续系统对应函数前加 d就可以,如 dstep,
dimpulse等。
它们的调用格式与 step,impulse类似,可以通过 help命令来察看自学。
三、时域分析应用实例
例 e xp4 _7,m 某 2 输入 2 输出系统如下所示,
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???
??
?
?
?
?
?
?
?
?
?
?
?
?
?
2
1
4
3
2
1
4
3
2
1
00
02
02
14
056.200
56.22.314.11
00022.1
0022.15.2
u
u
x
x
x
x
x
x
x
x
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
2
1
4
3
2
1
2
1
02
20
1000
3010
u
u
x
x
x
x
y
y
,求系统的单位阶跃响应和冲激响应。
MATLAB的 step()和 impulse()函数本身可以处理多输入多输出
的情况,因此编写 MATLAB程序并不因为系统输入输出的增
加而变得复杂。
例 e x p 4 _ 8, m 某 系统 框图 如 下 所示, 求 d 和 e 的 值, 使 系统 的 阶跃 响应 满足, ( 1 ) 超调量 不
大于 40 %, ( 2 ) 峰值 时间 为 0,8 秒 。
)1( ?ss
d
1 + e s
+
_
R ( s ) C ( s )
由图可得闭环传递函数为:
dseds
d
sG
c
????
?
)1(
)(
2
,其为典型二阶系统。
由典型二阶系统特征参数计算公式 1 0 0
2
1
??
?
?
?
??
? e, )1(
2
?? ???
np
wt 得,
2
1
22
])
100
( l n/[
100
ln
?
?
?
? ??,
)1(
2
?
?
??
?
p
n
t
w
例 ex p 4 _ 9, m 根据输入的典型二阶系统参数阻尼比 a l p h 及自然振荡频率 wn,求取系统的单
位阶跃响应参数:超调量 pos ( 100 %);峰值时间 tp ;上升时间 tr ;调节时间 t s 2 ( %2? )
第三节 控制系统的频域分析
?频率响应是指系统对正弦输入信号的稳态响应,从频率响应中可以得出
带宽、增益、转折频率、闭环稳定性等系统特征。
?频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关
系特性。频率特性函数与传递函数有直接的关系,记为:
一、频域分析的一般方法
?求取系统对数频率特性图(波特图),bode()
?求取系统奈奎斯特图(幅相曲线图或极坐标图),nyquist()
为相频特性为幅频特性其中 )()()(
)(
)()(
)(
)(
)()( )(
www
wX
wXwA
ewA
jwX
jwXjwG
io
i
o
wj
i
o
???
?
???
??
?频域分析法是应用频率特性研究控制系统的一种典型方法。采用这种方法
可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确,
对于诸如防止结构谐振、抑制噪声、改善系统稳定性和暂态性能等问题,都
可以从系统的频率特性上明确地看出其物理实质和解决途经。通常将频率特
性用曲线的形式进行表示,包括对数频率特性曲线和幅相频率特性曲线简称
幅相曲线,MATLAB提供了绘制这两种曲线的函数。
1、对数频率特性图(波特图) exp4_10.m exp4_10_.m
?对数频率特性图包括了对数幅频特性图和对数相频特性图。横坐标为
频率 w,采用对数分度,单位为弧度 /秒;纵坐标均匀分度,分别为幅值
函数 20lgA(w),以 dB表示;相角,以度表示。
MATLAB提供了函数 bode()来绘制系统的波特图,其用法如下:
?bode(a,b,c,d):自动绘制出系统的一组 Bode图,它们是针对连续状态
空间系统 [a,b,c,d]的每个输入的 Bode图。其中频率范围由函数自动选取,
而且在响应快速变化的位置会自动采用更多取样点。
?bode(a,b,c,d,iu):可得到从系统第 iu个输入到所有输出的波特图。
?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)
2、奈奎斯特图(幅相频率特性图) exp4_11.m exp4_11_.m
?对于频率特性函数 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从负无穷到零变化的部分。
二、常用频域分析函数
MATLAB除了提供前面介绍的基本频域分析函数外,还提
供了大量在工程实际中广泛应用的库函数,由这些函数可
以求得系统的各种频率响应曲线和 特征值。如:
margin:求幅值裕度和相角裕度及对应的转折频率
freqs:模拟滤波器特性
nichols:求连续系统的尼科尔斯频率响应曲线(即对数
幅相曲线)
ngrid:尼科尔斯方格图
margin()函数 exp4_12.m exp4_12_.m
?margin函数可以从频率响应数据中计算出幅值裕度、相角裕度以及对应
的频率。幅值裕度和相角裕度是针对开环 SISO系统而言,它指示出系统闭
环时的相对稳定性。当不带输出变量引用时,margin可在当前图形窗口中
绘制出带有裕量及相应频率显示的 Bode图,其中幅值裕度以分贝为单位。
?幅值裕度是在相角为 -180度处使开环增益为 1的增益量,如在 -180度相频
处的开环增益为 g,则幅值裕度为 1/g;若用分贝值表示幅值裕度,则等于:
-20*log10(g)。类似地,相角裕度是当开环增益为 1.0时,相应的相角与 180
度角的和。
?margin(mag,phase,w):由 bode指令得到的幅值 mag(不是以 dB为单位),
相角 phase及角频率 w矢量绘制出带有裕量及相应频率显示的 bode图。
?margin(num,den),可计算出连续系统传递函数表示的幅值裕度和相角裕
度并绘制相应波特图。类似,margin(a,b,c,d)可以计算出连续状态空间系统
表示的幅值裕度和相角裕度并绘制相应波特图。
?[gm,pm,wcg,wcp]=margin(mag,phase,w):由幅值 mag(不是以 dB为单
位),相角 phase及角频率 w矢量计算出系统幅值裕度和相角裕度及相应
的相角交界频率 wcg、截止频率 wcp,而不直接绘出 Bode图曲线。
freqs()函数 exp4_13.m
?freqs用于计算由矢量 a和 b构成的模拟滤波器 H(s)=B(s)/A(s)的幅频响
应。
?h=freqs(b,a,w)用于计算模拟滤波器的幅频响应,其中实矢量 w用于
指定频率值,返回值 h为一个复数行向量,要得到幅值必须对它取绝
对值,即求模。
?[h,w]=freqs(b,a)自动设定 200个频率点来计算频率响应,这 200个频
率值记录在 w中。
?[h,w]=freqs(b,a,n)设定 n个频率点计算频率响应。
?不带输出变量的 freqs函数,将在当前图形窗口中绘制出幅频和相
频曲线,其中幅相曲线对纵坐标与横坐标均为对数分度。
)1(...)2(1
)1(...)2()1(
)(
)()(
1
1
?????
??????
?
?
nasas
mbsbsb
sA
sBsH
nn
mm
三、频域分析应用实例
例 e x p 4 _ 1 4,m e x p 4 _ 1 4 _, m 已知某系统的开环传递函数为:
)1)(6(
26
)(
??
?
ss
sG
要求( 1 )绘制系统的奈奎斯特曲线,判断闭环系统的稳定性,求出系统的单位阶跃响应。
( 2 )给系统增加一个开环极点 p =2,求此时的奈奎斯特曲线,判断此时闭环系统的稳定性,
并绘制系统的单位阶跃响应曲线。
?Nyquist曲线是根据开环频率特性在复平面上绘出的幅相轨迹,根据开环
的 Nyquist曲线,可以判断闭环系统的稳定性。
?系统稳定的充要条件为,Nyquist曲线按逆时针包围临界点 (-1,j0)的圈数 R,
等于开环传递函数位于 s右半平面的极点数 P,否则闭环系统不稳定,闭环
正实部特征根个数 Z=P-R。若刚好过临界点,则系统临界稳定。
例 e x p 4 _ 1 5, m 线性时不变系统如下所示:要求绘制系统的波特图和奈奎斯特图,判断系统
稳定性,如果系统稳定,求出系统稳定裕度,并绘制系统的单位冲激响应以验证判断结论。
? ? xy
uxx
32.0000
0
0
0
1
032.000
32.07.096.00
00004.1
0004.16.0
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
??
??
例 e x p 4 _ 1 6, m 系统传递函数模型为,se
s
ssH 5.0
3)2(
1)( ?
?
??
,求出有理传递函数的频率响
应,然后在同一张图上绘出以四阶 p a d e 近似表示的系统频率响应。
Pade函数可以近似表示延时环节 e^(-st),它的调用格式为:
(num,den)=pade(t,n),产生最佳逼近时延 t秒的 n阶传递函数形式。
(a,b,c,d)=pade(t,n),则产生的是 n阶 SISO的状态空间模型。
例 e x p 4 _ 1 7, m 系统结构图如下所示,试用 n y q u i s t 频率曲线判断系统的稳定性。
其中
)10 6 2 5.0)(125.0)(185.0(
7.16
)(
???
?
sss
s
sG
10 G ( s ) R ( s ) C ( s )
+ +
_
_
第四节 控制系统的根轨迹分析
?所谓根轨迹是指,当开环系统某一参数从零变到无穷
大时,闭环系统特征方程的根在 s平面上的轨迹。一般来
说,这一参数选作开环系统的增益 K,而在无零极点对
消时,闭环系统特征方程的根就是闭环传递函数的极点。
?根轨迹分析方法是分析和设计线性定常控制系统的图
解方法,使用十分简便。利用它可以对系统进行各种性
能分析,例 exp4_18.m
一、根轨迹分析方法的概念
( 1)稳定性
当开环增益 K从零到无穷大变化时,图中的根轨迹不会越过虚轴进
入右半 s平面,因此这个系统对所有的 K值都是稳定的。如果根轨迹
越过虚轴进入右半 s平面,则其交点的 K值就是临界稳定开环增益。
( 2)稳态性能
开环系统在坐标原点有一个极点,因此根轨迹上的 K值就是静态速
度误差系数,如果给定系统的稳态误差要求,则可由根轨迹确定闭
环极点容许的范围。
( 3)动态性能
当 0<K<0.5时,所有闭环极点位于实轴上,系统为过阻尼系统,单
位阶跃响应为非周期过程;当 K=0.5时,闭环两个极点重合,系统为
临界阻尼系统,单位阶跃响应仍为非周期过程,但速度更快;当
K>0.5时,闭环极点为复数极点,系统为欠阻尼系统,单位阶跃响应
为阻尼振荡过程,且超调量与 K成正比。
二、根轨迹分析函数
通常来说,绘制系统的根轨迹是很繁琐的事情,因
此在教科书中介绍的是一种按照一定规则进行绘制的概略
根轨迹。在 MATLAB中,专门提供了绘制根轨迹的有关函
数。
pzmap:绘制线性系统的零极点图
rlocus:求系统根轨迹。
rlocfind:计算给定一组根的根轨迹增益。
sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系
数和自然频率栅格。
1、零极点图绘制 exp4_19.m
MATLAB提供了函数 pzmap()来绘制系统的零极点图,其
用法如下:
?[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、根轨迹图绘制 exp4_20.m
MATLAB提供了函数 rlocus()来绘制系统的根轨迹图,其
用法如下:
?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()函数
MATLAB提供了函数 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的
格线。
三、根轨迹分析应用实例
例 exp4 _ 21,m 已知某单位反馈系统的开环传递函数为:
)102.0)(101.0(
)(
??
?
sss
ksG
要求:绘制系统的闭环根轨迹,并确定使系统产生重实根和纯虚根的开环增益 k 。
例 e x p 4 _ 2 2, m 某开环系统传递函数如下所示:要求绘制系统的闭环根轨迹,分析其稳定性,
并绘制出当 k = 5 5 和 k = 5 6 时系统的闭环冲激响应。
22
)34(
)2(
)(
??
?
?
ss
sk
sG
o
例 exp4_23.m
例 exp4_24.m
? 控制系统的分析是进行控制系统设计的基础,同时也是工程实际当中
解决问题的主要方法,因而对控制系统的分析在控制系统仿真中具有
举足轻重的作用。
? 通过求取系统的零极点增益模型直接获得系统的零极点,从而可以直
接对控制系统的稳定性及是否为最小相位系统作出判断。
? 控制系统的经典分析方法(时域、频域分析)是目前控制系统界进行
科学研究的主要方法,是进行控制系统设计的基础,要求熟练掌握单
位阶跃响应、波特图等常用命令的使用。
? 根轨迹分析是求解闭环特征方程根的简单的图解方法,要求熟练掌握
根轨迹的绘制。
本章小结