Main Content

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

単純なバリアント パラメーター モデルの作成

この例では、バリアント パラメーターをもつ単純なモデルの作成方法を説明します。

バリアント パラメーターは、値が異なる多くのシステム用に 1 つのモデルを設計する方法を提供します。シミュレーションするシステムに基づいてさまざまな値のセットをグループ化できます。それぞれの値のセットは、バリアント条件式に関連付けられます。シミュレーション中に、バリアント条件が true と評価される場合、その条件に関連付けられているすべての値がアクティブになります。バリアント パラメーターを使用して、複数のシミュレーション、コード生成、ワークフローのテストのために、さまざまなブロック パラメーター値の間で切り替えます。

このモデルについて考えます。

open_system('slexVariantParameters')

Gain1 ブロックおよび Gain2 ブロックの [ゲイン] パラメーターをバリアント パラメーターとして指定するには、次のようにします。

1. モデルのベース ワークスペースでSimulink.VariantControlオブジェクト V を定義します。バリアント制御変数オブジェクトによって、Gain1 ブロックおよび Gain2 ブロックのバリアント パラメーター [ゲイン] のアクティブな値が決定されます。オブジェクトは値をバリアントのアクティベーションのタイミングにも関連付けます。アクティベーションのタイミングの詳細については、Activate Variant During Different Stages of Simulation and Code Generation Workflowを参照してください。

V = Simulink.VariantControl('Value', 1, 'ActivationTime', 'update diagram')

V = 

  VariantControl with properties:

             Value: 1
    ActivationTime: 'update diagram'

2. Simulink.VariantVariable オブジェクトを作成して、Gain ブロックの [ゲイン] パラメーターに複数の値を定義し、それぞれの値を 1 つのバリアント条件式に関連付けます。それぞれのオブジェクトについて、次元、データ型などのプロパティを指定できます。この例で、K1 および K2Simulink.Parameter 型のバリアント パラメーター オブジェクトです。K1 は Gain1 ブロックの [ゲイン] パラメーターに複数の値を指定し、K2 は Gain2 ブロックの [ゲイン] パラメーターに複数の値を指定します。シミュレーション中に、条件が true と評価される場合、その条件に関連付けられているすべての値がアクティブになります。次に、アクティブな値が対応する [ゲイン] パラメーターに代入されます。

Pspec = Simulink.Parameter(0);
Pspec.CoderInfo.StorageClass = 'ExportedGlobal';
K1 = Simulink.VariantVariable('Specification', 'Pspec', 'Choices', {'V==1', 3.5, 'V==2', 8.5});
K2 = Simulink.VariantVariable('Specification', 'Pspec', 'Choices', {'V==1', 4.5, 'V==2', 9.5});

Simulink.VariantVariable オブジェクトが問題なく作成されたら、Public Methodsで説明している方法を使用して、または VariantVariable ダイアログ ボックスから変更できます。

3. Gain ブロックのブロック パラメーター ダイアログ ボックスを開きます。Gain1 の [ゲイン] パラメーターを K1 に、Gain2 の [ゲイン] パラメーターを K2 に設定します。

4. モデルをシミュレーションするには、[シミュレーション] タブで [実行] をクリックします。シミュレーション中に、V == 1true と評価されるため、Gain1 ブロックの [ゲイン] パラメーターの値は 3.5 に設定され、Gain2 ブロックの [ゲイン] パラメーターの値は 8.5 に設定されます。

sim('slexVariantParameters');

5. [ゲイン] パラメーターの値を変更するには、V の値を 2 に設定し、シミュレーションを再度実行します。V の値は、次のいずれかの手順を実行することで変更できます。

  • ベース ワークスペースに作成されたバリアント制御変数をダブルクリックします。VariantControl ダイアログ ボックスで V の値を 2 に指定します。

  • MATLAB® エディターで次のコマンドを実行します。

V.Value = 2;

シミュレーション中に、V == 2true と評価されるため、Gain1 ブロックの [ゲイン] パラメーターの値は 4.5 に設定され、Gain2 ブロックの [ゲイン] パラメーターの値は 9.5 に設定されます。

sim('slexVariantParameters');