第一章系统描述 1.1引言 个复杂系统可能有多个输入和多个输出,并且以某种方式相互关联或耦合。为了分析 这样的系统,必须简化其数学表达式,转而借助于计算机来进行各种大量而乏味的分析与计 算。从这个观点来看,状态空间法对于系统分析是最适宜的 经典控制理论是建立在系统的输入-输出关系或传递函数的基础之上的,而现代控制理 论以n个一阶微方程来描述系统,这些微分方程又组合成一个一阶向量-矩阵微分方程。应 用向量矩阵表示方法,可极大地简化系统的数学表达式。状态变量、输入或输出数目的增 多并不增加方程的复杂性。事实上,分析复杂的多输入-多输出系统,仅比分析用一阶纯量 微分方程描述的系统在方法上稍复杂一些 本文将主要涉及控制系统的基于状态空间的描述、分析与设计部分。本章将首先给出状 态空间方法的描述部分。将以单输入单输出系统为例,给出包括适用于多输入多输出或多变 量系统在内的状态空间表达式的一般形式、线性多变量系统状态空间表达式的标准形式(相 变量、对角线、 Jordan、能控与能观测)、传递函数矩阵,以及利用 MATLAB进行各种模型 之间的相互转换。第二章将讨论状态反馈控制系统的分析方法。第三章将给出设计方法 本章1.1节为控制系统状态空间分析的引言。1.2节介绍传递函数的状态空间表达式, 并给出状态空间表达式的各种标准形。1.3节讨论用 MATLAB进行系统模型的转换(如从 传递函数变换为状态空间模型等) 1.2状态空间表达式 为获得传递函数的状态空间表达式,有多种方法。在《系统分析与控制》中曾介绍过几 种。本节将介绍状态空间的能控标准形、能观测标准形、对角线形与 Jordan标准形,在例 1.17~1.21中将讨论由传递函数获得这些状态空间表达式的方法。 1.2.1状态空间表达式的标准形式 考虑由下式定义的系统 y+a, y y+a,y=b bm-i+b, u (1.1) 式中u为输入,y为输出。该式也可写为 Y(s) bos"+b,s.+b-S+b 下面给出由式(1.1)或式(1.2)定义的系统状态空间表达式之能控标准形、能观测标 准形和对角线形(或 Jordan形)标准形
第一章 系统描述 1.1 引言 一个复杂系统可能有多个输入和多个输出,并且以某种方式相互关联或耦合。为了分析 这样的系统,必须简化其数学表达式,转而借助于计算机来进行各种大量而乏味的分析与计 算。从这个观点来看,状态空间法对于系统分析是最适宜的。 经典控制理论是建立在系统的输入-输出关系或传递函数的基础之上的,而现代控制理 论以 n 个一阶微方程来描述系统,这些微分方程又组合成一个一阶向量-矩阵微分方程。应 用向量-矩阵表示方法,可极大地简化系统的数学表达式。状态变量、输入或输出数目的增 多并不增加方程的复杂性。事实上,分析复杂的多输入-多输出系统,仅比分析用一阶纯量 微分方程描述的系统在方法上稍复杂一些。 本文将主要涉及控制系统的基于状态空间的描述、分析与设计部分。本章将首先给出状 态空间方法的描述部分。将以单输入单输出系统为例,给出包括适用于多输入多输出或多变 量系统在内的状态空间表达式的一般形式、线性多变量系统状态空间表达式的标准形式(相 变量、对角线、Jordan、能控与能观测)、传递函数矩阵,以及利用 MATLAB 进行各种模型 之间的相互转换。第二章将讨论状态反馈控制系统的分析方法。第三章将给出设计方法。 本章 1.1 节为控制系统状态空间分析的引言。1.2 节介绍传递函数的状态空间表达式, 并给出状态空间表达式的各种标准形。1.3 节讨论用 MATLAB 进行系统模型的转换(如从 传递函数变换为状态空间模型等)。 1.2 状态空间表达式 为获得传递函数的状态空间表达式,有多种方法。在《系统分析与控制》中曾介绍过几 种。本节将介绍状态空间的能控标准形、能观测标准形、对角线形与 Jordan 标准形,在例 1.17~1.21 中将讨论由传递函数获得这些状态空间表达式的方法。 1.2.1 状态空间表达式的标准形式 考虑由下式定义的系统: (1.1) 1 ( 1) 1 ( ) 1 ( 1) 1 ( ) y a y a y a y b u b u bn u bnu n n n n o n n + + + + = + + + − + − − − 式中 u 为输入,y 为输出。该式也可写为 (1.2) ( ) ( ) 1 1 1 1 1 0 1 n n n n n n n n s a s a s a b s b s b s b U s Y s + + + + + + + = − − − - 下面给出由式(1.1)或式(1.2)定义的系统状态空间表达式之能控标准形、能观测标 准形和对角线形(或 Jordan 形)标准形
1.2.1.1能控标准形 下列状态空间表达式为能控标准形: 0 0 0 0 0 [b-a, bo: b bou (14) 在讨论控制系统设计的极点配置方法时,这种能控制准形是非常重要的。从式(1.1) 或式(1.2)到式(1.3)和式(14)的推导,可见例1.17。 1212能观测标准形 下列状态空间表达式为能观测标准形: 0 0 b-a b (1 b-a,b 0 00…01 b (1.6) 注意,式(1.5)给出的状态方程中n×n维系统矩阵是式(13)所给出的相应矩阵的转置
1.2.1.1 能控标准形 下列状态空间表达式为能控标准形: (1.3) 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 2 1 1 2 1 1 2 1 u x x x x x a a a a x x x n n n n n n n • • • + • • • − − − − • • • • • • • • • • • • = • • • − − − − [ ] (1.4) 0 2 1 1 1 1 1 b u x x x y b a b b a b b a b n n n o n n o o + • • • = − − − − − 在讨论控制系统设计的极点配置方法时,这种能控制准形是非常重要的。从式(1.1) 或式(1.2)到式(1.3)和式(1.4)的推导,可见例 1.17。 1.2.1.2 能观测标准形 下列状态空间表达式为能观测标准形: [0 0 0 1] (1.6) (1.5) 0 0 1 1 0 0 0 0 0 1 2 1 1 1 1 1 2 1 1 2 1 1 b u x x x x y u b a b b a b b a b x x x a a a x x x o n n o n n o n n o n n n n + • • • = − − − + • • • − • • • • • • • • • • • • − − = • • • − − − − 注意,式(1.5)给出的状态方程中 n×n 维系统矩阵是式(1.3)所给出的相应矩阵的转置
1213对角线标准形 参考由式(1.2)定义的传递函数。这里,考虑分母多项式中只含相异根的情况。对此, 式(1.2)可写成: Y(s) bS"+b,"+.+b-S+b U(s)(s+p1)(s+P2)…(S+Pn) (1.7) b pr S+ p2 t p, 该系统的状态空间表达式的对角线标准形由下式确定 PI p2 (1.8) Pn儿x ICI C x 1.2.1.4 Jordan标准形 下面考虑式(1.2)的分母多项式中含有重根的情况。对此,必须将前面的对角线标准形 修改为 Jordan标准形。例如,假设除了前3个p1即P1=P2=P3相等外,其余极点P 相异。于是,Y(s)/U(s)因式分解后为 ) bos"+b, b-S+b U(s)(s+p1)3(s+p2s+p3)…(s+pn) 该式的部分分式展开式为 Y(s) b ()°(s+p)(s+P1)2(s+p,) P4 该系统状态空间表达式的 Jordan标准形由下式确定:
p1 =p2 = p3 i p 1.2.1.3 对角线标准形 参考由式(1.2)定义的传递函数。这里,考虑分母多项式中只含相异根的情况。对此, 式(1.2)可写成: (1.7) ( ) ( )( ) ( ) ( ) 2 2 1 1 1 2 1 1 1 n n o n n n n n o s p c s p c s p c b s p s p s p b s b s b s b U s Y s + + + + + + = + + + + + + + + = − − 该系统的状态空间表达式的对角线标准形由下式确定: [ ] (1.9) (1.8) 1 1 1 0 0 2 1 1 2 2 1 2 1 2 1 b u x x x y c c c u x x x p p p x x x o n n n n n + • • • = • • • + • • • − • • • − − = • • • 1.2.1.4 Jordan 标准形 下面考虑式(1.2)的分母多项式中含有重根的情况。对此,必须将前面的对角线标准形 修改为 Jordan 标准形。例如,假设除了前 3 个 即 相 等 外 , 其 余 极 点 相异。于是,Y(s)/U(s)因式分解后为: ( ) ( ) ( )( ) ( ) ( ) 4 5 3 1 1 1 0 1 n n n n n s p s p s p s p b s b s b s b U s Y s + + + + + + + + = − − 该式的部分分式展开式为 n n s p c s p c s p c s p c s p c b U s Y s + + + + + + + + + + = + 4 4 2 1 2 3 1 1 0 ( ) ( ) ( ) ( ) ( ) 1 3 该系统状态空间表达式的 Jordan 标准形由下式确定: i p
PI 0 pI 0 -PI 0 (1.10) y=lec2…cnl b [例1.1考虑由下式确定的系统: S U(s) 试求其状态空间表达式之能控标准形、能观测标准形和对角线标准形。 解:能控标准形为 y(1)=[3 能观测标准形为: u() x x( (t)=[01 x2(D) 对角线标准形为: 101x1() x2()[0-21x2(O) x2(D)
[ ] (1.11) (1.10) 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 2 1 1 2 4 3 2 1 4 1 1 1 4 3 2 1 b u x x x y c c c x x x x x p p p p p x x x x x o n n n n n + • • • = • • • + • • • − • • • • • • • • • − − − − = • • • [例 1.1] 考虑由下式确定的系统: 3 2 3 ( ) ( ) 2 + + + = s s s U s Y s 试求其状态空间表达式之能控标准形、能观测标准形和对角线标准形。 解: 能控标准形为: = + − − = ( ) ( ) ( ) [3 1] ( ) 1 0 ( ) ( ) 2 3 0 1 ( ) ( ) 2 1 2 1 2 1 x t x t y t u t x t x t x t x t 能观测标准形为: = + − − = ( ) ( ) ( ) [0 1] ( ) 1 3 ( ) ( ) 1 3 0 2 ( ) ( ) 2 1 2 1 2 1 x t x t y t u t x t x t x t x t 对角线标准形为: = − + − − = ( ) ( ) ( ) [2 1] ( ) 1 1 ( ) ( ) 0 2 1 0 ( ) ( ) 2 1 2 1 2 1 x t x t y t u t x t x t x t x t
1.22n×n维系统矩阵A的特征值 n×n维系统矩阵A的特征值是下列特征方程的根: a-A=0 这些特征值也为称特征根 例如,考虑下列矩阵A: 0 0 6-11 特征方程为 11-AEJ0 11 3+622+112+6 (2+1)(2+2)(+3)=0 这里A的特征值就是特征方程的根,即一1、-2和-3 1.2.3n×n维系统矩阵的对角线化 如果一个具有相异特征值的n×n维矩阵A由下式给出: 0 0 A (1.12) 作如下非奇异线性变换x=Pz,其中 A12 P
1.2.2 n×n 维系统矩阵 A 的特征值 n×n 维系统矩阵 A 的特征值是下列特征方程的根: | I − A |= 0 这些特征值也为称特征根。 例如,考虑下列矩阵 A: − − − = 6 11 6 0 0 1 0 1 0 A 特征方程为: ( 1)( 2)( 3) 0 6 11 6 6 11 6 0 1 1 0 | 3 2 = + + + = = + + + + − − − = I A 这里 A 的特征值就是特征方程的根,即-1、-2 和-3。 1.2.3 n×n 维系统矩阵的对角线化 如果一个具有相异特征值的 n×n 维矩阵 A 由下式给出: (1.12) 0 0 0 1 0 0 1 0 0 1 0 0 1 2 1 − − − − • • • • • • • • • • • • = a a − a − a A n n n 作如下非奇异线性变换 x = P z,其中 • • • • • • • • • = − −1 −1 2 1 1 1 2 1 1 1 n n n n n P
这里λ1,λ2,…,λ是系统矩阵A的n个相异特征值。将PAP变换为对角线矩阵,即 P-lAP= 0 如果由方程(1.2)定义的矩阵A含有重特征值,则不能将上述矩阵对角线化。例如,3 3维矩阵 0 A=0 0 有特征值λ1,A2,λ3,作非奇异线性变换x=Sz,其中 0 12 得到 S"AS=0 A 0 03 该式是一个 Jordan标准形 例12考虑下列系统的状态空间表达式: 0 6-11-6x36 1.14 式(1.3)和(14)可写为如下标准形式: ⅸ=Ax+Bt 1.15) y=Cx
这里λ1,λ2,···,λn 是系统矩阵 A 的 n 个相异特征值。将 P -1AP 变换为对角线矩阵,即 P -1AP= • • • n 0 0 2 1 如果由方程(1.2)定义的矩阵 A 含有重特征值,则不能将上述矩阵对角线化。例如,3 ×3 维矩阵 − − − = 3 2 1 0 0 1 0 1 0 a a a A 有特征值λ1,λ2,λ3,作非奇异线性变换 x = S z,其中 = 2 1 3 2 1 1 3 2 1 1 0 1 S 得到 = − 3 1 1 1 0 0 0 0 1 0 S AS 该式是一个 Jordan 标准形。 [例 1.2] 考虑下列系统的状态空间表达式: [1 0 0] (1.14) (1.13) 6 0 0 6 11 6 0 0 1 0 1 0 3 2 1 3 2 1 3 2 1 = + − − − = x x x y u x x x x x x 式(1.3)和(1.4)可写为如下标准形式: (1.16) (1.15) y Cx x Ax Bu = = +
式中 B=0 C=[00 6 矩阵A的特征值为: 因此,这3个特征值相异。如果作变换 9 定义一组新的状态变量Z1、Z2和Z3,式中 A12A3 (1.18) 那么,通过将式(17)代入式(1.5),可得 PE= APz+ Bu 将上式两端左乘P1,得 C=PAPe+p Bu (1.9) 者 250.5010 0 150.51-6 11 250.50 10 150.56 化简得 0 0 (1.20) 式(1.20)也是一个状态方程,它描述了由式(1.3)定义的同一个系统 输出方程(1.6)可修改为 CPz 或
式中 , [1 0 0] 6 0 0 6 11 6 0 0 1 0 1 0 = = − − − A = B C 矩阵 A 的特征值为: λ1 = -1,λ2 = -2,λ3 = -3 因此,这 3 个特征值相异。如果作变换 = − − − 3 2 1 3 2 1 1 4 9 1 2 3 1 1 1 z z z x x x 或 x = P z (1.7) 定义一组新的状态变量 Z1、Z2 和 Z3,式中 P = (1.18) 1 1 1 2 3 2 2 2 1 1 2 3 那么,通过将式(1.7)代入式(1.5),可得 Pz = APz + Bu 将上式两端左乘 P -1,得 (1.9) 1 1 z P APz P Bu − − = + 或者 − − − − − − = − − − 3 2 1 3 2 1 1 4 9 1 2 3 1 1 1 6 11 6 0 0 1 0 1 0 1 1.5 0.5 3 4 1 3 2.5 0.5 z z z z z z + u − − − 6 0 0 1 1.5 0.5 3 4 1 3 2.5 0.5 化简得, (1.20) 3 6 3 0 0 3 0 2 0 1 0 0 3 2 1 3 2 1 u z z z z z z + − − − − = 式(1.20)也是一个状态方程,它描述了由式(1.3)定义的同一个系统。 输出方程(1.6)可修改为: y = CP z 或
2 21 (1.21) 注意:由式(1.8)定义的变换矩阵P将z的系统矩阵转变为对角线矩阵。由式(1.20)显然 可看出,3个纯量状态方程是解耦的。注意式(1.19)中的矩阵PP的对角线元素和矩阵A 的3个特征值相同。此处强调A和P4AP的特征值相同,这一点非常重要。作为一般情况, 我们将证明这一点 1.24特征值的不变性 为证明线性变换下特性值的不变性,需证明λI-A和AI-PAP的特征多项式相 由于乘积的行列式等于各行列式的乘积,故 12-P- AP=AP-- AP =P(a-API =P-IN-AIIPI =P-IPIIA-A 注意到行列式P和P的乘积等于乘积PP的行列式,从而 AI-PlAP|=|PPl|λI-4 这就证明了在线性变换下矩阵A的特征值是不变的 1.2.5状态变量组的非唯一性 前面已阐述过,给定系统的状态变量组不是唯一的。设x1,x2,…xn是一组状态变量, 可取任意一组函数 x1=X1(x1,x2,…,xn) x,=X, (x,x
[1 1 1] (1.21) 1 4 9 1 2 3 1 1 1 [1 0 0] 3 2 1 3 2 1 = = − − − z z z z z z y 注意:由式(1.8)定义的变换矩阵 P 将 z 的系统矩阵转变为对角线矩阵。由式(1.20)显然 可看出,3 个纯量状态方程是解耦的。注意式(1.19)中的矩阵 P -1AP 的对角线元素和矩阵 A 的 3 个特征值相同。此处强调 A 和 P -1AP 的特征值相同,这一点非常重要。作为一般情况, 我们将证明这一点。 1.2.4 特征值的不变性 为证明线性变换下特性值的不变性,需证明|λI - A|和|λI – P -1 AP|的特征多项式相 同。 由于乘积的行列式等于各行列式的乘积,故 | | | | | | | | | | | | | ( ) | | | | | 1 1 1 1 1 1 P P I A P I A P P I A P I P AP P P P AP = − = − = − − = − − − − − − - 注意到行列式|P -1 |和|P|的乘积等于乘积|P -1P|的行列式,从而 |λI-P -1AP| = |P -1P| |λI-A| = |λI-A| 这就证明了在线性变换下矩阵 A 的特征值是不变的。 1.2.5 状态变量组的非唯一性 前面已阐述过,给定系统的状态变量组不是唯一的。设 n x , x , , x 1 2 是一组状态变量, 可取任意一组函数, ( , , , ) ˆ ( , , , ) ˆ ( , , , ) ˆ 1 2 2 2 1 2 1 1 1 2 n n n n n x X x x x x X x x x x X x x x = • • • = =
作为系统的另一组状态变量,这里假设对每一组变量x1,x2,…,xn都对应于唯一的一组 x1x2,…,xn的值。反之亦然。因此,如果x是一个状态向量,则 X=Px 也是一个状态向量,这里假设变换矩阵P是非奇异的。显然,这两个不同的状态向量都能 表达同一系统之动态行为的同一信息。 1.3利用 MATLAB进行系统模型之间的相互转换 本节将讨论系统模型由传递函数变换为状态方程,反之亦然。现讨论如何由传递函数变 换为状态方程。 将闭环传递函数写为 Y(s)含s的分子多项式nm U(s)含s的分母多项式"aen 当有了这一传递函数表达式后,使用如下 MATLAB命令: [A, B, C, D]=tf2ss(num, den) 就可给出状态空间表达式。应着重强调,任何系统的状态空间表达式都不是唯一的。对于同 一系统,可有许多个(无穷多个)状态空间表达式。上述 MATLAB命令仅给出了一种可能 的状态空间表达式 1.3.1传递函数系统的状态空间表达式 考虑以下传递函数 U(s)(s+10(s2+4s+16) s+14s2+56s+160 对该系统,有多个(无穷多个)可能的状态空间表达式,其中一种可能的状态空间表达 式为: 0 0 +1 3|-160-56-14x3 x 另外一种可能的状态空间表达式(在无穷个中)为:
作为系统的另一组状态变量,这里假设对每一组变量 n x x x ˆ , , ˆ , ˆ 1 2 都对应于唯一的一组 n x , x , , x 1 2 的值。反之亦然。因此,如果 x 是一个状态向量,则 x = P x ˆ 也是一个状态向量,这里假设变换矩阵 P 是非奇异的。显然,这两个不同的状态向量都能 表达同一系统之动态行为的同一信息。 1.3 利用 MATLAB 进行系统模型之间的相互转换 本节将讨论系统模型由传递函数变换为状态方程,反之亦然。现讨论如何由传递函数变 换为状态方程。 将闭环传递函数写为 den num s s U s Y s = = 含 的分母多项式 含 的分子多项式 ( ) ( ) 当有了这一传递函数表达式后,使用如下 MATLAB 命令: [A, B, C, D] = tf2ss (num, den) 就可给出状态空间表达式。应着重强调,任何系统的状态空间表达式都不是唯一的。对于同 一系统,可有许多个(无穷多个)状态空间表达式。上述 MATLAB 命令仅给出了一种可能 的状态空间表达式。 1.3.1 传递函数系统的状态空间表达式 考虑以下传递函数 (1.22) 14 56 160 ( ) ( 10)( 4 16) ( ) 3 2 2 + + + = + + + = s s s s s s s s U s Y s 对该系统,有多个(无穷多个)可能的状态空间表达式,其中一种可能的状态空间表达 式为: u x x x y u x x x x x x [1 0 0] [0] 14 1 0 160 56 14 0 0 1 0 1 0 3 2 1 3 2 1 3 2 1 + = − + − − − = 另外一种可能的状态空间表达式(在无穷个中)为:
0 (1.23) [010x2|+[0J (1.24) MA∏LAB将式(1.22)给出的传递函数变换为由式(1.23)和(1.24)给出的状态空间 表达式。对于此处考虑的系统, MATLAB Program1-将产生矩阵A、B、C和D。 MATLAB Program 1-1 Den=[11456160 [A, B, C, D=tf2ss(num, den 14 6-160 1.3.2由状态空间表达式到传递函数的变换 为了从状态空间方程得到传递函数,采用以下命令: [num, den)=ss2tf [A, B, C, D, iu 对多输入的系统,必须具体化讪。例如,如果系统有3个输入(ul,u2,u3),则u必须为1 2或3中的一个,其中1表示u,2表示u2,3表示u3。 如果系统只有一个输入,则可采用 Inum, den)=ss2tf(A, B, C, D) Inum, den]=sstf(A, B, C, D, 1) (见例1.3和 MTLAB Program1-2)
[0 1 0] [0] (1.24) (1.23) 0 0 1 0 1 0 1 0 0 14 56 160 3 2 1 3 2 1 3 2 1 u x x x y u x x x x x x + = + − − − = MATLAB 将式(1.22)给出的传递函数变换为由式(1.23)和(1.24)给出的状态空间 表达式。对于此处考虑的系统,MATLAB Program 1-1 将产生矩阵 A、B、C 和 D。 MATLAB Program 1-1 Num=[0 0 1 0]; Den=[1 14 56 160]; [A,B,C,D] = tf2ss(num,den) A= -14 -56 -160 1 0 0 0 1 0 B= 1 0 0 C= 0 1 0 D= 0 1.3.2 由状态空间表达式到传递函数的变换 为了从状态空间方程得到传递函数,采用以下命令: [num,den] = ss2tf [A,B,C,D,iu] 对多输入的系统,必须具体化 iu。例如,如果系统有 3 个输入(u1,u2,u3),则 iu 必须为 1、 2 或 3 中的一个,其中 1 表示 u1,2 表示 u2,3 表示 u3。 如果系统只有一个输入,则可采用 [num,den] = ss2tf (A,B,C,D) 或 [num,den] = sstf (A,B,C,D,1) (见例 1.3 和 MTLAB Program1-2)