Main Content

SIL アプローチまたは PIL アプローチの選択

コンポーネント ABC、および D で構成される最上位モデルについて考えます。

  • AB は、コードが以前に生成されテストされている既存のコンポーネントです。

  • 参照モデル C とサブシステム D は新しいコンポーネントです。

ソフトウェアインザループ (SIL) シミュレーションとプロセッサインザループ (PIL) シミュレーションでは、次の数値的等価性テストのアプローチを使用できます。

一部のテストでは、テスト ハーネス モデルが必要です。テスト ハーネス モデルは次を行います。

  • テスト対象ブロックに与えられるテスト ベクトルまたはスティミュラスの入力を生成します。

  • ブロックからの出力を確認または取得できるようにします。

次の例は、簡単なテスト ハーネス モデルを示しています。

テスト対象ブロックは Model ブロックです。Sine Wave ブロックは、Model ブロックの入力を生成します。Scope ブロックを介して、Model ブロックからの出力を確認できます。テスト ハーネスの作成と使用の詳細については、Create or Import Test Harnesses and Select Properties (Simulink Test)およびCode Generation Verification Workflow with Simulink Test (Simulink Test)を参照してください。

最上位モデルのコードのテスト

最上位モデルのコンポーネント (ABC、および D) から生成されたコードを一度にテストするには、最上位モデルの SIL/PIL または Model ブロックの SIL/PIL を使用します。

  • 最上位モデルの SIL/PIL:

    1. MATLAB ワークスペースにテスト ベクトルまたはスティミュラスの入力を作成します。

    2. 最上位モデルをノーマル、SIL および PIL シミュレーション モードで実行します。MATLAB® ワークスペースからテスト ベクトルまたはスティミュラスの入力が読み込まれます。

    3. 各シミュレーション モードで、出力を確認または取得します。

    4. ノーマルの出力と SIL および PIL の出力を比較して、数値的等価性を検証します。

  • Model ブロックの SIL/PIL:

    1. 最上位モデルのコンポーネントを含む Model ブロックを作成します。

    2. Model ブロックをシミュレーション モデル (テスト ハーネス モデルなど) に挿入します。

    3. シミュレーションを実行し、Model ブロックをノーマル、SIL および PIL モードの間で切り替えます。SIL シミュレーション モードと PIL シミュレーション モードで、[コード インターフェイス] Model ブロック パラメーターを [最上位モデル] に設定します。

    4. ノーマルの出力と SIL および PIL の出力を比較して、数値的等価性を検証します。

詳細については、Simulation with Top ModelおよびSIL/PIL Manager Verification Workflowを参照してください。

参照モデルのコードのテスト

モデル参照階層の一部としてコンポーネント C から生成されたコードをテストするには、Model ブロックの SIL/PIL アプローチを使用します。

  • Model ブロック C をシミュレーション モデル (テスト ハーネス モデルなど) に挿入します。

  • シミュレーションを実行し、Model ブロックをノーマル、SIL および PIL モードの間で切り替えます。SIL シミュレーション モードと PIL シミュレーション モードで、[コード インターフェイス] Model ブロック パラメーターを [モデル参照] に設定します。

  • ノーマルの出力と SIL および PIL の出力を比較して、数値的等価性を検証します。

詳細については、Simulation with Model BlocksおよびSIL/PIL Manager Verification Workflowを参照してください。

サブシステムのコードのテスト

サブシステム D から生成されたコードをテストするには、次のいずれかのワークフローを使用します。

ワークフロー説明
Simulink Test ハーネスと SIL/PIL マネージャー

親モデルから生成されたコードの一部であるサブシステム コード上でユニット テストを実行します。

  1. slbuild(model) または slbuild(model, 'RTWModelReferenceTargetOnly') を実行して、サブシステムを含むモデルのコードを生成します。

  2. モデルで、サブシステムを右クリックしてからサブシステムのテスト ハーネスを作成します。

  3. SIL/PIL マネージャーを開きます。必要に応じて、コード カバレッジ解析を有効にします。その後、back-to-back モデル シミュレーションと SIL シミュレーションまたは PIL シミュレーションを実行します。

  4. 必要に応じて、等価性のテスト ケースをエクスポートします。

詳細については、Unit Test Subsystem Code with SIL/PIL Managerを参照してください。

サブシステムがこのワークフローでサポートされていない場合は、SIL ブロックまたは PIL ブロックのワークフローを使用します。サポートされていないサブシステムとその他の制限の詳細については、Atomic Subsystem Workflow Limitationsを参照してください。

SIL ブロックまたは PIL ブロック

サブシステムから新しいスタンドアロン コードを生成してテストします。

  1. サブシステムをシミュレーション モデル (テスト ハーネス モデルなど) に挿入します。

  2. ノーマル モードのシミュレーションを実行し、出力を取得します。

  3. サブシステムから SIL ブロックまたは PIL ブロックを作成します。

  4. モデルで、サブシステムを SIL ブロックまたは PIL ブロックで置き換えます。

  5. モデルのシミュレーションを実行し、出力を取得します。

  6. ノーマル モードのサブシステムの出力と SIL ブロックまたは PIL ブロックの出力を比較して、数値的等価性を検証します。

詳細については、SIL or PIL Block Simulationを参照してください。

概要

コードが生成されるコンポーネント シミュレーションでの使用手順生成されたコードのインターフェイステスト信号のソース
最上位モデル最上位モデルの SIL/PIL

SIL/PIL マネージャーで、次を行います。

  1. [SIL/PIL シミュレーションのみ] モードを選択します。

  2. [テスト対象システム] で、[最上位モデル] を選択します。

スタンドアロンMATLAB ワークスペース
Model ブロックによって参照されるモデルModel ブロックの SIL/PIL

  1. SIL/PIL マネージャーで、次を行います。

    1. [SIL/PIL シミュレーションのみ] モードを選択します。

    2. [テスト対象システム] で、[SIL/PIL モードの Model ブロック] を選択します。

  2. Model ブロックで、[シミュレーション モード][ソフトウェアインザループ (SIL)] または [プロセッサインザループ (PIL)] に設定します。

Model ブロック パラメーター [コード インターフェイス] によって決まり、スタンドアロンまたはモデル参照です。シミュレーション モデル (テスト ハーネス モデルなど)
サブシステムSimulink Test ハーネスと SIL/PIL マネージャー

  1. Atomic サブシステムを含むモデルのコードを生成します。

  2. サブシステムのテスト ハーネスを作成します。

  3. SIL/PIL マネージャーから、back-to-back モデル シミュレーションと SIL シミュレーションまたは PIL シミュレーションを実行します。

  4. 必要に応じて、等価性のテスト ケースをエクスポートします。

生成された親モデルのコードによって決まり、スタンドアロンまたはモデル参照です。 Simulink® Test™ ハーネス
サブシステムSIL ブロックまたは PIL ブロック手動によるブロック置換スタンドアロンシミュレーション モデル (テスト ハーネス モデルなど)。

関連するトピック