Control Barrier Function

ライブラリ:
Simulink Control Design /
Constraint Control
説明
Control Barrier Function ブロックは、バリア証明書の制約とアクション範囲に従って、指定された制御動作の最も近くにある変更された制御動作を計算します。
このブロックは、二次計画法 (QP) ソルバーを使用して、関数 を最小化する制御動作 u を検出します。ここで、u0 は変更されていない制御動作です。
ソルバーは、以下の制約を最適化問題に適用します。
ここで、以下となります。
fx と gx は、プラント ダイナミクス によって定義される関数。
hx は制御バリア関数。
qx は状態 x に対する制御バリア関数の偏導関数。
γ は制約係数。
β は制約指数。
umin は制御動作の下限。
umax は制御動作の上限。
Control Barrier Function ブロックには、Optimization Toolbox™ ソフトウェアが必要です。
バリア証明書の適用の詳細については、制御設計へのバリア証明書の適用を参照してください。
例
PID コントローラーに対するバリア証明書の制約の適用
Barrier Certificate Enforcement ブロックを使用して、バリア証明書の制約を PID 制御アプリケーションに適用する。
端子
入力
変更されていない制御動作。スカラーまたはベクトルとして指定します。
[アクション数] パラメーターが 1 の場合、u0 をスカラー信号に接続します。そうでない場合、u0 を長さが [アクション数] に等しいベクトル信号に接続します。
次のプラント ダイナミクスの方程式のステート関数 f(x)。
[fx] を Nx 行 1 列の信号に接続します。ここで、Nx は [状態数] パラメーターに等しくなります。
次のプラント ダイナミクスの方程式の入力関数 g(x)。
[gx] を Nx 行 Nu 列の信号に接続します。ここで、Nx は [状態数] パラメーターに等しく、Nu は [アクション数] パラメーターに等しくなります。
制御バリア関数。以下のプラント状態の安全セットとして定義されます。
[hx] を Nc 行 1 列の信号に接続します。ここで、Nc は [バリア証明書の数] パラメーターに等しくなります。
プラント状態に対する制御バリア関数の偏導関数。
[qx] を Nc 行 Nx 列の信号に接続します。ここで、Nc は [バリア証明書の数] パラメーターに等しく、Nx は [状態数] パラメーターに等しくなります。
アクション信号の実行時の上限を指定するには、この入力端子を有効にします。この端子が無効化されている場合、ブロックは制御動作に上限を適用しません。
[アクション数] パラメーターが 1 の場合、umax をスカラー信号に接続します。そうでない場合、umax を長さが [アクション数] に等しいベクトル信号に接続します。
依存関係
この入力端子を有効にするには、[上限 (umax) に外部ソースを使用] パラメーターを選択します。
アクション信号の実行時の下限を指定するには、この入力端子を有効にします。この端子が無効化されている場合、ブロックは制御動作に下限を適用しません。
[アクション数] パラメーターが 1 の場合、umin をスカラー信号に接続します。そうでない場合、umin を長さが [アクション数] に等しいベクトル信号に接続します。
依存関係
この入力端子を有効にするには、[下限 (umin) に外部ソースを使用] パラメーターを選択します。
出力
QP ソルバーによって返される変更済み制御動作。
ソルバーが最大反復回数に達する前に解を見つけた場合、u* はこの最適解を出力します。
ソルバーが最大反復回数に達した場合、最適化は停止し、u* は準最適解を出力します。
最初の最適化問題が実行不可能な場合、返される制御動作は、ブロックが制約またはアクション範囲を無視するように設定されているかどうかにより異なります。詳細については、[exitflag] パラメーターを参照してください。
[アクション数] パラメーターが 1 の場合、u* はスカラー信号を出力します。そうでない場合、u* は、長さが [アクション数] に等しいベクトル信号を出力します。
QP ソルバーの最適化ステータス。次の表に取り得るステータス値を示します。
| 終了フラグ | 説明 |
|---|---|
1 | ソルバーは、すべての制約と範囲が有効な状態で最適解に収束しました。この場合、u* は最適な制御動作を出力します。 |
0 | ソルバーが最大反復回数に達しました。u* の制御動作の出力は、準最適の場合があります。 |
| 負の整数 | 最初の最適化問題が実行不可能であり、次のいずれかのシナリオが適用されます。
この場合、u* の制御動作の出力はゼロです。 |
依存関係
この出力端子を有効にするには、[最適化ステータス] パラメーターを選択します。
パラメーター
[パラメーター] タブ
プラントの状態の数を指定します。
プログラムでの使用
ブロック パラメーター: nx |
| タイプ: 文字ベクトル |
既定: '1' |
範囲を適用し、最適化するアクションの数を指定します。
プログラムでの使用
ブロック パラメーター: nu |
| タイプ: 文字ベクトル |
既定: '1' |
適用するバリア証明書の制約の数を指定します。
プログラムでの使用
ブロック パラメーター: nc |
| タイプ: 文字ベクトル |
既定: '1' |
バリア証明書の制約に制約係数 γ を指定します。
[バリア証明書の数] パラメーターが 1 の場合、[制約係数] を有限の正のスカラーとして指定します。そうでない場合、[制約係数] を有限の正のスカラー値または [バリア証明書の数] と等しい長さの正のスカラーの列ベクトルとして指定できます。
プログラムでの使用
ブロック パラメーター: gamma |
| タイプ: 文字ベクトル |
既定: '10' |
バリア証明書の制約に制約指数 β を指定します。
[バリア証明書の数] パラメーターが 1 の場合、[制約指数] を正の奇数の整数として指定します。そうでない場合、[制約指数] を正の奇数の整数または [バリア証明書の数] と等しい長さをもつ正の奇数の整数の列ベクトルとして指定できます。
プログラムでの使用
ブロック パラメーター: beta |
| タイプ: 文字ベクトル |
既定: '1' |
このパラメーターを選択して、アクションの外部上限の umax 入力端子を追加します。
プログラムでの使用
ブロック パラメーター: external_umax |
| タイプ: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
このパラメーターを選択して、アクションの外部下限の umin 入力端子を追加します。
プログラムでの使用
ブロック パラメーター: external_umin |
| タイプ: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
[ブロック] タブ
出力データ型を指定します。
"データ型アシスタント" は、データ属性の設定に役立ちます。"データ型アシスタント" を使用するには、
をクリックします。
次のデータ型を指定できます。
組み込み—[single]または[double]データ型。式— 型を指定する MATLAB 式を使用。
詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
最適化を実行するサンプル時間を指定します。
プログラムでの使用
ブロック パラメーター: Ts |
| タイプ: 文字ベクトル |
既定: '0.1' |
最適化を反復する最大回数を指定します。
プログラムでの使用
ブロック パラメーター: maxiter |
| タイプ: 文字ベクトル |
既定: '200' |
制約違反の許容誤差の値を指定します。
プログラムでの使用
ブロック パラメーター: tol |
| タイプ: 文字ベクトル |
既定: '1e-6' |
このパラメーターを選択して、QP ソルバーの最適化ステータスに対する [exitflag] 出力端子を追加します。
プログラムでの使用
ブロック パラメーター: exitflag |
| タイプ: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2022a で導入R2026a から、Barrier Certificate Enforcement ブロックの名前は Control Barrier Function ブロックに変更されています。
Barrier Certificate Enforcement ブロックは Simulink Control Design/Constraint Control サブライブラリに含まれるようになりました。
R2023b では、以前のリリースで保存されたモデルを開くと、Barrier Certificate Enforcement ブロックのライブラリ リンクが自動的に更新されます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)



