Присоединение шинных сигналов к блокам MATLAB Function

Структуры в блоке MATLAB function

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

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

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

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

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

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

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

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

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

Похожие примеры

Подробнее о