系统仿真技术
第 1章 连续系统模型描述
剡昌锋 刘军
兰州理工大学机电工程学院
1.1连续系统模型描述
? 连续系统 ----系统状态变化在时间上
是连续的,可以用方程式(常微分方
程、偏微分方程、差分方程)描述系
统模型。
一个系统可以定义成如下集合结构,
T:时间基,描述系统变化的时间坐标
T为整数则称为离散时间系统,T为实数则称为连
续时间系统
X:输入集,代表外部环境对系统的作用。
X被定义为,其中, X即代表 n个实值的输
入变量。
Ω,输入段集,描述某个时间间隔内输入模式,是
(X,T)的子集。
Q:内部状态集,是系统内部结构建模的核心。
),,,,,,( ???? YQXTS
nR ??In
δ:状态转移函数,定义系统内部状态是如何变化
的。
它是映射,
? 其含义:若系统在 时刻处于状态 q,并施加一
个输入段,则 表示系统
处于 状态。
? λ,输出函数,它是映射,
输出函数给出了一个输出段集。
? Y:输出段集,系统通过它作用于环境。
0t
Xtt ??? 10,:? ),( ?? q
1t
YTXQ ???:?
QQ ?? ??,
连续系统数学模型典型形式
? 常微分方程
? 传递函数
? 状态空间描述
? 权函数(脉冲过渡函数)
1.1.1常微分方程 --输入 /输出水平
? ……,.( 1)
? 其中 n为系统的阶次,为系统
的结构参数,为输入函数的结构
参数,它们均为实常数
ucdt udcdt udcyadtdyadt ydadt yda nn
n
n
n
nnn
n
n
n
???????? ?
?
?
?
??
?
?? 1
2
11
1
111
1
10
),,2,1,0( nia i ??
),,2,1,0( njc j ??
1.1.2传递函数 ----输入 /输出水平
? 若系统的 初始条件为零,对( 1)式两边取
拉氏变换后稍加整理,
? ……,.(2)
?
? (2)式称为系统的传递函数。
j
n
j
jn
n
j
j
jn
sa
sc
sU
sY
sG
?
?
?
?
?
?
??
0
1
)(
)(
)(
1.1.3状态空间描述 ----状态结构水平
? 系统内部模型 ―― 状态空间模型。状态空
间描述的一般形式为,
? 状态方程, (3)
? 输出方程, (4)
BUAXX ???
CXY ?
1.2 模型结构变换
? 连续系统仿真要将这个系统的模型在计算
机上实现出来,首先要把系统的各种描述
形式转换成内部模型 ---状态空间模型,我
们将其称为 模型结构变换 。
1.2.1 输入 /输出水平模型到内部模型的变换
? 假设一连续系统,它的数学模型如 (5)式所示
? ( a0=1) (5)
? 今引进 n个状态变量,
?,,, ……
)(1
1
1 tuyadt
yda
dt
yd
nn
n
n
n
???? ?
?
?
yx ?1
dt
dyxx ??
12 ? 2
2
23 dt
ydxx ?? ?
1
1
1 ?
?
? ?? n
n
nn dt
ydxx ?
输入 /输出水平模型到内部模型的变换(续)
? 则有
? 将上述 n个一阶微分方程写成矩阵形式可得
? ( 6)
)(2
2
21
1
1 tuyadt
yda
dt
yda
dt
ydx
nn
n
n
n
n
n
n ??????? ?
?
?
?
?
)(1121 tuxaxaxa nnn ?????? ? ?
ux
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
????
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1
0
0
1000
0100
0010
2
1
121
??
?
?
?????
?
?
?
?
?
?
?
n
nnn
x
x
x
aaaa
n
2
1
x
x
x
=
输入 /输出水平模型到内部模型的变换(续)
? ( 7)
? 外部模型变换到内部模型不唯一,所以仿
真模型也不唯一。一个系统有多种实现,
最小实现的充要条件是 (A,B,C)为完全
能控且完全能观测。
? ?xy 00 ?01=
1.2.2系统状态初始值变换
? 如果系统是非零初始条件,那么从外部模型变换
到内部内部模型还必须考虑如何将给定的初始条
件转变为相应的状态变量的初始值。
? 若系统是由如下一般形式的 n阶微分方程来描述,
? 系统初始条件为,
ucdtducdt udcdt udcyadtdyadt ydadt yda nnn
n
n
n
nnn
n
n
n
????????? ??
?
??
?
11
1
1011
1
10 ??
)1,,2,1(,)(,)( )(00)()(00)( ???? niutuyty iiii ?
伴随方程法
? 一阶微分方程组的状态变量记为,
如果它们满足如下关系,
? ( 8)
? ( 9)
? ( 10)
? ( 11)
? 该状态方程与原方程等价。
),,2,1( nix i ??
ucyax 001 ??
ucyaxx jjjj ??? ? 1?
ucax nnn ????
)( 0110 ucxy a ??
伴随方程法(续)
? 证明,
? 将( 8)两边分别进行微分 n次,可得,
? ( 12)
? 其中 p为微分算子符号。对( 9)式两边分别进行 n-
j(j=1,2,…,n-1)次微分,可得,
? ( 13)
? 对( 10)式也引入微分算子,
? ( 14)
? 将( 12)、( 13)、( 14)所包括的 n+1个等式左右
两边分别相加,消去同类项,稍加整理后就得到原高阶微
分方程,表明两者之间的等价关系。
upcypaxp nnn 001 ??
upcypaxpxp jnjjnjjjnjjn ?????? ??? 11
ucyapx nnn ???
伴随方程法(续)
? 伴随方程法 显式地表示了状态变量与原输入 /输出变量及
其高阶导数之间的关系,因而易于进行初始值的转换。 这
样得到状态方程及输出方程,
? ( 15)
? 其中
??
?
?? u
u+=
DCX
BAXX
y
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
000
100
010
001
1
2
1
?
?
?????
?
?
n
n
a
a
a
a
A
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
nn acc
acc
acc
0
202
101
?
=B
? ? 00
0
/00,11 ac a ?DC ?=
伴随方程法(续)
? 设 a0=1,初值转换方程,
? 伴随方程有多种形式,因而得到的状态方程也不
唯一。那么,实现这种初值转换的条件是什么呢?
1 0 0 0 0
2 0 1 0 1 0 0
( 1 ) ( 1 )
0 1 2 0 1 2 0 0
1 0 0 0 0
1 0 0
1 nnn n n n n
x y c u
x a y c c u
x a a y c c c u--- - - -
轾 轾 轾 轾 轾
犏 犏 犏 犏 犏
犏 犏 犏 犏 犏
犏 犏 犏 犏 犏=-
犏 犏 犏 犏 犏
犏 犏 犏 犏 犏
犏 犏 犏 犏 犏
臌 臌 臌 臌 臌
LL
&&
M M O M M M O M
LL
伴随方程法(续)
? 考虑转换后得到的系统状态空
间模型为,
? 即假定 u的 n阶导数项的系数
c0=0,已知系统的初始条件为,
? 则为了由上述初始值求出状态
变量的初始值,可列出以下方
程,
??
?
?
??
CXY
BUAXX ?
? ?
)0(),0(),0(
)0(,0)0(
)1(
)1(
?
?
n
n
uuu
yyy
??
??,
(t)Cx?)( ty
( t )+( t )=( t ) CBuC A xxC ?? ?)( ty
()yt = && & & &&& C x C A x C B u C A x C A B u C B u2( t ) = ( t ) + ( t ) = ( t ) + ( t ) + ( t )
伴随方程法(续)
? 于是可得下列矩阵方程
? (16)
? 其中
)()()( t+Ttθt uXy ?
? ? Tn tytytyt )()()()( )1( ?? ??y
? ?Tn tututut )(1-)()(=)( ??u
?
?
?
?
?
?
?
?
?
?
?
?
?
1-nCA
CA
C
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
0
00
000
=
CBBCABCA
CBC A B
CB
T
3-n2-n
?
?
伴随方程法(续)
? 由 (16)式可得,(17)
? 即,若 存在,则可由 (17)式求出 x(t) 的初
始值。
? 由控制理论可知,θ是 (A,B,C)的能观
判别阵,若 (A,B,C)是完全能观的,则 θ
非奇异。这就是说,由高阶微分方程输入 /
输出变量初始值转变为状态初始值的条件是:
内部模型 (A,B,C)是 完全能观的。
)]()(=)( -1 ttt Tuyx -[?
1??
1.2.3 典型环节的传递函数
控制系统由许多元件组合而成, 这些元
件的物理结构和作用原理是多种多样的, 但
抛开具体结构和物理特点, 从传递函数的数
学模型来看, 可以划分成几种典型环节, 常
用的典型环节有比例环节, 惯性环节, 积分
环节, 微分环节, 振荡环节, 延迟环节等 。
1,比例环节
环节输出量与输入量成正比, 不失真也无
时间滞后的环节称为比例环节, 也称无惯性环
节 。 输入量与输出量之间的表达式为
c(t)=Kr(t)
比例环节的传递函数为
KsR sCsG ?? )( )()(
式中 K为常数, 称为比例环节的放大系数或增益 。
2,惯性环节 (非周期环节 )
惯性环节的动态方程是一个一阶微分方程
)()()( tKrtcdt tdcT ??
其传递函数为
1)(
)()(
?
??
Ts
K
sR
sCsG
式中 T—— 惯性环节的时间常数
K—— 惯性环节的增益或放大系数
当输入为单位阶跃函数时, 其单位阶跃响应为
? ? )1(11)()( 111 TeKsTs KLsCLtc ??? ???
?
?
??
? ?
???
单位阶跃响应曲线
11/
/11
)(
)()(
??????? Ts
K
RsL
R
RLssU
sIsG
惯性环节实例很多, 如
图所示的 R-L网络, 输入
为电压 u,输出为电感电
流 i,其传递函数
式中
R
LT ?
RK
1?
2,积分环节
输出量正比于输入量的积分的环节称为积分
环节, 其动态特性方程
dttr
T
tc
t
i
?? 0 )(1)(
其传递函数
sTsR
sCsG
i
1
)(
)()( ??
式中 Ti为积分时间常数 。
积分环节的单位阶跃响应为
tTtC
i
1)( ?
它随时间直线增长, 当输入突然消失, 积分停止,
输出维持不变, 故积分环节具有记忆功能, 如图所
示 。
上图为运算放大器构成的积分环节, 输入 ui(t),
输出 u0(t),其传递函数为
sTR C ssU
sUsG
ii
11
)(
)()( 0 ?????
式中 Ti = RC
4,微分环节
理想微分环节的特征输出量正比于输入量的
微分, 其动态方程
dt
tdrTtc
d
)()( ?
其传递函数
sTsR sCsG d?? )( )()(
式中 Td称微分时间常数
它的单位阶跃响应曲线 )()( tTtc
d ??
如图所示, 理想微分
环节实际上难以实现,
因此我们常采用带有
惯性的微分环节, 其
传递函数
1
)(
?
?
sT
sKTsG
d
d
其单位阶跃响应为
dTKetc
1
)(
?
?
曲线如下图所示, 实际微分环节的阶跃响
应是按指数规律下降, 若 K值很大而 Td值很小时,
实际微分环节就愈接近于理想微分环节 。
5,二阶振荡环节 (二阶惯性环节 )
二阶振荡环节的动态方程为
)()()(2)(2
2
2 tKrtc
dt
tdcT
dt
tcdT ??? ?
其传递函数
12)(
)()(
22 ???? TssT
K
sR
sCsG
?
22
2
2)( nn
n
ss
KsG
???
?
???
式中 为无阻尼自然振荡角频率, ζ为阻尼比 。
Tn
1??
图中所示为 RLC网络,
输入为 ui(t),输出 u0(t),其
动态特性方程
)()()()( 0020
2
tutudt tduRCdt tudLC i???
其传递函数
2
2
2
0
22
1
1
)(
)(
)(
n
n
i
nss
R C sLC stU
tU
sG
???
?
??
?
??
??
式中
LCn
1??
L
CR
2??
6,延迟环节 (时滞环节 )
延迟环节是输入信号加入
后, 输出信号要延迟一段
时间 τ后才重现输入信号,
其动态方程为
)()( ??? trtc
其传递函数是一个 超越函数
se
sR
sCsG ????
)(
)()(
式中 τ称延迟时间
需要指出, 在实际生产中, 有很多场合是
存在迟延的, 比如皮带或管道输送过程, 管道
反应和管道混合过程, 多个设备串联以及测量
装置系统等 。 迟延过大往往会使控制效果恶化,
甚至使系统失去稳定 。
1.2.4 分解结构水平转换 --面向结构图的模型变换
? 对于任何一个组合的典型环节都可以用状
态方程表示
CUUDAYYB ??? ?? ( 20)
面向结构图系统方程描述
1 2 3 4
5
?
2
?
4
?
4
-
-
-
+ +
+ 2
y y 1 y
0
y
3
y
4
y
5
u
1
u
2
u
3
u
5
被仿真的系统框图
u
4
面向结构图系统方程描述(续)
? U=WY+W0y0 (21)
? W称为系统的连接矩阵,它描述了系统内部各环节连接情况,每个元
素 Wi j 表示第 j 个环节的输出到第 i 个环节的输入之间的联接系
数,
? W0称为外部输入的连接矩阵,它描述了外部输入对系统的作用情况。
对单输入系统,W0是一个列矢量,Woj 表示外部输入信号 y0 作用
在第 j个环节上的作用系数。在上图中,y0 只作用在第一个环节上,
故 W0 1= 1。若为多输入系统则 W0也是一个矩阵,它的列数等于输
入量的个数。
0
5
4
3
2
1
4
2
4
5
4
3
2
1
0
0
0
0
1
00100
00100
0010
1001
0000
y
y
y
y
y
y
u
u
u
u
u
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
系统方程转换
? 将 (21)式代入 (20)式,则可得,
? ( 22)
? ( 23)
? 其中,Q=B- DW,P=CW- A, V1=CW0,
V2=DW0
? 如果 Q 阵的逆存在,那么对 (23)式两边左乘 Q- 1,则得,
? ( 24)
? 这是一个标准的一阶常微分方程组。
000 C W YYDWC W YYDWAYYB ????? ???
0201 YVYVPYYQ ?? ???
0210111 YVQYVQPYQY ?? ??? ???
系统方程转换(续)
? 说明,
? ( 1)矩阵方程的右端有两项与外加作用信号
有关,一项是,另一项 。若外加作用函
数是单位阶跃阵,此时,为了便于计算,就
要求 V2是零向量。如果外加作用信号是阶跃信号,
那么必须限制外加作用信号所用的那个环节
Di=0。
? ( 2)只有当 Q 阵能求逆时,才能获得 (14)式。
当系统中各环节不存在纯微分环节和 /或纯比例
环节时就能保证 Q阵可以求逆。
? ( 3)关于 Q 的逆阵不存在时的结构变换,以下
例说明,
Y0
011 YVQ? 021 YVQ ??
??0Y?
结构变换例子
? 则 Q=B- DW
? P=CW-A
?
? V1=CW0
1
2 2A B S?
C1
D3S
1 2 3
+
-
结构变换举例
y2 y3y1y0
?
?
?
?
?
?
?
?
?
?
?
?
0 0 0
0 0
0 0
2
3
B
D
?
? ?
?
?
?
?
??
?
?
?
??
?
1 0
1 0
0 0 1
1
2
C
A
?
?
?
?
?
?
?
?
?
?
?
C1
0
0
因为 Q 阵中出现 1,3
两列全零,所以 Q -1
不存在。其原因是 1、
3两个环节是比例和微
分环节。对于上述系
统,可以将其结构加
以变换。
结构变换例子(续)
? 系统结构变换的程序法,
? 设系统的状态方程为,
? Q 阵中有 (N- M)列元素为全零,这说明有有 (N- M)个
环节的 Y不出现在方程的左端。也就是说,系统中有 (N-
M)个代数方程。
? 系统结构变换程序法就是通过矩阵的初等变换,把系统中
(N- M)个代数方程分离出来。具体做法,就是对 Q,P、
V各矩阵线性变换,使上述方程中的各矩阵变
为,从而 Y变为,方程变为,
? (25)
01 YVPYYQ ???
1~~~ VPQ,、
Y~
01
~~~~~ YVYPYQ ???
结构变换例子(续)
? 其中,
?
? (26)
~Q?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???????????
??
MNN
MMM
MMM
M
M
QQ
QQ
QQ
QQ
QQ
,1,
,11,1
1
221
111
~~
~~
~~
~~
~~
??
?????
?????
??
??
?????
??
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???
|
0|
|
|
|
|
0|
|
|
? ? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
~
|
|
|
|
~
|
Q
Q
M
N M
0
0
~P
?
? ? ? ? ? ? ? ? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ? ? ? ? ?
? ?
?
~ ~
|
|
|
~ ~
|
|
~ ~
|
|
~ ~
|
~
~
|
|
|
|
,
,,
,,
,,
P P
P P
P P
P P
P
P
M
M M M
M M M
N N M
M
N M
11 1
1
1 1 1
1
0
0 1
1 0
0
? ?
? ? ? ?
? ? ? ?
? ?
? ?
? ? ? ? ?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
|
|
|
0 1
1 0
?~V1 ? ? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
~
~
,
V
V
M
N M
1
1
结构变换例子(续)
? 在变换的过程中,对 Q,P,V作列变换,将使 Y
原来的编号改变。所以程序中应将列变换的情况
记录下来,以便在最后求出 后,经过反变换而
仍能恢复 Y。
? 完成变换后,系统可以分为 M个微分方程与 (N-
M)个代数方程。而该 M个微分组的 的逆存在。
因此,
? (27)
? 由此解得,然后再解 (N-M)个代数方程,
~Y
~QM
0111
~~~~~~ YVQYPQY
MMMMMMMMM ? ??? ? ???
~,~,,~y y y M1 2 ?
结构变换例子(续)
? (28)
? 由当 时,,
由此方程( 28)可以写成,
),,2,1( ~~~~~ 01
1 1
NMMiYVyPYQ ij
M
j
N
j
ijjij ?? ?????? ?
? ?
1,,1,,,2,1 ?????? MNNiNMMj ??,~Pij ?1
NMMi
YVyPyQy ij
M
j
N
j
ijjijiMN
,,2,1
~~~~~~
01
1 1
1
?
?
???
??? ? ?
? ?
???
1.3 微分方程的线性化
实际的物理系统往往有间隙, 死区, 饱
和等各类非线性现象 。 严格地讲, 几乎所有实
际物理和化学系统都是非线性的 。 目前, 线性
系统的理论已经相当成熟, 但非线性系统的理
论还远不完善 。 因此, 在工程允许范围内, 尽
量对所研究的系统进行线性化处理, 然后用线
性理论进行分析不失为一种有效的方法 。
当非线性因素对系统影响较小时, 一般可直接
将系统当作线性系统处理 。 另外, 如果系统的变量
只发生微小的偏移, 则可通过切线法进行线性化,
以求得其增量方程式 。
非线性函数的线性化, 是指将非线性函数在工
作点附近展开成泰勒级数, 忽略掉高阶无穷小量及
余项, 得到近似的线性化方程, 来替代原来的非线
性函数 。
假如元件的输出与
输入之间关系 x2=f(x1)的
曲线如图, 元件的工作
点为 (x10,x20)。 将非线
性函数 x2= f(x1)在工作点
(x10,x20)附近展开成泰
勒级数
)(
!2
1
)()()(
2
101102
1
2
10110
1
1012
????
????
xx
dx
fd
xx
dx
df
xfxfx
x
x
当 (x1- x10)为微小增量时, 可略去二阶以上各项,
写成
)(
)()(
10120
10110
1
102
xxKx
xx
dx
df
xfx x
???
???
其中 为工作点 (x10,x20)处的斜率,
即此时以工作点处的切线代替曲线, 得到变量在工
作点的增量方程, 经上述处理后, 输出与输入之间
就成为线性关系 。
10
1
xdx
dfK ?
图 2-8为一铁芯线圈, 输入为 ui(t),输出为 i(t)。
线圈的微分方程为
)()( tuRidtdidi id i???Φ
当工作过程中线圈的电压和电流只在工作点
( u0,i0) 附近变化时, 即有
)()( 0 tuutu ii ??? iii ??? 0
线圈中的磁通 对 也有增量变化, 假如在 i0
附近连续可微, 将在 i0 附近展开成泰勒级数, 即
Φ
0Φ
??????????? 202
1
2
00 )()(!2
1)( i
di
di
di
d
ii
因是微小增量, 将高阶无穷小量略去, 得近似式
idid i ?????? 00 )(
)( tuiRdt idL i?????
这就是铁芯线圈的增量化方程, 为简便起见,
常略去增量符号而写成
)( tuRidtdiL i??
返回
1.4 方框图
在控制工程中, 为了便于对系统进行
分析和设计, 常将各元件在系统中的功能
及各部分之间的联系用图形来表示, 即方
框图和信号流图 。
1.4.1方框图
方框图也称方块图或结构图, 具有形象和
直观的特点 。 系统方框图是系统中各元件功能
和信号流向的图解, 它清楚地表明了系统中各
个环节间的相互关系 。 构成方框图的基本符号
有四种, 即信号线, 比较点, 传递环节的方框
和引出点 。
1.5 在 MATLAB中数学模型的表示
线性系统理论中常用的数学模型有微分方程, 传
递函数, 状态空间表达式等,而这些模型之间又有
着某些内在的等效关系 。 MATLAB主要使用传递
函数和状态空间表达式来描述 线性时不变系统
(Linear Time Invariant简记为 LTI)。
1.5.1传递函数
单输入单输出线性连续系统的传递函数为
nn
nn
mm
m
m
asasasa
bsbsbsb
sR
sCsG
???
????????????
?
?
?
?
1
1
10
1
1
10
)(
)()(
其中 m≤ n。 G(s)的分子多项式的根称为系统的零
点,分母多项式的根称为系统的极点 。 令分母多
项式等于零,得系统的特征方程,
D(s)=a0sn+a1sn- 1+…… +an- 1s+an=0
系统的传递函数在 MATLAB下可由其分子和分母
多项式唯一地确定出来,其格式为
sys=tf(num,den)
其中 num为分子多项式, den为分母多项式
num=[ b0,b1,b2,…,bm] ;
den=[ a0,a1,a2,…,an] ;
对于其它复杂的表达式,如
)432)(3(
)62)(1()(
232
22
????
????
sssss
ssssG
可由下列语句来输入
>>num=conv([ 1,1],conv([ 1,2,6],[ 1,2,6] ));
>>den=conv([ 1,0,0],conv([ 1,3],[ 1,2,3,4] ));
>>G=tf(num,den)
Transfer function,
2^123^134^95^56^
602^403^204^5^
sssss
ssssss
????
????
1.5.2传递函数的特征根及零极点图
传递函数 G(s)输入之后,分别对分子和分母多项
式作因式分解,则可求出系统的零极点,MATLAB提
供了多项式求根函数 roots(),其调用格式为
roots(p)
其中 p为多项式 。
例如,多项式 p(s)=s3+3s2+4
>>p=[ 1,3,0,4] ; %p(s)=s3+3s2+4
>>r=roots(p)%p(s)=0的根
r=-3.3533
0.1777+1.0773i
0.1777-1.0773i
反过来,若已知特征多项式的特征根,可调用
MATLAB中的 poly( )函数,来求得多项式降幂排
列时各项的系数,如上例
>>poly(r)
p = 1.0000 3.0000 0.0000 4.0000
而 polyval函数用来求取给定变量值时多项
式的值,其调用格式为
polyval(p,a)
其中 p为多项式 ;a为给定变量值
例如,求 n(s)=(3s2+2s+1)(s+4)在 s=- 5时值,
>>n=conv([ 3,2,1],[ 1,4] );
>>value=polyval(n,-5)
value=- 66
[ p,z] =pzmap(num,den)
其中,p─传递函数 G(s)= numden的极点
z─传递函数 G(s)= numden的零点
例如,传递函数
传递函数在复平面上的零极点图,采用 pzmap()函
数来完成,零极点图上,零点用, 。, 表示,极点用
,×,表示 。 其调用格式为
133
16)(
23
2
???
??
sss
ssG
)3)(2)(2(
)2)(1()(
???
???
sisis
sssH
用 MATLAB求出 G(s)的零极点,H(s)的多项式
形式,及 G(s)H(s)的零极点图
>>numg=[ 6,0,1] ; deng=[ 1,3,3,1] ;
>>z=roots(numg)
z=0+0.4082i
0- 0.4082i %G(s)的零点
>>p=roots(deng)
p=- 1.0000+0.0000i
- 1.0000+0.0000i %G(s)的极点
- 1.0000+0.0000i
>> n1=[ 1,1] ;n2=[ 1,2] ;d1=[ 1,2*i] ;
d2=[ 1,-2*i] ;d3=[ 1,3] ;
>>numh=conv(n1,n2);
denh=conv(d1,conv(d2,d3));
>>printsys(numh,denh)
1242^33^
232^
???
??
sss
ssnumh/denh= %H(s)表达式
>>pzmap(num,den) %零极点图
>>title(‘pole-zero Map’)
零极点图如图所示,
1.5.3 控制系统的方框图模型
若已知控制系统的方框图,使用 MATLAB函数
可实现方框图转换 。
1.串联
如图所示 G1(s)和 G2(s)相串联,在 MATLAB中可
用串联函数 series( )来求 G1(s)G2(s),其调用格式为
[ num,den] =series(num1,den1,num2,den2)
其中,
2
2)(
2 de n
numsG ?
1
1)(
1 d e n
n umsG ?
de n
nu msGG ?)(
21
2.并联
如图所示 G1(s)和 G2(s)相并联,可由 MATLAB的
并联函数 parallel( )来 实现,其调用格式为
[ num,den] =parallel(num1,den1,num2,den2)
其中,
2
2)(
2 de n
numsG ?
1
1)(
1 d e n
n umsG ?
de n
nu msGsG ?? )()(
21
3.反馈
反 馈 连 接 如 图 所 示 。 使用 MATLAB 中的
feedback( )函数来实现反馈连接,其调用格式为
[ num,den] =feedback(numg,deng,numh,denh,sign)
式中,
d e n g
n u m gsG ?)(
sign为反馈极性,若为正反馈其为 1,若为负反馈其为
- 1或缺省 。
d e n
num
sHsG
sG ?
? )()(1
)(
de nh
nu m hsH ?)(
例如 G(s)=,H(s)=,负反馈连接 。
2
1
?
?
s
s
s
1
>>numg=[ 1,1] ;deng=[ 1,2] ;
>>numh=[ 1] ;denh=[ 1,0] ;
>>[ num,den] =feedback(numg,deng,numh,denh,- 1);
>> printsys(num,den)
num/den=
132^
2^
??
?
ss
ss
MATLAB 中 的 函 数 series,parallel 和
feedback可用来简化多回路方框图 。 另外,
对于单位反馈系统,MATLAB可调用 cloop( )
函数求 闭环传递函数,其调用格式为
[ num,den] =cloop(num1,den1,sign)
1.5.4 控制系统的零极点模型
传递函数可以是时间常数形式,也可以是零
极点形式,零极点形式是分别对原系统传递函数
的分子和分母进行因式分解得到的 。 MATLAB
控制系统工具箱提供了零极点模型与时间常数
模型之间的转换函数,其调用格式分别为
[ z,p,k] = tf2zp(num,den)
[ num,den] = zp2tf(z,p,k)
其中第一个函数可将传递函数模型转换成零极点
表示形式,而第二个函数可将零极点表示方式转换
成传递函数模型 。
例如 G(s)=
22642
20122412
234
23
????
???
ssss
sss
用 MATLAB语句表示,
>>num=[ 12 24 12 20] ;den=[ 2 4 6 2 2] ;
>>[ z,p,k] =tf2zp(num,den)
z= - 1.9294
- 0.0353+ 0.9287i
- 0.0353- 0.9287i
p=- 0.9567+ 1.2272i
- 0.9567- 1.2272i
- 0.0433+ 0.6412i
- 0.0433- 0.6412i
k=6
即变换后的零极点模型为
G(s)=
)9 2 8 7.00 3 5 3.0)(9 2 8 7.00 3 5 3.0)(9 2 9 4.1(6 ????? sss
)2 2 7 2.19 5 6 7.0)(2 2 7 2.19 5 6 7.0( isis ????
)6 4 0.04 3 3.0)(6 4 0.04 3 3.0( isis ?????
可以验证 MATLAB的转换函数,调用 zp2tf()函
数将得到原传递函数模型 。
>>[ num,den] =zp2tf(z,p,k)
num = 0 6.0000 12.0000 6.0000 10.0000
den = 1.0000 2.0000 3.0000 1.0000 1.0000
即
132
106126)(
234
23
????
????
ssss
ssssG
1.5.5 状态空间表达式
状态空间表达式是描述系统特性的又一种数
学模型,它由状态方程和输出方程构成,即
x(t)=Ax(t)+Bu(t)
y(t)=Cx(t)+Du(t)
式中 x(t)∈ Rn 称为状态向量,n为系统阶次 ;
A∈ Rn× n 称为系统矩阵 ;
B∈ Rn× p 称为控制矩阵,p为输入量个数 ;
C∈ Rq× n 称为输出矩阵 ;
D∈ Rq× p 称为连接矩阵,q为输出量个数 。
在一般情况下,控制系统的状态空间表达式项简
记为 (A,B,C,D)。
例如:设一个双输入双输出系统的状态空间表
达式为
uxtx
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
20
22
64
510
623
421
)(?
xy ?
?
?
?
?
?
?
020
100
系统模型可由 MATLAB命令直观地表示,
>>A=[ 1,2,4;3,2,6;0,1,5]
>>B=[ 4,6;2,2;0,2]
>>C=[ 0,0,1;0,2,0]
>>D= zeros(2,2)
MATLAB的控制系统工具箱提供了由状态空间
表达式转换成传递函数或由传递函数转换成状态
空间表达式的转换函数 ss2tf( )和 tf2ss( )。 其调用
格式为
[ num,den] =ss2tf(A,B,C,D,iu)
反过来,若已知系统的传递函数,求取系统状态
空间表达式的调用格式为
[ A,B,C,D] =tf2ss(num,den)
例如系统的传递函数为
163
32)(
23
2
???
???
sss
sssG
系统的状态空间表达式为
>>num=[ 1,2,3] ; den=[ 1,3,6,1] ;
>>[ A,B,C,D] =tf2ss(num,den)
A= -3 -6 -1
1 0 0
0 1 0
B = 1
0
0
C = 1 2 3
D = 0
返回
1.6 用 MATLAB和 SIMULINK进行瞬态响应分析
1.6.1 单位脉冲响应
当输入信号为单位脉冲函数 δ (t)时, 系
统输出为单位脉冲响应, MATLAB中求取脉冲响
应的函数为 impulse( ),其调用格式为
[ y,x,t] =impulse(num,den,t)
或 impulse(num,den)
式中 G(s)=num/den; t为仿真时间; y为时间 t
的输出响应; x为时间 t的状态响应 。
例 试求下列系统的单位脉冲响应
MATLAB命令为,
>> t=[0,0.1,40];
>>num=[1];
>>den=[1,0.3,1];
>>impulse(num,den,t);
>>grid;
>>title('Unit-impulse Response of
G(s)=1/(s^2+0.3s+1)')
其响应结果如图所示。
13.0
1)(
)(
)(
2 ???? sssGsR
sC
例 系统传递函数为
求取其单位脉冲响应
的 MATLAB命令为
>>t=[0,0.1,10]; num=[1];
>>den=[1,1,1];
>>[y,x,t]=impulse(num,den,t)
>>plot(t,y); grid
>>xlabel(‘t’); ylable(‘y’);
其响应结果如图所示。
? ?10,0 11)( 2 ???? tsssG
1.6.2 单位阶跃响应
当输入为单位阶跃信号时, 系统的输
出为单位阶跃响应, 在 MATLAB中可用
step( )函数实现, 其调用格式为
[y,x,t]=step(num,den,t) 或
step(num,den)
例 求系统传递函数为
>>num=[1]; den=[1,0.5,1];
>>t=[0,0.1,10];
>>[y,x,t]=step(num,den,t);
>>plot(t,y); grid;
>>xlabel(‘Time [sec] t’);
>>ylabel(‘y’)
响应曲线如图 所示
15.0
1)(
2 ??? sssG
图 单位阶跃响应
1.6.3 斜坡响应
在 MATLABA中没有斜坡响应命令,
因此, 需要利用阶跃响应命令来求斜坡响应 。
根据单位斜坡响应输入是单位阶跃输入的积
分 。 当求传递函数为的斜坡响应时, 可先用
除得, 再利用阶跃响应命令即可求得斜坡响
应 。
例 已知闭环系统传递函数
对单位斜坡输入 则
13.0
1)(
)(
)(
2 ???? sssGsR
sC
2
1)(,)(
ssRttr ??
ssssssssC
1
)13.0(
11
13.0
1)(
222 ?????????
系统单位斜坡响应的 MATLAB命令,
>> num=[1];
>>den=[1,0.3,1,0];
>>t=[0,0.1,10];
>>c=step(num,den,t);
>>plot(t,c);
>>grid;
>>xlabel('t sec');
>>ylabel('Input and Output')
其响应结果如图所示 。
1.6.4 任意函数作用下系统的响应
用线性仿真函数 lsim来实现, 其调用格式为
[ y,x] =lsim(num,den,u,t)
式中 ; y(t)为系统输出响应; x(t)
为系统状态响应; u为系统输入信号; t为
仿真时间 。
de n
numsG ?)(
例 反馈系统如图 (a)所示, 系统输入信号为
图 (b)所示的三角波, 求取系统输出响应 。
SS
S
10
2010
2
?
?R(s) C(s)2
-2
2 4 6 8
r(t)
图 反馈系统及输入信号
( a) ( b)
MATLAB实现指令
>>numg=[10,20]; deng=[1,10,0];
>> [num,den]=cloop(numg,deng,-1);
>>v1=[0,0.1,2];
>>v2=[1.9,-0.1,-2];
>>v3=[-1.9,0.1,0];
>>t=[0,0.1,8];
>>u=[v1,v2,v3];
>> [y,x]=lsim(num,den,u,t);
>>plot(t,y,t,u);
>>xlabel('Time [sec]');
>>ylabel('theta [rad]');
>>grid
其响应曲线如图 所示 。
图 系统响应曲线
1.6.5 Simulink中的时域响应举例
例图的 Simulink的仿真框图可演示系统对典
型信号的时间响应曲线, 图中给出阶跃响应
曲线 。
返回
第 1章 连续系统模型描述
剡昌锋 刘军
兰州理工大学机电工程学院
1.1连续系统模型描述
? 连续系统 ----系统状态变化在时间上
是连续的,可以用方程式(常微分方
程、偏微分方程、差分方程)描述系
统模型。
一个系统可以定义成如下集合结构,
T:时间基,描述系统变化的时间坐标
T为整数则称为离散时间系统,T为实数则称为连
续时间系统
X:输入集,代表外部环境对系统的作用。
X被定义为,其中, X即代表 n个实值的输
入变量。
Ω,输入段集,描述某个时间间隔内输入模式,是
(X,T)的子集。
Q:内部状态集,是系统内部结构建模的核心。
),,,,,,( ???? YQXTS
nR ??In
δ:状态转移函数,定义系统内部状态是如何变化
的。
它是映射,
? 其含义:若系统在 时刻处于状态 q,并施加一
个输入段,则 表示系统
处于 状态。
? λ,输出函数,它是映射,
输出函数给出了一个输出段集。
? Y:输出段集,系统通过它作用于环境。
0t
Xtt ??? 10,:? ),( ?? q
1t
YTXQ ???:?
QQ ?? ??,
连续系统数学模型典型形式
? 常微分方程
? 传递函数
? 状态空间描述
? 权函数(脉冲过渡函数)
1.1.1常微分方程 --输入 /输出水平
? ……,.( 1)
? 其中 n为系统的阶次,为系统
的结构参数,为输入函数的结构
参数,它们均为实常数
ucdt udcdt udcyadtdyadt ydadt yda nn
n
n
n
nnn
n
n
n
???????? ?
?
?
?
??
?
?? 1
2
11
1
111
1
10
),,2,1,0( nia i ??
),,2,1,0( njc j ??
1.1.2传递函数 ----输入 /输出水平
? 若系统的 初始条件为零,对( 1)式两边取
拉氏变换后稍加整理,
? ……,.(2)
?
? (2)式称为系统的传递函数。
j
n
j
jn
n
j
j
jn
sa
sc
sU
sY
sG
?
?
?
?
?
?
??
0
1
)(
)(
)(
1.1.3状态空间描述 ----状态结构水平
? 系统内部模型 ―― 状态空间模型。状态空
间描述的一般形式为,
? 状态方程, (3)
? 输出方程, (4)
BUAXX ???
CXY ?
1.2 模型结构变换
? 连续系统仿真要将这个系统的模型在计算
机上实现出来,首先要把系统的各种描述
形式转换成内部模型 ---状态空间模型,我
们将其称为 模型结构变换 。
1.2.1 输入 /输出水平模型到内部模型的变换
? 假设一连续系统,它的数学模型如 (5)式所示
? ( a0=1) (5)
? 今引进 n个状态变量,
?,,, ……
)(1
1
1 tuyadt
yda
dt
yd
nn
n
n
n
???? ?
?
?
yx ?1
dt
dyxx ??
12 ? 2
2
23 dt
ydxx ?? ?
1
1
1 ?
?
? ?? n
n
nn dt
ydxx ?
输入 /输出水平模型到内部模型的变换(续)
? 则有
? 将上述 n个一阶微分方程写成矩阵形式可得
? ( 6)
)(2
2
21
1
1 tuyadt
yda
dt
yda
dt
ydx
nn
n
n
n
n
n
n ??????? ?
?
?
?
?
)(1121 tuxaxaxa nnn ?????? ? ?
ux
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
????
?
?
?
?
?
?
?
?
?
?
?
?
?
??
1
0
0
1000
0100
0010
2
1
121
??
?
?
?????
?
?
?
?
?
?
?
n
nnn
x
x
x
aaaa
n
2
1
x
x
x
=
输入 /输出水平模型到内部模型的变换(续)
? ( 7)
? 外部模型变换到内部模型不唯一,所以仿
真模型也不唯一。一个系统有多种实现,
最小实现的充要条件是 (A,B,C)为完全
能控且完全能观测。
? ?xy 00 ?01=
1.2.2系统状态初始值变换
? 如果系统是非零初始条件,那么从外部模型变换
到内部内部模型还必须考虑如何将给定的初始条
件转变为相应的状态变量的初始值。
? 若系统是由如下一般形式的 n阶微分方程来描述,
? 系统初始条件为,
ucdtducdt udcdt udcyadtdyadt ydadt yda nnn
n
n
n
nnn
n
n
n
????????? ??
?
??
?
11
1
1011
1
10 ??
)1,,2,1(,)(,)( )(00)()(00)( ???? niutuyty iiii ?
伴随方程法
? 一阶微分方程组的状态变量记为,
如果它们满足如下关系,
? ( 8)
? ( 9)
? ( 10)
? ( 11)
? 该状态方程与原方程等价。
),,2,1( nix i ??
ucyax 001 ??
ucyaxx jjjj ??? ? 1?
ucax nnn ????
)( 0110 ucxy a ??
伴随方程法(续)
? 证明,
? 将( 8)两边分别进行微分 n次,可得,
? ( 12)
? 其中 p为微分算子符号。对( 9)式两边分别进行 n-
j(j=1,2,…,n-1)次微分,可得,
? ( 13)
? 对( 10)式也引入微分算子,
? ( 14)
? 将( 12)、( 13)、( 14)所包括的 n+1个等式左右
两边分别相加,消去同类项,稍加整理后就得到原高阶微
分方程,表明两者之间的等价关系。
upcypaxp nnn 001 ??
upcypaxpxp jnjjnjjjnjjn ?????? ??? 11
ucyapx nnn ???
伴随方程法(续)
? 伴随方程法 显式地表示了状态变量与原输入 /输出变量及
其高阶导数之间的关系,因而易于进行初始值的转换。 这
样得到状态方程及输出方程,
? ( 15)
? 其中
??
?
?? u
u+=
DCX
BAXX
y
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
000
100
010
001
1
2
1
?
?
?????
?
?
n
n
a
a
a
a
A
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
nn acc
acc
acc
0
202
101
?
=B
? ? 00
0
/00,11 ac a ?DC ?=
伴随方程法(续)
? 设 a0=1,初值转换方程,
? 伴随方程有多种形式,因而得到的状态方程也不
唯一。那么,实现这种初值转换的条件是什么呢?
1 0 0 0 0
2 0 1 0 1 0 0
( 1 ) ( 1 )
0 1 2 0 1 2 0 0
1 0 0 0 0
1 0 0
1 nnn n n n n
x y c u
x a y c c u
x a a y c c c u--- - - -
轾 轾 轾 轾 轾
犏 犏 犏 犏 犏
犏 犏 犏 犏 犏
犏 犏 犏 犏 犏=-
犏 犏 犏 犏 犏
犏 犏 犏 犏 犏
犏 犏 犏 犏 犏
臌 臌 臌 臌 臌
LL
&&
M M O M M M O M
LL
伴随方程法(续)
? 考虑转换后得到的系统状态空
间模型为,
? 即假定 u的 n阶导数项的系数
c0=0,已知系统的初始条件为,
? 则为了由上述初始值求出状态
变量的初始值,可列出以下方
程,
??
?
?
??
CXY
BUAXX ?
? ?
)0(),0(),0(
)0(,0)0(
)1(
)1(
?
?
n
n
uuu
yyy
??
??,
(t)Cx?)( ty
( t )+( t )=( t ) CBuC A xxC ?? ?)( ty
()yt = && & & &&& C x C A x C B u C A x C A B u C B u2( t ) = ( t ) + ( t ) = ( t ) + ( t ) + ( t )
伴随方程法(续)
? 于是可得下列矩阵方程
? (16)
? 其中
)()()( t+Ttθt uXy ?
? ? Tn tytytyt )()()()( )1( ?? ??y
? ?Tn tututut )(1-)()(=)( ??u
?
?
?
?
?
?
?
?
?
?
?
?
?
1-nCA
CA
C
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
0
00
000
=
CBBCABCA
CBC A B
CB
T
3-n2-n
?
?
伴随方程法(续)
? 由 (16)式可得,(17)
? 即,若 存在,则可由 (17)式求出 x(t) 的初
始值。
? 由控制理论可知,θ是 (A,B,C)的能观
判别阵,若 (A,B,C)是完全能观的,则 θ
非奇异。这就是说,由高阶微分方程输入 /
输出变量初始值转变为状态初始值的条件是:
内部模型 (A,B,C)是 完全能观的。
)]()(=)( -1 ttt Tuyx -[?
1??
1.2.3 典型环节的传递函数
控制系统由许多元件组合而成, 这些元
件的物理结构和作用原理是多种多样的, 但
抛开具体结构和物理特点, 从传递函数的数
学模型来看, 可以划分成几种典型环节, 常
用的典型环节有比例环节, 惯性环节, 积分
环节, 微分环节, 振荡环节, 延迟环节等 。
1,比例环节
环节输出量与输入量成正比, 不失真也无
时间滞后的环节称为比例环节, 也称无惯性环
节 。 输入量与输出量之间的表达式为
c(t)=Kr(t)
比例环节的传递函数为
KsR sCsG ?? )( )()(
式中 K为常数, 称为比例环节的放大系数或增益 。
2,惯性环节 (非周期环节 )
惯性环节的动态方程是一个一阶微分方程
)()()( tKrtcdt tdcT ??
其传递函数为
1)(
)()(
?
??
Ts
K
sR
sCsG
式中 T—— 惯性环节的时间常数
K—— 惯性环节的增益或放大系数
当输入为单位阶跃函数时, 其单位阶跃响应为
? ? )1(11)()( 111 TeKsTs KLsCLtc ??? ???
?
?
??
? ?
???
单位阶跃响应曲线
11/
/11
)(
)()(
??????? Ts
K
RsL
R
RLssU
sIsG
惯性环节实例很多, 如
图所示的 R-L网络, 输入
为电压 u,输出为电感电
流 i,其传递函数
式中
R
LT ?
RK
1?
2,积分环节
输出量正比于输入量的积分的环节称为积分
环节, 其动态特性方程
dttr
T
tc
t
i
?? 0 )(1)(
其传递函数
sTsR
sCsG
i
1
)(
)()( ??
式中 Ti为积分时间常数 。
积分环节的单位阶跃响应为
tTtC
i
1)( ?
它随时间直线增长, 当输入突然消失, 积分停止,
输出维持不变, 故积分环节具有记忆功能, 如图所
示 。
上图为运算放大器构成的积分环节, 输入 ui(t),
输出 u0(t),其传递函数为
sTR C ssU
sUsG
ii
11
)(
)()( 0 ?????
式中 Ti = RC
4,微分环节
理想微分环节的特征输出量正比于输入量的
微分, 其动态方程
dt
tdrTtc
d
)()( ?
其传递函数
sTsR sCsG d?? )( )()(
式中 Td称微分时间常数
它的单位阶跃响应曲线 )()( tTtc
d ??
如图所示, 理想微分
环节实际上难以实现,
因此我们常采用带有
惯性的微分环节, 其
传递函数
1
)(
?
?
sT
sKTsG
d
d
其单位阶跃响应为
dTKetc
1
)(
?
?
曲线如下图所示, 实际微分环节的阶跃响
应是按指数规律下降, 若 K值很大而 Td值很小时,
实际微分环节就愈接近于理想微分环节 。
5,二阶振荡环节 (二阶惯性环节 )
二阶振荡环节的动态方程为
)()()(2)(2
2
2 tKrtc
dt
tdcT
dt
tcdT ??? ?
其传递函数
12)(
)()(
22 ???? TssT
K
sR
sCsG
?
22
2
2)( nn
n
ss
KsG
???
?
???
式中 为无阻尼自然振荡角频率, ζ为阻尼比 。
Tn
1??
图中所示为 RLC网络,
输入为 ui(t),输出 u0(t),其
动态特性方程
)()()()( 0020
2
tutudt tduRCdt tudLC i???
其传递函数
2
2
2
0
22
1
1
)(
)(
)(
n
n
i
nss
R C sLC stU
tU
sG
???
?
??
?
??
??
式中
LCn
1??
L
CR
2??
6,延迟环节 (时滞环节 )
延迟环节是输入信号加入
后, 输出信号要延迟一段
时间 τ后才重现输入信号,
其动态方程为
)()( ??? trtc
其传递函数是一个 超越函数
se
sR
sCsG ????
)(
)()(
式中 τ称延迟时间
需要指出, 在实际生产中, 有很多场合是
存在迟延的, 比如皮带或管道输送过程, 管道
反应和管道混合过程, 多个设备串联以及测量
装置系统等 。 迟延过大往往会使控制效果恶化,
甚至使系统失去稳定 。
1.2.4 分解结构水平转换 --面向结构图的模型变换
? 对于任何一个组合的典型环节都可以用状
态方程表示
CUUDAYYB ??? ?? ( 20)
面向结构图系统方程描述
1 2 3 4
5
?
2
?
4
?
4
-
-
-
+ +
+ 2
y y 1 y
0
y
3
y
4
y
5
u
1
u
2
u
3
u
5
被仿真的系统框图
u
4
面向结构图系统方程描述(续)
? U=WY+W0y0 (21)
? W称为系统的连接矩阵,它描述了系统内部各环节连接情况,每个元
素 Wi j 表示第 j 个环节的输出到第 i 个环节的输入之间的联接系
数,
? W0称为外部输入的连接矩阵,它描述了外部输入对系统的作用情况。
对单输入系统,W0是一个列矢量,Woj 表示外部输入信号 y0 作用
在第 j个环节上的作用系数。在上图中,y0 只作用在第一个环节上,
故 W0 1= 1。若为多输入系统则 W0也是一个矩阵,它的列数等于输
入量的个数。
0
5
4
3
2
1
4
2
4
5
4
3
2
1
0
0
0
0
1
00100
00100
0010
1001
0000
y
y
y
y
y
y
u
u
u
u
u
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
系统方程转换
? 将 (21)式代入 (20)式,则可得,
? ( 22)
? ( 23)
? 其中,Q=B- DW,P=CW- A, V1=CW0,
V2=DW0
? 如果 Q 阵的逆存在,那么对 (23)式两边左乘 Q- 1,则得,
? ( 24)
? 这是一个标准的一阶常微分方程组。
000 C W YYDWC W YYDWAYYB ????? ???
0201 YVYVPYYQ ?? ???
0210111 YVQYVQPYQY ?? ??? ???
系统方程转换(续)
? 说明,
? ( 1)矩阵方程的右端有两项与外加作用信号
有关,一项是,另一项 。若外加作用函
数是单位阶跃阵,此时,为了便于计算,就
要求 V2是零向量。如果外加作用信号是阶跃信号,
那么必须限制外加作用信号所用的那个环节
Di=0。
? ( 2)只有当 Q 阵能求逆时,才能获得 (14)式。
当系统中各环节不存在纯微分环节和 /或纯比例
环节时就能保证 Q阵可以求逆。
? ( 3)关于 Q 的逆阵不存在时的结构变换,以下
例说明,
Y0
011 YVQ? 021 YVQ ??
??0Y?
结构变换例子
? 则 Q=B- DW
? P=CW-A
?
? V1=CW0
1
2 2A B S?
C1
D3S
1 2 3
+
-
结构变换举例
y2 y3y1y0
?
?
?
?
?
?
?
?
?
?
?
?
0 0 0
0 0
0 0
2
3
B
D
?
? ?
?
?
?
?
??
?
?
?
??
?
1 0
1 0
0 0 1
1
2
C
A
?
?
?
?
?
?
?
?
?
?
?
C1
0
0
因为 Q 阵中出现 1,3
两列全零,所以 Q -1
不存在。其原因是 1、
3两个环节是比例和微
分环节。对于上述系
统,可以将其结构加
以变换。
结构变换例子(续)
? 系统结构变换的程序法,
? 设系统的状态方程为,
? Q 阵中有 (N- M)列元素为全零,这说明有有 (N- M)个
环节的 Y不出现在方程的左端。也就是说,系统中有 (N-
M)个代数方程。
? 系统结构变换程序法就是通过矩阵的初等变换,把系统中
(N- M)个代数方程分离出来。具体做法,就是对 Q,P、
V各矩阵线性变换,使上述方程中的各矩阵变
为,从而 Y变为,方程变为,
? (25)
01 YVPYYQ ???
1~~~ VPQ,、
Y~
01
~~~~~ YVYPYQ ???
结构变换例子(续)
? 其中,
?
? (26)
~Q?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???????????
??
MNN
MMM
MMM
M
M
,1,
,11,1
1
221
111
~~
~~
~~
~~
~~
??
?????
?????
??
??
?????
??
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???
|
0|
|
|
|
|
0|
|
|
? ? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
~
|
|
|
|
~
|
Q
Q
M
N M
0
0
~P
?
? ? ? ? ? ? ? ? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? ? ? ? ? ?
? ?
?
~ ~
|
|
|
~ ~
|
|
~ ~
|
|
~ ~
|
~
~
|
|
|
|
,
,,
,,
,,
P P
P P
P P
P P
P
P
M
M M M
M M M
N N M
M
N M
11 1
1
1 1 1
1
0
0 1
1 0
0
? ?
? ? ? ?
? ? ? ?
? ?
? ?
? ? ? ? ?
? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
|
|
|
0 1
1 0
?~V1 ? ? ? ? ?
?
?
?
?
?
?
?
?
?
?
?
~
~
,
V
V
M
N M
1
1
结构变换例子(续)
? 在变换的过程中,对 Q,P,V作列变换,将使 Y
原来的编号改变。所以程序中应将列变换的情况
记录下来,以便在最后求出 后,经过反变换而
仍能恢复 Y。
? 完成变换后,系统可以分为 M个微分方程与 (N-
M)个代数方程。而该 M个微分组的 的逆存在。
因此,
? (27)
? 由此解得,然后再解 (N-M)个代数方程,
~Y
~QM
0111
~~~~~~ YVQYPQY
MMMMMMMMM ? ??? ? ???
~,~,,~y y y M1 2 ?
结构变换例子(续)
? (28)
? 由当 时,,
由此方程( 28)可以写成,
),,2,1( ~~~~~ 01
1 1
NMMiYVyPYQ ij
M
j
N
j
ijjij ?? ?????? ?
? ?
1,,1,,,2,1 ?????? MNNiNMMj ??,~Pij ?1
NMMi
YVyPyQy ij
M
j
N
j
ijjijiMN
,,2,1
~~~~~~
01
1 1
1
?
?
???
??? ? ?
? ?
???
1.3 微分方程的线性化
实际的物理系统往往有间隙, 死区, 饱
和等各类非线性现象 。 严格地讲, 几乎所有实
际物理和化学系统都是非线性的 。 目前, 线性
系统的理论已经相当成熟, 但非线性系统的理
论还远不完善 。 因此, 在工程允许范围内, 尽
量对所研究的系统进行线性化处理, 然后用线
性理论进行分析不失为一种有效的方法 。
当非线性因素对系统影响较小时, 一般可直接
将系统当作线性系统处理 。 另外, 如果系统的变量
只发生微小的偏移, 则可通过切线法进行线性化,
以求得其增量方程式 。
非线性函数的线性化, 是指将非线性函数在工
作点附近展开成泰勒级数, 忽略掉高阶无穷小量及
余项, 得到近似的线性化方程, 来替代原来的非线
性函数 。
假如元件的输出与
输入之间关系 x2=f(x1)的
曲线如图, 元件的工作
点为 (x10,x20)。 将非线
性函数 x2= f(x1)在工作点
(x10,x20)附近展开成泰
勒级数
)(
!2
1
)()()(
2
101102
1
2
10110
1
1012
????
????
xx
dx
fd
xx
dx
df
xfxfx
x
x
当 (x1- x10)为微小增量时, 可略去二阶以上各项,
写成
)(
)()(
10120
10110
1
102
xxKx
xx
dx
df
xfx x
???
???
其中 为工作点 (x10,x20)处的斜率,
即此时以工作点处的切线代替曲线, 得到变量在工
作点的增量方程, 经上述处理后, 输出与输入之间
就成为线性关系 。
10
1
xdx
dfK ?
图 2-8为一铁芯线圈, 输入为 ui(t),输出为 i(t)。
线圈的微分方程为
)()( tuRidtdidi id i???Φ
当工作过程中线圈的电压和电流只在工作点
( u0,i0) 附近变化时, 即有
)()( 0 tuutu ii ??? iii ??? 0
线圈中的磁通 对 也有增量变化, 假如在 i0
附近连续可微, 将在 i0 附近展开成泰勒级数, 即
Φ
0Φ
??????????? 202
1
2
00 )()(!2
1)( i
di
di
di
d
ii
因是微小增量, 将高阶无穷小量略去, 得近似式
idid i ?????? 00 )(
)( tuiRdt idL i?????
这就是铁芯线圈的增量化方程, 为简便起见,
常略去增量符号而写成
)( tuRidtdiL i??
返回
1.4 方框图
在控制工程中, 为了便于对系统进行
分析和设计, 常将各元件在系统中的功能
及各部分之间的联系用图形来表示, 即方
框图和信号流图 。
1.4.1方框图
方框图也称方块图或结构图, 具有形象和
直观的特点 。 系统方框图是系统中各元件功能
和信号流向的图解, 它清楚地表明了系统中各
个环节间的相互关系 。 构成方框图的基本符号
有四种, 即信号线, 比较点, 传递环节的方框
和引出点 。
1.5 在 MATLAB中数学模型的表示
线性系统理论中常用的数学模型有微分方程, 传
递函数, 状态空间表达式等,而这些模型之间又有
着某些内在的等效关系 。 MATLAB主要使用传递
函数和状态空间表达式来描述 线性时不变系统
(Linear Time Invariant简记为 LTI)。
1.5.1传递函数
单输入单输出线性连续系统的传递函数为
nn
nn
mm
m
m
asasasa
bsbsbsb
sR
sCsG
???
????????????
?
?
?
?
1
1
10
1
1
10
)(
)()(
其中 m≤ n。 G(s)的分子多项式的根称为系统的零
点,分母多项式的根称为系统的极点 。 令分母多
项式等于零,得系统的特征方程,
D(s)=a0sn+a1sn- 1+…… +an- 1s+an=0
系统的传递函数在 MATLAB下可由其分子和分母
多项式唯一地确定出来,其格式为
sys=tf(num,den)
其中 num为分子多项式, den为分母多项式
num=[ b0,b1,b2,…,bm] ;
den=[ a0,a1,a2,…,an] ;
对于其它复杂的表达式,如
)432)(3(
)62)(1()(
232
22
????
????
sssss
ssssG
可由下列语句来输入
>>num=conv([ 1,1],conv([ 1,2,6],[ 1,2,6] ));
>>den=conv([ 1,0,0],conv([ 1,3],[ 1,2,3,4] ));
>>G=tf(num,den)
Transfer function,
2^123^134^95^56^
602^403^204^5^
sssss
ssssss
????
????
1.5.2传递函数的特征根及零极点图
传递函数 G(s)输入之后,分别对分子和分母多项
式作因式分解,则可求出系统的零极点,MATLAB提
供了多项式求根函数 roots(),其调用格式为
roots(p)
其中 p为多项式 。
例如,多项式 p(s)=s3+3s2+4
>>p=[ 1,3,0,4] ; %p(s)=s3+3s2+4
>>r=roots(p)%p(s)=0的根
r=-3.3533
0.1777+1.0773i
0.1777-1.0773i
反过来,若已知特征多项式的特征根,可调用
MATLAB中的 poly( )函数,来求得多项式降幂排
列时各项的系数,如上例
>>poly(r)
p = 1.0000 3.0000 0.0000 4.0000
而 polyval函数用来求取给定变量值时多项
式的值,其调用格式为
polyval(p,a)
其中 p为多项式 ;a为给定变量值
例如,求 n(s)=(3s2+2s+1)(s+4)在 s=- 5时值,
>>n=conv([ 3,2,1],[ 1,4] );
>>value=polyval(n,-5)
value=- 66
[ p,z] =pzmap(num,den)
其中,p─传递函数 G(s)= numden的极点
z─传递函数 G(s)= numden的零点
例如,传递函数
传递函数在复平面上的零极点图,采用 pzmap()函
数来完成,零极点图上,零点用, 。, 表示,极点用
,×,表示 。 其调用格式为
133
16)(
23
2
???
??
sss
ssG
)3)(2)(2(
)2)(1()(
???
???
sisis
sssH
用 MATLAB求出 G(s)的零极点,H(s)的多项式
形式,及 G(s)H(s)的零极点图
>>numg=[ 6,0,1] ; deng=[ 1,3,3,1] ;
>>z=roots(numg)
z=0+0.4082i
0- 0.4082i %G(s)的零点
>>p=roots(deng)
p=- 1.0000+0.0000i
- 1.0000+0.0000i %G(s)的极点
- 1.0000+0.0000i
>> n1=[ 1,1] ;n2=[ 1,2] ;d1=[ 1,2*i] ;
d2=[ 1,-2*i] ;d3=[ 1,3] ;
>>numh=conv(n1,n2);
denh=conv(d1,conv(d2,d3));
>>printsys(numh,denh)
1242^33^
232^
???
??
sss
ssnumh/denh= %H(s)表达式
>>pzmap(num,den) %零极点图
>>title(‘pole-zero Map’)
零极点图如图所示,
1.5.3 控制系统的方框图模型
若已知控制系统的方框图,使用 MATLAB函数
可实现方框图转换 。
1.串联
如图所示 G1(s)和 G2(s)相串联,在 MATLAB中可
用串联函数 series( )来求 G1(s)G2(s),其调用格式为
[ num,den] =series(num1,den1,num2,den2)
其中,
2
2)(
2 de n
numsG ?
1
1)(
1 d e n
n umsG ?
de n
nu msGG ?)(
21
2.并联
如图所示 G1(s)和 G2(s)相并联,可由 MATLAB的
并联函数 parallel( )来 实现,其调用格式为
[ num,den] =parallel(num1,den1,num2,den2)
其中,
2
2)(
2 de n
numsG ?
1
1)(
1 d e n
n umsG ?
de n
nu msGsG ?? )()(
21
3.反馈
反 馈 连 接 如 图 所 示 。 使用 MATLAB 中的
feedback( )函数来实现反馈连接,其调用格式为
[ num,den] =feedback(numg,deng,numh,denh,sign)
式中,
d e n g
n u m gsG ?)(
sign为反馈极性,若为正反馈其为 1,若为负反馈其为
- 1或缺省 。
d e n
num
sHsG
sG ?
? )()(1
)(
de nh
nu m hsH ?)(
例如 G(s)=,H(s)=,负反馈连接 。
2
1
?
?
s
s
s
1
>>numg=[ 1,1] ;deng=[ 1,2] ;
>>numh=[ 1] ;denh=[ 1,0] ;
>>[ num,den] =feedback(numg,deng,numh,denh,- 1);
>> printsys(num,den)
num/den=
132^
2^
??
?
ss
ss
MATLAB 中 的 函 数 series,parallel 和
feedback可用来简化多回路方框图 。 另外,
对于单位反馈系统,MATLAB可调用 cloop( )
函数求 闭环传递函数,其调用格式为
[ num,den] =cloop(num1,den1,sign)
1.5.4 控制系统的零极点模型
传递函数可以是时间常数形式,也可以是零
极点形式,零极点形式是分别对原系统传递函数
的分子和分母进行因式分解得到的 。 MATLAB
控制系统工具箱提供了零极点模型与时间常数
模型之间的转换函数,其调用格式分别为
[ z,p,k] = tf2zp(num,den)
[ num,den] = zp2tf(z,p,k)
其中第一个函数可将传递函数模型转换成零极点
表示形式,而第二个函数可将零极点表示方式转换
成传递函数模型 。
例如 G(s)=
22642
20122412
234
23
????
???
ssss
sss
用 MATLAB语句表示,
>>num=[ 12 24 12 20] ;den=[ 2 4 6 2 2] ;
>>[ z,p,k] =tf2zp(num,den)
z= - 1.9294
- 0.0353+ 0.9287i
- 0.0353- 0.9287i
p=- 0.9567+ 1.2272i
- 0.9567- 1.2272i
- 0.0433+ 0.6412i
- 0.0433- 0.6412i
k=6
即变换后的零极点模型为
G(s)=
)9 2 8 7.00 3 5 3.0)(9 2 8 7.00 3 5 3.0)(9 2 9 4.1(6 ????? sss
)2 2 7 2.19 5 6 7.0)(2 2 7 2.19 5 6 7.0( isis ????
)6 4 0.04 3 3.0)(6 4 0.04 3 3.0( isis ?????
可以验证 MATLAB的转换函数,调用 zp2tf()函
数将得到原传递函数模型 。
>>[ num,den] =zp2tf(z,p,k)
num = 0 6.0000 12.0000 6.0000 10.0000
den = 1.0000 2.0000 3.0000 1.0000 1.0000
即
132
106126)(
234
23
????
????
ssss
ssssG
1.5.5 状态空间表达式
状态空间表达式是描述系统特性的又一种数
学模型,它由状态方程和输出方程构成,即
x(t)=Ax(t)+Bu(t)
y(t)=Cx(t)+Du(t)
式中 x(t)∈ Rn 称为状态向量,n为系统阶次 ;
A∈ Rn× n 称为系统矩阵 ;
B∈ Rn× p 称为控制矩阵,p为输入量个数 ;
C∈ Rq× n 称为输出矩阵 ;
D∈ Rq× p 称为连接矩阵,q为输出量个数 。
在一般情况下,控制系统的状态空间表达式项简
记为 (A,B,C,D)。
例如:设一个双输入双输出系统的状态空间表
达式为
uxtx
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
20
22
64
510
623
421
)(?
xy ?
?
?
?
?
?
?
020
100
系统模型可由 MATLAB命令直观地表示,
>>A=[ 1,2,4;3,2,6;0,1,5]
>>B=[ 4,6;2,2;0,2]
>>C=[ 0,0,1;0,2,0]
>>D= zeros(2,2)
MATLAB的控制系统工具箱提供了由状态空间
表达式转换成传递函数或由传递函数转换成状态
空间表达式的转换函数 ss2tf( )和 tf2ss( )。 其调用
格式为
[ num,den] =ss2tf(A,B,C,D,iu)
反过来,若已知系统的传递函数,求取系统状态
空间表达式的调用格式为
[ A,B,C,D] =tf2ss(num,den)
例如系统的传递函数为
163
32)(
23
2
???
???
sss
sssG
系统的状态空间表达式为
>>num=[ 1,2,3] ; den=[ 1,3,6,1] ;
>>[ A,B,C,D] =tf2ss(num,den)
A= -3 -6 -1
1 0 0
0 1 0
B = 1
0
0
C = 1 2 3
D = 0
返回
1.6 用 MATLAB和 SIMULINK进行瞬态响应分析
1.6.1 单位脉冲响应
当输入信号为单位脉冲函数 δ (t)时, 系
统输出为单位脉冲响应, MATLAB中求取脉冲响
应的函数为 impulse( ),其调用格式为
[ y,x,t] =impulse(num,den,t)
或 impulse(num,den)
式中 G(s)=num/den; t为仿真时间; y为时间 t
的输出响应; x为时间 t的状态响应 。
例 试求下列系统的单位脉冲响应
MATLAB命令为,
>> t=[0,0.1,40];
>>num=[1];
>>den=[1,0.3,1];
>>impulse(num,den,t);
>>grid;
>>title('Unit-impulse Response of
G(s)=1/(s^2+0.3s+1)')
其响应结果如图所示。
13.0
1)(
)(
)(
2 ???? sssGsR
sC
例 系统传递函数为
求取其单位脉冲响应
的 MATLAB命令为
>>t=[0,0.1,10]; num=[1];
>>den=[1,1,1];
>>[y,x,t]=impulse(num,den,t)
>>plot(t,y); grid
>>xlabel(‘t’); ylable(‘y’);
其响应结果如图所示。
? ?10,0 11)( 2 ???? tsssG
1.6.2 单位阶跃响应
当输入为单位阶跃信号时, 系统的输
出为单位阶跃响应, 在 MATLAB中可用
step( )函数实现, 其调用格式为
[y,x,t]=step(num,den,t) 或
step(num,den)
例 求系统传递函数为
>>num=[1]; den=[1,0.5,1];
>>t=[0,0.1,10];
>>[y,x,t]=step(num,den,t);
>>plot(t,y); grid;
>>xlabel(‘Time [sec] t’);
>>ylabel(‘y’)
响应曲线如图 所示
15.0
1)(
2 ??? sssG
图 单位阶跃响应
1.6.3 斜坡响应
在 MATLABA中没有斜坡响应命令,
因此, 需要利用阶跃响应命令来求斜坡响应 。
根据单位斜坡响应输入是单位阶跃输入的积
分 。 当求传递函数为的斜坡响应时, 可先用
除得, 再利用阶跃响应命令即可求得斜坡响
应 。
例 已知闭环系统传递函数
对单位斜坡输入 则
13.0
1)(
)(
)(
2 ???? sssGsR
sC
2
1)(,)(
ssRttr ??
ssssssssC
1
)13.0(
11
13.0
1)(
222 ?????????
系统单位斜坡响应的 MATLAB命令,
>> num=[1];
>>den=[1,0.3,1,0];
>>t=[0,0.1,10];
>>c=step(num,den,t);
>>plot(t,c);
>>grid;
>>xlabel('t sec');
>>ylabel('Input and Output')
其响应结果如图所示 。
1.6.4 任意函数作用下系统的响应
用线性仿真函数 lsim来实现, 其调用格式为
[ y,x] =lsim(num,den,u,t)
式中 ; y(t)为系统输出响应; x(t)
为系统状态响应; u为系统输入信号; t为
仿真时间 。
de n
numsG ?)(
例 反馈系统如图 (a)所示, 系统输入信号为
图 (b)所示的三角波, 求取系统输出响应 。
SS
S
10
2010
2
?
?R(s) C(s)2
-2
2 4 6 8
r(t)
图 反馈系统及输入信号
( a) ( b)
MATLAB实现指令
>>numg=[10,20]; deng=[1,10,0];
>> [num,den]=cloop(numg,deng,-1);
>>v1=[0,0.1,2];
>>v2=[1.9,-0.1,-2];
>>v3=[-1.9,0.1,0];
>>t=[0,0.1,8];
>>u=[v1,v2,v3];
>> [y,x]=lsim(num,den,u,t);
>>plot(t,y,t,u);
>>xlabel('Time [sec]');
>>ylabel('theta [rad]');
>>grid
其响应曲线如图 所示 。
图 系统响应曲线
1.6.5 Simulink中的时域响应举例
例图的 Simulink的仿真框图可演示系统对典
型信号的时间响应曲线, 图中给出阶跃响应
曲线 。
返回