Main Content

バリアント パラメーターを使用した値が異なるブロック パラメーターの再利用

モデルの構造は同じままでも、各要件のパラメーターの値が異なる一連の要件が存在する場合があります。このシナリオでは、固定構造をもつ 1 つのモデルと、各値が異なる要件に対応する決まった数の値をもつパラメーターを作成します。複数の値をもつパラメーターを "バリアント パラメーター" と呼びます。バリアント パラメーター オブジェクトの作成には Simulink.VariantVariable クラスを使用します。オブジェクトは MATLAB® ベース ワークスベースまたはデータ ディクショナリで定義できます。

バリアント パラメーターのそれぞれの値は、1 つのバリアント条件式に関連付けなければなりません。複数のバリアント パラメーターを 1 つのバリアント条件に関連付けることができますが、2 つの値が同じパラメーターに属することはできません。条件式が true と評価される場合、その条件に関連付けられているすべての値がアクティブになり、対応するパラメーターに代入されます。バリアント制御変数の値を変更する場合、異なる値のセットがパラメーターに代入されます。このように、バリアント パラメーターを使用すると、異なるパラメーターの値のセットを 1 つの条件式に論理的にバインドすることができます。これらの値は、true に評価されるバリアント条件に基づいてパラメーターに代入されます。

Simulink® は、ブロック線図の更新時、コードのコンパイル時、またはモデルの起動時にバリアント パラメーターのアクティブな値を選択します。詳細については、Activate Variant During Different Stages of Simulation and Code Generation Workflowを参照してください。

このモデルについて考えます。Gain ブロックの [ゲイン] パラメーターは、値が K に設定されたバリアント パラメーターです。変数 K の値は 3.58.5 の 2 つです。Simulink は、バリアント制御変数 V の値に基づいて K のアクティブな値を選択します。V==1true に評価される場合、K の値は 3.5 に設定されます。V==2true に評価される場合、K の値は 8.5 に設定されます。

Variant parameter with multiple values in a Gain block. Each value is associated with a variant condition expression.

バリアント パラメーターを作成するタイミング

バリアント パラメーターは、ブロック パラメーターの値が異なる多くのシステム用に 1 つのモデルを設計する方法を提供します。シミュレーションするシステムに基づいてさまざまな値のセットをグループ化できます。それぞれの値のセットは、バリアント条件式に関連付けられます。シミュレーション中に、バリアント条件が true と評価される場合、その条件に関連付けられているすべての値がアクティブになります。アクティブな値のセットを変更するには、バリアント制御変数の値を変更し、シミュレーションを再度実行します。

複数のコンフィギュレーションのある自動車を表すモデルのこのモデルについて考えてみます。これらのコンフィギュレーションには多くの類似点がある一方、燃料消費、エンジンのサイズ、エンジンの気筒数などの値が異なる可能性があります。考えられるすべての値を共に表す複数のブロックを設計するのではなく、バリアント パラメーターを使用して変動する値をモデル化できます。

An example of how you can use variant parameters in a model to represent an automobile system with several configurations

このモデルでは、燃料消費、エンジン サイズ、気筒数にバリアント パラメーター fcesnc があります。バリアント パラメーターの値は、バリアント制御変数 V の値に基づきます。たとえば、V==1true に評価される場合、fc の値は 30es1000、および nc4 に設定されます。

バリアント パラメーターを使用する利点

モデルベース デザインでバリアント パラメーターを使用する場合、いくつかの利点が得られます。

  • バリアント パラメーターは多くのシステム用に 1 つのモデルを設計する方法を提供します。

  • バリアント パラメーターはブロックの再利用を容易にします。このアプローチは、複雑さを低減してワークフローの速度を改善します。

  • バリアント パラメーターを使用して、複数のシミュレーション、コード生成、ワークフローのテストのためのさまざまなブロック パラメーター間を切り替えることができます。

  • 生成されたコードにはパラメーターのバリアント値ごとにプリプロセッサ条件があるため、バリアント パラメーターのさまざまな値についてコードを再生成する必要はありません。

  • バリアント マネージャーを使用して、モデル内のバリアント パラメーターを管理および有効化できます。

制限

  • バリアント パラメーターのアクティブな値を決定するバリアント制御変数 (Simulink.VariantControl) の Value プロパティは、整数、列挙、または整数型か列挙型の値をもつ Simulink.Parameter オブジェクトでなければなりません。

  • true に評価されるバリアント条件に基づいて変化するのはバリアント パラメーターの値のみです。ストレージ クラス、データ型などのその他のプロパティは、バリアント条件に関係なく、変化しません。

  • バリアント パラメーターは、ベース ワークスベースまたはデータ ディクショナリでのみ定義できます。

  • バリアント パラメーター バンクの一部であるバリアント パラメーターでは、AUTOSAR コード生成はサポートされません。

参考

| |

関連するトピック