Объедините несколько сигналов в один сигнал
Simulink/Маршрутизация сигнала
Блок 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, чтобы изменить шаг расчета отдельного сигнала или всех сигналов в шине.
Блок 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
.
Массив структур, который задает начальное условие для каждого из отдельных сигналов в массиве шин.
Одна скалярная структура, которая задает начальное условие для каждого из элементов, заданных типом шины. Используйте этот метод, чтобы задать те же начальные условия для каждой из шин в массиве.
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|