Main Content

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

状態情報の保存

各シミュレーション ステップの状態情報の保存

シミュレーション中に各シミュレーション ステップのログ状態の状態情報を保存できます。そのレベルの状態情報はデバッグに役立ちます。

  1. [コンフィギュレーション パラメーター][データのインポート/エクスポート][状態] のチェック ボックスをオンにします。

  2. [状態] エディット ボックスで、既定の変数 xout を使用しない場合は、状態情報に別の変数を指定できます。

  3. また、[データのインポート/エクスポート] ペインで、レガシ モデルとの互換性のための配列形式を使用しない場合、[形式] パラメーターを [データセット]構造体 または 時間付き構造体 に設定します。

    [データセット] 形式では以下はサポートされません。

    • Function-Call Subsystem 内の状態情報の記録

    • ラピッド アクセラレータ シミュレーション モード

    • コード生成

  4. [適用] をクリックします。

  5. モデルのシミュレーションを実行します。

部分的な最終状態情報の保存

ログを作成した状態 (ブロックの連続状態と離散状態) だけを保存するには、以下の手順を実行します。

  1. [コンフィギュレーション パラメーター][データのインポート/エクスポート][最終状態] のチェック ボックスをオンにします。

  2. [最終状態] エディット ボックスで、既定の変数 xFinal を使用しない場合は、状態情報に別の変数を指定できます。

  3. [最終の操作点を保存] パラメーターをオフにします。

  4. [形式] パラメーターを [データセット][構造体] または [時間付き構造体] に設定します。

  5. [適用] をクリックします。

  6. モデルのシミュレーションを実行します。

操作点なしで保存された状態情報の調査

[コンフィギュレーション パラメーター][データのインポート/エクスポート][最終状態] パラメーターまたは [状態] パラメーターを有効にした場合、Simulink®[形式] パラメーターで指定する形式で状態情報を保存します。[最終状態] 情報の既定の変数は xFinal であり、状態情報の状態情報変数は xout です。

モデルに保存された状態がない場合、xFinal および xout は空の変数になります。モデルに保存された状態があるかどうかを判断するには、isempty(xout) コマンドを使用します。

Dataset 形式の最終状態情報

たとえば、最終状態情報を [データセット] 形式で保存して、保存した状態情報に既定の変数 [xFinal] を使用すると仮定します。

xFinal
xFinal = 

Simulink.SimulationData.Dataset 'xFinal' with 2 elements

                        Name    BlockPath 
                        ______  _________ 
    1  [1x1 State]      CSTATE  vdp/x1   
    2  [1x1 State]      DSTATE  vdp/x2   

  - Use braces { } to access, modify, or add elements using index.

状態データセットの最初の要素を調べます。

xFinal{1}

ans = 

  Simulink.SimulationData.State
  Package: Simulink.SimulationData

  Properties:
         Name: 'CSTATE'
    BlockPath: [1x1 Simulink.SimulationData.BlockPath]
        Label: CSTATE
       Values: [1x1 timeseries]

時間付き構造体形式の最終状態情報

たとえば、最終状態情報を時間付き構造体形式で保存して、保存した状態情報に既定の変数 [xFinal] を使用すると仮定します。

vdp モデルのシミュレーション時間および状態数を確認するには、変数 xFinal を入力します。

xFinal
xFinal = 

       time: 20
    signals: [1x2 struct]

この場合、シミュレーション時間は 20 であり、2 つの状態があります。最初の状態を調べるには、次のコマンドを使用します。

xFinal.signals(1)
ans = 

               values: 2.0108
           dimensions: 1
                label: 'CSTATE'
            blockName: 'vdp/x1'
            stateName: ''
    inReferencedModel: 0

最初の状態構造体の values フィールドと blockName フィールドは、x1 ブロックの出力信号の最後の値が 2.018 であることを示します。

メモ

状態情報を解析するスクリプトを作成する場合、特定の状態を一意に識別するために label 値と blockName 値の組み合わせを使用します。状態の順序には依存しないでください。

操作点による最終状態情報の保存

完全な状態情報を保存するには、シミュレーションに対する ModelOperatingPoint オブジェクトを保存します。

  1. [コンフィギュレーション パラメーター][データのインポート/エクスポート][最終状態] のチェック ボックスをオンにします。

  2. [データのインポート/エクスポート] ペインでは、[最終の操作点を保存] パラメーターも選択します。

  3. [最終の操作点を保存] パラメーターの横にあるエディット ボックスに ModelOperatingPoint オブジェクトの変数名を入力し、[適用] をクリックします。

  4. モデルをシミュレートします。

操作点の使い方の詳細については、シミュレーションの操作点の保存と復元を参照してください。

関連する例

詳細