このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
単純なバリアント モデルの作成
1. バリアント ブロックを含んだ次のモデルを開きます。たとえば、Variant Subsystem ブロック (Controller) を含むVariant Subsystem を使用した個別の階層でのバリエーションの実装を参照してください。
open_system('slexVariantSubsystems')
2. バリアントの選択がアクティブになる条件を決定するバリアント制御変数を定義します。
a. バリアント ブロックを右クリックし、[ブロック パラメーター] をクリックします。バリアント ブロックの [ブロック パラメーター] ダイアログ ボックスが開きます。
b. バリアント条件の評価に基づいてアクティブなバリアントを選択するには、[expression]
モードを使用するか、[label]
モードを選択します。[バリアント制御モード] で [label]
を選択すると、[ラベル モードのアクティブな選択肢] オプションが有効になります。[ラベル] モードでは、グローバル ワークスペースでバリアント制御を作成する必要はありません。[ラベル モードのアクティブな選択肢] オプションからアクティブなバリアントの選択肢を選択できます。
c. [ブロック パラメーター] ダイアログ ボックスで使用可能なオプションを使用し、バリアント制御とそれに対応するバリアント条件を追加します。
[expression]
モードのサンプル スクリーンショットを以下に示します。
メモ: バリアント制御とバリアント条件の指定に使用する変数は、グローバル ワークスペース、モデル ワークスペース、マスク ワークスペース、またはモデルのデータ ディクショナリで定義しなければなりません。
3. アクティブなバリアントの選択がない場合に使用する既定のバリアント条件を指定します。[バリアント制御] リストを使用して既定を指定します。
4. バリアントの選択をアクティブにするには、MATLAB® コマンド ウィンドウにバリアントの選択を入力します。たとえば、「VSS_MODE = 2
」と入力します。
5. モデルをシミュレートするには、ツールストリップで、[実行] をクリックします。指定したアクティブな選択に対するモデルのシミュレーションが実行されます。
sim('slexVariantSubsystems');
6. アクティブな選択を変更し、必要に応じてもう一度モデルのシミュレーションを実行します。
7. プリプロセッサ条件でバリアント モデルのコードを生成します。
メモ: コードを生成するには Embedded Coder® のライセンスが必要です。
a. [ブロック パラメーター] ダイアログ ボックスで、[バリアントのアクティベーションのタイミング] リストから [code compile]
を選択します。
b. Subsystem の [ブロック パラメーター] ダイアログ ボックスを開きます。[Atomic サブシステムとして扱う] パラメーターを選択します。
c. [コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] セクションで、[システム ターゲット ファイル] を ert.tlc
として指定します。
d. モデル エクスプローラーで、バリアントの選択を指定するのに使われる変数を MATLAB 変数または Simulink.Parameter
として定義します。Simulink.Parameter
のデータ型は Integer
、Boolean
または Enumerated
の型にすることができ、ストレージ クラスは importedDefine(Custom)
、Define(Custom)
または CompilerFlag
のいずれかにすることができます。
8. グローバル ワークスペースに定義したバリアントの制御変数を MAT ファイルにエクスポートします。たとえば、MATLAB コマンド ウィンドウに次のように入力します。
a. save <MAT-File Name> <Variable Name>
b. PostLoadCallback > load <MAT-File Name>
メモ: Variant Subsystem ブロックを含むアクティブなモデルを更新する、または最新の表示にするには、Simulink の [モデル化] タブで、[モデルの更新] (Ctrl + D) をクリックします。