Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

モデルの保存

モデルに未保存の変更があるかどうかは、Simulink® エディターのタイトル バーを確認することで判断できます。モデルに未保存の変更がある場合、タイトル バーにアスタリスク (ダーティ フラグとも呼ばれる) が表示されます。

モデルに未保存の変更があるかどうかをプログラムで確認するために、関数 get_param を使用してモデル パラメーター Dirty の値をクエリできます。たとえば、次のコマンドは、現在のシステム (gcs) が変更未保存 (ダーティ) である場合、それを保存します。

if strcmp(get_param(gcs,'Dirty'),'on')
	save_system;
end

モデルの保存

はじめてモデルを保存するには、Simulink エディターの [シミュレーション] タブで [保存] をクリックします。モデル ファイルの保存場所と名前を指定します。名前付け要件の詳細については、モデル名を参照してください。

以前保存したモデルを保存するには、次のいずれかのプロセスに従います。

  • 現在のファイル名を使用してモデルを保存するには、Simulink エディターの [シミュレーション] タブで、[保存] をクリックします。

  • 最上位モデルの内容を新しい名前または場所に保存する場合、またはモデルの形式を変更する場合は、Simulink エディターの [シミュレーション] タブで、[保存][名前を付けて保存] を選択します。

    メモ

    SLX 形式についての詳細は、SLX へのモデルのアップグレードを参照してください。

  • 参照モデルの内容を新しい名前、場所、形式で保存するには、参照モデルを最上位モデルとして開きます。次に、[シミュレーション] タブで、[保存][名前を付けて保存] を選択します。

  • 最上位モデルを以前の Simulink バージョンと互換性のある形式で保存するには、[シミュレーション] タブで、[保存][以前のバージョン] を選択します。モデルを前の Simulink バージョンにエクスポートするを参照してください。

モデル名

モデル ファイル名は文字で始まらなければならず、文字、数字、アンダースコアを使用できます。ファイル名には以下を使用してはなりません。

  • 言語キーワード (ifforend など)

  • 予約名: 'simulink''sl''sf'

  • MATLAB® ソフトウェア コマンド

モデル名の合計文字数は指定の最大数 (通常は 63 文字) 以下で指定しなければなりません。システムのファイル名の最大長を確認するには、MATLAB namelengthmax コマンドを使用します。

MATLAB で、モデル名を指定するときに呼び出す関数を決定する方法については、関数の優先順位を参照してください。

Simulink によるモデルの保存方法

モデルを保存する際、Simulink は、ブロック線図、ブロック プロパティ、およびモデルに関連付けられているその他の情報をモデル ファイルに保存します。

プリセーブ コールバックまたはポストセーブ コールバックがある場合は、次の順序で実行されます。

  1. すべてのブロック PreSaveFcn コールバック ルーチンを実行してから、モデルの PreSaveFcn コールバック ルーチンを実行します。

  2. Simulink がモデル ファイルを書き込みます。

  3. すべてのブロック PostSaveFcn コールバック ルーチンを実行してから、モデルの PostSaveFcn を実行します。

保存プロセスの最中、Simulink はエラーが発生した場合のモデルの復元に使用する一時的なバックアップ コピー (名前は modelname.bak) を維持します。保存の最中または保存プロセスの任意のコールバックの実行中にエラーが発生した場合、Simulink は次を実行します。

  • 元のファイルを復元します。

  • エラー発生前に保存されたすべての内容を modelname.err という名前のファイルに書き込みます。

  • エラー メッセージを発行します。

SLX ファイルから読み込んだモデルを保存する場合、元の SLX ファイルは引き続き存在しなければなりません。Simulink は SLX ファイルのインクリメンタルな読み込みと保存を行うため、元のファイルが保存時に見つからない場合、Simulink は元のファイルを完全には再構築できないことを警告します。

SLX ファイル形式でのモデルの保存

SLX での新規モデルの保存

既定の設定では、Simulink は新しいモデルとライブラリをファイル拡張子 .slx をもつ SLX 形式で保存します。SLX 形式は Open Packaging Conventions (OPC) 相互運用標準に準拠する圧縮パッケージです。SLX 形式は XML や他の国際的な形式で Unicode® UTF-8 を使ってモデル情報を格納します。SLX 形式での Simulink モデルの保存には次の特長があります。

  • 通常、MDL ファイルと比較してファイル サイズは小さくなります。MDL と SLX とのファイル サイズの削減はモデルによって変わります。

  • 韓国語の文字と中国語の文字を含むファイルの読み込みと保存に関連してこれまでのリリースに存在したいくつかの問題を解決しています。

  • インクリメンタルな読み込みと保存が可能です。Simulink はモデルの必要な部分のみを読み込み、モデルの変更された部分のみを保存することによって、パフォーマンスとメモリ使用量を最適化します。

新規モデルとライブラリを保存するファイル形式は、Simulink 基本設定新しいモデルおよびライブラリのファイル形式を使用して指定できます。

SLX へのモデルのアップグレード

MDL ファイルを SLX ファイル形式にアップグレードする場合、そのファイルには MDL ファイルと同じ情報が含まれます。MDL ファイルで機能する get_paramset_param などの関数は、SLX ファイル形式でも機能します。モデル名または場所を変更せずに MDL ファイルを SLX ファイル形式にアップグレードする場合、Simulink は MDL ファイルの名前を変更することでバックアップ ファイルを作成します (ファイルが書き込み可能な場合)。

[シミュレーション] タブで [保存] をクリックして既存の MDL ファイルを保存する場合、Simulink はモデルを MDL 形式で保存します。

SLX ファイル形式で既存の MDL ファイルを保存するには、以下の手順に従います。

  1. [シミュレーション] タブで、[保存][名前を付けて保存] を選択します。

  2. 既定の [ファイルの種類] を SLX のままにし、[保存] をクリックします。

    Simulink はモデルを SLX 形式で保存し、MDL ファイルの名前を (ファイルが書き込み可能な場合) mymodel.mdl.releasename (mymodel.mdl.R2010b など) に変更することで、バックアップ ファイルを作成します。

あるいは、save_system を使用します。

save_system mymodel mymodel.slx
このコマンドで mymodel.slx が作成され、既存のファイル mymodel.mdl が書き込み可能である場合、このファイルの名前は mymodel.mdl.releasename に変更されます。

SLX ファイルは MDL ファイルよりも優先順位が高いので、両方のファイルが同じ名前で存在する場合に、ユーザーがファイル拡張子を指定しないと SLX ファイルが読み込まれます。

Simulink プロジェクトは、ファイルの SLX 形式への移行を支援します。例については、プロジェクトで MDL から SLX に変換してリビジョン履歴を保存するを参照してください。

注意

サードパーティのソース管理ツールを使用している場合は、モデルのファイル拡張子 .slx をバイナリ ファイル形式として登録します。そうしないと、これらのサードパーティ ツールが SLX ファイルを送信するときにファイルを壊す可能性があります。

次の表では、SLX ファイルを使用するときに起こりうる互換性の考慮事項と操作について説明します。

SLX を使用するときに起こりうる互換性の考慮事項と操作動作 操作
拡張子 .mdl 付きのファイル名へのハードコード化された参照スクリプトが新しいファイル拡張子 .slx で保存されたモデルを検出または処理できません。

コードを .mdl 拡張子と .slx 拡張子の両方で作業できるようにしてください。

ファイル名ではなく whichwhat などの関数を使用します。

既定の設定でテキスト形式を想定しているサードパーティのソース管理ツールSLX ファイルのバイナリ形式は、サードパーティ ツールでファイルを送信するときにファイルを壊す可能性があります。サードパーティのソース管理ツールでは .slx 拡張子および .mdl 拡張子をバイナリ ファイル形式として登録してください。ソース管理ツールへのモデル ファイルの登録を参照してください。
文字エンコードの変更いくつかの改善がありました。たとえば、SLX は韓国語の文字と中国語の文字を含む MDL ファイルの読み込みと保存に関連してこれまでのリリースに存在したいくつかの問題を解決しました。ただし、異なるロケールのモデル間での共有には問題が残っています。SLX ファイルと文字エンコードを参照してください。

MDL ファイルと SLX ファイル内のコンテンツ形式は今後変更される可能性があります。モデル データを処理するには、ドキュメント化されている関数 (get_paramfind_system およびSimulink.MDLInfo など) を使用してください。

異なる文字エンコードをもつモデルの保存

MDL ファイルと文字エンコード

モデルを MDL ファイルとして保存すると、現在の Simulink 文字エンコードによってモデル ファイルに格納されているテキストがエンコードされます。現在のエンコードで表現できない文字がモデルに含まれている場合、この動作によりデータが破損する可能性があります。この場合、モデルは model.mdl.err として保存され (ここで model はモデル名)、元のモデル ファイルは変更されずにそのまま残されます。また、Simulink によって、表示できない最初の文字の列と行の番号を指定するエラー メッセージも表示されます。

これを修正するには、以下のいずれかを行います。

SLX ファイルと文字エンコード

SLX 形式で Simulink モデルを保存すると、モデルは UTF-8 エンコードを使用して保存されるため、通常、ファイル サイズが削減され、文字エンコードの問題が解決されます。

以下の場合に MDL ファイルを SLX ファイルに変換できます。

  • 韓国語の文字または中国語の文字を含むモデルを読み込んで保存する。

  • 圧縮されたモデル ファイルが役立つ可能性がある。

モデルを前の Simulink バージョンにエクスポートする

Simulink ソフトウェアの最新バージョンで作成されたモデルを、以前のバージョンで使われる形式にエクスポートできます。たとえば、Simulink の以前のバージョンにしかアクセスできない同僚とモデルを共有できます。

以前の形式にモデルをエクスポートするには、以下のようにします。

  1. Simulink エディターの [シミュレーション] タブで、[保存] をクリックします。これにより、最新バージョンの Simulink にコピーが保存されます。このステップにより互換性の問題を回避することができます。

  2. Simulink エディターの [シミュレーション] タブで、[保存][以前のバージョン] を選択します。

  3. [前バージョンにエクスポート] ダイアログ ボックスの [Save as type] リストから、モデルのエクスポート先となる以前のバージョンを選択します。このリストは、7 年間分の以前のリリースに対応しています。

  4. [保存] をクリックします。

以前のバージョンの形式にモデルをエクスポートする場合は、そのバージョン以降に導入されたブロックおよび機能をモデルが含んでいるかどうかに関係なく、その以前の形式でモデルが保存されます。モデルがそのバージョン以降に導入されたブロックを含んでいたり、そのバージョン以降に導入された機能を使用している場合、Simulink ソフトウェアの以前のバージョンで実行されるときに、モデルで正しい結果が得られない可能性があります。さらに、Simulink は、古いバージョン以降に導入されたブロックを黄色い空のマスク Subsystem ブロックに変換します。たとえば、save_system を使用して、Polynomial ブロックを含んでいるモデルを Release R2007b にエクスポートする場合、Simulink は Polynomial ブロックを黄色い空のマスク Subsystem ブロックに変換します。また、Simulink はモデルのサポートされていない機能があれば、それらを削除します。save_system を参照してください。

前の Simulink バージョンから別の前のバージョンに保存する

Simulink の以前のバージョンで作成されたモデルを開き、そのモデルを別の前のバージョンにエクスポートできます。互換性の問題を回避するには、次の手順を使用します。

  1. 現在のバージョンの Simulink を使用して、前のバージョンで作成したモデルを開きます。

  2. 変更を加える前に、[シミュレーション] タブで [保存] をクリックし、モデルを現在のバージョンで保存します。

    モデルを現在のバージョンで保存した後、必要に応じてモデルを変更し再度保存できます。

  3. モデルを Simulink の以前のバージョンで保存します。[シミュレーション] タブで、[保存][以前のバージョン] を選択します。

  4. 以前の Simulink バージョンを起動し、それを用いて以前のバージョンにエクスポートしたモデルを開きます。

  5. モデルを以前のバージョンで保存します。

これにより、前のバージョンの Simulink のモデルを別のバージョンで作成したものとして使用できるようになります。

次の Simulink 基本設定は、以前のバージョンのモデルを使用する場合に役立ちます。

参考

関連するトピック