4 状態オブザーバと可観測性

【本章のねらい】
・ 状態オブザーバを構成する。
・ 可観測性と可検出性を判定する。

4.1 状態オブザーバ

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

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

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

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

を考えた。しかしながら,現実には状態変数をすべて計測できる場合は少ない。したがって,状態フィードバックは実際には実施できるとは限らない。そこで,状態オブザーバとよばれるn次系

\displaystyle{(4.3)\quad \dot{\hat{x}}(t)=(A-HC)\hat{x}(t)+Hy(t)+Bu(t) }

が考案されている。ここで,サイズn\times pの行列Hが設計パラメータである。このブロック線図をつぎに示す。

実際,(4.3)から(4.1)の第1式を辺々引き算すると

\displaystyle{(4.4)\quad \underbrace{\dot{\hat{x}}(t)-\dot{x}(t)}_{\dot{e}(t)}=(A-HC)\underbrace{(\hat{x}(t)-x(t))}_{e(t)} }

ここで,行列A-HCが安定行列であれば

\displaystyle{(4.5)\quad for\ any\ e(0)\ne0,\ e(t)\rightarrow 0\quad(t\rightarrow\infty) }

となって,n次系(4.3)の状態\hat{x}(t)n次系(4.1)の状態{x}(t)に漸近していく。したがって,行列A-HCが安定行列となるように状態オブザーバのゲイン行列Hをどう求めるか問題となる。

一つのアプローチは,つぎの仮想的なn次系

\displaystyle{(4.6)\quad \dot{w}(t)=A^Tw(t)+C^Tv(t) }

を安定化する状態フィードバック

\displaystyle{(4.7)\quad v(t)=-H^Tw(t) }

を求めることである。実際,閉ループ系は

\displaystyle{(4.8)\quad \dot{w}(t)=(A^T-C^TH^T)w(t)=(A-HC)^Tw(t) }

となって,行列(A-HC)^Tを安定行列,よって行列A-HCを安定行列とすることができる。

したがって,前章の状態フィードバックの設計法をそのまま援用できるが,実際には次章のLQG制御問題として解く場合が多い。

例題4.1 2次系

\displaystyle{ \left\{\begin{array}{l} \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}{cc} 0 \\ 1 \end{array}\right] }_{B} u(t)\\ y(t)= \underbrace{ \left[\begin{array}{cc} 1 & 0 \end{array}\right] }_{C} \underbrace{ \left[\begin{array}{c} {x}_1(t) \\ {x}_2(t) \\ \end{array}\right] }_{x(t)} \end{array}\right. }

に対する状態オブザーバ\dot{\hat{x}}(t)=(A-HC)\hat{x}(t)+Hy(t)+Bu(t)を,行列A-HCの固有値が-1,-2となるように構成せよ。
解答 行列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} }

行列A-HCの特性多項式は

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

これらから,オブザーバゲインHは,つぎのように計算される。

\displaystyle{ H^T= \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} 1 & 0 \\ 0 & 1 \end{array}\right]^{-1} =\left[\begin{array}{cc} 3 & 2 \end{array}\right] }

したがって,求める状態オブザーバ\dot{\hat{x}}=(A-HC)\hat{x}+Hx+Bu

\displaystyle{ \left[\begin{array}{c} \dot{\hat{x}}_1 \\ \dot{\hat{x}}_2 \end{array}\right] = ( \left[\begin{array}{cc} 0 & 1 \\ 0 & 0 \end{array}\right]- \left[\begin{array}{c} 3 \\ 2 \end{array}\right] \left[\begin{array}{cc} 1 & 0 \end{array}\right] ) \left[\begin{array}{c} \hat{x}_1 \\ \hat{x}_2 \end{array}\right] + \left[\begin{array}{c} 3 \\ 2 \end{array}\right] y + \left[\begin{array}{c} 0 \\ 1 \end{array}\right] u }

\displaystyle{ = \left[\begin{array}{cc} -3 & 1 \\ -2 & 0 \end{array}\right] \left[\begin{array}{c} \hat{x}_1 \\ \hat{x}_2 \end{array}\right] + \left[\begin{array}{c} 3 \\ 2 \end{array}\right] y + \left[\begin{array}{c} 0 \\ 1 \end{array}\right] u }

演習4.1 2次系

\displaystyle{ \left\{\begin{array}{l} \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}{cc} 0 \\ 1 \end{array}\right] }_{B} u(t)\\ y(t)= \underbrace{ \left[\begin{array}{cc} 1 & 1 \end{array}\right] }_{C} \underbrace{ \left[\begin{array}{c} {x}_1(t) \\ {x}_2(t) \\ \end{array}\right] }_{x(t)} \end{array}\right. }

に対する状態オブザーバ\dot{\hat{x}}(t)=(A-HC)\hat{x}(t)+Hy(t)+Bu(t)を,行列A-HCの固有値が-2,-2となるように構成せよ。

例題4.2 例題4.1において,x_1(0)=1,x_2(0)=0.5のときの零入力応答x(t)を,状態オブザーバの出力\hat{x}(t)=x(t)+e(t)が追従する様子をMATLABでシミュレーションせよ。
解答 x(t)=\exp(At)x(0)\hat{x}(t)=x(t)+\exp((A-HC)t)(\hat{x}(0)-x(0))を重ねて描くためのMファイルは,たとえばつぎのように書ける。

%obs_err.m
A=[0 1;0 0]; C=[1 0]; H=[3;2];
sys1=ss(A,zeros(2,1),eye(2,2),0); x0=[1;0.5];
sys2=ss(A-H*C,zeros(2,1),eye(2,2),0); xh0=[0;0];
t=0:0.1:5; x=initial(sys1,x0,t); e=initial(sys2,xh0-x0,t); xh=x+e;
figure(1),subplot(121),plot(t,x(:,1),t,xh(:,1)),axis([0 5 0 4]),grid
figure(1),subplot(122),plot(t,x(:,2),t,xh(:,2)),axis([0 5 0 2]),grid

演習4.2 演習4.1において,x_1(0)=1,x_2(0)=0.5のときの零入力応答x(t)を,状態オブザーバの出力\hat{x}(t)=x(t)+e(t)が追従する様子をMATLABでシミュレーションせよ。

さて,n次系(4.1)に対する状態フィードバック(4.2)を,状態オブザーバ(4.3)の出力(=状態)を用いて

\displaystyle{(4.9)\quad u(t)=-F\hat{x}(t) }

のように実施するとき,オブザーバベースト・コントローラn次系

\displaystyle{(4.10)\quad \left\{\begin{array}{l} \dot{\hat{x}}(t)=(A-HC-BF)\hat{x}(t)+Hy(t) \\ u(t)=-F\hat{x}(t) \end{array}\right. }

となる。このとき,閉ループ系はつぎのように表される(e(t)={\hat x}(t)-x(t))。

\displaystyle{(4.11)\quad \left[\begin{array}{c} \dot{x}(t) \\ \dot{e}(t) \end{array}\right]= \left[\begin{array}{ccc} A-BF & -BF \\ 0 & A-HC \end{array}\right] \left[\begin{array}{c} x(t) \\ e(t) \end{array}\right] }

このように閉ループ系のA行列の固有値の集合は,状態フィードバックによるA-BFの固有値の集合と状態オブザーバによるA-HCの固有値の集合の和となる(テキスト「線形システム制御入門」の 4.4節参照)。

例題4.3 1次系

\displaystyle{ \left\{\begin{array}{l} \dot{x}(t)=ax(t)+bu(t) \\ y(t)=cx(t) \end{array}\right. }

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

\displaystyle{ u(t)=-fx(t) }

と,状態オブザーバ

\displaystyle{ \dot{\hat{x}}(t)=(a-hc)\hat{x}(t)+hy(t)+bu(t)\quad(a-hc<0) }

を考える。このときオブザーバベースト・コントローラ

\displaystyle{ \left\{\begin{array}{l} \dot{\hat{x}}(t)=(a-hc-bf)\hat{x}(t)+hy(t) \\ u(t)=-f\hat{x}(t) \end{array}\right. }

による閉ループ系のA行列の固有値を求めよ。
解答 オブザーバベースト・コントローラによる閉ループ系は

\displaystyle{ \left\{\begin{array}{l} \dot{x}(t)=ax(t)-bf\hat{x} (t)\\ \dot{\hat{x}}(t)=hcx(t)+(a-hc)\hat{x}(t)-bf\hat{x}(t) \end{array}\right. }

すなわち

\displaystyle{ \left[\begin{array}{c} \dot{x}(t)\\ \dot{\hat{x}}(t) \end{array}\right] = \underbrace{ \left[\begin{array}{cc} a & -bf \\ hc & a-hc-bf \end{array}\right] }_{A_F} \left[\begin{array}{c} {x}(t)\\ {\hat{x}}(t) \end{array}\right] }

で表される。この行列A_Fの固有値を求めると

\displaystyle{ \begin{array}{lll} &&{\rm det}(\lambda I_2-A_F) ={\rm det} \left[\begin{array}{cc} \lambda-a & bf \\ -hc & \lambda-a+hc+bf \end{array}\right]\\ &&=(\lambda-a)(\lambda-a+hc+bf)+bfhc\\ &&=\lambda^2-(a-bf+a-hc)\lambda+(a-bf)(a-hc)\\ &&=(\lambda-(a-bf))(\lambda-(a-hc))=0 \end{array} }

より,a-bfa-hcとなる。

演習4.2 例題4.3において,a=-1,b=1,c=,f=4,x(0)=1のとき,状態フィードバックによる閉ループ系とオブザーバベースト・コントローラによる閉ループ系の応答を比較したい。h=2h=9の場合について,それらの応答をMATLABでシミュレーションせよ。

4.2 可観測性と可検出性

どのようなn次系に対しても状態オブザーバが求まるわけではない。状態オブザーバが構成可能な条件を可検出性という。また,可検出性の十分条件である可観測性の条件も知られている。これらの定義と等価な条件をまとめてお(テキスト「線形システム制御入門」の 定理4.1,定理4.2参照)。

【可検出性の定義とその等価な条件】

定義D0: 状態オブザーバを構成可能
条件D1: {\rm rank}\, \left[\begin{array}{c} C \\ A-\lambda I_n \end{array}\right]=n (\lambdaAのすべての不安定固有値)
条件D2: Cv=0,\ Av=\lambda v \Rightarrow v=0 (\lambdaAのすべての不安定固有値)

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

【可観測性の定義とその等価な条件】

定義O0: 任意有限時間の入力と出力から,初期状態を一意に決定可能
条件O1: \displaystyle{\int_0^t \exp(A^T\tau)C^TC\exp(A\tau)\,d\tau>0 \quad (\forall t>0)}
条件O2: {\rm rank}\, \underbrace{ \left[\begin{array}{c} C \\ CA \\ \vdots\\ CA^{n-1} \end{array}\right] }_{observability\ matrix} =n
条件O3: Hを選ぶことにより,A-HCの固有値を任意に設定可能
条件O4: {\rm rank} \left[\begin{array}{c} C \\ A-\lambda I_n \end{array}\right]=n (\lambdaAのすべての固有値)
条件O5: Cv=0,\ Av=\lambda v \Rightarrow v=0 (\lambdaAのすべての固有値)
条件O6: (A^T,C^T)は可制御対

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

例題4.4 つぎのA行列とC行列をもつ2次系\dot{x}(t)=Ax(t)+Bu(t),y(t)=Cx(t)の可観測性を,可観測性行列の階数を求めて判定せよ。

\displaystyle{ (1)\quad A= \left[\begin{array}{cc} 0 & 1 \\ 0 & 0 \end{array}\right] ,\ C= \left[\begin{array}{cc} 1 & 0 \end{array}\right] }

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

\displaystyle{ (3)\quad A= \left[\begin{array}{cc} 0 & 1 \\ 0 & -1 \end{array}\right] ,\ C= \left[\begin{array}{cc} 1 & 1 \end{array}\right] }
解答
(1) 可観測性行列は,\left[\begin{array}{c} C \\ CA \end{array}\right]= \left[\begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array}\right]。この階数は2で,システムの次数2と等しい。したがって,この2次系は可観測である。

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

(3) 可観測性行列は,\left[\begin{array}{c} C \\ CA \end{array}\right]= \left[\begin{array}{cc} 1 & 1 \\ 0 & 0 \end{array}\right]。この階数は1で,システムの次数2と等しくない。したがって,この2次系は可観測でない。

演習4.4 例題4.4における可観測性の判定を,A行列の固有値に基づいて行なえ。

4.3 状態オブザーバの低次元化

これまで,状態オブザーバの出力\hat{x}に状態フィードバックのゲイン行列Fをかけてオブザーバベースト・コントローラを構成した。しかしながら,最終的に必要なのは,状態xの推定値ではなく,その線形関数u=Kx=-Fxの推定値であることから,線形関数オブザーバ

\displaystyle{(4.12)\quad \left\{\begin{array}{l} \dot{\hat{x}}(t)=\hat{A}\hat{x}(t)+\hat{B}y(t)+\hat{J}u(t)\\ z(t)=\hat{C}\hat{x}(t)+\hat{D}u(t) \end{array}\right. }

が考案されている。ここで,サイズq\times nの適当な行列Uを用いて

\displaystyle{(4.13)\quad \left\{\begin{array}{l} \hat{A}:\ stable\ matrix\\ UA=\hat{A}U+\hat{B}C\\ UB=\hat{J}\\ K=\hat{C}U+\hat{D}C \end{array}\right. }

を満足させることができれば

\displaystyle{(4.14)\quad \underbrace{\dot{\hat{x}}(t)-U\dot{x}(t)}_{\dot{e}(t)}=\hat{A}\underbrace{(\hat{x}(t)-Ux(t))}_{e(t)} }

が成り立ち,これから

\displaystyle{(4.15)\quad \hat{x}(t)\rightarrow U\hat{x}(t)\quad(t\rightarrow\infty) }

したがって

\displaystyle{(4.16)\quad z(t)\rightarrow u(t)=K\hat{x}(t)\quad(t\rightarrow\infty) }

を得る(テキスト「線形システム制御入門」の 4.3節参照)。特に,K=I_nの場合は恒等関数オブザーバと呼ばれる。線形関数オブザーバを使用する利点は,状態オブザーバ(4.3)の次元数は制御対象の次元数nと同じであったが,これを減らすことができる点である(たとえば,倒立振子の次元数は4,出力数は2なので,状態オブザーバを用いた場合は4次元であるが,恒等関数オブザーバを用いれば2次元に,線形関数オブザーバを用いれば1次元に減らすことができる。)。

例題4.5 1入力p出力2p次系

\displaystyle{ \left\{\begin{array}{l} \underbrace{ \left[\begin{array}{c} \dot{y}(t) \\ \ddot{y}(t) \end{array}\right] }_{\dot{x}(t)} = \underbrace{ \left[\begin{array}{cc} 0 & I_p \\ A_{21} & A_{22} \end{array}\right] }_A \underbrace{ \left[\begin{array}{c} y(t) \\ \dot{y}(t) \end{array}\right] }_{x(t)} + \underbrace{ \left[\begin{array}{cc} 0 \\ B_2 \end{array}\right] }_B u(t) \\ y(t)= \underbrace{ \left[\begin{array}{cc} I_p & 0 \end{array}\right] }_C \underbrace{ \left[\begin{array}{c} y(t) \\ \dot{y}(t) \end{array}\right] }_{x(t)} \end{array}\right. }

に対して,p次元の恒等関数オブザーバの一つは次式で与えられることを示せ。

\displaystyle{ \left\{\begin{array}{l} \dot{\hat{x}}(t)= \underbrace{(A_{22}-L)}_{\hat{A}}\hat{x}(t) +\underbrace{(A_{21}+(A_{22}-L)L)}_{\hat{B}}y(t) +\underbrace{B_{2}}_{\hat{J}}u(t)\\ z(t)= \underbrace{ \left[\begin{array}{c} 0 \\ I_p \end{array}\right] }_{\hat{C}} \hat{x}(t) + \underbrace{ \left[\begin{array}{c} I_p \\ L \end{array}\right] }_{\hat{D}} y(t) \end{array}\right. }

ここで,L\hat{A}を安定行列とするサイズp\times pの適当な行列である。
解答 恒等関数オブザーバの場合はK=I_{2p}であり,条件(??)の第2式と第4式が満足されることを示せばよい。実際,

\displaystyle{ U= \left[\begin{array}{cc} -L & I_p \end{array}\right] }

と選べば,次式が成り立つ。

\displaystyle{ \underbrace{ \left[\begin{array}{cc} A_{21} & A_{22}-L \\ I_p & 0\\ 0 & I_p \end{array}\right] }_{ \left[\begin{array}{cc} UA \\ I_{2p} \end{array}\right]} = \underbrace{ \left[\begin{array}{cc} A_{22}-L & A_{21}+(A_{22}-L)L\\ 0 & I_p\\ I_p & L \end{array}\right] }_{ \left[\begin{array}{cc} \hat{A} & \hat{B} \\ \hat{C} & \hat{D} \end{array}\right]} \underbrace{ \left[\begin{array}{cc} -L & I_p \\ I_p & 0 \end{array}\right] }_{ \left[\begin{array}{cc} U \\ C \end{array}\right]} }

演習4.5 例題4.1の2次系に対する恒等関数オブザーバを,その固有値が\lambda=-2となるように求めよ。この恒等オブザーバに対して例題4.2と同様のシミュレーションを行え。

例題4.6 例題4.5の1入力p出力2p次系に対して,線形関数

\displaystyle{ u(t)= \underbrace{ \left[\begin{array}{cc} K_1 & K_2 \end{array}\right] }_K \underbrace{ \left[\begin{array}{c} y(t) \\ \dot{y}(t) \end{array}\right] }_{x(t)} }

を推定する線形関数オブザーバの一つは,つぎに(p+1)入力1出力{\bf 1次系}として与えられることを示せ。

\displaystyle{(4.12)\quad \left\{\begin{array}{l} \dot{\hat{x}}(t)=\underbrace{\lambda}_{\widehat A} \hat{x}(t)+\underbrace{K_2(A_{21}+\lambda L)}_{\widehat B}y(t) +\underbrace{K_2B_2}_{\widehat J}u(t)\\ z(t)=\hat{x}(t)+\underbrace{(K_1+K_2L)}_{\widehat D}y(t) \end{array}\right. }

ただし,L=A_{22}-\lambda I_pと定める。
解答 条件(4.13)の第2式と第4式が満足されることを示せばよい。実際,

\displaystyle{ U=K_2 \left[\begin{array}{cc} -L & I_p \end{array}\right] }

と選べば,次式が成り立つ。

\displaystyle{ \underbrace{ \left[\begin{array}{cc} K_2A_{21} & K_2(A_{22}-L) \\ K_1 & K_2 \end{array}\right] }_{ \left[\begin{array}{cc} UA \\ K \end{array}\right]} = \underbrace{ \left[\begin{array}{cc} \lambda & K_2(A_{21}+\lambda L) \\ 1 & K_1+K_2L \end{array}\right] }_{ \left[\begin{array}{cc} \hat{A} & \hat{B} \\ \hat{C} & \hat{D} \end{array}\right]} \underbrace{ \left[\begin{array}{cc} -K_2L & K_2 \\ I_p & 0 \end{array}\right] }_{ \left[\begin{array}{cc} U \\ C \end{array}\right]} }

演習4.6 例題4.1の2次系に対して,状態フィードバックu(t)=-y(t)-2\dot{y}(t)を考える。このとき,この状態フィードバックを実施する1次元線形関数オブザーバを,その固有値が\lambda=-2となるように求めよ。また,その出力がu(t)を追跡するシミュレーションを行え。

演習問題の解答

【演習4.1】 行列Aの特性多項式は

{\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}

行列A-HCの特性多項式は

{\rm det}(\lambda I_2-A+HC)=(\lambda-(-2))^2= \lambda^2+\underbrace{4}_{a'_1}\lambda+\underbrace{4}_{a'_2}\\
これらから,オブザーバゲインHは,つぎのように計算される。\\
\hspace{5mm}
H^T= \left[\begin{array}{cc} 4-0 & 4-0 \end{array}\right] \left[\begin{array}{cc} 0 & 1 \\ 1 & 0 \end{array}\right]^{-1} \left[\begin{array}{cc} 1 & 0 \\ 1 & 1 \end{array}\right]^{-1} =\left[\begin{array}{cc} 0 & 4 \end{array}\right]

したがって,求める状態オブザーバ\dot{\hat{x}}=(A-HC)\hat{x}+Hx+Bu

\left[\begin{array}{c} \dot{\hat{x}}_1 \\ \dot{\hat{x}}_2 \end{array}\right] = \left[\begin{array}{cc} 0 & 1 \\ -4 & -4 \end{array}\right] \left[\begin{array}{c} \hat{x}_1 \\ \hat{x}_2 \end{array}\right] + \left[\begin{array}{c} 0 \\ 4 \end{array}\right] y + \left[\begin{array}{c} 0 \\ 1 \end{array}\right] u

【演習4.2】

%obs_err2.m
A=[0 1;0 0]; C=[1 1]; H=[0;4];
sys1=ss(A,zeros(2,1),eye(2,2),0); x0=[1;0.5];
sys2=ss(A-H*C,zeros(2,1),eye(2,2),0); xh0=[0;0];
t=0:0.1:5; x=initial(sys1,x0,t); e=initial(sys2,xh0-x0,t); xh=x+e;
figure(2),subplot(121),plot(t,x(:,1),t,xh(:,1)),axis([0 5 0 4]),grid
figure(2),subplot(122),plot(t,x(:,2),t,xh(:,2)),axis([0 5 0 2]),grid

【演習4.3】

%observer_based_controller.m
a=-1; b=1; c=1; f=4; sys=ss(a-b*f,b,c,0);
h1=9; A1=[a-b*f -b*f;0 a-h1*c]; sys1=ss(A1,zeros(2,1),[1 0],0);
h2=2; A2=[a-b*f -b*f;0 a-h2*c]; sys2=ss(A2,zeros(2,1),[1 0],0);
t=0:0.1:3; x0=1; xh0=0; X0=[x0; xh0-x0];
y=initial(sys,x0,t); y1=initial(sys1,X0,t); y2=initial(sys2,X0,t);
figure(3),plot(t,y,t,y1,t,y2),grid
legend(‘h=0′,’h=9′,’h=2’)

【演習4.4】
(1) A行列の固有値は\lambda_1=\lambda_2=0

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

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

(2) A行列の固有値は\lambda_1=\lambda_2=0

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

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

(3) A行列の固有値は\lambda_1=0, \lambda_2=-1

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

{\rm rank}\, \left[\begin{array}{c} C \\ A-\lambda_2 I_2 \end{array}\right]= {\rm rank} \left[\begin{array}{ccc} 1 & 1 \\ -1 & 1 \\ 0 & 0 \end{array}\right]= 1

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

【演習4.5】 A_{21}=A_{22}=0B_2=1だから,例題4.1の恒等オブザーバは,次式となる。

\left\{\begin{array}{l} \dot{\hat{x}}(t)= \underbrace{-L}_{A_{22}-L} \hat{x}(t) \underbrace{-L^2}_{A_{21}+(A_{22}-L)L} y(t)+ \underbrace{1}_{B_{2}} u(t)\\ z(t)= \left[\begin{array}{c} 0 \\ 1 \end{array}\right] \hat{x}(t) + \left[\begin{array}{c} 1 \\ L \end{array}\right] y(t) \end{array}\right.

ただし,L=2。また,恒等オブザーバの出力\hat{x}が状態x(t)を追跡していく様子は,つぎのMファイルを用いてシミュレーションできる。

%obs_err3.m
A=[0 1;0 0]; B=[0;1]; C=[1 0];
A21=0; A22=0; B2=1; L=2; U=[-L 1];
AH=A22-L; BH=A21-(A22-L)*L; CH=[0;1]; DH=[1;L]; JH=B2;
sys1=ss(A,zeros(2,1),eye(2,2),0); x0=[1;0.5];
sys2=ss(AH,0,1,0); xh0=0;
t=0:0.1:5;
x=initial(sys1,x0,t)’; y=C*x;
e=initial(sys2,xh0-U*x0,t)’; xh=U*x+e; z=CH*xh+DH*y;
figure(4),subplot(121),plot(t,x(1,:),t,z(1,:)),axis([0 5 0 4]),grid
figure(4),subplot(122),plot(t,x(2,:),t,z(2,:)),axis([0 5 0 2]),grid

【演習4.6】 A_{21}=A_{22}=0B_2=1K_1=-1K_2=-2だから,例題4.1の関数オブザーバは,次式となる。

\left\{\begin{array}{l} \dot{\hat{x}}(t)= \lambda \hat{x}(t) +\underbrace{2\lambda^2}_{K_2(A_{21}+\lambda L)} y(t) \underbrace{-2}_{K_2B_2} u(t)\\ z(t)= \hat{x}(t) \underbrace{-(1-2\lambda)}_{K_1+K_2L} u(t) \end{array}\right.

ただし,\lambda=-2L=-\lambda。また,関数オブザーバの出力z(t)が状態フィードバックu(t)を追跡していく様子は,つぎのMファイルを用いてシミュレーションできる。

%obs_err4.m
A=[0 1;0 0]; B=[0;1]; C=[1 0]; F=[1 2];
A21=0; A22=0; B2=1; K1=-1; K2=-2;
lambda=-1; L=A22-lambda; U=K2*[-L 1];
AH=lambda; BH=K2*(A21+lambda*L); JH=K2*B2; CH=1; DH=K1+K2*L;
AA=[A-B*F B*CH;0 0 AH]; BB=[B; 0]; CC=[-F 0];
sys1=ss(A-B*F,zeros(2,1),-F,0); x0=[1;0.5];
sys2=ss(AA,BB,CC,0); xh0=0; X0=[x0;xh0-U*x0];
t=0:0.1:5; u1=initial(sys1,x0,t); u2=initial(sys2,X0,t);
figure(5),plot(t,u1,t,u2),axis([0 5 -2 2]),grid
legend(‘sf’,’obc’)