Main Content

制御設計への制約の適用

一部の制御アプリケーションには、プラントの状態が重大な制約に違反しないように制御動作を選択するコントローラーが必要です。多くの場合、制約は、コントローラーが直接制御しないプラントの状態に関係します。代わりに、制御動作信号で制約を定義する "制約関数" を定義します。この制約関数は、既知の関係、または実験データから学ぶ必要のある関係にできます。

Constraint Enforcement ブロック

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

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

fx+gxucuminuumax

ここで

  • fx および gx はプラントの状態 x に依存する制約関数の係数。

  • c は制約関数の範囲。

  • umin は制御動作の下限。

  • umax は制御動作の上限。

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

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

制約関数の係数

アプリケーションに応じて、制約関数の係数 fx および gx は、プラント状態の線形関数または非線形関数のどちらかに、既知または未知のどちらかになります。

既知の非線形制約関数の係数を使用する例については、PID コントローラーに対する制約の適用を参照してください。この例では、プラント ダイナミクスから制約関数を導出します。

プラントから制約関数を直接導出できない場合、実験またはシミュレーションの入出力データを使用して、係数を学ばなければなりません。そのような制約を学ぶために、関数近似器を作成し、シミュレーション データまたは実験データの入力から出力へのマッピングを再現するように近似器を調整できます。

線形係数の関数を学ぶために、データから最小二乗解を求めることが可能です。この方法を使用した例については、制約の適用を使用したアダプティブ クルーズ コントロール用の RL エージェントの学習および制約の適用を使用した車線維持支援用の RL エージェントの学習を参照してください。

非線形係数の関数の場合、非線形関数近似器を調整しなければなりません。そのような近似器の例には、次のようなものがあります。

  • 深層ニューラル ネットワーク (Deep Learning Toolbox™ ソフトウェアが必要)

  • 非線形同定システム モデル (System Identification Toolbox™ ソフトウェアが必要)

  • ファジィ推論システム (Fuzzy Logic Toolbox™ ソフトウェアが必要)

深層ニューラル ネットワークを学習させて非線形係数の関数を学ぶ例については、PID コントローラーの制約の学習と適用および制約の適用を使用した強化学習エージェントの学習を参照してください。

参考

ブロック

関連するトピック