exponenta event banner

Подключение сигналов шины к функциональным блокам MATLAB

Структуры в функциональном блоке MATLAB

В этом примере показано, как использовать структуры в функциональном блоке MATLAB для считывания и записи сигналов шины Simulink ®.

В этой модели функциональный блок MATLAB принимает сигнал шины, используя структуру inbus на входном порту 1. Блок выдает два сигнала шины: структура outbus на выходном порту 1 и структуре outbus1 на выходном порту 2. Входной сигнал поступает от блока Bus Creator MainBusCreator, который связывает сигналы ele1, ele2, и ele3. Сигнал ele3 является выходом другого блока Bus Creator SubBusCreator, который связывает сигналы a1 и a2. Структуры outbus и outbus1 подключаются к блокам выбора шины, которые, в свою очередь, подключаются к блокам отображения.

Изучение функции MATLAB fcnдважды щелкните на блоке MATLAB Function. Обратите внимание, что код неявно определяет локальную структурную переменную. mystruct с использованием struct и использует эту локальную структурную переменную для инициализации значения первого вывода, outbus. Инициализирует второй выход, outbus1, к значению поля ele3 структуры inbus.

Определения структуры в примере

Ниже приведены определения структур в блоке MATLAB Function в примере, которые отображаются в Ports and Data Manager:

Объекты шины определяют входные и выходные данные структуры

Каждый вход и выход структуры должен быть определен Simulink.Bus в базовой рабочей области (см. Создание структур в функциональных блоках MATLAB). Это означает, что структура имеет те же свойства, что и объект шины, включая номер, имя, тип и последовательность полей. В этом примере следующие объекты шины определяют входы и выходы структуры:

Simulink.Bus объект MainBus определяет входные данные структуры inbus и структурный вывод outbus. Simulink.Bus объект SubBus определяет вывод структуры outbus1. Основываясь на этих определениях, inbus и outbus имеют те же свойства, что и MainBus и, следовательно, ссылаются на свои поля теми же именами, что и поля в MainBus, используя точечное представление (см. Индексные подструктуры и поля). Аналогично, outbus1 ссылается на свои поля теми же именами, что и поля в SubBus. Ниже приведены ссылки на поля для каждой структуры в этом примере:

СтруктураПервое полеВторое полеТретье поле
inbusinbus.ele1inbus.ele2inbus.ele3
outbusoutbus.ele1outbus.ele2outbus.ele3
outbus1outbus1.a1outbus1.a2

Связанные примеры

Подробнее