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

Используйте Simulink.SimulationData.Dataset конструктор для преобразования данных временных рядов MATLAB в Dataset форматировать и затем объединять два набора данных.
Начиная с vdp добавьте в модель два блока «В рабочее пространство», как показано на рисунке.
Задайте параметр «Сохранить формат» для обоих блоков. Набор Timeseries.
Сохранить модель как myvdp_timeseries.
Моделирование модели.
Моделирование регистрирует данные с помощью блоков «В рабочую область».
Доступ к формату регистрации сигналов, 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Преобразование данных временных рядов MATLAB из обоих блоков В рабочую область в Dataset.
ds = Simulink.SimulationData.Dataset(simout); ds1 = Simulink.SimulationData.Dataset(simout1);
ds - имя переменной первого блока «В рабочую область». ds1 - имя переменной второго блока «В рабочую область».
Объедините оба набора данных в 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 добавьте в модель два блока «В рабочее пространство», как показано на рисунке.

В параметре «Сохранить формат» обоих блоков выберите Structure.
Включение регистрации сигналов для двух сигналов, поступающих в два блока To Workspace для входа в систему Ds формат.
Сохранить модель как myvdp_structure.
Моделирование модели.
Моделирование регистрирует данные с помощью блоков «В рабочую область».
Преобразование данных структуры из обоих блоков В рабочую область в Dataset.
ds = Simulink.SimulationData.Dataset(simout); ds1 = Simulink.SimulationData.Dataset(simout1);
simout - имя переменной первого блока «В рабочую область». simout1 - имя переменной второго блока «В рабочую область».
При преобразовании структуры без времени или массива время начинается с 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 объект содержит объект для каждого зарегистрированного сигнала.Simulink.SimulationData.Signal
Для сигналов шины, Simulink.SimulationData.Signal объект содержит структуру MATLAB объекты.timeseries
Simulink.SimulationData.Dataset класс предоставляет два метода доступа к данным регистрации сигналов и связанной с ними информации.
Имя | Описание |
|---|---|
Вы также можете использовать | Получение элемента или коллекции элементов из набора данных на основе индекса, имени или пути блока. |
Получение количества элементов в наборе данных. |
Например, для доступа к данным регистрации сигналов используется Dataset формат, см. .Simulink.SimulationData.Dataset
Данные регистрации сигналов для массива шин Dataset формат регистрации сигналов.
Общий подход к доступу к данным для конкретного сигнала в массиве шин заключается в следующем:
Использовать Simulink.SimulationData.Dataset.get (или getElement) для доступа к определенному сигналу в записанных данных (по умолчанию logsout переменная).
Чтобы получить значения, выполните индексирование в массиве шин.
Снова выполните индексирование, чтобы получить данные для определенной шины.
Например, для получения данных регистрации сигнала для блока Constant6 в ex_log_nested_aob модель, для topBus сигнал, который подает блок терминатора:
logsout.getElement('topBus').Values.a(2,2).firstConst.dataНиже приведены дополнительные примеры доступа к массиву данных регистрации сигналов шин. Другой пример регистрации массива данных шин см. в разделе sldemo_mdlref_bus.
Для модели с несколькими сигналами, имеющими одинаковое имя сигнала, данные регистрации сигнала включают в себя Simulink.SimulationData.Signal для каждого сигнала, имеющего повторяющееся имя.
Для доступа к определенному сигналу, имеющему повторяющееся имя, используйте один из следующих подходов:
Чтобы найти данные для конкретного сигнала, визуально проверьте отображаемый выход Simulink.SimulationData.Signal объекты.
Используйте Simulink.SimulationData.Dataset.getElement способ, определяющий путь блока для блока источника сигнала.
Чтобы выполнить итерацию сигналов с повторяющимся именем сигнала, создайте сценарий с помощью Simulink.SimulationData.Dataset.getElement с аргументом индекса.
Диалоговое окно «Свойства сигнала» используется для указания другого имени. Рекомендуется использовать этот подход, когда сигналы с повторяющимся именем не появляются в нескольких экземплярах ссылочной модели в обычном режиме.
В модели щелкните сигнал правой кнопкой мыши.
В контекстном меню выберите «Свойства».
В диалоговом окне Signal Properties установите для параметра Logging name значение Custom и укажите имя, отличное от имени сигнала.
Моделирование модели и использование Simulink.SimulationData.Dataset.getElement с аргументом имени.
Совет
Кроме того, для доступа к определенному сигналу можно использовать селектор регистрации сигналов. Дополнительные сведения см. в разделе Переопределение параметров регистрации сигналов с помощью селектора регистрации сигналов.
Обработка новых символов в именах регистрации в данных регистрации сигналов Dataset формат, используйте sprintf в пределах getElement звоните. Например:
topOut.getElement(sprintf('INCREMENT\nBUS'))Simulink.SimulationData.Dataset