状態情報の読み込み
初期状態のインポート
次の情報を使用してシミュレーションを初期化できます。
前のシミュレーションの最終状態情報 (
ModelOperatingPoint
オブジェクトの有無は任意)MATLAB® で作成した状態情報
初期状態をインポートするには、[コンフィギュレーション パラメーター] 、 [データのインポート/エクスポート] のパラメーターを使用します。
[初期状態] パラメーターを有効にします。
[初期状態] エディット ボックスで、初期化に使用する状態情報用の変数の名前を入力します。
変数によって指定される初期値は、モデル内のブロックが初期条件パラメーターで指定する初期状態値をオーバーライドします。
Dataset
、構造体、時間データ付き構造体を指定できます。
状態の初期化
特定の状態を初期化することができます。この例では、x2
状態である vdp
モデルの初期状態構造体を作成します。x1
状態は、構造体で初期化されません。したがって、シミュレーション中に Simulink® は、x1
状態に関連付けられた Integrator ブロックの値を使用します。
モデルを開きます。
open_system('vdp');
SaveFormat
モデル引数を'Structure'
に設定します。set_param('vdp','SaveFormat','Structure');
初期状態構造体を取得します。
states = Simulink.BlockDiagram.getInitialState('vdp');
信号の構造体の
x2
に関連付けられた要素の初期値を 2 に設定します。states.signals(2).values = 2;
信号の構造体の
x1
に関連付けられた要素を削除します。states.signals(1) = [];
vdp
モデルの変数states
を使用します。初期状態のコンフィギュレーション パラメーターを選択します。set_param('vdp','LoadInitialState','on','InitialState','states');
モデルをシミュレートし、
x2
とx1
の初期値を確認します。sim('vdp'); states
states = struct with fields: time: 0 signals: [1×1 struct]
states.signals
ans = struct with fields: values: 2 dimensions: 1 label: 'CSTATE' blockName: 'vdp/x2' stateName: '' inReferencedModel: 0 sampleTime: [0 0]
モデルのシミュレーションを実行するときには、両方の状態の初期値が 2 になります。x2
状態の初期値が states
構造体で割り当てられるのに対して、x1
状態の初期値はその Integrator ブロックで割り当てられます。
参照モデルの状態の初期化
最上位モデルと、最上位モデルが参照するモデルの状態を初期化するには、構造体または時間付き構造体の形式を使用するか操作点を使用します。
最上位モデルがラピッド アクセラレータ モードの場合、離散状態データを読み込むことはできません。