Загрузка данных шины в входные порты корневого уровня

Можно импортировать данные шины во входные порты верхнего уровня путем определения данных вручную в параметре конфигурации 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

  1. Откройте model.

  2. Создайте timeseries MATLAB объект для In1, для которого необходимо импортировать небусовые данные.

    Для примера:

    t1 = (1:10)';
    d1 = sin(t1);
    in1 = timeseries(d1,t1);
  3. Создайте структуру входа, которая может состоять из 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 объекты, которые вы создаете, должны совпадать с соответствующими элементами шины, как описано в Импортированные требования к данным шины.

  4. Создайте Dataset объект и добавление in1 и in2 в набор данных.

    ds = Simulink.SimulationData.Dataset;
    ds = ds.addElement(in1,'in1_signal');
    ds = ds.addElement(in2,'in2_signal');
  5. В поле Configuration Parameters > Data Import/Export > Input параметра введите Dataset ds объекта.

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

Получение информации об объектах шины

Для определения количества timeseries MATLAB объекты и тип данных, сложность и размерности, необходимые для создания структуры 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 объекты заданы, можно использовать их, чтобы создать структуру 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, вы видите:

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.

См. также

Похожие темы