Merge

Объедините несколько сигналов в один сигнал

  • Библиотека:
  • Simulink/Маршрутизация сигнала

  • Merge block

Описание

Блок Merge объединяет входы в один выход. Выходное значение в любой момент времени равно последнему вычисленному выходу его ведущих блоков. Укажите количество входов путем установки параметра Number of inputs.

Используйте Merge блоки для чередования входных сигналов, которые обновляются в разное время, в комбинированном сигнале, в котором перемеженные значения сохраняют свои раздельные идентичности и время. Чтобы объединить сигналы, которые обновляются одновременно в массив или матричный сигнал, используйте блок Concatenate.

Инструкции по использованию блока слияния

Когда вы используете блок Merge, следуйте следующим рекомендациям:

  • Всегда используйте условно выполненные подсистемы, чтобы Merge блоки.

  • Убедитесь, что не более одной из ведущих условно выполненных подсистем выполняется в любой временной шаг.

  • Убедитесь, что все входные сигналы имеют одинаковый шаг расчета.

  • Не ветви сигнал, который вводит в блок Merge, если вы используете настройку по умолчанию Classic для параметра Model Configuration Parameters > Diagnostics > Underspecified initialization detection.

  • Для всех условно выполненных подсистем Outport блоков, которые управляют Merge блоками, установите параметр Output when disabled равным held.

  • Если выход блока Model исходит из блока MATLAB Function или Stateflow® не соединяйте этот выход порт с входом портом блока Merge.

Для каждого входа блока Merge самый верхний неатомный и невиртуальный источник должен быть условно выполненной подсистемой, не являющейся Подсистемой Итератора.

Следующая схема показывает допустимое использование Merge блоков, объединяя сигналы от двух условно выполненных подсистем.

Поддержка шины

Блок Merge является блоком с поддержкой шины. Входами могут быть виртуальные или невиртуальные сигналы шины, удовлетворяющие этим ограничениям:

  • Количество входов должно быть больше единицы.

  • Initial output должны быть нулем, ненулевым скаляром или конечной числовой структурой.

  • Allow unequal port widths должны быть отключены.

  • Все входы для объединения должны быть шинами и должны быть эквивалентными (одинаковая иерархия с идентичными именами и атрибутами для всех элементов).

Все сигналы в невиртуальной шине, вводимой в блок Merge, должны иметь один и тот же шаг расчета. Можно использовать блок Rate Transition, чтобы изменить шаг расчета отдельного сигнала или всех сигналов в шине.

Объединение выходов S-функции

Блок Merge может объединить сигнал от блока S-Function, только если память, используемая для хранения выходов S-Function, является повторно используемой. Simulink® программное обеспечение отображает сообщение об ошибке, если вы пытаетесь обновить или симулировать модель, которая соединяет непереиспользуемый порт блока S-Function с блоком Merge. Посмотрите ssSetOutputPortOptimOpts.

Ограничения

  • Все сигналы, которые соединяются с блоком Merge, функционально являются одним и тем же сигналом. Поэтому они подвергаются ограничению, что данный сигнал может иметь не более одного связанного объекта сигнала. См. Simulink.Signal для получения дополнительной информации.

  • Диагностика во время выполнения не выполняется, если входы в блок слияния получены от одного инициатора. Для примера единственным инициатором может быть диаграмма Stateflow, выполняющая подсистемы вызова функций, которые соединяются с блоком Merge.

  • Не устанавливайте выходные порты условно выполненных подсистем, объединяемых, чтобы сбросить при отключении. Это действие может привести к одновременному обновлению блока несколькими подсистемами. В частности, отключенная подсистема обновляет блок Merge путем сброса его выхода, в то время как включенная подсистема обновляет блок путем вычисления его выхода.

    Чтобы предотвратить такое поведение, установите значение параметров блоков Output when disabled Outport held для каждой условно выполняемой объединяемой подсистемы.

    Примечание

    Если вы используете Упрощенный Режим Инициализации, установите параметры блоков Output when disabled равным held.

  • Блок Merge не принимает входные сигналы, элементы которых были переупорядочены или частично выбраны. В сложение не соединяйте входные сигналы с блоком, которые были объединены вне условно выполненной подсистемы.

Можно использовать массив шин в качестве входного сигнала к блоку Merge с этими ограничениями:

  • Allow unequal port widths - Очистить этот параметр.

  • Initial condition - Вы можете задать этот параметр используя:

    • Значение 0. В этом случае каждый из отдельных сигналов в массиве шин использует начальное значение 0.

    • Массив структур, который задает начальное условие для каждого из отдельных сигналов в массиве шин.

    • Одна скалярная структура, которая задает начальное условие для каждого из элементов, заданных типом шины. Используйте этот метод, чтобы задать те же начальные условия для каждой из шин в массиве.

Порты

Вход

расширить все

Первый входной сигнал слился с другими входными сигналами.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

nпервый входной сигнал объединяется с другими входными сигналами.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Выход

расширить все

Выходной сигнал объединяется из входных сигналов.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Параметры

расширить все

Укажите количество входных сигналов для объединения. Блок создает порт для каждого входного сигнала.

Программное использование

Параметры блоков: Inputs
Тип: Вектор символов
Значения: целое число
По умолчанию: '2'

Задайте начальное значение выхода сигнала. Если вы не задаете начальное выходное значение, то начальный выход зависит от режима инициализации и ведущих блоков.

В режиме Упрощенной инициализации для неопределенной (пустой матрицы []) значение Initial output, блок использует начальное значение по умолчанию для типа выходных данных. Для получения информации об исходном значении по умолчанию см. Раздел «Инициализация значений сигналов». В режиме классической инициализации для неопределенной (пустой матрицы []) значение Initial output, начальный выход блока равен последнему оцененному исходному выходу ведущих блоков. Поскольку упорядоченное расположение инициализации для этих источников может варьироваться, инициализация может быть несогласованной для симуляции и генерации кода модели.

Программное использование

Параметры блоков: InitialOutput
Тип: Вектор символов
Значения: скаляр | вектор
По умолчанию: '[ ]'

Установите этот флажок, чтобы позволить блоку принимать входы с разным количеством элементов. Блок позволяет вам задать смещение для каждого входного сигнала относительно начала выходного сигнала. Ширина сигнала выхода равна

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

где w1, ... wn - ширина входных сигналов и o1, ... on являются смещениями для входных сигналов.

Если снять этот флажок, блок Merge принимает только входы равных размерностей и выводит сигнал тех же размеров, что и входы.

Программное использование

Параметры блоков: AllowUnequalInputPortWidths
Тип: Вектор символов
Значения: 'off' | 'on'
По умолчанию: 'off'

Введите вектор, чтобы задать смещение каждого входного сигнала относительно начала выходного сигнала.

Программное использование

Параметры блоков: InputPortOffsets
Тип: Вектор символов
Значения: скаляр | вектор
По умолчанию: '[ ]'

Характеристики блоков

Типы данных

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

Прямое сквозное соединение

yes

Многомерные сигналы

yes

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Расширенные возможности

.

Преобразование с фиксированной точкой
Разрабатывайте и моделируйте системы с фиксированной точкой с помощью Fixed-Point Designer™.

Представлено до R2006a