メインコンテンツ

電気回路内のバリアント有界領域

この例では、プライマリ タイプと非プライマリ タイプのVariant Connectorブロックを使用して、異なったバリアント構成に対する電気回路での電流の流れのシミュレーション方法を説明します。Variant Connector ブロックを使うと、コンポーネントを物理的に取り外したりシミュレーションから除外することなしに、シミュレーション中にネットワーク内で一連のコンポーネントをアクティブまたは非アクティブにすることができます。

モデルの探求

電気回路内のバリアント有界領域のモデル例を開きます。

このモデルには、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 == 1true として評価された場合、BoundedRegion_1 のコンポーネントである Resistor3 と Resistor4 がアクティブになります。A == 1false として評価された場合、BoundedRegion_1 のコンポーネントは非アクティブです。

異なったバリアント構成に対する電流の流れのシミュレーション

バリアント条件変数 A および B は、"PostLoadFcn" コールバックで定義されます。これらの変数の値を表示または変更するには、[モデル化] タブで、[モデル設定][モデル プロパティ] を選択します。[コールバック] タブの [モデルのコールバック] ペインで、[PostLoadFcn] をクリックします。この例では、A = 1 および B = 2 となります。これらの変数に基づいて、関連付けられた有界領域がアクティブになります。

ケース 1: BoundedRegion_1 がアクティブで BoundedRegion_2 が非アクティブ

1. [モデル プロパティ] ウィンドウで、A の値を 1 に、B2 に設定します。

2. [実行] をクリックして、Variant Connector ブロックから接続先のコンポーネントへと、バリアント条件が伝播することを確認します。

3. 伝播されたバリアント条件とブロックのアクティブ化状態を解析するには、[デバッグ] タブで、[情報のオーバーレイ][バリアント凡例] を選択します。バリアント凡例の詳細については、Visualize Propagated Variant Conditions and Bounded Regions in Variant Legendを参照してください。

  • A == 1true として評価。BoundedRegion_1 内のコンポーネントがアクティブになります。

  • B == 1false として評価。BoundedRegion_2 内のコンポーネントが非アクティブになります。

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

ケース 2: BoundedRegion_1 が非アクティブで BoundedRegion_2 がアクティブ

1. [モデル プロパティ] ウィンドウで、A の値を 2 に、B1 に設定して、モデルのシミュレーションを行います。

2. バリアント条件とブロックのアクティブ化状態を解析します。

  • A == 1false として評価。BoundedRegion_1 内のコンポーネントが非アクティブになります。

  • B == 1true として評価。BoundedRegion_2 内のコンポーネントがアクティブになります。

3. [Current] で電流の流れを表示するか、A == 1falseB == 1true という条件に対応する [Variant Bounded Region in Electrical Circuit] テーブルの [Plot] リンクをクリックします。

同様に、AB の値を 0 に設定して、シミュレーション中に両方の領域が非アクティブになる様子を解析することもできます。

参考

トピック