Можно импортировать данные шины во входные порты верхнего уровня путем определения данных вручную в параметре конфигурации Input или с помощью инструмента Root Inport Mapper. Для получения информации об импорте данных шины с помощью инструмента Root Inport Mapper, смотрите Импорт данных шины.
Можно импортировать данные шины (виртуальная, невиртуальная, или массив шин) в входной порт верхнего уровня, заданный объектом шины (см Simulink.Bus). В блоке Inport верхнего уровня установите Data type равным Bus и укажите имя объекта шины. Чтобы задать значения данных для сигналов шины, используйте структуру:
MATLAB®
timeseries объекты
MATLAB- timetable объекты
Комбинация timeseries и timetable объекты
Элементы шины, для которых вы не включаете поле в структуру, используют значения заземления. Можно использовать пустую матрицу, чтобы задать, чтобы использовать значения заземления.
Примечание
Когда вы задаете timetable данные для загрузки, timetable должен содержать данные только для одного сигнала.
Структура timeseries или timetable (или оба) объектов должны совпадать с элементами шины с точки зрения:
Иерархия
Имя поля структуры, которое должно совпадать с именем элемента шины. (The name свойство timeseries объект не должен совпадать с именем элемента шины.)
Тип данных
Размерности
Сложность
Порядок полей структуры не должен совпадать с порядком элементов шины.
Можно включать структуру как элемент массива Dataset объект. Можно использовать структуру в списке, разделенном запятыми. Можно задать пустую матрицу в списке, разделенном запятыми. Пустая матрица использует значения заземления для сигнала шины.
Например, чтобы загрузить данные для входных портов in1 и in3, и использовать значения заземления для портовых in2, введите в параметре Input следующее:
in1, [], in3
Можно инициализировать сигналы шины, в том числе с помощью частичной спецификации данных инициализации. Для получения дополнительной информации смотрите «Задание начальных условий для элементов шины».
Для получения дополнительной информации об импорте массива данных шины в корневой Inport блок, смотрите Import Array of Buses Data.
Данные сигнала, которые вы можете использовать инструмент Root Inport Mapper для импорта и сопоставления с блоком верхнего уровня, Inport могут включать данные шины. Вы не можете использовать этот инструмент для сопоставления сигналов шины с блоком Enable или Trigger верхнего уровня.
Вы не можете использовать входные порты для импорта шин во режимах external mode. Чтобы импортировать данные шины в быстрых режимах Accelerator, используйте Dataset формат.
Эта модель имеет два блока Inport, соединенных с блоками Scope. Тип данных In1 унаследован блок (nonbus data) и тип данных In2 блок определяется объектом шины BusObject. Модель имеет коллбэк, который загружается BusObject и его подсистем BusObject1.

The BusObject шинный объект имеет два элемента:
c
s1, которая является вложенной шиной, которая имеет два элемента:
a
b
Откройте model.
Создайте timeseries MATLAB объект для In1, для которого необходимо импортировать небусовые данные.
Для примера:
t1 = (1:10)'; d1 = sin(t1); in1 = timeseries(d1,t1);
Создайте структуру входа, которая может состоять из MATLAB timeseries объекты или MATLAB timetable объекты или комбинация этих типов объектов. Создайте одну timeseries или timetable объект для каждого элемента шины листа, для которого вы не хотите использовать значения заземления. Этот пример использует значения заземления для b элемент шины, поэтому ему не нужен timeseries или timetable объект для этого элемента.
t2 = (1:5)'; d2 = cos(t2); in2.c = timeseries(d1,t1); in2.s1.a = timetable(seconds(t2),d2);
Система MATLAB timeseries объекты, которые вы создаете, должны совпадать с соответствующими элементами шины, как описано в Импортированные требования к данным шины.
Создайте Dataset объект и добавление in1 и in2 в набор данных.
ds = Simulink.SimulationData.Dataset; ds = ds.addElement(in1,'in1_signal'); ds = ds.addElement(in2,'in2_signal');
В поле Configuration Parameters > Data Import/Export > Input параметра введите Dataset ds объекта.

Симулируйте модель. Блок Scope, подключенный к In2, показывает импортированные данные шины.

Для определения количества timeseries MATLAB объекты и тип данных, сложность и размерности, необходимые для создания структуры timeseries объекты из шины, используйте следующие методы:
Simulink.Bus.getNumLeafBusElements
Simulink.Bus.getLeafBusElements
Для примера, для объекта шины BusObject:
num_el = BusObject.getNumLeafBusElements
num_el =
3el_list = BusObject.getLeafBusElements
el_list =
3x1 BusElement array with properties:
Min
Max
DimensionsMode
SampleTime
Description
Units
Name
DataType
Complexity
Dimensionsel_list(1).Dimensions
ans =
1
Если у вас есть timeseries объекты заданы, можно использовать их, чтобы создать структуру timeseries объекты, основанные на объекте шины. Используйте функция. Для примера, если вы определили Simulink.SimulationData.createStructOfTimeseriestimeseries объекты ts1, ts2, и ts3и у вас есть объект шины MyBusObjectможно использовать эту команду для создания структуры timeseries объекты:
input = Simulink.SimulationData.createStructOfTimeseries(... 'MyBusObject',{ts1,ts2,ts3});
Количество timeseries объекты массива ячеек должны совпадать с количеством элементов листа в объекте шины. Тип, размерности и сложность данных каждого timeseries объект должен совпадать с атрибутами соответствующего узла листа объекта шины.
Чтобы импортировать (загрузить) массив данных шин с помощью корневого блока Inport, используйте массив структур MATLAB timeseries объекты.
Примечание
Вы не можете использовать Enable, Trigger, From Workspace или From File блок для импорта данных для массива шин.
Можно использовать записанные данные для массива сигналов шин от предыдущего симуляции в качестве входов округления до Inport корневого уровня в последующем запуске симуляции. Записанные данные являются полной спецификацией данных для блока Inport.
Если вы создаете массив структур MATLAB timeseries объекты для полного задания импортируемых данных:
Задайте поля структуры в том же порядке, как и сигналы в сигналах шины.
Не включать больше полей в структуру, чем сигналов в шине.
Для листовых полей точно совпадайте с типом данных, размерностями и сложностью соответствующего сигнала в шине.
Чтобы задать частичные данные для массива шин, создайте массив структур MATLAB с MATLAB timeseries объекты в узлах листа.
Структура, которую вы создаете для задания частичных данных, должна соответствовать следующим правилам:
Можно опускать поля, включая листовые узлы и поддиапазоны. Можно также исключить размерности. Если вы не задаете поле, Simulink® использует значение заземления для этого поля.
Для вложенных шинных узлов сделайте размерность каждого поля равным или меньше, чем размерность для соответствующего узла массива шин.
В этом примере показано, как можно задать частичные данные для импорта с помощью корневого Inport блока, тип данных которого определяется как объект шины MyBus. Можно открыть модель (ex_partial_loading_aob_model) и код MATLAB, который определяет данные для импорта (ex_partial_loading_aob_data.m).
Когда вы симулируете ex_partial_loading_aob_model, вы видите:

The input
Inport блок использует MyBus шинный объект как тип данных.

The MyBus массив шин включает MyBus(1) и MyBus(2). Размерность порта устанавливается равным 2, чтобы отразить две шины в массиве шин, и Output as nonvirtual bus включено.
Вот элементы массива автобусов, который включает MyBus(1) и MyBus(2). Цветовая подсветка показывает узлы массива шин, для которых импортируются данные.

Вот код MATLAB, который определяет данные для импорта. Цвет, который подсвечивает код, совпадает с цветом соответствующего узла в массиве шин. Чтобы просмотреть код, используемый в этой модели, откройте ex_partial_loading_aob_data.m файла кода MATLAB.

В коде, который определяет данные импорта:
The timeseries MyBusValue объекта определяет данные для подсвеченных узлов.
The timeseries BT объекта для MyBus(2), потому что BT является конечным узлом, он должен точно совпадать с размерностями, типом данных и сложностью соответствующего элемента шины.
Структура задает данные для Y(2). Можно пропустить первые и последние вложенные автобусы Y (то есть Y(1) и Y(3)).
Этот пример задает данные для Y(2); можно пропустить первые и последние вложенные автобусы Y (то есть Y(1) и Y(3)).
После того, как вы задаете MyBusValue переменная для данных импорта, установите параметр Configuration Parameters Data Import/Export > Input > MyBusValue.
