モデルの初期化のための操作点データの使用
操作点を使用したモデル変数の初期化
ブロックレベルの変数の初期化では、個々のブロック変数の優先順位とターゲットを指定できます。保存した操作点データからモデル全体の変数を初期化することもできます。
OperatingPoint
オブジェクトを使用して、モデルの初期化に必要なデータセットを保存し、このデータを操作することができます。また、その後、このデータを使用して別のモデルを初期化したり、別のシミュレーションを実行する前に同じモデルを初期化したりすることができます。これらのデータセットには、変数の初期化ターゲットの階層が含まれています。変数初期化の優先順位で説明されているように、各ターゲットは、変数の値、単位、および初期化の優先順位で構成されています。
OperatingPoint
データの階層はツリーであり、ノードがモデル内のサブシステムとブロックに対応しています。データ ツリーの最下位レベルであるブロック ノード内には、そのブロックの変数の初期化ターゲットがあります。
OperatingPoint
を使用してモデルを初期化すると、ソルバーは OperatingPoint
のデータ階層をモデルの階層構造と照合し、操作点の初期化ターゲットをそれぞれのモデル変数に適用します。操作点のターゲットと一致する変数がない場合、このターゲットは無視されます。操作点のすべてのデータを適用した後、ソルバーは初期条件の計算に説明されているモデルの初期化を実行します。
変数を初期化した後、モデルをシミュレートする前に変数ビューアーを開いて、どの変数のターゲットが満たされているか確認することができます。詳細は、変数ビューアーを参照してください。
推奨ワークフロー
モデルまたはシミュレーション ログからデータを抽出して、
OperatingPoint
オブジェクトを作成します。詳細については、操作点への変数の初期化データの抽出を参照してください。必要に応じてターゲットやノードを変更、追加、または削除して、操作点データを修正します。詳細については、操作点データの操作を参照してください。
満足のいく操作点データが得られたら、それを適用して別のモデルを初期化するか、あるいは別のシミュレーション実行のために同じモデルを初期化します。詳細については、操作点データを適用してモデルを初期化を参照してください。
操作点への変数の初期化データの抽出
既存のモデル、またはログに記録されたシミュレーション データからデータを抽出して、OperatingPoint
オブジェクトを作成できます。詳細については、simscape.op.create
を参照してください。
変数の初期化ターゲットをモデルから抽出するには、次のような方法があります。
開始値 — モデルを初期化し、変数ビューアーの
Start
の値に対応する変数ターゲットを使用します。開始前の値 — モデルを更新し、変数ビューアーの
Prestart
の値に対応する変数ターゲットを使用します。キャッシュ データ — 以前に初期化またはシミュレートしたモデルから、キャッシュされている変数ターゲットの値を抽出します。
Start
またはPrestart
のいずれかの値を指定できます。この手法では、抽出するデータが変更されていない場合、モデルの初期化の繰り返しを避けることで時間が節約されます。
あるいは、シミュレーション データのログを取りながらモデルをシミュレートし、その後、シミュレーション ログから、指定した時間 t
に変数ターゲットを抽出することができます。
シミュレーションのデータ ログに記録されている一連の時間に、時間
t
との完全一致が含まれている場合、関数simscape.op.create
は、これらの時間の変数ターゲット値を操作点データに抽出します。完全一致する時間はないものの、
t
がシミュレーション データ ログ内の時間の最小値と最大値の間にある場合、関数は線形内挿を使用してターゲット値を決定します。t
が最小時間値より小さい場合、関数はシミュレーション データ ログ内の各変数の最初の値を抽出します。t
が最大時間値より大きい場合、関数はシミュレーション データ ログ内の各変数の最後の値を抽出します。
モデルから操作点にデータを抽出する場合、OperatingPoint
オブジェクトのデータ階層の要素はモデルの構造と一致します。操作点データ ツリーはモデル内のサブシステムやブロックに対応するノードをもち、そのデータ ツリー階層の最下位レベルには各ブロックの変数の初期化ターゲットが含まれます。同様に、ログに記録されたシミュレーション データから操作点を抽出した場合にも、操作点のデータ ツリーはシミュレーション ログのデータ ツリーと一致します。例については、Find Relative Path to Block Node in Operating Point Data Treeを参照してください。
操作点データの操作
空の OperatingPoint
オブジェクトを作成することや、そこに既存のモデルやシミュレーション データのログ記録から抽出したデータを入れることができます。
作成後の OperatingPoint
オブジェクトは、次のような方法で変更できます。
ターゲットの逐次追加。例については、Add Element to an Operating Pointを参照してください。
要素のコピーと挿入。例については、Copy Element from an Operating Pointを参照してください。その後、コピーされた要素を、関数
set
を使用して別の操作点に挿入できます。要素の削除。例については、Remove an Element from Operating Point Dataを参照してください。
要素の名前変更または移動。例については、Rename Element to Match New Block Nameを参照してください。
操作点のマージ。例については、Merge Two Operating Pointsを参照してください。
操作点データを適用してモデルを初期化
操作点からモデルを初期化するには、以下を行います。
[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。
[Simscape] ペインで、[操作点の初期化を有効にする] チェック ボックスをオンにします。
[モデルの操作点] テキストボックスに、
OperatingPoint
オブジェクトに関連付けられたワークスペース変数の名前を入力します。
同等のコマンド ライン インターフェイスを使用して、モデル コンフィギュレーション パラメーターを設定することもできます。
set_param('
model_name
','SimscapeUseOperatingPoints','on');set_param('
model_name
','SimscapeOperatingPoint','op_name
');
ここで、model_name
はモデルの名前、op_name
は OperatingPoint
オブジェクトの名前です。
参考
simscape.op.OperatingPoint
| simscape.op.Target