Barrier Certificate Enforcement
ライブラリ:
Simulink Control Design /
Constraint Control
説明
Barrier Certificate Enforcement ブロックは、バリア証明書の制約とアクション範囲に従って、指定された制御動作の最も近くにある変更された制御動作を計算します。
このブロックは、二次計画法 (QP) ソルバーを使用して、関数 を最小化する制御動作 u を検出します。ここで、u0 は変更されていない制御動作です。
ソルバーは、以下の制約を最適化問題に適用します。
ここで
fx と gx は、プラント ダイナミクス によって定義される関数。
hx は制御バリア関数。
qx は状態 x に対する制御バリア関数の偏導関数。
γ は制約係数。
β は制約指数。
umin は制御動作の下限。
umax は制御動作の上限。
Barrier Certificate Enforcement ブロックには、Optimization Toolbox™ ソフトウェアが必要です。
バリア証明書の適用の詳細については、制御設計へのバリア証明書の適用を参照してください。
例
端子
入力
u0 — 制御動作
スカラー | ベクトル
変更されていない制御動作。スカラーまたはベクトルとして指定します。
[アクション数] パラメーターが 1
の場合、u0 をスカラー信号に接続します。そうでない場合、u0 を長さが [アクション数] に等しいベクトル信号に接続します。
fx — ステート関数
スカラー | ベクトル
次のプラント ダイナミクスの方程式のステート関数 f(x)。
[fx] を Nx 行 1 列の信号に接続します。ここで、Nx は [状態数] パラメーターに等しくなります。
gx — 入力関数
スカラー | ベクトル | 行列
次のプラント ダイナミクスの方程式の入力関数 g(x)。
[gx] を Nx 行 Nu 列の信号に接続します。ここで、Nx は [状態数] パラメーターに等しく、Nu は [アクション数] パラメーターに等しくなります。
hx — 制御バリア関数
スカラー | ベクトル
制御バリア関数。以下のプラント状態の安全セットとして定義されます。
[hx] を Nc 行 1 列の信号に接続します。ここで、Nc は [バリア証明書の数] パラメーターに等しくなります。
qx — 制御バリア関数の偏導関数
スカラー | ベクトル | 行列
プラント状態に対する制御バリア関数の偏導関数。
[qx] を Nc 行 Nx 列の信号に接続します。ここで、Nc は [バリア証明書の数] パラメーターに等しく、Nx は [状態数] パラメーターに等しくなります。
umax — アクション信号の上限
スカラー | ベクトル
アクション信号の実行時の上限を指定するには、この入力端子を有効にします。この端子が無効化されている場合、ブロックは制御動作に上限を適用しません。
[アクション数] パラメーターが 1
の場合、umax をスカラー信号に接続します。そうでない場合、umax を長さが [アクション数] に等しいベクトル信号に接続します。
依存関係
この入力端子を有効にするには、[上限 (umax) に外部ソースを使用] パラメーターを選択します。
umin — アクション信号の下限
スカラー | ベクトル
アクション信号の実行時の下限を指定するには、この入力端子を有効にします。この端子が無効化されている場合、ブロックは制御動作に下限を適用しません。
[アクション数] パラメーターが 1
の場合、umin をスカラー信号に接続します。そうでない場合、umin を長さが [アクション数] に等しいベクトル信号に接続します。
依存関係
この入力端子を有効にするには、[下限 (umin) に外部ソースを使用] パラメーターを選択します。
出力
u* — 変更済み制御動作
スカラー | ベクトル
QP ソルバーによって返される変更済み制御動作。
ソルバーが最大反復回数に達する前に解を見つけた場合、u* はこの最適解を出力します。
ソルバーが最大反復回数に達した場合、最適化は停止し、u* は準最適解を出力します。
最初の最適化問題が実行不可能な場合、返される制御動作は、ブロックが制約またはアクション範囲を無視するように設定されているかどうかにより異なります。詳細については、[exitflag] パラメーターを参照してください。
[アクション数] パラメーターが 1
の場合、u* はスカラー信号を出力します。そうでない場合、u* は、長さが [アクション数] に等しいベクトル信号を出力します。
exitflag — 最適化ステータス
1
| 0
| 負の整数
QP ソルバーの最適化ステータス。次の表に取り得るステータス値を示します。
終了フラグ | 説明 |
---|---|
1 | ソルバーは、すべての制約と範囲が有効な状態で最適解に収束しました。この場合、u* は最適な制御動作を出力します。 |
0 | ソルバーが最大反復回数に達しました。u* の制御動作の出力は、準最適の場合があります。 |
負の整数 | 最初の最適化問題が実行不可能であり、次のいずれかのシナリオが適用されます。
この場合、u* の制御動作の出力はゼロです。 |
依存関係
この出力端子を有効にするには、[最適化ステータス] パラメーターを選択します。
パラメーター
状態数 — プラント状態の数
1
(既定値) | 正の整数
プラントの状態の数を指定します。
プログラムでの使用
ブロック パラメーター: nx |
型: 文字ベクトル |
既定: '1' |
アクション数 — 制御動作の数
1
(既定値) | 正の整数
範囲を適用し、最適化するアクションの数を指定します。
プログラムでの使用
ブロック パラメーター: nu |
型: 文字ベクトル |
既定: '1' |
バリア証明書の数 — バリア証明書の制約の数
1
(既定値) | 正の整数
適用するバリア証明書の制約の数を指定します。
プログラムでの使用
ブロック パラメーター: nc |
型: 文字ベクトル |
既定: '1' |
制約係数 — 制約係数
10
(既定値) | 正のスカラー | ベクトル
バリア証明書の制約に制約係数 γ を指定します。
[バリア証明書の数] パラメーターが 1
の場合、[制約係数] を有限の正のスカラーとして指定します。そうでない場合、[制約係数] を有限の正のスカラー値または [バリア証明書の数] と等しい長さの正のスカラーの列ベクトルとして指定できます。
プログラムでの使用
ブロック パラメーター: gamma |
型: 文字ベクトル |
既定: '10' |
制約指数 — 制約指数
1
(既定値) | 正の奇数の整数 | ベクトル
バリア証明書の制約に制約指数 β を指定します。
[バリア証明書の数] パラメーターが 1
の場合、[制約指数] を正の奇数の整数として指定します。そうでない場合、[制約指数] を正の奇数の整数または [バリア証明書の数] と等しい長さをもつ正の奇数の整数の列ベクトルとして指定できます。
プログラムでの使用
ブロック パラメーター: beta |
型: 文字ベクトル |
既定: '1' |
上限 (umax) に外部ソースを使用 — アクションの上限の入力端子を追加
off
(既定値) | on
このパラメーターを選択して、アクションの外部上限の umax 入力端子を追加します。
プログラムでの使用
ブロック パラメーター: external_umax |
型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
下限 (umin) に外部ソースを使用 — アクションの下限の入力端子を追加
off (既定値) | on
このパラメーターを選択して、アクションの外部下限の umin 入力端子を追加します。
プログラムでの使用
ブロック パラメーター: external_umin |
型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
サンプル時間 — 最適化サンプル時間
0.1
(既定値) | 正のスカラー
最適化を実行するサンプル時間を指定します。
プログラムでの使用
ブロック パラメーター: Ts |
型: 文字ベクトル |
既定: '0.1' |
最大反復回数 — 最適化の最大反復回数
200
(既定値) | 正の整数
最適化を反復する最大回数を指定します。
プログラムでの使用
ブロック パラメーター: maxiter |
型: 文字ベクトル |
既定: '200' |
制約の許容誤差 — 制約違反の許容誤差
1e-6
(既定値) | 非負のスカラー
制約違反の許容誤差の値を指定します。
プログラムでの使用
ブロック パラメーター: tol |
型: 文字ベクトル |
既定: '1e-6' |
最適化ステータス — 終了フラグ出力端子を追加
off
(既定値) | on
このパラメーターを選択して、QP ソルバーの最適化ステータスに対する [exitflag] 出力端子を追加します。
プログラムでの使用
ブロック パラメーター: exitflag |
型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
Barrier Certificate Enforcement ブロックは、倍精度の信号のコード生成のみをサポートします。
バージョン履歴
R2022a で導入R2023b: ライブラリの場所の変更
Barrier Certificate Enforcement ブロックは Simulink Control Design/Constraint Control サブライブラリに含まれるようになりました。
R2023b では、以前のリリースで保存されたモデルを開くと、Barrier Certificate Enforcement ブロックのライブラリ リンクが自動的に更新されます。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)