Main Content

シミュレーションのための非同期イベント データのインポート

機能

Inport ブロックを介して Function-Call Subsystem に非同期イベント データをインポートできます。スタンドアロンの固定ステップ シミュレーションでは、以下を指定できます。

  • 各非同期イベントが発生した時間点

  • 各時間点での非同期イベントの数

入力データ形式

非同期データは、MATLAB® コマンド ラインまたは [コンフィギュレーション パラメーター] ダイアログ ボックスの [データのインポート/エクスポート] ペインで入力できます。どちらの場合も、データ形式にはいくつかの制限が適用されます。

  • モデル コンフィギュレーション パラメーター [入力] はテーブルのコンマ区切りリストでなければなりません。

  • 非同期イベントを出力する入力ポートに対応するテーブルは、非同期イベントの時間値を含む列ベクトルでなければなりません。

    • 非同期ベクトルの時間ベクトルは、倍精度データ型で単調増加していなければなりません。

    • 時間データは、モデル ステップ サイズの整数倍でなければなりません。

    • 任意のタイム ステップで複数の関数呼び出しを指定するには、時間値を適宜繰り返さなければなりません。つまり、t = 1 で 3 つの非同期イベントを指定し、t = 9 で 2 つの非同期イベントを指定するには、時間ベクトルで 1 を 3 回、9 を 2 回リストしなければなりません (t = [1 1 1 9 9]')。

  • 通常のデータ入力ポートに対応するテーブルの形式は、サポートされる別の形式でも構いません。

詳細については、ルート レベルの入力端子へのデータの読み込みを参照してください。

このモデルでは、Function-Call Subsystem を使用して、非同期イベントの合計数を追跡し、一連の入力値を 2 で乗算します。

Model that uses a function-call subsystem to track total number of asynchronous events and to multiply a set of input values by 2

  1. [モデル コンフィギュレーション パラメーター] ダイアログ ボックスを使用してデータを入力するには、次のようにします。

    1. [入力] を選択します。

    2. この例では、MATLAB ウィンドウで次のコマンドを入力します。

      >> t = [1 1 5 9 9 9]', tu = [[0:10]' [0:10]']
      または、次のように [データのインポート/エクスポート] ペインに t, tu としてデータを入力することもできます。

      Entering input data in Model Configuration Parameters dialog box on Data Import/Export pane

      ここでは、t は Inport ブロック In1 の非同期イベントの数を含む列ベクトルですが、tu は入力値と Inport ブロック In2 の時刻を対比したテーブルです。

  2. 既定では、[時間] パラメーターと [出力] パラメーターが選択され、出力変数には tout および yout という名前が付いています。

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

  4. MATLAB コマンド ラインで「[tout yout]」と入力して出力を表示し、以下を取得します。

    ans =
    
         0     0    -1
         1     2     2
         2     2     2
         3     2     2
         4     2     2
         5     3    10
         6     3    10
         7     3    10
         8     3    10
         9     6    18
        10     6    18

    ここでは、1 番目の列は、シミュレーションの回数を含みます。

    2 番目の列は Out1 の出力である非同期イベントの合計数を表します。Function-Call Subsystem は、t = 1 で 2 回トリガーされるので、出力は 2 になります。その後、Function-Call Subsystem は t = 5 になるまでは呼び出されないため、それまでは 3 になりません。最後に、9 では 3 回呼び出され、出力は 6 に増えます。

    3 番目の列には各非同期イベント時の入力値を 2 で乗算して得られる Out2 の出力が含まれます。その他の時点では、出力では前の値に保たれます。

関連するトピック