主要内容

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

モデル参照の基礎

模型ブロックを使用してモデルを別のモデルに含めることができます。模型ブロックの各インスタンスは“モデル参照”になります。シミュレーションとコード生成では,“参照モデル”内のブロックが1つのユニットとして一緒に実行されます。参照モデルを含むモデルは“親モデル”になります。親モデルと参照モデルの集合は“モデルの階層構造”を形成します。

モデルは,モデルやその派生エンティティに変更を加えなくても,スタンドアロンモデルや参照モデルとして機能します。参照モデルをスタンドアロンモデルとして使用するには,参照モデルは上位モデルからしか取得できないデータに依存できません。

モデル参照のメリット

サブシステムと同様に,モデル参照を利用すると大規模なモデルを階層的に構成できます。ライブラリと同様に,モデル参照を利用すると,ブロックのセットを一度定義し,それを繰り返し使用することができます。モデル参照には,サブシステムやライブラリにはない利点がいくつかあります。以下の利点のいくつかは,模型ブロックのコンテキストとは独立して参照モデルをコンパイルできることによるものです。

  • モジュール開発

    参照モデルはそれを参照するモデルとは独立して開発できます。

  • モデルの保護

    金宝app®编码器™のライセンスでは,参照モデルの内容が表示されないため,知的財産を開示することなくモデルを配布できます。

    金宝app仿真软件のライセンスでは,サードパーティが提供する保護モデルを参照できます。保護モデルに付与された許可に応じて,保護モデルのコードの表示,シミュレーション,および生成を実行できます。

  • 参照による使用

    モデルは何度でも参照できるので,同じものを繰り返しコピーする必要がなく,同じモデルを複数の異なるモデルから参照できます。

  • インクリメンタルな読み込み処理

    金宝app仿真软件ソフトウェアは,必要になった時点で参照モデルを読み込むため,モデルの読み込みが速くなります。

  • 高速シミュレーション

    金宝app仿真软件ソフトウェアは参照モデルをコードに変換し,そのコードを実行することによってモデルのシミュレーションができるので,対話型のシミュレーションより速く実行できます。

  • インクリメンタルなコード生成

    高速シミュレーションでのコード生成は,最後にコード生成が行われてからモデルに変更が加えられた場合にのみ生成されます。

  • 独立したコンフィギュレーションセット

    参照モデルが使用するコンフィギュレーションセットはその親や他の参照モデルと同じである必要はありません。

モデル参照の利点をまとめたビデオについては,使用模型引用的模块化设计を参照してください。

モデル参照,サブシステム,およびライブラリを比較するには,モデルコンポーネントのタイプの選択を参照してください。同じモデル内で複数のコンポーネント化手法を使用できます。

モデルの階層構造

参照モデルには,下位モデルを参照する模型ブロックを含めることができます。“最上位モデル”は,モデル参照の階層構造の中で最上位にあるモデルです。モデル参照のレベルが 1 層のみの場合、親モデルと最上位モデルは同じです。循環継承を避けるために、模型ブロックは直接的にも間接的にも,モデルの階層構造内で上位にあるモデルを参照できません。次の図は,循環継承を示しています。

親モデルには,同じモデルを参照する模型ブロックを複数含めることができますが,その参照モデルにグローバルデータが定義されていないことが条件です。たとえば,sldemo_mdlref_basicモデルにはsldemo_mdlref_counterモデルを参照する3つの模型ブロックが含まれています。

同じ参照モデルを任意のレベルの別の親モデルに含めることもできます。

模型ブロックと参照モデルのインターフェイス

模型ブロックには,その参照先モデルのルートレベルの入力端子,出力端子,および制御端子に対応する入力端子,出力端子,および制御端子が表示されます。参照モデルを親モデル内の別の要素に接続するには,模型ブロックの端子を使用します。模型ブロックの端子に信号を接続すると,参照モデル内の対応する端子に信号が接続されます。

モデルsldemo_mdlref_basicでは,各模型ブロックに3つの入力(2つの常数ブロックと1つの脉冲发生器ブロック)があります。各模型ブロックには,スコープに記録された1つの出力信号があります。各脉冲发生器ブロックからの入力信号は異なるサンプル時間を使用するため,各模型ブロックからの出力信号はモデルインスタンスごとに異なります。

親モデルに接続するために,参照モデルsldemo_mdlref_counterに3つの轮廓尺寸ブロック(较低的,および输入1)とつの外港ブロック(输出)があります。

参照モデルの信号属性は,模型ブロックのコンテキストとは独立しています。たとえば,信号次元とデータ型は模型ブロック境界で伝播されません。参照モデルの信号属性を定義するには,ルートレベルの轮廓尺寸ブロックと在公共汽车元素ブロックのブロックパラメーターを定義します。

詳細については,モデル参照のインターフェイスと境界を参照してください。

モデルワークスペースとデータディクショナリ

各モデルには,変数値を保存するための独自のワークスペースが用意されています。モデルの階層構造内で、各モデル ワークスペースは一意の名前空間として機能します。このため、同じ変数名を複数のモデル ワークスペース内で使用できます。モデル間でデータを共有するには、データ ディクショナリを使用できます。

データ定義の重複は,以下の条件において,モデル参照階層内で存在することができます。

  • 階層内の各モデルが1つの定義のみ参照できる。

  • 階層内ではモデル間で定義は同じでなければならない。

変数やオブジェクトの格納場所の詳細については,金宝app仿真软件モデルの変数とオブジェクトの保存場所の決定を参照してください。

参照モデルの実行

外部信号を使用して,外部シミュレーション中に模型ブロックを実行するかどうかを制御する方法については,条件付き実行のための参照モデルの変更を参照してください。

不同的子系统ブロックには,バリアントシステムとして模型ブロックを含めることができます。バリアントシステムの詳細については,バリアントとは,およびどのような場合にそれを使用するかを参照してください。

既定では,再利用可能な参照モデルの各模型ブロックインスタンスでブロックパラメーターに同じ値が使用されます。再利用可能な参照モデルのインスタンスごとに異なるブロックパラメーター値を指定するには,モデル引数を作成します。たとえば,获得ブロックをモデルsldemo_mdlref_counterに追加すると,モデル引数によりこのモデルの3つのインスタンスはそれぞれ異なるゲイン値を使用します。再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。

モデルマスクでは,模型ブロックの外観を制御し,ブロックでのモデル引数の表示をカスタマイズできます。モデルマスク要件については,モデルマスクを参照してください。

参照モデルのシミュレーションとコード生成

参照モデルをインタープリターによってシミュレーションすることも(ノーマルモード),参照モデルをコードにコンパイルし,そのコードを実行してシミュレーションすることもできます(アクセラレータモード)。詳細については,モデルの階層構造内のシミュレーションモードの選択を参照してください。

金宝app仿真软件キャッシュファイルには,シミュレーションとコード生成を高速化するビルドアーティファクトが含まれています。詳細およびワークフロー例については,シミュレーションを高速化するための仿金宝app真软件キャッシュファイルの共有を参照してください。

モデル参照階層向けのコード生成の詳細については,モデル参照階層向けのコードの生成(金宝app仿真软件编码器)を参照してください。

参考

ブロック

関連する例

詳細