Main Content

入力行列を使用したエクスポート関数モデルのシミュレーションのテスト

関数呼び出しシーケンスが単純でモデル入力として指定できる場合、入力行列を使用したシミュレーションが、エクスポート関数モデルをテストする推奨方法になります。

  1. 関数呼び出し時間を指定する時間ベクトルを作成します。

  2. 入力データを時間ベクトルに追加する行列を作成します。

  3. シミュレーションを実行します。

この例のエクスポート関数モデルの作成については、エクスポート関数モデルの作成を参照してください。

関数呼び出し入力とデータ入力の作成

ルートレベルの関数呼び出し Inport ブロックでイベントが発生したことを示す時間ベクトルとルート レベル データ Inport ブロックのデータベクトルを作成します。

  1. 関数呼び出し Inport ブロック 12 に対して、タイム ステップ 0.10.01 を使用して列ベクトルを作成します。MATLAB® コマンド ウィンドウで次を入力します。

    t1 = [0:0.1:10]';
    t2 = [0:0.01:10]';
    • 時間ベクトルは単調増加および double データ型でなければなりません。

    • 関数呼び出し Inport ブロックのサンプル時間が指定された場合、対応する時間ベクトルの値はすべて指定された値の整数倍でなければなりません。

    • 1 つのタイム ステップで複数の関数呼び出しを指定するには、時間値を適宜繰り返します。たとえば、t = 0.1 で 3 つのイベントを指定し、t = 0.5 で 2 つのイベントを指定するには、時間ベクトルに 0.1 を 3 回、0.5 を 2 回リストします。つまり、t1 = [0.1 0.1 0.1 0.5 0.5]' とします。

    • 非周期的なサンプル時間を使用するには、Inport ブロックの [サンプル時間]-1 に設定し、t1 = [0, 0.1, 0.2, 0.4, 0.8] などの非等間隔の時間ベクトルを指定します。

  2. タイム ステップとデータ Inport ブロック 3 のデータ値を使用して行列を作成します。

    sine_data = sin(0:0.01:10)';
    d3 = [t2,sine_data];

    入力データの形式に記載されているように、データ入力ではサポートされている任意の形式を使用できます。

以下の表に、時間ベクトル t の指定に関する追加の情報を示します。

内部 Trigger Port ブロックのサンプル時間タイプの設定:

継承されたサンプル時間 (-1) をもつルートレベルの関数呼び出し Inport ブロック

離散サンプル時間をもつルートレベルの関数呼び出し Inport ブロック

トリガー

減少しない列ベクトル。

Function-Call Subsystem は列ベクトルで指定された時間に実行されます。サンプル時間は周期的または非周期的になります。

空行列 ([]) を指定した場合は、Function-Call Subsystem は実行されません。

減少しない列ベクトル。列ベクトルの各要素は、Inport ブロックで指定されたサンプル時間の整数倍でなければなりません。

Function-Call Subsystem は列ベクトルで指定された時間に実行されます。

空行列 ([]) を指定した場合、Function-Call Subsystem は Inport ブロックで指定されたサンプル時間ごとに 1 回実行されます。

周期的

この構成は使用できません

空行列 ([])。

Function-Call Subsystem はそれを呼び出す Inport ブロックで指定された時間に実行されます。

エクスポート関数モデルのシミュレーション

エクスポート関数モデルをシミュレートして、コードを生成する前にその動作をテストおよび確認します。

  1. MATLAB ワークスペースから時間とデータをインポートします。

    [モデル化] タブで [モデル設定] を選択します。[コンフィギュレーション パラメーター] ダイアログ ボックスで、[データのインポート/エクスポート] ペインを選択し、[入力] パラメーターを t1, t2, d3 に設定します。

    t1 および t2 は、関数呼び出し Inport ブロック 12 のイベント時間を含む列ベクトルです。d3 は、データ Inport ブロック 3 の入力値と時間を比較したテーブルです。

  2. シミュレーションを実行します。

  3. 結果をプロットします。MATLAB コマンド ウィンドウで次を入力します。

    plot(yout.time, yout.signals(1).values)
    hold
    plot(yout.time, yout.signals(2).values)

    Scope displaying simulation results

  4. t1 を変更して 0.5 秒ごとにイベントを設定します (0.5 は、Inport ブロック 1 で指定されたサンプル時間 0.1 の整数倍です)。

    t1 = [0:0.5:10]';
  5. シミュレーションを再実行します。

    Scope displaying simulation results

モデルをテストした後に、関数のコードを生成できます。エクスポート関数モデルのコードの生成を参照してください。

参考

関連するトピック