このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
テスト ハーネスの入力とスケジューリングにおける Stateflow チャートの使用
テスト ハーネスのスケジューリングにおける Stateflow チャートの使用
テストハーネスのスケジューリングは、Test Sequence ブロック、MATLAB® Function ブロック、または Stateflow® チャートを使用して定義できます。Stateflow チャートをスケジューラとして使用すると、Test Sequence ブロックや MATLAB Function ブロックでは利用できない Stateflow 機能を使用できます。Stateflow バリアント、グラフィカル関数、上位遷移、スーパー ステップを使用すると、より複雑なスケジューリングを定義できます。たとえば、Stateflow バリアントを使用することで、1 つのテスト ハーネスで複数のテスト シナリオを指定できます。複数のテスト シナリオをテストする必要がない場合や、複雑なシーケンス ロジックを使用しない場合は、シンプルな構文をもつ Test Sequence ブロックを使用してテストをスケジューリングします。
メモ
テスト ハーネスの入力やスケジューリングにチャートを使用するには、 Stateflow ライセンスが必要です。
Stateflow チャートをテスト ハーネスのテスト スケジューラとして使用するには、テスト対象モデルまたはサブシステムに、少なくとも 1 つの関数呼び出し信号が必要です。
モデルからテスト ハーネスを設定する際に、チャートをスケジューラとして使用する手順は次のとおりです。
モデルまたはサブシステムで右クリックし、それぞれ [テスト ハーネス] 、 [モデル用に作成] または [<サブシステム> 用に作成] を選択します。
モデルの場合は、[テスト ハーネスの作成] ダイアログ ボックスの [関数呼び出しとレートのスケジューラを追加] を
[チャート]
に設定します。サブシステムの場合は、[テスト ハーネスの作成] ダイアログ ボックスの [次を使用して関数呼び出し信号を生成] を
[チャート]
に設定します。
Simulink Function スケジューラという名前のチャートがテスト ハーネスに追加されます。
Stateflow チャートを開き、Stateflow ステート、遷移、その他のオブジェクトを使用してテスト シーケンスを定義します。Stateflow ステートは、Test Sequence ブロックのシーケンス ステップと同様の役割を果たします。遷移は、あるステートから別のステートへの移行条件を定義します。
Stateflow チャートをスケジューラとしてプログラムで指定するには、sltest.harness.create
の SchedulerBlock
プロパティを Chart
に設定します。
テスト ハーネス ソースとしての Stateflow チャートの使用
モデルからテスト ハーネスを作成する際に、チャートをテスト ハーネス ソースとして使用する手順は次のとおりです。
モデルまたはサブシステムで右クリックし、それぞれ [テスト ハーネス] 、 [モデル用に作成] または [<サブシステム> 用に作成] を選択します。
[テスト ハーネスの作成] ダイアログ ボックスの [Sources および Sinks] セクションで、
[インポート]
ではなく[チャート]
を選択します。チャートがテスト ハーネスに追加されます。以下に例を示します。
Stateflow チャートを開き、Stateflow ロジックを使用してテスト ハーネス ソースを定義します。
Stateflow チャートをソースとしてプログラムで指定するには、sltest.harness.create
の Source
プロパティを Chart
に設定します。
テスト ハーネスのスケジューラおよびソースとしての Stateflow チャート
この例では、テスト ハーネス内で 1 つの Stateflow チャートをテスト スケジューラおよびソースとして使用する方法を示します。この例で使用する sltest_autosar_chart.slx
モデルのテスト ハーネスは、既に作成済みです。
sltest_autosar_chart
は、自動車用スロットル位置コントローラーの AUTOSAR コンポジション モデルです。AUTOSAR コンポジション モデルは、相互接続された Model ブロックのネットワークで構成され、各ブロックはアトミック AUTOSAR ソフトウェア コンポーネント (ASWC) を表します。Simulink の入力端子と出力端子は AUTOSAR ポートを表します。信号線は AUTOSAR コンポーネント コネクタを表します。
プライマリおよびセカンダリ スロットル位置を取得する入力は、外部時系列入力を使用してモデル化されており、変更を加えることなく Chart に直接入力されます。一部のスティミュラスの入力をモデル化でき、その他は外部で取得されたデータとしてのみ利用可能な場合に、このモデリング スタイルは適しています。
この例を実行する前に、書き込み権限があるディレクトリに移動します。
モデルを開く
テスト ハーネスを開く
この例では、テスト ハーネスは既に作成されています。
このイメージは、[テスト ハーネスの作成] ダイアログにおいて、ソースとスケジューラの両方に Chart
が選択されている部分を示しています。テスト ハーネスを再作成する必要はありません。
ハーネスを開くには、エディター キャンバスの右下隅にあるパースペクティブ コントロールを使用して、[内部テスト ハーネス] をクリックします。
テスト ハーネスが開きます。
Stateflow チャートを開く
テスト ハーネス内のチャートをダブルクリックして、スケジューリング ロジックを表示します。
テスト対象コンポーネント (AUTOSAR モデル) には、アクセル ペダル位置センサーの入力 APP_HwIO_Value
が必要です。これは、チャート内で 3 つのステートによりモデル化されています。
Initialize
ステートは入力をノミナル値 (170) に設定し、Run
ステートは 950 ms の定常加速コマンドをモデル化します。加速コマンドは、Terminate
ステートでノミナル値にリセットされます。
テスト対象コンポーネントは、エクスポート関数モデリング スタイルを使用します。(エクスポート関数モデルの概要を参照してください。)テスト ハーネスの作成時、Stateflow チャートは、各ルート レベルの Simulink Function ブロックを呼び出し、モデル内の各 Function-Call Subsystem にトリガー イベントを送信するように構成されました。この例では、トリガー イベントを送信するコードは、スティミュラス波形が生成された後に、各ステート内に配置されています。
モデルの実行
テスト ハーネスからモデルを実行します。スロットル コマンドの出力を確認するには、テスト ハーネスの Scope を開きます。
参考
sltest.harness.create
| Test Sequence | Function Caller