メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

テスト ハーネスの入力とスケジューリングにおける Stateflow チャートの使用

テスト ハーネスのスケジューリングにおける Stateflow チャートの使用

テストハーネスのスケジューリングは、Test Sequence ブロック、MATLAB® Function ブロック、または Stateflow® チャートを使用して定義できます。Stateflow チャートをスケジューラとして使用すると、Test Sequence ブロックや MATLAB Function ブロックでは利用できない Stateflow 機能を使用できます。Stateflow バリアント、グラフィカル関数、上位遷移、スーパー ステップを使用すると、より複雑なスケジューリングを定義できます。たとえば、Stateflow バリアントを使用することで、1 つのテスト ハーネスで複数のテスト シナリオを指定できます。複数のテスト シナリオをテストする必要がない場合や、複雑なシーケンス ロジックを使用しない場合は、シンプルな構文をもつ Test Sequence ブロックを使用してテストをスケジューリングします。

メモ

テスト ハーネスの入力やスケジューリングにチャートを使用するには、 Stateflow ライセンスが必要です。

Stateflow チャートをテスト ハーネスのテスト スケジューラとして使用するには、テスト対象モデルまたはサブシステムに、少なくとも 1 つの関数呼び出し信号が必要です。

モデルからテスト ハーネスを設定する際に、チャートをスケジューラとして使用する手順は次のとおりです。

  1. モデルまたはサブシステムで右クリックし、それぞれ [テスト ハーネス][モデル用に作成] または [<サブシステム> 用に作成] を選択します。

    • モデルの場合は、[テスト ハーネスの作成] ダイアログ ボックスの [関数呼び出しとレートのスケジューラを追加] [チャート] に設定します。

    • サブシステムの場合は、[テスト ハーネスの作成] ダイアログ ボックスの [次を使用して関数呼び出し信号を生成] [チャート] に設定します。

    Simulink Function スケジューラという名前のチャートがテスト ハーネスに追加されます。

    Test harness with Simulink Function Scheduler chart

  2. Stateflow チャートを開き、Stateflow ステート、遷移、その他のオブジェクトを使用してテスト シーケンスを定義します。Stateflow ステートは、Test Sequence ブロックのシーケンス ステップと同様の役割を果たします。遷移は、あるステートから別のステートへの移行条件を定義します。

Stateflow チャートをスケジューラとしてプログラムで指定するには、sltest.harness.createSchedulerBlock プロパティを Chart に設定します。

テスト ハーネス ソースとしての Stateflow チャートの使用

モデルからテスト ハーネスを作成する際に、チャートをテスト ハーネス ソースとして使用する手順は次のとおりです。

  1. モデルまたはサブシステムで右クリックし、それぞれ [テスト ハーネス][モデル用に作成] または [<サブシステム> 用に作成] を選択します。

  2. [テスト ハーネスの作成] ダイアログ ボックスの [Sources および Sinks] セクションで、[インポート] ではなく [チャート] を選択します。

    チャートがテスト ハーネスに追加されます。以下に例を示します。

    Test harness with a chart as the source

  3. Stateflow チャートを開き、Stateflow ロジックを使用してテスト ハーネス ソースを定義します。

Stateflow チャートをソースとしてプログラムで指定するには、sltest.harness.createSource プロパティを 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 を開きます。

参考

| |

トピック