3 状態フィードバックと可制御性

【本章のねらい】
・ 状態フィードバックを設計する。
・ 可制御性と可安定性を判定する。

3.1 状態フィードバック

いま制御対象は平衡状態にあるとし,何らかの要因でこれが乱されたとき,適当な手段を用いて,速やかに元の平衡状態に戻したい。そのような手段の一つとして,m入力p出力n次元線形系(n次系)

\displaystyle{(3.1)\quad \left\{\begin{array}{l} \dot{x}(t)=Ax(t)+Bu(t) \\ y(t)=Cx(t) \end{array}\right. }

に対する状態フィードバック

\displaystyle{(3.2)\quad u(t)=-Fx(t) }

を考える。このとき,(3.2)式を(3.1)式に代入して,閉ループ系

\displaystyle{(3.3)\quad \left\{\begin{array}{l} \dot{x}(t)=\underbrace{(A-BF)}_{A_F}x(t) \\ y(t)=Cx(t) \end{array}\right. }

を得る。このブロック線図を次に示す。

上の制御目的が達成されるためには,閉ループ系のA行列,すなわち,行列A_F=A-BFが安定行列となるように,状態フィードバックのゲイン行列Fを決めればよい。実際,

(3.4)「任意のx(0)\ne0に対して,x(t)=\exp(A-BF)x(0)\rightarrow 0\ (t\rightarrow\infty)

が成り立ち,これは平衡状態x=0に戻ることを意味するからである。

まず,1次系の状態フィードバックの例を考える。

例題3.1 時定数Tと定常ゲインKをもつ1次系

\displaystyle{ \dot{x}(t)=-\frac{1}{T}x(t)+\frac{K}{T}u(t) }

に対して,新しい入力v(t)をもつ状態フィードバック

\displaystyle{ u(t)=-\underbrace{\frac{T}{K}(\frac{1}{T'}-\frac{1}{T})}_fx(t)+\underbrace{\frac{T}{K}\frac{K'}{T'}}_gv(t) }

を行うと閉ループ系の時定数はT',定常ゲインはK'となることを示せ。
解答 フィードバック式を状態方程式のu(t)に代入すると,閉ループ系は

\displaystyle{ \dot{x}(t)=-\frac{1}{T}x(t)+\frac{K}{T}(-\frac{T}{K}(\frac{1}{T'}-\frac{1}{T})x(t)+\frac{T}{K}\frac{K'}{T'}v(t))=-\frac{1}{T'}x(t)+\frac{K'}{T'}v(t) }

となる。これは時定数T'と定常ゲインK'をもつ1次系を表している。

演習3.1 1次系\dot{x}(t)=-x(t)+u(t)に対するフィードバックu(t)=-fx(t)+gv(t)を,閉ループ系の時定数が1/10,定常ゲインが1となるように
定めよ。

演習3.2 例題2.5で得た図上(tx平面)に,望ましい閉ループ系の時定数T',定常ゲインK'を表す点(T',K')を指定し,ginputを使って読み込み,これを達成するフィードバックu(t)=-fx(t)+gv(t)を定めよ。

つぎに,2次系の状態フィードバックの例を考える。

例題3.2 減衰係数\zetaと固有角周波数\omega_n^2をもつ2次系

\displaystyle{ \underbrace{ \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \end{array}\right] }_{\dot x} = \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ -\omega_n^2 & -2\zeta\omega_n \end{array}\right] }_{A} \underbrace{ \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] }_{x} + \underbrace{ \left[\begin{array}{c} 0 \\ \omega_n^2 \end{array}\right] }_{B} u(t) }

に対して,新しい入力v(t)をもつ状態フィードバック

\displaystyle{ u(t)=- \underbrace{ \left[\begin{array}{cc} \frac{1}{\omega_n^2}(\omega_n'\,^2-\omega_n^2) & \frac{2}{\omega_n^2}(\zeta'\omega_n'-\zeta\omega_n) \end{array}\right] }_{F} \left[\begin{array}{c} x_1(t) \\ x_2(t) \end{array}\right] +\underbrace{\frac{\omega_n'\,^2}{\omega_n^2}}_Gv(t) }

を行うと,閉ループ系の減衰係数は\zeta'と固有角周波数は\omega_n'\,^2となることを示せ。
解答 u(t)=-Fx(t)+Gv(t)を状態方程式\dot{x}(t)=Ax(t)+Bu(t)に代入すると,閉ループ系は\dot{x}(t)=(A-BF)x(t)+BGv(t)となる。ここで

\displaystyle{ \begin{array}{lll} &&A-BF= \left[\begin{array}{cc} 0 & 1 \\ -\omega_n^2 & -2\zeta\omega_n \end{array}\right] - \left[\begin{array}{c} 0 \\ \omega_n^2 \end{array}\right]\\ && \times \left[\begin{array}{cc} \frac{1}{\omega_n^2}(\omega_n'\,^2-\omega_n^2) & \frac{2}{\omega_n^2}(\zeta'\omega_n'-\zeta\omega_n) \end{array}\right] =\left[\begin{array}{cc} 0 & 1 \\ -\omega_n'\,^2 & -2\zeta'\omega_n' \end{array}\right] \end{array} }

\displaystyle{ BG= \left[\begin{array}{c} 0 \\ \omega_n^2 \end{array}\right] \frac{\omega_n'\,^2}{\omega_n^2} = \left[\begin{array}{c} 0 \\ \omega_n'\,^2 \end{array}\right] }

これは減衰係数\zeta'と固有角周波数\omega_n'\,^2をもつ2次系を表している。

演習3.3 例題2.6で得た図上(ty平面)に,望ましい第1番目のオーバーシュートの頂点の座標(T_p',y(T_p'))を指定し,ginputを使って読み込み,対応する減衰係数\zeta'と固有角周波数\omega_n'\,^2を(2.22)式を使って求め,これを達成するフィードバックu(t)=-f_1x_1(t)-f_2x_2(t)+gv(t)を定めよ。

さて,n次系に対する状態フィードバックの設計法を考える。まず,1入力系の場合を考え,つぎの条件を仮定する(1入力系の可制御性行列はn次の正方行列となり,本条件はその正則性を意味する。)。

\displaystyle{(3.5)\quad {\rm rank} \underbrace{ \left[\begin{array}{cccc} B & AB & \cdots & A^{n-1}B \end{array}\right] }_{controllability\ matrix} =n }

また,行列Aの固有値を\lambda_1,\cdots,\lambda_n,行列A_F=A-BFの固有値を\lambda'_1,\cdots, \lambda'_nとするとき,,それぞれの特性多項式を次式で表す。

\displaystyle{(3.6)\quad {\rm det}(\lambda I_n-A)&=&(\lambda-\lambda_1)\cdots(\lambda-\lambda_n) \nonumber\\ &=&\lambda^n+a_1\lambda^{n-1}+\cdots+a_n }

\displaystyle{(3.7)\quad {\rm det}(\lambda I_n-A_F)&=&(\lambda-\lambda'_1)\cdots(\lambda-\lambda'_n)\nonumber\\ &=&\lambda'\,^n+a'_1\lambda'\,^{n-1}+\cdots+a'_n }

このとき,閉ループ系のA行列A_F=A-BFの固有値を,指定された安定固有値\lambda'_1,\cdots, \lambda'_nに設定する状態フィードバックのゲイン行列F

\displaystyle{(3.8)\quad \begin{array}{lll} F&=&\left[\begin{array}{cccc} a_n'-a_n & \cdots & a_2'-a_2 & a_1'-a_1 \end{array}\right] \nonumber\\ &\times& \left[\begin{array}{ccccc} a_{n-1} & a_{n-2} & \cdots & a_1 & 1 \\ a_{n-2} & a_{n-3} & \cdots & 1 & 0 \\ \vdots & \vdots & \cdots & \vdots & \vdots \\ a_2 & a_1 & \cdots & 0 & 0 \\ a_1 & 1 & \cdots & 0 & 0 \\ 1 & 0 & \cdots & 0 & 0 \end{array}\right]^{-1} \nonumber\\ &\times& \left[\begin{array}{cccc} B & AB &\cdots & A^{n-1}B \end{array}\right]^{-1} \end{array} }

または

\displaystyle{(3.9)\quad \begin{array}{lll} F&=& \left[\begin{array}{cccc} 1 & 0 & \cdots & 0 \end{array}\right] % \nonumber\\ % &\times& \left[\begin{array}{cccc} B & AB &\cdots & A^{n-1}B \end{array}\right]^{-1} \nonumber\\ &\times& (A^n+a'_1A^{n-1}+\cdots+a'_nI_n) \end{array} }

で与えられる(テキスト「線形システム制御入門」の3.3節参照)。(3.8})式と(3.9})式を比較すると,前者はAの特性多項式の係数の計算を,後者はAのべき乗計算を必要とすることに注意する。

例題3.3 2次系

\displaystyle{ \underbrace{ \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \\ \end{array}\right] }_{\dot{x}(t)}= \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ 0 & 0 \end{array}\right] }_{A} \underbrace{ \left[\begin{array}{c} {x}_1(t) \\ {x}_2(t) \\ \end{array}\right] }_{{x}(t)}+ \underbrace{ \left[\begin{array}{c} 0 \\ 1 \end{array}\right] }_{B} u(t) }

に対する状態フィードバックu=-Fxを,行列A-BFの固有値が,つぎのものとなるように求めよ。
(1) \lambda'_1=-1,\ \lambda'_2=-2
(2) \lambda'_1=-1+j,\ \lambda'_2=-1-j
解答 A行列の特性多項式は

\displaystyle{ {\rm det}(\lambda I_2-A)= {\rm det}\left[\begin{array}{cc} \lambda & -1 \\ 0 & \lambda \end{array}\right] =\lambda^2+\underbrace{0}_{a_1}\lambda+\underbrace{0}_{a_2} }

(1) 行列A-BFの特性多項式は

\displaystyle{ {\rm det}(\lambda I_2-A+BF)=(\lambda-(-1))(\lambda-(-2))= \lambda^2+\underbrace{3}_{a'_1}\lambda+\underbrace{2}_{a'_2} }

したがって,ゲイン行列Fは,つぎのように計算される。

\displaystyle{ F= \left[\begin{array}{cc} 2-0 & 3-0 \end{array}\right] \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right]^{-1} \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right]^{-1} =\left[\begin{array}{cc} 2 & 3 \end{array}\right] }

(2) 行列A-BFの特性多項式は

\displaystyle{ {\rm det}(\lambda I_2-A+BF)=(\lambda-(-1+j))(\lambda-(-1-j))= \lambda^2+\underbrace{2}_{a'_1}\lambda+\underbrace{2}_{a'_2} }

したがって,ゲイン行列Fは,つぎのように計算される。

\displaystyle{ F= \left[\begin{array}{cc} 2-0 & 2-0 \end{array}\right] \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right]^{-1} \left[\begin{array}{cc} 0 & 1 \\ 1 & -1 \end{array}\right]^{-1} =\left[\begin{array}{cc} 2 & 2 \end{array}\right] }

演習3.4 つぎの2次系に対する状態フィードバックu=-Fxを,閉ループ系のA行列の固有値が\lambda'_1=\lambda'_2=-1となるように求めよ。
(1) \underbrace{ \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \\ \end{array}\right] }_{\dot{x}(t)}= \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ 0 & -1 \end{array}\right] }_{A} \underbrace{ \left[\begin{array}{c} {x}_1(t) \\ {x}_2(t) \\ \end{array}\right] }_{{x}(t)}+ \underbrace{ \left[\begin{array}{c} 0 \\ 1 \end{array}\right] }_{B} u(t)

(2) \underbrace{ \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \\ \end{array}\right] }_{\dot{x}(t)}= \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ -1 & 0 \end{array}\right] }_{A} \underbrace{ \left[\begin{array}{c} {x}_1(t) \\ {x}_2(t) \\ \end{array}\right] }_{{x}(t)}+ \underbrace{ \left[\begin{array}{c} 0 \\ 1 \end{array}\right] }_{B} u(t)

最後に多入力をもつn次系に対して状態フィードバックのゲイン行列を求めることを考える。A-BFの固有値\lambda'_1,\cdots,\lambda'_nに対応する固有ベクトルをv_1,\cdots,v_nとするとき,次式が成り立つ。

\displaystyle{(3.10)\quad (A-BF)v_i=\lambda'_iv_i\quad (i=1,\cdots,n) }

ここで

\displaystyle{(3.11)\quad g_i=Fv_i\quad (i=1,\cdots,n) }

とおくと

\displaystyle{(3.12)\quad (A-\lambda'I_n)v_i=Bg_i\quad (i=1,\cdots,n) }

これから,Fを次式で求めることが考えられる。

\displaystyle{(3.13)\quad \begin{array}{lll} F&=& \left[\begin{array}{cccc} g_1 & \cdots & g_n \end{array}\right] \nonumber\\ &\times& \left[\begin{array}{cccc} (A-\lambda_1'I_n)^{-1}Bg_1 &\cdots & (A-\lambda_n'I_n)^{-1}Bg_n \end{array}\right]^{-1} \end{array} }

ただし,\lambda'_1,\cdots,\lambda'_nAの固有値に等しくないとし,m次元ベクトルg_1,\cdots,g_nは,上の逆行列が存在する範囲で適切に指定するものとする。これから,多入力系の場合,状態フィードバックは,固有値を指定しただけでは,一意に定まらないことがわかる。

例題3.4 2入力2次系

\displaystyle{ \underbrace{ \left[\begin{array}{c} \dot{x}_1(t) \\ \dot{x}_2(t) \\ \end{array}\right] }_{\dot{x}(t)}= \underbrace{ \left[\begin{array}{cc} 0 & 0 \\ 0 & -1 \end{array}\right] }_{A} \underbrace{ \left[\begin{array}{c} {x}_1(t) \\ {x}_2(t) \\ \end{array}\right] }_{{x}(t)}+ \underbrace{ \left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right] }_{B} u(t) }

に対するつぎの状態フィードバックによる閉ループ系おける行列A-BFの固有値を求めよ。

(1) u(t)=- \underbrace{ \left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right] }_{F} \underbrace{ \left[\begin{array}{c} {x}_1(t) \\ {x}_2(t) \\ \end{array}\right] }_{{x}(t)}

(2) u(t)=- \underbrace{ \left[\begin{array}{cc} 1 & 0 \\ 1 & -2 \end{array}\right] }_{F} \underbrace{ \left[\begin{array}{c} {x}_1(t) \\ {x}_2(t) \\ \end{array}\right] }_{{x}(t)}
解答
(1) 閉ループ系における行列A-BF

A-BF=\left[\begin{array}{cc} 0 & 0 \\ 0 & -1 \end{array}\right] - \left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right] \left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right] = \left[\begin{array}{cc} -2 & 0 \\ 0 & -3 \end{array}\right]

この特性多項式は

{\rm det}( \lambda I_2- \left[\begin{array}{cc} -2 & 0 \\ 0 & -3 \end{array}\right] ) ={\rm det} \left[\begin{array}{cc} \lambda+2 & 0 \\ 0 & \lambda+3 \end{array}\right]=(\lambda+2)(\lambda+3)

したがって,行列A-BFの固有値は,-2,-3

(2) 閉ループ系のA行列は

A-BF=\left[\begin{array}{cc} 0 & 0 \\ 0 & -1 \end{array}\right] - \left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right] \left[\begin{array}{cc} 1 & 0 \\ 1 & -2 \end{array}\right] = \left[\begin{array}{cc} -2 & 2 \\ 0 & -3 \end{array}\right]

この特性多項式は

{\rm det}( \lambda I_2- \left[\begin{array}{cc} -2 & 2 \\ 0 & -3 \end{array}\right] ) ={\rm det} \left[\begin{array}{cc} \lambda+2 & -2 \\ 0 & \lambda+3 \end{array}\right]=(\lambda+2)(\lambda+3)

したがって,行列A-BFの固有値は,-2,-3

演習3.5 例題3.4の2つの状態フィードバックは,公式(3.13})において

(1) \left[\begin{array}{cc} g_1 & g_2 \end{array}\right]= \left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \\ \end{array}\right]

(2) \left[\begin{array}{cc} g_1 & g_2 \end{array}\right]= \left[\begin{array}{cc} 1 & 1 \\ 1 & 2 \\ \end{array}\right]

と指定して得られることを,MATLABを用いて確かめよ。

3.2 可制御性と可安定性

どのようなn次系に対しても,閉ループ系を安定化をする状態フィードバックが求まるわけではない。その条件を可安定性という。また,(3.6})は,可安定性の十分条件である可制御性の条件として知られている。これらの定義と等価な条件をまとめておく(テキスト「線形システム制御入門」の 定理3.5,定理3.6参照)。

【可安定性の定義とその等価な条件】
定義S0: 状態フィードバックにより安定化可能
条件S1: {\rm rank}\, \left[\begin{array}{cc} B & A-\lambda I_n \end{array}\right] =n (\lambdaAのすべての不安定固有値)
条件S2: B^Tw=0,\ A^Tw=\lambda w \Rightarrow w=0 (\lambdaAのすべての不安定固有値)

これらの条件の一つが成り立つときn次系は可制御,(A,B)は可制御対という。

【可制御性の定義とその等価な条件】
定義C0: 任意初期状態を,任意有限時間内に,任意状態に移動可能
条件C1: \displaystyle{\int_0^t \exp(A\tau)BB^T\exp(A^T\tau)\,d\tau>0 \quad (\forall t>0)}
条件C2: {\rm rank}\, \underbrace{ \left[\begin{array}{cccc} B & AB & \cdots & A^{n-1}B \end{array}\right] }_{controllability\ matrix} =n
条件C3: Fを選んで,A-BFの固有値を任意に設定可能
条件C4: {\rm rank}\, \left[\begin{array}{cc} B & A-\lambda I_n \end{array}\right] =n (\lambdaAのすべての固有値)
条件C5: B^Tw=0,\ A^Tw=\lambda w \Rightarrow w=0 (\lambdaAのすべての固有値)

これらの条件の一つが成り立つときn次系は可制御,(A,B)は可制御対という。

例題3.5 つぎのA行列とB行列をもつ2次系\dot{x}(t)=Ax(t)+Bu(t)の可制御性を,可制御性行列の階数を求めて判定せよ。

(1) A= \left[\begin{array}{cc} 0 & 1 \\ 0 & 0 \end{array}\right] ,\ B= \left[\begin{array}{c} 0 \\ 1 \end{array}\right]

(2) A= \left[\begin{array}{cc} 0 & 1 \\ 0 & 0 \end{array}\right] ,\ B= \left[\begin{array}{c} 1 \\ 0 \end{array}\right]

(3) A= \left[\begin{array}{cc} 0 & 1 \\ 0 & -1 \end{array}\right] ,\ B= \left[\begin{array}{c} 0 \\ 1 \end{array}\right]

解答
(1) 可制御性行列は,\left[\begin{array}{cc} B & AB \end{array}\right]= \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right]である。この階数は2で,システムの次数2と等しい。したがって,この2次系は可制御である。

(2) 可制御性行列は,\left[\begin{array}{cc} B & AB \end{array}\right]= \left[\begin{array}{cc} 1 & 0 \\ 0 & 0 \end{array}\right]である。この階数は1で,システムの次数2と等しくない。したがって,この2次系は可制御でない。

(3) 可制御性行列は,\left[\begin{array}{cc} B & AB \end{array}\right]= \left[\begin{array}{cc} 0 & 1 \\ 1 & -1 \end{array}\right]である。この階数は2で,システムの次数2と等しい。したがって,この2次系は可制御である。

演習3.6 つぎのA行列とB行列をもつ3次系\dot{x}(t)=Ax(t)+Bu(t)の可制御性を,可制御性行列の階数を求めて判定せよ。

(1) A= \left[\begin{array}{ccc} 0 & 1 & 0 \\ 0 & -1 & 1 \\ 0 & 0 & -1 \end{array}\right] ,\ B= \left[\begin{array}{c} 0 \\ 1 \\ 0 \end{array}\right]

(2) A= \left[\begin{array}{ccc} 0 & 1 & 0 \\ -1 & -1 & 0 \\ 0 & 0 & 2 \end{array}\right] ,\ B= \left[\begin{array}{cc} 0 & 0 \\ 1 & -1 \\ 0 & 1 \end{array}\right]

MATLABを用いて可制御性を判定するには,たとえば例題3.5(3)のA行列とB行列に対しては,つぎのコマンドを与えればよい(tolは零判定基準でデータの誤差を考慮して決める。省略すればデフォルト値が用いられる。)。

%controllability_check.m
A=[0 1;0 -1]; B=[0;1]; n=size(A,1); r=eig(A), tol=0.01;
for i=1:n, rank([B A-r(i)*eye(n)],tol)==n, end

ここで,4行目の結果がすべて真であれば,可制御である。

演習3.7 上のコマンドを用いて演習3.6のA行列とB行列をもつ3次系\dot{x}(t)=Ax(t)+Bu(t)の可制御性を判定せよ。

例題3.6 例題3.5のA行列とB行列をもつ2次系\dot{x}(t)=Ax(t)+Bu(t)の可安定性を判定せよ。
解答
(1) A行列の固有値は\lambda_1=\lambda_2=0。ともに不安定固有値。

{\rm rank} \left[\begin{array}{cc} B & A-\lambda_i I_2 \end{array}\right]= {\rm rank} \left[\begin{array}{ccc} 0 & 0 & 1 \\ 1 & 0 & 0 \end{array}\right]= 2\ \ (i=1,2)

したがって,この2次系は可安定である。

(2) A行列の固有値は\lambda_1=\lambda_2=0。ともに不安定固有値。

{\rm rank} \left[\begin{array}{cc} B & A-\lambda_i I_2 \end{array}\right]= {\rm rank} \left[\begin{array}{ccc} 1 & 0 & 1 \\ 0 & 0 & 0 \end{array}\right]= 1\ \ (i=1,2)

したがって,この2次系は可安定ではない。

(3) A行列の固有値は\lambda_1=0,\ \lambda_2=-1\lambda_1のみ不安定固有値。

{\rm rank} \left[\begin{array}{cc} B & A-\lambda_1 I_2 \end{array}\right]= {\rm rank} \left[\begin{array}{ccc} 0 & 0 & 1 \\ 1 & 0 & -1 \end{array}\right]= 2

したがって,この2次系は可安定である。

演習3.8 演習3.6のA行列とB行列をもつ3次系\dot{x}(t)=Ax(t)+Bu(t)の可安定性を判定せよ。

MATLABを用いて可安定性を判定するには,たとえば例題3.5(3)のA行列とB行列に対しては,つぎのコマンドを与えればよい。

%stabilizability_check.m
A=[0 1;0 -1]; B=[0;1]; n=size(A,1); r=eig(A), tol=0.01;
for i=1:n
if real(r(i))>=0, rank([B A-r(i)*eye(n)],tol)==n, end
end

演習3.9 上のコマンドを用いて演習3.6のA行列とB行列をもつ3次系\dot{x}(t)=Ax(t)+Bu(t)の可安定性を判定せよ。

演習問題の解答

演習3.1 T=1,K=1T'=1/10,K'=1より,f=\frac{1}{1}(\frac{1}{1/0.1}-\frac{1}{1})=9g=\frac{1}{1}\frac{1}{0.1}=10

演習3.2 たとえば,つぎのMファイルを実行すればよい。

%sf1.m
T1=1; K1=1; a1=-1/T1; b1=K1/T1; sys1=ss(a1,b1,1,0);
t=0:0.1:5; step(sys1,t); x=ginput(1); T2=x(1); K2=x(2);
f=T1/K1*(1/T2-1/T1); g=T1/K1*K2/T2;
a2=a1-b1*f; b2=b1*g; sys2=ss(a2,b2,1,0);
hold on, step(sys2,t)

演習3.3 たとえば,つぎのMファイルを実行すればよい。

%sf2.m
w1=1; z1=0.01; A1=[0 1;-w1^2 -2*z1*w1],; B1=[0;w1^2]; C=[1 0];
sys1=ss(A1,B1,C,0);
t=0:0.05:10; step(sys1,t); x=ginput(1); Tp=x(1); p0=x(2)-1;
w2=sqrt(log(p0)^2+pi^2)/Tp; z2=sqrt(log(p0)^2/(log(p0)^2+pi^2));
Kp=(w2^2-w1^2)/w1^2, Kd=(2/w1^2)*(z2*w2-z1*w1)
F=[Kp Kd]; G=w2^2/w1^2;
A2=A1-B1*F; B2=B1*G; sys2=ss(A2,B2,C,0);
hold on, step(sys2,t)

演習3.4 行列A-BFの特性多項式は

{\rm det}(\lambda I_2-A+BF)=(\lambda-(-1))^2= \lambda^2+\underbrace{2}_{a'_1}\lambda+\underbrace{1}_{a'_2}

(1) A行列の特性多項式は
{\rm det}(\lambda I_2-A)= {\rm det}\left[\begin{array}{cc} \lambda & -1 \\ 0 & \lambda+1 \end{array}\right] =\lambda(\lambda+1) =\lambda^2+\underbrace{1}_{a_1}\lambda+\underbrace{0}_{a_2}

したがって,ゲイン行列Fは,つぎのように計算される。

F= \left[\begin{array}{cc} 1-0 & 2-1 \end{array}\right] \left[\begin{array}{cc} 1 & 1 \\ 1 & 0 \end{array}\right]^{-1} \left[\begin{array}{cc} 0 & 1 \\ 1 & -1 \end{array}\right]^{-1} =\left[\begin{array}{cc} 1 & 1 \end{array}\right]

(2) A行列の特性多項式は

{\rm det}(\lambda I_2-A)= {\rm det}\left[\begin{array}{cc} \lambda & -1 \\ 1 & \lambda \end{array}\right] =\lambda^2+1 =\lambda^2+\underbrace{0}_{a_1}\lambda+\underbrace{1}_{a_2}

したがって,ゲイン行列Fは,つぎのように計算される。

F= \left[\begin{array}{cc} 1-1 & 2-0 \end{array}\right] \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right]^{-1} \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right]^{-1} =\left[\begin{array}{cc} 0 & 2 \end{array}\right]

演習3.5 たとえば,つぎのMファイルを実行すればよい。

%sf_minputs.m
A=[0 0;0 -1]; B=[1 1;1 -1]; r1=-2; r2=-3;
disp(‘(1)’), X1=[1 1;1 -1];
V1=[((A-r1*eye(2))\B)*X1(:,1) ((A-r2*eye(2))\B)*X1(:,2)];
F1=X1/V1, AF1=A-B*F1, ev1=eig(AF1)
disp(‘(2)’), X2=[1 1;1 2];
V2=[((A-r1*eye(2))\B)*X2(:,1) ((A-r2*eye(2))\B)*X2(:,2)];
F2=X2/V2, AF2=A-B*F2, ev2=eig(AF2)

演習3.6

(1) 可制御性行列は,
\left[\begin{array}{ccc} B & AB & A^2B \end{array}\right]= \left[\begin{array}{ccc} 0 & 1 & -1 \\ 1 & -1 & 1 \\ 0 & 0 & 0 \end{array}\right]。この階数は2で,システムの次数3より小さい。したがって,この3次系は不可制御である。

(2) 可制御性行列は,
\left[\begin{array}{ccc} B & AB & A^2B \end{array}\right]= \left[\begin{array}{cccccc} 0 & 0 & 1 &-1 &-1 & 1\\ 1 &-1 &-1 & 1 & 0 & 0\\ 0 & 1 & 0 & 2 & 0 & 4 \end{array}\right]。この階数は3で,システムの次数3と等しい。
したがって,この3次系は可制御である。

演習3.7 Mファイル{\tt controllability\_check.m}のデータ{\tt A,B}の定義を次のように書き換える。

(1) A=[0 1 0;0 -1 1;0 0 -1]; B=[0;1;0];
(2) A=[0 1 0;-1 -1 0;0 0 2]; B=[0 0;1 -1;0 1];

演習3.8
(1) A行列の固有値は\lambda_1=0,\lambda_2=\lambda_3=-1\lambda_1のみ不安定固有値。

{\rm rank} \left[\begin{array}{cc} B & A-\lambda_1 I_3 \end{array}\right]= {\rm rank} \left[\begin{array}{cccc} 0 & 0 & 1 & 0 \\ 1 & 0 & -1 & 1 \\ 0 & 0 & 0 & -1 \end{array}\right]= 3

したがって,この3次系は可安定である。

(2) A行列の固有値は\lambda_1,\lambda_2=(-1\pm j\sqrt{3})/2,\ \lambda_3=2\lambda_3のみ不安定固有値。\\

{\rm rank} \left[\begin{array}{cc} B & A-\lambda_3 I_3 \end{array}\right]= {\rm rank} \left[\begin{array}{ccccc} 0 & 0 & -2 & 1 & 0 \\ 1 & -1 & 0 & -2 & 1 \\ 0 & 1 & 0 & 0 & -2 \end{array}\right]= 3

したがって,この3次系は可安定である。

演習3.9 Mファイル{\tt stabilizability\_check.m}のデータ{\tt A,B}の定義を,次のように書き換える。

(1) A=[0 1 0;0 -1 1;0 0 -1]; B=[0;1;0];
(2) A=[0 1 0;-1 -1 0;0 0 2]; B=[0 0;1 -1;0 1];