Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

状態情報の読み込み

初期状態のインポート

次の情報を使用してシミュレーションを初期化できます。

  • 前のシミュレーションの最終状態情報 (ModelOperatingPoint オブジェクトの有無は任意)

  • MATLAB® で作成した状態情報

初期状態をインポートするには、[コンフィギュレーション パラメーター][データのインポート/エクスポート] のパラメーターを使用します。

  1. [初期状態] パラメーターを有効にします。

  2. [初期状態] エディット ボックスで、初期化に使用する状態情報用の変数の名前を入力します。

変数によって指定される初期値は、モデル内のブロックが初期条件パラメーターで指定する初期状態値をオーバーライドします。

Dataset、構造体、時間データ付き構造体を指定できます。

状態の初期化

特定の状態を初期化することができます。この例では、x2 状態である vdp モデルの初期状態構造体を作成します。x1 状態は、構造体で初期化されません。したがって、シミュレーション中に Simulink® は、x1 状態に関連付けられた Integrator ブロックの値を使用します。

  1. モデルを開きます。

    open_system('vdp');
    
  2. SaveFormat モデル引数を 'Structure' に設定します。

    set_param('vdp','SaveFormat','Structure');
  3. 初期状態構造体を取得します。

    states = Simulink.BlockDiagram.getInitialState('vdp');
  4. 信号の構造体の x2 に関連付けられた要素の初期値を 2 に設定します。

    states.signals(2).values = 2;
    
  5. 信号の構造体の x1 に関連付けられた要素を削除します。

    states.signals(1) = [];
  6. vdp モデルの変数 states を使用します。初期状態のコンフィギュレーション パラメーターを選択します。

    set_param('vdp','LoadInitialState','on','InitialState','states');
  7. モデルをシミュレートし、x2x1 の初期値を確認します。

    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 ブロックで割り当てられます。

参照モデルの状態の初期化

最上位モデルと、最上位モデルが参照するモデルの状態を初期化するには、構造体または時間付き構造体の形式を使用するか操作点を使用します。

最上位モデルがラピッド アクセラレータ モードの場合、離散状態データを読み込むことはできません。

関連する例

詳細