このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
単純なバリアント モデルの作成
この例では、バリアント ブロックをもつ単純なモデルの作成方法を説明します。
バリアント ブロックは、システムの代替設計を単一のモデルで行う方法を提供します。設計の選択肢は、それぞれバリアントの選択として単一のレイヤーまたは個別の階層でモデルに組み込まれます。各バリアントの選択は、バリアント制御に関連付けられます。シミュレーション中に、バリアント選択肢はバリアント制御の指定に応じてアクティブまたは非アクティブになります。
バリアント ブロックを使用して、複数のシミュレーション、コード生成、ワークフローのテストのために、ブロック間で切り替えます。
モデルの説明
Variant Subsystem ブロックを含む slexVariantSubsystems
モデルを開きます。
open_system('slexVariantSubsystems')
Variant Subsystem でのバリアント制御の定義
このセクションでは、バリアント選択肢がアクティブになる条件を決定するバリアント制御変数を定義する方法について説明します。
1. バリアント ブロックを右クリックし、[ブロック パラメーター] をクリックします。
2. バリアント条件の評価に基づいてアクティブなバリアントを選択するには、[式] モードを使用するか、[ラベル] モードを選択します。[バリアント制御モード] で [ラベル] を選択すると、[ラベル モードのアクティブな選択肢] オプションが有効になります。[ラベル] モードでは、モデルで使用されているベース ワークスペースやデータ ディクショナリでバリアント制御を作成する必要はありません。[ラベル モードのアクティブな選択肢] オプションからアクティブなバリアントの選択肢を選択できます。
3. [ブロック パラメーター] ダイアログ ボックスで使用可能なオプションを使用し、バリアント制御とそれに対応するバリアント条件を追加します。
[式] モードのサンプル スクリーンショットを以下に示します。
メモ: バリアント制御とバリアント条件の指定に使用する変数は、ベース ワークスペース、モデル ワークスペース、マスク ワークスペース、またはモデルのデータ ディクショナリで定義しなければなりません。詳細については、Storage Locations for Variant Control Variables (Operands) in Variant Blocksを参照してください。
4.アクティブなバリアントの選択がない場合に使用する既定のバリアント条件を指定します。[バリアント制御] リストを使用して既定を指定します。
5. バリアントの選択をアクティブにするには、MATLAB® コマンド ウィンドウにバリアントの選択を入力します。たとえば、「V = 2
」と入力します。
6.モデルをシミュレートするには、ツールストリップで、[実行] をクリックします。指定したアクティブな選択に対するモデルのシミュレーションが実行されます。
sim('slexVariantSubsystems');
7. アクティブな選択を変更し、必要に応じてもう一度モデルのシミュレーションを実行します。
Variant Subsystem のコード生成
このセクションでは、プリプロセッサ条件をもつバリアント モデルのコードを生成する方法について説明します。詳細については、Compile Code Conditionally for Variations of Component Represented Using Variant Block (Simulink Coder)を参照してください。
メモ: コードを生成するには Embedded Coder® または Simulink® Coder™ のライセンスが必要です。
1. [ブロック パラメーター] ダイアログ ボックスで、[バリアントのアクティベーションのタイミング] リストから [コードのコンパイル] を選択します。
2. Subsystem の [ブロック パラメーター] ダイアログ ボックスを開きます。[Atomic サブシステムとして扱う] パラメーターを選択します。
3. [コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] セクションで、[システム ターゲット ファイル] を ert.tlc
として指定します。
4. モデル エクスプローラーで、バリアントの選択を指定するのに使われる変数を MATLAB 変数または Simulink.Parameter
として定義します。Simulink.Parameter
のデータ型は Integer
、Boolean
または Enumerated
の型にすることができ、ストレージ クラスは importedDefine(Custom)
、Define(Custom)
または CompilerFlag
のいずれかにすることができます。
コード生成の例については、Generate Code for Variant Subsystem Blocks (Simulink Coder)を参照してください。
MAT ファイルへの制御変数のエクスポート
ベース ワークスペースに定義したバリアントの制御変数を MAT ファイルにエクスポートできます。たとえば、MATLAB コマンド ウィンドウに次のように入力します。
save <MAT-File Name> <Variable Name>
PostLoadCallback > load <MAT-File Name>
メモ: Variant Subsystem ブロックを含むアクティブなモデルを更新する、または最新の表示にするには、Simulink の [モデル化] タブで、[モデルの更新] (Ctrl + D) をクリックします。