exponenta event banner

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

Данные шины можно импортировать в порты ввода верхнего уровня, вручную указав данные в параметре конфигурации «Ввод» или используя инструмент «Сопоставление корневого ввода». Сведения об импорте данных шины с помощью инструмента «Сопоставление корневых входов» см. в разделе Импорт данных шины.

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

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

  • MATLAB ®timeseries объекты

  • MATLAB timetable объекты

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

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

Примечание

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

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

  • Иерархия

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

  • Тип данных

  • Размеры

  • Сложность

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

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

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

in1, [], in3

Инициализация сигналов шины

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

Дополнительные сведения об импорте массива данных шины в корневой блок Inport см. в разделе Импорт массива данных шин.

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

Данные сигнала, которые можно использовать для импорта и сопоставления с блоком ввода верхнего уровня с помощью средства отображения корневого ввода, могут включать данные шины. Этот инструмент нельзя использовать для отображения сигналов шины на блок включения или запуска верхнего уровня.

Порты ввода нельзя использовать для импорта шин во внешних режимах. Для импорта данных шины в режиме быстрого ускорения используйте Dataset формат.

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

Эта модель имеет два блока Inport, связанных с блоками Scope. Тип данных 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);

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

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

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

  6. Моделирование модели. Блок «Область», подключенный к 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 объекты.

Примечание

Для импорта данных для массива шин нельзя использовать блоки «Включить», «Триггер», «Из рабочей области» или «Из файла».

Полная спецификация данных

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

См. также

Связанные темы