SIL アプローチまたは PIL アプローチの選択
コンポーネント A
、B
、C
、および D
で構成される最上位モデルについて考えます。
A
とB
は、コードが以前に生成されテストされている既存のコンポーネントです。参照モデル
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)を参照してください。
最上位モデルのコードのテスト
最上位モデルのコンポーネント (A
、B
、C
、および D
) から生成されたコードを一度にテストするには、最上位モデルの SIL/PIL または Model ブロックの SIL/PIL を使用します。
最上位モデルの SIL/PIL:
MATLAB ワークスペースにテスト ベクトルまたはスティミュラスの入力を作成します。
最上位モデルをノーマル、SIL および PIL シミュレーション モードで実行します。MATLAB® ワークスペースからテスト ベクトルまたはスティミュラスの入力が読み込まれます。
各シミュレーション モードで、出力を確認または取得します。
ノーマルの出力と SIL および PIL の出力を比較して、数値的等価性を検証します。
Model ブロックの SIL/PIL:
最上位モデルのコンポーネントを含む Model ブロックを作成します。
Model ブロックをシミュレーション モデル (テスト ハーネス モデルなど) に挿入します。
シミュレーションを実行し、Model ブロックをノーマル、SIL および PIL モードの間で切り替えます。SIL シミュレーション モードと PIL シミュレーション モードで、[コード インターフェイス] Model ブロック パラメーターを
[最上位モデル]
に設定します。ノーマルの出力と 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 マネージャー | 親モデルから生成されたコードの一部であるサブシステム コード上でユニット テストを実行します。
詳細については、Unit Test Subsystem Code with SIL/PIL Managerを参照してください。 サブシステムがこのワークフローでサポートされていない場合は、SIL ブロックまたは PIL ブロックのワークフローを使用します。サポートされていないサブシステムとその他の制限の詳細については、Atomic Subsystem Workflow Limitationsを参照してください。 |
SIL ブロックまたは PIL ブロック | サブシステムから新しいスタンドアロン コードを生成してテストします。
詳細については、SIL or PIL Block Simulationを参照してください。 |
概要
コードが生成されるコンポーネント | シミュレーションでの使用 | 手順 | 生成されたコードのインターフェイス | テスト信号のソース |
---|---|---|---|---|
最上位モデル | 最上位モデルの SIL/PIL | SIL/PIL マネージャーで、次を行います。
| スタンドアロン | MATLAB ワークスペース |
Model ブロックによって参照されるモデル | Model ブロックの SIL/PIL |
| Model ブロック パラメーター [コード インターフェイス] によって決まり、スタンドアロンまたはモデル参照です。 | シミュレーション モデル (テスト ハーネス モデルなど) |
サブシステム | Simulink Test ハーネスと SIL/PIL マネージャー |
| 生成された親モデルのコードによって決まり、スタンドアロンまたはモデル参照です。 | Simulink® Test™ ハーネス |
サブシステム | SIL ブロックまたは PIL ブロック | 手動によるブロック置換 | スタンドアロン | シミュレーション モデル (テスト ハーネス モデルなど)。 |