Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

バリアント ブロックを含むモデルでのバリアント コンフィギュレーションの解析

バリアント コンフィギュレーションの概要

モデルの階層構造にはいくつかのバリアント ブロックが含まれていることがあり、それぞれに多くのバリアントの選択があります。モデル内の各バリアントの選択は、その選択がアクティブか非アクティブかを決定するために使用される "バリアント制御" に関連付ける必要があります。これらのバリアントの選択の組み合わせは、モデル化するシステムの特定の実装を表します。また、モデル内の特定のバリアント パスに対応しています。

このようなバリアントの選択の組み合わせは、"バリアント コンフィギュレーション" を使用して表されます。一連のバリアント制御変数とその値が含まれ、それを使用してモデル内の特定のバリアント パスをアクティブにできます。モデル内で使用されているバリアント制御変数の数によっては、モデルのバリアント コンフィギュレーションの数が多くなることがあります。バリアント マネージャーを使用して、このようなバリアント コンフィギュレーションを作成および管理できます。それらのコンフィギュレーションの比較および解析には、"バリアント コンフィギュレーション解析ツール" を使用できます。

バリアント コンフィギュレーション解析ツールを使用したバリアント コンフィギュレーションの解析

メモ

バリアント コンフィギュレーション解析ツールを使用するには、Simulink® Design Verifier™ のライセンスが必要です。

バリアント コンフィギュレーション解析ツールでは次のことが可能です。

  • モデルのさまざまなバリアント コンフィギュレーションを比較する。

  • すべてのバリアントの選択が少なくとも 1 回はアクティブ化されているかどうかを確認し、シミュレーションとコード生成に対してモデルが完全にカバーされていることを確認する。

  • 実装されたアクティブなモデルが異なるバリアント コンフィギュレーション間で異なるかどうかを確認する。

  • 特定のバリアント コンフィギュレーションに使用されている依存モデルおよびライブラリについての情報を取得する。

モデル用に作成した名前付きバリアント コンフィギュレーションを解析したり、バリアント制御変数の値を設定した後に解析を実行したりできます。ツールで生成されるレポートには以下が表示されます。

  • 解析されたバリアント コンフィギュレーション。

  • すべてのブロックを含むモデルの階層構造。

  • 各バリアント コンフィギュレーションにおける各ブロックのバリアントのアクティブ性。

  • 各バリアント コンフィギュレーションのブロックの伝播バリアント条件。

解析結果は、さまざまなバリアント コンフィギュレーションで使用されているブロックの判別に役立ちます。未使用ブロックは赤で強調表示されます。これは、モデルの未テストでカバーされていない部分を示しています。ヒートマップ表示は、さまざまなバリアント コンフィギュレーション間で、アクティブな実装モデルの類似点と相違点を判別するのに役立ちます。この情報は、バリアント コンフィギュレーションを調整し、モデルを更新し、すべてのバリアント コンフィギュレーションでフル シミュレーション カバレッジを提供するために使用できます。

モデルに対するバリアント コンフィギュレーション解析ツールの実行方法

  1. バリアント ブロックを含むモデルを開きます。たとえば、バリアント コンフィギュレーション解析です。

    Model with Variant Source and Variant Sink blocks

    このモデルには、センサーについての複数のベンダーの選択と、センサー入力に基づくさまざまなコントローラー実装が含まれています。ベンダー センサーの選択は、Variant Source ブロックと Variant Sink ブロックでモデル化されています。異なるコントローラーの選択は、Variant Subsystem ブロックを使用してモデル化されています。

  2. バリアント マネージャーを開きます。[モデル化] タブで、[設計] セクションを開き、[バリアント マネージャー] をクリックします。あるいは、いずれかのバリアント ブロックのバリアントのバッジを右クリックして [バリアント マネージャーで開く] を選択します。

    variant badge on variant block

    バリアント マネージャーが開き、事前定義されたコンフィギュレーションが表示されます。

  3. [解析] をクリックします。[バリアント コンフィギュレーション解析] ダイアログ ボックスが開きます。

  4. [解析モード] で、モデル用に事前定義された名前付きコンフィギュレーションを解析するか、またはバリアント制御変数の値を指定する必要があるかを選択します。

    • [バリアント コンフィギュレーションの指定]: [名前付きコンフィギュレーション] のリストから名前付きバリアント コンフィギュレーションを選択します。それらをすべて選択するには、[名前付きコンフィギュレーション] を選択します。

    • [バリアント制御値の指定]: このオプションを選択すると、異なるコンフィギュレーションに対応する複数の変数グループを作成することができます。新しい変数グループを作成するには、[新しい変数グループ] をクリックして、バリアント制御変数の値を設定します。バリアント制御値を指定するか、またはドロップダウン リストから [無視されます] を選択することができます。[無視されます] を選択した場合、そのバリアント制御変数はモデルの解析中に考慮されません。

  5. [解析] をクリックします。解析バリアント コンフィギュレーションのレポートが開きます。

    メモ

    この例では、[解析モード][バリアント コンフィギュレーションの指定] が選択されています。

バリアント コンフィギュレーション解析レポートの確認

Variant configuration analysis report

バリアント コンフィギュレーション解析レポートには、モデルの階層構造のツリー テーブル ビューと解析済みのすべてのバリアント コンフィギュレーションが表示されます。次の表に、レポートで使用されるアイコンと形式を示します。

行と列

テーブルの各行はモデル内のブロックに対応し、各列はバリアント コンフィギュレーションを表します。

チェック マーク

check mark in report field は視覚補助のためのシンボルであり、ブロックが対応するバリアント コンフィギュレーションでアクティブであることを示します。

背景色

ブロックがいずれのバリアント コンフィギュレーションでもアクティブでない場合、そのブロック名を含む行全体が赤の背景色で表示されます。そのようなブロックはモデルの未テストのパスを示しています。テーブルの赤の背景色のフィールドは、そのブロックが特定のコンフィギュレーションでアクティブでないことを示します。

たとえば、このモデルで、Vendor A ブロックはバリアント コンフィギュレーション VendorACtrlLinearVendorACtrlFuzzyVendorACtrlNonLinear でアクティブであり、バリアント コンフィギュレーション VendorBCtrlFuzzyVendorBCtrlLinearVendorBCtrlSecondOrderVendorBCtrlNonLinear で非アクティブです。

ブロックのアクティブ性のアイコン

[アクティブ性] 列のアイコン block is always active icon | block is partially active icon | block is never active icon は、ブロックがすべてのコンフィギュレーションでアクティブであるか、一部のコンフィギュレーションでアクティブであるか、すべてのコンフィギュレーションで非アクティブであるかを示します。

バリアント条件の注釈 (c:#)

テーブルのフィールド内の注釈は、特定のコンフィギュレーションでブロックが受け取るバリアント条件を表します。ブロックの伝播バリアント条件は、アクティブなバリアント コンフィギュレーションに応じて変わります。

それぞれの注釈 (c:#) とそれが表す伝播バリアント条件のマッピングについては、[注釈] ペインのテーブルで確認できます。伝播バリアント条件は、ブロックが特定のバリアント コンフィギュレーションについてなぜアクティブなのかを理解するのに役立ちます (バリアント条件は、コンフィギュレーションで定義された制御変数の値に基づいて評価されます)。テーブル内の注釈をクリックします。その注釈を含むすべてのブロックがコンフィギュレーションのテーブルで強調表示されます。

[バリアント コンフィギュレーション解析] ウィンドウ上のコントロールによって、次のアクションを実行できます。

  • ブロックの検索。

  • ブロックのタイプに基づく結果のフィルター処理。

    [ブロックの表示] リストからオプションを選択します。

    • バリアント: モデル内のバリアント ブロックのみを表示します。

    • 階層的: モデル内のすべての階層ブロック (Subsystem ブロックまたは Model ブロックなど) を表示します。このビューを使用すると、モデル全体を見る代わりに、サブシステムまたはモデル参照を 1 つずつ調べることができます。

    • すべてのブロック: モデル内のすべてのブロックを表示します。

  • ブロックのアクティブ性に基づく結果のフィルター処理。

    Block activeness check box filter

    • 常にアクティブ: モデル内で常にアクティブなブロックを表示します。

    • 部分的にアクティブ: 選択されたコンフィギュレーションの一部のコンフィギュレーションではアクティブであり、別のコンフィギュレーションではアクティブでないブロックを表示します。

    • 常に非アクティブ: モデル内で常にアクティブでないブロックを表示します。これらのブロックは赤で強調表示されます。これは、モデルの未テストでカバーされていない部分であり、フル シミュレーション カバレッジを提供するには更新が必要な部分を示しています。

    たとえば、次の図は未使用のブロックが複数あるモデルを示しています。未使用ブロックを表示するため、[常に非アクティブ] オプションが選択されています。

    Linear_Control 内の Second order コントローラー内のブロックと F1_Unsat フィルター内のブロックは未使用です。これらの未使用ブロックをバリアント コンフィギュレーションの少なくとも 1 つでアクティブ モデルの一部にするには、モデルを変更するか、バリアント コンフィギュレーションを更新します。

    次の図は、2 つのまったく同じバリアント コンフィギュレーションを含むモデルを示しています。この結果を得るために [部分的にアクティブ] オプションが選択されています。

    バリアント コンフィギュレーション VendorBCtrlLinearVendorBCtrlSecondOrder の間に違いは一切ありません。これは、この両コンフィギュレーションから得られるアクティブ モデルは同じになるということです。これを解決するには、バリアント コンフィギュレーションを更新するか、モデルを適切に更新します。

制限

バリアント コンフィギュレーション解析では、[バリアントのアクティベーションのタイミング] パラメーターが startup に設定されたバリアント ブロックはサポートされていません。

関連するトピック