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

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

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

В этой модели блок MATLAB function получает сигнал шины использование структуры 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 в примере, когда они появляются в Портах и Менеджере данных:

This image shows the definitions of the structures in the MATLAB Function block in the example, as they appear in the Ports and Data Manager.

Объекты шины задают вводы и выводы структуры

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

This image shows the display of the bus object properties.

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

Шины записи от памяти хранилища данных до блока MATLAB function

В этом примере показано, как использовать данные о шине, хранимые в хранилище данных как вход к блоку MATLAB function.

Соберите данные о шине в блоке памяти хранилища данных

В этом примере, блок Bus Creator MainBusCreator создает шину под названием MainBus потому что параметром типа Выходных данных является Bus: MainBus. Блок Data Store Write затем пишет данные о шине в хранилище данных под названием inbus, который задает параметр Имени хранилища данных.

Чтобы хранить данные о шине от блока Data Store Write, модель включает Блок памяти Хранилища данных. В Блоке памяти Хранилища данных параметром Имени хранилища данных является inbus, имя хранилища данных, заданного по условию блок Store Write. Параметром Типа данных является Bus: MainBus, тип данных задан MainBusCreator блок.

Задайте аргумент данных оперативной памяти хранилища данных

Чтобы использовать хранилище данных в качестве входа, блок MATLAB function использует данные, которые имеют набор свойств Осциллографа к Data Store Memory. Функция затем вызывает данные путем определения данных как глобальной переменной с именем хранилища данных, которое является inbus. Дважды кликните блок MATLAB function, чтобы исследовать код.

function [outbus, outbus1] = fcn
global inbus;
substruct.a1 = inbus.ele3.a1;
substruct.a2 = int8([1 2;3 4]);
mystruct = struct('ele1',20.5, 'ele2', single(100), 'ele3', substruct);
outbus = mystruct;
outbus.ele3.a2 = 2*(substruct.a2);
outbus1 = inbus.ele3;

Можно настроить свойства аргумента данных оперативной памяти хранилища данных в Портах и Менеджере данных или Model Explorer.

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

Больше о