最小次元状態オブザーバ

最小次元状態オブザーバ…Homework

[1] 制御対象のモデルが

\displaystyle{(1)\quad \left\{\begin{array}{ll} \dot{x}(t)=Ax(t)+Bu(t)&(x(t)\in{\bf R}^n,u(t)\in{\bf R}^m)\\ y(t)=Cx(t)&(y(t)\in{\bf R}^p, {\rm rank}C=p)\right. \end{array} }

で与えられるとします。これに対する状態オブザーバは、微分方程式

\displaystyle{(2)\quad \begin{array}{l} \dot{\hat{x}}(t)=(A-HC)\hat{x}(t)+Bu(t)+Hy(t),\ \hat{x}(0)=0\\ A-HC: Stable Matrix \end{array} }

で表され、解ベクトル\hat{x}は、制御対象の状態ベクトルxと同じ次元数nを持ちます。

いま、出力方程式y=CxCのサイズはp\times n、行フルランク)を通して、状態に関する情報が部分的に得られていることに注目します。そこで、もう一つの補完的な出力方程式z=UxUのサイズはn-p\times n、行フルランク)を\left[\begin{array}{c} C\\ U \end{array}\right]が正則となるように適切に選んで

\displaystyle{(3)\quad \left[\begin{array}{c} y(t)\\ z(t) \end{array}\right] = \left[\begin{array}{c} C\\ U \end{array}\right]x(t) \Rightarrow x(t)= \left[\begin{array}{c} C\\ U \end{array}\right]^{-1} \left[\begin{array}{c} y(t)\\ z(t) \end{array}\right] }

とすれば、状態に関する全情報が得られそうです。もちろん

\displaystyle{(4)\quad \hat{z}(t)-\underbrace{Ux(t)}_{z(t)}\rightarrow 0\quad (t\rightarrow\infty) }

を達成する仕組みが必要です。いま、その仕組みを

\displaystyle{(5)\quad \boxed{\left\{\begin{array}{lll} \dot{\hat{z}}(t)=\hat{A}\hat{z}(t)+\hat{B}y(t)+\hat{J}u(t),\ \hat{z}(0)=0\\ \hat{x}(t)=\hat{C}\hat{z}(t)+\hat{D}y(t) \end{array}\right.} }

とします。(5)の第1式から、Uを掛けた(1)の第1式を辺々引くと

\displaystyle{(6)\quad \begin{array}{l} \frac{d}{dt}(\hat{z}(t)-Ux(t))\\ =\hat{A}\hat{z}(t)+\hat{B}y(t)+\hat{J}u(t)-(UAx(t)+UBu(t))\\ =\hat{A}\hat{z}(t)-(UA-\hat{B}C)x(t)+(\hat{J}-UB)u(t) \end{array} }

を得ます。ここで

\displaystyle{(7)\quad \boxed{\hat{A}U+\hat{B}C=UA} }

を仮定し、\hat{J}

\displaystyle{(8)\quad \boxed{\hat{J}=UB} }

とおけば

\displaystyle{(9)\quad \frac{d}{dt}(\hat{z}(t)-Ux(t))=\hat{A}(\hat{z}(t)-Ux(t)) }

を得ます。もし\hat{A}が安定行列であれば、(4)を達成できます。また

\displaystyle{(10)\quad \boxed{\hat{C}U+\hat{D}C=I_n} }

を仮定すると

\displaystyle{(11)\quad \hat{x}(t)=\hat{C}\hat{z}(t)+\hat{D}y(t) \rightarrow \underbrace{(\hat{C}U+\hat{D}C)}_{I_n}x(t)=x(t)\quad (t\rightarrow\infty) }

を得て、状態推定が行われていることがわかります。状態オブザーバ(2)と比べると、計算機内で解くべき微分方程式の解ベクトルの次元数がnからn-pに低次元化されていることになります。\left[\begin{array}{c} C\\ U \end{array}\right]が正則となるためには、Uの行数はn-p以下にすることはできませんから、最小次元状態オブザーバと呼ばれています。

[2] 以上から、適当なUを選んで、(7)、(8)、(10)を満足し、安定行列\hat{A}をもつ(3)を設計することを考えます。たとえばC=[I_p\ 0]のときはU=[-L\ I_{n-p}]のように選びます(Lのサイズはn-p\times p)。このとき、(7)と(10)をまとめた

\displaystyle{(12)\quad \left[\begin{array}{cc} \hat{A}&\hat{B}\\ \hat{C}&\hat{D} \end{array}\right] = \left[\begin{array}{cc} UA\\ I_n \end{array}\right] \left[\begin{array}{cc} U\\ C \end{array}\right]^{-1} }

において、A=\left[\begin{array}{cc} A_{11}& A_{12}\\ A_{21}& A_{22} \end{array}\right]A_{11}のサイズはp\times p)のように分割すると

\displaystyle{(13)\quad \left[\begin{array}{cc} -L& I_{n-p} \end{array}\right] \left[\begin{array}{cc} A_{11}& A_{12}\\ A_{21}& A_{22} \end{array}\right] = \left[\begin{array}{cc} -LA_{11}+A_{21}& -LA_{12}+A_{22} \end{array}\right] }

\displaystyle{(14)\quad \left[\begin{array}{cc} -L& I_{n-p}\\ I_p & 0 \end{array}\right]^{-1} = \left[\begin{array}{cc} 0& I_{p}\\ I_{n-p} & L \end{array}\right] }

より、\hat{A}\hat{B}\hat{C}\hat{D}は次式から求められます。

\displaystyle{(15)\quad \boxed{\left\{\begin{array}{lll} \hat{A}=A_{22}-LA_{12}\\ \hat{B}=A_{21}-LA_{11}+\hat{A}L\\ \hat{C}= \left[\begin{array}{cc} 0\\ I_{n-p} \end{array}\right]\\ \hat{D}= \left[\begin{array}{cc} I_{p}\\ L \end{array}\right] \end{array}\right.} }

ここで、L\hat{A}が安定行列となるように選ぶ必要があります。そのためには(A,C)が可観測対であればよいのですが、これについてはあとで触れます。また、\hat{J}は(10)から定めます。

モータの状態方程式

\displaystyle{(16)\quad \left[\begin{array}{c} \dot{\theta}(t)\\ \dot{\omega}(t) \end{array}\right]= \underbrace{ \left[\begin{array}{cc} 0 & 1 \\ 0 & -\frac{1}{T_m} \end{array}\right] }_{A} \left[\begin{array}{c} \theta(t)\\ \omega(t) \end{array}\right]+ \underbrace{ \left[\begin{array}{c} 0\\ \frac{1}{K_ET_m} \end{array}\right] }_{B} u(t) }

と出力方程式

\displaystyle{(17)\quad y(t)= \underbrace{ \left[\begin{array}{cc} 1 & 0 \end{array}\right] }_{C} \left[\begin{array}{c} \theta(t)\\ \omega(t) \end{array}\right] }

に対する状態オブザーバの低次元化を行ってみます。ちょうどC=[1\ 0]となっているので、U=[-L\ 1]とおきます。設計式(15)にA_{11}=0A_{12}=1A_{21}=0A_{22}=-\frac{1}{T_m}を代入して

\displaystyle{(18)\quad \left\{\begin{array}{lll} \hat{A}=-\frac{1}{T_m}-L\\ \hat{B}=\hat{A}L\\ \hat{C}= \left[\begin{array}{cc} 0\\ 1 \end{array}\right]\\ \hat{D}= \left[\begin{array}{cc} 1\\ L \end{array}\right]\\ \hat{J}=\frac{1}{K_ET_m} \end{array}\right. }

ここで、L\hat{A}=-\alpha\frac{1}{T_m}とするのであればL=-(1-\alpha)\frac{1}{T_m}と決めます。以上から、次の低次元化された状態オブザーバが得られました。

\displaystyle{(19)\quad \left\{\begin{array}{lll} \dot{\hat{z}}(t)=\underbrace{-\frac{\alpha}{T_m}}_{\hat{A}}\hat{z}(t) +\underbrace{\frac{\alpha(1-\alpha)}{T_m^2}}_{\hat{B}}y(t) +\underbrace{\frac{1}{K_ET_m}}_{\hat{J}}u(t),\ \hat{z}(0)=0\\ \hat{x}(t)= \underbrace{ \left[\begin{array}{cc} 0\\ 1 \end{array}\right]}_{\hat{C}}\hat{z}(t) + \underbrace{ \left[\begin{array}{cc} 1\\ L \end{array}\right] }_{\hat{D}}y(t) \end{array}\right. }

次図はT_m=0.01K_E=0.05の下で、\alpha=1.2,1,8と変えたとき、状態オブザーバが真の状態を推定する様子をシミュレーションしています。

図1 状態推定の例

演習 A42…Flipped Classroom

次のコードを用いて図1のグラフを描け。

MATLAB
%a42.m
%-----
 clear all, close all
 Tm=0.01; KE=0.05;
 A=[0 1; 0 -1/Tm]; B=[0;1/Tm/KE]; C=[1 0];
 sys=ss(A,B,eye(2,2),[]); 
 t=0:0.001:0.05;
 u=ones(1,length(t));
 x0=[1;10];
 x=lsim(sys,u,t,x0);
%-----;
 alpha=1.2
 L=-(1-alpha)/Tm;
 U=[-L 1]
 Aob=-1/Tm*alpha;
 Bob=alpha*(1-alpha)/Tm^2;
 Job=1/Tm/KE;
 Cob=[0;1];
 Dob=[1;-(1-alpha)/Tm];
 err1=ss(Aob,[],1,[]);
 xob0=-U*x0;
 e1=initial(err1,xob0,t);  
 w1=[Cob Dob]*[e1'+U*x';x(:,1)']; 
%----- 
 alpha=1.8
 L=-(1-alpha)/Tm;
 U=[-L 1]
 Aob=-1/Tm*alpha;
 Bob=alpha*(1-alpha)/Tm^2;
 Job=1/Tm/KE;
 Cob=[0;1];
 Dob=[1;-(1-alpha)/Tm];
 err2=ss(Aob,[],1,[]);
 xob0=-U*x0;
 e2=initial(err2,xob0,t);
 w2=[Cob Dob]*[e2'+U*x';x(:,1)']; 
%-----  
 subplot(121),plot(t,x(:,1),t,w1(1,:),t,w2(1,:)), 
 legend('theta','apha=1.2','alpha=1.8'), grid
 subplot(122),plot(t,x(:,2),t,w1(2,:),t,w2(2,:)), 
 legend('omega','apha=1.2','alpha=1.8'), grid 
%-----
%eof
SCILAB
coming soon

Note A42 線形関数オブザーバ

制御対象の状態空間表現

\displaystyle{(1)\quad \left\{\begin{array}{ll} \dot{x}(t)=Ax(t)+Bu(t)&(x(t)\in{\bf R}^n, u(t)\in{\bf R}^m)\\ y(t)=Cx(t)&(y(t)\in{\bf R}^p)\right. \end{array} }

に対して、もう一つの状態空間表現

\displaystyle{(2)\quad \boxed{\left\{\begin{array}{lll} \dot{\hat{z}}(t)=\hat{A}\hat{z}(t)+\hat{B}y(t)+\hat{J}u(t),\ \hat{z}(0)=0&(x(t)\in{\bf R}^q)\\ \hat{y}(t)=\hat{C}\hat{z}(t)+\hat{D}y(t)&(\hat{y}(t)\in{\bf R}^{\hat{p}}) \end{array}\right.} }

を考えます。ただし、サイズq\times nの行列Uとサイズm\times nの行列Kに対して

\displaystyle{(3)\quad \boxed{\left\{\begin{array}{lll} \hat{A}: Stable\ Matrix\\ \hat{A}U+\hat{B}C=UA\\ \hat{J}=UB\\ \hat{C}U+\hat{D}C=K \end{array}\right.} }

が満足されるものとします。このとき

\displaystyle{(6)\quad \begin{array}{l} \frac{d}{dt}(\hat{z}(t)-Ux(t))\\ =\hat{A}\hat{z}(t)+\hat{B}y(t)+\hat{J}u(t)-(UAx(t)+UBu(t))\\ =\hat{A}\hat{z}(t)-(UA-\hat{B}C)x(t)+(\hat{J}-UB)u(t)\\ =\hat{A}(\hat{z}(t)-Ux(t))) \end{array} }

から

\displaystyle{(7)\quad \hat{z}(t)-Ux(t)\rightarrow 0\quad (t\rightarrow\infty) }

を得ます。また

\displaystyle{(8)\quad \hat{y}(t)=\hat{C}\hat{z}(t)+\hat{D}y(t) \rightarrow \underbrace{(\hat{C}U+\hat{D}C)}_{K}x(t)=Kx(t)\quad (t\rightarrow\infty) }

を得て、状態の線形関数Kx(t)の推定が行われていることがわかります。

したがって、条件(3)を満足する状態空間表現(2)は、線形関数オブザーバと呼ばれます。特にK=I_nのとき、は最小次元状態オブザーバとなります。

興味深いのは、状態フィードバック

\displaystyle{(9)\quad u(t)=\underbrace{-F}_{K}x(t) }

を推定させる場合で、線形関数オブザーバの次元数qが最小次元状態オブザーバの次数n-pより小さくできる可能性があります。

たとえば機械系でよく見られる、次の1入力p出力2p次系

\displaystyle{(10)\quad \left\{\begin{array}{l} \left[\begin{array}{c} \dot{y}(t)\\ \ddot{y}(t) \end{array}\right]= \underbrace{ \left[\begin{array}{cc} 0 & I_p \\ A_{21} & A_{22} \end{array}\right] }_{A} \left[\begin{array}{c} y(t)\\ \dot{y}(t) \end{array}\right]+ \underbrace{ \left[\begin{array}{c} 0\\ B_2 \end{array}\right] }_{B} u(t)\\ y(t)= \underbrace{ \left[\begin{array}{cc} I_n & 0 \end{array}\right] }_{C} \left[\begin{array}{c} y(t)\\ \dot{y}(t) \end{array}\right] \end{array}\right. }

および、これに対する状態フィードバック

\displaystyle{(11)\quad u(t)=\underbrace{ \left[\begin{array}{cc} K_1 & K_2 \end{array}\right] }_{K}x(t) }

を考えます。この状態フィードバックを推定する線形関数オブザーバは、(p+1)入力1出力1次系

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

として得られます。実際、LU

\displaystyle{(13)\quad \begin{array}{l} L=A_{22}-\lambda I_p,\  U=K_2 \left[\begin{array}{cc} -L & I_p \end{array}\right] \end{array}}

と選べば、(3)の第2、3、4式を満足していることを次のように確かめることができます。

\displaystyle{(14)\quad \begin{array}{l} \underbrace{ \lambda K_2\left[\begin{array}{cc} -L & I_p \end{array}\right] + K_2(A_{21}+\lambda L) \left[\begin{array}{cc} I_n & 0 \end{array}\right] }_{\hat{A}U+\hat{B}C} = \underbrace{ K_2\left[\begin{array}{cc} -L & I_p \end{array}\right] \left[\begin{array}{cc} 0 & I_p \\ A_{21} & A_{22} \end{array}\right] }_{UA}\\ \underbrace{ K_2B_2 }_{\hat{J}} = \underbrace{ K_2\left[\begin{array}{cc} -L & I_p \end{array}\right] \left[\begin{array}{c} 0\\ B_2 \end{array}\right] }_{UB}\\ \underbrace{ 1\cdot K_2\left[\begin{array}{cc} -L & I_p \end{array}\right] + (K_1+K_2L) \left[\begin{array}{cc} I_n & 0 \end{array}\right] }_{\hat{C}U+\hat{D}C} = \underbrace{ \left[\begin{array}{cc} K_1 & K_2 \end{array}\right] }_{K} \end{array}}

状態フィードバックを推定する線形関数オブザーバ(したがって最小次元状態オブザーバ)に対しても分離定理を示すことができます。すなわち制御対象のモデル(1)に対して、K=-Fの場合の(3)を満たす線形関数オブザーバ(2)による閉ループ系は

\displaystyle{(15)\quad e(t)=z(t)-Ux(t) }

を定義すると、次式となります。

\displaystyle{(16)\quad \boxed{\left[\begin{array}{c} \dot{x}(t) \\ \dot{e}(t) \end{array}\right]= \underbrace{ \left[\begin{array}{cc} A-BF & -B\hat{C} \\ 0 & \hat{A} \end{array}\right] }_{A_{CL}} \left[\begin{array}{c} x(t) \\ e(t) \end{array}\right]} }

この第1式は(1)の状態方程式のu(t)に、(2)の出力方程式の\hat{y}(t)を代入して

\displaystyle{(17)\quad \begin{array}{l} \dot{x}(t)=Ax(t)+B(\hat{C}\hat{z}(t)+\hat{D}y(t))\\ =Ax(t)+B(\hat{C}\hat{z}(t)+\underbrace{\hat{D}C}_{-F-\hat{C}U}x(t))\\ =(A-BF)x(t)+B\hat{C}\underbrace{(\hat{z}(t)-Ux(t))}_{e(t)} \end{array} }

のように得られます。また、第2式は(6)そのものです。