Function-Call Generator を使用したレートベース モデルのシミュレーションのテスト
レートベース モデルをテストするには、レートベース モデルのテスト ハーネスを作成します。テスト ハーネスは、Model ブロックからレートベース モデルを参照するモデルです。Model ブロックに、関数呼び出し信号を受信する周期的関数呼び出しイベント端子が含まれます。
レートベース モデルを参照するテスト モデルの作成
新しい Simulink® モデルで以下を行います。
Model ブロックを追加し、プロパティ インスペクターで構成します。
[モデル名] をレートベース モデルのファイル名に設定します。たとえば、レートベース モデルの作成のモデル
ex_rate_based_model
を使用します。Model ブロックのアイコンが更新されます。
[モデル イベントのシミュレーション] で [レートのスケジュール] を選択します。
Model ブロックに周期的関数呼び出しイベント端子が表示されます。
Function-Call Generator ブロックや Stateflow® チャートなどの関数呼び出しイニシエーターを使用して実行レートを指定します。関数呼び出しイベントとそれらのイベントのスケジュールは、レートベース モデルを参照する Model ブロックの外部に配置されます。
たとえば、Function-Call Generator ブロックを周期的イベント端子ごとに 1 つずつ追加します。次に、各 Function-Call Generator ブロックの [サンプル時間] パラメーターを対応する端子のサンプル時間と一致するように設定します。
レートベース モデルに含まれる同じサンプル時間のサブシステムや参照モデルでは、イニシエーターのレートが同じでなければなりません。この要件の対象には、同じレートの周期的にスケジュールされたサブシステムやイベントドリブン Function-Call Subsystem ブロックが含まれます。
シミュレーションには固定ステップ ソルバーを使用します。[モデル化] タブで、[モデル設定] をクリックします。次に、[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインで、[タイプ] を
[固定ステップ]
に設定します。参照モデルの入力端子と出力端子に接続する Source ブロックと Sink ブロックを追加します。たとえば、Sine Wave ブロックと Scope ブロックをそれぞれ追加します。
必要に応じて、初期化関数、再初期化関数、リセット関数、終了関数など、他のコントロールをトリガー イベントに追加します。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。
レートベース モデルのテスト ハーネスのシミュレーション
ex_model_test_harness_with_subsystems
モデルは、Function-Call Generator ブロックを使用してレートベース モデルのシミュレーションをテストします。
Model ブロックでレートベース モデルを参照し、周期的イベント端子を使用してモデルのレートをスケジュールします。生成される関数呼び出し信号は周期的イベント端子に接続されます。
レートベース モデルの動作を確認するには、テスト ハーネスをシミュレートします。その後、Scope ブロックを開きます。
一般的なコンパイル エラーや実行時エラーの回避
一般的なコンパイル エラーや実行時エラーの原因は次のとおりです。
周期的イベント端子が同じサンプル時間が指定された関数呼び出しイニシエーターに接続されていない
参照モデルのスケジュールされた Inport ブロック ([サンプル時間] パラメーターを値に設定) でいずれかの周期的関数呼び出しイベント端子のレート ([Port discrete rates] テーブルで指定されたサンプル時間) が指定されていない