このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Multiport Switch
制御信号に基づく出力信号の選択
ライブラリ:
Simulink /
Signal Routing
HDL Coder /
Signal Routing
説明
Multiport Switch ブロックは、出力に渡されるブロックへの入力を決定します。ブロックは、最初の入力の値に基づいてこの決定を行います。最初の入力は制御入力で、残りの入力はデータ入力です。制御入力の値は、どのデータ入力が出力に渡されるかを決定します。
次の表は、ブロックでの制御入力の解釈と、出力に渡されるデータ入力の決定方法をまとめたものです。
制御入力 | 切り捨て | データ端子の順序の設定 | シミュレーション時のブロックの動作 | |
---|---|---|---|---|
データ入力を選択するインデックス | 範囲外条件 | |||
整数値 | なし | 0 ベースの連続 | 0 ベースのインデックス | 制御入力は、 |
1 ベースの連続 | 1 ベースのインデックス | 制御入力は、 | ||
インデックスの指定 | 指定するインデックス | 制御入力は、指定されたデータ端子インデックスに対応しない。 | ||
整数値ではありません | ブロックにより、ゼロ方向に丸めることで値が整数になるように切り捨てられます。 | 0 ベースの連続 | 0 ベースのインデックス | 打ち切られた制御入力は、 |
1 ベースの連続 | 1 ベースのインデックス | 打ち切られた制御入力は、 | ||
インデックスの指定 | 指定するインデックス | 打ち切られた制御入力は、指定されたデータ端子インデックスに対応しない。 |
ブロックで範囲外の条件を処理する方法については、ブロックでの範囲外の制御入力の処理方法を参照してください。
Index Vector ブロックとして構成された Multiport Switch
Index Vector は、0 ベースの制御入力でデータ入力を 1 つ指定した場合の Multiport Switch ブロックの特殊な構成です。ブロックの出力は、インデックスが制御入力と一致する入力ベクトルの要素です。たとえば入力ベクトルが [18 15 17 10]
で制御入力が 3
の場合、インデックスが 3 (0 ベース) の要素は 10 であり、その値が出力されます。
Multiport Switch ブロックを Index Vector ブロックとして動作させるよう構成するには、[データ端子数] を [1]
に設定し [データ端子の順序] を [0 ベースの連続]
に設定します。
ブロックでの範囲外の制御入力の処理方法
intmax(‘int32’)
i より小さい整数値をもつ入力では、この入力の値がデータ端子インデックスと一致しない場合、入力は範囲外になります。整数値ではない制御入力では、"打ち切られた" 値がデータ端子インデックスと一致しない場合、入力は範囲外になります。いずれの場合も、ブロックの動作は [default ケースのデータ端子] および [default ケースの診断] の設定によって決定します。
メモ
制御入力が intmax(‘int32’)
i より大きい場合、入力値は整数に丸められます。
次の動作はモデルのシミュレーションにのみ適用されます。
default ケースのデータ端子 | default ケースの診断 | ||
---|---|---|---|
なし | 警告 | エラー | |
| 最後のデータ端子を使用し、警告またはエラーはレポートしません。 | 最後のデータ端子を使用し、警告をレポートします。 | エラーをレポートし、シミュレーションを停止します。 |
|
|
| エラーをレポートし、シミュレーションを停止します。 |
次の動作はモデルのコード生成に適用されます。
default ケースのデータ端子 | default ケースの診断 | ||
---|---|---|---|
なし | 警告 | エラー | |
| 最後のデータ端子を使用します。 | 最後のデータ端子を使用します。 | 最後のデータ端子を使用します。 |
|
|
|
|
異なる次元をもつデータ入力の使用
2 つの信号の次元数または次元の長さが異なる場合、信号を Multiport Switch ブロックへのデータ入力として使用できます。ブロック ダイアログ ボックスで、パラメーター [異なるデータの入力サイズを許可する] を選択します。この場合、ブロックの出力は可変サイズの信号です。このパラメーターを選択しないと、ブロックはエラーを生成します。
このパラメーターの詳細については、異なるデータ入力サイズを許可する (可変サイズの出力信号となる)を参照してください。可変サイズ信号の詳細については、可変サイズの信号の基礎を参照してください。
ブロックの動作を決定する規則
[データ端子数] でデータ入力の数を指定してください。
[データ端子数] を 1 に設定すると、ブロックはマルチポート スイッチではなく "インデックス セレクター" または "インデックス ベクトル" として動作します。詳細については、Index Vector ブロックとして構成された Multiport Switchを参照してください。
[データ端子数] を 1 より大きい整数に設定すると、ブロックはマルチポート スイッチとして動作します。ブロック出力は、制御入力の値に対応するデータ入力になります。1 つ以上のデータ入力がベクトルの場合、ブロック出力はベクトルになります。この場合、ブロックは、スカラー入力をベクトルに拡張します。
すべてのデータ入力がスカラーの場合、出力はスカラーになります。
列挙型制御端子のパラメーターを設定するためのガイドライン
Multiport Switch ブロックの制御端子が列挙型の場合、以下のガイドラインに従います。
シナリオ | 何をすべきか | 根拠 |
---|---|---|
列挙型に無効、範囲外、または初期化されていない値を表す値が含まれている場合。 |
| このブロックの構成によって、列挙型で明示的に表される無効な値が処理されます。 |
列挙型に有効な列挙値しか含まれない場合。ただし、データ入力端子によって無効な列挙型の値が得られます。 |
| このブロックの構成によって、列挙型で明示的に表されない無効な値が処理されます。 |
列挙型に有効な列挙値しか含まれない場合。データ入力端子によって無効な列挙型の値は得られません。 |
| このブロックの構成によって、不要な診断アクションが回避されます。 |
ブロックに各列挙型の値のデータ入力端子が含まれていない場合。 |
| このブロックの構成によって、データ入力端子をもたない列挙値と無効な値が処理されます。 |
例
制限
Multiport Switch ブロックへのデータ入力が共にバスの場合、両方のバスの要素名は同じでなければなりません。同じ要素名を使用することで、いずれの入力バスが選択されたかにかかわらず、出力バスが同じ要素名をもつようにすることができます。ユーザー モデルがこの要件を満たすようにするには、バス オブジェクトを使用してバスを定義し、[要素名の不一致] 診断に
エラー
を設定します。詳細については、モデル コンフィギュレーション パラメーター: 接続性の診断を参照してください。バス配列の場合、[データ端子数] は
2
以上の値に設定しなければなりません。
端子
入力
出力
パラメーター
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
バージョン履歴
R2006a より前に導入