针对MIMO LTI(多输入多输出线性时不变系统):
x ˙ = A x + B u y = C x \begin{aligned} & \dot x = A x + Bu \\ & y = C x \end{aligned} x˙=Ax+Buy=Cx
避免过于抽象而不失一般性,以三阶系统为例。
一、旺纳姆能控规范形II
步骤1: 判断能控性。计算能控性矩阵
Q c = [ B A B A 2 B ] Q_c = [\begin{array}{ccc} B & AB & A^2B \end{array}] Qc=[BABA2B]
如果 r a n k ( Q c ) = n = 3 {\rm rank}(Q_c) = n = 3 rank(Qc)=n=3,系统能化为能控规范形,继续计算;否则,停止。
步骤2:计算转换阵。将 B B B使用列向量表示
B = [ b 1 b 2 b 3 ] B = [\begin{array}{ccc} b_1 & b_2 & b_3 \end{array}] B=[b1b2b3]
按照列搜索方式,即按照
b
1
A
b
1
A
2
b
1
∣
b
2
A
b
2
A
2
b
2
∣
b
3
A
b
3
A
2
b
3
\begin{array}{ccc}b_1&Ab_1& A^2b_1&|& b_2&Ab_2&A^2b_2& | \quad b_3& Ab_3&A^2b_3\end{array}
b1Ab1A2b1∣b2Ab2A2b2∣b3Ab3A2b3
的顺序搜索 n = 3 n=3 n=3个线性无关的向量,组成变换阵 T T T。同时,关于 b 1 , b 2 , b 3 b_1,b_2, b_3 b1,b2,b3组的能控性指数分别记为 v 1 , v 2 , v 3 v_1,v_2, v_3 v1,v2,v3。
不妨假设搜索得到3个线性无关的向量为 b 1 , A b 1 , b 2 b_1, Ab_1, b_2 b1,Ab1,b2,则
T = [ b 1 A b 1 b 2 ] T = [\begin{array}{ccc} b_1 & Ab_1 & b_2 \end{array}] T=[b1Ab1b2]
此时, v 1 = 2 , v 2 = 1 , v 3 = 0 v_1 = 2, v_2 = 1, v_3 = 0 v1=2,v2=1,v3=0
步骤3:计算 T − 1 T^{-1} T−1,并按行向量对其分块,下标与能控性指数相对应。根据假设数据,易得(注:中间的横线是分割线)
T − 1 = [ e 11 T e 12 T — e 21 T ] T^{-1} = \left[\begin{array}{ccc} e_{11}^T \\ e_{12}^T \\—\\ e_{21}^T \end{array} \right] T−1=⎣⎢⎢⎡e11Te12T—e21T⎦⎥⎥⎤
步骤4:取每个块阵中的末行 e 1 v 1 , e 2 v 2 , . . . e_{1v_1}, e_{2v_2}, ... e1v1,e2v2,... 按照一定顺序组成新的变换阵 S S S
S = [ e 1 v 1 T e 1 v 1 T A e 1 v 1 A 2 . . . — e 2 v 2 T . . . ] S = \left[\begin{array}{ccc} e_{1v_1}^T \\ e_{1v_1}^TA \\ e_{1v_1}A^2 \\... \\—\\ e_{2v_2}^T \\...\end{array} \right] S=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡e1v1Te1v1TAe1v1A2...—e2v2T...⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
按照假设的数据,得
S = [ e 12 T e 12 T A e 21 T ] S = \left[\begin{array}{ccc} e_{12}^T \\ e_{12}^TA \\e_{21}^T \end{array} \right] S=⎣⎡e12Te12TAe21T⎦⎤
步骤5:计算
A c = S A S − 1 B c = S B C c = C S − 1 \begin{aligned} &A_c = SAS^{-1} \\ &B_c = SB \\ &C_c = CS^{-1} \end{aligned} Ac=SAS−1Bc=SBCc=CS−1
二、龙伯格能控规范形II
龙伯格能控规范形步骤基本与旺纳姆能控规范形顺序一致,只是第二步使用行搜索的方式(注意:仅仅是搜索方式不同,而搜索得到的向量排列规则相同。例如搜索到 b 1 , b 2 , A b 1 b_1, b_2, Ab_1 b1,b2,Ab1,两种规范形都是按照 b 1 , A b 1 , b 2 b_1, Ab_1, b_2 b1,Ab1,b2的顺序得到转换阵 T T T 而不是 b 1 , b 2 , A b 1 b_1, b_2, Ab_1 b1,b2,Ab1 的顺序)。
具体如下:
步骤1: 判断能控性。计算能控性矩阵
Q c = [ B A B A 2 B ] Q_c = [\begin{array}{ccc} B & AB & A^2B \end{array}] Qc=[BABA2B]
如果 r a n k ( Q c ) = n = 3 {\rm rank}(Q_c) = n = 3 rank(Qc)=n=3,系统能化为能控规范形,继续计算;否则,停止。
步骤2:计算转换阵。将 B B B使用列向量表示
B = [ b 1 b 2 b 3 ] B = [\begin{array}{ccc} b_1 & b_2 & b_3 \end{array}] B=[b1b2b3]
按照列搜索方式,即按照
b
1
b
2
b
3
∣
A
b
1
A
b
2
A
b
3
∣
A
2
b
1
A
2
b
2
A
2
b
3
\begin{array}{ccc}b_1& b_2 & b_3 &|& Ab_1 & Ab_2& Ab_3& | & A^2b_1& A^2b_2&A^2b_3\end{array}
b1b2b3∣Ab1Ab2Ab3∣A2b1A2b2A2b3
的顺序搜索 n = 3 n=3 n=3个线性无关的向量,组成变换阵 T T T。同时,关于 b 1 , b 2 , b 3 b_1,b_2, b_3 b1,b2,b3组的能控性指数分别记为 v 1 , v 2 , v 3 v_1,v_2, v_3 v1,v2,v3。
不妨假设搜索得到3个线性无关的向量为 b 1 , b 2 , A b 1 b_1, b_2, Ab_1 b1,b2,Ab1,则(并不按照搜索结果直接排列!)
T = [ b 1 A b 1 b 2 ] T = [\begin{array}{ccc} b_1 & Ab_1 & b_2 \end{array}] T=[b1Ab1b2]
此时, v 1 = 2 , v 2 = 1 , v 3 = 0 v_1 = 2, v_2 = 1, v_3 = 0 v1=2,v2=1,v3=0
步骤3:计算 T − 1 T^{-1} T−1,并按行向量对其分块,下标与能控性指数相对应。根据假设数据,易得(注:中间的横线是分割线)
T − 1 = [ e 11 T e 12 T — e 21 T ] T^{-1} = \left[\begin{array}{ccc} e_{11}^T \\ e_{12}^T \\—\\ e_{21}^T \end{array} \right] T−1=⎣⎢⎢⎡e11Te12T—e21T⎦⎥⎥⎤
步骤4:取每个块阵中的末行 e 1 v 1 , e 2 v 2 , . . . e_{1v_1}, e_{2v_2}, ... e1v1,e2v2,... 按照一定顺序组成新的变换阵 S S S
S = [ e 1 v 1 T e 1 v 1 T A e 1 v 1 A 2 . . . — e 2 v 2 T . . . ] S = \left[\begin{array}{ccc} e_{1v_1}^T \\ e_{1v_1}^TA \\ e_{1v_1}A^2 \\... \\—\\ e_{2v_2}^T \\...\end{array} \right] S=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡e1v1Te1v1TAe1v1A2...—e2v2T...⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
按照假设的数据,得
S = [ e 12 T e 12 T A e 21 T ] S = \left[\begin{array}{ccc} e_{12}^T \\ e_{12}^TA \\e_{21}^T \end{array} \right] S=⎣⎡e12Te12TAe21T⎦⎤
步骤5:计算
A c = S A S − 1 B c = S B C c = C S − 1 \begin{aligned} &A_c = SAS^{-1} \\ &B_c = SB \\ &C_c = CS^{-1} \end{aligned} Ac=SAS−1Bc=SBCc=CS−1
三、例子
给定系统
x ˙ = [ − 1 − 4 − 2 0 6 − 1 1 7 − 1 ] x + [ 2 0 0 0 1 1 ] u \dot x =\left [ \begin{array}{ccc} -1 & -4 & -2 \\ 0 & 6 & -1 \\ 1 & 7 & -1 \end{array}\right ] x + \left [ \begin{array}{ccc} 2 & 0 \\ 0 & 0 \\ 1 & 1 \end{array}\right ] u x˙=⎣⎡−101−467−2−1−1⎦⎤x+⎣⎡201001⎦⎤u
分别转化为旺纳姆规范形II和龙伯格规范形II。
3.1 旺纳姆规范形II
步骤1:计算能控性。
Q c = [ B A B A 2 B ] = [ 2 0 − 4 − 2 6 8 0 0 − 1 − 1 − 7 − 5 1 1 1 − 1 − 12 − 8 ] \begin{aligned} Q_c &= [\begin{array}{ccc} B & AB & A^2B \end{array}] \\ &=\left [ \begin{array}{ccc} 2&0&-4&-2&6&8 \\ 0 & 0 & -1 & -1 &-7 & -5 \\ 1 & 1 & 1 & -1 & -12 & -8 \end{array}\right ] \end{aligned} Qc=[BABA2B]=⎣⎡201001−4−11−2−1−16−7−128−5−8⎦⎤
由于 r a n k ( Q c ) = 3 {\rm rank}(Q_c) = 3 rank(Qc)=3,继续下一步。
步骤2:按照行搜索,得到 b 1 , A b 1 , A 2 b 1 b_1, Ab_1, A^2b_1 b1,Ab1,A2b1线性无关,因此
T = [ b 1 A b 1 A 2 b 1 ] = [ 2 − 4 6 0 − 1 − 7 1 1 − 12 ] \begin{aligned} T &= [\begin{array}{ccc} b_1 & Ab_1 & A^2b_1 \end{array}] \\ &=\left [ \begin{array}{ccc} 2 & -4 & 6 \\ 0 & -1 & -7 \\ 1 & 1 & -12 \end{array}\right ] \end{aligned} T=[b1Ab1A2b1]=⎣⎡201−4−116−7−12⎦⎤
步骤3:计算转换阵的逆
T − 1 = [ 19 / 72 − 7 / 12 17 / 36 − 7 / 22 − 5 / 12 7 / 36 1 / 72 − 1 / 12 − 1 / 36 ] = [ e 11 T e 12 T e 13 T ] \begin{aligned} T^{-1} &= \left [ \begin{array}{ccc} 19/72 & -7/12 & 17/36\\ -7/22& -5/12 & 7/36 \\ 1/72 & -1/12 & -1/36 \end{array}\right ] = \left[\begin{array}{ccc} e_{11}^T \\ e_{12}^T \\ e_{13}^T \end{array}\right] \end{aligned} T−1=⎣⎡19/72−7/221/72−7/12−5/12−1/1217/367/36−1/36⎦⎤=⎣⎡e11Te12Te13T⎦⎤
步骤4:计算新的转换阵 S S S
S = [ e 13 T e 13 T A e 13 T A 2 ] = [ 1 / 72 − 1 / 12 − 1 / 36 − 1 / 24 − 3 / 4 1 / 12 1 / 8 − 15 / 4 3 / 4 ] \begin{aligned} S &= \left [\begin{array}{ccc} e_{13}^T \\ e_{13}^TA \\ e_{13}^TA^2 \end{array} \right] \\ &=\left [ \begin{array}{ccc} 1/72 & -1/12 & -1/36 \\ -1/24 & -3/4 & 1/12 \\ 1/8 & -15/4 & 3/4 \end{array}\right ] \end{aligned} S=⎣⎡e13Te13TAe13TA2⎦⎤=⎣⎡1/72−1/241/8−1/12−3/4−15/4−1/361/123/4⎦⎤
步骤5 计算
A c = S A S − 1 = [ 0 1 0 0 0 1 15 2 4 ] \begin{aligned} A_c &= SAS^{-1} \\ &= \left [ \begin{array}{ccc} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 15 & 2 & 4 \end{array}\right ] \end{aligned} Ac=SAS−1=⎣⎡0015102014⎦⎤
B c = S B = [ 0 − 1 / 36 0 1 / 12 1 3 / 4 ] \begin{aligned} B_c &= SB \\ &= \left [ \begin{array}{ccc} 0 & -1/36 \\ 0 & 1/12 \\ 1 & 3/4 \end{array}\right ] \end{aligned} Bc=SB=⎣⎡001−1/361/123/4⎦⎤
因此
x ˉ ˙ = [ 0 1 0 0 0 1 15 2 4 ] x ˉ + [ 0 − 1 / 36 0 1 / 12 1 3 / 4 ] u \dot{\bar x} =\left [ \begin{array}{ccc} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 15 & 2 & 4 \end{array}\right ] \bar x + \left [ \begin{array}{ccc} 0 & -1/36 \\ 0 & 1/12 \\ 1 & 3/4 \end{array}\right ] u xˉ˙=⎣⎡0015102014⎦⎤xˉ+⎣⎡001−1/361/123/4⎦⎤u
matlab程序如下
%% 旺纳姆规范形II
format rat % 分数显示
A=[-1 -4 -2; 0 6 -1; 1 7 -1];
B = [2 0; 0 0; 1 1];
% 步骤1,计算能控性
Qc = [B, A*B, A^2*B];
rank_Qc = rank(Qc) % 结果为3
% 步骤2,计算转换阵
b1 = B(:,1);
b2 = B(:,2);
rank_b = rank([b1]) % 1
rank_b = rank([b1 A*b1]) % 2
rank_b = rank([b1 A*b1 A^2*b1]) % 3
T = [b1 A*b1 A^2*b1];
% 步骤3,计算转换阵的逆
inv_T = inv(T);
e13 = inv_T(3,:);
% 步骤4,计算新的转换阵
S = [e13; e13*A; e13*A^2];
% 步骤5,计算矩阵
Ac = S*A*inv(S); % 注意结果中可能有*,是因为非常接近0,取0即可
Bc = S*B;
3.2 龙伯格规范形II
直接给程序和结果
%% 龙伯格规范形II
format rat % 分数显示
A=[-1 -4 -2; 0 6 -1; 1 7 -1];
B = [2 0; 0 0; 1 1];
% 步骤1,计算能控性
Qc = [B, A*B, A^2*B];
rank_Qc = rank(Qc) % 结果为3
% 步骤2,计算转换阵
b1 = B(:,1);
b2 = B(:,2);
rank_b = rank([b1]) % 1
rank_b = rank([b1 b2]) % 2
rank_b = rank([b1 b2 A*b1]) % 3
T = [b1 A*b1 b2];
% 步骤3,计算转换阵的逆
inv_T = inv(T);
e13 = inv_T(3,:);
% 步骤4,计算新的转换阵
S = [e13; e13*A; e13*A^2];
% 步骤5,计算矩阵
Ac = S*A*inv(S); % 注意结果中可能有*,是因为非常接近0,取0即可
Bc = S*B;
x ˉ ˙ = [ 0 1 0 0 0 1 15 2 4 ] x ˉ + [ 0 1 0 − 3 − 36 − 27 ] u \dot{\bar x} =\left [ \begin{array}{ccc} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 15 & 2 & 4 \end{array}\right ] \bar x + \left [ \begin{array}{ccc} 0 & 1 \\ 0 & -3 \\ -36 & -27 \end{array}\right ] u xˉ˙=⎣⎡0015102014⎦⎤xˉ+⎣⎡00−361−3−27⎦⎤u
《线性系统理论》2004 段广仁
链接:https://pan.baidu.com/s/1Oj96C1yGXrYnH2Ru4DAKYA
提取码:y3ne
– 完 –