最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

systuneOptions

systune のオプションの設定

構文

options = systuneOptions
options = systuneOptions(Name,Value)

説明

options = systuneOptions は、systune コマンドのための既定のオプション セットを返します。

options = systuneOptions(Name,Value) は、1 つ以上の Name,Value ペア引数により指定されるオプションをもつオプション セットを作成します。

入力引数

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペア引数を任意の順序で指定できます。

systuneOptions は以下の Name 引数をとります。

'Display'

systune の実行時に表示する情報量。

Display は次の値をとります。

  • 'final' — 各最適化実行の終了時に 1 行の概要を表示します。柔軟な制約を最もよく達成した値 fSoft や厳密な制約を最もよく達成した値 gHard などが表示されます。また、各実行の反復回数も表示されます。

    例:

    Final: Soft = 1.09, Hard = 0.68927, Iterations = 58
  • 'sub' — 各最適化の部分問題の結果を表示します。

    柔軟な調整目標と厳密な調整目標の両方を使用する場合、ソフトウェアは、次の形式をもつ一連の部分問題として最適化を解決します。

    minxmax(αf(x),g(x)).

    ここで、x は調整可能なパラメーターのベクトル、f(x) は柔軟な制約の正規化された最大値、g(x) は厳密な制約の正規化された最大値です (詳細については、systune のリファレンス ページの「アルゴリズム」の節を参照してください)。ソフトウェアは乗算器 α を調整して、部分問題の解決が元の制約付き最適化問題の解決へと収束するようにします。'sub' を選択すると、それらの部分問題のそれぞれの結果がレポートに含まれます。

    例:

    alpha=0.1: Soft = 3.97, Hard = 0.68927, Iterations = 8
    alpha=0.5036: Soft = 1.36, Hard = 0.68927, Iterations = 8
    alpha=1.47: Soft = 1.09, Hard = 0.68927, Iterations = 42
    Final: Soft = 1.09, Hard = 0.68927, Iterations = 58
  • 'iter' — 各反復の後の最適化の進捗を表示します。各反復の後に目的のパラメーターの最小化された値が表示されます。目的のパラメーターは、αf(x) と g(x) の大きい方になります。また、前の反復からの制約の変化率を示す進捗の値も表示されます。

    例:

    Iter 1: Objective = 4.664, Progress = 93%
    Iter 2: Objective = 2.265, Progress = 51.4%
    Iter 3: Objective = 0.7936, Progress = 65%
    Iter 4: Objective = 0.7183, Progress = 9.48%
    Iter 5: Objective = 0.6893, Progress = 4.04%
    Iter 6: Objective = 0.6893, Progress = 0%
    Iter 7: Objective = 0.6893, Progress = 0%
    Iter 8: Objective = 0.6893, Progress = 0%
    alpha=0.1: Soft = 3.97, Hard = 0.68927, Iterations = 8
    Iter 1: Objective = 1.146, Progress = 42.7%
    Iter 2: Objective = 1.01, Progress = 11.9%
    ...
    alpha=1.47: Soft = 1.09, Hard = 0.68927, Iterations = 42
    Final: Soft = 1.09, Hard = 0.68927, Iterations = 58
  • 'off' — サイレント モードで実行し、実行時や実行後に情報を表示しません。

既定値: 'final'

'MaxIter'

各最適化実行で許容誤差内に収束しない場合の最大反復回数。

既定値: 300

'RandomStart'

コントローラーの自由パラメーターの乱数値から開始される追加の最適化の実行回数。

RandomStart = 0 の場合、systune は調整可能なパラメーターの初期値から最適化実行を 1 回実行します。RandomStart = N > 0 に設定すると、N 個の無作為に生成されたパラメーター値から追加の最適化が N 回実行されます。

systune では、ゲインの最小化問題の局所的最小値を探すことで調整を行います。設計要件を満たすパラメーターの値が見つかる可能性を高めるには、RandomStart > 0 に設定します。その後、複数の最適化実行から得られた最適な設計を使用できます。

独立した最適化実行を MATLAB® ワーカーに分散するには、UseParallel = true とともに使用します (Parallel Computing Toolbox™ ソフトウェアが必要)。

既定値: 0

'UseParallel'

並列処理中フラグ。

並列処理を有効にしてランダム化開始点を並列プールのワーカーに分散するには true に設定します。使用可能な並列プールがあれば、ソフトウェアは独立した最適化実行をそのプールのワーカーに分散して同時に実行します。使用可能な並列プールがない場合は、次のいずれかになります。

  • Parallel Computing Toolbox の設定 (Parallel Computing Toolbox)で [parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] が選択されている場合、ソフトウェアはそれらの設定を使用して並列プールを開始します。

  • 設定で [parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] が選択されていない場合、ソフトウェアは並列処理を使用せずに最適化を順次実行します。

設定で [parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] が選択されていない場合、調整コマンドを実行する前に parpool を使用して手動で並列プールを起動できます。

並列処理を使用するには、Parallel Computing Toolbox ソフトウェアが必要です。

既定値: false

'SkipModels'

無視するモデルまたは設計点。線形インデックスの配列として指定します。

ゲイン スケジュール制御システムの調整時に、特定のモデルをスキップしたり計画空間の一部を無視する場合にこのオプションを使用します。たとえば、調整の際に航空機モデルの飛行エンベロープの外にあるグリッド点をスキップしたり、操作範囲の外の点をスキップすることがあります。スキップするモデルを指定するには、調整するモデル配列内で絶対インデックスを使用します。SkipModels を使用すると、各調整目標を再構成しなくても調整の範囲を狭めることが可能です。詳細については、操作条件による要件の変更を参照してください。

既定値: []

'SoftTarget'

柔軟な制約のターゲット値。

柔軟な制約の最大値が SoftTarget の指定値を下回ると最適化が停止します。既定値の SoftTarget = 0 では、厳密な制約を満たすことを条件に柔軟な制約が最小になります。

既定値: 0

'SoftTol'

終了の相対許容誤差。

柔軟な制約の値の相対的な減少幅が 10 回の反復で連続して SoftTol を下回ると最適化が終了します。SoftTol を大きくすると終了までが速くなり、SoftTol を小さくすると最終値が厳密になります。

既定値: 0.001

'SoftScale'

柔軟な制約の最適な値の事前推定。

柔軟な制約と厳密な制約が混在する問題では、柔軟な制約の最適な値の大まかな推定を指定すると (厳密な制約は満たすことが前提)、最適化を高速化するのに役立ちます。

既定値: 1

'MinDecay'

安定ダイナミクスの最小 decay 率。

ほとんどの調整目標には、暗黙的に閉ループの安定性や最小位相制約が伴います。"安定ダイナミクス" は、これらの制約によって影響を受ける極と零点を示します。MinDecay オブションは、安定化されたすべての極と零点が次を満たすように制約します。

  • Re(s) < -MinDecay (連続時間)。

  • log(|z|) < -MinDecay (離散時間)。

最適化で既定値を満たせない場合や既定値が他の要件と矛盾する場合は、最小値を調整します。または、TuningGoal.Poles を使用して特定のフィードバック ループの減衰率を制御します。

特定の調整目標に対する暗黙的な制約の詳細については、その調整目標のリファレンス ページを参照してください。

既定値: 1e-7

'MaxRadius'

安定ダイナミクスの最大スペクトル半径。

このオブションは、安定化されたすべての極と零点が |s| < MaxRadius を満たすように制約します。安定ダイナミクスは、調整目標の暗黙的な安定性または最小位相制約によって影響を受ける極と零点です。MaxRadius 制約は、代数ループが特異になった場合や制御操作が無限になった場合にこれらの極と零点が無限大になるのを回避するのに役立ちます。最適化で既定値を満たせない場合や既定値が他の要件と矛盾する場合は、最大半径を調整します。

MaxRadius は離散時間調整で無視されます。ここで、安定性制約によって |z| < 1 は既に設定されています。

特定の調整目標に対する暗黙的な制約の詳細については、その調整目標のリファレンス ページを参照してください。

既定値: 1e8

出力引数

options

systune コマンド用に指定されたオプションを含むオプション セット。

すべて折りたたむ

5 回のランダムな再実行を使用した systune の実行用のオプション セットを作成します。また、各反復の進捗を表示するように表示レベルを設定し、柔軟な制約の値の相対許容誤差を 0.01 に増やします。

options = systuneOptions('RandomStart',5,'Display','iter',...
                         'SoftTol',0.01);

あるいは、ドット表記を使用して options の値を設定します。

options = systuneOptions;
options.RandomStart = 5;
options.Display = 'iter';
options.SoftTol = 0.01;

20 回のランダムな再実行を使用した systune の実行用のオプション セットを構成します。これらの独立した最適化実行を並列プールの複数のワーカーで同時に実行します。

Parallel Computing Toolbox ソフトウェアがインストールされている場合、並列計算を使用して systune による固定構造制御システムの調整を高速化できます。複数のランダム化開始点で systune による最適化を実行すると、並列計算によって最適化実行がワーカーに分散されて調整が高速になります。

Parallel Computing Toolbox の設定 (Parallel Computing Toolbox)で [parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] が選択されていない場合、parpool を使用して手動で並列プールを開始します。以下に例を示します。

parpool;

設定で [parfor などの並列キーワードが実行された場合に並列プールを自動的に作成する (まだ存在していない場合)] が選択されている場合、手動でプールを開始する必要はありません。

20 回のランダムな再実行を並列で行うように指定する systuneOptions セットを作成します。

options = systuneOptions('RandomStart',20,'UseParallel',true);

UseParalleltrue に設定すると、並列処理が有効になり、ランダム化開始点が並列プールの使用可能なワーカーに分散されます。

systuneOptions セットを systune の呼び出し時に使用します。たとえば、調整可能な制御システム モデル CLO が既に作成されているとします。このシステムの調整用に、TuningGoal 要件オブジェクトのベクトル SoftReqs および HardReqs を作成してあります。これらのベクトルは、それぞれ柔軟な制約と厳密な制約を表します。この場合、次のコマンドでは、並列計算を使用して CL0 の制御システムを調整します。

[CL,fSoft,gHard] = systune(CL0,SoftReqs,HardReqs,options);

互換性についての考慮事項

すべて展開する

R2016a での動作変更

R2016a で導入