В этом примере показано, как преобразовать MATLAB® данные timeseries к Dataset формат. myvdp_timeseries vdp модель с двумя блоками To Workspace, сконфигурированными для simout и данных о регистрации simout1 в формате timeseries MATLAB. Рассмотрите использование процедуры как этот, если у вас есть модели, которые используют блоки To Workspace для данных логов к формату timeseries MATLAB.

Используйте Simulink.SimulationData.Dataset конструктор, чтобы преобразовать данные о timeseries MATLAB в Dataset формат и затем конкатенирует эти два набора данных.
Начиная с vdp модель, добавляют два блока To Workspace к модели как показано.
Установите параметр Save format обоих блоков. Установите Timeseries.
Сохраните модель как myvdp_timeseries.
Симулируйте модель.
Данные логов симуляции с помощью блоков To Workspace.
Доступ к формату логгирования сигнала, logsout.
logsout
logsout =
Simulink.SimulationData.Dataset
Package: Simulink.SimulationData
Characteristics:
Name: 'logsout'
Total Elements: 2
Elements:
1: 'x1'
2: 'x2'
-Use get or getElement to access elements by index or name.
-Use addElement or setElement to add or modify elements.
Methods, SuperclassesПреобразуйте данные timeseries MATLAB от обоих блоков To Workspace до Dataset.
ds = Simulink.SimulationData.Dataset(simout); ds1 = Simulink.SimulationData.Dataset(simout1);
ds является именем переменной первых данных о блоке To Workspace. ds1 является именем переменной вторых данных о блоке To Workspace.
Конкатенация обоих наборов данных в dsfinal. Заметьте что формат соответствий dsfinal тот из logsout.
dsfinal = ds.concat(ds1)
dsfinal =
Simulink.SimulationData.Dataset
Package: Simulink.SimulationData
Characteristics:
Name: 'simout'
Total Elements: 2
Elements:
1: 'x1'
2: 'x2'
-Use get or getElement to access elements by index or name.
-Use addElement or setElement to add or modify elements.
Methods, SuperclassesВ этом примере показано, как преобразовать структуру без данных времени к Dataset формат. myvdp_structure vdp модель с двумя блоками To Workspace, сконфигурированными для simout и данных о регистрации simout1 в формате структуры, как показано.

Если у вас есть модели, которые используют блоки To Workspace для данных логов, чтобы структурировать формат, рассмотреть использование процедуры как этот, чтобы преобразовать их в Dataset формат.
Начиная с vdp модель, добавляют два блока To Workspace к модели как показано.

В параметре Save format обоих блоков выберите Structure.
Включите логгирование сигнала для двух сигналов, собирающихся в два блока To Workspace входить в систему Ds формат.
Сохраните модель как myvdp_structure.
Симулируйте модель.
Данные логов симуляции с помощью блоков To Workspace.
Преобразуйте данные о структуре от обоих блоков To Workspace до Dataset.
ds = Simulink.SimulationData.Dataset(simout); ds1 = Simulink.SimulationData.Dataset(simout1);
simout является именем переменной первых данных о блоке To Workspace. simout1 является именем переменной вторых данных о блоке To Workspace.
С преобразованием структуры без времени или массива, время запускается в t=0 и шаге 1.
Получите значения первого элемента в ds.
ds.get(1).Values.Time
ans =
0
1
2
3
.
.
.
61
62
63Получите временные стоимости первого элемента от логгирования сигнала.
logsout.get(1).Values.Time
ans =
0
0.0001
0.0006
0.0031
.
.
.
19.2802
19.6802
20.0000Наблюдайте несоответствие в метках времени между
Данные вошли в систему структура без времени, когда вы преобразуете в Dataset формат
Данные вошли в систему Dataset формат
Когда вы используете Dataset по умолчанию формат логгирования сигнала, Simulink® сохраняет данные о логгировании в Simulink.SimulationData.Dataset объект. Для получения информации об извлечении данных сигнала от того объекта смотрите страница с описанием.Simulink.SimulationData.Dataset
Simulink.SimulationData.Dataset объект содержит a объект для каждого регистрируемого сигнала.Simulink.SimulationData.Signal
Для сигналов шины, Simulink.SimulationData.Signal объект содержит структуру MATLAB объекты.timeseries
Simulink.SimulationData.Dataset класс предоставляет два метода для доступа к данным о регистрации сигнала и его связанной информации.
Имя | Описание |
|---|---|
Можно также использовать | Получите элемент или набор элементов от набора данных, на основе индекса, имени или блока path. |
Получите число элементов в наборе данных. |
Например, доступа к регистрации сигнала данных, которые используют Dataset формат, смотрите .Simulink.SimulationData.Dataset
Данные о регистрации сигнала для массива шин используют Dataset формат логгирования сигнала.
Общий подход, чтобы получить доступ к данным для определенного сигнала в массиве шин:
Используйте Simulink.SimulationData.Dataset.get (или getElement) метод, чтобы получить доступ к определенному сигналу в записанных данных (по умолчанию, logsout переменная).
Чтобы получить значения, индексируйте в массиве шин.
Индексируйте снова, чтобы получить данные для определенной шины.
Например, чтобы получить данные о регистрации сигнала для блока Constant6 в ex_log_nested_aob модель, для topBus сигнализируйте, что питает блок Terminator:
logsout.getElement('topBus').Values.a(2,2).firstConst.dataВот дополнительные примеры доступа к массиву сигнала шин регистрация данных. Для другого примера, который показывает, как регистрировать массив данных о шинах, смотрите sldemo_mdlref_bus.
Для модели с несколькими сигналами, которые имеют то же имя сигнала, данные о регистрации сигнала включают Simulink.SimulationData.Signal объект для каждого сигнала, который имеет двойное название.
Чтобы получить доступ к определенному сигналу, который имеет двойное название, используйте один из этих подходов:
Чтобы найти данные для определенного сигнала, визуально смотрите отображенный вывод Simulink.SimulationData.Signal объекты.
Используйте Simulink.SimulationData.Dataset.getElement метод, задавая блок path для исходного блока сигнала.
Чтобы выполнить итерации через сигналы с дублирующимся именем сигнала, создайте скрипт с помощью Simulink.SimulationData.Dataset.getElement метод с аргументом индекса.
Используйте диалоговое окно Signal Properties, чтобы задать другое имя. Рассмотрите использование этого подхода, когда сигналы с двойным названием не появятся в нескольких экземплярах модели, на которую ссылаются, в режиме normal mode.
В модели щелкните правой кнопкой по сигналу.
В контекстном меню выберите Properties.
В диалоговом окне Signal Properties, набор Logging name к Custom и задайте другое имя, чем имя сигнала.
Симулируйте модель и используйте Simulink.SimulationData.Dataset.getElement метод с аргументом имени.
Совет
В качестве альтернативы можно использовать Селектор Логгирования Сигнала, чтобы получить доступ к определенному сигналу. Для получения дополнительной информации смотрите Сигнал Переопределения Регистрировать Настройки с Селектором Логгирования Сигнала.
Обрабатывать символы новой строки в логгировании имен в данных о регистрации сигнала, которые используют Dataset формат, используйте sprintf команда в getElement вызвать. Например:
topOut.getElement(sprintf('INCREMENT\nBUS'))Simulink.SimulationData.Dataset