Main Content

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

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

バリアント モデルには、これに関連付けられている 1 つ以上のバリアント コンフィギュレーションを設定できます。バリアント マネージャーを使用して、バリアント コンフィギュレーションを作成できます。各バリアント コンフィギュレーションには、モデル内のバリアントの選択をアクティブにする一連のバリアント制御変数値が含まれます。各バリアント コンフィギュレーションは、モデルの固有の実装を生成するために使用できます。モデル内で使用されているバリアント制御変数の数に応じて、バリアント コンフィギュレーションの数は多くなることがあります。バリアント コンフィギュレーションの数が多いと、すべてのバリアントの選択が少なくとも 1 回アクティブ化されたこと、シミュレーションとコード生成に対してモデルが完全にカバーされていることを確認するのが困難になる可能性があります。また、実装されたアクティブなモデルが異なるバリアント コンフィギュレーション間で異なることを確認することも困難になります。バリアント コンフィギュレーション解析ツールを使用すると、モデルのさまざまなバリアント コンフィギュレーションを比較できます。さらに、特定のバリアント コンフィギュレーションに使用されている依存モデルおよびライブラリについての情報を取得できます。

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

バリアント コンフィギュレーションをもつモデルの解析

  1. バリアント ブロックを含むモデルを開きます。たとえば、Sensor Vendors などです。

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

  2. バリアントのバッジを右クリックして [バリアント マネージャーで開く] を選択します。バリアント マネージャーが開き、事前定義されたコンフィギュレーションが表示されます。あるいは、バリアント ブロックを選択し、ツールストリップの [バリアント] タブで [バリアント マネージャー] を選択します。

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

  4. [解析モード] で、目的のオプションを選択します。

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

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

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

    メモ

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

レポートには、モデルの階層構造のツリー テーブル ビューと解析済みのすべてのバリアント コンフィギュレーションが表示されます。テーブルの各行はモデル内のブロックに対応し、各列はバリアント コンフィギュレーションを表します。チェック マークは、対応するブロックが対応するバリアント コンフィギュレーションでアクティブであることを示しています。赤で強調表示されたエントリは、その特定のバリアント コンフィギュレーションについてブロックが非アクティブであることを示しています。たとえば、上の図で、Vendor A ブロックはバリアント コンフィギュレーション VendorACtrlLinearVendorACtrlFuzzyVendorACtrlNonLinear でアクティブであり、バリアント コンフィギュレーション VendorBCtrlFuzzyVendorBCtrlLinearVendorBCtrlSecondOrderVendorBCtrlNonLinear で非アクティブです。

レポートの注釈 ("c:#") はバリアント条件に対応しています。バリアント条件は、アクティブなバリアント コンフィギュレーションに依存します。図には、注釈と条件のマッピングが示されています。バリアント条件は、ブロックがあるバリアント コンフィギュレーションについてなぜアクティブなのかを理解するのに役立ちます (バリアント条件は、コンフィギュレーションで定義された制御変数の値に基づいて評価されます)。

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

  • ブロックの検索。

  • 結果のフィルター処理によるブロックの選択的な表示。

  • 解析されたブロックの選択的な表示。

ブロックの表示

[バリアント解析] ウィンドウで以下を行って、ブロックを選択的に表示します。

  • モデル内のバリアント ブロックのみを表示するには、[バリアント] を選択します。

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

  • モデル内のすべてのブロックを表示するには、[すべてのブロック] を選択します。

ブロックのアクティブ性

[バリアント コンフィギュレーション解析] ウィンドウで、ブロックのアクティブ性ごとにブロックを選択的に表示します。

  • モデル内で常にアクティブなブロックを表示するには、[常にアクティブ] を選択します。

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

  • モデル内で常にアクティブでないブロックを表示するには、[常に非アクティブ] を選択します。これらのブロックが追加で赤で強調表示され、モデルの未使用で修正が必要な部分を示します。

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

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

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

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

注釈の表示

テーブル内の注釈は、バリアント条件に対応しています。バリアント条件は、アクティブなバリアント コンフィギュレーションに依存しています。バリアント条件は、ブロックが与えられたバリアント コンフィギュレーションについてアクティブであるかを理解するのに役立ちます。バリアント条件は、コンフィギュレーションで定義された制御変数の値に基づいて評価されます。

必要な注釈をクリックして、選択した注釈を含むブロックを表示します。

関連するトピック