このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Extremum Seeking Control
ライブラリ:
Simulink Control Design /
Adaptive Control
説明
Extremum Seeking Control ブロックは、コントローラー パラメーターを調整して目的関数を最大化します。極値探索コントローラーは、モデルに依存しない適応コントローラーであり、システム ダイナミクスが不明な場合や制御パラメーターから目的関数へのマッピングが不明な場合の適応に役立ちます。複数のパラメーターを探索する場合、Extremum Seeking Control ブロックはパラメーターごとに別々の調整ループを使用します。
Extremum Seeking Control ブロックは、パラメーターを正弦波信号で変調し (摂動を加え)、結果として得られる摂動を加えられた目的関数を復調することで、最適な制御パラメーターを探します。
極値探索アルゴリズムを構成するには、適切な強制周波数、復調信号と変調信号、学習率、およびパラメーターの初期条件を設定します。ブロックを構成する際は、必ずシステム ダイナミクスの時間スケールが最も高速で、摂動の強制周波数の時間スケールが中間、フィルターのカットオフ周波数の時間スケールが最も低速になるようにします。
連続時間と離散時間の両方の極値探索コントローラーを実装できます。コントローラーの時間領域を変更すると、調整ループで使用されるハイパス フィルター、ローパス フィルター、および積分器の時間領域に影響します。ハードウェアに展開可能な Extremum Seeking Control ブロックのコードを生成するには、離散時間コントローラーを使用してください。
詳細については、極値探索制御を参照してください。
例
不確かさをもつシステムの参照モデルに対する極値探索制御
不確かさをもつ動的なシステムにフィードフォワード ゲインおよびフィードバック ゲインを適応することにより、参照プラント モデルを追従します。
極値探索制御を使用したアダプティブ クルーズ コントロール
アダプティブ クルーズ コントロール システムのコントローラー ゲインを調整するための極値探索コントローラーを設計する。
端子
入力
J — 目的関数
スカラー
摂動を加えられたパラメーター theta に対するシステム応答の結果として制御システムに摂動を加える目的関数。パラメーター更新を計算するために、ブロックは J をフィルター処理して復調します。
出力
theta — 摂動を加えられたパラメーター
スカラー | ベクトル
これらの摂動を加えられたパラメーター (θ) を制御システムに適用します。ブロックは、目的関数 J の結果として得られる摂動を使用してパラメーター更新を計算します。
[パラメーター数] が 1
の場合、theta はスカラー信号を出力します。それ以外の場合、theta は [パラメーター数] と等しい長さのベクトル信号を出力します。
theta_hat — 推定されたパラメーター
スカラー | ベクトル
この出力端子は、変調信号によって摂動を加えられる前の推定パラメーター値 () を取得するために使用します。
[パラメーター数] が 1
の場合、theta_hat はスカラー信号を出力します。それ以外の場合、theta_hat は [パラメーター数] と等しい長さのベクトル信号を出力します。
依存関係
この出力端子を有効にするには、[推定パラメーターの出力] を選択します。
パラメーター
時間領域 — フィルターおよび積分器の時間領域
連続時間 (既定値) | 離散時間
ハイパス フィルター、ローパス フィルター、および積分器の時間領域を指定します。
連続時間 — 連続時間のフィルターおよび積分器を使用します。
離散時間 — 離散時間のフィルターおよび積分器を使用します。[サンプル時間] パラメーターを使用してサンプル時間を指定し、[積分手法] パラメーターを使用して積分手法を指定します。
プログラムでの使用
ブロック パラメーター: 'timeDomainStatus' |
型: 文字ベクトル |
値: 'Continuous Time' | 'Discrete Time' |
既定: 'Continuous Time' |
サンプル時間 — 離散時間のフィルターおよび積分器のサンプル時間
0.1
(既定値) | 有限の正のスカラー
離散時間のハイパス フィルター、ローパス フィルター、および積分器のサンプル時間を指定します。
複数のパラメーターを調整する場合、すべての調整ループで同じサンプル時間が使用されます。
依存関係
このパラメーターを有効にするには、[時間領域] プロパティを [離散時間] に設定します。
プログラムでの使用
ブロック パラメーター: 'SampleTime' |
型: 文字ベクトル |
値: 有限の正のスカラー |
既定: '0.1' |
積分手法 — 離散時間の積分手法
前進型オイラー
(既定値) | 後退型オイラー
| 台形則
離散時間積分器に対して、次のいずれかの積分手法を選択できます。
前進型オイラー
:後退型オイラー
:台形則
:
ここで
y は積分器の出力
u は入力
n は現在のサンプル時間
Ts はサンプル時間
複数のパラメーターを調整する場合、すべての調整ループの積分器で同じ積分手法が使用されます。
依存関係
このパラメーターを有効にするには、[時間領域] プロパティを [離散時間] に設定します。
プログラムでの使用
ブロック パラメーター: 'IntegratorMethods' |
型: 文字ベクトル |
値: 'Forward Euler' | 'Backward Euler' | 'Trapezoidal' |
既定: 'Forward Euler' |
パラメーター数 — パラメーター数
1
(既定値) | 5 以下の正の整数
最大 5 つのパラメーターを同時に調整できます。ブロックはパラメーターごとに別々の調整ループを使用します。
プログラムでの使用
ブロック パラメーター: 'paramCount' |
型: 文字ベクトル |
値: 5 未満の正の整数 |
既定: '1' |
初期条件 x0 — 初期パラメーター値
0
(既定値) | 有限のスカラー | ベクトル
パラメーター更新積分器の初期条件に対応する初期パラメーター値。
[パラメーター数] が 1
の場合、[初期条件] を有限のスカラーとして指定します。
複数のパラメーターに異なる初期条件を指定するには、[初期条件] を [パラメーター数] と等しい長さの有限値のベクトルとして指定します。それ以外の場合、すべてのパラメーターに同じ初期条件を指定するには、[初期条件] を有限のスカラーとして指定します。
プログラムでの使用
ブロック パラメーター: 'initialVal' |
型: 文字ベクトル |
値: 有限のスカラー | ベクトル |
既定: '0' |
強制周波数 omega (rad/s) — 強制周波数
1
(既定値) | 正の有限のスカラー | ベクトル
変調信号と復調信号の周波数 (ラジアン/秒) を指定します。それぞれのパラメーター調整ループについて、重要なシステム ダイナミクスの周波数よりも低く、ハイパス フィルターとローパス フィルターのカットオフ周波数よりも高くなるように強制周波数を指定します。
単一のパラメーターを調整する場合、[強制周波数] を正の有限のスカラーとして指定します。
複数のパラメーターを調整する場合、[強制周波数] を [パラメーター数] と等しい長さの正の有限値のベクトルとして指定します。強制周波数はそれぞれ一意でなければならず、極値探索アルゴリズムの収束を可能とするものでなければなりません。
プログラムでの使用
ブロック パラメーター: 'omega' |
型: 文字ベクトル |
値: 正の有限のスカラー | ベクトル |
既定: '1' |
学習率 k — パラメーター更新頻度
1
(既定値) | 正の有限のスカラー | ベクトル
学習率は、ブロックがパラメーターを更新する頻度を制御するゲイン係数です。
単一のパラメーターを調整する場合、[学習率] を正の有限のスカラーとして指定します。
複数のパラメーターを調整する場合、それぞれのパラメーター調整ループに異なる学習率を指定できます。これを行うには、[学習率] を [パラメーター数] と等しい長さの正の有限値のベクトルとして指定します。それ以外の場合、すべての調整ループに同じ学習率を指定するには、[学習率] を正の有限のスカラーとして指定します。
プログラムでの使用
ブロック パラメーター: 'gain' |
型: 文字ベクトル |
値: 正の有限のスカラー | ベクトル |
既定: '1' |
復調の振幅 a — 復調信号の振幅
1
(既定値) | 正の有限のスカラー | ベクトル
目的関数の復調に使用する信号の振幅を指定します。ほとんどの用途では、[復調の振幅] ≫ [変調の振幅] となるように指定します。これらの振幅の積と学習率の組み合わせでアルゴリズムの収束速度を制御します。
単一のパラメーターを調整する場合、[復調の振幅] を正の有限のスカラーとして指定します。
複数のパラメーターを調整する場合、それぞれのパラメーター調整ループに異なる復調の振幅を指定できます。これを行うには、[復調の振幅] を [パラメーター数] と等しい長さの正の有限値のベクトルとして指定します。それ以外の場合、すべての調整ループに同じ振幅を指定するには、[復調の振幅] を正の有限のスカラーとして指定します。
プログラムでの使用
ブロック パラメーター: 'demodAmp' |
型: 文字ベクトル |
既定: '1' |
復調の位相 phi_1 (rad) — 復調信号の位相
0
(既定値) | 正の有限のスカラー | ベクトル
目的関数の復調に使用する信号の位相 ϕ1 (ラジアン) を指定します。
単一のパラメーターを調整する場合、[復調の位相] を正の有限のスカラーとして指定します。
複数のパラメーターを調整する場合、それぞれのパラメーター調整ループに異なる復調の位相を指定できます。これを行うには、[復調の位相] を [パラメーター数] と等しい長さの正の有限値のベクトルとして指定します。それ以外の場合、すべての調整ループに同じ位相を指定するには、[復調の位相] を正の有限のスカラーとして指定します。
復調の位相と変調の位相は、条件 cos(ϕ1–ϕ2) > 0 を満たさなければなりません。
プログラムでの使用
ブロック パラメーター: 'demodPhase' |
型: 文字ベクトル |
値: 正の有限のスカラー | ベクトル |
既定: '0' |
変調の振幅 b — 変調信号の振幅
0.1
(既定値) | 正の有限のスカラー | ベクトル
推定パラメーターに加える摂動信号の振幅。ほとんどの用途では、[変調の振幅] ≪ [復調の振幅] となるように指定します。これらの振幅の積と学習率の組み合わせでアルゴリズムの収束速度を制御します。
単一のパラメーターを調整する場合、[変調の振幅] を正の有限のスカラーとして指定します。
複数のパラメーターを調整する場合、それぞれのパラメーター調整ループに異なる変調の振幅を指定できます。これを行うには、[変調の振幅] を [パラメーター数] と等しい長さの正の有限値のベクトルとして指定します。それ以外の場合、すべての調整ループに同じ振幅を指定するには、[変調の振幅] を正の有限のスカラーとして指定します。
プログラムでの使用
ブロック パラメーター: 'modAmp' |
型: 文字ベクトル |
値: 正の有限のスカラー | ベクトル |
既定: '0.1' |
変調の位相 phi_2 (rad) — 変調信号の位相
0
(既定値) | 正の有限のスカラー | ベクトル
推定パラメーターに加える摂動信号の位相 ϕ2 (ラジアンで指定)。復調の位相 ϕ1 と変調の位相 ϕ2 が cos(ϕ1–ϕ2) > 0 となるように位相を選択しなければなりません。
単一のパラメーターを調整する場合、[変調の位相] を正の有限のスカラーとして指定します。
複数のパラメーターを調整する場合、それぞれのパラメーター調整ループに異なる変調の位相を指定できます。これを行うには、[変調の位相] を [パラメーター数] と等しい長さの正の有限値のベクトルとして指定します。それ以外の場合、すべての調整ループに同じ位相を指定するには、[変調の位相] を正の有限のスカラーとして指定します。
プログラムでの使用
ブロック パラメーター: 'modPhase' |
型: 文字ベクトル |
値: 正の有限のスカラー | ベクトル |
既定: '0' |
HPF の有効化 — 目的関数の信号に対するハイパス フィルターを有効化
off
(既定値) | on
このパラメーターを選択すると、復調段階の前に目的関数の信号から信号バイアスを除去するハイパス フィルターが有効になります。フィルターのカットオフ周波数の指定には、[HPF 周波数] パラメーターを使用します。
プログラムでの使用
ブロック パラメーター: 'highPassEnable' |
型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
HPF 周波数 omega_h (rad/s) — ハイパス フィルターのカットオフ周波数
1
(既定値) | 正の有限のスカラー | ベクトル
目的関数の信号に対するハイパス フィルターのカットオフ周波数 ωh (ラジアン/秒で指定)。それぞれのパラメーター調整ループについて、ωh < ω/(2π) となるようにカットオフ周波数を指定します (ω は対応する強制周波数)。
単一のパラメーターを調整する場合、[HPF 周波数] を正の有限のスカラーとして指定します。
複数のパラメーターを調整する場合、それぞれのパラメーター調整ループに異なる周波数を指定できます。これを行うには、[HPF 周波数] を [パラメーター数] と等しい長さの正の有限値のベクトルとして指定します。それ以外の場合、すべての調整ループに同じ周波数を指定するには、[HPF 周波数] を正の有限のスカラーとして指定します。
依存関係
このパラメーターを有効にするには、[HPF の有効化] パラメーターを選択します。
プログラムでの使用
ブロック パラメーター: 'highPassCutoff' |
型: 文字ベクトル |
値: 正の有限のスカラー | ベクトル |
既定: '1' |
LPF の有効化 — 復調された信号に対するローパス フィルターを有効化
off
(既定値) | on
このパラメーターを選択すると、パラメーター更新段階の前に復調された信号から高周波数成分を除去するローパス フィルターが有効になります。フィルターのカットオフ周波数の指定には、[LPF 周波数] パラメーターを使用します。
依存関係
このパラメーターを有効にするには、[LPF の有効化] パラメーターを選択します。
プログラムでの使用
ブロック パラメーター: 'lowPassEnable' |
型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
LPF 周波数 omega_l (rad/s) — ローパス フィルターのカットオフ周波数 ωl
1
(既定値) | 正の有限のスカラー | ベクトル
復調された信号に対するローパス フィルターのカットオフ周波数 ωl (ラジアン/秒で指定)。それぞれのパラメーター調整ループについて、ωl > ω/(2π) となるようにカットオフ周波数を指定します (ω は対応する強制周波数)。
単一のパラメーターを調整する場合、[LPF 周波数] を正の有限のスカラーとして指定します。
複数のパラメーターを調整する場合、それぞれのパラメーター調整ループに異なる周波数を指定できます。これを行うには、[LPF 周波数] を [パラメーター数] と等しい長さの正の有限値のベクトルとして指定します。それ以外の場合、すべての調整ループに同じ周波数を指定するには、[LPF 周波数] を正の有限のスカラーとして指定します。
依存関係
このパラメーターを有効にするには、[LPF の有効化] パラメーターを選択します。
プログラムでの使用
ブロック パラメーター: 'lowPassCutoff' |
型: 文字ベクトル |
値: 正の有限のスカラー | ベクトル |
既定: '1' |
推定パラメーターの出力 — 推定パラメーターの出力端子を追加
off
(既定値) | on
このパラメーターを選択すると、theta_hat 出力端子が追加されます。
プログラムでの使用
ブロック パラメーター: estimatedVarOn |
型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
Extremum Seeking Control ブロックは、倍精度の信号のコード生成のみをサポートします。
Extremum Seeking Control ブロックは、ラピッド アクセラレータ モードでの実行時はデータ ログをサポートしません。
ハードウェアに展開可能な Extremum Seeking Control ブロックのコードを生成するには、離散時間コントローラーを使用してください。そのためには、[時間領域] パラメーターを [離散時間] に設定します。
バージョン履歴
R2021a で導入R2023b: ライブラリの場所の変更
Extremum Seeking Control ブロックは Simulink Control Design/Adaptive Control サブライブラリに含まれるようになりました。
R2023b では、以前のリリースで保存されたモデルを開くと、Extremum Seeking Control ブロックのライブラリ リンクが自動的に更新されます。
R2021b: 離散時間極値探索コントローラー
離散時間のハイパスおよびローパス フィルターおよび離散時間積分器をもつ極値探索コントローラーを設計できるようになりました。これにより、このコントローラー用のコードを生成し、ハードウェア ターゲットに展開できます。
参考
トピック
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)