このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
シミュレーションのための非同期イベント データのインポート
機能
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 で乗算します。
[モデル コンフィギュレーション パラメーター] ダイアログ ボックスを使用してデータを入力するには、次のようにします。
[入力] を選択します。
この例では、MATLAB ウィンドウで次のコマンドを入力します。
または、次のように [データのインポート/エクスポート] ペインに t, tu としてデータを入力することもできます。>> t = [1 1 5 9 9 9]', tu = [[0:10]' [0:10]']
ここでは、t は Inport ブロック In1 の非同期イベントの数を含む列ベクトルですが、tu は入力値と Inport ブロック In2 の時刻を対比したテーブルです。
既定では、[時間] パラメーターと [出力] パラメーターが選択され、出力変数には tout および yout という名前が付いています。
モデルをシミュレートします。
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 の出力が含まれます。その他の時点では、出力では前の値に保たれます。