ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

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

モデルの保存

モデルを保存する必要があるかどうかの判定方法

モデルを保存する必要があるかどうかを判定するには、Simulink® エディターのタイトル バーを確認します。モデルを保存する必要がある場合は、タイトル バーのモデル名の隣にアスタリスク (*) が表示されます。

モデルを保存する必要があるかどうかをプログラムで確認するには、モデル パラメーター Dirty を使用します。以下に例を示します。

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

はじめてモデルを保存する

はじめてモデルを保存するには、Simulink エディターで [ファイル][保存] を選択します。モデル ファイルの保存場所と名前を指定します。

モデル名

モデル ファイル名は文字で始まり、文字、数字、アンダースコアの組み合わせを使用できます。また、ファイル名は MATLAB® ソフトウェアのコマンドと同じ名前にしないでください。

合計文字数は指定の最大数 (通常は 63 文字) 以下で指定しなければなりません。ご使用のシステムの最大文字数が 63 より大きいかどうか確認するには、MATLAB namelengthmax コマンドを使用します。

以前に保存したモデルの保存

以前に保存したモデル ファイルをもつモデルを保存する場合は、以下の手順に従います。

  • ファイルの内容を "置き換える" には、Simulink エディターで [ファイル][保存] を選択します。

  • モデルを新しい名前または場所に保存するには、Simulink エディターで [ファイル][名前を付けて保存] を選択します。

モデル保存時の処理

Simulink は、モデル (ブロック線図) とブロック プロパティを含む "モデル ファイル" と呼ばれる特殊な形式のファイルを生成してモデルを保存します。Simulink ソフトウェアは、モデルの保存中に以下の処理を実行します。

  1. モデル ファイルが既に存在する場合、Simulink は一時ファイルとしてモデル ファイルの名前を変更します。

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

  3. Simulink はモデル ファイルを、同じ名前と拡張子 .slx (既定) を使用して、新規ファイルに書き込みます。

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

  5. Simulink は一時ファイルを削除します。

このプロセスでエラーが発生すると、Simulink は次を実行します。

  • 一時ファイルの名前を元のモデル ファイルの名前に変更します。

  • 現在のバージョンのモデルを拡張子 .err をもつファイルに書き込みます。

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

エラーが保存プロセスのステップ 2 で発生すると、ステップ 3 は省略され、ステップ 4 と 5 が実行されます。

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

SLX での新規モデルの保存

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

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

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

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

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

MDL ファイルを SLX ファイル形式にアップグレードする場合、そのファイルには MDL ファイルと同じ情報が含まれ、常にバックアップ ファイルが存在します。get_param コマンドや set_param コマンドなど、モデルで作業するために現在存在している機能と API は、すべて、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 への移行を支援します。例は、「モデル ファイルを SLX にアップグレードしてリビジョン履歴を保存する」を参照してください。

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

SLX を使用するときに起こりうる互換性の考慮事項と操作動作 アクション
拡張子 .mdl 付きのファイル名へのハードコード化された参照。 スクリプトが新しいファイル拡張子 .slx で保存されたモデルを検出または処理できません。 コードを .mdl 拡張子と .slx 拡張子の両方で作業できるようにしてください。
.mdl の文字列の代わりに whichwhat などの関数を使用します。
既定の設定でテキスト形式を想定しているサードパーティのソース管理ツール。 SLX ファイルのバイナリ形式は、サードパーティ ツールでファイルを送信するときにファイルを壊す可能性があります。サードパーティのソース管理ツールでは .slx をバイナリ ファイル形式として登録してください。これは .mdl ファイルの場合も推奨します。「ソース管理ツールへのモデル ファイルの登録」を参照してください。
文字エンコードの変更。いくつかの改善がありました。たとえば、SLX は韓国語の文字と中国語の文字を含む MDL ファイルの読み込みと保存に関連してこれまでのリリースに存在したいくつかの問題を解決しました。ただし、異なるロケールのモデル間での共有には問題が残っています。SLX ファイルと文字エンコード」を参照してください。

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

モデルを別の文字エンコードで保存

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

モデルを保存するとき、現在の文字エンコードを使用して、モデル ファイルに格納されているテキストをエンコードします。MDL ファイルでは、これにより、オリジナルのエンコードと現在のエンコードが異なるモデルを保存する場合に、モデルが壊れることがあります。

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

このエラーを修復するには、以下のいずれかを行ってください。

  • モデルを SLX 形式で保存します (「SLX ファイル形式でのモデルの保存」を参照してください)。

  • 以下の手順を使用して、文字を 1 つずつ検索して削除します。

    1. テキスト エディターを使って、エラー メッセージで示される位置で .err ファイル内の文字を検索します。

    2. 開いているモデル内の対応する文字を見つけて削除し、モデルを再度保存します。

    3. エラーなしでモデルが保存可能になるまで、このプロセスを繰り返します。

モデルのオリジナル エンコードが現在のセッションで行ったすべてのテキストの変更を表すことは、適切ではありませんが可能です。たとえば、現在のエンコードが B であるセッションでオリジナル エンコードが A であるモデルを開くと仮定します。さらに、A および B とは異なるエンコードをもつ文字を含めるためにモデルを編集してからモデルを保存するとします。さらに、B の x に対するエンコードが A の y のコーディングと同じで、B が有効なときに x をモデルに挿入し、モデルを保存し、A が有効なときにモデルを再度開くとします。この場合、Simulink ソフトウェアは、x を y として表示します。このような間違いの可能性を警告するためにソフトウェアは、現在のエンコードとオリジナルのエンコードが異なるモデルを保存するときに、オリジナルがモデル ファイルに保存されるすべての文字を不適切ではあってもエンコード可能である場合は、警告メッセージを表示します。

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

SLX 形式で Simulink モデルを保存することは、通常、ファイル サイズを削減し、韓国語の文字と中国語の文字を含む MDL ファイルの読み込みと保存に関連してこれまでのリリースに存在したいくつかの問題を解決しました。

モデル ファイル形式を選択するときの考慮事項は以下のとおりです。

  • 韓国語の文字と中国語の文字のモデルの読み込みと保存を行っている場合は SLX を使用します。

  • 圧縮されたモデル ファイルのメリットを得るには SLX を使用します。

  • SLX または MDL のいずれを使用するかにかかわらず、モデルに現在のロケールでサポートされない文字が含まれていれば、Simulink はそれを検出し、警告を出します。SLX の場合は、モデル アドバイザーが役立ちます。「対象外の文字がないかファイルをチェック」を参照してください。

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

Simulink ソフトウェアの最新バージョンで作成されたモデルを、Simulink 7.0 (R2007b) などの以前のバージョンで使われる形式にエクスポート (保存) することが可能です。たとえば、このようなエクスポートを実行することで、Simulink 製品の以前のバージョンしか利用できない同僚に対し、モデルを使用できるようにすることができます。

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

  1. Simulink エディターで、[ファイル][保存] の順に選択します。これにより、最新バージョンの Simulink にコピーが保存されます。このステップにより互換性の問題を回避することができます。

  2. Simulink エディターで、[ファイル][モデルのエクスポート先][以前のバージョン] を選択します。

    [前バージョンにエクスポート] ダイアログ ボックスが表示されます。

  3. ダイアログ ボックスの [ファイルの種類] リストからモデルのエクスポート先となる以前のバージョンを選択します。

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

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

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

Simulink の以前のバージョンで作成されたモデルを開き、そのモデルを別の前のバージョンにエクスポートできます。モデルを 1 つ前のバージョンから別のバージョンに保存する必要がある場合は、次の手順を使用すると、互換性の問題を回避できます。

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

  2. 変更を加える前に、[ファイル][保存] を選択してモデルを現在のバージョンで保存します。

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

  3. [ファイル][モデルのエクスポート先][以前のバージョン] を選択して、モデルを Simulink の以前のバージョンで保存します。

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

  5. [ファイル][保存] を選択して、モデルを以前のバージョンで保存します。

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

また、以前のバージョンからのモデルでの作業に役立つ Simulink 設定も参照してください。

この情報は役に立ちましたか?