Main Content

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

バリアント サブシステム、バリアント モデル

バリアントの選択として Subsystem ブロックまたは Model ブロックが含まれているテンプレート サブシステム

  • ライブラリ:
  • Simulink / Ports & Subsystems

    HDL Coder / Ports & Subsystems

説明

Variant Subsystem ブロックは、シミュレーション用にアクティブな選択を最大で 1 つもつことができます。Variant Subsystem ブロックは、Variant Subsystem の選択肢として使用するために 2 つの Subsystem ブロックを含めるように事前構成されたテンプレートです。

Variant Subsystem ブロックには、バリアント システムとして Subsystem ブロックと Model ブロックを混在させることができます。これには Inport ブロック、Outport ブロック、および Connection Port ブロックも含むことができます。Variant Subsystem ブロック内には、接続が描かれません。

Model ブロックを選択肢としてもつ Variant Subsystem ブロックは、Variant Model ブロックと呼ばれます。

各バリアント システムは、グローバル ワークスペースに作成されたバリアント制御に関連付けられています。バリアント制御によってアクティブなバリアント システムが決定されます。バリアント制御は条件式、条件式を指定する Simulink.Variant オブジェクト、または既定のバリアントにすることができます。true として評価されるバリアント制御が、アクティブなバリアントを決定します。

Variant Subsystem ブロックに含まれる Outport ブロックで [ソース非接続時に出力を指定] オプションを選択すると、その出力として非グラウンド値を指定できます。

メモ

Outport ブロック ダイアログ ボックスの [信号属性] セクションで正しいデータ型を指定しなければなりません。

端子

Simulink® のシミュレーションの実行中は、Variant Subsystem ブロックの非アクティブな端子は無効になります。

入力

すべて展開する

Variant Subsystem 内に含まれる Subsystem ブロックまたは Model ブロックはそれぞれ、1 つのバリアント システムを表します。バリアント システムの入力端子名が Variant Subsystem Container ブロックによって使用される入力端子名のサブセットである場合、Variant System ブロックは Variant Subsystem ブロックと異なる数の入力端子をもつことができます。

出力

すべて展開する

Variant Subsystem 内に含まれる Subsystem ブロックまたは Model ブロックはそれぞれ、1 つのバリアント システムを表します。バリアント システムの出力端子名が Variant Subsystem ブロックによって使用される出力端子名のサブセットである場合、Variant System ブロックは Variant Subsystem ブロックと異なる数の出力端子をもつことができます。

パラメーター

すべて展開する

バリアント条件の評価に基づいてアクティブなバリアントを選択するには、[式] モードを使用するか、[Label] モードを選択します。[バリアント制御モード][ラベル] を選択すると、[ラベル モードのアクティブな選択肢] オプションが有効になります。[Label] モードでは、グローバル ワークスペースでバリアント制御を作成する必要はありません。[ラベル モードのアクティブな選択肢] オプションからアクティブなバリアントの選択肢を選択できます。

[ラベル] モードを選択すると、バリアント バッジによって変更が示されます。

メモ

[ラベル モードのアクティブな選択肢] パラメーターをマスクにプロモートすると、[バリアント制御モード] は無効になります。入れ子にされたモデル内のマスクに [ラベル モードのアクティブな選択肢] パラメーターをプロモートする場合は、[ラベル モードのアクティブな選択肢] パラメーターをその直接の親である Variant Subsystem ブロック マスクに必ずプロモートしてください。

  • [ラベル モードのアクティブな選択肢] パラメーターをマスクにプロモートするときに、ブロックが [Expression] モードである場合、[マスク] ダイアログ ボックスからプロモートされた [ラベル モードのアクティブな選択肢] パラメーターを変更することで、[バリアント制御モード][Label] に変更できます。

  • [ラベル モードのアクティブな選択肢] パラメーターをマスクにプロモートするときに、ブロックが [Label] モードである場合、[バリアント制御モード][Expression] モードに変更することはできません。

パラメーターのマスクへのプロモートの詳細については、マスクへのパラメーターのプロモートを参照してください。

テーブルには、Variant Subsystem に含まれる各バリアント システムの行があります。バリアント システムが存在しない場合、テーブルは空になります。

[バリアントの選択] テーブルの左にあるボタンを使用して、テーブルの要素を変更できます。

目的...クリックするボタン
新しいサブシステムの選択を作成して追加:テーブルに新しいサブシステム バリアントの選択を配置し、Variant Subsystem ブロック線図に Subsystem ブロックを作成します。
新しいモデル バリアントの選択を作成して追加します: テーブルに新しいモデル バリアントの選択を配置し、Variant Subsystem ブロックに Model ブロックを作成します。
選択されている Variant オブジェクトを作成/編集: グローバル ワークスペースに Simulink.Variant オブジェクトを作成し、Simulink.Variant オブジェクトのパラメーター ダイアログ ボックスを開いてバリアントの [条件] を指定します。
選択されているバリアントの選択ブロックを開きます: [バリアントの選択] テーブルで選択された行のサブシステムのブロック線図を開きます。
Variant Subsystem の内容のダイアログ情報を更新:バリアント システムおよびグローバル ワークスペースのバリアント制御の値に応じて [バリアントの選択] テーブルを更新します。

この読み取り専用フィールドはバリアント システム名に基づいています。サブシステム バリアントの選択を追加するには、 をクリックします。モデル バリアントの選択を追加するには、 をクリックします。

バリアントの名前を加えるには、新しい行にある [バリアント制御] のセルをダブルクリックして、バリアント制御式を入力します。

非数値のバリアント制御値を入力するには、列挙型データを使用します。列挙型データの使用の詳細については、Simulink モデルでの列挙型データの使用を参照してください。

プログラムでの使用

構造体フィールド: Variant パラメーター構造体の読み取り専用 variant.Name フィールドによって表現されます
型: 文字ベクトル
値: バリアントの選択に関連付けられたバリアント制御
既定の設定: 'variant'

この読み取り専用フィールドは、グローバル ワークスペースの関連付けられたバリアント制御の条件に基づいています。Simulink.Variant パラメーターのダイアログ ボックスまたはグローバル ワークスペース内のバリアント条件を作成または変更します。

[バリアント制御モード][ラベル] を選択すると、[ラベル モードのアクティブな選択肢] オプションが有効になります。[ラベル モードのアクティブな選択肢] オプションからアクティブなバリアントの選択肢を選択できます。Variant Subsystem ブロックのバッジを右クリックして [ラベル モードのアクティブな選択肢] を選択することもできます。

[ラベル モードのアクティブな選択肢] オプションの場合、バリアント制御は boolean の条件式または Simulink.Variant オブジェクトでなくてもかまいません。% 記号で始まるバリアント制御は無視されます。

メモ

[ラベル モードのアクティブな選択肢] オプションは、[式] モードでは使用できません。

依存関係

このパラメーターを有効にするには、[バリアント制御モード] パラメーターの [ラベル] オプションを選択します。

プログラムでの使用

パラメーター: LabelModeActivechoice
型: 文字ベクトル
値: ラベル モードのアクティブな選択肢が指定されない場合、値は空です。ラベル モードのアクティブな選択肢が指定される場合、値はラベル モードのアクティブな選択肢の名前です。
既定の設定: ''

アクティブなバリアントの選択がない状態で (バリアント システムを含む) モデルをシミュレートするには、[ゼロ アクティブ バリアント制御を許可] オプションを選択します。このオプションを選択し、アクティブなバリアントの選択がない場合、Simulink は Variant Subsystem ブロックの入力ストリームおよび出力ストリームに接続されているすべてのブロックを無効にします。無効にされたブロックはブロック線図の更新やシミュレーションで無視されます。

このオプションを選択しない場合、アクティブなバリアントの選択がないと、Simulink でエラーが発生します。

依存関係

  • バリアントの (既定の) オプションは選択されていません。

  • [バリアント制御モード][式] オプションが選択されています。

プログラムでの使用

パラメーター: AllowZeroVariantControls
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

このパラメーターは、ERT ターゲット用のコードを生成する場合に、バリアント選択を C のプリプロセッサの条件ステートメント (#if) で囲むかどうかを決定します。

このオプションを選択すると、Simulink はブロック線図またはシミュレーションの更新中にバリアントのすべての選択を解析します。この解析によって、バリアントのすべての選択についてコード生成の準備状態の早期検証が行われます。

このオプションを選択すると、バリアント バッジが変化します。

依存関係

  • チェック ボックスは、ERT ターゲットを生成するときのみ使用できます。

  • [バリアント制御モード][式] オプションが選択されています。

プログラムでの使用

パラメーター: GeneratePreprocessorConditionals
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

このオプションを選択した場合、Simulink は Variant Subsystem ブロックの外部にバリアント条件を伝播し、シミュレーション中にアクティブなモデルのコンポーネントを判断します。

このオプションを選択すると、バリアント バッジによって変更が示されます。

プログラムでの使用

パラメーター: PropagateVariantConditions
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

ブロックの特性

データ型

Boolean[a] | bus[a] | double[a] | enumerated[a] | fixed point[a] | integer[a] | single[a] | string[a]

直接フィードスルー

いいえ

多次元信号

限定的[a]

可変サイズの信号

限定的[a]

ゼロクロッシング検出

いいえ

[a] 実際のデータ型または機能のサポートは、ブロックの実装に依存します。

拡張機能

R2010b で導入