Simulink.SimulationData.createStructOfTimeseries

Создайте структуру timeseries данные, чтобы загрузить как вход симуляции для шины

Описание

пример

tsStruct = Simulink.SimulationData.createStructOfTimeseries(busObj,tsStructIn) создает структуру с атрибутами, которые совпадают с заданными Simulink.Bus объект, busObj, и данные заданы структурой timeseries объекты, tsStructIn.

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

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

пример

tsStruct = Simulink.SimulationData.createStructOfTimeseries(busObj,tsCellArray) создает структуру timeseries объекты с атрибутами, которые совпадают с заданными Simulink.Bus объект, busObj, и данные заданы массивом ячеек timeseries объекты, tsCellArray.

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

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

пример

tsStructArray = Simulink.SimulationData.createStructOfTimeseries(busObj,tsCellArray,dims) создает массив timeseries структуры, где атрибуты каждой структуры совпадают с заданными Simulink.Bus объект, busObj с данными, заданными массивом ячеек timeseries объекты, tsCellArray. Вход dims задает размерности массива.

пример

tsStruct = Simulink.SimulationData.createStructOfTimeseries(tsArray) создает структуру timeseries объекты из данных о шине хранятся в Simulink.TsArray объект, tsArray. В версиях перед R2016a логгирование сигнала создает Simulink.TsArray объекты хранить регистрируемые данные о шине. Используйте этот синтаксис, когда это необходимо, чтобы использовать данные о шине, вошел в систему релиз перед R2016a с помощью ModelDataLogs формат как симуляция вводится.

Примеры

свернуть все

Можно использовать Simulink.Simulationdata.createStructOfTimeseries функция, чтобы создать структуры timeseries объекты использовать в качестве входа симуляции для сигналов шины. Этот пример показывает вам, как создать структуру timeseries, чтобы загрузить в модель с помощью данных о timeseries, регистрируемых от различной симуляции.

Создайте структуру Timeseries

Откройте ex_log_structtimeseries модель.

open_system('ex_log_structtimeseries')

Модель использует блоки Константа и блоки Создателя Шины, чтобы создать две шины, bus1 и bus2, с сигналами aBC, и d. Модель использует логгирование сигнала, чтобы регистрировать данные о шине. Создайте данные о шине путем симуляции модели.

out = sim('ex_log_structtimeseries');

Просмотрите данные в переменной logsout логгирования. Логгирование сигнала создает Simulink.SimulationData.Dataset объект с Simulink.SimulationData.Signal объекты как элементы.

logsout = out.logsout
logsout = 

Simulink.SimulationData.Dataset 'logsout' with 2 elements

                         Name  BlockPath                            
                         ____  ____________________________________ 
    1  [1x1 Signal]      bus1  ex_log_structtimeseries/Bus Creator 
    2  [1x1 Signal]      bus2  ex_log_structtimeseries/Bus Creator1

  - Use braces { } to access, modify, or add elements using index.

Можно использовать get функция, чтобы выбрать Simulink.SimulationData.Signal объект для bus2. Данные о шине находятся в Values свойство Simulink.SimulationData.Signal объект. Данные, представляющие bus2 зарегистрирован структура, содержащая timeseries объекты под названием c и d.

logsout.get(2).Values
ans = 

  struct with fields:

    c: [1x1 timeseries]
    d: [1x1 timeseries]

Загрузка настройки модели

Откройте ex_load_structtimeseries модель, которая использует регистрируемые данные моделирования, как введено.

open_system('ex_load_structtimeseries')

Модель использует InBus Блок Inport, чтобы загрузить данные о входной шине. Блок Селектора Шины выбирает сигналы из шины, чтобы отобразиться демонстрирующийся блоки.

Дважды кликните InBus блокируйте и проверяйте его Тип данных на вкладке Signal Attributes диалогового окна. Тип данных задан Simulink.Bus возразите названному bus.

Закройте диалоговое окно и откройте Model Explorer. На вкладке Callbacks вы видите, что модель использует свой PreLoadFcn задавать Simulink.Bus объект, который задает тип данных для блока Inport.

Откройте Параметры конфигурации и просмотрите спецификацию для Входного параметра на панели Импорта/Экспорта Данных. Модель использует переменную inputBus для его Входа.

Создайте вход симуляции из структуры timeseries Данные

Загружать данные, регистрируемые для bus1, только необходимо присвоить данные о структуре Входной переменной для модели.

inputBus = logsout.get(1).Values
inputBus = 

  struct with fields:

    a: [1x1 timeseries]
    b: [1x1 timeseries]

Когда вы симулируете модель, блоки Отображения показывают значениям 1 и 2 зарегистрированный bus1 и загруженный в модель.

Загружать данные, регистрируемые для bus2, необходимо использовать Simulink.Bus объект, который задает тип данных блока Inport и Simulink.SimulationData.createStructOfTimeseries создать структуру timeseries с именами, заданными Simulink.Bus объект.

inputBus = Simulink.SimulationData.createStructOfTimeseries('bus',...
    logsout.get(2).Values)
inputBus = 

  struct with fields:

    a: [1x1 timeseries]
    b: [1x1 timeseries]

Когда вы симулируете модель, блоки Отображения показывают значениям 3 и 4 зарегистрированный bus2 и загруженный в модель.

В этом примере показано, как использовать Simulink.SimulationData.createStructOfTimeseries функция, чтобы создать частично заданный вход симуляции для шины. Этот пример данные логов от ex_log_structtimeseries и затем загрузки те данные в ex_load_structtimeseries.

Создайте timeseries Данные

Во-первых, откройте и симулируйте ex_log_structtimeseries модель. Модель регистрирует два сигнала шины, bus1 и bus2, созданное использование блоки Константа и блоки Создателя Шины. Доступ к logsout Dataset в Simulink.SimulationOutput объект, out.

open_system('ex_log_structtimeseries')
out = sim('ex_log_structtimeseries');

logsout = out.logsout;

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

Частично задайте данные о шине со структурой timeseries Данные

Откройте модель ex_load_structtimeseries это загрузит некоторые данные, вы вошли в систему предыдущий раздел.

open_system('ex_load_structtimeseries')

Используйте get функционируйте, чтобы получить доступ к структуре timeseries данные регистрируются для bus1.

bus1 = logsout.get(1).Values;

Затем замените b данные с [].

bus1.b = [];

ex_load_structtimeseries модель использует переменную inputBus как его Вход. Simulink.Bus объект, bus, это задает тип данных для блока Inport, задан в PreLoadFcn коллбэк для ex_load_structtimeseries модель. Поскольку сигнал называет в bus1 совпадайте с Simulink.Bus объектная спецификация для блока Inport в ex_load_structtimeseries модель, можно использовать регистрируемую структуру без модификации. Загружать данные для bus1, присвойте bus1 к переменной inputBus.

inputBus = bus1;

Симулируйте модель. Блоки Отображения показывают регистрируемому значению 1 для a и 0 для b. Симуляция использует наземные значения, когда вы не задаете данные для сигнала.

loadOut = sim('ex_load_structtimeseries');

Теперь загрузите данные, регистрируемые для bus2. Сигнал называет в bus2 не совпадайте с Simulink.Bus объектная спецификация для блока Inport в ex_load_structtimeseries модель. Измените данные в структуре, чтобы частично задать входные данные для шины. Затем используйте Simulink.SimulationData.createStructOfTimeseries функция, чтобы изменить названия в структуре, чтобы совпадать со спецификацией шины.

bus2 = logsout.get(2).Values;
bus2.d = [];
inputBus = bus2;
inputBus = Simulink.SimulationData.createStructOfTimeseries('bus',inputBus);

Симулируйте модель. Блоки Отображения показывают регистрируемому значению 3 для a и 0 для b.

loadOut = sim('ex_load_structtimeseries');

Частично задайте данные о шине с массивом ячеек данных о timeseries

Когда у вас есть timeseries данные, можно использовать Simulink.SimulationData.createStructOfTimeseries частично задавать вход симуляции для шины с помощью массива ячеек timeseries данные. Загрузите timeseries данные для d сигнала в bus2 как часть частичной спецификации шины для блока Inport в ex_load_structtimeseries модель. PreLoadFcn коллбэк для ex_load_structtimeseries модель задает Simulink.Bus объект, bus, это задает тип данных для блока Inport.

d = logsout.get(2).Values.d;

inputBus = Simulink.SimulationData.createStructOfTimeseries('bus',...
    {d,[]});

Симулируйте модель. Блок Display для a сигнала в ex_load_structtimeseries модель показывает, что данные вошли в систему d сигнала от ex_log_structtimeseries модель. Блок Display для b сигнала показывает 0.

loadOut = sim('ex_load_structtimeseries');

В этом примере показано, как использовать Simulink.SimulationData.createStructOfTimeseries функция, чтобы сгенерировать вход симуляции для массива шин. Вы создаете timeseries данные путем симуляции одной модели. Затем вы создаете входную структуру с помощью записанных данных, чтобы загрузить в массив шин в другой модели.

Создайте timeseries Данные

Чтобы запуститься, откройте ex_log_structtimeseries модель.

open_system('ex_log_structtimeseries')

Модель создает две шины, bus1 и bus2, использование блоков Константа и блоков Создателя Шины. Сигналы называют aBC, и d. Создайте регистрируемые данные о шине путем симуляции модели.

out = sim('ex_log_structtimeseries');

Выход out содержит Simulink.SimulationData.Dataset объект, logsout, с записанными данными. Можно получить доступ к bus1 и bus2 сигналы с помощью get функция. Данные для каждого сигнала находятся в Simulink.SimulationData.Signal объект Values параметр. Можно получить доступ к элементам шины с помощью точки, сопровождаемой именем сигнала. bus1 первый сигнал в Dataset возразите и содержит, сигнализирует о a и b. bus2 содержит сигнализирует о c и d.

logsout = out.logsout;

a = logsout.get(1).Values.a;
b = logsout.get(1).Values.b;
c = logsout.get(2).Values.c;
d = logsout.get(2).Values.d;

Загрузка настройки модели

Откройте модель ex_structtimeseries_aob, который использует массив шин, как введено.

open_system('ex_load_structtimeseries_aob')

Модель использует InAoB Блок Inport, чтобы загрузить вход симуляции. Селекторные блоки выбирают шину из массива шин и сигналы выбора блоков Селектора Шины показать в блоках Отображения.

Дважды кликните InAoB блокируйтесь и посмотрите на панель Атрибутов Сигнала диалогового окна. Тип данных для блока собирается Соединить шиной с типом, заданным Simulink.Bus объект, bus. Параметр размерностей Порта устанавливается на [2 1].

Вы видите определение для Simulink.Bus объект, bus, во вкладке Callbacks в Model Explorer. Эта модель использует PreLoadFcn задавать объект шины.

Откройте Параметры конфигурации Модели и посмотрите на Входной параметр. Модель использует переменную inputAoB как введено.

Создайте массив входа симуляции шин

Используйте Simulink.SimulationData.createStructOfTimeseries и данные вошли в систему первый раздел, чтобы создать структуру, чтобы загрузить как вход симуляции для массива шин. Задайте размерности как [2 1] совпадать с размерностями InAoB блок.

inputAoB = Simulink.SimulationData.createStructOfTimeseries('bus',...
    {a,b,c,d},[2 1]);

Когда вы симулируете модель, блоки Отображения показывают данные для сигналов aBC, и d регистрируемый от ex_log_structtimeseries модель. Массив шин содержит две шины с сигналами a и b. Simulink.SimulationData.createStructOfTimeseries переименованные сигналы c и d совпадать с Simulink.Bus спецификация используется массивом шин.

inputAoB(2)
ans = 

  struct with fields:

    a: [1x1 timeseries]
    b: [1x1 timeseries]

Симулируйте модель. Блоки отображения показывают регистрируемые значения.

aob_out = sim('ex_load_structtimeseries_aob');

В релизах перед R2016a, когда вы регистрируете данные моделирования с помощью ModelDataLogs формат, данные о шине хранятся как Simulink.TSArray объект. Вы не можете данные логов с помощью ModelDataLogs формат с помощью релиза после R2016a. В этом примере, записанных данных, logsout, был зарегистрирован ModelDataLogs формат с помощью релиза перед R2016a. Переменная logsout содержит данные для одной шины, bus1.

logsout
logsout =
 
Simulink.ModelDataLogs (log_modeldatalogs):
  Name                   Elements  Simulink Class

  bus1                      2      TsArray

Чтобы загрузить записанные данные как вход симуляции для шины, создайте структуру timeseries объекты из данных в bus1.

struct_of_ts = ...
Simulink.SimulationData.createStructOfTimeseries(logsout.bus1)
struct_of_ts = 

    const1_sig: [1x1 timeseries]
    const2_sig: [1x1 timeseries]

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

свернуть все

Имя Simulink.Bus объект, который задает атрибуты для данных в структуре output timeseries объекты. Когда это необходимо, загружать структуру timeseries объекты как вход симуляции для шины, busObj шина, которая задает тип данных для блока Inport корневого уровня.

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

Пример: 'MyInputBus'

Структура timeseries данные для использования в создании структуры output timeseries объекты согласно Simulink.Bus объект. Структура должна иметь ту же иерархию как Simulink.Bus объект.

Чтобы частично задать данные для шины, используйте [] вместо элемента шины вы хотите использовать наземные значения.

Массив ячеек timeseries объекты, задающие данные для структуры output timeseries объекты.

Чтобы частично задать данные для шины, используйте [] вместо элемента шины вы хотите использовать наземные значения.

Simulink.SimulationData.createStructOfTimeseries функционируйте сопоставляет timeseries элементы массива ячеек к иерархии указаны Simulink.Bus объект с помощью поиска в глубину.

Пример: {ts1,ts2,ts3}

Пример: {ts1,[],ts3}

Зависимости

Когда вы задаете dims аргумент, количество ячеек в массиве ячеек должно совпадать с количеством отдельных элементов сигнала в Simulink.Bus объект, умноженный на продукт заданных измерений.

Размерности для массива timeseries структуры, заданные как вектор.

Когда вы задаете размерности как скаляр, n, функция создает 1- n массив.

Пример: [2,1]

Зависимости

Когда вы задаете dims аргумент, количество ячеек в массиве ячеек должно совпадать с количеством отдельных элементов сигнала в Simulink.Bus объект, умноженный на продукт заданных измерений.

Типы данных: double

Simulink.TsArray объект.

В версиях до R2016a логгирование сигнала создает Simulink.TsArray объекты хранить регистрируемые данные о шине. Используйте этот синтаксис, когда это необходимо, чтобы использовать данные, регистрируемые с помощью ModelDataLogs формат в версии перед R2016a, чтобы создать вход симуляции для шины.

Пример: myTsArrayObj

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

свернуть все

Структура timeseries объекты с атрибутами, заданными Simulink.TsArray или Simulink.Bus входной параметр. Можно загрузить структуру timeseries объекты как симуляция вводятся для шины.

Массив структур timeseries объекты с размерностями, заданными dims входной параметр.

Введенный в R2013a