ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

コンポーネント検証

コンポーネント検証を使用すると、次のいずれかの方法でモデル内の設計コンポーネントをテストすることができます。

  • "システム解析"。対象コンポーネントを含むモデルのコンテキスト内で、閉ループ コントローラーの体系的なシミュレーションを使用して制御システム モデルのコンポーネントを検証します。その後、制御アルゴリズムをモデルでテストすることができます。

  • "コンポーネント解析"。スタンドアロン コンポーネントとして、コンポーネント アルゴリズムの信頼性を高めるために、対象コンポーネントをシステムの他の部分から分離して検証します。

    スタンドアロン コンポーネントの検証には、いくつかの利点があります。

    • この解析では、制御の対象となるシステムの物理的な制約が原因でテストできない設計部分に焦点を当てることができます。

    • 開ループ シミュレーションでは、プラント モデルをフィードバック制御なしでテストできます。

    • この方法は、モデルがまだ使用できる状態でない場合や、パフォーマンス上の理由で制御システム モデルのシミュレーションをアクセラレータ モードで実行する必要がある場合に使用できます。

コンポーネント検証用の Simulink Coverage ツール

検証対象のコンポーネントを分離し、Simulink® Coverage™ ソフトウェアに付属するツールを使用することにより、テスト ケースを作成して大規模なモデル用にテスト範囲を拡張します。次のことが可能です。

  • 100% のモデル カバレッジを達成 — 特定のモデル コンポーネントのカバレッジが 100% に達しない場合、最上位モデルのカバレッジも 100% には達しません。これらのコンポーネントを個別に検証すると、コンポーネント インターフェイスを完全に指定するテスト ケースを作成できるようになるため、コンポーネントのカバレッジが 100% になります。

  • コンポーネントのデバッグ — 指定の設計要件をそれぞれのモデル コンポーネントが満たしているかを検証するために、特定のコンポーネントが設計どおりに動作することを検証するテスト ケースを作成できます。

  • コンポーネントのロバスト性のテスト — コンポーネントが予期しない入力および計算を正しく処理することを検証するために、データを生成するテスト ケースを作成できます。その後、コンポーネントのエラー処理機能をテストします。

コンポーネント検証のワークフロー

このグラフィックスは、コンポーネント検証のための 2 つの方法を説明しています。

  1. コンポーネントを検証する方法を選択します。

    • 閉ループ シミュレーションの場合、信号のログをそのコンポーネントに記録してデータ ファイルに保存することで、そのコンテナー モデルのコンテキスト内でコンポーネントを検証します。その信号が完全なテスト スイートを構成していない場合、ハーネス モデルを生成して、Signal Builder でテスト ケースを追加または変更します。

    • 開ループ シミュレーションの場合、コンポーネントをコンテナー モデルから抽出して、抽出したコンポーネントのハーネス モデルを作成し、そのコンポーネントの検証をコンテナー モデルから切り離して行います。テスト ケースを Signal Builder で追加または変更し、ハーネス モデルのコンポーネントへの信号をログに記録します。

  2. 検証用のコンポーネントを準備します。

  3. テスト ケースを作成し、ログに記録します。テスト ケースのデータを 1 つのデータ ファイルにマージすることも可能です。

    このデータ ファイルにはコンポーネントのシミュレーションに使用するテスト ケースのデータがあります。特定のテスト ケースの組み合わせで予想どおりの結果が得られない場合は、データ ファイルで新しいテスト ケースを追加するか既存のテスト ケースを変更します。テスト ケースを 1 つのデータ ファイルにマージします。

    解析の目標を達成するテスト スイートが得られるまで、テスト ケースの追加または変更を続けます。

  4. ソフトウェアインザループ モードまたはプロセッサインザループ モードでテスト ケースを実行します。

  5. 完全なテスト スイートが得られると、次のことができるようになります。

    • 次の目的のため、モデルのシミュレーションによってテスト ケースを実行します。

      • カバレッジを記録する。

      • 出力値を記録し、予想した結果が得られているか確認する。

    • コード生成検証 (CGV) API を呼び出して、コンポーネントを含むモデル用に生成されたコードを、シミュレーション モード、ソフトウェアインザループ (SIL) モードまたはプロセッサインザループ (PIL) モードで実行します。

      メモ

      別の実行モードでモデルを実行するには、CGV API を使用して結果の数値的等価性を検証します。プログラムによるコード生成の検証 (Embedded Coder)を参照してください。

コンテナー モデルから隔離してコンポーネントを検証

コンポーネント解析を使用すると、次を検証できます。

  • Model ブロック

  • Atomic サブシステム

  • Stateflow® Atomic サブチャート

  1. コンポーネントの種類に応じて、次のいずれかの操作を行います。

    • Model ブロック — 参照モデルを開きます。

    • Atomic サブシステム — サブシステムの内容を独自の Simulink モデルに抽出します。

    • Atomic サブチャート — Stateflow Atomic サブチャートの内容を独自の Simulink モデルに抽出します。

  2. 次のモデルに対してハーネス モデルを作成します。

    • 参照モデル

    • 抽出したモデル (Atomic サブシステムまたは Atomic サブチャートの内容が含まれます)

  3. ハーネス モデルの Signal Builder でテスト ケースを追加または変更します。

  4. Signal Builder からテスト ユニットへの入力信号を記録します。

  5. テスト スイートで満足な結果が得られるまで、手順 3 と 4 を繰り返します。

  6. テスト ケースのデータを 1 つのファイルにマージします。

  7. 目的に応じて、次のいずれかの操作を行います。

    • テスト ケースを実行して、次のことを行います。

      • カバレッジを記録する。

      • 出力値を記録し、予想した値が得られているか確認する。

    • コード生成検証 (CGV) API を呼び出し、コンポーネントを含むモデル用に生成されたコード上で、テスト ケースをソフトウェアインザループ (SIL) モードまたはプロセッサインザループ (PIL) モードにより実行します。

テスト ケースで予想どおりの結果が得られない場合は、手順 3 ~ 5 を繰り返します。

コンテナー モデルのコンテキストでの Model ブロックの検証

システム解析を使用して、以下を行います。

  • Model ブロックの、コンテナー モデルのコンテキストでの検証。

  • 閉ループ コントローラーの解析。

  1. コンテナー モデルをシミュレートしてコンポーネントへの入力信号を記録するか、Simulink Design Verifier™ ソフトウェアを使用してモデルを解析します。

  2. テスト ケースをテスト スイートに追加したり、既存テスト ケースを変更したりするには、記録された信号を使用してハーネス モデルを作成します。

  3. ハーネス モデルで、Signal Builder のテスト ケースを追加または変更します。

  4. Signal Builder からテスト ユニットへの入力信号を記録します。

  5. テスト スイートで満足な結果が得られるまで、手順 3 と 4 を繰り返します。

  6. テスト ケースのデータを 1 つのファイルにマージします。

  7. 目的に応じて、次のいずれかの操作を行います。

    • テスト ケースを実行して、次のことを行います。

      • カバレッジを記録する。

      • 出力値を記録し、予想した値が得られているか確認する。

    • コード生成検証 (CGV) API を呼び出し、モデル用に生成されたコード上で、テスト ケースをソフトウェアインザループ (SIL) モードまたはプロセッサインザループ (PIL) モードにより実行します。

テスト ケースで予想どおりの結果が得られない場合は、手順 3 ~ 5 を繰り返します。