シミュレーションのスナップショットでの操作点の検出
モデルのシミュレーションを使用して、定常状態の操作点を検出できます。結果の操作点は、指定したシミュレーション スナップショット時間での状態の値とモデルの入力レベルから構成されます。
シミュレーションベースの操作点計算を使用するには、まずモデルが平衡点に収束するようなモデル初期条件を設定します。その後、モデルをシミュレートして、定常状態マネージャーまたはモデル線形化器を使用して操作点を対話的に作成できます。また、MATLAB®コマンド ラインで関数findop
を使用して、プログラムによりスナップショットを検出することもできます。
ソフトウェアは、スナップショットを使用して操作点を検出するために、モデルをシミュレートして、それぞれのシミュレーション スナップショット時間で操作点を作成します。各操作点には対応するスナップショット時間でのモデルの入力値と状態値が含まれます。
操作点が定常状態にあることを確認するには、モデルを操作点値で初期化してシミュレートし、主要な信号と状態が平衡であるかどうかをチェックします。操作点によるモデルの初期化の詳細については、特定の操作点での Simulink モデルのシミュレーションを参照してください。
メモ
金宝app®モデルに内部状態がある場合は、シミュレーションのスナップショットから計算した操作点でモデルを線形化しないでください。代わりに、シミュレーションのスナップショットを使用するか、最適化ベースの探索から取得した操作点でモデルを線形化してください。詳細については、内部状態表現をもつブロックの処理を参照してください。
定常状態マネージャーを使用したシミュレーションのスナップショットでの操作点の計算
定常状態マネージャーを使用して、指定したシミュレーションのスナップショット時間で操作点を検出することができます。
Simulink モデルを開きます。
sys ='magball'; open_system(sys)
定常状態マネージャーを開くには、Simulink モデル ウィンドウの[アプリ]ギャラリーで[定常状態マネージャー]をクリックします。
シミュレーションのスナップショット時間を指定するには、定常状態マネージャーの[定常状態]タブで、[スナップショット]をクリックします。
スナップショットを撮るシミュレーション時間を指定します。この例では、時間単位1
および10
にスナップショットを撮ります。[スナップショットの操作点を作成] ダイアログ ボックスで、[シミュレーションのスナップショット時間]フィールドに[1 10]
と入力します。
スナップショットを撮るにはをクリックします。
操作点の配列op1
が[データ ブラウザー]の[操作点]セクションに表示されます。この配列には指定した各スナップショット時間に 1 つずつ、合計 2 つの操作点が含まれています。
また、対応する[op1]ドキュメントが開き、操作点を参照できます。
表示する操作点を選択するには、[操作点の選択]ドロップダウン リストを使用します。
モデル線形化器を使用したシミュレーションのスナップショット時間での操作点の計算
モデル線形化器を使用して、指定したシミュレーションのスナップショット時間で操作点を検出することができます。
Simulink モデルを開きます。
sys ='magball'; open_system(sys)
モデル線形化器を開くには、Simulink モデル ウィンドウの[アプリ]ギャラリーで、[モデル線形化器]をクリックします。
シミュレーションのスナップショット時間を指定するには、モデル線形化器の[線形解析]タブで、[操作点]ドロップダウン リストから[シミュレーションのスナップショットを撮る]
を選択します。
1
および10
の時間単位でシミュレーションのスナップショットを撮ります。[線形化するスナップショット時間を入力] ダイアログ ボックスの[シミュレーションのスナップショット時間]フィールドに[1 10]
と入力します。
スナップショットを撮るには[スナップショットを撮る]をクリックします。
[データ ブラウザー]の[線形解析ワークスペース]セクションに操作点の配列op_snapshot1
が表示されます。この配列には指定した各スナップショット時間に 1 つずつ、合計 2 つの操作点が含まれています。
操作点を表示するには、[線形解析ワークスペース]でop_snapshot1
をダブルクリックします。[操作点の選択]ドロップダウン リストを使用して表示する操作点を選択できます。
コマンド ラインを使用したシミュレーション スナップショットにおける操作点の検出
この例では、指定したシミュレーション スナップショット時間で定常状態の操作点を計算する方法を説明します。
Simulink モデルを開きます。
sys ='magball'; open_system(sys)
モデルをシミュレートして、時間単位1
および10
に操作点を作成します。ソフトウェアはモデルをシミュレートして各シミュレーション スナップショット時間での操作点を計算します。
op = findop(sys,[1 10]);
op
は、指定されたスナップショット時間ごとに 1 つの要素をもつ操作点の列ベクトルです。
最初の操作点を表示します。
op(1)
ans = Operating point for the Model magball. (Time-Varying Components Evaluated at time t=1) States: ---------- x ___________ (1.) magball/Controller/PID Controller/Filter/Cont. Filter/Filter 5.7581e-06 (2.) magball/Controller/PID Controller/Integrator/Continuous/Integrator 14.007 (3.) magball/Magnetic Ball Plant/Current 7.0036 (4.) magball/Magnetic Ball Plant/dhdt -6.6961e-08 (5.) magball/Magnetic Ball Plant/height 0.05 Inputs: None ----------