Хранилища данных логов

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

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

  • Модель, отлаживающая – просматривает порядок всех записей хранилища данных

  • Подтверждение образцовой модификации – использует записанные данные, чтобы установить базовую линию для сравнения результатов для идентификации влияния образцовой модификации

Для примера журналирования хранилища глобальных данных смотрите Используя Хранилища данных Через Многоуровневые модели.

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

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

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

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

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

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

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

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

  • К данным логов для памяти хранилища данных:

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

    • Для локальных хранилищ данных модель, содержащая Блок памяти Хранилища данных, должна быть в Режиме normal mode Модели - ссылки.

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

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

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

Чтобы регистрировать локальное хранилище данных, которое вы создаете с Блоком памяти Хранилища данных:

  1. В модели откройте Model Data Editor. Выберите View> Model Data Editor.

  2. На вкладке Data Stores, набор Change view выпадающий список к Instrumentation.

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

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

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

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

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

Журналирование значка для блока памяти хранилища данных

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

Журналирование хранилищ данных, созданных с объектом Simulink.Signal

Можно создать хранилища локальных и глобальных данных с помощью объекта Simulink.Signal. Смотрите Хранилища данных с Объектами Сигнала для деталей.

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

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

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

  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.

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

| |

Похожие темы