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

Можно импортировать данные шины к входным портам верхнего уровня путем ручного определения данных во Входном параметре конфигурации или при помощи инструмента Root Inport Mapper. Для получения информации об импорте данных шины с помощью инструмента Root Inport Mapper смотрите, Импортируют Данные Шины.

Импортированные требования к данным шины

Можно импортировать шину (виртуальный, невиртуальный, или массив шин) данные к входному порту верхнего уровня, заданному объектом шины (см. Simulink.Bus). В блоке Inport верхнего уровня, Типе данных набора к Bus и задают имя объекта шины. Чтобы задать значения данных для сигналов шины, используйте структуру:

  • Объекты MATLAB® timeseries

  • MATLAB объекты timetable

  • Комбинация timeseries и объектов timetable

Соедините шиной элементы, для которых вы не включаете поле в наземные значения использования структуры. Можно использовать пустую матрицу, чтобы задать, чтобы использовать наземные значения.

Примечание

Когда вы задаете данные timetable, чтобы загрузить, timetable должен содержать данные только для одного сигнала.

Структура timeseries или timetable (или оба) объекты должна совпадать с элементами шины с точки зрения:

  • Иерархия

  • Имя поля структуры, которое должно совпадать с именем элемента шины. (Свойство name объекта timeseries не должно совпадать с именем элемента шины.)

  • Тип данных

  • Размерности

  • Сложность

Порядок полей структуры не должен совпадать с порядком элементов шины.

Можно включать структуру как элемент объекта Dataset. Можно использовать структуру в списке, разделенном запятыми. Можно задать пустую матрицу в списке, разделенном запятыми. Пустая матрица использует наземные значения для сигнала шины.

Например, чтобы загрузить данные для входных портов in1 и in3, и использовать наземные значения для порта in2, вводят следующее во Входной параметр:

in1, [], in3

Примечание

При использовании структуру MATLAB объекты timeseries для корневого блока Inport в модели с несколькими корневыми блоками Inport, все корневые блоки Inport должны использовать MATLAB объекты timetable или timeseries. Преобразуйте любые корневые данные блока Inport, который использует Simulink.TsArray, или Simulink.Timeseries возражает против MATLAB объектам timeseries.

Инициализируйте сигналы шины

Можно инициализировать сигналы шины, включая использование частичной спецификации данных инициализации. Для получения дополнительной информации смотрите, Задают Начальные условия для Сигналов Шины.

Для получения дополнительной информации об импорте массива данных шины к корневому блоку Inport, смотрите Массив Импорта Данных Шин.

Ограничения для того, чтобы импортировать данные шины к вводам верхнего уровня

Данные сигнала, которые можно использовать инструмент Root Inport Mapper, чтобы импортировать и сопоставить с блоком Inport верхнего уровня, могут включать данные шины. Вы не можете использовать тот инструмент, чтобы сопоставить сигналы шины с блоком Enable или Trigger верхнего уровня.

Вы не можете использовать входные порты, чтобы импортировать шины в режимах external mode. Чтобы импортировать данные шины в быстром режиме Accelerator, используйте формат Dataset.

Импортируйте данные шины к Inport Верхнего уровня

Эта модель имеет два блока Inport, соединенные с блоками Осциллографа. Тип данных блока In1 наследован (данные нешины), и тип данных блока In2 задан объектом BusObject шины. Модель имеет обратный вызов, который загружает BusObject и его подшину BusObject1.

Объект шины BusObject имеет два элемента:

  • c

  • s1, который является подшиной, которая имеет два элемента:

    • a

    • b

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

  2. Создайте объект MATLAB timeseries для 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);

    timeseries MATLAB возражает, что вы создаете, должен совпадать с соответствующими элементами шины, как описано в Импортированных Требованиях к данным Шины.

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

    ds = Simulink.SimulationData.Dataset;
    ds = ds.addElement(in1,'in1_signal');
    ds = ds.addElement(in2,'in2_signal');
  5. В Параметрах конфигурации> Импорт/Экспорт> Входное окно редактирования параметра, введите объект Dataset ds.

  6. Моделируйте модель. Блок 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, можно использовать их, чтобы создать структуру объектов timeseries на основе объекта шины. Используйте функцию Simulink.SimulationData.createStructOfTimeseries. Например, если вы задали объекты timeseries ts1, ts2 и ts3, и у вас есть объект MyBusObject шины, можно использовать эту команду, чтобы создать структуру объектов timeseries:

input = Simulink.SimulationData.createStructOfTimeseries(...
'MyBusObject',{ts1,ts2,ts3});

Количество объектов timeseries в массиве ячеек должно совпадать с количеством листовых элементов в объекте шины. Тип данных, размерности и сложность каждого объекта timeseries должны совпадать с теми атрибутами соответствующей вершины объекта шины.

Импортируйте массив данных шин

Чтобы импортировать (загружают) массив данных шин с помощью корневого блока Inport, используют массив структур MATLAB объекты timeseries.

Примечание

Вы не можете использовать Разрешение, Триггер, Из Рабочей области или блока 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 отразить две шины в массиве шин и Вывод, когда невиртуальная шина включена.

Вот элементы массива шин, который включает 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 для данных импорта, устанавливаете Параметры конфигурации> Импорт/Экспорт Данных> Входной параметр к MyBusValue.

Смотрите также

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

Больше о

Была ли эта тема полезной?