В этом примере показано, как использовать структуры в блоке 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
. Вот ссылки на поля для каждой структуры в этом примере:
Структура | Первое поле | Второе поле | Третье поле |
---|---|---|---|
inbus | inbus.ele1 | inbus.ele2 | inbus.ele3 |
outbus | outbus.ele1 | outbus.ele2 | outbus.ele3 |
outbus1 | outbus1.a1 | outbus1.a2 | — |