Chapter8:控制系统状态空间分析
基于胡寿松主编的《自动控制原理》(第七版)附录的MATLAB控制系统简单教程,可直接阅读教材附录,内容完全一样,没有大改动。
8.控制系统状态空间分析
-
控制系统状态空间模型描述
设有 n n n个状态、 m m m个输入和 p p p个输出的线性定常系统的状态空间模型为:
x ˙ ( t ) = A x ( t ) + B u ( t ) y ( t ) = C x ( t ) + D u ( t ) \begin{aligned} &\dot{x}(t)=Ax(t)+Bu(t)\\ &y(t)=Cx(t)+Du(t) \end{aligned} x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)利用ss命令建立状态空间模型; 命令格式:sys=ss(A,B,C,D,Ts) 参数说明: A、B、C、D:状态空间模型的系数矩阵; Ts:采样时间,缺省时描述连续系统;
-
系统模型转换
传递函数模型描述系统的外部特性,状态空间模型描述系统的内部特性;
相似变换后的系统状态空间模型矩阵与原模型矩阵的关系:
A ‾ = T A T − 1 , B ‾ = T B , C ‾ = C T − 1 \overline{A}=TAT^{-1},\overline{B}=TB,\overline{C}=CT^{-1} A=TAT−1,B=TB,C=CT−1
式中:- T T T:非奇异变换矩阵;
- A , B , C A,B,C A,B,C:原模型系数矩阵;
- A ‾ , B ‾ , C ‾ \overline{A},\overline{B},\overline{C} A,B,C:变换后模型的系数矩阵;
命令格式: [A,B,C,D]=tf2ss(num,den) # 传递函数模型到状态空间模型的转换; [num,den]=ss2tf(A,B,C,D) # 状态空间模型到传递函数模型的转换; sysT=ss2ss(sys,T) # 状态空间模型间的相似变换; 参数说明: num:分子多项式降幂排列的系数向量; den:分母多项式降幂排列的系数向量; T:相似变换矩阵;
-
系统可控、可观测性分析
-
可控、可观测性判断。
线性定常连续系统:
x ˙ ( t ) = A x ( t ) + B u ( t ) , y ( t ) = C x ( t ) \dot{x}(t)=Ax(t)+Bu(t),y(t)=Cx(t) x˙(t)=Ax(t)+Bu(t),y(t)=Cx(t)
若系统完全可控,则:
r a n k [ B A B ⋯ A n − 1 B ] = n rank\begin{bmatrix}B & AB & \cdots & A^{n-1}B\end{bmatrix}=n rank[BAB⋯An−1B]=n
式中: n n n为矩阵 A A A的维数, S = [ B A B ⋯ A n − 1 B ] S=\begin{bmatrix}B & AB & \cdots & A^{n-1}B\end{bmatrix} S=[BAB⋯An−1B]为系统的可控性矩阵;若系统完全可观测,则:
r a n k [ C C A ⋮ C A n − 1 ] = n rank\begin{bmatrix}C\\CA\\\vdots\\CA^{n-1}\end{bmatrix}=n rank⎣ ⎡CCA⋮CAn−1⎦ ⎤=n
式中: n n n为矩阵 A A A的维数, V = [ C C A ⋮ C A n − 1 ] V=\begin{bmatrix}C\\CA\\\vdots\\CA^{n-1}\end{bmatrix} V=⎣ ⎡CCA⋮CAn−1⎦ ⎤为系统的可观测性矩阵;命令格式: S=ctrb(A,B) # ctrb命令求取系统的可控性矩阵; V=obsv(A,C) # obsv命令求取系统的可观测矩阵; 参数说明: S:可控性矩阵; V:可观测性矩阵;
-
可控性、可观测性分解
MATLAB缺省的可控性分解结构为:
[ x ˙ c ‾ x ˙ c ] = [ A ‾ 11 0 A ‾ 21 A ‾ 22 ] [ x c ‾ x c ] + [ 0 B ‾ 2 ] u , y = [ C ‾ 1 C ‾ 2 ] [ x c ‾ x c ] \begin{bmatrix} \dot{x}_{\overline{c}}\\ \dot{x}_{c} \end{bmatrix}= \begin{bmatrix} \overline{A}_{11} & 0\\ \overline{A}_{21} & \overline{A}_{22} \end{bmatrix} \begin{bmatrix} x_{\overline{c}}\\ x_c \end{bmatrix}+ \begin{bmatrix} 0\\ \overline{B}_2 \end{bmatrix}u,y= \begin{bmatrix} \overline{C}_1 & \overline{C}_2 \end{bmatrix} \begin{bmatrix} x_{\overline{c}}\\ x_c \end{bmatrix} [x˙cx˙c]=[A11A210A22][xcxc]+[0B2]u,y=[C1C2][xcxc]
式中,可控子系统动态方程为:
x ˙ c = A ‾ 21 x c ‾ + A ‾ 22 x c + B ‾ 2 u , y 2 = C ‾ 2 x c \dot{x}_c=\overline{A}_{21}x_{\overline{c}}+\overline{A}_{22}x_c+\overline{B}_2u,y_2=\overline{C}_2x_c x˙c=A21xc+A22xc+B2u,y2=C2xc
不可控子系统动态方程为:
x ˙ c ‾ = A ‾ 11 x c ‾ , y 1 = C ‾ 1 x c ‾ \dot{x}_{\overline{c}}=\overline{A}_{11}x_{\overline{c}},y_1=\overline{C}_1x_{\overline{c}} x˙c=A11xc,y1=C1xc
MATLAB缺省的可观测性分解结构为:
[ x ˙ o ‾ x ˙ o ] = [ A ‾ 11 A ‾ 12 0 A ‾ 22 ] [ x o ‾ x o ] + [ B ‾ 1 B ‾ 2 ] u , y = [ C ‾ 1 0 ] [ x o ‾ x o ] \begin{bmatrix} \dot{x}_{\overline{o}}\\ \dot{x}_{o} \end{bmatrix}= \begin{bmatrix} \overline{A}_{11} & \overline{A}_{12}\\ 0 & \overline{A}_{22} \end{bmatrix} \begin{bmatrix} x_{\overline{o}}\\ x_o \end{bmatrix}+ \begin{bmatrix} \overline{B}_1\\ \overline{B}_2 \end{bmatrix}u,y= \begin{bmatrix} \overline{C}_1 & 0 \end{bmatrix} \begin{bmatrix} x_{\overline{o}}\\ x_o \end{bmatrix} [x˙ox˙o]=[A110A12A22][xoxo]+[B1B2]u,y=[C10][xoxo]
式中,可观测子系统动态方程为:
x ˙ o = A ‾ 22 x o + B ‾ 2 u , y 2 = 0 \dot{x}_o=\overline{A}_{22}x_o+\overline{B}_2u,y_2=0 x˙o=A22xo+B2u,y2=0
不可观测子系统动态方程为:
x ˙ o ‾ = A ‾ 11 x o ‾ + A ‾ 12 x o + B ‾ 1 u , y 1 = C ‾ 1 x o ‾ = y \dot{x}_{\overline{o}}=\overline{A}_{11}x_{\overline{o}}+\overline{A}_{12}x_o+\overline{B}_1u,y_1=\overline{C}_1x_{\overline{o}}=y x˙o=A11xo+A12xo+B1u,y1=C1xo=y命令格式: [Ac,Bc,Cc,T]=ctrbf(A,B,C) # 可控性分解; [Ao,Bo,Co,T]=obsvf(A,B,C) # 可观测性分解; 参数说明: Ac、Bc、Cc:可控性分解后的系数矩阵; Ao、Bo、Co:可观测性分解后的系数矩阵; T:变换矩阵;
-
-
最小实现
对于不可控又不可观测的线性定常系统,其传递函数矩阵只能描述系统中可控且可观测的部分,是对系统结构的一种不完全描述;从状态空间角度,系统规范分解后的可控、可观测子系统为原系统的最小实现;从传递函数角度,将系统传递函数零、极点对消后,所得的模型为最小实现形式;
命令格式:sysr=minreal(sys)
-
李雅普诺夫稳定性分析
-
李雅普诺夫第一法(间接法)
李雅普诺夫第一法是利用状态方程解的特性判断系统稳定性的方法;系统的唯一平衡状态 x e = 0 x_e=0 xe=0渐近稳定的充分必要条件是: A A A的所有特征根均具有负实部;
命令格式:e=eig(A) # 求取矩阵的特征根;
-
李雅普诺夫第二法(直接法)
李雅普诺夫第二法是通过构造李雅普诺夫函数判断系统稳定性的方法;线性定常系统 x ˙ = A x \dot{x}=Ax x˙=Ax的原点平衡状态 x e = 0 x_e=0 xe=0渐近稳定的充分必要条件是:对于任意给定的一个正定对称矩阵 Q Q Q,有唯一的正定对称矩阵 P P P使
A T P + P A = − Q A^TP+PA=-Q ATP+PA=−Q
成立.命令格式:P=lyap(A',Q) # 求解对称矩阵P 参数说明: Q:选择的正定或半正定矩阵; A':矩阵A的转置; P:李雅普诺夫方程的解;
-
-
系统极点配置
命令格式: K=acker(A,b,P) # 用于SISO系统; K=place(A,B,P) # 用于MIMO系统; 参数说明: K:状态反馈矩阵; P:希望配置的极点位置;
-
实例分析
ExampleB-9: 设系统状态方程为:
x ˙ ( t ) = [ − 2 2 − 1 0 − 2 0 1 − 4 0 ] x ( t ) + [ 0 1 1 ] u ( t ) , y ( t ) = [ 1 0 1 ] x ( t ) , x ( 0 ) = [ 1 − 2 3 ] \dot{x}(t)= \begin{bmatrix} -2 & 2 & -1\\ 0 & -2 & 0\\ 1 & -4 & 0 \end{bmatrix}x(t)+ \begin{bmatrix} 0\\1\\1 \end{bmatrix}u(t),y(t)=\begin{bmatrix}1 & 0 & 1\end{bmatrix}x(t),x(0)= \begin{bmatrix} 1\\ -2\\ 3 \end{bmatrix} x˙(t)=⎣ ⎡−2012−2−4−100⎦ ⎤x(t)+⎣ ⎡011⎦ ⎤u(t),y(t)=[101]x(t),x(0)=⎣ ⎡1−23⎦ ⎤
要求:- 判断系统的稳定性,绘制系统的零输入状态响应曲线;
- 求系统传递函数,绘制系统在初始状态作用下的输出响应曲线;
- 判断系统的可控性,如有可能,将系统状态方程化为可控标准型;
- 判断系统的可观测性,对系统进行可观测性分解, 求出系统的最小实现;
解:
-
利用李雅普诺夫第二法判断系统的稳定性;选定 Q Q Q为单位阵,求解李雅普诺夫方程,得对称矩阵 P P P;若 P P P正定,即 P P P的全部特征根均为负数,系统稳定;
-
系统的传递函数 G ( s ) = c ( s I − A ) − 1 b G(s)=c(sI-A)^{-1}b G(s)=c(sI−A)−1b;
-
系统的可控标准型实现按如下步骤求解:
-
计算系统的可控性矩阵 S S S,利用秩判据判断系统的可控性;
-
若系统可控,计算可控性矩阵的逆阵 S − 1 S^{-1} S−1;
-
取出 S − 1 S^{-1} S−1的最后一行构成 p 1 p_1 p1行向量;
-
构造 T T T阵:
T = [ p 1 p 1 A ⋮ p 1 A n − 1 ] T= \begin{bmatrix} p_1\\ p_1A\\ \vdots\\ p_1A^{n-1} \end{bmatrix} T=⎣ ⎡p1p1A⋮p1An−1⎦ ⎤ -
利用相似变换矩阵 T T T将非标准型可控系统化为可控标准型;
-
-
计算系统的可观测性矩阵 V V V,利用秩判据判断系统的可观测性,并对系统进行可观测性分解,其中可控、可观测子系统即为系统的最小实现;
% exampleB_9.m % A、b、c、d矩阵(向量) A=[-2 2 -1;0 -2 0;1 -4 0]; b=[0 1 1]'; c=[1 0 1]; d=0; N=size(A);n=N(1); Q=eye(3); % 选定Q为单位阵; P=lyap(A',Q) % 求对称阵P; e=eig(P) % 利用特征值判断对称阵P是否正定; sys=ss(A,b,c,d); % 建立系统的状态空间模型; [y,t,x]=initial(sys,[1 -2 3]'); % 计算系统的零输入响应; figure(1) plot(t,x);grid % 绘制系统零输入响应状态曲线; xlabel('t(s)');ylabel('x(t)');title('initial response'); figure(2) plot(t,y);grid % 绘制系统零输入响应输出曲线; xlabel('t(s)');ylabel('y(t)');title('initial response'); [num,den]=ss2tf(A,b,c,d) % 将系统状态空间模型转换成传递函数模型; S=ctrb(A,b); % 计算可控性矩阵S; f=rank(S) % 求可控性矩阵的秩; if f==n disp('system is controlled') else disp('system is not controlled') end V=obsv(A,c); % 计算可观测性矩阵V; m=rank(V) % 求可观测性矩阵的秩; if m==n disp('system is observable') else disp('system is not observable') end S1=inv(S); % 求矩阵S的逆; T=[S1(3,:);S1(3,:)*A;S1(3,:)*A^2]; % 求变换矩阵T; sys1=ss2ss(sys,T) % 将系统化为可控标准型; [A1,b1,c1,T1]=obsvf(A,b,c) % 系统可观测性分解; sysr=minreal(sys); % 系统的最小实现;
【结果分析】
-
对称矩阵 P P P如下:
P = 0.5000 -0.7778 0.5000 -0.7778 3.6944 -2.1111 0.5000 -2.1111 1.5000 e = 0.2128 0.3218 5.1598
对称矩阵 P P P为正定矩阵,可知系统稳定;
-
系统的传递函数:
num = 0 1.0000 1.0000 -0.0000 den = 1 4 5 2
Φ ( s ) = s 2 + s s 3 + 4 s 2 + 5 s + 2 \Phi(s)=\frac{s^2+s}{s^3+4s^2+5s+2} Φ(s)=s3+4s2+5s+2s2+s
系统零输入响应状态曲线和输出曲线如下图所示:
-
可控性矩阵满秩,系统完全可控,结果如下:
f = 3 system is controlled
利用变换矩阵 T T T得系统的可控标准型为:
sys1 = A = x1 x2 x3 x1 0 1 0 x2 0 0 1 x3 -2 -5 -4 B = u1 x1 0 x2 0 x3 1 C = x1 x2 x3 y1 0 1 1 D = u1 y1 0
x ˙ ( t ) = [ 0 1 0 0 0 1 − 2 − 5 − 4 ] x ( t ) + [ 0 0 1 ] u ( t ) , y ( t ) = [ 0 1 1 ] x ( t ) \dot{x}(t)= \begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 1\\ -2 & -5 & -4 \end{bmatrix}x(t)+ \begin{bmatrix} 0\\ 0\\ 1 \end{bmatrix}u(t),y(t)= \begin{bmatrix} 0 & 1 & 1 \end{bmatrix}x(t) x˙(t)=⎣ ⎡00−210−501−4⎦ ⎤x(t)+⎣ ⎡001⎦ ⎤u(t),y(t)=[011]x(t)
-
可观测性矩阵的秩为2,系统状态不完全可观测,观测性分解结果如下:
m = 2 system is not observable
A1 = -1.0000 -4.2426 -2.0000 0.0000 -2.0000 -0.0000 -0.0000 1.4142 -1.0000 b1 = -0.7071 -1.0000 0.7071 c1 = -0.0000 -0.0000 1.4142 T1 = 0.7071 0.0000 -0.7071 0.0000 -1.0000 -0.0000 0.7071 0 0.7071
x ˙ ( t ) = [ − 1 − 4.2426 2 0 − 2 0 0 − 1.4142 − 4 ] x ( t ) + [ − 0.7071 − 1 − 0.7071 ] u ( t ) y ( t ) = [ 0 0 − 1.4142 ] x ( t ) \begin{aligned} &\dot{x}(t)= \begin{bmatrix} -1 & -4.2426 & 2\\ 0 & -2 & 0\\ 0 & -1.4142 & -4 \end{bmatrix}x(t)+ \begin{bmatrix} -0.7071\\ -1\\ -0.7071 \end{bmatrix}u(t)\\ &y(t)= \begin{bmatrix} 0 & 0 & -1.4142 \end{bmatrix}x(t) \end{aligned} x˙(t)=⎣ ⎡−100−4.2426−2−1.414220−4⎦ ⎤x(t)+⎣ ⎡−0.7071−1−0.7071⎦ ⎤u(t)y(t)=[00−1.4142]x(t)
系统最小实现:
sysr = A = x1 x2 x1 -1 -1.414 x2 -4.615e-18 -2 B = u1 x1 -0.7071 x2 -1 C = x1 x2 y1 -1.414 -1.705e-18 D = u1 y1 0
x ˙ ( t ) = [ − 1 − 1.414 0 − 2 ] x ( t ) + [ − 0.7071 − 1 ] u ( t ) , y ( t ) = [ − 1.414 0 ] x ( t ) \dot{x}(t)= \begin{bmatrix} -1 & -1.414\\ 0 & -2 \end{bmatrix}x(t)+ \begin{bmatrix} -0.7071\\ -1 \end{bmatrix}u(t),y(t)= \begin{bmatrix} -1.414 & 0 \end{bmatrix}x(t) x˙(t)=[−10−1.414−2]x(t)+[−0.7071−1]u(t),y(t)=[−1.4140]x(t)
ExampleB-10:
设线性定常系统的状态方程为:
x ˙ ( t ) = [ − 2 − 2.5 − 0.5 1 0 0 0 1 0 ] x ( t ) + [ 1 0 0 ] u ( t ) , y ( t ) = [ 1 4 3.5 ] x ( t ) , x ( 0 ) = [ 1 − 0.75 0.4 ] \dot{x}(t)= \begin{bmatrix} -2 & -2.5 & -0.5\\ 1 & 0 & 0\\ 0 & 1 & 0 \end{bmatrix}x(t)+ \begin{bmatrix} 1\\0\\0 \end{bmatrix}u(t),y(t)= \begin{bmatrix} 1 & 4 & 3.5 \end{bmatrix}x(t),x(0)= \begin{bmatrix} 1\\-0.75\\0.4 \end{bmatrix} x˙(t)=⎣ ⎡−210−2.501−0.500⎦ ⎤x(t)+⎣ ⎡100⎦ ⎤u(t),y(t)=[143.5]x(t),x(0)=⎣ ⎡1−0.750.4⎦ ⎤
问:- 能否通过状态反馈将系统的闭环极点配置在 − 1 、 − 2 、 − 3 -1、-2、-3 −1、−2、−3处?如有可能,求上述极点配置的反馈增益向量 k k k;
- 当系统的状态不可直接测量时,能否通过状态观测器来获取状态变量?如有可能,设计一个极点位于 − 3 、 − 5 、 − 7 -3、-5、-7 −3、−5、−7的全维状态观测器.
解:
【设计步骤】
-
检查系统的可控、可观测性。若被控系统可控可观测,则满足分离定理,用状态观测器估值形成状态反馈时,其系统的极点配置和观测器设计可分别独立进行;
-
对于系统 x ˙ = A x + b u \dot{x}=Ax+bu x˙=Ax+bu,选择状态反馈控制律 u = − k x + v u=-kx+v u=−kx+v,使得通过反馈构成的闭环系统极点,即 ( A − b k ) (A-bk) (A−bk)的特征根配置在期望极点处;
-
构造全维状态观测器 x ^ ˙ = A x ^ + b u − h c ( x ^ − x ) = ( A − h c ) x ^ + b u + h y \dot{\hat{x}}=A\hat{x}+bu-hc(\hat{x}-x)=(A-hc)\hat{x}+bu+hy x^˙=Ax^+bu−hc(x^−x)=(A−hc)x^+bu+hy,设计观测器输出反馈阵 h h h,使得观测器极点,即 ( A − h c ) (A-hc) (A−hc)的特征根位于期望极点处;
-
利用分离定理分别设计上述状态反馈控制律和观测器,得复合系统动态方程为:
[ x ˙ x ^ ˙ ] = [ A − b k h c A − b k − h c ] [ x x ^ ] + [ b b ] v , y = [ c 0 ] [ x x ^ ] \begin{bmatrix} \dot{x}\\ \dot{\hat{x}} \end{bmatrix}= \begin{bmatrix} A & -bk\\ hc & A-bk-hc \end{bmatrix} \begin{bmatrix} x\\ \hat{x} \end{bmatrix}+ \begin{bmatrix} b\\ b \end{bmatrix}v,y= \begin{bmatrix} c & 0 \end{bmatrix} \begin{bmatrix} x\\ \hat{x} \end{bmatrix} [x˙x^˙]=[Ahc−bkA−bk−hc][xx^]+[bb]v,y=[c0][xx^]
% exampleB_10.m % 状态方程各矩阵 A=[-2 -2.5 -0.5;1 0 0;0 1 0]; b=[1 0 0]'; c=[1 4 3.5]; d=0; N=size(A);n=N(1); sys0=ss(A,b,c,d); % 系统状态空间模型; S=ctrb(A,b) % 可控性矩阵; f=rank(S); if f==n disp('system is controlled') else disp('system is not controlled') end V=obsv(A,c) % 可观测性矩阵; m=rank(V); if m==n disp('system is observable') else disp('system is not observable') end P_s=[-1 -2 -3]; % 系统的期望配置极点; k=acker(A,b,P_s) % 计算系统的反馈增益向量k; P_o=[-3 -5 -7]; % 观测器的期望配置极点; h=(acker(A',c',P_o))' % 计算观测器输出反馈向量; A1=[A -b*k;h*c A-b*k-h*c]; b1=[b;b]; c1=[c zeros(1,3)]; d1=0; x0=[1 -0.75 0.4]'; x10=[0 0 0]'; sys=ss(A1,b1,c1,d1); % 建立复合系统动态模型; t=0:0.01:4; [y,t,x]=initial(sys,[x0;x10],t); % 计算系统的零输入响应; figure(1) plot(t,x(:,1:3));grid; % 零输入响应系统状态曲线; xlabel('t(s)');ylabel('x(t)'); figure(2) plot(t,x(:,4:6));grid; % 零输入响应观测状态曲线; xlabel('t(s)');ylabel('x(t)'); figure(3) plot(t,(x(:,1:3)-x(:,4:6)));grid; % 零输入响应状态误差曲线; xlabel('t(s)');ylabel('e(t)');
【结果分析】
-
结果如下:
S = 1.0000 -2.0000 1.5000 0 1.0000 -2.0000 0 0 1.0000 system is controlled V = 1.0000 4.0000 3.5000 2.0000 1.0000 -0.5000 -3.0000 -5.5000 -1.0000 system is observable
可见系统完全可控可观测;
-
反馈增益向量和观测器输出反馈向量如下:
k = 4.0000 8.5000 5.5000 h = 35.2324 -19.8169 16.2958
-
设初始观测状态 x ^ ( 0 ) = [ 0 0 0 ] T \hat{x}(0)=\begin{bmatrix}0 & 0 & 0\end{bmatrix}^T x^(0)=[000]T,系统零输入响应的系统状态曲线、观测状态曲线和状态误差曲线如下图所示:
-
自动控制原理理论基础参考链接