Можно объединить сигналы в шину и затем получить доступ к шине в целом или выбрать конкретные сигналы из шины. виртуальный Simulink® шина аналогична связке проводов, удерживаемой вместе связующими переносами. Для сравнения, невиртуальная шина Simulink аналогична struct в коде С
Не все блоки могут принимать шины, а некоторые блоки неявно преобразуют шины в векторы. Чтобы узнать, какие блоки поддерживают какие типы шин, смотрите Блоки с поддержкой шины. Для идентификации преобразований шины см. Раздел «Управление преобразованиями шины в вектор».
То, как вы создаете виртуальные шины, отличается в зависимости от местоположения сигналов, которые вы хотите сгруппировать.
Чтобы сосредоточиться на фундаментальных шагах, эти примеры просты, однако шины наиболее полезны, когда у вас есть много сигналов для объединения.
Совет
Когда вы открываете модель или создаете шину, Редактор Simulink не отображает стилей линии шины. Чтобы обновить стили линии, необходимо скомпилировать модель. На вкладке « Моделировании» панели инструментов Simulink нажмите Update Model или запуск.
Можно группировать сигналы в виртуальную шину в компоненте с помощью блоков Bus Creator.
Откройте пример модели, которая содержит три блока.
Чтобы создать шину, содержащую выходы из нескольких блоков, перетащите мышью, чтобы выбрать блоки. В данном примере выберите блоки Chirp Signal и Sine Wave. На появившейся панели действий нажмите «Создать шину».
Simulink добавляет блок Bus Creator и соединяет входы с этим блоком. Блок выхода Bus Creator является виртуальной шиной.
Чтобы упростить идентификацию элементов шины, пометьте входы в блок Bus Creator. Пометьте выходы блока Chirp Signal, дважды кликнув по линии и введя Chirp
. Точно так же пометьте выход блока Sine Wave Sine
.
Чтобы создать вторую шину, которая содержит первую шину и выход блока Step, перетащите мышью, чтобы выбрать блоки Bus Creator и Step. На панели действий, которая появляется, нажмите Создать Bus. Так как Sine
и Chirp
сигналы являются элементами входа шины, Simulink создает ту же шину независимо от того, включает ли ваш выбор блоки Sine Wave и Chirp Signal.
Simulink добавляет другой блок Bus Creator и соединяет входы с этим блоком. Блок выхода Bus Creator является виртуальной шиной, содержащей вложенную шину.
Можно гнездить автобусы на любую глубину. Если один из входов в блок Bus Creator является шиной, то его выход является иерархией шины, которая содержит по крайней мере одну вложенную шину.
Пометьте выход блока Step Step
и выход первого блока Bus Creator NestedBus
. Опционально расположите блоки, чтобы улучшить читаемость модели.
Соедините выход второго блока Bus Creator с блоком Scope и пометьте выход TopBus
. Чтобы визуально идентифицировать шины, скомпилируйте модель, нажав Обновить модель (Update Model) или Выполнить (Run) на вкладке Моделирование (Modeling) панели инструментов Simulink. При компиляции модели обновляются стили линии.
В этом примере показано, как сгруппировать выходные сигналы подсистемы или модели в виртуальную шину с помощью блоков Out Bus Element.
Откройте модель примера, которая содержит три исходных блоков.
Добавьте блок Out Bus Element в модель. Блок Out Bus Element аналогичен блоку Bus Creator, соединенному с блоком Outport. Соедините выход блока Chirp Signal с блоком Out Bus Element.
Метка рядом с блоком Out Bus Element имеет две части. Первая часть метки описывает шину (OutBus
), а вторая часть метки описывает элемент шины (signal1
). Чтобы упростить идентификацию элементов шины, переименуйте элемент двойным щелчком мыши signal1
и ввод Chirp
.
Ctrl + дважды перетащите блок Out Bus Element, чтобы создать две копии блока. При копировании блока таким образом задайте, создавать ли новый порт или использовать существующий. Чтобы создать одну выходную шину, которая содержит все сигналы, выберите Use Existing Port каждый раз, когда вы копируете блок, затем соедините сигналы.
Чтобы создать иерархию в выход шине, используйте точки в части метки, которая описывает элемент шины. Каждая точка создает новый уровень иерархии. Создайте вложенную шину с именем NestedBus
путем определения элементов шины следующим NestedBus.Sine
и NestedBus.Step
, соответственно.
Также можно подключить шину к блоку Out Bus Element. Если другие блоки Out Bus Element соответствуют тому же порту, шина вложена в выход шину. Часть метки, описывающая элемент шины, содержит имя этой вложенной шины.
Проверьте иерархию шины в диалоговом окне для порта, дважды щелкнув на любом из блоков Out Bus Element.
Три Элемента Out Bus блоков создать виртуальную шину в выход порту модели. Чтобы увидеть виртуальную шину, ссылайтесь на модель в другой модели или перемещайте блоки Out Bus Element в подсистему. Обновление стилей линии при компиляции модели. Чтобы скомпилировать модель, на вкладке Моделирование (Modeling) панели инструментов Simulink, нажмите Обновить модель (Update Model) или Запуск.
В этом примере показаны три способа упростить интерфейс подсистемы путем преобразования нескольких портов и их связанных сигналов в один порт и шину.
Откройте модель примера, которая содержит две подсистемы с несколькими входными и выходными портами.
Перетащите рамку выбора вокруг сигнальных линий между двумя подсистемами. На появившейся панели действий нажатия кнопки Создать шину.
Simulink заменяет блоки Inport и Outport в исходной и целевой подсистемах блоками In Bus Element и Out Bus Element.
Перетащите окно выбора вокруг сигнальных линий между исходными блоками и первой подсистемой. На появившейся панели действий нажатия кнопки Создать шину.
Simulink добавляет блок Bus Creator перед первой подсистемой и заменяет блоки Inport в первой подсистеме блоками In Bus Element.
Перетащите окно выбора вокруг сигнальных линий между второй подсистемой и блоками Scope. На появившейся панели действий нажатия кнопки Создать шину.
Simulink заменяет блоки Outport во второй подсистеме блоками Out Bus Element и добавляет блок Bus Selector после второй подсистемы.
Получившаяся модель использует виртуальные шины в интерфейсах подсистемы.
Bus Creator | Bus Selector | In Bus Element | Out Bus Element