Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink.MDLInfo クラス

パッケージ: 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

ブロック線図のタイプ。'Model'、'Subsystem'、'Library' など。

Description

モデルの説明パラメーター。詳細については、プログラムによるモデル情報へのアクセスを参照してください。

ReleaseUpdateLevel

SLX モデルの保存に使用された更新リリース番号が含まれます。SLX モデルが正式リリース (たとえば、'R2020a') に保存された場合はゼロになります。SLX モデルが更新リリースに保存された場合は正の整数になります。たとえば、モデルが 'R2020a Update 2' に保存された場合は 2 になります。

MDL ファイル、および R2020a より前のリリースで保存された SLX ファイルについては 0 になります。

FileName

モデル ファイルの完全修飾名。

Interface

このモデルから Model Reference ブロックを作成した場合、グラフィカル インターフェイスについて記述するブロック線図のルート Inport、Outport、モデル参照などの名前と属性。

構造体。

IsLibrary

ブロック線図がライブラリかどうかの確認。論理値。

LastModifiedBy

モデルを最後に保存したユーザーの名前。

LastSavedArchitecture

保存時のプラットフォーム アーキテクチャ。たとえば、'glnxa64'

Metadata

モデルに関連付けられた任意のデータの名前と値。

構造体。構造体フィールドは、文字ベクトル、"double" 型の数値行列、または構造体です。メソッド getMetadata を使用して、モデルを読み込まずにこのメタデータ構造体を抽出します。

ModelVersion

モデル ファイルのバージョン番号。

ReleaseName

モデル ファイルを保存するために使用されたリリース名。たとえば、'R2020a'

SavedCharacterEncoding

保存時の文字エンコード。たとえば、'UTF-8'

SimulinkVersion

モデル ファイルの保存に使用された Simulink® のバージョン番号。

メソッド

getDescriptionブロック線図をメモリに読み込まずにモデル ファイル情報を抽出する
getMetadataブロック線図をメモリに読み込まずにモデル ファイル メタデータを抽出する

コピーのセマンティクス

ハンドル。これによるクラスの使用に対する影響については、『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

Output:

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'