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.操作点の保存を有効にします。

a. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[データのインポート/エクスポート] ペインに移動します。

b. [最終状態] チェック ボックスをオンにします。

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

d. [最終の操作点を保存] チェック ボックスをオンにします。

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

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

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

モデル パラメーターの設定の詳細については、set_param (Simulink)を参照してください。

3. このシミュレーション セグメントの開始時間と終了時間を定義します。

a. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスで、[ソルバー] ペインに移動します。

b. [開始時間] として 0 を入力します。

c. [終了時間] として 400 を入力します。

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

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

set_param('sf_boiler', ...
    'StartTime','0', ...
    'StopTime','400');

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

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

a. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[データのインポート/エクスポート] ペインに移動します。

b. [最終の操作点を保存] チェック ボックスをオフにします。

c. [最終状態] チェック ボックスをオフにします。

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

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

set_param('sf_boiler', ...
    'SaveOperatingPoint','off', ...
    'SaveFinalState','off');

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

1. 操作点の読み込みを有効にします。

a. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスを開き、[データのインポート/エクスポート] ペインに移動します。

b. [初期状態] チェック ボックスをオンにします。

c. チャートの操作点を含んでいる変数 sf_boiler_ctx01 を入力します。

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

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

set_param('sf_boiler', ...
    'LoadInitialState','on', ...
    'InitialState','sf_boiler_ctx01');

2.このシミュレーション セグメントの終了時間を新たに定義します。開始時間は新たに入力する必要がありません。シミュレーションは、前回中断したところから再開されます。

a. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスで、[ソルバー] ペインに移動します。

b. [終了時間] として 600 を入力します。

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

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

set_param('sf_boiler','StopTime','600');

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

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

参考

(Simulink) | (Simulink)

関連するトピック