ドキュメンテーション

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

Variant Source

バリアントを使用した複数の入力間での経路設定

  • ライブラリ:
  • Simulink / Signal Routing

説明

Variant Source ブロックには、1 つ以上の入力端子と 1 つの出力端子があります。最大で 1 つのバリアントの選択がアクティブになるように、入力端子に接続されたブロックとしてバリアントの選択を定義できます。

各入力端子はバリアント制御に関連付けられます。true に評価されるバリアント制御は、アクティブになる入力端子を決定します。

ブロック ダイアログ ボックスの [ブロック線図の更新中にすべての選択肢を解析し、プリプロセッサの条件を生成する] オプションがオフのとき、シミュレーション中、Simulink® はアクティブな選択を Variant Source ブロックの出力端子に直接接続し、非アクティブな選択を無視します。

端子

入力

すべて展開する

最初のバリアント制御に関連付けられた入力端子です。true に評価されるバリアント制御は、アクティブになる入力端子を決定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus

N 番目のバリアント制御に関連付けられた入力端子です。true に評価されるバリアント制御は、アクティブになる入力端子を決定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus

出力

すべて展開する

アクティブなバリアントからの出力信号です。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus

パラメーター

すべて展開する

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

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

メモ

[ラベル モードのアクティブな選択肢] パラメーターをマスクにプロモートすると、[バリアント制御モード] は無効になります。

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

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

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

Variant Source ブロックの上流で 1 つのバリアントの選択に接続されている入力端子の数です。この値は読み取り専用です。

端子を追加するには をクリックし、既存の端子を削除するには をクリックします。

グローバル ワークスペースで利用可能なバリアント制御が表示されます。バリアント制御は、boolean の条件式または boolean の条件式を表す Simulink.Variant オブジェクトのいずれかです。お使いのモデルのコードを生成する場合、制御変数を Simulink.Parameter オブジェクトとして定義しなければなりません。

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

バリアントの名前を編集するには、[バリアント制御式] のセルをダブルクリックして、バリアント制御式を入力します。バリアント制御名を編集したら、[適用] をクリックします。変更を適用せずにバリアント制御を追加または削除する場合、バリアント制御名に対する前の編集内容は失われます。

true に評価された [バリアント制御] で、アクティブにならなければならない入力端子を決定します。

プログラムでの使用

ブロック パラメーター: VariantControls
型: 文字ベクトルの cell 配列
値: バリアントの選択に関連付けられたバリアント制御
既定の設定: 'Variant'

Simulink.Variant オブジェクトのバリアント制御に関する [条件] が表示されます。Simulink.Variant パラメーターのダイアログ ボックスまたはグローバル ワークスペース内のバリアント条件を作成または変更します。

詳細については、プログラムによるバリアント制御の作成およびSimulink.Variantを参照してください。

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

[ラベル モードのアクティブな選択肢] ドロップダウン リストには、グローバル ワークスペースまたはデータ ディクショナリで現在定義されているすべてのバリアント制御が表示されます。有効な MATLAB® 識別子を使用してバリアント制御を指定します。詳細については、Simulink.Variantを参照してください。

メモ

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

依存関係

このパラメーターを有効にするには、[ラベル] モードを選択します。

プログラムでの使用

ブロック パラメーター: LabelModeActivechoice
型: 文字ベクトル
値: バリアント制御式で指定
既定の設定: Choice_1

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

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

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

依存関係

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

プログラムでの使用

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

このオプションを選択すると、Simulink は Variant Source ブロック端子の各バリアント制御 (条件式) に注釈を付けます。

プログラムでの使用

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

このオプションを選択すると、Simulink はブロック線図またはシミュレーションの更新中にバリアントのすべての選択を解析します。この解析は、Simulink において、シミュレーションおよびコード生成中のすべてのバリアント ブランチの一貫性を維持するのに役立ちます。Simulink は、アクティブな領域と非アクティブな領域の出力を内部の VariantMerge ブロックに送ります。

このオプションを選択すると、ERT ベースのターゲットによってプリプロセッサの条件 (#if) がコード内で生成されます。

コード生成中にこのオプションが選択された場合、失敗を回避するために、Variant Source ブロックのすべての入力端子のデータ型およびセマンティクスは同じでなければなりません。

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

詳細については、Represent Variant Source and Sink Blocks in Generated Code (Embedded Coder)を参照してください。

依存関係

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

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

プログラムでの使用

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

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | integer | single | string

直接フィードスルー

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

R2016a で導入