このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
バッチ線形化用のパラメーター サンプルの指定
パラメーター サンプルについて
ブロック パラメーターはいくつかの方法で Simulink® モデルを構成します。たとえば、ブロック パラメーターを使用して、さまざまな係数またはコントローラーのサンプル時間を指定できます。Multiport Switch ブロックへの制御入力のように、離散パラメーターを使用してモデル内のデータ パスを制御することもできます。パラメーターの値を変化させることで、そのパラメーターによるモデルの動作への影響を理解するのに役立ちます。
何らかの Simulink Control Design™ 線形化ツールを使用する (または slTuner
や制御システム調整器を使って調整する) 場合は、モデルの線形化に使用する一連のブロック パラメーター値を指定できます。値の完全なセットは、"パラメーター グリッド" または "パラメーター サンプル" と呼ばれます。これらのツールは、パラメーター グリッドのそれぞれの値で線形化を計算してモデルのバッチ線形化を行います。複数のパラメーターを変化させることで、パラメーター グリッドの次元を拡張できます。コマンド ライン線形化ツール、linearize
コマンド、あるいは slLinearizer
インターフェイスや slTuner
インターフェイスを使用している場合は、Name
と Value
のフィールドをもつ構造体を使用してパラメーター サンプルを指定します。モデル線形化器または制御システム調整器では、グラフィカル インターフェイスを使用してパラメーター サンプルを指定します。
サンプリング可能なパラメーター
モデル パラメーターは、その値がモデル ワークスペース、MATLAB® ワークスペース、またはデータ ディクショナリにある変数により与えられる場合、変化させることができます。変化させるパラメーターがすべて調整可能である場合、変化させるパラメーター値に対し伝達関数を計算するために、線形化ツールで必要なモデルのコンパイルは 1 回のみです。この効率性は、繰り返しコンパイルすると計算量の多くなるモデルには特に有益です。
詳細については、パラメーター値を変化させたときのバッチ線形化の効率性を参照してください。
コマンド ラインで単一のパラメーターを変化させる
linearize
、slLinearizer
または slTuner
でバッチ線形化用に単一のパラメーターの値を変化させるには、パラメーター グリッドを 2 つのフィールドをもつ構造体として指定します。Name
フィールドには、パラメーターを指定するワークスペース変数の名前が含まれます。Value
フィールドには、線形化中にそのパラメーターが取る値のベクトルが含まれます。
たとえば、Watertank
モデルには、MATLAB ワークスペース変数として定義されている a
、b
および A
の 3 つのパラメーターがあります。次のコマンドでは、単一のパラメーター A
のパラメーター グリッドを指定します。
param.Name = 'A';
param.Value = Avals;
ここで、Avals
は A
のサンプル値を指定する配列です。
次の表は、パラメーター サンプルを指定するいくつかの一般的な方法を挙げています。
パラメーター サンプルの間隔の種類 | パラメーター サンプルの指定方法 |
---|---|
線形的に変化 | param.Value = linspace(A_min,A_max,num_samples) |
対数的に変化 | param.Value = logspace(A_min,A_max,num_samples) |
乱数 | param.Value = rand(1,num_samples) |
カスタム | param.Value = custom_vector |
モデルによって使用される変数がスカラー値でない場合は、スカラー数値に関連付けられた表現としてパラメーター名を指定します。たとえば、Kpid
は PID ゲインのベクトルであるとします。ベクトルの 1 番目のエントリ Kpid
は、モデル内のブロックでゲインの値として使用されます。次のコマンドを使用して、ベクトル Kpvals
で与えられた値を使用するゲインを変化させます。
param.Name = 'Kpid(1)';
param.Value = Kpvals;
param
構造体を作成したら、以下を実行します。
linearize
に、param
入力引数としてこれを渡します。slLinearizer
インターフェイスを作成する場合は、slLinearizer
にparam
入力引数としてこれを渡します。既存の
slLinearizer
インターフェイスのParameters
プロパティをparam
に設定します。
グラフィカル ツールでの単一のパラメーターの変化
モデル線形化器でバッチ線形化用に単一のパラメーターの変化を指定するには、[線形解析] タブの [パラメーターの変化] ドロップダウン リストで、[変化するパラメーターの選択]
をクリックします (制御システム調整器では、[パラメーターの変化] ドロップダウン リストが [Control System] タブにあります)。
[パラメーターの管理] をクリックします。[モデル変数の選択] ダイアログ ボックスで、変化させるパラメーターをオンにします。テーブルには、調整可能かどうかにかかわりなく、モデルで使用される MATLAB ワークスペースおよびモデル ワークスペースのすべての変数がリストされます。
メモ
パラメーターがスカラー変数でない場合は、[必要に応じて式のインデックスを指定します] をクリックして、スカラー数値に関連付けられた表現を入力します。たとえば、A
がベクトルの場合は A(3)
と入力して、A
の 3 番目のエントリを指定します。A
が構造体であり、変化させるスカラー パラメーターがその構造体の Value
フィールドである場合は、A.Value
と入力します。インデックス付き変数が変数リストに表示されます。
[OK] をクリックします。選択した変数が [パラメーターの変化] テーブルに表示されます。テーブルを使用して、パラメーター値を手動で指定するか、値を自動で生成します。
手動によるパラメーター値の指定
値を手動で指定するには、テーブルに行を追加します。 [行の挿入] をクリックして、[上に行を挿入]
か [下に行を挿入]
のいずれかを選択します。次に、必要に応じてテーブルの値を編集します。
[線形解析] タブに戻ってモデルを線形化する際、モデル線形化器により、[パラメーターの変化] テーブルにリストされているすべてのパラメーター値で線形化が実行されます。
メモ
制御システム調整器でパラメーターの変化についての指定が終了したら、引き続き調整を行う前に、変更を適用しなければなりません。これを行うには、[パラメーターの変化] タブで [適用] をクリックします。制御システム調整器は指定したパラメーターの変化を適用し、モデルを再線形化して、既存のすべてのプロットを更新します。
パラメーター値の自動生成
値を自動生成するには、 [値の生成] をクリックします。[パラメーター値の生成] ダイアログ ボックスの [値] 列で、変数に与えるパラメーター値の表現を入力します。たとえば、linspace(A_min,A_max,num_samples)
または [10:2:30]
などの表現を入力します。
[上書き] をクリックして、[パラメーターの変化] テーブルにある値を生成値で置き換えます。
[線形解析] タブに戻ってモデルを線形化する際、モデル線形化器により、これらのパラメーター値のそれぞれについて線形化が計算されます。
メモ
制御システム調整器でパラメーターの変化についての指定が終了したら、引き続き調整を行う前に、変更を適用しなければなりません。これを行うには、[パラメーターの変化] タブで [適用] をクリックします。制御システム調整器は指定したパラメーターの変化を適用し、モデルを再線形化して、既存のすべてのプロットを更新します。
多次元パラメーター グリッド
一度に複数のパラメーターを変化させる場合は、より高次元のパラメーター グリッドを生成します。たとえば、2 つのパラメーターを変化させるとパラメーター行列が、3 つのパラメーターを変化させると 3 次元パラメーター グリッドが生成されます。次のパラメーター グリッドについて考えます。
ここでは、3 つのパラメーター a、b および c の値を変化させます。サンプルは 3 x 4 x 5 のグリッドを形成します。モデルをバッチ線形化すると、ss
モデル配列 sys
がバッチ処理の結果になります。同様に、モデルをバッチ平衡化すると、操作点オブジェクトの配列が返されます。
コマンド ラインで複数のパラメーターを変化させる
linearize
、slLinearizer
または slTuner
によるバッチ線形化で複数のパラメーターの値を変化させるには、パラメーター サンプルを構造体配列として指定します。構造体には、値を変化させる各パラメーターのエントリがあります。各パラメーターの構造体は、コマンド ラインで単一のパラメーターを変化させるで説明されているものと同じです。パラメーターの Value
フィールドには、任意の次元の配列を指定できます。ただし、Value
フィールドのサイズはすべてのパラメーターで同じでなければなりません。すべてのパラメーターの対応する配列エントリ ("パラメーター グリッド点" とも呼ばれる) は、目的のパラメーターの組み合わせにマップされなければなりません。ソフトウェアがモデルを線形化する際に、グリッド点ごとに線形化 (ss
モデル) を計算します。それぞれの線形化されたモデルの SamplingGrid
プロパティに、モデルが対応するパラメーター グリッド点に関する情報がソフトウェアにより入力されます。
フル グリッドの指定
モデルに、値を変化させる 2 つのパラメーター a と b があるとします。
a と b のそれぞれの組み合わせでモデルを線形化できます。これは、"フル グリッド" とも呼ばれます。
ndgrid
を使用して方形のパラメーター グリッドを作成します。
a1 = 1; a2 = 2; a = [a1 a2]; b1 = 3; b2 = 4; b = [b1 b2]; [A,B] = ndgrid(a,b)
>> A A = 1 1 2 2 >> B B = 3 4 3 4
パラメーター グリッドを指定する構造体配列 params
を作成します。
params(1).Name = 'a'; params(1).Value = A; params(2).Name = 'b'; params(2).Value = B;
一般的に、N パラメーターのフル グリッドを指定するには、ndgrid
を使用して N グリッド配列を取得します。
[P1,...,PN] = ndgrid(p1,...,pN);
ここで、p1
,...,pN
はパラメーター サンプル ベクトルです。
1 行 N 列の構造体配列を作成します。
params(1).Name = 'p1'; params(1).Value = P1; ... params(N).Name = 'pN'; params(N).Value = PN;
フル グリッドのサブセットの指定
モデルが複素数の場合、あるいは多数のパラメーター値を変化させる場合、フル グリッドのモデルを線形化すると計算量が多くなる場合があります。この場合、表のようなアプローチを使用してフル グリッドのサブセットを指定できます。フル グリッドの指定の例を使用して、次の a と b の組み合わせでモデルを線形化するとします。
このパラメーター グリッドを指定する構造体配列 params
を作成します。
A = [a1 a1]; params(1).Name = 'a'; params(1).Value = A; B = [b1 b2]; params(2).Name = 'b'; params(2).Value = B;
グラフィカル ツールでの複数のパラメーターの変化
モデル線形化器または制御システム調整器でバッチ線形化のために複数のパラメーターの値を変化させるには、グラフィカル ツールでの単一のパラメーターの変化で説明されているとおりに [モデル変数の選択] ダイアログ ボックスを開きます。ダイアログ ボックスで、変化させるすべての変数をオンにします。
メモ
変化させるパラメーターがスカラー変数でない場合は、[必要に応じて式のインデックスを指定します] をクリックして、スカラー値に関連付けられた表現を入力します。たとえば、A
がベクトルの場合は A(3)
と入力して、A
の 3 番目のエントリを指定します。A
が構造体であり、変化させるスカラー パラメーターがその構造体の Value
フィールドである場合は、A.Value
と入力します。インデックス付き変数が変数リストに表示されます。
[OK] をクリックします。選択した変数が [パラメーターの変化] テーブルに表示されます。テーブルの各列は、選択された 1 つの変数に対応します。テーブルの各行は、モデルの線形化に使うパラメーター値の完全なセットを表現しています。線形化を行う場合、モデル線形化器はテーブルにある行の数だけ線形モデルを計算します。テーブルを使用して、パラメーター値の組み合わせを手動で指定するか、値の組み合わせを自動で生成します。
手動によるパラメーター値の指定
値を手動で指定するには、テーブルに行を追加します。 [行の挿入] をクリックして、[上に行を挿入]
か [下に行を挿入]
のいずれかを選択します。次に、必要に応じてテーブルの値を編集します。たとえば、次のテーブルではパラメーターと値の 4 つのペア、(Ki2,Kp2)
= (3.5,1)、(3.5,2)、(5,1)、(5,2) で線形化が指定されています。
[線形解析] タブに戻ってモデルを線形化する際、モデル線形化器により、これらのパラメーターと値のペアそれぞれについて線形化が計算されます。
メモ
制御システム調整器でパラメーターの変化についての指定が終了したら、引き続き調整を行う前に、変更を適用しなければなりません。これを行うには、[パラメーターの変化] タブで [適用] をクリックします。制御システム調整器は指定したパラメーターの変化を適用し、モデルを再線形化して、既存のすべてのプロットを更新します。
パラメーター値の自動生成
値を自動生成するには、 [値の生成] をクリックします。[パラメーター値の生成] ダイアログ ボックスの [値] 列で、linspace(A_min,A_max,num_samples)
や [10:2:30]
などの、各変数に与えるパラメーター値の表現を入力します。たとえば、次のエントリは、Kp1 = [0.1,0.15,0.2,0.25,0.3]
と Kp2 = [0.03,0.04,0.05]
の可能なすべての組み合わせについて、パラメーターと値のペアを生成します。
[上書き] をクリックして、[パラメーターの変化] テーブルにある値を生成値で置き換えます。
[線形解析] タブに戻ってモデルを線形化する際、モデル線形化器により、これらのパラメーターと値のペアそれぞれについて線形化が計算されます。
メモ
制御システム調整器でパラメーターの変化についての指定が終了したら、引き続き調整を行う前に、変更を適用しなければなりません。これを行うには、[パラメーターの変化] タブで [適用] をクリックします。制御システム調整器は指定したパラメーターの変化を適用し、モデルを再線形化して、既存のすべてのプロットを更新します。
参考
ndgrid
| linspace
| logspace
| rand
| slLinearizer
| slTuner
| linearize