Можно использовать блоки Scope, To File или To Workspace для экспорта данных моделирования. Каждый из этих блоков имеет параметр формата данных.
Формат данных для основанного на модели экспорта данных моделирования задает, как Simulink® сохраняет экспортированные данные.
Simulink использует различные форматы данных, в зависимости от типа данных, которые вы экспортируете. Для получения дополнительной информации смотрите:
Логгирование сигналов всегда использует Dataset
формат. Можно задать, регистрировать ли данные для отдельных сигналов следующим timeseries
или timetable
объекты.
Чтобы контролировать, как Dataset
сохраняются элементы, устанавливается параметр конфигурации Dataset signal format. Значение по умолчанию является timeseries
. Для получения дополнительной информации смотрите Формат сигнала набора данных.
Параметр Dataset signal format применяется к логгированию сигналов, а также к выводу и состояниям данных, когда вы устанавливаете параметр Format равным Dataset
.
Когда вы логируете данные хранилища данных, Simulink использует Simulink.SimulationData.Dataset
объект.
Для получения дополнительной информации смотрите Доступ к данным регистрации хранилища данных.
Для экспортированного времени, состояний и выходных данных используйте один из следующих форматов:
Набор данных (по умолчанию)
Если установлен флажок Configuration Parameters Data Import/Export > Output >, Simulink регистрирует данные с фиксированной точкой как double. Чтобы логгировать данные с фиксированной точкой, рассмотрите использование одного из следующих подходов:
Логгирование сигнала - Для получения дополнительной информации смотрите Экспорт данных сигнала Используя логгирование сигнала.
В редакторе Simulink выберите один или несколько сигналов.
Нажмите Log Signals.
To File блок
To Workspace блок - В диалоговом окне To Workspace Параметров блоков включите параметр Log fixed-point data as a fi object.
Для получения информации о формате записанных данных о конечном состоянии см. раздел «Информация о состоянии».
По умолчанию время, состояния и выходы регистрируются с помощью Dataset
формат. The Dataset
формат:
Сохраняет записанные данные в timeseries
или timetable
объекты. Можно работать с данными, сохраненными в timeseries
или timetable
объект в MATLAB® без лицензии Simulink.
Поддерживает регистрацию нескольких значений данных для заданного временного шага, который может потребоваться для логгирования данных в For Iterator Subsystem, While Iterator Subsystem и Stateflow®.
Не поддерживает состояния регистрации внутри подсистемы вызова функций или во время быстрых симуляций ускорителя.
Не поддерживает генерацию кода.
Логгирование сигналов всегда использует Dataset
формат. Логгирование состояний и выход данных с помощью Dataset
формат позволяет вам постпроцессировать данные моделирования без записи пользовательского кода для различных типов записанных данных. Когда вы регистрируете состояния и выходы, используя Dataset
формат, данные также автоматически потокует в Данные моделирования Inspector во время моделирования.
Если вы выбираете это Array
Опция Simulink сохраняет состояния и выходы модели в состоянии и в массиве выхода, соответственно.
Матрица состояний имеет имя, заданное в панели Configuration Parameters > Data Import/Export (для примера, xout
). Каждая строка матрицы состояний соответствует временной выборке состояний модели. Каждый столбец соответствует элементу массива состояния. Например, предположим, что ваша модель имеет два непрерывных состояния, каждое из которых является двухэлементным вектором. Затем первые два элемента каждой строки матрицы состояний содержат временную выборку первого вектора состояний. Последние два элемента каждой строки содержат временную выборку второго вектора состояний.
Выходная матрица модели имеет имя, заданное в панели Configuration Parameters > Data Import/Export (для примера, yout
). Каждый столбец соответствует выходному порту модели, а каждая строка - выходам в определенное время.
Примечание
Используйте формат массива, чтобы сохранить выходы модели и состояния, только если записанные данные соответствуют всем этим условиям:
Данные являются всеми скалярами или всеми векторами (или всеми матрицами для состояний)
Данные все реально или все комплексно
Все данные имеют совпадающий тип данных
Данные включают сигналы шины
Если ваши выходы модели и состояния не соответствуют этим условиям, используйте Structure
или Structure with time
выходные форматы (см. «Структура со временем»).
Если вы выбираете этот формат, Simulink сохраняет состояния модели и выходы в структурах, имена которых заданы в панели Configuration Parameters > Data Import/Export. По умолчанию структуры xout
для состояний и yout
для выхода.
Структура, используемая для сохранения выходов, имеет два поля верхнего уровня:
time
Содержит вектор времен симуляции.
signals
Содержит массив подструктур, каждая из которых соответствует выходному порту модели.
Каждая подструктура имеет четыре поля:
values
Содержит выходы для соответствующего выходного порта.
Если выходы скаляры или векторы - values
поле является матрицей, каждая из строк которой представляет выход в момент времени, заданный соответствующим элементом временного вектора.
Если выходами являются матричные (2-D) значения - values
поле является трехмерным массивом размерностей M-на-N-на-T. M-на-N является размерностями сигнала выхода, а T - количеством выхода отсчетов.
Если T = 1 - MATLAB отбрасывает последнюю размерность. Поэтому values
поле является M-на-N матрицей.
dimensions
Определяет размерности выходного сигнала.
label
Задает метку сигнала, подключенного к порту выхода, S-Function блоку или типу состояния (непрерывному или дискретному). Метка DSTATE
или CSTATE
, за исключением меток состояния блоков S-Function. Для S-Function состояния блока меток для дискретных состояний метка является именем состояния (вместо DSTATE
).
blockName
Задает имя соответствующего выходного порта или блока с состояниями.
inReferencedModel
Если на signals
поле записывает окончательное состояние блока, который находится в ссылочной модели, содержит значение 1
. В противном случае значение false (0
).
В следующем примере показан формат структуры с течением времени для нерефинансированной модели.
xout.signals(1)
ans = values: [296206x1 double] dimensions: 1 label: 'CSTATE' blockName: 'vdp/x1' inReferencedModel: 0
Структура, используемая для сохранения состояний, имеет аналогичную организацию. Структура состояний имеет два поля верхнего уровня:
time
The time
поле содержит вектор времен симуляции.
signals
Поле содержит массив подструктур, каждая из которых соответствует одному из состояний модели.
Каждый signals
структура имеет четыре поля: values
, dimensions
, label
, и blockName
. The values
поле содержит временные выборки состояния блока, заданного blockName
поле. The label
поле для встроенных блоков указывает тип состояния: либо CSTATE
(непрерывное состояние) или DSTATE
(дискретное состояние). Для блоков S-Function метка содержит любое имя, присвоенное состоянию блоком S-Function.
Временные выборки состояния сохраняются в values
поле как матрица значений. Каждая строка соответствует временной выборке. Каждый элемент массива строки соответствует элементу состояния. Если состояние является матрицей, матрица сохранена в values
массив в основном порядке столбцов. Например, предположим, что модель включает в себя матричное состояние 2 на 2 и что 51 выборка состояния регистрируется во время запуска симуляции.
The values
поле для этого состояния будет содержать матрицу 51 на 4. Каждая строка соответствует временной выборке состояния, и первые два элемента каждой строки соответствуют первому столбцу выборки. Последние два элемента соответствуют второму столбцу выборки.
Примечание
Simulink может считать данные моделирования, сохраненные в рабочем пространстве MATLAB в Structure with time
выход. Смотрите Примеры Определения Сигнала и Временных Данных для получения дополнительной информации.
Этот формат такой же, как и для Structure with time
выходной формат, кроме того, что Simulink не хранит времена симуляции в time
поле сохраненной структуры.
Simulink.SimulationData.Dataset
| Simulink.SimulationData.forEachTimeseries