Main Content

制御設計へのバリア証明書の適用

最適化ベースの制御において、"バリア証明書" はシステムの望ましい状態の安全セットを定義します。"制御バリア関数" は、状態が安全セットを維持するような制御則を見つけるために使用します。

Barrier Certificate Enforcement ブロック

Barrier Certificate Enforcement ブロック (Optimization Toolbox™ ソフトウェアが必要) は、バリア証明書の制約とアクション範囲に従って、指定された制御動作の最も近くにある変更された制御動作を計算します。このブロックは、二次計画法 (QP) ソルバーを使用して、関数 |uu0|2 をリアルタイムで最小化する制御動作 u を検出します。ここで、u0 は、コントローラーから変更されていない制御動作です。

ソルバーは、以下の制約を最適化問題に適用します。

qxfx+qxgxu+γhxβ0uminuumax

ここで

  • fx と gx は、プラント ダイナミクス x˙=f(x)+g(x)u によって定義される関数。

  • hx は制御バリア関数。

  • qx は状態 x に対する制御バリア関数の偏導関数。

  • γ は制約係数。

  • β は制約指数。

  • umin は制御動作の下限。

  • umax は制御動作の上限。

Barrier Certificate Enforcement ブロックは元の制御動作を変更するため、最終的な閉ループ システムでは、元のコントローラーの設計目的 (安定余裕など) が達成されない可能性があります。

結合されたコントローラーと Barrier Certificate Enforcement ブロックが元の制御目的を満たしていることを確認する必要があります。システムが元の目的を満たしていない場合は、元のコントローラー設計を更新することを検討してください。たとえば、パフォーマンス低下の可能性を補正するために、ゲイン余裕と位相余裕をさらに追加できます。

制御バリア関数

次の形式のプラント ダイナミクスについて考えます。

x˙=f(x)+g(x)u

制御バリア関数 h(x) は、安全セット {x:h(x)0} を定義します。安全セットとは、セット内で開始するすべての軌跡がセット内に留まる不変セットです。

この不変セットでは、制約を次のように記述します。

h˙(x,u)α(h(x))

したがって、制御バリア関数とシステム ダイナミクスに依存する制約を次のように定義できます。

hxf(x)+hxg(x)uα(h(x))

ここで、α(h(x)) は拡張されたクラスの関数 Κ です。Barrier Certificate Enforcement ブロックを使用して、次の形式の関数を指定できます。

α(h(x))=γhβ(x)

単純な制御バリア関数を使用する例については、PID コントローラーに対するバリア証明書の制約の適用を参照してください。

3 台のロボット間の衝突を回避する制御バリア関数を定義する例については、衝突のないマルチロボット システムに対するバリア証明書の制約の適用を参照してください。この例では、任意の 2 台のロボット間のしきい値距離より大きい距離を維持したまま、ロボットがそのターゲット位置に到達するように制御バリア関数を定義します。

参考

関連するトピック