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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. Включите журналирование хранилища данных с Образцовыми Параметрами конфигурации> Импорт/Экспорт Данных> параметр Хранилищ данных.

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

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

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

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

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

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

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

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

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

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

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

  5. Включите журналирование хранилища данных с Образцовыми Параметрами конфигурации> Импорт/Экспорт Данных> параметр Хранилищ данных.

  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.

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

| |

Похожие темы

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