Main Content

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

長いシミュレーションのセグメントへの分割

この例では、Stateflow チャートで操作点を使用する方法を説明します。操作点とは、シミュレーション中の特定の時間における Simulink® モデルのステートのスナップショットです。Stateflow® チャートの場合、操作点には以下が含まれます。

  • チャートステートのアクティビティ

  • チャートのローカル データの値

  • チャートの出力データの値

  • MATLAB® 関数内および Truth Table ブロック内の固定データの値

詳細については、Stateflow での操作点の使用を参照してください。

チュートリアルの目的

このモデルを時間 t = 0 以外からシミュレーションするとします。

このモデルのシミュレーション時間は 1400 秒ですが、特に確認したい出力は t = 400 ~ 600 の間にあります。そこでこのモデルをシミュレーションし、t = 400 で操作点を保存します。その後この操作点を読み込み、t = 400 ~ 600 のシミュレーションを確認することができます。

手順 1: 操作点の定義

1. sf_boiler モデルを開きます。

2.[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。

3. 操作点の保存を有効にします。[データのインポート/エクスポート] ペインで次を行います。

a. [最終状態] を選択します。

b. 名前を入力します。例: sf_boiler_ctx01

c. [最終の操作点を保存] を選択します。

このステップをプログラムにより完了するには、以下のように入力します。

set_param("sf_boiler", ...
    SaveFinalState="on", ...
    FinalStateName="sf_boiler_ctx01", ...
    SaveOperatingPoint="on");

詳細については、プログラムによるコンフィギュレーション パラメーターの設定を参照してください。

4. このシミュレーション セグメントの開始時間と終了時間を定義します。[ソルバー] ペインで、[開始時間]0[終了時間]400 に設定します。

このステップをプログラムにより完了するには、以下のように入力します。

set_param("sf_boiler", ...
    StartTime="0", ...
    StopTime="400");

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

6. シミュレーションを開始します。このモデルをシミュレーションするとき、t = 400 におけるすべての操作点を MATLAB ベース ワークスペース内の変数 sf_boiler_ctx01 に保存します。

7. 操作点の保存を無効にします。[コンフィギュレーション パラメーター] ダイアログ ボックスの [データのインポート/エクスポート] ペインで、[最終の操作点を保存] パラメーターと [最終状態] パラメーターをクリアし、[OK] をクリックします。

こうしておけば、前の手順で保存した操作点が上書きされることはありません。

このステップをプログラムにより完了するには、以下のように入力します。

set_param("sf_boiler", ...
    SaveOperatingPoint="off", ...
    SaveFinalState="off");

手順 2: 操作点の読み込み

1. 操作点の読み込みを有効にします。[コンフィギュレーション パラメーター] ダイアログ ボックスの [データのインポート/エクスポート] ペインで、[初期状態] を選択し、チャートの操作点を含んでいる変数 sf_boiler_ctx01 を入力します。

このステップをプログラムにより完了するには、以下のように入力します。

set_param("sf_boiler", ...
    LoadInitialState="on", ...
    InitialState="sf_boiler_ctx01");

2.このシミュレーション セグメントの終了時間を新たに定義します。[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインで、[終了時間]600 に設定します。

開始時間は新たに入力する必要がありません。シミュレーションは、前回中断したところから再開されます。

このステップをプログラムにより完了するには、以下のように入力します。

set_param("sf_boiler",StopTime="600");

手順 3: 特定のセグメントのシミュレーション

モデルのシミュレーションを行うと、次の出力がScope (Simulink)ブロックに表示されます。

参考

(Simulink) | (Simulink)

関連するトピック