メインコンテンツ

データ ディクショナリとは

R2026b

データ ディクショナリは、モデルに関連するデータの永続リポジトリです。ベース ワークスペースを使用して、シミュレーション中にモデルが使用する設計データを格納することもできます。ただし、データ ディクショナリにはさらに多くの機能があります。

データ ディクショナリは、パラメーターと信号を定義する設計データを格納します。また、モデルの動作を定義するデータを含みます。データ ディクショナリには、Inport ブロックと Outport ブロックを入出力するモデル シミュレーションの入力または出力であるシミュレーション データは格納されません。

データ ディクショナリは、各キーを対応する値と関連付けたデータ構造体である MATLAB® ディクショナリ データ型に関連付けられていません。MATLAB ディクショナリ データ型の詳細については、ディクショナリを参照してください。

ディクショナリの機能

ディクショナリの機能利点
データ ソースとしてのディクショナリディクショナリのエントリは永続的です。開発中にデータを再読み込みする必要はありません。
明示的なデータ モデル リンクデータ ディクショナリをモデルのデータ ソースとして定義することができます。モデル シミュレーションおよびコード生成の際に、モデルはデータ ディクショナリからデータを取得します。
バージョンの処理

以下が可能です。

  • 前バージョンの Simulink® に保存されたモデル データを含むデータ ディクショナリをモデルに接続する。

  • 前バージョンの Simulink に保存されたモデルのデータ ディクショナリを、新しいバージョンの Simulink で保存されたモデルのバージョンで使い続ける。

  • 前バージョンの Simulink で作成されたモデルで使用するためにデータ ディクショナリをエクスポート (保存) する。

変更の追跡エントリを変更すると、そのステータスがディクショナリで更新され、トラッキングできるメタデータとして格納されます。ディクショナリでは、誰がいつ変更を加えたかについてもトラッキングされます。変更を表示したり、元に戻したりすることもできます。
エントリの比較2 つのディクショナリのエントリの値を比較します。
参照ディクショナリへのデータ グループ化参照ディクショナリにデータ項目を分割して整理します。
モデル データ依存性モデルでのエントリ使用方法を調べます。
欠損している変数を修正するオプション

コンパイル時に未定義として報告される変数の場合、次のようになります。

  • 変数が存在しない場合、新しい変数を作成するか、ファイルを読み込む。

  • 変数が削除されている場合、削除を元に戻すか、新しい変数を作成する。

  • 変数の名前が変更されている場合、変数への参照の名前を変更するか、名前が変更された変数をコピーして新しい変数を作成する。

参照データの格納および分割機器の仕様などの、モデルに関連していてもシミュレーション中にモデルによって使用されないデータを格納および分割します。
データを定義するための統合インターフェイスモデル エクスプローラーを使用して、ディクショナリの設計データを操作します。
メモリの増分更新メモリ使用量を最小化することにより、パフォーマンスとスケーラビリティを改善します。
要件のトレーサビリティ リンクデータ ディクショナリのエントリから要件ドキュメント内にアクセスします。

ディクショナリのセクション

Simulink データ ディクショナリは、次の 4 つのセクションで構成されます。

  • Design Data: モデルの動作を決定するパラメーター、信号および設計データを定義する変数およびデータ型が含まれます。ディクショナリで作成またはインポートされた設計データは、このセクションに格納されます。

    このセクションに格納できるのは、特定のクラスおよびデータ型のみです。詳細については、有効な設計データ クラスを参照してください。

  • アーキテクチャ データ: 端子インターフェイス、データ型、システム全体の定数とそのプラットフォーム プロパティなど、Simulink およびアーキテクチャ モデル インターフェイスで使用される共有定義を保存します。アーキテクチャ データを検査および変更するには、モデル エクスプローラーからアーキテクチャ データ セクションを選択して [アーキテクチャ データ エディターを開く] ボタンをクリックすることでアクセスできるArchitectural Data Editorを使用します。アーキテクチャ データの詳細については、What Is Architectural Data?を参照してください。

  • Configurations:シミュレーション時にモデルを構成する方法を決定する、Simulink.ConfigSet クラスのオブジェクトであるコンフィギュレーション セットが含まれます。これらのオブジェクトは、サンプル時間やシミュレーション開始時間などの属性を制御します。

    コンフィギュレーション セットをデータ ディクショナリに格納する場合、コンフィギュレーション参照を使用してコンフィギュレーション セットにアクセスします。データ ディクショナリがリンクされているモデルは、コンフィギュレーション参照をディクショナリ内のコンフィギュレーション セットに関連付けます。コンフィギュレーション参照の詳細については、コンフィギュレーションの複数のモデル間での共有を参照してください。

    このセクションには Simulink.VariantConfigurations クラスに属するバリアント構成オブジェクトも格納できます。これらのオブジェクトには、バリアント コンフィギュレーション、バリアントのアクティブな設定と既定の設定、各コンフィギュレーションに関連付けられている制御変数の定義に関する情報が格納されます。

    メモ

    システムで使用できないコンポーネントを含むコンフィギュレーション セットをデータ ディクショナリから読み込むと、欠落しているコンポーネントのパラメーターが既定値にリセットされます。

  • Embedded Coder ディクショナリ: Embedded Coder® で使用するためのコード生成定義が含まれます。データ ディクショナリに格納されているコード定義を検査および変更するには、モデル エクスプローラーではなく Embedded Coder ディクショナリ (Embedded Coder)を使用します。

  • Other Data: モデルに関連していてもシミュレーション中にモデルによって使用されない情報が含まれます。このセクションを使用して、物理的な機器について説明するデータやモデルが表すプロセスなどの参照情報を格納します。

    このセクションにはほぼすべての組み込みクラスまたはカスタム クラス、データ型を格納できます。詳細については、無効なその他のデータ クラスを参照してください。

データ ディクショナリのファイル形式

R2026b 以降

データ ディクショナリは、圧縮されたバイナリ形式または圧縮されていない JSON 形式で保存できます。ディクショナリを JSON 形式で保存すると、Simulink はディクショナリのすべてのセクションを単一の JSON ファイルに保存します。どちらの形式もファイル拡張子として .sldd を使用し、既存のデータ ディクショナリのワークフローは、基となる形式に関係なく同様に機能します。

メモ

Simulink 環境の外部で JSON データ ディクショナリを直接変更すると、構造的な不整合や無効なデータ形式が発生し、読み込みに失敗する原因となる可能性があります。

既定では、Simulink は新規データ ディクショナリをバイナリ形式で作成します。新規データ ディクショナリの既定の形式として JSON を選択するには、Simulink ツールストリップの [モデル化] タブで [環境]、[Simulink 設定] を選択します。[Simulink] 、 [データ ディクショナリ ファイル] ペインで、[新しいデータ ディクショナリのファイル形式] を [非圧縮テキスト] に設定します。あるいは、set_param 関数を使用して、プログラムによって既定値を設定します。

set_param(0,"SLDDFileFormat","uncompressed-text")

既存のバイナリ データ ディクショナリを JSON に変換するには、モデル エクスプローラーの [モデルの階層構造] ペインでデータ ディクショナリ ノードを選択します。次に、[ダイアログ] ペインで [ファイル形式] を [非圧縮テキスト] に設定します。

あるいは、Simulink.data.Dictionary オブジェクトの FileFormat プロパティを設定して、プログラムによってデータ ディクショナリの形式を変換します。

dd = Simulink.data.dictionary.open("myDictionary.sldd");
dd.FileFormat = "uncompressed-text";
saveChanges(dd);

メモ

JSON 形式のデータ ディクショナリをモデル テスト ダッシュボード (Simulink Check)または依存関係アナライザーで使用することはサポートされていません。

JSON ディクショナリでのバージョン管理

R2026b 以降

Git™ などのバージョン管理システムにデータ ディクショナリを格納する場合、JSON 形式を使用すると、圧縮されたバイナリ形式を使用する場合と比べてリポジトリのサイズが管理しやすい状態に維持されます。JSON データ ディクショナリの初期コミットではサイズが大きくなりますが、それ以降のコミットでは差分のみが格納されるため、必要なスペースが少なくて済みます。さらに、JSON ファイルは、標準的なコミット前およびコミット後のバージョン管理ワークフローで差分を取ることができます。

Git merge コマンドなどの標準的なテキスト マージ ツールを使用して JSON データ ディクショナリをマージすることは推奨されません。代わりに、差分生成とマージに mlMerge 関数を呼び出すように Git を構成することで、MATLAB 比較ツールを使用します。詳細については、MATLAB を比較とマージに使用するための外部ソース管理のカスタマイズを参照してください。

Simulink 環境でデータ ディクショナリの比較およびマージを行うには、visdiff 関数を使用して比較ツールを開きます。比較ツールを使用することで、形式に関係なくディクショナリを比較できます。

異なるバージョンの Simulink で作成されたモデルにおけるディクショナリの使用

Simulink は、データ ディクショナリのバージョン処理を提供しています。以下のイベントが発生したとき、Simulink はディクショナリのデータを同期して、モデルの作成に使用された Simulink バージョンにかかわらず、モデルでディクショナリを使用できるようにします。

  • 前バージョンの Simulink で保存されたデータ ディクショナリをモデルにリンクする。たとえば、R2018a で保存されたデータ ディクショナリを、R2018b で開発するモデルにリンクする場合。

  • データ ディクショナリがリンクされていて、Simulink の前バージョンで保存されたモデルを開く。たとえば、R2018a で開発した、データ ディクショナリ使用のモデルを、R2018b で開いて開発を続ける場合。

データ ディクショナリが保存された Simulink バージョンを表示するには、現在のフォルダー ブラウザーでデータ ディクショナリをクリックし、[詳細] ペインの [Simulink バージョンで保存] フィールドを特定します。また、異なるバージョンの Simulink を使用して作成したモデルで使用するために、データ ディクショナリをエクスポート (保存) することもできます。新しい Simulink のバージョンで保存されたデータ ディクショナリを Simulink の古いバージョンで使用するには、最初にエクスポートしなければなりません。

データ ディクショナリをエクスポートするには、次の手順を行います。

  1. MATLAB コマンド ウィンドウの [現在のフォルダー] ペインで、データ ディクショナリの場所に移動します。

  2. ディクショナリの名前をダブルクリックします。

  3. モデル エクスプローラーで、データ ディクショナリの名前を右クリックします。ディクショナリに変更を加えた場合、コンテキスト メニューから [変更の保存] を選択します。

  4. データ ディクショナリの名前を右クリックします。コンテキスト メニューで、[前バージョンにエクスポート] を選択します。

  5. [データ ディクショナリを前のバージョンにエクスポート] ダイアログ ボックスで、ディクショナリを保存する Simulink の旧バージョンを指定します。Simulink が新しいバージョンのディクショナリを配置するためのフォルダーを指定します。ここで指定するフォルダーには、既存のディクショナリ階層の一部を構成するディクショナリを含めることはできません。次に、[OK] をクリックします。

    Export Data Dictionary to Previous Version dialog box with Version set to R2014a and Folder not yet selected

    メモ

    ターゲット バージョンが R2026b より前である場合、データ ディクショナリは圧縮バイナリ形式で保存されます。ターゲット バージョンが R2026b 以降である場合、データ ディクショナリは現在の形式 (圧縮バイナリまたは JSON) で保存されます。

  6. 指定したフォルダーに新しいバージョンのデータ ディクショナリが存在することを確認します。

ディクショナリのエントリの管理と編集

データ ディクショナリでエントリを作成、変更、表示するには、モデル エクスプローラーを使用します。詳細については、ワークスペース変数の作成、編集、管理およびディクショナリ データの変更表示と変更取り消しを参照してください。

ディクショナリのエントリをプログラムで管理する場合は、プログラムによるディクショナリへのデータの格納を参照してください。

ディクショナリの参照

親ディクショナリで 1 つ以上のディクショナリを参照できます。参照ディクショナリのデータは親ディクショナリに表示されます。親ディクショナリ内のデータは、子ディクショナリに親ディクショナリへの参照が設定されている場合にのみ、子ディクショナリから参照できます。特にモデル参照階層では、データを有意義に分割する際にこの手法を使用します。詳細については、参照ディクショナリを使用したディクショナリ データの分割とデータ ディクショナリを使用したモデル参照階層用のデータ分割を参照してください。

ファイル形式のインポートおよびエクスポート

ファイル形式ディクショナリへのインポートディクショナリからのエクスポート
MAT ファイル✓✓
MATLAB スクリプト✓✓

Allow Access to Base Workspace

[モデルからベース ワークスペースへのアクセスを有効にする] プロパティと [ディクショナリからベース ワークスペースへのアクセスを有効にする] プロパティの詳細については、ベース ワークスペースでの共有データの継続使用を参照してください。

参考

トピック