Можно использовать составные сигналы уменьшить визуальную сложность в модели. Составной сигнал является сигналом, который состоит из других сигналов. Сигналы отдельного элемента происходят отдельно и соединяют, чтобы сформировать составной сигнал. Можно извлечь отдельные сигналы от составного сигнала в нисходящем направлении и использовать извлеченный сигнал, как будто это никогда не была часть составного сигнала.
Используйте один или несколько из этих методов, чтобы объединить сигналы в составной сигнал.
Чтобы выбрать составной метод сигнала, который удовлетворяет ваши требования моделирования, смотрите, Выбирают Composite Signal Technique.
Сигнал шины (также названный шиной) походит на пакет проводов, скрепляемых связью, переносится. Шина Simulink® не походит на аппаратную шину, такую как шина в архитектуре компьютерного оборудования. Программное обеспечение Simulink реализует шину как основанную на имени иерархическую структуру сигналов.
Шина состоит из сигналов, которые называются элементами. Составляющие сигналы сохраняют свои отдельные тождества в шине и могут иметь любой тип или типы, включая другие шины, вложенные к любому уровню. Элементы шины могут быть:
Смешанные сигналы типа данных (например, дважды, целое число, фиксированная точка)
Смешанные скалярные и векторные элементы
Смешанный действительных и комплексных сигналов
Другие шины
Многомерные сигналы
Не все блоки могут принять шины. Смотрите Способные к шине Блоки для получения дополнительной информации, о которых блоки могут обработать который типы шин. Кроме того, смотрите Шины Использования с Inport и Outport Blocks.
Например, эта модель имеет сигнал шины bus1
, состоявший из элементов шины Clock
, Pulse
и Sine
.
Для полных примеров с помощью шин см. slexBusExample и Начинающий с Шинами.
Шина может быть или виртуальной или невиртуальной. Виртуальные и невиртуальные шины обеспечивают то же визуальное упрощение, но Simulink обрабатывает их по-другому.
Шина | Функциональный эффект | Устройство хранения данных сигнала | Сгенерированный код |
---|---|---|---|
Виртуальный | Существует только графически; не имеет никакого функционального эффекта. |
Каждый сигнал элемента шины занимает свое собственное устройство хранения данных в памяти, но сигнал шины не сохранен в памяти. Блок, соединенный с виртуальной шиной, читает входные параметры и пишет выходные параметры путем доступа к памяти, выделенной сигналам компонента. Эти сигналы являются, обычно состоящими из нескольких несмежных участков. Информация о размере и типе данных сигналов распространяет из источников сигнала. | Не появляйтесь в сгенерированном коде, даже когда сопоставлено с тестовой точкой. Только составляющие сигналы появляются. |
Невиртуальный | Может иметь функциональные эффекты. |
Сигнал шины занимает свое собственное устройство хранения данных в непрерывной памяти. Блок, соединенный с невиртуальной шиной, читает входные параметры и пишет выходные параметры путем доступа к копиям сигналов компонента. Копии сохраняются в непрерывной области памяти, выделенной шине. | Появитесь как структуры в сгенерированном коде. |
Когда вы моделируете или выполняете операцию схемы обновления для модели, которая содержит шины, Симулинк использует различные стили линии для виртуальных и невиртуальных сигналов шины.
Виртуальная шина | |
Невиртуальная шина |
Блок Signal Conversion может преобразовать виртуальную шину в невиртуальную шину или невиртуальную шину к виртуальной шине.
Шина может иметь связанный объект шины, который обеспечивает свойства шины, о которых сигнализирует использование Симулинка, чтобы подтвердить шину. Объекты шины являются дополнительными для виртуальных шин, но требуемые для невиртуальных шин.
Объект шины задает только архитектурные свойства шины, в отличие от значений сигналов, которые он содержит. Например, объект шины может задать число элементов в шине, порядке тех элементов, ли и как элементы вкладываются, и типы данных составляющих сигналов; но не значения сигналов. Объект шины походит на определение структуры в C: это задает членов шины, но не создает шину. Другой способ думать об объекте шины состоит в том, что это подобно коннектору кабеля. Коннектор задает все контакты и их настройку и управляет тем, какие типы проводов могут быть соединены с ним. Точно так же объект шины задает настройку и свойства сигналов, что связанная шина должна иметь.
Объект шины является экземпляром класса Simulink.Bus
, который может быть в сохраненном в месте, таком как базовое рабочее пространство. Объект задает структуру шины и свойства ее элементов, такие как вложение, тип данных и размер. Можно создать объекты шины программно или при помощи Редактора Шины Simulink, который можно использовать, чтобы создать и управлять объектами шины в интерактивном режиме. Можно сохранить объекты шины как код MATLAB® или как MAT-файл. Для получения дополнительной информации смотрите, Когда Использовать Объекты Шины и Создать Объекты Шины с Редактором Шины.
Для моделирования виртуальные шины и невиртуальные шины подобны, за исключением того, что все элементы невиртуальной шины должны иметь ту же частоту дискретизации. Однако тип шины может иметь значительное значение в эффективности, размере и удобочитаемости сгенерированного кода. Для примера этого различия смотрите, Генерируют Код для Шин.
Если вы намереваетесь сгенерировать код для модели, которая использует шины для получения информации о лучших методах, чтобы использовать, смотрите, Генерируют Эффективный Код для Сигналов Шины (Simulink Coder).
В Элементе Шины и блоки Элемента Шины обеспечивают упрощенный и гибкий способ использовать сигналы шины в качестве вводов и выводов к подсистемам. Вот модель, которая использует блокировки порта элемента шины.
Можно осуществить рефакторинг интерфейс подсистемы, который использует Inport, Селектор Шины, Создателя Шины и блоки Выходного порта, чтобы использовать В Элементе Шины и блоках Элемента Шины. Операции преобразования поддержаны только, когда сигнальные линии или блоки не имеют никакой дополнительной спецификации. Можно использовать операции нажатия кнопки для:
Преобразуйте блоки Селектора Inport и Шины в подсистеме к В блоках Элемента Шины.
Преобразуйте блоки Создателя Выходного порта и Шины в подсистеме, чтобы Соединить шиной блоки Элемента.
Преобразуйте интерфейсы ввода или вывода подсистем, чтобы использовать блокировки порта элемента шины.
Можно объединить несколько невиртуальных шин с идентичными свойствами в массив шин. Массив шин является массивом, элементы которого являются шинами. Каждый объект шины имеет то же имя сигнала, иерархию, и приписывает для ее элементов шины. Массив шин эквивалентен массиву структур в MATLAB.
Пример использования массива шин должен смоделировать многоканальную систему. Можно смоделировать все каналы с помощью того же объекта шины, несмотря на то, что каждый из каналов мог иметь различное значение.
Для примера модели, которая использует массив шин, откройте модель sldemo_bus_arrays
. В этом примере невиртуальные входные сигналы шины соединяются с блоком Vector Concatenate или Matrix Concatenate, который создает массив сигналов шины. Вот то, как моделируемая модель появляется.
Модель использует массив шин с:
Блок Assignment, чтобы присвоить значения шине в массиве
Блок For Each Subsystem, чтобы выполнить итеративную обработку по каждой шине в массиве
Блок памяти, чтобы вывести массив входного параметра шин от предыдущего временного шага
Смотрите шины объединения в массив шин.
Если все сигналы в составном сигнале имеют тот же тип, обычно можно использовать мультиплексор, который является специальным типом (виртуального) вектора, состоящего из нескольких несмежных участков. Если настройка блока или моделирования требует шины, то не используйте мультиплексор.
Эта модель имеет три сигнала, которые вводятся к блоку Mux, передали как сигнал мультиплексора к блоку Demux и вывели как отдельные сигналы.
Блоки Мультиплексора и Демультиплексора являются левыми и правыми вертикальными панелями, соответственно. Чтобы уменьшить визуальную сложность, никакой блок не отображает имя.
Для получения дополнительной информации смотрите Сигналы Мультиплексора.
Можно конкатенировать входные сигналы совпадающего типа данных, чтобы создать непрерывный выходной сигнал. Можно использовать блок Vector Concatenate или Matrix Concatenate, чтобы конкатенировать сигналы в его входных параметрах, чтобы создать выходной сигнал, элементы которого находятся в непрерывных местоположениях в памяти.
Например, эта модель устанавливает параметр блока Matrix Concatenate конкатенация размерности к 2
. Вводы являются 2D матрицами. Блок Matrix Concatenate выполняет горизонтальную конкатенацию матриц и помещает входные матрицы рядом, чтобы создать выходную матрицу.
Simulink.BlockDiagram.addBusToVector
| Simulink.Bus.cellToObject
| Simulink.Bus.createMATLABStruct
| Simulink.Bus.createObject
| Simulink.Bus.objectToCell
| Simulink.Bus.save