ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

このページは前リリースの情報です。該当の英語のページはこのリリースで更新されています。このリリースの英語のドキュメンテーションを参照するには、言語設定を United States に変更してください。

systune

クラス: slTunable

Simulink での固定構造体制御システム パラメーターの調整

構文

[ST,fSoft] = systune(ST0,SoftReqs)
[ST,fSoft,gHard] = systune(ST0,SoftReqs,HardReqs)
[ST,fSoft,gHard] = systune(ST0,SoftReqs,HardReqs,options)
[ST,fSoft,gHard,info] = systune(___)

説明

[ST,fSoft] = systune(ST0,SoftReqs) は、slTunable インターフェイスの ST0 によって記述される Simulink® 制御システムの自由パラメーターを調整します。systune コマンドは、柔軟な調整要件 SoftReqs を最もよく満たすようにパラメーターを調整し、得られる最善の柔軟な制約値を fSoft として返します。

[ST,fSoft,gHard] = systune(ST0,SoftReqs,HardReqs) は、厳密な調整要件 (制約) を満たすことを条件に、柔軟な調整要件を最もよく満たすように制御システムを調整します。柔軟な制約と厳密な制約に対して得られる最善の値を返します。

[ST,fSoft,gHard] = systune(ST0,SoftReqs,HardReqs,options) は最適化のオプションを指定します。

[ST,fSoft,gHard,info] = systune(___) はそれぞれの最適化の実行に関する詳細情報も返します。

ヒント

  • slTunable.systune によって、Simulink モデルに記述されている制御システムに対し Robust Control Toolbox™ の調整コマンド systune が使用できるようになります。slTunable を使用すると、Simulink モデルと systune コマンドのインターフェイスが提供され、システムのコンポーネントのうち systune で調整が可能なものを識別できるようになります。slTunable.systune を使用するには、Robust Control Toolbox ソフトウェアが必要です。

入力引数

ST0

調整する Simulink 制御システムを表す slTunable インターフェイス オブジェクト。slTunable インターフェイスの作成および構成方法の詳細は、slTunable のリファレンス ページを参照してください。

SoftReqs

TuningGoal 要件オブジェクトのベクトルとして指定された、制御システム調整のための柔軟な調整要件 (目標)。これらの要件オブジェクトには、TuningGoal.TrackingTuningGoal.Gain または TuningGoal.Margins を含めることができます (完全なリストはを参照してください)。

systune は、厳密な調整要件 (ある場合) を満たすことを条件に、柔軟な調整要件が最小化されるように制御システムの調整可能パラメーターを調整します。

HardReqs

TuningGoal 要件オブジェクトのベクトルとして指定された、制御システム調整のための厳密な調整要件 (制約)。これらの要件オブジェクトには、TuningGoal.TrackingTuningGoal.Gain または TuningGoal.Margins を含めることができます (完全なリストはを参照してください)。

systune はそれぞれの厳密な調整要件を正規化されたスカラー値に変換します。次に systune は、正規化された値が最小限となるように自由パラメーターを最適化します。厳密な要件は、正規化された値が 1 よりも小さい場合に満たされます。

既定値: []

options

systuneOptions で作成するオプションのセットとして指定された、調整アルゴリズムのオプション。使用できるオプションは、次のとおりです。

  • 自由パラメーターの乱数の初期値から始める、追加の最適化の実行回数

  • 最適化を終了する許容誤差

  • 並行処理使用のフラグ

出力引数

ST

調整された ST0

viewSpec を使用して、グラフィカルに設計を検証します。slTunable.writeBlockValue を使用して、調整されたパラメーター値を Simulink モデルに適用します。

fSoft

ベクトルとして返される、得られる最善の柔軟な制約値。systune は柔軟な要件を制御システムの自由パラメーターの関数に変換します。次にこのコマンドは、厳密な制約に従って関数が最小化されるようにパラメーターを調整します (「アルゴリズム」を参照)。fSoft には、それぞれの柔軟な制約に対して得られる最善の値が含まれます。これらの値は、SoftReqs で指定されている制約と同じ順序で fSoft に現れます。fSoft の値は、厳密な制約が満たされるときにのみ意味があります。

gHard

ベクトルとして返される、得られる最善の厳密な制約値。systune は厳密な要件を制御システムの自由パラメーターの関数に変換します。次にこのコマンドは、これらの値が 1 より小さくなるようにパラメーターを調整します (「アルゴリズム」を参照してください)。gHard には、それぞれの厳密な制約に対し得られる最善の値が含まれます。これらの値は、HardReqs で指定される制約と同じ順序で gHard に現れます。すべての値が 1 より小さい場合は厳密な制約が満たされます。

info

データ構造体として返される、それぞれの最適化実行の詳細情報。最適化の詳細結果を調べる以外にも、info は、調整された MIMO システムの検証に際して viewSpec への入力として使用できます。info には、viewSpec が MIMO の開ループ要件を正しく評価するために必要なループ整形や安定余裕などのスケーリング データが含まれています。

info のフィールドは、以下のとおりです。

Run

スカラーとして返される実行番号。systuneOptionsRandomStart オプションを使用して複数の最適化を実行する場合、info は構造体配列で、info.Run はインデックスです。

Iterations

スカラーとして返される、実行時の反復処理の合計回数。

fBest

スカラーとして返される、全体で最善の柔軟な制約値。systune は柔軟な要件を制御システムの自由パラメーターの関数に変換します。次にこのコマンドは、厳密な制約に従って関数が最小化されるようにパラメーターを調整します (アルゴリズム を参照)。info.fBest は最後の反復での柔軟な制約の最大値です。この値は、厳密な制約が満たされる場合にのみ意味があります。

gBest

スカラーとして返される、全体で最善の厳密な制約値。systune は厳密な要件を制御システムの自由パラメーターの関数に変換します。次にこのコマンドは、これらの値が 1 より小さくなるようにパラメーターを調整します (「アルゴリズム」を参照してください)。info.gBest は、最終の反復での厳密な制約の最大値です。この値が厳密な制約を満たすには、1 より小さくなければなりません。

fSoft

ベクトルとして返される、個々の柔軟な制約値。systune はそれぞれの柔軟な要件を、制御システムの自由パラメーターの関数である正規化された値に変換します。次にこのコマンドは、厳密な制約に従って値が最小化されるようにパラメーターを調整します (「アルゴリズム」を参照してください)。info.fSoft には、各実行終了時における柔軟な制約の個々の値が含まれます。これらの値は、SoftReqs で指定される制約と同じ順序で fSoft に現れます。

gHard

ベクトルとして返される、個々の厳密な制約値。systune はそれぞれの厳密な要件を、制御システムの自由パラメーターの関数である正規化された値に変換します。次にこのコマンドは、それらの値を最小化するようにパラメーターを調整します。厳密な要件は、その値が 1 よりも小さい場合に満たされます (「アルゴリズム」を参照してください)。info.gHard には、各実行終了時における厳密な制約の個々の値が含まれます。これらの値は、HardReqs で指定される制約と同じ順序で gHard に現れます。

MinDecay

ベクトルとして返される、閉ループ極の最小減衰率。

既定では、調整されたシステムの閉ループの極配置は Re(p) < –10–7 を満たすよう制約されています。この制約を変更するには、systuneOptionsMinDecay オプションを使用します。

Blocks

構造体として返される、調整された制御システム CL の調整可能ブロックとパラメーターの調整値。getBlockValue または showBlockValue を使用して、調整されたパラメーター値にアクセスすることもできます。

LoopScaling

状態空間モデルとして返される、MIMO 調整要件を評価するための最適対角スケーリング。

マルチループ制御システムに適用された場合、TuningGoal.LoopShape および TuningGoal.Margins の要件は適用対象の個々のループ伝達関数のスケーリングに影響されやすくなります。systune はスケーリングに関する問題を自動的に修正し、info.LoopScaling の状態空間モデルとして最適対角スケーリング行列 d を返します。

D の各対角要素に関連付けられたループ チャンネルは info.LoopScaling.InputName にリストされます。スケーリングされたループ伝達は D\L*D です。ここで、Linfo.LoopScaling.InputName の位置で測定された開ループ伝達です。

アルゴリズム

x は、調整する制御システムの調整可能パラメーターのベクトルです。systune は、柔軟な制約および厳密な制約である SoftReqs(i)HardReqs(j) をそれぞれ、正規化された値の fi(x) と gj(x) に変換します。そのうえで、systune が最小化問題を解きます。

を条件として、 に対して を最小化します。

xmin と xmax は自由パラメーターの最小値と最大値です。

systune は、最小化問題の最良解の値に合わせて調整されたパラメーターをもつ制御システム ST を返します。systune はまた、fi(x) および gj(x) の最善の値をそれぞれ fSoftgHard として返します。

各タイプの制約に対する関数 fi(x) および gj(x) の詳細は、それぞれの TuningGoal 要件オブジェクトのリファレンス ページを参照してください。

最適化アルゴリズムの詳細は、[1] を参照してください。

systune は、[2] アルゴリズムと SLICOT ライブラリの構造維持固有ソルバーを使用して H ノルムを計算します。SLICOT ライブラリの詳細は、http://slicot.org を参照してください。

すべて展開する

柔軟な制約に対する制御システムの調整

次の制御システムを、トラッキング、ロールオフ、安定余裕および外乱の抑制のための柔軟な要件に対し調整します。

モデルの slTunable インターフェイスを作成して構成します。

open_system('rct_airframe2')
ST0 = slTunable('rct_airframe2','MIMO Controller');

addControl(ST0,'delta fin');

これらのコマンドはモデルの slTunable インターフェイスを作成し、MIMO Controller ブロックを制御システムの調整可能部分として指定します。

モデルには、az refdelta fin および az の各信号上に既に線形化の入力ポイントがあります。したがって、これらの信号は調整要件の入力として指定できます。同様に、線形化の出力ポイントの eaz は調整要件の出力として使用できます。addControl コマンドは slTunable インターフェイスの Controls 信号に delta fin を追加します。このようにすることで、調整要件を指定する入力および出力の両方として delta fin を使用できるようになります。

トラッキングの要件、ロールオフの要件、安定余裕の要件および外乱の抑制の要件を指定します。

Req1 = TuningGoal.Tracking('az ref','az',1);                 
Req2 = TuningGoal.Gain('delta fin','delta fin',tf(25,[1 0])); 
Req3 = TuningGoal.Margins('delta fin',7,45);                  
MaxGain = frd([2 200 200],[0.02 2 200]);
Req4 = TuningGoal.Gain('delta fin','az',MaxGain);  

Req1 は、azaz ref をトラッキングするよう制約します。次の要件の Req2 は、delta fin で測定された開ループの、点と点を結ぶ伝達関数のゲイン プロファイルを指定することでロールオフの要件を与えます。次の要件の Req3 は、同じポイント間を結ぶ伝達関数に開ループ ゲインと位相余裕を設定します。最後の Req4 は、これらの 2 つのポイント間の最大ゲイン プロファイルを指定することで、delta fin に挿入された az への外乱を抑制します。

これらの調整要件を使用してモデルを調整します。

Options = systuneOptions('RandomStart',3);
[ST1,fSoft,~,Info] = systune(ST0,[Req1,Req2,Req3,Req4],Options);
Final: Soft = 1.13, Hard = -Inf, Iterations = 55
Final: Soft = 1.5, Hard = -Inf, Iterations = 75
Final: Soft = 1.13, Hard = -Inf, Iterations = 92

ST1 は、モデルの MIMO コントローラーの調整可能なパラメーターの調整された値を含む制御システムの slTunable インターフェイスの調整バージョンです。

RandomStart オプションにより、systune は調整可能なパラメーターの異なる乱数値から始めて、独立した 3 回の最適化を実行します。表示される値 Soft は、最適化を実行するたびに得られる最大の正規化された柔軟な制約値です。

柔軟な制約に対して得られた最善の値を調べます。

fSoft =
    1.1327    1.1327    0.5140    1.1327

安定余裕の Req3 のみがすべての周波数に対して満たされています。他の値は小幅とはいえ 1 を超えており、いずれかの周波数で要件の違反があることを示しています。viewSpec を使用して調整後の制御システムのパフォーマンスを要件に対して可視化し、違反が許容できるかどうかを決定します。

参照

[1] P. Apkarian and D. Noll, "Nonsmooth H-infinity Synthesis." IEEE Transactions on Automatic Control, Vol. 51, Number 1, 2006, pp. 71–86.

[2] Bruisma, N.A. and M. Steinbuch, "A Fast Algorithm to Compute the H-Norm of a Transfer Function Matrix," System Control Letters, 14 (1990), pp. 287-293.

参考

| | | | | | | | | |

操作のヒント

この情報は役に立ちましたか?