Невиртуальная шина Simulink® походит на struct в коде С. К данным о шине пакета как структуры в сгенерированном коде C используйте невиртуальные шины.
Необходимо также использовать невиртуальные шины для:
Создайте массив шин.
Интерфейс с внешним кодом через S-функцию.
Имейте перекрестный блок MATLAB Function данных о шине или контуры графика Stateflow®.
Отобразите и регистрируйте шины с блоком Scope.
Чтобы создать невиртуальную шину, вы должны:
Задайте Simulink.Bus
возразите как тип данных для шины. Установите Data type на Bus: <object name>
, где <object name>
Bus
имя объекта.
Укажите, что выход блока является невиртуальной шиной. Выберите Output as nonvirtual bus или, для блоков Outport, Output as nonvirtual bus in parent model.
Все сигналы в невиртуальной шине должны иметь тот же шаг расчета. Для получения дополнительной информации смотрите, Изменяют Шаги расчета для Невиртуальных Шин.
Симулировать модель, которая содержит невиртуальные шины, Bus
, на который ссылаются, объекты должны быть в базовом рабочем пространстве или словаре данных. Необходимо задать
Bus
возразите или используйте уже заданный Bus
объект. Коллбэк модели может загрузить необходимый Bus
объекты.
Способ создать невиртуальные шины отличается на основе местоположения шины:
Чтобы фокусироваться на основных шагах, эти примеры просты. Однако шины являются самыми полезными, когда у вас есть много сигналов объединиться.
В этом примере показано, как сконфигурировать блок Bus Creator, чтобы вывести невиртуальную шину.
Откройте и симулируйте модель в качестве примера, которая содержит виртуальную иерархию шины.
Создайте объекты Simulink.Bus
Поскольку виртуальные шины в этой модели не заданы Bus
объекты, необходимо создать Bus
объекты, которые совпадают с иерархией шины. Если виртуальные шины были заданы Bus
объекты, вы не должны были бы создавать Bus
объекты.
Создать и сохранить Bus
объекты для шин в модели, используйте Simulink.Bus.createObject
функция. Когда вы задаете блок Bus Creator, который создает шину, которая содержит другие шины, эта функция создает Bus
объекты для шины, созданной блоком и всеми вложенными шинами. Когда вы задаете имя файла, оно сохраняет Bus
объекты в функции с тем именем.
busInfo = Simulink.Bus.createObject... ('NonvirtualBusCreationModel',... 'NonvirtualBusCreationModel/Bus Creator1',... 'NonvirtualBusCreationFunction');
В базовом рабочем пространстве Simulink создает два Bus
объекты называют в честь соответствующих шин, TopBus
и NestedBus
. В текущей папке Simulink создает функцию с именем NonvirtualBusCreationFunction.m
.
Видеть созданный Bus
объекты, откройте Редактор Шины путем ввода:
buseditor
Задайте невиртуальную шину Выходные параметры
В модели дважды кликните блок Bus Creator1. В диалоговом окне, устанавливает тип Выходных данных на Bus: TopBus
и выберите Output как невиртуальный флажок шины.
Чтобы идентифицировать невиртуальную шину с методической точностью разрабатывают, симулируют модель.
Выход блока Bus Creator1 является невиртуальной шиной, в то время как блок Bus Creator выход остается виртуальная шина.
Дважды кликните блок Bus Creator. В диалоговом окне Выходные данные набора вводят к Bus: NestedBus
и выберите Output как невиртуальный флажок шины.
Чтобы идентифицировать новую невиртуальную шину с методической точностью разрабатывают, симулируют модель.
В этом примере показано, как преобразовать виртуальную шину в невиртуальную шину в выходном порту модели, на которую ссылаются.
Откройте и симулируйте модель в качестве примера, которая ссылается на модель с виртуальной шиной выход.
Чтобы задать интерфейс модели, выходной порт модели, на которую ссылаются, имеет Simulink.Bus
возразите как его тип данных. Создать Bus
объект в базовом рабочем пространстве, когда модель, на которую ссылаются, загружается, модель, на которую ссылаются, использует коллбэк.
В модели, на которую ссылаются дважды кликните блок Outport. В диалоговом окне, на вкладке Signal Attributes, выбирают Output как невиртуальную шину в родительской модели, затем нажимают ОК.
Чтобы обновить стили линии, симулируйте модель снова.
Вход с блоком Outport остается виртуальная шина.
Выход блока Model является теперь невиртуальной шиной.
В этом примере показано, как преобразовать виртуальную шину в невиртуальную шину в модели.
Откройте и симулируйте модель в качестве примера, которая ссылается на модель с виртуальной шиной выход.
Чтобы задать интерфейс модели, выходной порт модели, на которую ссылаются, имеет Simulink.Bus
возразите как его тип данных. Создать Bus
объект в базовом рабочем пространстве, когда модель, на которую ссылаются, загружается, модель, на которую ссылаются, использует коллбэк.
Чтобы преобразовать виртуальную шину выход в невиртуальную шину, добавьте блок To Nonvirtual Bus между блок Outport и блоком Model. Этот блок является предварительно сконфигурированной версией блока Signal Conversion, которому установили Выходной параметр на Nonvirtual bus
.
Чтобы идентифицировать невиртуальную шину с методической точностью разрабатывают, симулируют модель.