このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
金宝app®データディクショナリは,MATLAB®変数、データ オブジェクト、データ型などのモデル データを永続的に保存します。データ ディクショナリの基本的な情報は、データ ディクショナリとはを参照してください。
以下の例では,単一のスタンドアロンモデルを単一のデータディクショナリにリンクする方法を説明します。
メモ
金宝app仿真软件は,Timeseriesオブジェクトなどのシミュレーションデータをデータディクショナリにインポートしません。
設計データをベース ワークスペースに読み込むf14
モデルを開きます。
モデルのコピーを現在のフォルダーに保存します。コピーを開きます。
金宝app模拟エディターの[モデル化)タブにある[設計]の下で,[データディクショナリへのリンク]をクリックします。
[モデルプロパティ]ダイアログボックスで,[新規]をクリックしてデータ ディクショナリを作成します。
データディクショナリに名前を付けて保存し,[適用]をクリックします。
[データの移行]をクリックします。
参照された変数のコピーについてのメッセージに対して、[移行]をクリックします。
(オプション)[モデルからベースワークスペースへのアクセスを有効にする]をオフにします。
(好的)をクリックします。
ディクショナリを開くには、金宝app模拟エディターで、左下隅にあるモデル データ バッジをクリックしてから,[外部データ]リンクをクリックします。ディクショナリのコンテンツを検査するには、モデル エクスプローラーの[モデルの階層構造]ペインで、[外部データ]ノードの下にあるディクショナリノードを展開します。
この例では、親モデルとその参照モデルすべてを単一のデータ ディクショナリにリンクする方法を示します。
モデル例sldemo\U mdlref\U datamngt
を開きます。このモデルはモデルsldemo_mdlref_counter_datamngt
を参照しています。
モデルのコピーを現在のフォルダーに保存します。
最上位モデルsldemo\U mdlref\U datamngt
を開きます。
金宝app模拟エディターの[モデル化)タブにある[設計]の下で,[データディクショナリへのリンク]をクリックします。
[モデルプロパティ]ダイアログボックスで,[新規]をクリックしてデータ ディクショナリを作成します。
データディクショナリに名前を付けて保存し,[適用]をクリックします。
まだディクショナリを使用していない参照モデルのリンクについてのメッセージに対して、[すべてのモデルを変更]をクリックします。
[データの移行]をクリックします。
参照された変数のコピーについてのメッセージに対して、[移行]をクリックします。
(オプション)[モデルからベースワークスペースへのアクセスを有効にする]をオフにします。
(好的)をクリックします。
モデルをデータディクショナリにリンクした後,ベースワークスペースからディクショナリにデータを移行することができます。データの移行を選択する場合,以下を考慮します。
预处理
コールバックなどのモデルコールバックを使用して,モデルが読み込まれたときに設計データをファイルからベースワークスペースに読み込むことができます。たとえば,次のコールバックは,垫ファイルmyData.mat
から設計データを読み込みます。
加载myData
データディクショナリに移行した後,これらのコールバックは継続して設計データをベースワークスペースに読み込みます。モデルはその後,設計データをディクショナリから導出するため,これらのデータ読み込みコールバックを手動で削除するか,コメントアウトします。
依存関係アナライザーを使用して,データ読み込みコールバックを見つけることができます。モデル依存関係の解析を参照してください。
新しいモデルは既定でベースワークスペースへのアクセスがありますが,データディクショナリにリンクしてもアクセスは失われません。モデルがベースワークスペース,データディクショナリ,またはその両方にアクセスできるという前提で,スクリプトを記述しなければなりません。
スクリプトでハンドル基础
を使用して、ベース ワークスペースへの明示的な参照を作成する場合は、これらの参照の変更を検討してください。
次の例を考えてみます。ここで、スクリプトはベース ワークスペースで変数传感器
を検索し、传感器噪声
の値に応じてパラメーター使可能
を設定します。
如果evalin('base','sensor.noiseEnable')启用='Enabled';否则启用='Disabled';结束
データ ディクショナリに移行するときは、次のように、基础
への明示的な参照を置き換えます。
如果S金宝appimulink.data.evalinGlobal(myExampleModel,'sensor.noiseEnable')启用='Enabled';否则启用='Disabled';结束
金宝appSimulink.data.evalinGlobal
は指定したモデルのグローバルスコープ内の式を評価します。ここで,モデルがディクショナリにリンクされていない場合,グローバルスコープはデータディクショナリまたはベースワークスペース内の範囲であると考えられます。
モデルがデータ ディクショナリにリンクされていて、モデルがベース ワークスペースにアクセスできない場合 (ベース ワークスペースでの共有データの継続使用を参照)、金宝app模拟は、[モデル パラメーター設定] ダイアログ ボックスで指定されているストレージ クラス情報を無視します。
金宝app模拟インターフェイスを使用してデータ ディクショナリを使用するモデルを移行して、ベース ワークスペース データの移行を選択する場合、模拟はモデルのストレージ クラス情報も移行します。モデルにベース ワークスペース内の変数のストレージ クラス情報が含まれる場合、模拟は移行時にこれらの変数を金宝appSimulink.参数
オブジェクトに変換します。次に、金宝app模拟はモデルのストレージ クラス情報を使用して、これらの金宝appSimulink.参数
オブジェクトのストレージ クラスを設定します。
このモデルをベースワークスペースに再度移行する場合,仿金宝app真软件はモデルのストレージクラス情報を復元しません。これらの変数のストレージクラスを保持するには,データディクショナリのパラメーターオブジェクトを使用します。モデルのストレージクラス情報を手動でリセットすることもできます。
コマンド ラインからモデルの数据字典
プロパティを設定する場合、関数tunablevars2parameterobjects
を使用して、調整可能な変数を金宝appSimulink.参数
オブジェクトに変換できます。
モデル参照を使用して,大規模なシステムから小規模なコンポーネントとサブコンポーネントにモデルを分割する場合,データディクショナリを作成して“設計データ”を分離できます。設計データは,ブロックパラメーターと信号の特性を指定するためにモデルが使用するワークスペース変数のセットです。
モデル参照階層内のモデルは通常、データを共有します。データの所有者、共有される変数の数、共有方法の複雑度は、ディクショナリの使用方法に影響する場合があります。
データ定義の重複は、以下の条件において、モデル参照階層内で存在することができます。
階層内の各モデルが 1.つの定義のみ参照できる。
階層内ではモデル間で定義は同じでなければならない。
詳細については,金宝app仿真软件モデルの変数とオブジェクトの保存場所の決定を参照してください。
布尔
とint32
や仿金宝app真软件データディクショナリの[设计资料]セクション内の構造など 金宝app模拟がサポートするデータ型を使用する MATLAB変数をインポート、格納、または作成できます。また、これらのクラスのオブジェクトやこれらのクラスをサブクラス化するほとんどのクラスのオブジェクトを使用することもできます。
金宝appSimulink.AliasType
金宝app模拟总线
金宝appSimulink.NumericType
金宝appSimulink.参数
金宝appSimulink.LookupTable
金宝app模拟断点
金宝app仿真软件。信号
金宝app仿真软件。变体
金宝appSimulink.data.dictionary.EnumTypeDefinition
embedded.fi
fimath
努姆尔蒂
さらに,金宝app仿真软件データディクショナリの[コンフィギュレーション]セクションで、次のクラスの構成オブジェクトをインポート、格納、作成できます。
以下を除いて、金宝app模拟データ ディクショナリの[その他のデータ]セクションにある多くの組み込みクラスおよびカスタムクラスまたはデータ型のデータオブジェクトのインポート,格納,または作成を行うことができます。
組み込みクラスまたはカスタムクラスから作成されたオブジェクトの配列
以下のいずれかの名前のプロパティをもつカスタム クラス:
最后修改
最后修改
数据来源
地位
变体
ベース ワークスペース内の変数を参照する从工作空间ブロックがモデルに含まれている場合、そのモデルをデータ ディクショナリに移行できます。ただし、ブロックが参照する変数の性質に応じて、移行プロセスは異なるアクションを実行します。
変数の値が时间序列
オブジェクトではない場合、移行プロセスは変数をデータ ディクショナリの [设计资料]セクションにインポートします。ブロックは引き続き変数を参照できます。
変数の値が时间序列
オブジェクト (データ ディクショナリでは格納できない)、または 时间序列オブジェクトと同一のフィールドをもつ構造体の場合、移行プロセスは変数をインポートしません。その場合、ブロック線図を更新またはモデルをシミュレートしようとすると、从工作空间ブロックは変数を特定できず、エラーを発行します。このような場合は、関数evalin
を使用してベースワークスペース変数を参照するようにブロックを構成できます。詳細については,从工作空间を参照してください。
金宝app模拟は、非アクティブなバリアント モデルのみが使用する変数をデータ ディクショナリに自動的に移行できません。
元
クラス オブジェクトおよび时间序列
オブジェクトなどの特定の種類の設計データをデータディクショナリの(设计数据)セクションにインポートできません。
金宝app模拟では、データ ディクショナリにリンクされたモデルで暗黙的な信号の関連付けは使用できません。データ ディクショナリを使用するには、モデル コンフィギュレーション パラメーターの[信号の関連付け]を[明示的のみ]
または[なし]
に設定します。
モデル参照階層がデータディクショナリに既にリンクされている場合,その階層の一部である参照モデルを保護できます。ただし,保護されたモデルが含まれるモデル参照階層を移行する場合は,シミュレーションが失敗します。
つまり、モデルを保護する前に、データ ディクショナリを使用するモデルを移行します。
データディクショナリに保存される仿真金宝app软件変数またはデータ型を含む式の評価はサポートされない可能性があります。
共有データを継続してベースワークスペースに格納して,以下を行うことにより,モデル固有のデータをディクショナリに格納します。
モデルに対してベース ワークスペースへのアクセスを有効にする。
データディクショナリからベースワークスペースへのアクセスを有効にする。
モデルに対してベース ワークスペースへのアクセスを有効にするには、[モデル プロパティ] ダイアログ ボックスの[外部データ]タブで[ベース ワークスペースへのアクセスを有効にする]をオンにします。新規のモデルでは,このチェックボックスは既定でオンになっています。モデルがデータディクショナリにリンクされていない場合,このオプションをオンにしなければなりません。
データディクショナリからベースワークスペースへのアクセスを許可することもできます。既存のディクショナリの場合は,モデルエクスプローラーで[ディクショナリからベース ワークスペースへのアクセスを有効にする]をオンにします。
データ ディクショナリからベース ワークスペースのアクセスを許可する場合、次の制限および影響が考えられます。
一般的に、ディクショナリを介してベース ワークスペース データを操作することはできません。
ディクショナリのコンテンツをモデル エクスプローラーで検査する場合、ベース ワークスペース データは表示できません。ベース ワークスペース データを操作するには、[モデルの階層構造]ペインで、(基础工作)ノードを選択します。
データ ディクショナリのプログラム インターフェイスを使用して (プログラムによるディクショナリへのデータの格納を参照) ベース ワークスペース データを操作するために、金宝appSimulink.data.dictionary.Section
オブジェクトでは以下の関数のみ使用できます。
assignin
存在
evalin
代わりに金宝appSimulink.data.AssigningGlobal
などの関数を使用することを検討してください。データディクショナリの使用への移行を参照してください。
ディクショナリエントリへの変更を表示したり元に戻したりする機能といった変更追跡機能(ディクショナリのエントリの変更表示と変更取り消しを参照) は、ベース ワークスペース データには適用されません。
ディクショナリからデータをエクスポートする場合 (ディクショナリ データのインポートとエクスポートを参照),金宝app仿真软件はベースワークスペースデータを無視します。
金宝app仿真软件は,ベースワークスペースおよびディクショナリを単一のワークスペースとして扱います。ただし2つの変数(1つはベースワークスペース内でもう1つはディクショナリ内)に同じ名前を定義することはできます。この場合,変数は同一でなければならず,ディクショナリの変数が使用されます。
例については、データ ディクショナリを使用したモデル参照階層用のデータ分割を参照してください。