バリアント パラメーターを使用した値が異なるブロック パラメーターの再利用
モデルの構造は同じままでも、各要件のパラメーターの値が異なる一連の要件が存在する場合があります。このシナリオでは、固定構造をもつ 1 つのモデルと、各値が異なる要件に対応する決まった数の値をもつパラメーターを作成します。複数の値をもつパラメーターを "バリアント パラメーター" と呼びます。バリアント パラメーターは、MATLAB® ベース ワークスベースまたはデータ ディクショナリで定義できます。
バリアント パラメーターのそれぞれの値は、1 つのバリアント条件式に関連付けなければなりません。複数のバリアント パラメーターを 1 つのバリアント条件に関連付けることができますが、2 つの値が同じパラメーターに属することはできません。条件式が true
と評価される場合、その条件に関連付けられているすべての値がアクティブになり、対応するパラメーターに代入されます。バリアント制御変数の値を変更する場合、異なる値のセットがパラメーターに代入されます。このように、バリアント パラメーターを使用すると、異なるパラメーターの値のセットを 1 つの条件式に論理的にバインドすることができます。これらの値は、true
に評価されるバリアント条件に基づいてパラメーターに代入されます。
Simulink® は、ブロック線図の更新時、コードのコンパイル時、またはモデルの起動時にバリアント パラメーターのアクティブな値を選択します。詳細については、Activate Variant During Different Stages of Simulation and Code Generation Workflowを参照してください。
このモデルについて考えます。Gain ブロックの [ゲイン] パラメーターは、値が K に設定されたバリアント パラメーターです。変数 K の値は 3.5
と 8.5
の 2 つです。Simulink は、バリアント制御変数 V の値に基づいて K のアクティブな値を選択します。V==1
が true
に評価される場合、K の値は 3.5
に設定されます。V==2
が true
に評価される場合、K の値は 8.5
に設定されます。
バリアント パラメーターを作成するタイミング
バリアント パラメーターは、ブロック パラメーターの値が異なる多くのシステム用に 1 つのモデルを設計する方法を提供します。シミュレーションするシステムに基づいてさまざまな値のセットをグループ化できます。それぞれの値のセットは、バリアント条件式に関連付けられます。シミュレーション中に、バリアント条件が true
と評価される場合、その条件に関連付けられているすべての値がアクティブになります。アクティブな値のセットを変更するには、バリアント制御変数の値を変更し、シミュレーションを再度実行します。
複数のコンフィギュレーションのある自動車を表すモデルのこのモデルについて考えてみます。これらのコンフィギュレーションには多くの類似点がある一方、燃料消費、エンジンのサイズ、エンジンの気筒数などの値が異なる可能性があります。考えられるすべての値を共に表す複数のブロックを設計するのではなく、バリアント パラメーターを使用して変動する値をモデル化できます。
このモデルでは、燃料消費、エンジン サイズ、気筒数にバリアント パラメーター fc
、es
、nc
があります。バリアント パラメーターの値は、バリアント制御変数 V
の値に基づきます。たとえば、V==1
が true
に評価される場合、fc
の値は 30
、es
は 1000
、および nc
は 4
に設定されます。
バリアント パラメーターを使用する利点
モデルベース デザインでバリアント パラメーターを使用する場合、いくつかの利点が得られます。
バリアント パラメーターは多くのシステム用に 1 つのモデルを設計する方法を提供します。
バリアント パラメーターはブロックの再利用を容易にします。このアプローチは、複雑さを低減してワークフローの速度を改善します。
バリアント パラメーターを使用して、複数のシミュレーション、コード生成、ワークフローのテストのためのさまざまなブロック パラメーター間を切り替えることができます。
生成されたコードにはパラメーターのバリアント値ごとにプリプロセッサ条件があるため、バリアント パラメーターのさまざまな値についてコードを再生成する必要はありません。
バリアント パラメーター使用の制限
モデルベース デザインでバリアント パラメーターを使用するには制限があります。
バリアント パラメーターのアクティブな値を決定するバリアント制御変数の値は、数値、列挙値、または
Simulink.Parameter
オブジェクトでなければなりません。true
に評価されるバリアント条件に基づいて変化するのはバリアント パラメーターの値のみです。ストレージ クラス、データ型などのその他のプロパティは、バリアント条件に関係なく、変化しません。バリアント パラメーターは、ベース ワークスベースまたはデータ ディクショナリでのみ定義できます。
参考
単純なバリアント パラメーター モデルの作成 | Options to Represent Variant Parameters in Generated Code (Embedded Coder)