CH3、控制系统的数学描述与建模
?控制系统的数学模型在控制系统的研究
中有着相当重要的地位,要对系统进行
仿真处理,首先应当知道系统的数学模
型,然后才可以对系统进行模拟。同样,
如果知道了系统的模型,才可以在此基
础上设计一个合适的控制器,使得系统
响应达到预期的效果,从而符合工程实
际的需要。
工业生产中的实际系统绝大多数是物理系统,系
统中的变量都是一些具体的物理量,如电压、电
流、压力、温度、速度、位移等等,这些物理量
是随时间连续变化的,称之为连续系统;若系统
中物理量是随时间断续变化的,如计算机控制、
数字控制、采样控制等,则称为离散 (或采样 )系
统。采用计算机仿真来分析和设计控制系统,首
要问题是建立合理地描述系统中各物理量变化的
动力学方程,并根据仿真需要,抽象为不同表达
形式的系统数学模型。
?在线性系统理论中,一般常用的数学
模型形式有:
传递函数模型(系统的外部模型)、状
态方程模型(系统的内部模型)、零极
点增益模型和部分分式模型等。这些模
型之间都有着内在的联系,可以相互进
行转换。
? 按系统性能分:线性系统和非线性系统;连续系统和
离散系统;定常系统和时变系统;确定系统和不确定
系统。
1、线性连续系统:用线性微分方程式来描述,如果微分
方程的系数为常数,则为定常系统;如果系数随时间
而变化,则为时变系统。 今后我们所讨论的系统主要
以线性定常连续系统为主。
2、线性定常离散系统:离散系统指系统的某处或多处的
信号为脉冲序列或数码形式。这类系统用差分方程来
描述。
3、非线性系统:系统中有一个元部件的输入输出特性为
非线性的系统。
第一节 系统的分类
? 微分方程是控制系统模型的基础,一般来讲,利用机
械学、电学、力学等物理规律,便可以得到控制系统
的动态方程,这些方程对于线性定常连续系统而言是
一种常系数的线性微分方程。
? 如果已知输入量及变量的初始条件,对微分方程进行
求解,就可以得到系统输出量的表达式,并由此对系
统进行性能分析。
? 通过拉氏变换和反变换,可以得到线性定常系统的解
析解,这种方法通常只适用于常系数的线性微分方程,
解析解是精确的,然而通常寻找解析解是困难的。
MATLAB提供了 ode23,ode45等微分方程的数值解
法函数,不仅适用于线性定常系统,也适用于非线性
及时变系统。
第二节 线性定常连续系统的微分方程模型
设线性定常系统输入, 输出量是单变量, 分别为
u(t),y(t),则两者间的关系总可以描述为线性常系
数高阶微分方程形式
(3-1)
式中,
y(j)为 y(t)的 j阶导数,, j=0,1,…, n;
u(i)为 u(t)的 i阶导数,, i=0,1,…, m;
aj为 y(t)及其各阶导数的系数, j=0,1,…, n;
bi为 u(t)及其各阶导数的系数, i=0,1,…, m;
n为系统输出变量导数的最高阶次; m为系统输入变
量导数的最高阶次, 通常总有 m n。
ububyayayaya mmnnnn ???????? ?? ?? )(01)1(1)(0
j
j
dt
tydy )(?
i
i
dt
tudu )(?
?
对式 (3-1)的数学模型, 可以用以下模型参数形式表征:
输出系数向量 A= [a0,a1,…, an],n十 1维
输入系数向量 B= [b0,b1,…, bm],m十 1维
输出变量导数阶次, n
输入变量导数阶次, m
有了这样一组模型参数, 就可以简便地表达出一个连续
系统的微分方程形式 。
微分方程模型是连续控制系统其它数学模型表达形式的
基础, 以下所要讨论的模型表达形式都是以此为基础发
展而来的 。
对线性定常系统,式中 s的系数均为常数,且 a0不等于零,
这时系统在 MATLAB中可以方便地由分子和分母系数构
成的两个向量唯一地确定出来,这两个向量分别用 num
和 den表示,num=[b0,b1,…,b m]
den=[a0,a1,…,a n]
注意:它们都是按 s的降幂进行排列的。
第三节 传递函数描述
一、连续系统的传递函数模型
将式 (3-1)在零初始条件下,两边同时进行拉氏变换,
则有 连续系统的传递函数如下:
)(
)(
)(
)()(
1
1
10
0
nn
nn
m
m
asasasa
bsb
sU
sYsG
????
????
?
? ?
?
当 a0= 1时, 分子多项式成为
称为系统的首一特征多项式, 是控制系统常用的标准表
达形式, 于是相应的模型参数中, 分母系数向量只用
n维分量即可表示出, 即
A= [a1,a2,…, an],n维
)( 111 nnnn asasas ???? ?? ?
? 零极点模型实际上是传递函数模型的另一种表现形式,
其原理是分别对原系统传递函数的分子、分母进行分解
因式处理,以获得系统的零点和极点的表示形式。
)),..()((
)),..()(()(
21
21
n
m
pspsps
zszszsKsG
???
????
在 MATLAB中零极点增益模型用 [z,p,K]矢量组表示。即:
z=[z1,z2,…,zm]
p=[p1,p2,...,pn]
K=[k]
函数 tf2zp()可以用来求传递函数的零极点和增益。
二、零极点增益模型
K为系统增益,zi为零点,pj为极点
分析控制系统过程中,经常要求对系统函数进行分解,
使其表现为一些基本控制单元的和的形式。
传递函数表示成为部分分式形式
式中, pi(i= 1,2,…, n)为该系统的 n个极点, 与零极
点形式的 n个极点是一致的, rj(j= 1,2,…, n)是对
应各极点的留数; h(s)则表示传递函数分子多项式除
以分母多项式的余式, 若分子多项式阶次与分母多项
式相等, h为标量, 若分子多项式阶次小于分母多项
式阶次, 该项不存在 。
三、部分分式展开
)()(
1
shps rsG
n
i i
i ?
?? ??
? 模型参数表示为
? 极点留数向量 R=[r1,r2,…, rn],n维,
? 系统极点向量 P=[p1,p2,…, pn],n维;
? 余式系数向量 H=[h1,h2,…, hl],l十 1维,且 l=
m-n,原函数中分子大于分母阶次的余式系数。 l< 0时,
该向量不存在;简记为 (R,P,H)形式。
? 函数 [r,p,k]=residue(b,a)对两个多项式的比进行部分展开,
以及把传函分解为微分单元的形式。
? 向量 b和 a是按 s的降幂排列的多项式系数。部分分式展
开后,余数返回到向量 r,极点返回到列向量 p,常数项
返回到 k。
? [b,a]=residue(r,p,k)可以将部分分式转化为多项式比
p(s)/q(s)。
举例:传递函数描述 1)
,num=[12,24,0,20];den=[2 4 6 2 2];
2)
借助多项式乘法函数 conv来处理:
,num=4*conv([1,2],conv([1,6,6],[1,6,6]));
,den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],
[1,3,2,5]))));
22642
202412)(
234
23
????
???
ssss
sssG
)523()1(
)66)(2(4)(
233
22
????
????
sssss
ssssG
零极点增益模型:
,num=[1,11,30,0];
,den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den)
》
5087459
3011)(
234
23
????
???
ssss
ssssG
)43)(43)(2)(1(
)5)(6()(
jsjsss
ssssG
??????
???
z=
0
-6
-5
p=
-3.0000+4.0000i
-3.0000-4.0000i
-2.0000
-1.0000
k=
1
结果表达式:
部分分式展开:
,num=[2,0,9,1];
,den=[1,1,4,4]; [r,p,k]=residue(num,den)
》
44
192)(
23
3
???
???
sss
sssG
1
2
2
25.0
2
25.02)(
?
??
???
???
sis
i
is
isG
p=
0.0000+2.0000i
0.0000-2.0000i
-1.0000
k=
2
r=
0.0000-0.2500i
0.0000+0.2500i
-2.0000
结果表达式:
状态方程与输出方程的组合称为状态空间表达式,又称为
动态方程,经典控制理论用传递函数将输入 — 输出关系表
达出来,现代控制理论则用状态方程和输出方程来表达输
入 — 输出关系,揭示了系统内部状态对系统性能的影响。
当控制系统输入、输出为多变量时,可用向量分别表示为
U(t),Y(t),由现代控制理论可知,总可以通过系统内部变
量之间的转换设立状态向量 X(t),系统表达为状态方程形式
DuCxy
BuAxx
??
???
第四节 状态空间描述
u为输入向量 (m维 ); y为输出向量 (r维 )x状态向量 (n维 )。
在 MATLAB中,系统状态空间用( A,B,C,D)矩阵组表示,
系统系数矩阵 A(n× n维 )
系统输入矩阵 B(n× m维 )
系统输出矩阵 C(r× n维 )
直接传输矩阵 D(r× m维 )
状态初始向量 X0(n维 ) 简记为 (A,B,C,D)形式 。
?应当指出, 控制系统状态方程的表达形式不是
唯一的 。 通常可根据不同的仿真分析要求而建
立不同形式的状态方程, 如能控标推型, 能观
标准型, 约当型等 。
举例:
系统为一个两输入两输出系统
,A=[1,6,9,10; 3,12,6,8; 4,7,9,11; 5,12,13,14];
,B=[4,6; 2,4; 2,2; 1,0];
,C=[0,0,2,1; 8,0,2,2];
,D=zeros(2,2);
xy
uxx
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
2208
1200
01
22
42
64
1413125
11974
86123
10961
?
第五节 模型的转换与连接
(一 ) 微分方程与传递函数形式
微分方程的模型参数向量与传递函数的模型参数
向量完全一样, 所以微分方程模型在仿真中总是
用其对应的传递函数模型来描述 。
一、模型的转换
?在一些场合下需要用到某种模型,而在另外一些
场合下可能需要另外的模型,这就需要进行模型
的转换。 以上所述的几种数学模型可以相互转换,
以适应不同的仿真分析要求。
(二 ) 传递函数与零极点增益形式
传递函数转化为零极点增益表示形式的关键, 实际上
取决于如何求取传递函数分子, 分母多项式的根 。 令
则两式分别有 m个和 n个相应的根 zi(i= 1,2,…, m)和
pj(j=1,2,…, n),此即为系统的 m个零点和 n个极点 。
求根过程采用 MATLAB语言, 可使模型转换过程变得十
分方便 。
01110 ????? ?? mmmm bsbsbsb ?
01110 ????? ?? nnnn asasasa ?
MATLAB语言的控制系统工具箱中提供的关于模型转换函数
有好几种, 其中 tf2zp( )和 zp2tf( ),就是用来进行
传递函数形式与零极点增益形式之间的相互转换的 。 如
语句:
[Z,P,K]= tf2zp(num,den)
表示将分子, 分母多项式系数向量为 num,den的传递函数
模型参数经运算返回左端式中的相应变元, 形成零, 极
点表示形式的模型参数向量 Z,P,K。
同理, 语句:
[num,den]= zp2tf(Z,P,K)
表示将零, 极点增益形式表为传递函数有理多项式形式 。
(三 ) 状态方程与传递函数或零极点增益形式
对于单变量系统, 状态方程为
可得
关键在于 的求取 。
?
?
?
??
??
DUCXY
BUAXX?
DBAsICsU sYsG ???? ? 1)()( )()(
1)( ?? AsI
通过使用 MATLAB语言控制系统工具箱中提供的有关状态方
程与传递函数的相互转换函数, ss2tf( )和 tf2ss( ),
可使转换过程大为简化 。 例如
语句,[num,den]= ss2tf(A,B,C,D)
表示把描述为 (A,B,C,D)的系统状态方程模型参数各矩
阵转换为传递函数模型参数各向量 。 左式的 num即为转换
函数返回的分子多项式参数向量; den即为转换函数返回
的分母多项式参数向量 。 于是
语句 (A,B,C,D)= tf2ss(num,den)是上述过程的逆过程,
由已知的 (num,den)经模型转换返回状态方程各参数矩
阵 (A,B,C,D)。
由于同一传递函数的状态方程实现不唯一, 故上述
的转换函数只能实现可控标准型状态方程 。
转换函数 ss2zp( )和 zp2ss( )则是用以完成状态
方程和零极点增益模型相互转换的功能函数 。 语
句格式为:
[Z,P,K]= ss2zp(A,B,C,D)
(A,B,C,D)= zp2ss[Z,P,K]
(四 )部分分式与传递函数或零极点增益形式
传递函数转化为部分分式, 关键在于求取各分式
的分子待定系数, 即下式中的 ri(i= 1,2,… n):
单极点情况下, 该待定系数可用以下极点留数的
求取公式得到
MATLAB语言中有专门解决极点留数求取的功能
函数, 可以非常方便地得到我们所需的结果 。
)()(
2
2
1
1 sh
ps
r
ps
r
ps
rsG
n
n ?
?????? ?
ipsii pssGr ??? ))((
语句:
[R,P,H]= residue(num,den)
[num,den]= residue(R,P,H)
就是用来将传递函数形式与部分分式形式的数学
模型相互转换的函数 。
由上可知, 数学模型可根据仿真分析需要建立为
不同的形式, 并且利用 MATLAB语言能够非常容
易地相互转换, 以适应仿真过程中的一些特殊
要求 。
总结
模型转换的函数包括:
residue:传递函数模型与部分分式模型互换
ss2tf,状态空间模型转换为传递函数模型
ss2zp,状态空间模型转换为零极点增益模型
tf2ss,传递函数模型转换为状态空间模型
tf2zp,传递函数模型转换为零极点增益模型
zp2ss,零极点增益模型转换为状态空间模型
zp2tf,零极点增益模型转换为传递函数模型
用法举例:
1)已知系统状态空间模型为:
%转换为传递函数模型:
,A=[0 1; -1 -2]; B=[0;1];
,C=[1,3]; D=[1];
,[num,den]=ss2tf(A,B,C,D,iu)
%iu用来指定第 n个输入,当只有一个输入时可忽略。
,num=1 5 2; den=1 2 1;
%转换为零极点增益模型:
,[z,p,k]=ss2zp(A,B,C,D,iu)
,z= -4.5616 p= -1 k=1
-0.4384 -1
? ? uxy
uxx
??
?
?
?
?
?
?
??
?
?
?
?
?
?
?
31
1
0
21
10
?
2)已知一个单输入三输出系统的传递函数模型为:
%转换为状态空间模型
,num=[0 0 -2;0 -1 -5;1 2 0];den=[1 6 11 6];
,[A,B,C,D]=tf2ss(num,den)
,A= -6 -11 -6 B= 1 C= 0 0 -2 D= 0
1 0 0 0 0 -1 -5 0
0 1 0 0 1 2 0 0
6116
2
)(
6116
5
)(
6116
2
)(
)(
)(
23
2
31
232123
1
11
???
?
?
???
??
?
???
?
??
sss
ss
sG
sss
s
sG
ssssu
sy
sG
3)系统的零极点增益模型:
%转换为传递函数模型:
,z=[-3];p=[-1,-2,-5];k=6;
,[num,den]=zp2tf(z,p,k)
,num= 0 0 6 18 den= 1 8 17 10
%转换为状态空间模型:
,[a,b,c,d]=zp2ss(z,p,k)
,a= -1.0000 0 0 b=1
2.0000 -7.0000 -3.1623 1
0 3.1623 0 0
c= 0 0 1.8974 d=0
? 注意:零极点的输入可以写出行向量,也可以写出列向量。
)5)(2)(1(
)3(6)(
???
??
sss
ssG
4)已知部分分式:
%转换为传递函数模型:
,r=[-0.25i,0.25i,-2];
,p=[2i,-2i,-1];k=2;
,[num,den]=residue(r,p,k)
,num=
2 0 9 1
,den=
1 1 4 4
注意余式一定要与极点相对应。
1
2
2
25.0
2
25.02)(
?
??
?
?
?
???
sis
i
is
isG
1、并联,parallel
? %功能:并联连接两个系统。
? 说明,parallel函数按并联方式连接两个系统,它既适合于连续时间
系统,也适合于离散时间系统。
[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)
可得到系统 1和系统 2并联的状态空间表示的系统,其输出为 y=y1+y2,
其输入连接在一起,并作为系统输入,如图所示。
二、模型的连接
u2
u1
+
系统1
u
y2
y1
+
y
系统2
由此得到的系统为:
u
b
b
x
x
a
a
x
x
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
2
1
2
1
2
1
2
1
0
0
?
?
? ? ? ?uddxxccyyy 21
2
1
2121 ???
?
??
????
u2
u1
+
系统1
u
y2
y1
+
y
系统2 z2
v1
v2
z1
% inp1和 inp2分别指定两系统中要
连接在一起的输入端编号,从
u1,u2,…,un 依次编号为 1,2,…,n ;
out1和 out2分别指定要作相加的输
出端编号,编号方式与输入类似。
inp1和 inp2既可以是标量也可以是
向量。 out1和 out2用法与之相同。
如 inp1=1,inp2=3表示系统 1的第一
个输入端与系统 2的第三个输入端
相连接。
[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2,inp1,inp2,out1,out2)
可将系统 1和系统 2按图示方式连接。
若 inp1=[1 3],inp2=[2 1]则表示系统 1的第一个输入与系统 2的第二
个输入连接,以及系统 1的第三个输入与系统 2的第一个输入连接。
[num,den]=parallel(num1,den1,num2,den2)
? %功能:将并联连接的传递函数进行相加,得到并联连
接的传递函数表示系统,其结果为
)(2)(1
)(1)(2)(2)(1)()(
)(
)(
21 sd e nsd e n
sd e nsn u msd e nsn u msgsg
sd e n
sn u m ????
2、串联,series
? 说明,parallel函数按并联方式连接两个系统,它既适合
于连续时间系统,也适合于离散时间系统。
[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2)
%将系统 1 的所有输出连到系统 2 的输入上,即 u2=y1。
如图所示。
由此得到的系统为,u2u1 系统1 y2y1 系统2
1
12
1
2
1
212
1
2
1 0 u
db
b
x
x
acb
a
x
x
??
?
??
??
??
?
??
?
??
?
??
??
??
?
??
?
?
?
? ? ? ? 1121
2
1
2122 udddx
xccdy ?
??
?
??
??
[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2,out1,in2)
% out1和 in2分别指定系统 1的部分输出和系统 2的
部分输入进行连接。
[num,den]=series(num1,den1,num2,den2)
%将串联连接的传递函数进行相乘。得到函数:
u2
z1
系统1
y2
y1 系统2
u1
v2
)(2)(1
)(2)(1)()(
)(
)(
21 sd ensd en
snumsnumsgsg
sd en
snum ??
3、反馈,feedback
格式:
[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2)
?%将两个系统按反馈方式连接,如图。一般而言,
系统 1为对象,系统 2为反馈控制器。 Feedback
函数既适合于连续系统,也适合于离散系统。
u2
u1
+
系统1
y2
y1
+
系统2
[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign)
%系统 1的所有输出连接到系统 2的输入,系统 2的
所有输出连接到系统 1的输入,sign用来指示系统
2输出到系统 1输入的连接符号,sign缺省时,默
认为负,即 sign= -1。总系统的输入 /输出数等同
于系统 1。连接产生的系统为:
1
1212
121
2
1
2122121212
211211
2
1
)(
)( u
dedIdb
dedIb
x
x
ecdbaceddbcb
ecbcedba
x
x
??
?
??
?
?
??
??
?
??
?
??
?
??
?
??
???
??
?
??
?
?
?
? ? ? ? 1121
2
1
2112111 )( udedIdx
xecdceddcy ??
??
?
??
????
112 )( ?? ddIe ?
其中
[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,inp1,out1)
? %部分反馈连接,将系统 1的指定输出 out1连接到系
统 2的输入,系统 2的输出连接到系统 1的指定输入
inp1,以此构成 闭环系统。
[num,den]=feedback(num1,den1,num2,den2,sign)
? %可以得到类似的连接,只是子系统和闭环系统均
以传递函数的形式表示。 sign的含义与前述相同。
4、闭环,cloop(单位反馈)
格式:
[ac,bc,cc,dc]=cloop(a,b,c,d,sign)
? %通过将所有的输出反馈到输入,从而产生闭环系统的
状态空间模型。当 sign=1时采用正反馈;当 sign= -1时
采用负反馈; sign缺省时,默认为负反馈。
[ac,bc,cc,dc]=cloop(a,b,c,d,outputs,inputs)
? %表示将指定的输出 outputs反馈到指定的输入 inputs,
以此构成闭环系统的状态空间模型。一般为正反馈,形
成负反馈时应在 inputs中采用负值。
[numc,denc]=cloop(num,den,sign)
? %表示由传递函数表示的开环系统构成闭环系统,sign
意义与上述相同。
? 举例应用:
1) exp03_02.m 系统 1为:
系统 2为:
? 求按串联、并联、正反馈、负反馈连接时的系统状态方
程及系统 1按单位负反馈连接时的状态方程。
? ? 111
111
31
1
0
21
10
uxy
uxx
??
?
?
?
?
?
?
??
?
?
?
?
?
?
??
? ? 22
222
41
1
0
31
10
xy
uxx
?
?
?
?
?
?
?
??
?
?
?
?
?
??
??
2) exp03_03.m 系统 1、系统 2方程如下所示。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
13
12
11
13
12
11
12
11
13
12
11
13
12
11
13
12
11
101
010
110
100
100
001
010
263
122
441
u
u
u
x
x
x
y
y
u
u
u
x
x
x
x
x
x
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
23
22
21
23
22
21
22
21
23
22
21
23
22
21
23
22
21
101
011
101
010
100
010
001
161
123
011
u
u
u
x
x
x
y
y
u
u
u
x
x
x
x
x
x
?
?
?
求 部分并联
后的状态空
间,要求
u11与 u22连
接,u13与
u23连接,
y11与 y21连
接。
? ctrb和 obsv函数可以求出状态空间系统的可控性和
可观性矩阵。
? 格式,co=ctrb(a,b) ob=obsv(a,c)
? 对于 n× n矩阵 a,n× m矩阵 b和 p× n矩阵 c
? ctrb(a,b)可以得到 n× nm的可控性矩阵
? co=[b ab a2b … a n-1b]
? obsv(a,c)可以得到 nm× n的可观性矩阵
? ob=[c ca ca2 … ca n-1]’
? 当 co的秩为 n时,系统可控;当 ob的秩为 n时,系
统可观。 exp03_04.m
三、模型的属性
四,系统模型应用实例
例 exp03_05.m
例 exp03_06.m
例 exp03_07.m
例 exp03_08.m
例 exp03_09.m
本章小结
? 在进行控制系统的仿真之前,建立系统的模型表达式
是关键的一步。
? 对于控制系统,有不同的分类,在本课程中主要讨论
的是线性定常连续系统
? 系统的描述有不同的方法:微分方程;传递函数;零
极点增益模式;部分分式展开;状态空间模型等。
? 系统的模型之间可以相互转换,要求熟练掌握各种模
型之间转换的命令。
? 模型之间可以进行连接,要求掌握常用的模型连接命
令:串联、并联、反馈及闭环。
?控制系统的数学模型在控制系统的研究
中有着相当重要的地位,要对系统进行
仿真处理,首先应当知道系统的数学模
型,然后才可以对系统进行模拟。同样,
如果知道了系统的模型,才可以在此基
础上设计一个合适的控制器,使得系统
响应达到预期的效果,从而符合工程实
际的需要。
工业生产中的实际系统绝大多数是物理系统,系
统中的变量都是一些具体的物理量,如电压、电
流、压力、温度、速度、位移等等,这些物理量
是随时间连续变化的,称之为连续系统;若系统
中物理量是随时间断续变化的,如计算机控制、
数字控制、采样控制等,则称为离散 (或采样 )系
统。采用计算机仿真来分析和设计控制系统,首
要问题是建立合理地描述系统中各物理量变化的
动力学方程,并根据仿真需要,抽象为不同表达
形式的系统数学模型。
?在线性系统理论中,一般常用的数学
模型形式有:
传递函数模型(系统的外部模型)、状
态方程模型(系统的内部模型)、零极
点增益模型和部分分式模型等。这些模
型之间都有着内在的联系,可以相互进
行转换。
? 按系统性能分:线性系统和非线性系统;连续系统和
离散系统;定常系统和时变系统;确定系统和不确定
系统。
1、线性连续系统:用线性微分方程式来描述,如果微分
方程的系数为常数,则为定常系统;如果系数随时间
而变化,则为时变系统。 今后我们所讨论的系统主要
以线性定常连续系统为主。
2、线性定常离散系统:离散系统指系统的某处或多处的
信号为脉冲序列或数码形式。这类系统用差分方程来
描述。
3、非线性系统:系统中有一个元部件的输入输出特性为
非线性的系统。
第一节 系统的分类
? 微分方程是控制系统模型的基础,一般来讲,利用机
械学、电学、力学等物理规律,便可以得到控制系统
的动态方程,这些方程对于线性定常连续系统而言是
一种常系数的线性微分方程。
? 如果已知输入量及变量的初始条件,对微分方程进行
求解,就可以得到系统输出量的表达式,并由此对系
统进行性能分析。
? 通过拉氏变换和反变换,可以得到线性定常系统的解
析解,这种方法通常只适用于常系数的线性微分方程,
解析解是精确的,然而通常寻找解析解是困难的。
MATLAB提供了 ode23,ode45等微分方程的数值解
法函数,不仅适用于线性定常系统,也适用于非线性
及时变系统。
第二节 线性定常连续系统的微分方程模型
设线性定常系统输入, 输出量是单变量, 分别为
u(t),y(t),则两者间的关系总可以描述为线性常系
数高阶微分方程形式
(3-1)
式中,
y(j)为 y(t)的 j阶导数,, j=0,1,…, n;
u(i)为 u(t)的 i阶导数,, i=0,1,…, m;
aj为 y(t)及其各阶导数的系数, j=0,1,…, n;
bi为 u(t)及其各阶导数的系数, i=0,1,…, m;
n为系统输出变量导数的最高阶次; m为系统输入变
量导数的最高阶次, 通常总有 m n。
ububyayayaya mmnnnn ???????? ?? ?? )(01)1(1)(0
j
j
dt
tydy )(?
i
i
dt
tudu )(?
?
对式 (3-1)的数学模型, 可以用以下模型参数形式表征:
输出系数向量 A= [a0,a1,…, an],n十 1维
输入系数向量 B= [b0,b1,…, bm],m十 1维
输出变量导数阶次, n
输入变量导数阶次, m
有了这样一组模型参数, 就可以简便地表达出一个连续
系统的微分方程形式 。
微分方程模型是连续控制系统其它数学模型表达形式的
基础, 以下所要讨论的模型表达形式都是以此为基础发
展而来的 。
对线性定常系统,式中 s的系数均为常数,且 a0不等于零,
这时系统在 MATLAB中可以方便地由分子和分母系数构
成的两个向量唯一地确定出来,这两个向量分别用 num
和 den表示,num=[b0,b1,…,b m]
den=[a0,a1,…,a n]
注意:它们都是按 s的降幂进行排列的。
第三节 传递函数描述
一、连续系统的传递函数模型
将式 (3-1)在零初始条件下,两边同时进行拉氏变换,
则有 连续系统的传递函数如下:
)(
)(
)(
)()(
1
1
10
0
nn
nn
m
m
asasasa
bsb
sU
sYsG
????
????
?
? ?
?
当 a0= 1时, 分子多项式成为
称为系统的首一特征多项式, 是控制系统常用的标准表
达形式, 于是相应的模型参数中, 分母系数向量只用
n维分量即可表示出, 即
A= [a1,a2,…, an],n维
)( 111 nnnn asasas ???? ?? ?
? 零极点模型实际上是传递函数模型的另一种表现形式,
其原理是分别对原系统传递函数的分子、分母进行分解
因式处理,以获得系统的零点和极点的表示形式。
)),..()((
)),..()(()(
21
21
n
m
pspsps
zszszsKsG
???
????
在 MATLAB中零极点增益模型用 [z,p,K]矢量组表示。即:
z=[z1,z2,…,zm]
p=[p1,p2,...,pn]
K=[k]
函数 tf2zp()可以用来求传递函数的零极点和增益。
二、零极点增益模型
K为系统增益,zi为零点,pj为极点
分析控制系统过程中,经常要求对系统函数进行分解,
使其表现为一些基本控制单元的和的形式。
传递函数表示成为部分分式形式
式中, pi(i= 1,2,…, n)为该系统的 n个极点, 与零极
点形式的 n个极点是一致的, rj(j= 1,2,…, n)是对
应各极点的留数; h(s)则表示传递函数分子多项式除
以分母多项式的余式, 若分子多项式阶次与分母多项
式相等, h为标量, 若分子多项式阶次小于分母多项
式阶次, 该项不存在 。
三、部分分式展开
)()(
1
shps rsG
n
i i
i ?
?? ??
? 模型参数表示为
? 极点留数向量 R=[r1,r2,…, rn],n维,
? 系统极点向量 P=[p1,p2,…, pn],n维;
? 余式系数向量 H=[h1,h2,…, hl],l十 1维,且 l=
m-n,原函数中分子大于分母阶次的余式系数。 l< 0时,
该向量不存在;简记为 (R,P,H)形式。
? 函数 [r,p,k]=residue(b,a)对两个多项式的比进行部分展开,
以及把传函分解为微分单元的形式。
? 向量 b和 a是按 s的降幂排列的多项式系数。部分分式展
开后,余数返回到向量 r,极点返回到列向量 p,常数项
返回到 k。
? [b,a]=residue(r,p,k)可以将部分分式转化为多项式比
p(s)/q(s)。
举例:传递函数描述 1)
,num=[12,24,0,20];den=[2 4 6 2 2];
2)
借助多项式乘法函数 conv来处理:
,num=4*conv([1,2],conv([1,6,6],[1,6,6]));
,den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],
[1,3,2,5]))));
22642
202412)(
234
23
????
???
ssss
sssG
)523()1(
)66)(2(4)(
233
22
????
????
sssss
ssssG
零极点增益模型:
,num=[1,11,30,0];
,den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den)
》
5087459
3011)(
234
23
????
???
ssss
ssssG
)43)(43)(2)(1(
)5)(6()(
jsjsss
ssssG
??????
???
z=
0
-6
-5
p=
-3.0000+4.0000i
-3.0000-4.0000i
-2.0000
-1.0000
k=
1
结果表达式:
部分分式展开:
,num=[2,0,9,1];
,den=[1,1,4,4]; [r,p,k]=residue(num,den)
》
44
192)(
23
3
???
???
sss
sssG
1
2
2
25.0
2
25.02)(
?
??
???
???
sis
i
is
isG
p=
0.0000+2.0000i
0.0000-2.0000i
-1.0000
k=
2
r=
0.0000-0.2500i
0.0000+0.2500i
-2.0000
结果表达式:
状态方程与输出方程的组合称为状态空间表达式,又称为
动态方程,经典控制理论用传递函数将输入 — 输出关系表
达出来,现代控制理论则用状态方程和输出方程来表达输
入 — 输出关系,揭示了系统内部状态对系统性能的影响。
当控制系统输入、输出为多变量时,可用向量分别表示为
U(t),Y(t),由现代控制理论可知,总可以通过系统内部变
量之间的转换设立状态向量 X(t),系统表达为状态方程形式
DuCxy
BuAxx
??
???
第四节 状态空间描述
u为输入向量 (m维 ); y为输出向量 (r维 )x状态向量 (n维 )。
在 MATLAB中,系统状态空间用( A,B,C,D)矩阵组表示,
系统系数矩阵 A(n× n维 )
系统输入矩阵 B(n× m维 )
系统输出矩阵 C(r× n维 )
直接传输矩阵 D(r× m维 )
状态初始向量 X0(n维 ) 简记为 (A,B,C,D)形式 。
?应当指出, 控制系统状态方程的表达形式不是
唯一的 。 通常可根据不同的仿真分析要求而建
立不同形式的状态方程, 如能控标推型, 能观
标准型, 约当型等 。
举例:
系统为一个两输入两输出系统
,A=[1,6,9,10; 3,12,6,8; 4,7,9,11; 5,12,13,14];
,B=[4,6; 2,4; 2,2; 1,0];
,C=[0,0,2,1; 8,0,2,2];
,D=zeros(2,2);
xy
uxx
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
2208
1200
01
22
42
64
1413125
11974
86123
10961
?
第五节 模型的转换与连接
(一 ) 微分方程与传递函数形式
微分方程的模型参数向量与传递函数的模型参数
向量完全一样, 所以微分方程模型在仿真中总是
用其对应的传递函数模型来描述 。
一、模型的转换
?在一些场合下需要用到某种模型,而在另外一些
场合下可能需要另外的模型,这就需要进行模型
的转换。 以上所述的几种数学模型可以相互转换,
以适应不同的仿真分析要求。
(二 ) 传递函数与零极点增益形式
传递函数转化为零极点增益表示形式的关键, 实际上
取决于如何求取传递函数分子, 分母多项式的根 。 令
则两式分别有 m个和 n个相应的根 zi(i= 1,2,…, m)和
pj(j=1,2,…, n),此即为系统的 m个零点和 n个极点 。
求根过程采用 MATLAB语言, 可使模型转换过程变得十
分方便 。
01110 ????? ?? mmmm bsbsbsb ?
01110 ????? ?? nnnn asasasa ?
MATLAB语言的控制系统工具箱中提供的关于模型转换函数
有好几种, 其中 tf2zp( )和 zp2tf( ),就是用来进行
传递函数形式与零极点增益形式之间的相互转换的 。 如
语句:
[Z,P,K]= tf2zp(num,den)
表示将分子, 分母多项式系数向量为 num,den的传递函数
模型参数经运算返回左端式中的相应变元, 形成零, 极
点表示形式的模型参数向量 Z,P,K。
同理, 语句:
[num,den]= zp2tf(Z,P,K)
表示将零, 极点增益形式表为传递函数有理多项式形式 。
(三 ) 状态方程与传递函数或零极点增益形式
对于单变量系统, 状态方程为
可得
关键在于 的求取 。
?
?
?
??
??
DUCXY
BUAXX?
DBAsICsU sYsG ???? ? 1)()( )()(
1)( ?? AsI
通过使用 MATLAB语言控制系统工具箱中提供的有关状态方
程与传递函数的相互转换函数, ss2tf( )和 tf2ss( ),
可使转换过程大为简化 。 例如
语句,[num,den]= ss2tf(A,B,C,D)
表示把描述为 (A,B,C,D)的系统状态方程模型参数各矩
阵转换为传递函数模型参数各向量 。 左式的 num即为转换
函数返回的分子多项式参数向量; den即为转换函数返回
的分母多项式参数向量 。 于是
语句 (A,B,C,D)= tf2ss(num,den)是上述过程的逆过程,
由已知的 (num,den)经模型转换返回状态方程各参数矩
阵 (A,B,C,D)。
由于同一传递函数的状态方程实现不唯一, 故上述
的转换函数只能实现可控标准型状态方程 。
转换函数 ss2zp( )和 zp2ss( )则是用以完成状态
方程和零极点增益模型相互转换的功能函数 。 语
句格式为:
[Z,P,K]= ss2zp(A,B,C,D)
(A,B,C,D)= zp2ss[Z,P,K]
(四 )部分分式与传递函数或零极点增益形式
传递函数转化为部分分式, 关键在于求取各分式
的分子待定系数, 即下式中的 ri(i= 1,2,… n):
单极点情况下, 该待定系数可用以下极点留数的
求取公式得到
MATLAB语言中有专门解决极点留数求取的功能
函数, 可以非常方便地得到我们所需的结果 。
)()(
2
2
1
1 sh
ps
r
ps
r
ps
rsG
n
n ?
?????? ?
ipsii pssGr ??? ))((
语句:
[R,P,H]= residue(num,den)
[num,den]= residue(R,P,H)
就是用来将传递函数形式与部分分式形式的数学
模型相互转换的函数 。
由上可知, 数学模型可根据仿真分析需要建立为
不同的形式, 并且利用 MATLAB语言能够非常容
易地相互转换, 以适应仿真过程中的一些特殊
要求 。
总结
模型转换的函数包括:
residue:传递函数模型与部分分式模型互换
ss2tf,状态空间模型转换为传递函数模型
ss2zp,状态空间模型转换为零极点增益模型
tf2ss,传递函数模型转换为状态空间模型
tf2zp,传递函数模型转换为零极点增益模型
zp2ss,零极点增益模型转换为状态空间模型
zp2tf,零极点增益模型转换为传递函数模型
用法举例:
1)已知系统状态空间模型为:
%转换为传递函数模型:
,A=[0 1; -1 -2]; B=[0;1];
,C=[1,3]; D=[1];
,[num,den]=ss2tf(A,B,C,D,iu)
%iu用来指定第 n个输入,当只有一个输入时可忽略。
,num=1 5 2; den=1 2 1;
%转换为零极点增益模型:
,[z,p,k]=ss2zp(A,B,C,D,iu)
,z= -4.5616 p= -1 k=1
-0.4384 -1
? ? uxy
uxx
??
?
?
?
?
?
?
??
?
?
?
?
?
?
?
31
1
0
21
10
?
2)已知一个单输入三输出系统的传递函数模型为:
%转换为状态空间模型
,num=[0 0 -2;0 -1 -5;1 2 0];den=[1 6 11 6];
,[A,B,C,D]=tf2ss(num,den)
,A= -6 -11 -6 B= 1 C= 0 0 -2 D= 0
1 0 0 0 0 -1 -5 0
0 1 0 0 1 2 0 0
6116
2
)(
6116
5
)(
6116
2
)(
)(
)(
23
2
31
232123
1
11
???
?
?
???
??
?
???
?
??
sss
ss
sG
sss
s
sG
ssssu
sy
sG
3)系统的零极点增益模型:
%转换为传递函数模型:
,z=[-3];p=[-1,-2,-5];k=6;
,[num,den]=zp2tf(z,p,k)
,num= 0 0 6 18 den= 1 8 17 10
%转换为状态空间模型:
,[a,b,c,d]=zp2ss(z,p,k)
,a= -1.0000 0 0 b=1
2.0000 -7.0000 -3.1623 1
0 3.1623 0 0
c= 0 0 1.8974 d=0
? 注意:零极点的输入可以写出行向量,也可以写出列向量。
)5)(2)(1(
)3(6)(
???
??
sss
ssG
4)已知部分分式:
%转换为传递函数模型:
,r=[-0.25i,0.25i,-2];
,p=[2i,-2i,-1];k=2;
,[num,den]=residue(r,p,k)
,num=
2 0 9 1
,den=
1 1 4 4
注意余式一定要与极点相对应。
1
2
2
25.0
2
25.02)(
?
??
?
?
?
???
sis
i
is
isG
1、并联,parallel
? %功能:并联连接两个系统。
? 说明,parallel函数按并联方式连接两个系统,它既适合于连续时间
系统,也适合于离散时间系统。
[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)
可得到系统 1和系统 2并联的状态空间表示的系统,其输出为 y=y1+y2,
其输入连接在一起,并作为系统输入,如图所示。
二、模型的连接
u2
u1
+
系统1
u
y2
y1
+
y
系统2
由此得到的系统为:
u
b
b
x
x
a
a
x
x
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
2
1
2
1
2
1
2
1
0
0
?
?
? ? ? ?uddxxccyyy 21
2
1
2121 ???
?
??
????
u2
u1
+
系统1
u
y2
y1
+
y
系统2 z2
v1
v2
z1
% inp1和 inp2分别指定两系统中要
连接在一起的输入端编号,从
u1,u2,…,un 依次编号为 1,2,…,n ;
out1和 out2分别指定要作相加的输
出端编号,编号方式与输入类似。
inp1和 inp2既可以是标量也可以是
向量。 out1和 out2用法与之相同。
如 inp1=1,inp2=3表示系统 1的第一
个输入端与系统 2的第三个输入端
相连接。
[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2,inp1,inp2,out1,out2)
可将系统 1和系统 2按图示方式连接。
若 inp1=[1 3],inp2=[2 1]则表示系统 1的第一个输入与系统 2的第二
个输入连接,以及系统 1的第三个输入与系统 2的第一个输入连接。
[num,den]=parallel(num1,den1,num2,den2)
? %功能:将并联连接的传递函数进行相加,得到并联连
接的传递函数表示系统,其结果为
)(2)(1
)(1)(2)(2)(1)()(
)(
)(
21 sd e nsd e n
sd e nsn u msd e nsn u msgsg
sd e n
sn u m ????
2、串联,series
? 说明,parallel函数按并联方式连接两个系统,它既适合
于连续时间系统,也适合于离散时间系统。
[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2)
%将系统 1 的所有输出连到系统 2 的输入上,即 u2=y1。
如图所示。
由此得到的系统为,u2u1 系统1 y2y1 系统2
1
12
1
2
1
212
1
2
1 0 u
db
b
x
x
acb
a
x
x
??
?
??
??
??
?
??
?
??
?
??
??
??
?
??
?
?
?
? ? ? ? 1121
2
1
2122 udddx
xccdy ?
??
?
??
??
[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2,out1,in2)
% out1和 in2分别指定系统 1的部分输出和系统 2的
部分输入进行连接。
[num,den]=series(num1,den1,num2,den2)
%将串联连接的传递函数进行相乘。得到函数:
u2
z1
系统1
y2
y1 系统2
u1
v2
)(2)(1
)(2)(1)()(
)(
)(
21 sd ensd en
snumsnumsgsg
sd en
snum ??
3、反馈,feedback
格式:
[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2)
?%将两个系统按反馈方式连接,如图。一般而言,
系统 1为对象,系统 2为反馈控制器。 Feedback
函数既适合于连续系统,也适合于离散系统。
u2
u1
+
系统1
y2
y1
+
系统2
[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign)
%系统 1的所有输出连接到系统 2的输入,系统 2的
所有输出连接到系统 1的输入,sign用来指示系统
2输出到系统 1输入的连接符号,sign缺省时,默
认为负,即 sign= -1。总系统的输入 /输出数等同
于系统 1。连接产生的系统为:
1
1212
121
2
1
2122121212
211211
2
1
)(
)( u
dedIdb
dedIb
x
x
ecdbaceddbcb
ecbcedba
x
x
??
?
??
?
?
??
??
?
??
?
??
?
??
?
??
???
??
?
??
?
?
?
? ? ? ? 1121
2
1
2112111 )( udedIdx
xecdceddcy ??
??
?
??
????
112 )( ?? ddIe ?
其中
[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,inp1,out1)
? %部分反馈连接,将系统 1的指定输出 out1连接到系
统 2的输入,系统 2的输出连接到系统 1的指定输入
inp1,以此构成 闭环系统。
[num,den]=feedback(num1,den1,num2,den2,sign)
? %可以得到类似的连接,只是子系统和闭环系统均
以传递函数的形式表示。 sign的含义与前述相同。
4、闭环,cloop(单位反馈)
格式:
[ac,bc,cc,dc]=cloop(a,b,c,d,sign)
? %通过将所有的输出反馈到输入,从而产生闭环系统的
状态空间模型。当 sign=1时采用正反馈;当 sign= -1时
采用负反馈; sign缺省时,默认为负反馈。
[ac,bc,cc,dc]=cloop(a,b,c,d,outputs,inputs)
? %表示将指定的输出 outputs反馈到指定的输入 inputs,
以此构成闭环系统的状态空间模型。一般为正反馈,形
成负反馈时应在 inputs中采用负值。
[numc,denc]=cloop(num,den,sign)
? %表示由传递函数表示的开环系统构成闭环系统,sign
意义与上述相同。
? 举例应用:
1) exp03_02.m 系统 1为:
系统 2为:
? 求按串联、并联、正反馈、负反馈连接时的系统状态方
程及系统 1按单位负反馈连接时的状态方程。
? ? 111
111
31
1
0
21
10
uxy
uxx
??
?
?
?
?
?
?
??
?
?
?
?
?
?
??
? ? 22
222
41
1
0
31
10
xy
uxx
?
?
?
?
?
?
?
??
?
?
?
?
?
??
??
2) exp03_03.m 系统 1、系统 2方程如下所示。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
13
12
11
13
12
11
12
11
13
12
11
13
12
11
13
12
11
101
010
110
100
100
001
010
263
122
441
u
u
u
x
x
x
y
y
u
u
u
x
x
x
x
x
x
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
23
22
21
23
22
21
22
21
23
22
21
23
22
21
23
22
21
101
011
101
010
100
010
001
161
123
011
u
u
u
x
x
x
y
y
u
u
u
x
x
x
x
x
x
?
?
?
求 部分并联
后的状态空
间,要求
u11与 u22连
接,u13与
u23连接,
y11与 y21连
接。
? ctrb和 obsv函数可以求出状态空间系统的可控性和
可观性矩阵。
? 格式,co=ctrb(a,b) ob=obsv(a,c)
? 对于 n× n矩阵 a,n× m矩阵 b和 p× n矩阵 c
? ctrb(a,b)可以得到 n× nm的可控性矩阵
? co=[b ab a2b … a n-1b]
? obsv(a,c)可以得到 nm× n的可观性矩阵
? ob=[c ca ca2 … ca n-1]’
? 当 co的秩为 n时,系统可控;当 ob的秩为 n时,系
统可观。 exp03_04.m
三、模型的属性
四,系统模型应用实例
例 exp03_05.m
例 exp03_06.m
例 exp03_07.m
例 exp03_08.m
例 exp03_09.m
本章小结
? 在进行控制系统的仿真之前,建立系统的模型表达式
是关键的一步。
? 对于控制系统,有不同的分类,在本课程中主要讨论
的是线性定常连续系统
? 系统的描述有不同的方法:微分方程;传递函数;零
极点增益模式;部分分式展开;状态空间模型等。
? 系统的模型之间可以相互转换,要求熟练掌握各种模
型之间转换的命令。
? 模型之间可以进行连接,要求掌握常用的模型连接命
令:串联、并联、反馈及闭环。