メインコンテンツ

スライディング モード制御

R2024b 以降

スライディング モード制御 (SMC) は、滑り面を定義し、システム状態の軌跡が滑り面に収束して面上に留まるようにする制御手法です。この滑り面は、システム内の外乱や不確かさの影響を受けにくいように設計されます。システム状態の軌跡が滑り面上に到達すると、コントローラーはフィードバック制御則を使用して、システム状態の軌跡を滑り面に沿って望ましい状態になるように動かします [1]。次の微分方程式によって特徴付けられる動的システムを考えます。

x˙(t)=f(x,t)+g(x,t)u(x,t)+d(t)

ここで、以下となります。

  • f(x,t) は、固有のシステム ダイナミクスを表します。

  • g(x,t) は、システムに対する制御入力 u(x,t) の影響を変調する入力関数です。

  • d(t) は、時間の経過とともにシステムの動作に影響を与える外乱を示しています。

この定式化では、システムがどのように自然に動作するか、制御動作がそれにどのような影響を与えるか、予期しない外部の影響がどのような役割を果たすかを定義します。これにより、制御システムの研究と設計のための完全なフレームワークが提供されます。SMC は不連続制御を使用して 2 つの異なるシステム構造を切り替えます。これは数学的に次のように記述できます。

uk(t)={uk+(t)sk(x)>0uk(t)sk(x)<0,k=1,2,,nu

ここで、u+k(t) と u-k(t) は、滑り面に対するシステム位置に基づく 2 つの個別の制御入力を示します。nu は入力の数、sk(x) はスイッチング関数の k 番目のコンポーネントです。

s(x)=[s1(x)s2(x)snu(x)]T

状態変数が滑り面に収束し、滑り面に沿って移動し、滑り面に沿った軌跡を維持するためには、制御入力 uk を適切に設計することが重要です。滑り面に到達すると、滑り面関数は s(x) = 0 を満たす必要があります。これにより、スライディング モードが存在することが示されます。この条件を保証するための必要十分条件は、スイッチング関数とその時間微分の積が負であること (s(x)s˙(x)<0) です。この条件により、最初の微分方程式で記述されているように、システムがスライディング モードに到達すると、その状態が維持されることが保証されます。SMC における不連続制御の副作用として、制御入力でチャタリングが発生することがあります。これにより、滑り面の境界での持続的なスイッチングによって制御入力に急速な発振が生じます。チャタリングは、アクチュエータの損傷や望ましくないシステム ダイナミクスの原因になることがあります。したがって、SMC の設計において、チャタリングの軽減は必須です。要約すると、SMC の設計には次の段階が含まれます。

  1. 滑り面関数の設計

  2. 制御入力の選択

  3. チャタリングの低減

滑り面の設計

Simulink® で SMC を実装するには、Sliding Mode Controller (Reaching Law) ブロックおよび Linear Sliding Mode Controller (State Feedback) ブロックを使用します。

  • Sliding Mode Controller (Reaching Law) ブロック — このブロックにより、方程式 x˙=f(x)+g(x)u によって特徴付けられる一般的なクラスの非線形システムに対して SMC を実装できます。ただし、滑り面 C を自分で設計する必要があります。

  • Linear Sliding Mode Controller (State Feedback) — このブロックにより、状態フィードバック手法を使用して、あるクラスに属する不確実な線形システムに基づいて SMC を実装できます。このブロックには、該当するシステムの滑り面を自動的に設計するための 2 つの手法が用意されているという大きな利点があります。 (R2025a 以降)

どちらのブロックにも、制御またはトラッキングのための各種操作モードが用意されています。スイッチング関数と制御則の設計は、選択したモードによって異なります。これらのブロックによって制御則の計算が簡略化され、近似モデル ダイナミクスやスライディング行列などのいくつかのパラメーターのみを調整するだけで済みます。これらのブロックでは、到達則および境界層のパラメーターを構成することもできます。

Sliding Mode Controller (Reaching Law) ブロック

Sliding Mode Controller (Reaching Law) ブロックは、x˙=f(x)+g(x)u という形式の一般的な非線形システムに対して SMC を実装する場合に役立ちます。次のモードで動作するようにブロックを構成できます。

  • 制御モード — このモードは、システムを固定点で安定化させる場合、つまりすべての状態 x をゼロにする場合に使用します。

    u=(CTg(x))1(CTf(x)+h(s(x)))s(x)=CTx

  • トラッキング モード — このモードは、システム状態が基準軌跡 xref に従うようにする場合に使用します。

    u=(CTg(x))1(CTx˙refCTf(x)+h(s(x)))s(x)=CT(xrefx)

ここで、C はスライディング モード制御がシステム状態を動かす超平面を決定するスライディング係数行列、s(x) はスイッチング関数、h(s(x)) は到達則です。

Linear Sliding Mode Controller (State Feedback) ブロック

R2025a 以降

このブロックは、ノミナル線形プラント モデルに基づく簡略化されたダイナミクスがあり、提供されている手法を使用して滑り面を自動的に設計する場合に役立ちます。次のモードで動作するように Linear Sliding Mode Controller (State Feedback) を構成できます。

  • 制御モード — このモードは、システム状態 x(t) をゼロにする場合に使用します。

    x˙(t)=Ax(t)+Bu(t)s(x)=Sx(t)

  • 設定値追従モード — このモードは、システム出力 y(t) が指定された基準信号 r(t) を追従するようにする場合に使用します。

    x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)s(x)=S[xr(t)x(t)],x˙r(t)=r(t)y(t)

  • モデル設定値追従モード — このモードは、システム状態 x(t) が事前定義された参照モデル状態 xm(t) を追跡するようにする場合に使用します。

    x˙(t)=Ax(t)+Bu(t)x˙m(t)=Amxm(t)+Bmr(t)s(x)=S(x(t)xm(t))

各モードでは、スライディング行列 S を明示的に指定するか、次の 2 つの手法のいずれかを使用して行列を設計できます。

  • 極配置 — この手法では、スライディング モード中に閉ループ システムの望ましい固有値を割り当てて望ましい動的特性を実現することで、行列 S を設計します。

  • 二次最小化 — この手法では、システムが次のように表される 2 次性能インデックスを最小化するように行列 S を設計します。

    J=12tsx(t)TQx(t)dt

    行列 Q は重み行列で、割り当てられた重みに基づいて状態の偏差にペナルティを与えます。これは、LQR の設計における Q 行列と同じ概念です。

到達則の定義

到達則は、スイッチング s(x) のダイナミクスを指定します。制御入力の選択は、ブロック パラメーターで指定した到達則に基づいて行われます。その後、ブロックは、滑り面上の状態を維持するために必要な条件を満たす制御入力について解きます [3]。次のタイプの到達則を指定できます。

  • 定数レート — h(s(x))=ηiθ(si)

    この法則により、滑り面に到達する速度が一定になります。ここで、θ(si) は境界層、ηii 番目の制御入力の到達速度です。到達速度により、システムの軌跡が滑り面に近づく速度が決定されます。η の値が大きいほど、滑り面への収束が速くなりますが、制御操作も大きくなる可能性があります。アクチュエータの飽和やチャタリングの増大などの潜在的な問題があるため、すべての場合において値を大きくすることが望ましいとは限りません。

  • 指数 — h(s(x))=ηiθ(si)Kisi

    この法則では、スライディング変数に比例する項を追加し、状態偏差が大きい場合に、よりアグレッシブな収束を実現します。ここで、Ki は、i 番目のスライディング変数に関連付けられた制御操作をスケールする制御ゲイン項です。この項により、滑り面からの距離に比例して制御操作が増大されます。

  • パワー レート — h(s(x))i=ηi|si|αθ(si)

    この法則では、状態が滑り面から遠い場合には到達速度が速くなりますが、状態が近づくにつれて速度が遅くなります。これにより、チャタリングが確実に低減され、高速な収束が実現します。α (0 < α < 1) の値は、滑り面に近づく際の滑らかさに影響します。値が小さいほど滑らかに近づくようになり、チャタリングが低減される可能性があります。

  • 単位ベクトルh(s(x))=ηθ(P2s)Ks

    ここで、P2 はリアプノフ方程式 P2K+KTP2=I の解です。

    この到達則は Linear Sliding Mode Controller (State Feedback) ブロックでのみ利用可能です。

境界層の指定

SMC のよくある問題はチャタリングです。チャタリングとは、システム状態が滑り面に近いときにおける制御入力の高周波スイッチングを指します。チャタリングを軽減するには、準スライディング モード制御を適用します。この手法では、制御則の不連続な符号関数が連続的な近似に置き換えられます。そうすることで、軌跡が正確に滑り面上に留まる必要がなくなり、システムの状態が滑り面の周囲の境界層内に留まることができます。この手法により、制御信号の高周波スイッチングが軽減され、チャタリングが減ります。

次のいずれかの境界層を指定できます。

  • 符号 — θ(s)=sgn(s(x))

    このオプションでは、既定の符号関数が使用され、-1 と 1 の間で不連続的に切り替えられます。

  • リレー — θ(s)=s|s|+ϕ

    このオプションでは、リレー関数を使用して滑り面の周囲のスイッチング境界が定義されます。

  • 双曲線正接 — θ(s)=tanh(sϕ)

    このオプションでは、双曲線正接関数を使用して滑り面の周囲のスイッチング境界が定義されます。

  • 飽和 — θ(s)={1s>ϕks|s|ϕ1s<ϕk=1ϕ

    このオプションでは、スライディング変数が境界層内 [–ϕ,ϕ] にあるときに飽和関数を使用して -1 と 1 の間で滑らかに内挿されます。これにより、高周波スイッチングが軽減されます。

ここで、ϕ の選択は、滑り面の周囲の境界層の厚さが定義されるため重要です。ϕ を大きくするとチャタリングは減りますが、定常偏差が大きくなる可能性があります。逆に、ϕ を小さくすると定常偏差は小さくなりますが、チャタリングが増大します。

スライディング モード制御の詳細

スライディング モード制御の詳細については、ビデオをご覧ください。このビデオは、Robust Control ビデオ シリーズの一部です。

参照

[1] Derbel, Nabil, Jawhar Ghommam, and Quanmin Zhu, eds. Applications of Sliding Mode Control. Vol. 79. Studies in Systems, Decision and Control. Singapore: Springer Singapore, 2017. https://doi.org/10.1007/978-981-10-2374-3.

[2] Weibing Gao, and J.C. Hung. “Variable Structure Control of Nonlinear Systems: A New Approach.” IEEE Transactions on Industrial Electronics 40, no. 1 (February 1993): 45–55. https://doi.org/10.1109/41.184820.

[3] Richter, Hanz. Advanced Control of Turbofan Engines. New York, NY: Springer New York, 2012. https://doi.org/10.1007/978-1-4614-1171-0.

[4] Edwards, Christopher, and Sarah K. Spurgeon. Sliding Mode Control: Theory and Applications. Systems and Control Book Series ; Vol. 7. London: Taylor & Francis, 1998.

参考

|

トピック