このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
プログラムによるバリアント制御の作成
バリアント制御の作成およびエクスポート
制御変数を作成し、バリアント条件を定義し、制御変数をエクスポートします。
ベース ワークスペースまたはデータ ディクショナリに制御変数を作成します。
FUEL=2; EMIS=1;
制御変数を使用し、
Simulink.Variant
オブジェクトを使用して制御条件を定義します。LinearController=Simulink.Variant('FUEL==2 && EMIS==1');
メモ
各シミュレーションの前に、バリアント条件を表す
Simulink.Variant
オブジェクトを定義します。変数をベース ワークスペースに保存した場合、ワークスペースでエクスポートする制御変数を選択します。右クリックし [名前を付けて保存] をクリックして、MAT ファイル名を指定します。
バリアント条件の再利用
一般的なバリアント条件をモデル間で再利用するには、Simulink.Variant
オブジェクトを使用してバリアント制御条件を指定します。
Simulink.Variant
オブジェクトを再利用することにより、条件式を定義する制御変数の値を変更することでバリアント条件を反映して動的にモデルの階層構造を変更します。
Simulink.VariantExpression Objects for Variant Condition Reuse of Variant Blocksの例は、Simulink.Variant
オブジェクトを使用したバリアント制御条件の定義方法を示しています。
メモ
AUTOSAR ワークフローのバリアント制御条件を定義するには、Simulink.Variant
オブジェクトを使用しなければなりません。
バリアント制御としての列挙型
列挙型を使用し、バリアント制御値として使う整数に意味のある名前を与えます。
MATLAB® エディターで、列挙型の値を意味のある名前にマップするクラスを定義します。
classdef sldemo_mrv_CONTROLLER_TYPE < Simulink.IntEnumType enumeration NONLINEAR (1) SECOND_ORDER (2) end end
classdef sldemo_mrv_BUILD_TYPE < Simulink.IntEnumType enumeration PROTOTYPE (1) PRODUCTION (2) end end
これらのクラスに対して
Simulink.Variant
オブジェクトをベース ワークスペース内に定義します。VE_NONLINEAR_CONTROLLER = Simulink.Variant... ('E_CTRL==sldemo_mrv_CONTROLLER_TYPE.NONLINEAR') VE_SECOND_ORDER_CONTROLLER =Simulink.Variant... ('E_CTRL==sldemo_mrv_CONTROLLER_TYPE.SECOND_ORDER') VE_PROTOTYPE =Simulink.Variant... ('E_CURRENT_BUILD==sldemo_mrv_BUILD_TYPE.PROTOTYPE') VE_PRODUCTION =Simulink.Variant... ('E_CURRENT_BUILD==sldemo_mrv_BUILD_TYPE.PRODUCTION')
列挙型を使用すると、整数ではなく値の名前が使用されるので、生成されたコードがわかりやすくなります。