Main Content

モデル線形化器を使用した仕様からの操作点の計算

モデルの状態、出力、および入力に対する制約を指定して、これらの制約を満たすモデルの操作条件を検出することにより、Simulink® モデルの定常状態の操作点を計算できます。定常状態の操作点の詳細については、操作点についておよび定常状態の操作点の計算を参照してください。

Simulink モデルの操作点を見つけるには、この例に示すように、モデル線形化器を使用してモデルを対話的に平衡化することができます。

あるいは、次の方法でモデルを平衡化できます。

この例では、状態仕様を満たす操作点を計算します。同様の方法を使用して、出力や入力の仕様を定義できます。また、状態、出力、および入力の仕様の組み合わせを定義することもできます。したがって、たとえば状態仕様のみを使用する必要はありません。

仕様を満たすモデルの平衡化の詳細については、仕様からの定常状態の操作点の計算を参照してください。

モデル線形化器を開く

Simulink モデルを開きます。

sys = 'scdspeed';
open_system(sys)

モデル線形化器を開くには、Simulink モデル ウィンドウの [アプリ] ギャラリーで、[モデル線形化器] をクリックします。

操作点の仕様の定義

モデル線形化器[線形解析] タブの [操作点] ドロップダウン リストで、[モデルの平衡化] を選択します。

[モデルの平衡化] ダイアログ ボックスの [仕様] タブで、モデルの状態、入力、および出力の仕様を定義できます。この例では [状態] タブをクリックします。

既定では、アプリは [状態] タブで、[定常状態] 列のチェック マークで示されるように、両方のモデルの状態が平衡になることを指定します。また、両方の状態が未知の値として指定されているので、その定常値は [値] 列に指定された初期推定を使用して平衡化の処理中に計算されます。

2 番目の状態であるエンジンの角速度を既知の値に変更します。[既知] 列で対応する行を選択して、[値] 列で値を 180 に設定します。

平衡化中にモデル状態の範囲を指定することもできます。この例では、最初の状態を 0.50.7 の間に制約します。そのためには、これらの値をそれぞれ [最小値] 列と [最大値] 列に入力します。

モデルの平衡化

これらの仕様を満たす操作点を求めるには、[平衡化の開始] をクリックします。

最適化探索が使用され、仕様を満たす操作点が検出されます。

平衡化の進捗状況ビューアーに、最適化の進捗状況と、最適化アルゴリズムが正常に終了したことが示されます。[(最大エラー)] 列には、各反復における最大の制約違反が表示されます。[ブロック] 列には、制約違反が適用されるブロックが表示されます。

平衡化された操作点 op_trim1[線形解析ワークスペース] に表示されます。

結果の操作点値が仕様を満たしているかどうかを評価するには、[線形解析ワークスペース]op_trim1 をダブルクリックします。

[編集] ダイアログ ボックスの [状態] タブで、最初の状態の [実際の値][目的値] の範囲内にあり、実際の角速度は指定どおり 180 です。

[実際の dx] 列には、操作点における状態値の変化率が示されています。これらの値はゼロに近いため、状態は変化しておらず、操作点が定常状態にあることを示しています。

状態の導関数の制約

状態仕様を満たすようにモデルを平衡化するときに、定常状態にない状態の導関数も制約できます。このような制約を使用して、導関数を既知の非ゼロ値に平衡化したり、定常状態に到達できない状態について導関数の許容誤差を指定することができます。

たとえば、エンジンの角速度が 180 rad/s、角加速度が 50 rad/s2 となる操作条件を見つけるとします。そのためには、まず [モデルの平衡化] ダイアログ ボックスを開きます。モデル線形化器[操作点] ドロップダウン リストで、[モデルの平衡化] を選択します。

[定常状態] 列で、対応する行の選択を解除します。次に、[dx の最小値] 列と [dx の最大値] 列で両方の状態微分範囲を 50 に設定します。

操作点を計算するには、[平衡化の開始] をクリックします。

[線形解析ワークスペース]op_trim2 をダブルクリックします。

[編集] ダイアログ ボックスで、2 行目の [実際の dx] 列が [目的の dx] 列に一致しています。したがって、操作点は指定された状態微分制約を満たしています。

モデルを平衡化した後、次のことが可能です。

参考

関連するトピック