Загрузите данные о шине к Корневому Уровню Input port

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

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

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);

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

  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, показывает импортированные данные о шине.

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

Определить количество 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 объекты.

Примечание

Вы не можете использовать 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.

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

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

Больше о