主要内容

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

金宝appデータ ディクショナリを使用するモデルの移行

金宝app®データディクショナリは,MATLAB®変数、データ オブジェクト、データ型などのモデル データを永続的に保存します。データ ディクショナリの基本的な情報は、データ ディクショナリとはを参照してください。

ディクショナリを使用する単一モデルの移行

以下の例では,単一のスタンドアロンモデルを単一のデータディクショナリにリンクする方法を説明します。

メモ

金宝app仿真软件は,Timeseriesオブジェクトなどのシミュレーションデータをデータディクショナリにインポートしません。

  1. 設計データをベース ワークスペースに読み込むf14モデルを開きます。

  2. モデルのコピーを現在のフォルダーに保存します。コピーを開きます。

  3. 金宝app模拟エディターの[モデル化)タブにある[設計]の下で,[データディクショナリへのリンク]をクリックします。

  4. [モデルプロパティ]ダイアログボックスで,[新規]をクリックしてデータ ディクショナリを作成します。

  5. データディクショナリに名前を付けて保存し,[適用]をクリックします。

  6. [データの移行]をクリックします。

  7. 参照された変数のコピーについてのメッセージに対して、[移行]をクリックします。

  8. (オプション)[モデルからベースワークスペースへのアクセスを有効にする]をオフにします。

  9. (好的)をクリックします。

  10. ディクショナリを開くには、金宝app模拟エディターで、左下隅にあるモデル データ バッジをクリックしてから,[外部データ]リンクをクリックします。ディクショナリのコンテンツを検査するには、モデル エクスプローラーの[モデルの階層構造]ペインで、[外部データ]ノードの下にあるディクショナリノードを展開します。

ディクショナリを使用するモデル参照階層の移行

この例では、親モデルとその参照モデルすべてを単一のデータ ディクショナリにリンクする方法を示します。

  1. モデル例sldemo\U mdlref\U datamngtを開きます。このモデルはモデルsldemo_mdlref_counter_datamngtを参照しています。

  2. モデルのコピーを現在のフォルダーに保存します。

  3. 最上位モデルsldemo\U mdlref\U datamngtを開きます。

  4. 金宝app模拟エディターの[モデル化)タブにある[設計]の下で,[データディクショナリへのリンク]をクリックします。

  5. [モデルプロパティ]ダイアログボックスで,[新規]をクリックしてデータ ディクショナリを作成します。

  6. データディクショナリに名前を付けて保存し,[適用]をクリックします。

  7. まだディクショナリを使用していない参照モデルのリンクについてのメッセージに対して、[すべてのモデルを変更]をクリックします。

  8. [データの移行]をクリックします。

  9. 参照された変数のコピーについてのメッセージに対して、[移行]をクリックします。

  10. (オプション)[モデルからベースワークスペースへのアクセスを有効にする]をオフにします。

  11. (好的)をクリックします。

データディクショナリに移行する前の考慮事項

モデルをデータディクショナリにリンクした後,ベースワークスペースからディクショナリにデータを移行することができます。データの移行を選択する場合,以下を考慮します。

データ読み込みコールバックのチェック

预处理コールバックなどのモデルコールバックを使用して,モデルが読み込まれたときに設計データをファイルからベースワークスペースに読み込むことができます。たとえば,次のコールバックは,垫ファイル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つはディクショナリ内)に同じ名前を定義することはできます。この場合,変数は同一でなければならず,ディクショナリの変数が使用されます。

共有データをもつ複雑なモデルの階層構造の移行

例については、データ ディクショナリを使用したモデル参照階層用のデータ分割を参照してください。

参考

|

関連するトピック