ドキュメンテーション

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

プログラムによるバリアント制御の作成

バリアント制御の作成およびエクスポート

制御変数を作成し、バリアント条件を定義し、制御変数をエクスポートします。

  1. グローバル ワークスペースまたはデータ ディクショナリに制御変数を作成します。

    FUEL=2;
    EMIS=1;
  2. 制御変数を使用し、Simulink.Variant オブジェクトを使用して制御条件を定義します。

    LinearController=Simulink.Variant('FUEL==2 && EMIS==1');

    メモ

    各シミュレーションの前に、バリアント条件を表す Simulink.Variant オブジェクトを定義します。

  3. 変数をグローバル ワークスペースに保存した場合、エクスポートする制御変数を選択します。右クリックし [名前を付けて保存] をクリックして、MAT ファイル名を指定します。

バリアント条件の再利用

一般的なバリアント条件をモデル間で再利用するには、Simulink.Variant オブジェクトを使用してバリアント制御条件を指定します。

Simulink.Variant オブジェクトを再利用することにより、条件式を定義する制御変数の値を変更することでバリアント条件を反映して動的にモデルの階層構造を変更します。

モデル例 AutoSSVar は、Simulink.Variant オブジェクトを使用したバリアント制御条件の定義方法を示しています。

メモ

AUTOSAR ワークフローのバリアント制御条件を定義するには、Simulink.Variant オブジェクトを使用しなければなりません。

バリアント制御としての列挙型

列挙型を使用し、バリアント制御値として使う整数に意味のある名前を与えます。

  1. 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
    
  2. これらのクラスに対して 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')

    列挙型を使用すると、整数ではなく値の名前が使用されるので、生成されたコードがわかりやすくなります。

関連する例

詳細