Simulink.Bus.createObject

Создайте Simulink.Bus объекты от блоков или структур MATLAB

Описание

пример

busInfo = Simulink.Bus.createObject(model,blocks) создает Simulink.Bus объекты для заданных блоков и возвращают информацию о созданном Bus объекты.

Если вы задаете блок, который соответствует иерархии шины, эта функция создает Bus объекты для каждой шины в иерархии.

Если модель использует словарь данных, Bus объекты создаются в словаре данных. В противном случае они создаются в базовом рабочем пространстве.

пример

busInfo = Simulink.Bus.createObject(struct) создает Bus объекты от структуры, которая может содержать MATLAB® timeseries, MATLAB timetable, и matlab.io.datastore.SimulationDatastore объекты или числовая структура.

Если вы задаете структуру с иерархией, эта функция создает Bus объекты для каждой структуры в иерархии.

Bus объекты создаются в базовом рабочем пространстве.

пример

busInfo = Simulink.Bus.createObject(___,file) сохраняет Bus объекты в функции, которая задает свойства объектов в массиве ячеек массивов ячеек, затем создают Bus объекты путем вызова Simulink.Bus.cellToObject.

Задайте любую из комбинаций входных аргументов в предыдущих синтаксисах, сопровождаемых file аргумент.

пример

busInfo = Simulink.Bus.createObject(___,file,format) сохраняет Bus объекты в функции с заданным форматом. Функция может задать свойства объектов с помощью массивов ячеек или массивов.

busInfo = Simulink.Bus.createObject(struct,file,format,scope) создает Bus объекты в словаре данных заданы scope.

Примеры

свернуть все

Откройте модель в качестве примера.

open_system('BusObjectCreationModel')

Создайте Bus объект, который соответствует шине, созданной блоком Bus Creator.

busInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    'BusObjectCreationModel/Bus Creator');

Создайте Bus объекты от двух блоков Создателя Шины и сохраняют Bus определение объекта в функции.

Откройте модель в качестве примера.

open_system('BusObjectCreationModel');

Присвойте указатель блока для блока Bus Creator к переменной с getSimulinkBlockHandle функция.

bc = getSimulinkBlockHandle('BusObjectCreationModel/Bus Creator');

В качестве альтернативы можно выбрать блок Bus Creator в модели, затем используют gcbh функция, чтобы получить ее указатель блока.

Присвойте указатель блока для блока Bus Creator1 к переменной.

bc1 = getSimulinkBlockHandle('BusObjectCreationModel/Bus Creator1');

Создать Bus возразите, задайте переменные указателя блока в векторе. Сохранить Bus определение объекта, также задайте имя файла.

busInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    [bc bc1], 'BusObjectFunction');

Поскольку эти блоки Создателя Шины создают иерархию шины, указывая, что только блок Bus Creator1 создает оба Bus объекты в Рабочей области и в функции.

Сравните BusObjectFunction против функции, созданной этой командой.

topBusInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    bc1, 'BusObjectFunctionFromHierarchy');

Для функции, которая отформатирована, чтобы быть легче читать, задайте функциональный формат как object.

topBusInfo1 = Simulink.Bus.createObject('BusObjectCreationModel',...
    bc1, 'BusObjectFunctionFormatted','object');

Когда вы создаете невиртуальную шину с блоком Constant, необходимо задать структуру MATLAB для Постоянного значения и Simulink.Bus возразите как тип Выходных данных.

В данном примере создайте структуру, которая содержит другие структуры.

bus_struct.A.A1 = 0;
bus_struct.A.A2 = [0 + 0i;0 + 0i;0 + 0i;0 + 0i;0 + 0i];
bus_struct.B = 5;
bus_struct.C.C1 = 0;
bus_struct.C.C2.A1 = 0;
bus_struct.C.C2.A2 = [0 + 0i;0 + 0i;0 + 0i;0 + 0i;0 + 0i];

Создайте Bus объекты, которые соответствуют структуре.

busInfo = Simulink.Bus.createObject(bus_struct);

Функция создает четыре Bus объекты. Bus возразите названному slBus1 соответствует структуре верхнего уровня и использует Bus по умолчанию имя объекта. Bus объекты под названием AC, и C2 соответствуйте вложенным структурам.

Просмотреть Bus объекты, откройте Редактор Шины.

buseditor

Входные параметры

свернуть все

Имя модели или указатель в виде вектора символов.

Модель, которую вы задаете, должна скомпилировать успешно.

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

Эта функция может создать Bus объекты от этих блоков:

  • Блоки Bus Creator

  • Подсистема блоки Inport

  • Подсистема блоки Outport

Если вы задаете блок, сопоставленный с иерархией шины, функция также создает Bus объекты для всех вложенных шин в иерархии.

Структура объектов или числовая структура в виде структуры, которая может содержать MATLAB timeseries, MATLAB timetable, и matlab.io.datastore.SimulationDatastore объекты или числовая структура.

Имя функции, сгенерированной в виде вектора символов. Имя файла должно быть уникальным.

Формат функции, сгенерированной в виде любого 'cell' или 'object'. 'cell' формат более компактен, но 'object' формат легче считать.

'cell' формат сохраняет Bus определения объектов в массиве ячеек массивов ячеек и создают Bus объекты путем вызова Simulink.Bus.cellToObject. Каждый зависимый массив ячеек представляет Bus возразите и содержит эти свойства:

  1. Соедините шиной имя

  2. Заголовочный файл

  3. Описание

  4. Осциллограф данных

  5. Выравнивание

  6. Сохраните размерности элемента

  7. Элементы

Поле элементов является массивом ячеек, который содержит эту информацию для каждого Simulink.BusElement объекты, что Bus ссылки на объект:

  1. Имя элемента

  2. Размерности

  3. Тип данных

  4. Шаг расчета — массив ячеек содержит это поле, когда шаг расчета не наследован. Ненаследованный шаг расчета вызывает ошибку во время компиляции модели. Для получения дополнительной информации смотрите, что Simulink.BusElement object s больше не поддерживает свойство SampleTime.

  5. Сложность

  6. Режим Dimensions

  7. Минимум

  8. Максимум

  9. Модули

  10. Описание

'object' формат сохраняет Bus определения объектов как массивы. Функция использует индексацию массива, чтобы получить доступ к элементам массива и записи через точку, чтобы присвоить значения свойств.

Словарь данных в виде Simulink.data.Dictionary объект. Прежде чем вы будете использовать этот аргумент, будете представлять словарь Simulink.data.Dictionary объект при помощи, например, Simulink.data.dictionary.create или Simulink.data.dictionary.open функция.

Если scope пусто, функция использует базовое рабочее пространство MATLAB в качестве источника Bus объекты.

Выходные аргументы

свернуть все

Соедините шиной информацию об объекте, возвращенную как массив структур.

Когда вы задаете blocks, каждый элемент busInfo массив структур соответствует одному блоку и содержит эти поля:

  • block — Указатель блока

  • busName — Имя Bus объект сопоставлен с блоком

Когда вы используете, задают struct, busInfo структура содержит эти поля:

  • block — Пустая матрица ([])

  • busName — Имя Bus объект, который соответствует структуре

Вопросы совместимости

развернуть все

Ошибки, запускающиеся в R2020b

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте