ドキュメンテーション

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

Merge

複数の信号を単一の信号に結合

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

説明

Merge ブロックは、入力を単一の出力に結合します。どの時点の出力値も、駆動ブロックの最新の計算出力と等しくなります。[入力数] パラメーターを設定して、入力の数を指定します。

Merge ブロックは、異なるときに更新される入力信号を、インターリーブされた値が別の ID と時間を保持する統合信号にインターリーブする場合に使用します。同時に更新する信号を、配列または行列信号に統合するには、Concatenate ブロックを使用します。

Merge ブロック使用の際のガイドライン

Merge ブロックを使用するときは、以下のガイドラインに従ってください。

  • Merge ブロックを駆動するときは、常に条件付き実行サブシステムを使用してください。

  • 任意のタイム ステップで実行される駆動側の条件付き実行サブシステムは多くても 1 つとなるようにしてください。

  • すべての入力信号が同じサンプル時間をもつことを確認してください。

  • [モデル コンフィギュレーション パラメーター][診断][指定不足の初期化の検出] パラメーター用に [クラシック] の既定の設定を使用する場合は、Merge ブロックに入力する信号を分岐しないでください。

  • Merge ブロックを駆動するすべての条件付き実行サブシステムの Outport ブロックに対して、[ディセーブル時の出力] パラメーターを [保持] に設定してください。

  • Model ブロックの出力が MATLAB Function ブロックまたは Stateflow® チャートからのものである場合は、その出力端子を Merge ブロックの入力端子に接続しないでください。

Merge ブロックの各入力として、最上位の非アトミックで非バーチャルなソースは、反復サブシステムではなく、条件付き実行サブシステムでなければなりません。

次のブロック線図に示すのは、Merge ブロックの有効な使い方で、2 つの条件付き実行サブシステムから信号をマージします。

バス サポート

Merge ブロックはバス対応ブロックです。入力はバーチャルまたは非バーチャルなバス信号で次の制約があります。

  • 入力数は 1 よりも大きい

  • [初期出力] は、ゼロ、非ゼロのスカラー、または有限数値構造体でなければなりません。

  • [異なる端子幅を許可] は無効にしなければなりません。

  • すべての入力は、バスで、等価でなければなりません (すべての要素について同名で同じ属性をもつ同じ階層にある)。

Merge ブロックへの非バーチャル バス入力のすべての信号で同じサンプル時間を使用しなければなりません。Rate Transition ブロックを使って個々の信号のサンプル時間、またはバス内のすべての信号のサンプル時間を変更することができます。

S-Function 出力のマージ

Merge ブロックは、S-Function ブロックの出力を保存するためのメモリが再利用可能な場合に限り S-Function ブロックからの信号をマージできます。S-Function ブロックの再利用不可能な端子を Merge ブロックに接続するモデルを更新またはシミュレートしようとすると、Simulink® はエラー メッセージを表示します。ssSetOutputPortOptimOpts を参照してください。

制限

  • Merge ブロックに接続するすべての信号は、機能的には同じ信号です。このため、信号には制限があり、特定の信号は最大 1 つの信号オブジェクトに関連付けられます。詳細については、Simulink.Signal を参照してください。

  • Merge ブロックへの入力が単一のイニシエーターからである場合、実行時診断は実行されません。単一のイニシエーターの例としては、Merge ブロックに接続された Function-Call Subsystem を実行する Stateflow チャートなどがあります。

  • ディセーブルのとき、マージ対象の条件付き実行サブシステムの出力端子をリセットに設定しないでください。このアクションにより、複数のサブシステムがブロックを同時に更新する可能性があります。より詳しく述べると、ディセーブル状態のサブシステムはその出力をリセットすることで Merge ブロックを更新します。一方、Enabled Subsystem はその出力を計算することにより、ブロックを更新するからです。

    この動作を防ぐには、マージ対象の各条件付き実行サブシステムに対して Outport ブロックの [ディセーブル時の出力] パラメーターを [保持] に設定します。

    メモ

    簡易初期化モードを使用している場合、Outport ブロックの [ディセーブル時の出力] パラメーターは [保持] に設定します。

  • Merge ブロックは、要素が並べ替えられていたり、部分的に選択されていたりするような入力信号を受け入れません。また、条件付き実行サブシステムの外側で結合されたブロックには入力信号を接続しないでください。

バス配列を Merge ブロックの入力信号として使用できますが、次の制限があります。

  • [異なる端子幅を許可] — このパラメーターはクリアします。

  • 初期条件 — このパラメーターは次を使用して指定できます。

    • 0。この場合、バス配列内にある個々の各信号は初期値 0 を使用します。

    • バス配列内にある個々の信号に対して初期条件を指定する構造体の配列。

    • バス型で定義される各要素の初期条件を指定する単精度スカラー構造体。この手法を使用して配列の各バスに同じ初期条件を指定します。

端子

入力

すべて展開する

他の入力信号とマージされる 1 番目の入力信号

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

他の入力信号とマージされる n 番目の入力信号。

データ型: 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

パラメーター

すべて展開する

マージする入力信号の数を指定します。ブロックは各入力信号に対して端子を作成します。

プログラムでの使用

ブロック パラメーター: Inputs
型: 文字ベクトル
値: 整数
既定の設定: '2'

出力信号の初期値を指定します。初期出力値を指定しない場合、初期出力は初期化モードと駆動ブロックに依存します。

簡易初期化モードでは、[初期出力] の未指定 (空行列 []) の値に関して、出力データ型の既定の初期値が使用されます。既定の初期値の詳細は、信号値の初期化を参照してください。クラシック初期化モードでは、[初期出力] の未指定 (空行列 []) の値に関して、そのブロックの初期出力は最後に評価された駆動ブロックの初期出力と等しくなります。これらのソースの初期化の順序は変化する可能性があるため、初期化はモデルのシミュレーションとコード生成で一致しない可能性があります。

プログラムでの使用

ブロック パラメーター: InitialOutput
型: 文字ベクトル
値: スカラー | ベクトル
既定の設定: '[ ]'

このチェック ボックスを選択して、ブロックが異なる数をもつ要素の入力を受け入れるようにします。このブロックでは、出力信号の先頭に対する各入力信号のオフセットを指定できます。出力信号の幅は次のようになります。

max(w1+o1, w2+o2, ... wn+on)

ここで、w1, ... wn は入力信号の幅、o1, ... on は入力信号のオフセットです。

このチェック ボックスをオフにすると、Merge ブロックは同じ次元の入力のみを受け入れ、入力と同じ次元の信号を出力します。

プログラムでの使用

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

ベクトルを入力して、出力信号の先頭に対する各入力信号のオフセットを指定します。

プログラムでの使用

ブロック パラメーター: InputPortOffsets
型: 文字ベクトル
値: スカラー | ベクトル
既定の設定: '[ ]'

ブロックの特性

データ型

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

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

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

R2006a より前に導入