追従SMI制御

積分動作導入による追従SM制御…Homework

[1] 制御対象

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

の出力を、コマンド(次式の解)

\displaystyle{(2)\quad \begin{array}{l} %\dot{r}(t)=\Gamma(r(t)-r_c)\\ \frac{d}{dt}(r(t)-r_c)=\Gamma(r(t)-r_c)\\ (r(t),r_c\in{\rm\bf R}^m) \end{array} }

に追従させることを考えます(\Gammaは安定行列)。そのために、積分動作

\displaystyle{(3)\quad \begin{array}{l} \dot{x}_r(t)=r(t)-y(t)\\ (x_r(t)\in{\rm\bf R}^m) \end{array} }

を導入し、次の拡大系を構成します。ここで、(1)はすでに標準形であるとしています。

\displaystyle{(4)\quad \begin{array}{l} \left[\begin{array}{c} \dot x_r(t)\\ \dot x(t) \end{array}\right] = \left[\begin{array}{c|cc} 0 & -C_1 & -C_2\\\hline 0 & A_{11} & A_{12} \\ 0 & A_{21} & A_{22} \end{array}\right] \left[\begin{array}{c} x_r(t)\\ x(t) \end{array}\right] + \left[\begin{array}{c} 0\\\hline 0\\ B_2 \end{array}\right] u(t) + \left[\begin{array}{c} I_m \\\hline 0 \\ 0 \end{array}\right] r(t)\\ (x_r(t)\in{\rm\bf R}^m, x(t)\in{\rm\bf R}^n) \end{array} }

これを、次のように分割し直しても標準形であることには変わりありません。

\displaystyle{(5a)\quad \begin{array}{l} \left[\begin{array}{c} \dot{x}_1(t)\\ \dot{x}_2(t) \end{array}\right] = \underbrace{ \left[\begin{array}{cc|c} 0 & -C_1 & -C_2\\ 0 & A_{11} & A_{12} \\\hline 0 & A_{21} & A_{22} \end{array}\right] }_{A_E} \left[\begin{array}{c} x_1(t)\\ x_2(t) \end{array}\right] + \underbrace{ \left[\begin{array}{c} 0\\ 0\\\hline B_2 \end{array}\right] }_{B_E} u(t) + \left[\begin{array}{c} I_m \\ 0 \\\hline 0 \end{array}\right] r(t)\\ (x_1(t)\in{\rm\bf R}^n, x_2(t)\in{\rm\bf R}^m) \end{array} }

ただし

\displaystyle{(5b)\quad %\begin{array}{l} \left[\begin{array}{c} x_1(t)\\ x_2(t) \end{array}\right] = \left[\begin{array}{c} x_r(t)\\ x(t) \end{array}\right] %\end{array} }

●この積分器による拡大系を安定化できれば、積分器の値x_r(t)は定値となり、被積分項r(t)-y(t)の値は零となり、y(t)r(t)へ漸近します。そこで、SM制御によって拡大系を安定化し、追従制御系を構成することを考えます。この制御系は特別なr(t)=0の場合を含みますので、まずスイッチング関数として、次式を考えます。

\displaystyle{(6)\quad s(t)= \underbrace{ \left[\begin{array}{cc} S_1 & S_2 \\ \end{array}\right] }_{S} %\underbrace{ \left[\begin{array}{c} x_1(t)\\ x_2(t) \end{array}\right] %}_{x(t)} = \underbrace{S_2 \left[\begin{array}{cc} M & I_m \\ \end{array}\right] }_{S} %\underbrace{ \left[\begin{array}{c} x_1(t)\\ x_2(t) \end{array}\right] %}_{x(t)} \ (M=S_2^{-1}S_1) }

(5)に対して、座標変換

\displaystyle{(7)\quad \begin{array}{l} \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right] = \underbrace{ \left[\begin{array}{cc} I_n & 0 \\ S_1 & S_2 \\ \end{array}\right] }_{T_s} \left[\begin{array}{c} x_1(t)\\ x_2(t) \end{array}\right]\\ \Leftrightarrow \left[\begin{array}{c} x_1(t)\\ x_2(t) \end{array}\right] = \underbrace{ \left[\begin{array}{cc} I_n & 0 \\ -S_2^{-1}S_1 & S_2^{-1} \\ \end{array}\right] }_{T_s^{-1}} \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right] \end{array} }

を行って、次式を得ます。

\displaystyle{(8a)\quad \begin{array}{l} %\underbrace{ \left[\begin{array}{c} \dot x_1(t)\\ \dot s(t) \end{array}\right] %}_{\dot{x}'(t)} = \underbrace{ \left[\begin{array}{cc} \bar{A}_{11} & \bar{A}_{12} \\ S_2\bar{A}_{21} & S_2\bar{A}_{22}S_2^{-1} \\ \end{array}\right] }_{T_sA_ET_s^{-1}} %\underbrace{ \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right] %}_{x'(t)} + \underbrace{ \left[\begin{array}{cc} 0\\ S_2B_2 \end{array}\right] }_{T_sB_E} u(t)\\ + \left[\begin{array}{cc} B_r \\ S_1B_r \end{array}\right] r(t) \end{array} }

ただし

\displaystyle{(8b)\quad \left\{\begin{array}{l} \bar{A}_{11}= \left[\begin{array}{cc} 0 & -C_1 \\ 0 & A_{11} \end{array}\right] -\left[\begin{array}{c} -C_2\\ A_{12} \end{array}\right]M\\ \bar{A}_{12}= \left[\begin{array}{c} -C_2\\ A_{12} \end{array}\right]S_2^{-1}\\ \bar{A}_{21}=S_2(M\bar{A}_{11} + \left[\begin{array}{cc} 0 & A_{21} \end{array}\right] -A_{22}M)\\ \bar{A}_{22}=S_2(M \left[\begin{array}{c} -C_2\\ A_{12} \end{array}\right] +A_{22})S_2^{-1}\\ B_r=\left[\begin{array}{cc} I_m \\ 0 \end{array}\right] \end{array}\right. }

ここで、\bar{A}_{11}が安定行列となるように行列Mが選ばれているとします。

●特別なr(t)=0の場合のスライディングモードはs(t)=0で表されますが、一般のr(t)\ne0の場合のスライディングモードは

\displaystyle{(9)\quad {\boxed{s(t)-S_rr(t)=0} \quad\Rightarrow \dot{s}(t)-S_r\dot{r}(t)=0 } }

で表されるとします。ここで、S_rは適当に選択された行列です。

●以上の準備の下で、SM制御則

\displaystyle{(10)\quad u(t)=\underbrace{u_\ell(t)}_{linear\ control}+\underbrace{u_n(t)}_{switching\ component} }

を、2次安定性

\displaystyle{(11)\quad  \boxed{ \begin{array}{lll} V(\bar{x})= \underbrace{ \left[\begin{array}{c} x_1(t)\\ s(t)-S_rr(t) \end{array}\right]^T }_{\bar{x}^T(t)} \underbrace{ \left[\begin{array}{cc} P_1 & 0\\ 0 & P_2 \end{array}\right] }_{P} \underbrace{ \left[\begin{array}{c} x_1(t)\\ s(t)-S_rr(t) \end{array}\right] }_{\bar{x}(t)}\\ \Rightarrow \dot{V}(\bar{x})\le - \underbrace{ \left[\begin{array}{c} x_1(t)\\ s(t)-S_rr(t) \end{array}\right]^T }_{\bar{x}^T(t)} \underbrace{ \left[\begin{array}{cc} Q_1 & 0\\ 0 & I \end{array}\right] }_{Q} \underbrace{ \left[\begin{array}{c} x_1(t)\\ s(t)-S_rr(t) \end{array}\right] }_{\bar{x}(t)} \end{array}}} }

すなわち

\displaystyle{(11')\quad  \begin{array}{lll} V(\bar{x})= \underbrace{x_1^T(t)P_1x_1(t)}_{V(x_1)}+\underbrace{(s(t)-S_rr(t))^TP_2(s(t)-S_rr(t))}_{V(s)}\\ \Rightarrow \dot{V}(\bar{x})\le  -x_1^T(t)Q_1x_1(t)-(s(t)-S_rr(t))^T(s(t)-S_rr(t)) \end{array}} }

が成り立つように決定します(P_1>0, P_2>0, Q_1>0)。

[2] 可到達性の検討

ここでは、スライディングモード制御則(10)の具体的な表現を求めます。

●等価制御は、(8)においてr(t)=0の場合

\displaystyle{ \begin{array}{cl} (12.1) & s(t)=0\\ \Downarrow &\\ (12.2) & \dot{s}(t)=0\\ \Downarrow &\\ (12.3) & 0=S_2\bar{A}_{21}x_1(t)+S_2\bar{A}_{22}S_2^{-1}s(t)+S_2B_2u(t)\\ \Downarrow &\\ (12.4) & u_{eq}(t)=-\underbrace{(S_2B_2)^{-1}}_{([0\ I]T_sB_E)^{-1}} \underbrace{\left[\begin{array}{cc} S_2\bar{A}_{21} & S_2\bar{A}_{22}S_2^{-1} \\ \end{array}\right]}_{[0\ I]T_sA_ET_s^{-1}} \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right]\\ \Downarrow & by\ S=[0\ I]T_s\\ (12.5) & u_{eq}(t)=-(SB_E)^{-1}SA_ET_s^{-1} \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right]\\ \Downarrow & by\ (7),(8b)\\ (12.6) & u_{eq}(t)=-(SB_E)^{-1}SA_E \left[\begin{array}{c} x_r(t)\\ x(t) \end{array}\right]} \end{array} }

のように得られます。(10)の第1項u_\ellは、この等価制御をベースして、(9)を考慮して

\displaystyle{(13)\quad  \begin{array}{l} u_\ell(t)=-(S_2B_2)^{-1} (\left[\begin{array}{cc} S_2\bar{A}_{21} & S_2\bar{A}_{22}S_2^{-1} \\ \end{array}\right]\left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right]-\Phi s(t))\\ -(S_2B_2)^{-1}(\Phi S_r+S_1B_r)r(t)+(S_2B_2)^{-1}S_r\dot{r}(t)\\ \end{array} }

すなわち

\displaystyle{(13')\quad { \boxed{\begin{array}{l} u_\ell(t) =-\underbrace{(SB_E)^{-1}(SA_E-\Phi S)}_{L=L_{eq}+L_\Phi}\left[\begin{array}{c} x_r(t)\\ x(t) \end{array}\right]\\ -\underbrace{(SB_E)^{-1}(\Phi S_r+S_1B_r)}_{L_r} r(t) +\underbrace{(SB_E)^{-1}S_r}_{L_{\dot r}} \dot{r}(t)\\ \end{array}}} }

のように構成します(\Phiは安定行列)。このとき閉ループ系は次式で与えられます。

\displaystyle{(14)\quad \begin{array}{l} \left[\begin{array}{c} \dot x_1(t)\\ \dot s(t) \end{array}\right] = \left[\begin{array}{cc} \bar{A}_{11} & \bar{A}_{12} \\ S_2\bar{A}_{21} & S_2\bar{A}_{22}S_2^{-1} \\ \end{array}\right] \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right]\\ + \left[\begin{array}{cc} 0\\ S_2B_2 \end{array}\right] (-(S_2B_2)^{-1} (\left[\begin{array}{cc} S_2\bar{A}_{21} & S_2\bar{A}_{22}S_2^{-1} \\ \end{array}\right]\left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right]-\Phi s(t))\\ -(S_2B_2)^{-1}(\Phi S_r+S_1B_r)r(t)+(S_2B_2)^{-1}S_r\dot{r}(t)+u_n(t)) + \left[\begin{array}{cc} B_r \\ S_1B_r \end{array}\right] r(t)\\ = \left[\begin{array}{cc} \bar{A}_{11} & \bar{A}_{12} \\ S_2\bar{A}_{21} & S_2\bar{A}_{22}S_2^{-1} \\ \end{array}\right] \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right]\\ + \left[\begin{array}{cc} 0\\ I_m \end{array}\right] \left[\begin{array}{cc} -S_2\bar{A}_{21} & -S_2\bar{A}_{22}S_2^{-1}+\Phi \\ \end{array}\right] \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right]\\ + \left[\begin{array}{cc} 0\\ -(\Phi S_r+S_1B_r)r(t)+S_r\dot{r}(t)+S_2B_2u_n(t) \end{array}\right] + \left[\begin{array}{cc} B_r \\ S_1B_r \end{array}\right] r(t)\\ = \left[\begin{array}{cc} \bar{A}_{11} & \bar{A}_{12} \\ 0 & \Phi  \\ \end{array}\right] \left[\begin{array}{c} x_1(t)\\ s(t) \end{array}\right]+ \left[\begin{array}{cc} B_rr(t)\\ -\Phi S_rr(t)+S_r\dot{r}(t)+S_2B_2u_n(t) \end{array}\right] \end{array} }

これを変形して

\displaystyle{(15)\quad \begin{array}{l} \left[\begin{array}{c} \dot{x}_1(t)\\ \dot{s}(t)-S_r\dot{r}(t) \end{array}\right] = \left[\begin{array}{cc} \bar{A}_{11} & \bar{A}_{12} \\ 0 & \Phi  \\ \end{array}\right] \left[\begin{array}{c} x_1(t)\\ s(t)-S_rr(t) \end{array}\right]\\ + \left[\begin{array}{cc} B_rr(t)\\ -\Phi S_rr(t)+S_r\dot{r}(t)+S_2B_2u_n(t) \end{array}\right] \end{array} }

すなわち、次式が成り立ちます。

\displaystyle{ \begin{array}{cl} (15.1) & \dot{x}_1(t)=\bar{A}_{11}x_1(t)+\bar{A}_{12}(s(t)-S_rr(t))+\underbrace{(B_r+\bar{A}_{12}S_r)}_{B_r'}r(t)\\ (15.2) & \dot{s}(t)-S_r\dot{r}(t)=\Phi(s(t)-S_rr(t))+S_2B_2u_n(t) \end{array} }

(15.2)に基づいてスライディングモードs-S_rr=0を達成するu_nを明らかにします。

\Phiは安定行列なので

\displaystyle{(16)\quad \begin{array}{l} P_2\Phi+\Phi^TP_2=-I_m \end{array} }

を満たすP_2>0を選ぶことができます。これを用いて

\displaystyle{(17)\quad  \begin{array}{l} u_n(t)=-(S_2B_2)^{-1}\rho(u_\ell,y)\frac{P_2(s(t)-S_rr(t))}{||P_2(s(t)-S_rr(t))||} \end{array} }

すなわち

\displaystyle{(17')\quad { \boxed{ \begin{array}{l} u_n(t) =-\underbrace{(SB_E)^{-1}\rho(u_\ell,y)}_{L_n}\frac{P_2(s(t)-S_rr(t))}{||P_2(s(t)-S_rr(t))||} \end{array} }} }

と選びます(\rho>0)。このとき次式が成り立ち、(11)が示されます。

\displaystyle{(18)\quad \begin{array}{l} \dot{V}(s)=2(s(t)-S_rr(t))^TP_2(\dot{s}(t)-S_r\dot{r}(t))\\ =2(s(t)-S_rr(t))^TP_2 (\Phi (s(t)-S_rr(t))-\rho(u_\ell,y)\frac{P_2(s(t)-S_rr(t))}{||P_2(s(t)-S_rr(t))||})\\ =(s(t)-S_rr(t))^T\underbrace{(P_2\Phi+\Phi^TP_2)}_{-I_m}(s(t)-S_rr(t))\\ +2(s(t)-S_rr(t))^TP_2(-\rho(u_\ell,y)\frac{P_2(s(t)-S_rr(t))}{||P_2(s(t)-S_rr(t))||})\\ \le -||s(t)-S_rr(t)||^2-2\rho(u_\ell,y)||P_2(s(t)-S_rr(t))||\\ \le -||s(t)-S_rr(t)||^2 \end{array} }

これより(15.2)における2次安定性が成り立つことが分かります。2次安定であればs-S_rrは0に漸近します。

[3] スライディングモードの検討

次にs-S_rr=0のもとで、(15.1)からx_1の振舞いについて調べます。

\bar{A}_{11}は安定行列なので

\displaystyle{(19)\quad \begin{array}{l} P_1\bar{A}_{11}+\bar{A}_{11}^TP_1=-Q_1<0 \end{array} }

を満たすP_1>0を選ぶことができます。そこで、(15.1)に対するリャプノフ関数V(x_1)=x_1^T(t)P_1x_1(t)の微分について調べます。

\displaystyle{(20)\quad \begin{array}{l} \dot{V}(x_1)=2x_1^T(t)P_1\dot{x}_1(t)\\ =2x_1^T(t)P_1( \bar{A}_{11}x_1(t)+\bar{A}_{12}\underbrace{(s(t)-S_rr(t))}_{0}+B_r'r(t))\\ =x_1^T(t)\underbrace{(P_1\bar{A}_{11}+\bar{A}_{11}^TP_1)}_{-Q_1}x_1(t)+2x_1^T(t)P_1B_r'r(t)\\ =-x_1^T(t)Q_1x_1(t)+2x_1^T(t)P_1B_r'r(t)\\ \le -\sigma_n(Q_1)x_1^T(t)x_1(t)+2||x_1^T(t)P_1||\,||B_r'r(t)||\\ \le -\sigma_n(Q_1)||x_1(t)||^2+2\sqrt{x_1^T(t)P_1^2x_1(t)}\,||B_r'r(t)||\\ \le -\sigma_n(Q_1)||x_1(t)||^2+2\sqrt{\sigma_1(P_1^2)x_1^T(t)x_1(t)}\,||B_r'r(t)||\\ = -\sigma_n(Q_1)||x_1(t)||^2+2\sigma_1(P_1)||x_1(t)||\,||B_r'r(t)||\\ = -\sigma_1(P_1)||x_1(t)||(\frac{\sigma_n(Q_1)}{\sigma_1(P_1)}||x_1(t)||-2||B_r'r(t)||) \end{array} }

したがって、次式が成り立ち、リャプノフ安定性が示されます。

\displaystyle{(21)\quad||B_r'r(t)||<\frac{1}{2}\frac{\sigma_n(Q_1)}{\sigma_1(P_1)}||x_1(t)|| \Rightarrow \dot{V}(x_1)<0 }

これから、ロバスト性での議論と同様に、x_1が発散することはないことが分かります。

演習C61…Flipped Classroom

MATLAB
%cCIP_smci.m
%-----
 clear all, close all
 global mc m ell g th0
 mc=1; m=0.1; ell=0.2; g=9.8;
 ths=0; %input('ths   = <0,180> ')/180*pi;
 th0=3/180*pi; %input('th(0) = <0,180> ')/180*pi;
%-----
 A=[zeros(2,2) eye(2);zeros(2,4)];
 A(3,1)=0; 
 A(3,2)=-3*m*g/(m+4*mc); 
 A(4,1)=0; 
 A(4,2)=3*(m+mc)*g/((m+4*mc)*ell);  
 B=zeros(4,1);
 B(3)=4/(m+4*mc);
 B(4)=-3/((m+4*mc)*ell); 
 A0=A; B0=B; 
 H=[1 0 0 0];
 A=[0 -H ;
    zeros(4,1) A0];
 B=[0; B0];
 CM=[1 0 0 0;
     0 1 0 0];
 Gamma=-5; 
%-----
 lambda=[-0.8 0.5 -1.5 1];
 nocomp=2;
 specpos=rand(4,4);
 specent=rand(4,4);
 S=swfvpl(A,B,lambda,nocomp,specpos,specent)      
 SS=S;
 F=(SS*B)\(SS*A)
 eig(A-B*F)
%-----
[nn,mm]=size(B);
 S1=SS(:,1:nn-mm);
 S2=SS(:,nn-mm+1:nn);
 Br=eye(nn-mm,mm);
 B2=B(nn-mm+1:nn,:); 
 Lambda=S2*B2;
 Phi=-0.1;
 P2=0.5*inv(-Phi);
 Check=P2*Phi+Phi*P2
 P2S=P2*S;
 Leq=inv(S*B)*S*A;
 LPhi=-inv(S*B)*Phi*S;
 L=Leq+LPhi;
 rho=2;
 Ln=inv(S*B)*rho;
%-----
 Sr=0;
 Lr=inv(Lambda)*(Phi*Sr+S1*Br)
 Ldr=inv(Lambda)*Sr
%Ln=0.1*inv(Lambda)
%-----
 x0=[0;th0*0;0;0];
 sim('CIP_smci_2015a.mdl')
%-----
%eof
SCILAB