Simulink.MDLInfo class

Пакет: Simulink
Суперклассы:

Извлеките информацию о файле модели, не загружая блок-схему в память

Описание

Класс Simulink. MDLInfo извлекает информацию из файла модели, не загружая блок-схему в память.

Можно создать MdlInfo объект, содержащий все информационные свойства модели, или можно использовать статические методы в удобном доступе к отдельным свойствам, не создавая класс сначала. Например, чтобы получить описание только:

description = Simulink.MDLInfo.getDescription('mymodel')

Получить метаданные только:

metadata = Simulink.MDLInfo.getMetadata('mymodel')

Все информационные свойства модели только для чтения.

Конструкция

info = Simulink.MDLInfo('mymodel') создает экземпляр MdlInfo класс info и заполняет свойства с информацией из файла модели 'mymodel'.

mymodel может быть:

  • Имя блок-схемы (например, vdp)

  • Имя файла для файла на пути MATLAB® (например, mymodel.slx)

  • Имя файла относительно текущей папки (например, mydir/mymodel.slx)

  • Полностью определенное имя файла (например, C:\mydir\mymodel.slx)

Simulink.MDLInfo разрешает предоставленное имя путем рассмотрения файлов на пути MATLAB и игнорирует любые блок-схемы в памяти. Это может вызвать неожиданные результаты, если вы предоставляете имя загруженной модели, но ее файл затенен другим файлом на пути MATLAB. Если файл затенен, вы видите предупреждение в командном окне. Чтобы избежать любого беспорядка, предоставьте полностью определенное имя файла к Simulink.MDLInfo.

Свойства

BlockDiagramName

Имя блок-схемы.

BlockDiagramType

Тип блок-схемы. Например, 'Модель', Подсистема', 'Библиотека'.

Description

Параметр Описания модели. Для получения дополнительной информации смотрите доступ к информации Модели Программно.

ReleaseUpdateLevel

Содержит номер выпуска обновления, который использовался, чтобы сохранить модель SLX. Это - нуль, если модель SLX была сохранена в широком прокате, например, 'R2020a'. Это - положительное целое число, если модель SLX была сохранена в релизе обновления, например, 2, если модель была сохранена в 'R2020a Update 2'.

Это - нуль для файлов MDL и для файлов SLX, сохраненных в релизах перед R2020a.

FileName

Полностью определенное Имя файла модели.

Interface

Имена и атрибуты корневого импорта блок-схемы, выходных портов, моделей - ссылок, и т.д., описывая графический интерфейс, если вы создали блок Model Reference из этой модели.

Структура.

IsLibrary

Является ли блок-схема библиотекой. Логический.

LastModifiedBy

Имя пользователя, кто продержался сохраненный модель.

LastSavedArchitecture

Архитектура платформы, когда сохраненный, например, 'glnxa64'.

Metadata

Имена и значения произвольных данных сопоставлены с моделью.

Структура. Поля структуры могут быть векторами символов, числовыми матрицами типа "дважды" или большим количеством структур. Используйте метод getMetadata извлекать эту структуру метаданных, не загружая модель.

ModelVersion

Номер версии файла модели.

ReleaseName

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

SavedCharacterEncoding

Кодировка символов, когда сохраненный, например, 'UTF-8'.

SimulinkVersion

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

Методы

getDescriptionИзвлеките описание файла модели, не загружая блок-схему в память
getMetadataИзвлеките метаданные файла модели, не загружая блок-схему в память

Копировать семантику

Указатель. Чтобы изучить, как это влияет на ваше использование класса, смотрите Копирование Объектов (MATLAB) в документации Основ программирования MATLAB.

Примеры

Создайте и просмотрите информационный объект модели:

info = Simulink.MDLInfo('mymodel')
% Get the Version when the model was saved
simulink_version = info.SimulinkVersion; 
% Get model metadata
metadata = info.metadata

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

  metadata.TestStatus = 'untested';
  metadata.ExpectedCompletionDate
     = '01/01/2011';
  load_system(mymodelname);
  set_param(mymodelname,'Metadata',...
  metadata)  % must be a struct
  save_system(mymodelname);
  close_system(mymodelname);

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

info = Simulink.MDLInfo('mpowertrain')
% Get the Interface property
info.Interface

Вывод :

ans = 
                   Inports: [0x1 struct]
                  Outports: [0x1 struct]
                 Trigports: [0x1 struct]
                 Connports: [0x1 struct]
              ModelVersion: '1.122'
           ModelReferences: {2x1 cell}
    ParameterArgumentNames: ''
        TestPointedSignals: [0x1 struct]

Получите модели, на которые ссылаются:

 info.Interface.ModelReferences

Выход находится в форме model name / block path | referenced model name:

ans = 
    'mpowertrain/Model Variants|manual_transmission'
    'mpowertrain/engine model|menginemodel'