SM制御

SM制御…Homework

[1] 次の無定位系(2重積分器)を考えます。

\displaystyle{(1)\quad \left[\begin{array}{c} \dot{x}_1(t)\\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} 0 & 1\\ 0 & 0 \end{array}\right] \left[\begin{array}{c} x_1(t)\\ x_2(t) \end{array}\right]+ \left[\begin{array}{c} 0\\ 1 \end{array}\right] u(t) }

これに対して、スイッチング関数と呼ばれる

\displaystyle{(2)\quad s(t)=mx_1(t)+x_2(t) }

を用いて、制御則

\displaystyle{(3)\quad u(t)=\left\{\begin{array}{ll} 1 & (s(t)<0) \\ 0 & (s(t)=0) \\ -1 & (s(t)>0) \end{array}\right. }

すなわち

\displaystyle{(4)\quad \boxed{u(t)=-{\rm sgn}(s(t)) %-\frac{s(t)}{|s(t)|}} }

を考えます。\dot{x}(t)=Ax(t)+B(\pm 1)の解は(\tau'=t-\tau\Rightarrow d\tau=-d\tau'に注意して)

\displaystyle{(5)\quad x(t)=\pm\int_0^t\exp(A(t-\tau))Bd\tau =\mp\int_t^0\exp(A\tau')Bd\tau' =\pm\int_0^t\exp(A\tau)Bd\tau }

また

\displaystyle{(6)\quad \exp( \left[\begin{array}{cc} 0 & 1\\ 0 & 0 \end{array}\right]\tau) = \left[\begin{array}{cc} 1 & \tau \\ 0 & 1 \end{array}\right] \Rightarrow \exp(A\tau)B= \left[\begin{array}{cc} 1 & \tau \\ 0 & 1 \end{array}\right] \left[\begin{array}{c} 0\\ 1 \end{array}\right] = \left[\begin{array}{c} \tau \\ 1 \end{array}\right] }

となることから

\displaystyle{(7)\quad \left\{\begin{array}{l} x_1(t)=\pm\int_0^t \tau d\tau=\pm\frac{1}{2}t^2+x_1(0)\\ x_2(t)=\pm\int_0^t 1 d\tau=\pm t+x_2(0) \end{array}\right. \Rightarrow x_1(t)-x_1(0)=\pm \frac{1}{2}(x_2(t)-x_2(0))^2 }

と計算できます。ここで、状態軌道は放物線となっていることに注意します。

m=2x_1(0)=x_2(0)=4のときの状態軌道を図1に示します。


図1 x_1(0)=x_2(0)=4のときの状態軌道

これから直線x_2=-mx_1の上側と下側にある(横に寝た)放物線を切り替えて状態軌道が構成されていることが分かります。ところが、原点に近くなると奇妙な現象が生じます。

m=2x_1(0)=x_2(0)=0.4のときの状態軌道を図2に示します。


図2 x_1(0)=x_2(0)=0.4のときの状態軌道

これから状態軌道が直線x_2=-mx_1に到達すると、この直線上に拘束されて原点まで滑っていることが分かります。一体、何が起こっているのでしょう?

●これを調べるために

\displaystyle{(9)\quad \begin{array}{l} s(t)\dot{s}(t)=s(t)(m\dot{x}_1(t)+\dot{x}_2(t))=s(t)(mx_2(t)+u(t))\\ =s(t)(mx_2(t)-\frac{s(t)}{|s(t)|})=mx_2(t)s(t)-|s(t)|\\ \Rightarrow s(t)\dot{s}(t)\le (m|x_2(t)|-1)|s(t)| \end{array} }

から、次が成り立つことがわかります。

\displaystyle{(10)\quad \begin{array}{l} m|x_2(t)|<1 \Rightarrow s(t)\dot{s}(t)< 0 \end{array} }

いま(2)で定義したsx_1-x_2平面におけるx_2軸の切片であることに注意します。(10)より、s>0のとき\dot{s}<0なので切片sx_2軸正の方から0に漸近します。一方、s<0のとき\dot{s}>0なので切片sx_2軸負の方から0に漸近します。このことは状態は直線

\displaystyle{(11)\quad mx_1(t)+x_2(t)=0 }

の上に拘束されてしまうことを意味します。これから

\displaystyle{(12)\quad \dot{x}_1(t)=-mx_1(t) }

となるので、つぎを得ます。

\displaystyle{(13)\quad x_1(t)=e^{-mt}x_1(0)\rightarrow 0\quad(t\rightarrow\infty) }

これは直線(2)を滑るように原点に向かうことを意味します。

●以上のように、適当なスイッチング関数s(t)に対して、可到達条件

\displaystyle{(14)\quad { \begin{array}{l} s(t)\dot{s}(t)< 0 \end{array}} }

を満足させ、スライディング直線に乗せたあと、原点に向かって滑らせる制御方式をスライディングモード制御と呼びます。

[2] いまスライディング直線に乗る時刻をt_sとすると、次が成り立ちます。

\displaystyle{(15)\quad s(t)=0\quad(t>t_s) \quad\Rightarrow\quad \dot{s}(t)=0\quad(t>t_s) }

また(9)では次式を用いました。

\displaystyle{(16)\quad \dot{s}(t)=m\dot{x}_1(t)+\dot{x}_2(t)=mx_2(t)+u(t) }

そうすると(15)と(16)を合わせて、スライディング直線を滑らせる制御則は

\displaystyle{(17)\quad 0=mx_2(t)+u_{eq}(t)\Rightarrow u_{eq}(t)=-mx_2(t)\quad(t>t_s) }

のように考えられ、等価制御と呼ばれています。

●等価制御はスライディングモード制御そのものではないのですが、どのように違うか、次のシミュレーション例を見てください。これからスライディングモード制御則を1次システム1/(0.04s+1)を通したものが等価制御とよく合っていることがわかります。この1次システムはアクチュエータのダイナミックス(による帯域制限)を表しているとみなすことができます。


図3 SMCとその等価制御(m=1, x_1(0)=1, x_2(0)=0

そうであれば最初から等価制御を用いればよいではないかと思うかもしれませんが、等価制御はあくまでスライディングモードに突入後の制御則です。したがって、まずは可到達条件(14)を満足させて、スライディングモードを実現する必要があることに注意してください。

[3] 剛体振子の運動方程式は次式で与えられました。

\displaystyle{(18)\quad \ddot{\theta}(t)=\underbrace{-\frac{3g}{4\ell}}_{a}\sin\theta(t)+\underbrace{\frac{1}{J}\tau(t)}_{u(t)} }

x_1=\theta, x_2=\dot{\theta}とおいて、次の非線形状態方程式を得ます。

\displaystyle{(19)\quad \left[\begin{array}{c} \dot{x}_1(t)\\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} x_2(t)\\ -a\sin x_1(t)+u(t) \end{array}\right] }

これは、次式のように、無定位系(2重積分器)に非線形項が加えられたものとみなすことができます。

\displaystyle{(20)\quad \left[\begin{array}{c} \dot{x}_1(t)\\ \dot{x}_2(t) \end{array}\right]= \left[\begin{array}{cc} 0 & 1\\ 0 & 0 \end{array}\right] \left[\begin{array}{c} x_1(t)\\ x_2(t) \end{array}\right]+ \left[\begin{array}{c} 0\\ 1 \end{array}\right] u(t)+ \left[\begin{array}{c} 0\\ -a\sin x_1(t) \end{array}\right] }

そこで、これまでのスライディングモード制御(4)をそのまま用いたときの様子を調べてみます。

次は仮にa=0.25とした場合のシミュレーション結果です。一見、図3と変わらないように見えます。


図4 振り子のSMCとその等価制御(m=1, x_1(0)=1, x_2(0)=0

ここには、次の等価制御もシミュレーションされています。

\displaystyle{(21)\quad 0=mx_2(t)-a\sin x_1(t)+u_{eq}(t)\Rightarrow u_{eq}(t)=a\sin x_1(t)-mx_2(t)\quad(t>t_s) }

実は、無定位系そのものは非線形項を考慮していないのに、これに非線形項が加わった場合の影響を抑制していることが分かります。この事実がスライディングモード制御を大変魅力的なものとしています。

演習C01…Flipped Classroom
1^\circ smc11.slxsmc12.slxを用いて、図1、図2のシミュレーションを行え。
2^\circ smc13.slxsmc14.slxを用いて、図3、図4のシミュレーションを行え。