Main Content

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

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

各要件で要求される機能は同じでも、各要件のパラメーターの値が異なる一連の要件がある場合があります。このシナリオでは、必要な機能を提供する 1 つのモデルと、各値が異なる要件に対応する決まった数の値をもつパラメーターを作成します。複数の値をもつパラメーターを "バリアント パラメーター" と呼びます。バリアント パラメーターは、MATLAB® ベース ワークスベースまたはデータ ディクショナリで定義できます。

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

Simulink® は、ブロック線図の更新時またはコードのコンパイル時にバリアント パラメーターのアクティブな値を選択します。

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

Variant parameter in a Gain block

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

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

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

Variant parameter in automobile domain

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

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

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

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

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

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

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

バリアント パラメーター使用の制限

モデルベース デザインでバリアント パラメーターを使用するには制限があります。

  • バリアント パラメーターのアクティブな値を決定するバリアント制御変数の値は、数値または列挙値でなければなりません。

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

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

参考

| (Embedded Coder)

関連するトピック