Main Content

モデル バージョンの管理とモデル プロパティの指定

Simulink® では、以下の手法を使用して、モデルの複数のバージョンを管理できます。

  • プロジェクトを使用して、プロジェクト ファイルの管理、ソース管理への接続、修正ファイルの確認およびリビジョンの比較ができます。プロジェクト管理を参照してください。

  • モデル ファイルの変更通知を使用すると、ソース管理操作と複数のユーザーを管理できます。モデル ファイルの変更通知を参照してください。

  • Simulink.MDLInfo を使用して、ブロック線図をメモリに読み込まずにモデル ファイルから情報を取得します。MDLInfo を使用すると、モデル バージョンおよび Simulink バージョンをクエリしたり、モデルをメモリに読み込まずに参照モデルの名前を確認したり、任意のメタデータをモデル ファイルにリンクしたりすることができます。

モデル ファイルの変更通知

Simulink 基本設定を使用して、モデルがディスク上で変更されたときにユーザーに通知するかどうかを指定できます。モデルを更新したとき、シミュレートしたとき、編集開始時、または保存したときに、通知を受けることができます。たとえば、ソース管理操作および複数のユーザーによって、ディスク上のモデルが変更されることがあります。

Simulink エディターの [モデル化] タブで、[環境][Simulink 基本設定] を選択します。[モデル ファイル] ペインの [変更通知] で、以下のオプションを選択できます。

  • [モデル編集開始時] を選択し、ディスク上のファイルが変更されている場合、ブロック線図は Simulink で変更されません。

    • ブロック線図を変更する対話型の操作 (ブロックの追加など) を行うと、警告が表示されます。

    • ブロック線図を変更するコマンド ライン操作 (set_param の呼び出しなど) を行うと、警告が表示されます。

  • [モデルを保存中] を選択すると、ディスク上のファイルが次のように変更されます。

    • Simulink エディターでモデルを保存すると、メッセージが表示されます。

    • OverwriteIfChangedOnDisk オプションを使用しない限り、関数 save_system はエラーを報告します。

モデルが読み込まれた後にディスクで変更されたかどうかをプログラムで確認するには、関数 slIsFileChangedOnDisk を使用します。

ソース管理および複数のユーザーとの作業を支援するオプションの詳細は、プロジェクト管理を参照してください。

モデル プロパティの管理

プロパティ インスペクターを使用して、モデルのバージョン プロパティ、説明、コールバック関数を表示および編集できます。プロパティ インスペクターを開くには、[設計][モデル化] タブで [プロパティ インスペクター] をクリックします。モデルの最上位レベルで何も選択されていないとき、モデル プロパティ (ライブラリ モデル内の場合はライブラリ プロパティ) がプロパティ インスペクターに表示されます。

現在のユーザーの指定

モデルを作成または更新すると、ユーザーの名前がモデルにログ記録されます。Simulink は、ユーザーの名前は環境変数 USERUSERNAMELOGINLOGNAME のうち少なくとも 1 つによって指定されているとみなします。これらのどの変数も定義されていない場合、Simulink は、モデルのユーザー名を更新しません。

UNIX® システムは、USER 環境変数を定義し、その値をシステムへのログインに使用する名前に設定します。したがって、UNIX システムを使用する場合、現在のユーザーとしてユーザーを確認するために Simulink では特に何もする必要はありません。

Windows® システムでは、システムにインストールされている Windows のバージョンとそれがネットワークに接続されているかどうかによって、Simulink が期待するユーザー名に環境変数を定義できます。MATLAB® 関数 getenv を使用して、環境変数のどれかが定義されているかどうかを確認することができます。たとえば、MATLAB コマンド ウィンドウで、次を入力します。

getenv('user')

この関数は、環境変数 USER がお使いの Windows システムに存在するかどうかを特定します。存在しない場合、環境変数を設定してください。

モデル情報

[情報] タブには、変更状況、バージョン、最後に保存された日付など、このモデルの現在のバージョンについての情報がまとめられています。モデルの情報を表示および編集し、モデルの変更履歴を有効化、表示、編集することができます。

[説明] セクションを使用すると、モデルの説明を入力することができます。入力したモデルの説明を表示するには、MATLAB コマンド ウィンドウで、「help」と入力した後にモデル名を入力します。

  • モデル バージョン

    このモデルのバージョン番号。メジャー モデル バージョンは、モデルの最後の保存以降にパスしたリリース数ずつインクリメントされます。マイナー モデル バージョンは Simulink の新リリースごとにゼロにリセットされ、同じリリース内にモデルを保存するたびに 1 ずつインクリメントされます。

  • 作成者

    このモデルを作成した人の名前。モデル作成時の環境変数 USER の値に基づきます。

  • 作成日

    このモデルの作成日と時刻。この値は変更しないでください。

  • 最終編集者

    このモデルを最後に保存した人の名前。モデル保存時の環境変数 USER の値に基づきます。

  • 最終更新日

    モデルが最後に保存された日付。システムの日付および時刻に基づきます。

プロパティ

モデル プロパティの [プロパティ] タブで、ソース ファイルの場所を表示したり、モデルの圧縮レベルを設定したり、モデルの設計データを保存する場所を指定したり、コールバックを定義したりできます。

メモ

また、ライブラリ プロパティを使用すると、古いライブラリ ブロックから新しいライブラリ ブロックへのマッピングを指定することもできます。この目的で転送テーブルを使用する方法について詳しくは、転送テーブルを使用したライブラリ ブロックの互換性の維持を参照してください。

SLX 圧縮レベルの設定.  [プロパティ インスペクター][プロパティ] タブで、次の 3 つの [SLX 圧縮] オプションから 1 つを設定できます。

  • [なし] では、保存処理中に圧縮は適用されない。圧縮をオフにすると、ディスク上の SLX ファイルのサイズは大きくなりますが、リポジトリのサイズは小さくなります。

  • [標準] では最小のファイル サイズが作成される。

  • [最速] では、[なし] を選択した場合よりもファイル サイズは小さくなるが、[標準] よりも保存時間が早くなる。

プログラムによって圧縮レベルを設定するには、SLXCompressionType を使用します。

R2023b 以降、既定では、Simulink は保存処理中に圧縮を適用しません。

R2023b より前では、Git™ リポジトリのサイズを削減するには、Simulink モデルを圧縮せずに保存します。これにより、リポジトリ履歴を Git で効果的に圧縮できます。この設定を新しい SLX ファイルで使用するには、[SLX 圧縮][なし] に設定したモデル テンプレートを使用してモデルを作成します。モデルからのテンプレートの作成を参照してください。既存の SLX ファイルについては、圧縮を設定してからモデルを保存します。

設計データの場所の定義.  [外部データ] セクションを使用して、モデルが使用する設計データの場所を指定します。設計データは、ベース ワークスペースまたはデータ ディクショナリで定義できます。ディクショナリを使用する単一モデルの移行を参照してください。

コールバック.  [コールバック] セクションを使用すると、モデルのシミュレーション中に特定ポイントで呼び出す関数を指定できます。リストからコールバックを選択します。ボックス内で、選択したコールバックで呼び出す関数を入力します。これらのコールバックの詳細については、モデルのコールバックの作成を参照してください。

プログラムによるモデル情報へのアクセス

一部のバージョン情報は、モデル パラメーターとしてモデルに保存されます。Simulink の関数 get_param を使用して、プログラムによりこの情報にアクセスできます。

次の表では、Simulink がバージョン情報を保存するのに使用するモデル パラメーターについて説明します。

プロパティ説明

BlockDiagramType

開かれている Simulink ブロック線図内にある場合は model を返します。Simulink ライブラリである場合は library を返します。

Created

作成した日付。

Creator

モデルを作成したユーザーの名前。

Description

ユーザーが入力したこのモデルの説明。プロパティ インスペクターの [情報] タブで、[説明] ボックスにモデルの説明を入力するか、既にある説明を編集します。モデルの説明を MATLAB コマンド ウィンドウで表示するには、以下のように入力します。

help 'mymodelname'

Dirty

このパラメーターの値が on の場合、モデルには保存されていない変更があります。

FileName

モデルの保存先の絶対パス。

LastModifiedBy

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

LastModifiedDate

モデルが最後に保存された日付。

MetaData

モデルに関連付けられた任意のデータの名前と属性。詳細については、Simulink.MDLInfo.getMetadataを参照してください。

ModifiedByFormat

ModifiedBy パラメーターの書式。値には、タグ %<Auto> を含めることができます。Simulink では、USER 環境変数の現在の値にこのタグが置き換えられます。

ModifiedDateFormat

LastModifiedDate パラメーターの値の生成に使用する書式。値には、タグ %<Auto> を含めることができます。Simulink は、モデルの保存時に、タグを現在の日付と時刻で置き換えます。

ModelVersion

メジャー モデル バージョンは、モデルの最後の保存以降にパスしたリリース数ずつインクリメントされます。マイナー モデル バージョンは Simulink の新リリースごとにゼロにリセットされ、同じリリース内にモデルを保存するたびに 1 ずつインクリメントされます。

ModelVersionFormat

値には、モデルの形式バージョンが %<AutoIncrement:#.#> として含まれています。ここで、# は整数です。モデルの保存時に、Simulink によってモデル バージョンが # ずつインクリメントされます。

PreviousFileName

PreSaveFcn または PostSaveFcn コールバックが実行されている時は、PreviousFileName は保存操作を開始する前にモデルの絶対パスを示します。

モデルの現在の絶対パスを見つけるには、代わりに FileName を使用します。

SavedSinceLoaded

モデルが読み込まれてから保存されたかどうかを示します。'on' はモデルが保存されたことを示します。

VersionLoaded

モデルを最後に保存した Simulink のバージョン ('7.6' など)。

EnableAccessToBaseWorkspace

モデルがベース ワークスペースで設計データおよびコンフィギュレーション セットにアクセスできるかどうか。'true' または 'false' として指定します。

LibraryVersion はリンクしたブロックのブロック パラメーターです。LibraryVersion はリンクが作成された時点のライブラリの ModelVersion です。

ソース管理バージョンの情報については、プロジェクト管理を参照してください。

参考

関連するトピック