Main Content

Variant Connector ブロックを使用した電気回路でのバリアントのモデル化

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

モデルの探求

電気回路内のバリアント有界領域のモデル例を開くには、MATLAB® コマンド プロンプトで「openExample('simscape/VariantBoundedRegionElectricalCircuitExample')」と入力します。

The variant bounded region in electrical circuit example model that represents an electrical circuit

このモデルには、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 in Variant Conditions Legendを参照してください。

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

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

    The simulation result of the variant bounded region in electrical circuit example model when BoundedRegion1 is active and BoundedRegion2 is inactive

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

Flow of current in the electrical circuit plotted against time when BoundedRegion1 is active and BoundedRegion2 is inactive

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

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

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

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

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

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

    Flow of current in the electrical circuit plotted against time when BoundedRegion1 is inactive and BoundedRegion2 is active

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

関連するトピック