Variant Connector ブロックを使用した電気回路でのバリアントのモデル化
この例では、プライマリ タイプと非プライマリ タイプの Variant Connector ブロックを使用して、異なったバリアント構成に対する電気回路での電流の流れをシミュレートする方法を説明します。Variant Connector ブロックを使うと、コンポーネントを物理的に取り外したりシミュレーションから除外することなしに、シミュレーション中にネットワーク内で一連のコンポーネントをアクティブまたは非アクティブにすることができます。
モデルの探求
電気回路内のバリアント有界領域のモデル例を開くには、MATLAB® コマンド プロンプトで「openExample('simscape/VariantBoundedRegionElectricalCircuitExample')」と入力します。

このモデルには、BoundedRegion_1 と BoundedRegion_2 の 2 つの有界領域があります。BoundedRegion_1 では、Variant Connector ブロックの [コネクタ タグ] パラメーターが Reg1 に設定されており、BoundedRegion_2 では、[コネクタ タグ] パラメーターが Reg2 に設定されています。BoundedRegion_1 には、1 つのプライマリ Variant Connector ブロック VC_1 と、関連付けられた非プライマリ Variant Connector ブロック VC_2 があります。BoundedRegion_1 のバリアント条件は A == 1 です。BoundedRegion_2 には、1 つのプライマリ Variant Connector ブロック VC_3 と、2 つの関連付けられた非プライマリ Variant Connector ブロック VC_4 および VC_5 があります。BoundedRegion_2 のバリアント条件は B == 1 です。
シミュレーション中に、Simulink® は各有界領域に関連付けられたバリアント条件を計算します。ある領域のバリアント条件が true として評価された場合、その領域内に配置されているすべての物理コンポーネントがアクティブになります。たとえば、シミュレーション中に A == 1 が true として評価された場合、BoundedRegion_1 のコンポーネントである Resistor3 と Resistor4 がアクティブになります。A == 1 が false として評価された場合、BoundedRegion_1 のコンポーネントは非アクティブです。
異なったバリアント構成に対する電流の流れのシミュレート
バリアント条件変数 A および B は、PostLoadFcn コールバックで定義されます。これらの変数の値を表示または変更するには、[モデル化] タブで、[モデル設定] 、 [モデル プロパティ] を選択します。[コールバック] タブの [モデルのコールバック] ペインで、[PostLoadFcn] をクリックします。この例では、A = 1 および B = 2 となります。これらの変数に基づいて、関連付けられた有界領域がアクティブになります。
ケース 1: BoundedRegion_1 がアクティブで BoundedRegion_2 が非アクティブ
[モデル プロパティ] ウィンドウで、
Aの値を1に、Bを2に設定します。[実行] をクリックして、Variant Connector ブロックから接続先のコンポーネントへと、バリアント条件が伝播することを確認します。
伝播されたバリアント条件とブロックのアクティブ化状態を解析するには、[デバッグ] タブで、[情報のオーバーレイ] 、 [バリアント凡例] を選択します。バリアント条件の凡例の詳細については、Visualize Propagated Variant Conditions in Variant Conditions Legendを参照してください。
A == 1がtrueとして評価。BoundedRegion_1 内のコンポーネントがアクティブになります。B == 1がfalseとして評価。BoundedRegion_2 内のコンポーネントが非アクティブになります。

このシナリオでの電流の流れを表示するには、
Currentという名前の Scope ブロックをダブルクリックします。あるいは、モデル上で、A == 1がtrueでB == 1がfalseという条件に対応する [Variant Bounded Region in Electrical Circuit] テーブルの [Plot] リンクをクリックします。

ケース 2: BoundedRegion_1 が非アクティブで BoundedRegion_2 がアクティブ
[モデル プロパティ] ウィンドウで、
Aの値を2に、Bの値を1に設定してから、モデルをシミュレートします。バリアント条件とブロックのアクティブ化状態を解析します。
A == 1がfalseとして評価。BoundedRegion_1 内のコンポーネントが非アクティブになります。B == 1がtrueとして評価。BoundedRegion_2 内のコンポーネントがアクティブになります。
[Current] で電流の流れを表示するか、
A == 1がfalseでB == 1がtrueという条件に対応する [Variant Bounded Region in Electrical Circuit] テーブルの [Plot] リンクをクリックします。
同様に、A と B の値を 0 に設定して、シミュレーション中に両方の領域が非アクティブになる様子を解析することもできます。