exponenta event banner

Хранилища данных журнала

Регистрация значений локального и глобального хранилищ данных

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Моделирование модели верхнего уровня в обычном режиме.

    • Для локальных хранилищ данных модель, содержащая блок памяти хранилища данных, должна находиться в стандартном режиме привязки модели.

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

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

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

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

  1. В модели откройте Редактор данных модели (Model Data Editor). На вкладке Моделирование (Modeling) щелкните Редактор данных модели (Model Data Editor).

  2. На вкладке Хранилища данных установите в раскрывающемся списке Изменить представление значение Instrumentation.

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

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

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

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

  6. Моделирование модели.

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

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

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

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

Регистрация хранилища данных, созданного с помощью Simulink.Signal объект:

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

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

  3. В командной строке MATLAB ®, setDataLogging (которая является собственностью 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Сохраняет данные регистрации из хранилища данных во время моделирования

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

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

Чтобы просмотреть данные регистрации хранилища данных из командной строки, просмотрите набор выходных данных в базовой рабочей области. Переменная по умолчанию для набора данных журнала хранилища данных 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 способ.

См. также

| |

Связанные темы