В некоторых случаях логгирование данных моделирования может создать большие объемы данных, которые являются слишком большими для того, чтобы ваш компьютер удерживал в рабочей памяти, одновременно работая эффективно. Такие ситуации могут включать симуляции, которые логгируют много сигналов, симуляции, которые выполняются в течение длительного времени с множеством временных шагов, и параллельные симуляции. Когда ваше строение симуляции создаёт большой объем данных, можно записать эти данные в постоянное хранилище, а не логгирование их в рабочей памяти.
Записанные в журнал данные моделирования можно хранить в постоянном хранилище в MAT-файле. Вы управляете логгированием в постоянном хранилище на уровне модели. Можно включить и отключить функцию, изменив один параметр конфигурации модели (Log Dataset data to file), не меняя макет модели.
Если вы используете Dataset
формат для логгирования, можно записать каждый из этих видов данных в постоянное хранилище:
Логгирование сигналов - использует Dataset
формат только.
Состояния - По умолчанию это Dataset
формат. Можно использовать и другие форматы.
Конечные состояния - требует, чтобы вы очистили параметр Save final operating point
Выход - По умолчанию это значение Dataset
формат.
Хранилища данных - Использует Dataset
формат только.
По умолчанию логгирование в постоянное хранилище отключено, так что записанные данные хранятся в MATLAB® рабочей области. Для большинства моделей вход в рабочую область проще, потому что он избегает загрузки и сохранения файлов журнала. По сравнению с доступом к данным, записанным в память, доступ к данным, записанным в постоянное хранилище, требует некоторых дополнительных шагов. Для кратких симуляций логгирование в рабочем пространстве MATLAB может быть более быстрым и, возможно, использовать меньше памяти, чем логгирование в постоянном хранилище.
Только данные, зарегистрированные в Dataset
формат хранится в MAT-файле. Данные, зарегистрированные в других форматах, хранятся в рабочем пространстве MATLAB.
Чтобы использовать постоянное хранилище для логгирования данных о конечных состояниях, вы не можете включить Configuration Parameters Data Import/Export > Save final operating point +.
Simulation Stepper и быстрый перезапуск не поддерживают логгирование в постоянном хранилище.
Во время симуляции вы не можете загрузить данные из файла постоянного хранилища непосредственно в модель. Создайте объекты, которые ссылаются на данные в файле, и затем загрузите объект привязки.
Когда вам нужно симулировать модель, которая создает большой объем данных, и вы не хотите записывать данные моделирования в постоянное хранилище, рассмотрите использование одной из этих альтернатив.
Ограничьте объем данных моделирования, хранящихся в рабочей области.
Можно ограничить объем данных моделирования, хранящихся в рабочей области, используя один или несколько из этих методов. Для получения дополнительной информации смотрите Задать значения сигналов для регистрации.
Метод | Описание |
---|---|
Задайте коэффициент десятикратного уменьшения | Пропустите выборки при экспорте данных. |
Ограничьте точки данных | Ограничьте количество сохраненных выборок только последними выборками. |
Задайте интервалы для логгирования | Задайте области значений временных шагов для логгирования. |
Если вы ограничиваете объем данных моделирования, хранящихся в рабочей области, записанные данные могут не содержать некоторых временных шагов, которые являются критическими для проверки и анализа модели.
Используйте блок To File для каждого сигнала, который вы хотите записать.
Подключение блока To File к сигналам, которые вы хотите записать, сохраняет записанные данные в MAT-файле, а не в рабочем пространстве MATLAB. Однако такой подход:
Является подходом по сигналу, который может загромождать модель с несколькими блоками To File, присоединенными к отдельным сигналам.
Создает отдельный MAT-файл для каждого блока To File вместо одного файла, созданного при регистрации в постоянном хранилище.
Укажите виды логгирования для выполнения (для примера, логгирования сигналов и выходных логгирований) и имена переменных для данных регистрации.
В диаграмму модели отметьте выбранные сигналы для логгирования сигнала.
Использование Dataset
формат для логгирования данных. Данные, которые регистрируются в любом другом формате, хранятся в рабочей области.
Логгирование сигналов и хранения данных Dataset
формат только. Формат по умолчанию для выхода, состояний и логгирования конечных состояний Dataset
.
Для логгирования конечных состояний очистите параметр конфигурации Save final operating point.
Включите ведение журнала в постоянном хранилище и укажите выходное имя MAT-файла.
Выберите Log Dataset data to file параметр конфигурации.
Укажите используемый MAT-файл. Не используйте имя файла из одной локали в другой локали.
Как сохранить записанные в журнал Dataset
данные с использованием timeseries
или timetable
элементы, установите Dataset signal format параметр конфигурации. Формат по умолчанию timeseries
. The timetable
формат полезен для MATLAB, объединяющего записанные данные из нескольких симуляций. Для получения дополнительной информации о timetable
формат, см. Формат сигнала набора данных.
Симулируйте модель.
Можно выполнить программный вход в постоянное хранилище. Чтобы включить ведение журнала в постоянном хранилище, используйте LoggingToFile
и LoggingFileName
Пары "имя-значение" с любым из sim
команда или set_param
команда.
Чтобы включить методы ведения журнала, которые вы хотите использовать, установите эти параметры на 'on'
, в зависимости от обстоятельств:
SignalLogging
SaveState
SaveFinalState
SaveOutput
DSMLogging
Чтобы записать выходы, состояния и конечные состояния в постоянное хранилище, установите SaveFormat
параметр в 'Dataset'
.
Чтобы записать данные о конечных состояниях в постоянное хранилище, установите SaveOperatingPoint
на 'off'
.
Логгирование в постоянное хранилище сохраняет записанные данные моделирования в указанном MAT-файле. Данные хранятся как Simulink.SimulationData.Dataset
объекты для каждого типа логгирования, которые используют Dataset
формат. The Dataset
элементы хранятся как timeseries
или timetable
объекты, в зависимости от того, как вы устанавливаете параметр Dataset signal format. Для получения дополнительной информации о timetable
формат, см. Формат сигнала набора данных.
The Dataset
имя объекта в файле является именем переменной, используемой для логгирования. Для примера, если вы используете сигнал по умолчанию логгированию переменной logsout
, а Dataset
объект в MAT-файле logsout
.
Подход, который вы используете для сохранения данных, записанных из последующих симуляций, зависит от того, выполняете ли вы параллельные симуляции.
Каждый раз, когда вы симулируете модель, не используя параллельную симуляцию, Simulink® перезаписывает содержимое MAT-файла, если вы не измените имя файла между симуляциями. Когда вы используете Simulink.SimulationData.DatasetRef
объект, который ссылается на данные в MAT-файле, чтобы извлечь данные в файле, он извлекает самую последнюю версию данных. Чтобы сохранить данные из более ранней симуляции, используйте один из следующих подходов:
Между симуляциями используйте панель Configuration Parameters > Data Import/Export, чтобы задать другое имя MAT-файла для логгирования.
Между симуляциями сохраните копию MAT-файла. Используйте другое имя файла, отличное от имени, заданного в качестве MAT-файла для постоянного хранилища, или переместите MAT-файл.
Программно задайте новое имя файла для каждого запуска симуляции.
Если вы запускаете несколько симуляций, которые перекрываются во времени, используйте уникальный MAT-файл для каждой модели, которую вы записываете в постоянное хранилище.
Если вы измените имя файла, используемого для логгирования, на постоянное хранилище, то для доступа к записанным в записанные данные используйте один из следующих подходов:
Создайте Simulink.SimulationData.DatasetRef
объект.
Чтобы соответствовать новому имени файла, измените Location
свойство DatasetRef
объекты.
Для получения дополнительной информации об использовании DatasetRef
объекты для доступа к записанным данным, см. Загрузка Больших данных для симуляций.
Для параллельных симуляций, для которых вы задаете массив входа объектов, если вы логгируете в файл, Simulink:
Создает MAT-файл для каждой симуляции
Создает
объекты для доступа к выходным данным в MAT-файле и включает эти объекты в Simulink.SimulationData.DatasetRef
SimulationOutput
данные объекта
Включает CaptureErrors
аргумент для симуляции
Для получения дополнительной информации о параллельных симуляциях см. Раздел «Запуск нескольких симуляций».
Simulink.SimulationData.Dataset
| Simulink.SimulationData.DatasetRef
| timeseries
| timetable