Данные логов к персистентному устройству хранения данных

Когда регистрировать к персистентному устройству хранения данных

Журналирование многих сигналов в долгом моделировании, которое имеет много временных шагов, может произвести большие данные, которые могут перегрузить память компьютера. Используя персистентное устройство хранения данных может помочь решить большие проблемы памяти данных. Кроме того, персистентное устройство хранения данных полезно для журналирования, когда вы запускаете моделирования параллельно или для выполнения нескольких моделирований.

Можно хранить регистрируемые данные моделирования к персистентному устройству хранения данных в MAT-файле. Используя персистентное устройство хранения данных минимизирует сумму записанных данных, сохраненных в памяти во время моделирования. Вы управляете журналированием к персистентному устройству хранения данных на образцовом уровне. Можно включить и отключить опцию путем изменения одного образцового параметра конфигурации (Регистрируйте данные Набора данных к файлу), не изменяя образцовое размещение.

При использовании формат Dataset для журналирования, можно регистрировать каждый из этих видов данных к персистентному устройству хранения данных:

  • Журналирование сигнала — Использование формат Dataset только.

  • Состояния — Значения по умолчанию к формату Dataset. Можно использовать другие форматы.

  • Конечные состояния — Требуют, чтобы вы очистили Сохранение полный SimState в параметре конечного состояния

  • Вывод Значения по умолчанию к формату Dataset.

  • Хранилища данных — Использование формат Dataset только.

По умолчанию журналирование к персистентному устройству хранения данных отключено, так, чтобы записанные данные были сохранены в рабочей области MATLAB®. Для большинства моделей, регистрируя к рабочей области более просто, потому что она старается не загрузить и сохранить файлы журналирования. По сравнению с доступом к данным, регистрируемым к памяти, получая доступ к данным, регистрируемым к персистентному устройству хранения данных, требует некоторых дополнительных шагов. Для коротких моделирований, регистрируя к MATLAB workspace может быть быстрее и возможно использовать меньше памяти, чем журналирование к персистентному устройству хранения данных.

Ограничения для журналирования к персистентному устройству хранения данных

  • Только данные вошли в систему, формат Dataset сохранен в MAT-файле. Данные вошли в систему, другие форматы сохранены в MATLAB workspace.

  • Чтобы использовать персистентное устройство хранения данных для регистрации данных конечных состояний, вы не можете включить Параметры конфигурации>, Импорт/Экспорт Данных> Сохраняет полный SimState в конечном состоянии.

  • Степпер Моделирования и быстрый перезапуск не поддерживают журналирование к персистентному устройству хранения данных.

  • Во время моделирования вы не можете загрузить данные из персистентного файла устройства хранения данных непосредственно в модель. Создайте объекты, которые ссылаются на данные в файле и затем загружают ссылочный объект.

Альтернативные подходы для сокращения использования памяти журналирования

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

  • Ограничьте сумму данных моделирования, хранивших в рабочей области.

    Можно ограничить сумму данных моделирования, хранивших в рабочей области при помощи одного или нескольких из этих методов. Для получения дополнительной информации смотрите Предельную Сумму Экспортированных Данных.

    МетодОписание
    Задайте фактор десятикратного уменьшения.Пропустите выборки при экспортировании данных.
    Ограничьте точки данных.Ограничьте количество выборок, сохраненных, чтобы быть только новыми выборками.
    Задайте интервалы для журналирования.Задайте области значений временных шагов для журналирования.

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

  • Используйте блок To File для каждого сигнала, что вы хотите регистрировать.

    Соединение блока To File к сигналам, что вы хотите регистрировать, хранит записанные данные в MAT-файле, а не в MATLAB workspace. Однако этот подход:

    • Подход на сигнал, который может создать помехи модели несколькими К блокам Файла, присоединенным к отдельным сигналам.

    • Создает отдельный MAT-файл для каждого блока To File, по сравнению с одним MAT-файлом, используемым путем журналирования к персистентному устройству хранения данных.

Регистрируйте к персистентному устройству хранения данных

  1. Задайте виды журналирования, чтобы выполнить (например, журналирование сигнала и вывести журналирование) и имена переменных для данных регистрации.

  2. В образцовой схеме отметьте выбранные сигналы для журналирования сигнала.

  3. Используйте формат Dataset для регистрации данных. Данные, который зарегистрирован любой другой формат, хранятся в рабочей области.

    • Журналирование сигнала и хранилище данных, регистрирующее использование формат Dataset только. Форматом по умолчанию для вывода, состояний и журналирования конечных состояний является Dataset.

    • Для журналирования конечных состояний очиститесь, Сохранение завершают SimState в параметре конфигурации конечного состояния.

  4. Позвольте регистрировать к персистентному устройству хранения данных и задайте выходное имя MAT-файла.

    • Выберите данные Набора данных Журнала, чтобы зарегистрировать параметр конфигурации.

    • Задайте MAT-файл, чтобы использовать. Не используйте имя файла от одной локали в различной локали.

  5. Чтобы сохранить регистрируемые данные Dataset с помощью timeseries или элементов timetable, установите параметр конфигурации формата сигнала Набора данных. Форматом по умолчанию является timeseries. Формат timetable полезен для MATLAB, комбинирующего записанные данные от нескольких моделирований. Для получения дополнительной информации о формате timetable, смотрите формат сигнала Набора данных.

  6. Моделируйте модель.

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

Можно программно регистрировать к персистентному устройству хранения данных. Чтобы позволить регистрировать к персистентному устройству хранения данных, используйте LoggingToFile и пары "имя-значение" LoggingFileName или с командой sim или с командой set_param.

Чтобы включить подходы журналирования, которые вы хотите использовать, установите эти параметры на 'on', как применимые:

  • SignalLogging

  • SaveState

  • SaveFinalState

  • SaveOutput

  • DSMLogging

Чтобы регистрировать вывод, состояния и данные конечных состояний к персистентному устройству хранения данных, устанавливают параметр SaveFormat на 'Dataset'.

Чтобы регистрировать данные конечных состояний к персистентному устройству хранения данных, установите SaveCompleteFinalSimState на 'off'.

Как хранятся данные моделирования

Журналирование к персистентному устройству хранения данных сохраняет регистрируемые данные моделирования в заданном MAT-файле. Данные хранятся, когда Simulink.SimulationData.Dataset возражает для каждого типа журналирования, которое использует формат Dataset. Элементы Dataset сохранены или как timeseries или как объекты timetable, в зависимости от того, как вы устанавливаете параметр формата сигнала Набора данных. Для получения дополнительной информации о формате timetable, смотрите формат сигнала Набора данных.

Имя объекта Dataset в файле является именем переменной, которую вы использовали для журналирования. Например, если вы используете сигнал по умолчанию, регистрирующий переменный logsout, объектом Dataset в MAT-файле является logsout.

Сохраните записанные данные от последовательных моделирований

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

Без Использования параллельных моделирований

Каждый раз, когда вы моделируете модель, не используя параллельное моделирование, Simulink® перезаписывает содержимое MAT-файла, если вы не меняете имя файла между моделированиями. Когда вы используете объект Simulink.SimulationData.DatasetRef, что данные ссылок в MAT-файле, чтобы получить данные в файле, он получает новую версию данных. Чтобы сохранить данные от более раннего моделирования, используйте один из этих подходов:

  • Между моделированиями используйте Параметры конфигурации> панель Импорта/Экспорта Данных, чтобы задать другое имя для MAT-файла для журналирования.

  • Между моделированиями сохраните копию MAT-файла. Используйте различное имя файла, чем имя, которое вы задаете как MAT-файл для персистентного устройства хранения данных или перемещаете MAT-файл.

  • Программно задайте новое имя файла для каждого запущенного моделирования.

Если при запуске несколько моделирований, которые накладываются вовремя, используют уникальный MAT-файл для каждой модели, которую вы регистрируете к персистентному устройству хранения данных.

Если вы изменяете имя файла, используемое для журналирования к персистентному устройству хранения данных, то получить доступ к записанным данным, используйте один из этих подходов:

  • Создайте объект Simulink.SimulationData.DatasetRef.

  • Чтобы совпадать с новым именем файла, измените свойство Location объектов DatasetRef.

Для получения дополнительной информации об использовании DatasetRef возражает против записанных данных доступа, смотрите Загрузку Большие данные для Моделирований.

С параллельными моделированиями

Для параллельных моделирований, для которых вы задаете массив входных объектов, если вы регистрируете к файлу, Simulink:

  • Создает MAT-файл для каждого моделирования

  • Создает объекты Simulink.SimulationData.DatasetRef получить доступ к выходным данным в MAT-файле и включает те объекты в данные объектов SimulationOutput

  • Включает аргумент CaptureErrors для моделирования

Для получения дополнительной информации о параллельных моделированиях, смотрите Выполнение Несколько Моделирований.

Смотрите также

Функции

Похожие темы

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