Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink.Variant クラス

パッケージ: Simulink

バリアント選択を制御する条件を指定

説明

バリアント制御と呼ばれる条件式を表す Simulink.Variant クラスのオブジェクト。true に評価されたときに特定のバリアント選択を有効にする論理式を、このオブジェクトによって指定できます。

バリアント制御は、MATLAB® 変数または Simulink.Parameter オブジェクトを使用して指定される 1 つ以上のバリアント制御変数で構成されます。

Variant Subsystem ブロックまたは Model Variant ブロックで表現されるバリアント選択ごとにバリアント制御を指定します。特定の Variant Subsystem ブロックまたは Model Variant ブロックについて、同時に 1 つのバリアント制御のみが true に評価されます。バリアント制御が true に評価された場合、Simulink® はそのバリアント制御に対応するバリアント選択を有効にします。

構築

variantControl = Simulink.Variant(conditionExpression) によってバリアント制御を作成します。

プロパティ

すべて展開する

バリアント条件式。以下のオペランドと演算子を 1 つ以上含む文字ベクトルとして指定します。

オペランド

  • 整数データ型または列挙データ型とスカラー リテラル値をもつ MATLAB 変数または Simulink.Parameter オブジェクトに解決される変数名

  • Simulink.Variant オブジェクトに解決される変数名

  • 整数または列挙値を表すスカラーのリテラル値

演算子

  • グループ化に使用される小かっこ

  • 算術演算子、関係演算子、論理演算子、またはビット単位演算子

バリアント条件式はブール値に評価されます。このプロパティは読み取りアクセスおよび書き込みアクセスが可能です。

例: '(Fuel==2 || Emission==1) && Ratio==2'

MATLAB 変数を使用したバリアント制御の作成

モデルのシミュレーションは行うが、コード生成は行わない場合は、MATLAB 変数を使用します。

スカラー リテラル値をもつ MATLAB 変数を作成します。

Fuel = 3;
Emission = 1;
Ratio = 3;

変数を使用して条件式を構築します。

Variant1 = Simulink.Variant('Fuel==1 && Emission==2');
Variant2 = Simulink.Variant('(Fuel==2 || Emission==1) && Ratio==2');
Variant3 = Simulink.Variant('Fuel==3 || Ratio==4');

Simulink.Parameter オブジェクトを使用したバリアント制御の作成

コード生成用のプリプロセッサ条件を生成する場合は、Simulink.Parameter オブジェクトを使用します。

スカラー リテラル値をもつバリアント Simulink.Parameter オブジェクトを作成します。

Fuel = Simulink.Parameter(3);
Emission = Simulink.Parameter(1);
Ratio = Simulink.Parameter(3);

値が外部ヘッダー ファイルで指定されるように、これらのオブジェクトのカスタム ストレージ クラスを ImportedDefine に指定します。

カスタム ストレージ クラスのその他の有効な値は DefineCompilerFlag です。

Fuel.CoderInfo.StorageClass = 'Custom';
Fuel.CoderInfo.CustomStorageClass = 'ImportedDefine';

Emission.CoderInfo.StorageClass = 'Custom';
Emission.CoderInfo.CustomStorageClass = 'ImportedDefine';

Ratio.CoderInfo.StorageClass = 'Custom';
Ratio.CoderInfo.CustomStorageClass = 'ImportedDefine';

変数を使用して条件式を構築し、バリアント制御を作成します。

Variant1 = Simulink.Variant('Fuel==1 && Emission==2');
Variant2 = Simulink.Variant('(Fuel==2 || Emission==1) && Ratio==2');
Variant3 = Simulink.Variant('Fuel==3 || Ratio==4');