Main Content

systuneOptions

systune のオプションを設定する

説明

systuneOptions を使用して関数 systune のオプション セットを作成します。

作成

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

options = systuneOptions(Name,Value) は、1 つ以上の名前と値の引数を使用して、オプション セットを作成してプロパティを設定します。

プロパティ

すべて展開する

systune の実行時に表示する情報量。以下のいずれかの値として指定します。

  • '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' — サイレント モードで実行し、実行時や実行後に情報を表示しません。

各最適化実行で許容誤差内に収束しない場合の最大反復回数。正のスカラーとして指定します。

コントローラーの自由パラメーターの乱数値から開始される追加の最適化の実行回数。非負のスカラーとして指定します。

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

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

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

並列計算を有効にするオプション。'UseParallel'false または true で構成されるコンマ区切りペアとして指定します。

構成されたコントローラーを調整する際に RandomStart オプションを使用して複数のランダム化開始点で最適化を実行する場合、並列計算も使用することで、最適化実行を並列プールのワーカーに分散できます。このオプションを true に設定すると、使用可能な並列プールがあれば、ソフトウェアは独立した最適化実行をそのプールのワーカーに分散して同時に実行します。使用可能な並列プールがない場合は、次のいずれかになります。

  • Parallel Computing Toolbox 基本設定 (Parallel Computing Toolbox)[並列プールを自動的に作成する] を選択した場合、ソフトウェアはそれらの設定を使用して並列プールを開始します。

  • 基本設定で [並列プールを自動的に作成する] を選択しなかった場合、ソフトウェアは並列処理を使用せずに最適化を順次実行します。

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

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

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

柔軟な制約のターゲット値。スカラーとして指定します。

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

終了の相対許容誤差。スカラーとして指定します。

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

柔軟な制約の最適な値の事前推定。スカラーとして指定します。

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

安定ダイナミクスの最小 decay 率。正のスカラーとして指定します。

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

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

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

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

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

安定ダイナミクスの最大スペクトル半径。スカラーとして指定します。

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

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

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

すべて折りたたむ

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)[Automatically create a parallel pool] が選択されていない場合、parpool (Parallel Computing Toolbox) を使用して手動で並列プールを開始します。以下に例を示します。

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 で導入

すべて展開する

参考

| (Simulink Control Design)