Simulink. SimulationData.createStructOfTimeseries

Создайте структуру с вершинами объекта MATLAB timeseries

Синтаксис

struct_of_ts = Simulink.SimulationData.createStructOfTimeseries(tsArrayObject)
struct_of_ts = Simulink.SimulationData.createStructOfTimeseries(busObj,structOfTimeseries)
struct_of_ts = Simulink.SimulationData.createStructOfTimeseries(busObj,cellOfTimeseries)
struct_of_ts = Simulink.SimulationData.createStructOfTimeseries(busObj,cellOfTimeseries,dims)

Описание

пример

struct_of_ts = Simulink.SimulationData.createStructOfTimeseries(tsArrayObject) создает структуру объектов MATLAB® timeseries от объекта Simulink.TsArray. Используйте этот синтаксис для данных регистрации сигнала для модели, моделируемой в релизе ранее, чем R2016a, который использовал сигнал ModelDataLogs журналирование формата.

пример

struct_of_ts = Simulink.SimulationData.createStructOfTimeseries(busObj,structOfTimeseries) создает структуру, которая совпадает с атрибутами объекта busObj шины и устанавливает значения вершин структуры с помощью структуры MATLAB, timeseries возражает structOfTimeseries. Используйте этот синтаксис при использовании частичной структуры как основание для создания полной структуры, чтобы загрузить в модель.

struct_of_ts = Simulink.SimulationData.createStructOfTimeseries(busObj,cellOfTimeseries) создает структуру, которая совпадает с атрибутами объекта busObj шины и устанавливает значения вершин структуры с помощью массива ячеек MATLAB, timeseries возражает cellOfTimeseries.

пример

struct_of_ts = Simulink.SimulationData.createStructOfTimeseries(busObj,cellOfTimeseries,dims) создает структуру с размерностями dims. Используйте этот синтаксис, чтобы создать структуру, чтобы загрузить в массив шин.

Примеры

свернуть все

Предположим, что у вас были данные регистрации сигнала от моделирования модели в релизе ранее, чем R2016a, с помощью формата ModelDataLogs. Регистрируемым выводом является logsout.

Просмотрите записанные данные.

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

  bus1                      2      TsArray

Преобразуйте записанные данные в структуру MATLAB объекты timeseries.

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

    const1-sig: [1x1 timeseries]
    const2_sig: [1x1 timeseries]

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

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

Откройте модель ex_logstructTimeSeries и запустите моделирование, чтобы создать структуру, чтобы загрузить с журналированием сигнала.

open_system('ex_log_structTimeSeries')
sim('ex_log_structTimeSeries')

Просмотрите моделирование Вывод

Просмотрите записанные данные.

ex_log_structTimeSeries_logsout
ex_log_structTimeSeries_logsout = 

Simulink.SimulationData.Dataset 'ex_log_structTimeSeries_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.

Открытая модель

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

open_system('ex_load_structTimeSeries_Bus')

Используйте Simulink.SimulationData.createStructOfTimeseries, чтобы создать входной параметр моделирования

Откройте Параметры конфигурации модели ex_load_structTimeSeries_Bus и просмотрите спецификацию для Входного параметра на панели Импорта/Экспорта Данных. Модель ex_load_structTimeSeries_Bus использует переменную, ex_load_struct_TimeSeries_inputBus как входной параметр. Используйте Simulink.SimulationData.createStructOfTimeseries, чтобы создать ex_load_structTimeSeries_inputBus в базовом рабочем пространстве от данных в |ex_log_structTimeSeries_logsout.

ex_load_structTimeSeries_inputBus = ...
Simulink.SimulationData.createStructOfTimeseries...
('bus', ex_log_structTimeSeries_logsout.get(2).Values)
ex_load_structTimeSeries_inputBus = 

  struct with fields:

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

Создайте структуру MATLAB, которому timeseries возражает, чтобы загрузить в массив шин. Задайте размерности созданной структуры и массив ячеек MATLAB объекты timeseries.

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

open_system(docpath(fullfile(docroot,'toolbox','simulink',...
'examples','ex_log_structTimeSeries')))
sim('ex_log_structTimeSeries')

Моделируемая модель ex_log_structTimeseries выглядит так:

Просмотрите регистрируемые данные сигнала.

ex_log_structTimeSeries_logsout
Simulink.SimulationData.Dataset 'ex_log_structTimeSeries_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.

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

open_system(docpath(fullfile(docroot,'toolbox','simulink',...
'examples','ex_load_structTimeSeries_AoB')))

Параметры конфигурации модели ex_load_structTimeSeries_AoB> Импорт/Экспорт Данных> Списки входных параметров переменная ex_load_structTimeSeries_inputAoB. Однако вы еще не задали ту переменную в MATLAB workspace. Используйте Simulink.SimulationData.createStructOfTimeseries, чтобы задать ту переменную.

ex_load_structTimeSeries_inputAoB = ...
Simulink.SimulationData.createStructOfTimeseries...
('bus',{ex_log_structTimeSeries_logsout.get(1).Values.a,...
ex_log_structTimeSeries_logsout.get(1).Values.b,...
ex_log_structTimeSeries_logsout.get(2).Values.c,...
ex_log_structTimeSeries_logsout.get(2).Values.d},[2, 1])
ex_load_structTimeSeries_inputAoB = 

2x1 struct array with fields:
    a
    b

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

свернуть все

Объект Simulink.TsArray преобразовать в структуру MATLAB объекты timeseries

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

Объект шины для создания структуры MATLAB объекты timeseries, заданные как имя объекта Simulink.Bus.

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

Объект Structure для значений, чтобы заменить наземные значения, заданные как структура MATLAB объекты timeseries. Структура должна иметь ту же иерархию как объект шины. Однако имена полей в структуре не должны совпадать с именами соответствующих узлов объекта шины.

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

Объект массива ячеек для значений, чтобы заменить наземные значения, заданные как массив ячеек MATLAB объекты timeseries. Если вы задаете массив ячеек MATLAB объекты timeseries, и вы задаете аргумент dims, то длина массива ячеек должна быть равна результату времен Simulink.BusObject.getNumLeafBusElements продукт заданных измерений.

Типы данных: ячейка

Размерности структуры, которую эта функция создает, заданный как вектор. Длина массива ячеек равна результату времен Simulink.BusObject.getNumLeafBusElements продукт заданных измерений.

Если вы задаете размерность в форме [n], то Simulink® интерпретирует размерность, чтобы быть 1xn.

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

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

свернуть все

MATLAB объекты timeseries, возвращенные как структура. Структура имеет ту же иерархию и приписывает как объект Simulink.TsArray или объект Simulink.Bus, который вы задаете.

Размерности structOfTimeseries зависят от входных параметров:

  • Если вы задаете tsArrayObject, то размерность равняется 1.

  • Если вы задаете busObj и структуру MATLAB timeseries, то размерность совпадает с размерностями заданной структуры.

  • Если вы задаете только busObj и массив ячеек MATLAB timeseries, то размерность равняется 1.

  • Если вы задаете аргумент busObj, массив ячеек MATLAB timeseries и аргумент dims, то размерности совпадают с размерностями dims.

Введенный в R2013a

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