[0] 次の2入力2次系
![Rendered by QuickLaTeX.com \displaystyle{(1)\quad \dot{x}= \underbrace{ \left[\begin{array}{cc} 0 & 0\\ 0 & -1 \end{array}\right] }_{A} x+ \underbrace{ \left[\begin{array}{cc} 1 & 1\\ 1 & -1 \end{array}\right] }_{B} u }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-c745d4f5f1b3d7dfbb8161becd05cbbc_l3.png)
に対して2つの異なる状態フィードバック
![Rendered by QuickLaTeX.com \displaystyle{(2)\quad %\begin{array}{l} u=- \underbrace{ \left[\begin{array}{cc} 1 & 1\\ 1 & -1 \end{array}\right] }_{F_1} x,\quad u=- \underbrace{ \left[\begin{array}{cc} 1 & 0\\ 1 & 2 \end{array}\right] }_{F_2} x %\end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-d49d42d887c347c0b3f6ee06df55f59c_l3.png)
による閉ループ系は、それぞれ
![Rendered by QuickLaTeX.com \displaystyle{(3)\quad \dot{x}= \underbrace{ \left[\begin{array}{cc} -2 & 0\\ 0 & -3 \end{array}\right] }_{A-BF_1} x,\quad \dot{x}= \underbrace{ \left[\begin{array}{cc} -2 & 2\\ 0 & -3 \end{array}\right] }_{A-BF_2} x }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-93545ea90d73386ffad49fb6770534d9_l3.png)
となって、同じ固有値-2,-3を持ちます。このように多入力系では閉ループ系の固有値を指定しても状態フィードバックは一意に定まりません。これは固有ベクトルの指定に任意性があるからです(ちなみに1入力系では一意に定まります)。そこで、上の2つの閉ループ系の固有ベクトルを求めてみると
![]()
また応答は次式となります。
![Rendered by QuickLaTeX.com \displaystyle{(5)\quad \dot{x}= \underbrace{ \left[\begin{array}{cc} e^{-2t} & 0\\ 0 & e^{-3t} \end{array}\right] }_{\exp((A-BF_1)t)=V_1\exp(\Lambda t)V_1^{-1}} x(0) }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-a848c79fb2043d68760134bb59a59432_l3.png)
![Rendered by QuickLaTeX.com \displaystyle{(6)\quad \dot{x}= \underbrace{ \left[\begin{array}{cc} 1 & 1\\ 0 & 1 \end{array}\right] \left[\begin{array}{cc} e^{-2t} & 0\\ 0 & e^{-3t} \end{array}\right] \left[\begin{array}{cc} 1 & -1\\ 0 & 1 \end{array}\right] }_{\exp((A-BF_2)t)=V_2\exp(\Lambda t)V_2^{-1}} x(0) }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-9cfbe60f5937bb40578221b8097e070e_l3.png)
明らかに(5)ではモード
と
が分離していますが、(6)ではそれらがミックスされています。このように、多入力系の場合の状態フィードバックの設計は、モードをどのように分布させるかがポイントとなります。
[1] 実固有値の場合
![Rendered by QuickLaTeX.com \displaystyle{(7)\quad (A-BF)v=\lambda v \Rightarrow \underbrace{ \left[\begin{array}{cc} \lambda I-A & B \end{array}\right] }_{G(\lambda)} \left[\begin{array}{c} v\\ \xi \end{array}\right] =0 \quad(\xi=Fv) }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-54bfb57a51b16a01489326657af0618c_l3.png)
より、
と
は、サイズ
の行列
の零化空間の基底行列に対して、適当な
次元ベクトル
を用いて
![]()
のように表されます。そこで望ましい固有ベクトル
を与えて
![]()
を解いて
を求めます。ただし、望ましい固有ベクトル
のすべての成分を指定できるわけではないので
![]()
の最小2乗解として
を定めます。ここで、セレクタ行列
により、望ましい固有ベクトル
の指定された
個の成分だけを集めた
が得られるとしています。
このとき、割当可能な
と
は次式で与えられます。
![]()
●もし
が正則ならば
![]()
より、
と
が特定できます。(8)より
![]()
となって、指定した固有ベクトル
を近似する
を直接求めることができます。
●具体的に、(1)に対して、固有値-2,-3を持たせる状態フィードバックを、対応する固有ベクトルが(4)の
となるように求めてみます。
![Rendered by QuickLaTeX.com \displaystyle{(14)\quad \begin{array}{l} \underbrace{ \left[\begin{array}{cc} 0-(-2) & 0\\ 0 & -1-(-2) \end{array}\right]^{-1} \left[\begin{array}{cc} 1 & 1\\ 1 & -1 \end{array}\right] }_{(A-\lambda I_n)^{-1}B} \xi_1 =\underbrace{ \left[\begin{array}{c} 1\\ 0 \end{array}\right]}_{V_1(:,1)}\\ \Rightarrow \xi_1= \left[\begin{array}{cc} 1/2 & 1/2\\ 1 & -1 \end{array}\right]^{-1} \left[\begin{array}{c} 1\\ 0 \end{array}\right] = \left[\begin{array}{cc} 1 & 1/2\\ 1 & -1/2 \end{array}\right] \left[\begin{array}{c} 1\\ 0 \end{array}\right] = \left[\begin{array}{cc} 1\\ 1 \end{array}\right] \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-1b41e93a5933617741e4f586e93e19f7_l3.png)
![Rendered by QuickLaTeX.com \displaystyle{(15)\quad \begin{array}{l} \underbrace{ \left[\begin{array}{cc} 0-(-3) & 0\\ 0 & -1-(-3) \end{array}\right]^{-1} \left[\begin{array}{cc} 1 & 1\\ 1 & -1 \end{array}\right] }_{(A-\lambda I_n)^{-1}B} \xi_2 =\underbrace{ \left[\begin{array}{c} 0\\ 1 \end{array}\right]}_{V_1(:,2)}\\ \Rightarrow \xi_2= \left[\begin{array}{cc} 1/3 & 1/3\\ 1/2 & -1/2 \end{array}\right]^{-1} \left[\begin{array}{c} 0\\ 1 \end{array}\right] = \left[\begin{array}{cc} 3/2 & 1\\ 3/2 & -1 \end{array}\right] \left[\begin{array}{c} 0\\ 1 \end{array}\right] = \left[\begin{array}{cc} 1\\ -1 \end{array}\right] \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-acb8eeda9b274090e7fd1446eb642dc3_l3.png)
状態フィードバックゲイン
は
![]()
[2] 複素共役固有値の場合
![Rendered by QuickLaTeX.com \displaystyle{(17)\quad \begin{array}{l} (A-BF)(v_R\pm jv_I)=(\lambda_R\pm j\lambda_I)(v_R\pm jv_I)\\ \Rightarrow (A-BF)v_R=\lambda_Rv_R-\lambda_Iv_I,\ (A-BF)v_I =\lambda_Rv_I+\lambda_Iv_R \\ \Rightarrow \underbrace{ \left[\begin{array}{ccc} \lambda_R I-A & \lambda_I I & B \end{array}\right] }_{G(\lambda)} \left[\begin{array}{cc} v_R & v_I\\ -v_I & v_R\\ \xi_R & \xi_I \end{array}\right] =0 \quad(\xi_R=Fv_R,\xi_I=Fv_I) \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-6d47009b53c361504d7e6bc98f9e71b8_l3.png)
より、
と
は、サイズ
の行列
の零化空間の基底行列に対して、適当な
次元ベクトル
を用いて
![Rendered by QuickLaTeX.com \displaystyle{(18)\quad G(\lambda) \left[\begin{array}{c} N(\lambda)\\ P(\lambda)\\ M(\lambda) \end{array}\right] =0 \Rightarrow \left[\begin{array}{cc} v_R & v_I\\ -v_I & v_R\\ \xi_R & \xi_I \end{array}\right]= \left[\begin{array}{c} N(\lambda)\\ P(\lambda)\\ M(\lambda) \end{array}\right] \left[\begin{array}{cc} \delta_R & \delta_I \end{array}\right] }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-d676d8a341ec09736514abf70264ec37_l3.png)
のように表されます。そこで望ましい
を与えて
![Rendered by QuickLaTeX.com \displaystyle{(19)\quad \left[\begin{array}{c} v_R \\ v_I \end{array}\right]= \underbrace{ \left[\begin{array}{cc} N(\lambda) \\ -P(\lambda) \end{array}\right] }_{\alpha} \delta_R= \underbrace{ \left[\begin{array}{cc} P(\lambda)\\ N(\lambda) \end{array}\right] }_{\beta} \delta_I }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-abf82ddd7131d916fdee953a63a0709d_l3.png)
の解として
を求めますが、
と
が独立ではないので、その求解には工夫が必要です。ここでは、Edwards and Spurgeon に従って、その手順を述べます。
まず、行列
に対して、
の零化空間の基底行列を
で表すと、
より
を得て、
の零化空間の基底行列は
、すなわち
となることに注意します。同様に行列
に対して、
の零化空間の基底行列を
で表すと、
の零化空間の基底行列は
、すなわち
となります。そこで、
![Rendered by QuickLaTeX.com \displaystyle{(20)\quad \underbrace{ \left[\begin{array}{c} K_\alpha^T\\ K_\beta^T \end{array}\right] }_{\gamma^T} K_\gamma=0 \Rightarrow {\cal R}(K_\gamma)\subset {\cal N}(K_\alpha^T)\cap {\cal N}(K_\beta^T)={\cal R}(\alpha)\cap {\cal R}(\beta) }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-70b8648bf35dd1f338dadef1f1f30f76_l3.png)
に注意して、
の零化空間の基底行列
を用いて、望ましい
を与えて
![]()
を解いて
を求めます。ただし、望ましい
のすべての成分を指定できるわけではないので
![Rendered by QuickLaTeX.com \displaystyle{(22)\quad \tilde{R}K_\gamma\delta=\tilde{R}v =\left[\begin{array}{c} \tilde{v}_R^s\\ \tilde{v}_I^s\\ \tilde{v}_R^u\\ \tilde{v}_I^u\\ \end{array}\right] \Rightarrow \left[\begin{array}{cc} I_{2q} & 0 \end{array}\right] \tilde{R}K_\gamma\times\delta= \left[\begin{array}{c} \tilde{v}_R^s\\ \tilde{v}_I^s\\ \end{array}\right] }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-ca6f1cde64789122929ed05b745bf916_l3.png)
の最小2乗解として
を定めます。ここで、セレクター行列
により、望ましい
の指定された
個の成分だけを集めた
が得られるとしています。
このとき、割当可能な
は次式で与えられます。
![]()
これは(14)の
を、それぞれ
と
で定めれば(
は疑似逆行列を表す)、対応する
は次式で与えられます。
![]()
[3] 複素共役固有値の場合(別のアプローチ)
(17)は次式のようにも表すことができます。
![Rendered by QuickLaTeX.com \displaystyle{(25)\quad \begin{array}{l} (A-BF)(v_R\pm jv_I)=(\lambda_R\pm j\lambda_I)(v_R\pm jv_I)\\ \Rightarrow (A-BF)v_R=\lambda_Rv_R-\lambda_Iv_I,\ (A-BF)v_I =\lambda_Rv_I+\lambda_Iv_R \\ \Rightarrow %\underbrace{ \left[\begin{array}{cccc} \lambda_R I-A & -\lambda_I I & B & 0\\ \lambda_I I & \lambda_R I-A & 0 & B\\ \end{array}\right] %}_{G(\lambda)} \left[\begin{array}{cc} v_R \\ v_I \\ \xi_R \\ \xi_I \end{array}\right] =0 \quad(\xi_R=Fv_R,\xi_I=Fv_I) \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-5c3395554ec680982602827ec93699f2_l3.png)
したがって、[2]において
![Rendered by QuickLaTeX.com \displaystyle{(26)\quad \begin{array}{l} G(\lambda)\leftarrow \left[\begin{array}{cccc} \lambda_R I-A & -\lambda_I I & B & 0\\ \lambda_I I & \lambda_R I-A & 0 & B \end{array}\right]\\ v\leftarrow\left[\begin{array}{c} v_R\\ v_I \end{array}\right],\ \xi\leftarrow\left[\begin{array}{c} \xi_R\\ \xi_I \end{array}\right],\ \delta\leftarrow\left[\begin{array}{c} \delta_R\\ \delta_I \end{array}\right] \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-3836feba6912b5d294cc1fc1bb8ed8ff_l3.png)
と置き換えて同様の議論ができそうです([2]の議論と等価であるかは検討中です)。
●もし
が正則ならば、公式
![Rendered by QuickLaTeX.com \displaystyle{(27)\quad \begin{array}{l} \left[\begin{array}{cc} M_{11} & M_{12} \\ M_{21} & M_{22} \end{array}\right]^{-1} = \left[\begin{array}{cc} \Phi^{-1} & -\Phi^{-1}M_{12}M_{22}^{-1} \\ -M_{22}^{-1}M_{21}\Phi^{-1} & M_{22}^{-1}+M_{22}^{-1}M_{21}\Phi^{-1}M_{12}M_{22}^{-1} \end{array}\right]\\ \Phi\stackrel{\rm def}{=}M_{11}-M_{12}M_{22}^{-1}M_{21}\ (M_{22}\ {\rm nonsingular}) \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-bcdb0550e930a915276eb65efa6b45a9_l3.png)
を参照すると
![]()
を計算できます。そこで
![Rendered by QuickLaTeX.com \displaystyle{(29)\quad \begin{array}{l} \left[\begin{array}{cc} \lambda_R I-A & -\lambda_I I\\ \lambda_I I & \lambda_R I-A \end{array}\right] \underbrace{ \left[\begin{array}{cc} \lambda_R I-A & -\lambda_I I\\ \lambda_I I & \lambda_R I-A \end{array}\right]^{-1} \left[\begin{array}{cc} B & 0\\ 0 & B \end{array}\right] }_{N(\lambda)}\\ + \left[\begin{array}{cc} B & 0\\ 0 & B \end{array}\right] \underbrace{(-I_{2m})}_{M(\lambda)}=0 \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-d460a19e80907d9a0b852c5de467ac5e_l3.png)
より、
と
が特定できます。(8)に相当する式より
![Rendered by QuickLaTeX.com \displaystyle{(30)\quad \boxed{ \left[\begin{array}{c} v_R\\ v_I \end{array}\right] = \left[\begin{array}{cc} A-\lambda_R I & \lambda_I I\\ -\lambda_I I & A-\lambda_R I \end{array}\right]^{-1} \left[\begin{array}{cc} B & 0\\ 0 & B \end{array}\right] \left[\begin{array}{c} \xi_R\\ \xi_I \end{array}\right]} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-12c74d3d5e932ac7ad3709a3d3e04cd6_l3.png)
となって、指定した固有ベクトルの実部
と虚部
を近似する
と
を直接求めることができます。
●具体的に、(1)に対して、固有値
を持たせる状態フィードバックを、対応する固有ベクトルが
![Rendered by QuickLaTeX.com \displaystyle{(31)\quad \underbrace{ \left[\begin{array}{c} 1\\ 0 \end{array}\right]}_{v_R} \pm j \underbrace{ \left[\begin{array}{c} 0\\ 1 \end{array}\right]}_{v_I} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-cf417f6f422bf9420ff045018f997982_l3.png)
となるように求めてみます。
![Rendered by QuickLaTeX.com \displaystyle{(32)\quad \begin{array}{l} \underbrace{ \left[\begin{array}{cccc} 0-(-1) & 0 & 1 & 0\\ 0 & -1-(-1) & 0 & 1\\ -1 & 0 & 0-(-1) & 0\\ 0 & -1 & 0 & -1-(-1) \end{array}\right]^{-1} }_{\left[\begin{array}{cc} A-\lambda_R I & \lambda_I I\\ -\lambda_I I & A-\lambda_R I \end{array}\right]^{-1}}\\ \times\underbrace{ \left[\begin{array}{cccc} 1 & 1 & 0 & 0\\ 1 & -1& 0 & 0\\ 0 & 0 & 1 & 1\\ 0 & 0 & 1 & -1 \end{array}\right] }_{\left[\begin{array}{cc} B & 0\\ 0 & B \end{array}\right]} \left[\begin{array}{c} \xi_R\\ \xi_I \end{array}\right] =\underbrace{ \left[\begin{array}{c} 1\\ 0\\ 0\\ 1 \end{array}\right]}_{\left[\begin{array}{c} v_R\\ v_I \end{array}\right]}\\ \Rightarrow \left[\begin{array}{c} \xi_R\\ \xi_I \end{array}\right]= \left[\begin{array}{cccc} 1/2 & 1/2 & -1/2 & -1/2\\ 0 & 0 & -1 & 1\\ 1/2 & 1/2 & 1/2 & 1/2\\ 1 & -1& 0 & 0 \end{array}\right]^{-1} \left[\begin{array}{c} 1\\ 0\\ 0\\ 1 \end{array}\right]= \left[\begin{array}{c} 1\\ 0\\ -1/2\\ -1/2 \end{array}\right] \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-a8c14670356af07d6f9cd11e59a8f1f8_l3.png)
状態フィードバックゲイン
は
![Rendered by QuickLaTeX.com \displaystyle{(33)\quad \begin{array}{l} \left[\begin{array}{cc} \xi_R & \xi_I \end{array}\right] =F \left[\begin{array}{cc} v_R & v_I \end{array}\right]\\ \Rightarrow F= \left[\begin{array}{cc} \xi_R & \xi_I \end{array}\right] \left[\begin{array}{cc} v_R & v_I \end{array}\right]^{-1} = \left[\begin{array}{cc} 1 & -1/2\\ 0 & -1/2 \end{array}\right] \end{array} }](https://cacsd1.sakura.ne.jp/wp/wp-content/ql-cache/quicklatex.com-a6a803556df89cc05beca9ed87858cec_l3.png)
演習C42…Flipped Classroom
(16)と(33)の計算を行う次のプログラムを実行せよ。
| MATLAB |
|
1入力系の場合は、specposとspecentは乱数で与えてよい、なぜか?
| MATLAB |
|
Note C42 固有ベクトル設定プログラム
これはEdwards and Spurgeonによるプログラムspvplを基に作成できます。