Журнал хранилищ данных

Логгирование значений локального и Глобальные данные хранилища

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

  • Отладка модели - просмотрите порядок всех записей хранилища данных

  • Подтверждение изменения модели - используйте записанные данные для установления базового уровня для сравнения результатов для определения влияния изменения модели

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

Поддерживаемые типы данных, размерности и сложность для логгирования хранилищ данных

Можно вести журнал хранилищ данных, которые используют следующие типы данных:

  • Все встроенные типы данных

  • Перечисленные типы данных

  • Типы данных с фиксированной точкой

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

Ограничения на ведение журнала хранилища данных

Ограничения для использования регистрации хранилища данных в модели:

  • Для регистрации данных в памяти хранилища данных:

    • Симулируйте модель верхнего уровня в режиме normal mode.

    • Для локальных хранилищ данных модель, содержащая блок Data Store Memory, должна находиться в режиме Модель-ссылка Normal.

    • Любой блок в модели-ссылке, который записывает в память хранилища данных, должен быть выполнен в модели-ссылке Normal mode.

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

Логгирование хранилищ данных, созданных блоком памяти хранилища данных

Чтобы войти в локальное хранилище данных, которое вы создаете с блоком Data Store Memory:

  1. В модели откройте Model Data Editor. На вкладке Modeling нажмите Model Data Editor.

  2. На вкладке Data Stores установите в раскрывающемся списке Change view значение Instrumentation.

  3. В таблице данных для целевого хранилища данных установите флажок в столбце Log Data.

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

  4. Для настройки дополнительных характеристик логгирования, таких как максимальное количество точек данных для регистрации, откройте Property Inspector (на вкладке Modeling, в разделе Design, нажмите Property Inspector). Используйте Property Inspector, чтобы открыть диалоговое окно блока и просмотреть вкладку Logging.

  5. Включите ведение журнала хранилища данных с помощью параметра Model Configuration Parameters Data Import/Export > Data stores >.

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

Значок логгирования для блока памяти хранилища данных

Когда вы активируете ведение журнала для модели и конфигурируете локальное хранилище данных для логгирования, блок Data Store Memory отображает синий значок. Если вы не включите логгирование для модели, то значок будет серым.

Логгирование хранилищ данных, созданных с помощью Simulink.Signal Объект

Вы можете создать локальные и глобальные данные магазины с помощью Simulink.Signal объект. Для получения дополнительной информации см. раздел «Хранилища данных с объектами сигнала».

Чтобы войти в журнал хранилища данных, созданного с помощью Simulink.Signal объект:

  1. Создайте Simulink.Signal объект в рабочей области, который виден каждому компоненту, которому требуется доступ к хранилищу данных, как описано в Хранилищах Данных с Объектами Сигнала.

  2. Используйте имя Simulink.Signal объект в Data store name параметров блоков блоков Data Store Read и Data Store Write, которые необходимо записать и считать из хранилища данных.

  3. Из MATLAB® в командной строке установите DataLogging (который является свойством LoggingInfo свойство Simulink.Signal) к 1.

    Для примера, если вы используете Simulink.Signal объект называется DataStoreSignalObject для создания хранилища данных используйте следующую команду:

    DataStoreSignalObject.LoggingInfo.DataLogging = 1
  4. Опционально задайте пределы объема записанных данных, используя следующие свойства, которые являются свойствами LoggingInfo свойство Simulink.Signal объект: Decimation, LimitDataPoints, и MaxPoints.

  5. Включите ведение журнала хранилища данных с помощью параметра Model Configuration Parameters Data Import/Export > Data stores >.

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

Доступ к данным регистрации хранилища данных

Следующий Simulink® классы представляют данные из логгирования хранилища данных и обеспечивают методы доступа к этим данным:

КлассОписание
Simulink.SimulationData.BlockPathПредставляет полностью заданный путь к блоку Simulink; использование для захвата полной иерархии модели-ссылки
Simulink.SimulationData.DatasetСохраняет записанные данные элементы и обеспечивает возможности поиска; используется для группирования Simulink.SimulationData.Element объекты в одном объекте
Simulink.SimulationData.DataStoreMemoryСохраняет регистрационную информацию из хранилища данных во время симуляции

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

Просмотр данных хранилища данных

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

Модель sldemo_mdlref_dsm иллюстрирует подходы для просмотра данных регистрации хранилища данных.

Доступ к элементам в данных регистрации хранилища данных

Поиск элемента в данных регистрации хранилища данных на основе Name или BlockType свойство, используйте getElement метод Simulink.SimulationData.Dataset. Для примера:

dsmout.getElement('RefSignalVal')

ans = 
Simulink.SimulationData.DataStoreMemory
Package: Simulink.SimulationData

Properties:
                 Name: 'RefSignalVal'
            Blockpath: [1x1 Simulink.SimulationData.BlockPath]
                Scope: 'local'
  DSMWriterBlockPaths: [1x2 Simulinkl.SimulationData.BlockPath]
           DSMWriters: [101x1 uint32]
               Values: [101x1 timeseries]        

Для доступа к элементу по индексу используйте Simulink.SimulationData.Dataset.getElement способ.

См. также

| |

Похожие темы