Можно импортировать данные о шине к входным портам верхнего уровня путем ручного определения данных в параметре конфигурации Input или при помощи инструмента Root Inport Mapper. Для получения информации об импорте данных о шине с помощью инструмента Root Inport Mapper смотрите, Импортируют Данные о Шине.
Можно импортировать шину (виртуальный, невиртуальный, или массив шин) данные к входному порту верхнего уровня, заданному объектом шины (см. Simulink.Bus
). В блоке Inport верхнего уровня, набор Data type к Bus
и задайте имя объекта шины. Чтобы задать значения данных для сигналов шины, используйте структуру:
MATLAB®
timeseries
объекты
MATLAB timetable
объекты
Комбинация timeseries
и timetable
объекты
Соедините шиной элементы, для которых вы не включаете поле в наземные значения использования структуры. Можно использовать пустую матрицу, чтобы задать, чтобы использовать наземные значения.
Когда вы задаете timetable
данные, чтобы загрузить, timetable
должен содержать данные только для одного сигнала.
Структура timeseries
или timetable
(или оба), объекты должны совпадать с элементами шины в терминах:
Иерархия
Имя поля структуры, которое должно совпадать с именем элемента шины. (name
свойство timeseries
объект не должен совпадать с именем элемента шины.)
Тип данных
Размерности
Сложность
Порядок полей структуры не должен совпадать с порядком элементов шины.
Можно включать структуру как элемент Dataset
объект. Можно использовать структуру в списке, разделенном запятыми. Можно задать пустую матрицу в списке, разделенном запятыми. Пустая матрица использует наземные значения в сигнале шины.
Например, чтобы загрузить данные для входных портов in1
и in3
, и использовать наземные значения в порте in2
, введите следующее в параметр Input:
in1, [], in3
Если вы используете структуру MATLAB timeseries
объекты для корневого блока Inport в модели с несколькими корневыми блоками Inport, все корневые блоки Inport должны использовать MATLAB timeseries
или timetable
объекты. Преобразуйте любые корневые данные о блоке Inport, которые используют Simulink.TsArray
или Simulink.Timeseries
объекты к MATLAB timeseries
объекты.
Можно инициализировать сигналы шины, включая использование частичной спецификации данных об инициализации. Для получения дополнительной информации смотрите, Задают Начальные условия для Сигналов Шины.
Для получения дополнительной информации об импорте массива данных о шине с корневым блоком Inport, смотрите Массив Импорта Данных о Шинах.
Данные сигнала, которые можно использовать инструмент Root Inport Mapper, чтобы импортировать и сопоставить с блоком Inport верхнего уровня, могут включать данные о шине. Вы не можете использовать тот инструмент, чтобы сопоставить сигналы шины с блоком Enable или Trigger верхнего уровня.
Вы не можете использовать входные порты, чтобы импортировать шины в режимах external mode. Чтобы импортировать данные о шине в быстром режиме Accelerator, используйте Dataset
формат.
Эта модель имеет два блока Inport, соединенные с блоками Scope. Тип данных In1
блок наследован (данные о нешине) и тип данных In2
блок задан объектом BusObject
шины. Модель имеет коллбэк, который загружает
BusObject
и его подшина BusObject1
.
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);
timeseries
MATLAB объекты, которые вы создаете, должны совпадать с соответствующими элементами шины, как описано в Импортированных Требованиях к данным Шины.
Создайте 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, показывает импортированные данные о шине.
Определить количество MATLAB timeseries
объекты и тип данных, сложность и размерности, необходимые для создания структуры timeseries
объекты от шины, используйте эти методы:
Simulink.Bus.getNumLeafBusElements
Simulink.Bus.getLeafBusElements
Например, для объекта BusObject
шины:
num_el = BusObject.getNumLeafBusElements
num_el = 3
el_list = BusObject.getLeafBusElements
el_list = 3x1 BusElement array with properties: Min Max DimensionsMode SampleTime Description Units Name DataType Complexity Dimensions
el_list(1).Dimensions
ans = 1
Если у вас есть timeseries
объекты задали, можно использовать их, чтобы создать структуру timeseries
объекты на основе объекта шины. Используйте
функция. Например, если вы задали Simulink.SimulationData.createStructOfTimeseries
timeseries
объекты 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
, вы видите:
input
Блок Inport использует MyBus
соедините шиной объект как его тип данных.
MyBus
массив шин включает MyBus(1)
и MyBus(2)
. Размерность порта собирается в 2 отразить две шины в массиве шин, и Output as nonvirtual bus включен.
Вот элементы массива шин, который включает MyBus(1)
и MyBus(2)
. Цветное выделение показывает узлы массива шин, для которых импортируются данные.
Вот код MATLAB, который задает данные, чтобы импортировать. Цвет, который подсвечивает код, совпадает с цветом соответствующего узла в массиве шин. Чтобы просмотреть код, используемый в этой модели, откройте файл кода MATLAB ex_partial_loading_aob_data.m.
В коде, который задает данные об импорте:
timeseries
объект MyBusValue
задает данные для подсвеченных узлов.
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
.