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