ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

モデル参照の概要

モデルの参照について

モデルを別のモデルに含めるには Model ブロックを使用します。Model ブロックの各インスタンスは、別のモデルへの参照 ("参照モデル" と呼ばれます) を表します。シミュレーションとコード生成では、参照されたモデルがそれを参照する Model ブロックを置き換えます。参照モデルを含むモデルは "親モデル" になります。親モデルと参照モデルの集合はモデル参照階層を形成します。参照階層の親モデルとそれに属するすべてのモデルは 1 つの分枝を形成します。

参照モデルのインターフェイスは以下のもので構成されています。

  • 入出力端子 (および条件付き参照モデルの場合は制御端子)

  • パラメーター引数

Model ブロックには、参照するモデルのルート レベルの入力と出力に対応する入力と出力が表示されます。これらの端子によって、親モデルのブロック線図に参照モデルを組み込むことができます。参照モデルのインターフェイスは、モデルが参照されているコンテキストではなく、参照モデルのブロックの属性を定義します。たとえば、次元やデータ型などの属性は、Model ブロックの境界を越えては伝播しません。参照モデルのルート Inport を使用してインターフェイスの属性を設定します。

たとえば、sldemo_mdlref_basic モデルは、同じ参照モデル sldemo_mdlref_counter の 3 つのインスタンスを参照する Model ブロックを含んでいます。

Model ブロックの端子を使うと、その参照モデルを親モデル内の別の要素に接続できます。Model ブロックの端子に信号を接続することは、参照モデル内の対応する端子に信号を接続するのと同じです。たとえば、Model ブロック CounterA には、2 つの Constant ブロックと 0.1 のサンプル時間の Pulse Generator ブロックという 3 つの入力があります。また、Model ブロック CounterB には、2 つの同じ Constant ブロックと 0.5 のサンプル時間の Pulse Generator ブロックという 3 つの入力もあります。それぞれの Model ブロックには独立した Scope ブロックへの出力があります。

参照モデルには、Inport ブロックと Outport ブロック (また Trigger または Enable ブロックがある場合もある) があって親モデルに接続します。sldemo_mdlref_counter モデルには 3 つの Inport ブロック (上部、入力および下部) と 1 つの Outport ブロック (出力) があります。

参照モデル自体にも Model ブロックを含めることができるので、さらに入れ子にして下位のモデルを参照することができます。入れ子の深さに制限はありません。最上位モデルは、モデル参照の階層構造の中で最上位にあるモデルです。モデル参照のレベルが 1 層のみの場合、親モデルと最上位モデルは同じです。循環継承を避けるために、Model ブロックは直接的にも間接的にも、モデル参照階層内で上位にあるモデルを参照できません。次の図は、循環継承を示しています。

親モデルには、同じ参照モデルを参照する Model ブロックを複数含めることができますが、その参照モデルにグローバル データが定義されていないことが条件です。同じ参照モデルを任意のレベルの別の親モデルに含めることもできます。参照モデルをパラメーター化して、そのモデルのすべてのインスタンスを調整可能にすることもできます。また、参照モデルをパラメーター化して、異なる Model ブロックでその参照モデルの動作を定義する変数に異なる値を指定することもできます。詳細は、モデル参照のパラメーター化を参照してください。

Simulink では、参照モデルをインタープリターから実行することもできますし (ノーマル モード)、参照モデルをコードにコンパイルして、そのコードを実行することもできます (アクセラレータ モード)。詳細は、参照モデルのシミュレーション モードを参照してください。

参照モデルが上位モデルからしか取得できないデータに依存していない場合は、参照モデルをスタンドアロン モデルとして使用できます。適切に設定されたモデルは、モデルやその派生エンティティに変更を加えなくても、スタンドアロン モデルや参照モデルとして機能します。

参照モデルの利点

サブシステムと同様に、参照モデルを利用すると大規模なモデルを階層的に構成できます。Model ブロックを使用して主要なサブシステムを表すことができます。ライブラリ同様、参照モデルは、同じ機能を再定義せずに繰り返し使用できるようにします。参照モデルには、サブシステムやライブラリ ブロックにはない利点がいくつかあります。これらの利点のいくつかは、Simulink® では、参照モデルのコンテキストとは独立に、その参照モデルをコンパイルできることによるものです。

  • モジュール開発

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

  • モデルの保護

    参照モデルの内容は見えないようにできるので、知的財産であるモデルの内容を隠したまま配布できます。

  • 参照による使用

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

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

    Simulink は、必要になった時点で参照モデルを読み込むため、モデルの読み込みが速くなります。

  • 高速シミュレーション

    Simulink は参照モデルをコードに変換し、そのコードを実行することによってモデルのシミュレーションができるので、対話型のシミュレーションより速く実行できます。

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

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

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

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

モデル参照を他の Simulink コンポーネント化手法と比較する方法の詳細は、「コンポーネント化のガイドライン」を参照してください。モデル参照の利点をまとめたビデオは、「Modular Design Using Model Referencing」を参照してください。

Model ブロックに対するマスク

マスク機能を使用すると、Model ブロック用にカスタム ダイアログ ボックスやアイコンを作成できます。ダイアログ ボックスにマスクを適用すると、Model ブロックに追加パラメーターを指定するのが容易になります。ブロック マスクについての詳細は、「ブロック マスク」を参照してください。

モデル参照を使用するモデル

Simulink にはモデル参照の例を示すためにいくつかのモデルが用意されています。

Introduction to Managing Data with Model Reference の例は、モデル参照を使用したデータ管理に関連する基本的な概念とワークフローを紹介します。これらのトピックの詳細を調べるには、Detailed Workflow for Managing Data with Model Reference の例を選択してください。

さらに、sldemo_absbrake モデルでは、アンチロック ブレーキ システム (ABS) における車輪の速度の計算を Model ブロックで表現しています。

モデル参照に必要なリソース

下の項目はモデル参照で必要な最も一般的なリソースです。

  • Model ブロック。他のモデルによって参照されるモデルを表します。Model ブロックへのプログラムでのアクセスについては、「ブロック固有のパラメーター」の表の「Ports & Subsystems ライブラリ ブロック パラメーター」の節で Model ブロック パラメーターを参照してください。

  • [コンフィギュレーション パラメーター]、[診断]、[モデル参照] ペイン。これはモデル参照で問題が発生したときの診断を制御します。詳細は、「診断ペイン: モデル参照」を参照してください。

  • [コンフィギュレーション パラメーター]、[モデル参照] ペイン。これはモデル参照を制御するオプションと参照されているモデルが依存するファイルのリストを提供します。詳細は、「[モデル参照] ペイン」を参照してください。

参考

ブロック

関連する例

詳細

この情報は役に立ちましたか?