ドキュメンテーション センター

  • 評価版
  • 製品アップデート

目次

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

モデル参照の概要

モデルの参照について

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

参照されるモデルのインターフェイスは、その入力端子と出力端子 (さらに、条件付き参照モデルの場合には制御端子) とそのパラメーター引数で構成されます。Model ブロックには、参照するモデルのルート レベルの入力と出力に対応する入力と出力が表示されます。これらの端子によって、親モデルのブロック線図に参照モデルを組み込むことができます。

たとえば、sldemo_mdlref_basicsldemo_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_countersldemo_mdlref_counter モデルには 3 つの Inport ブロック (上部、入力および下部) と 1 つの Outport ブロック (出力) があります。

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

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

既定の設定では、Simulink® ソフトウェアは最上位モデルを、サブモデルを含まないときと同様にインタープリターで実行します。Simulink は、Atomic Subsystem の場合と同様に参照モデルをインタープリターから実行することも、サブモデルをコードにコンパイルして、そのコードを実行することもできます。詳細は、「参照モデルのシミュレーション モード」を参照してください。

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

参照モデルの利点

サブシステム同様、参照モデルは大きなモデルの階層構造の構築を可能にし、Model ブロックは主要サブシステムを表すことができます。ライブラリ同様、参照モデルは、同じ機能を再定義せずに繰り返し使用できるようにします。さらに、参照モデルにはサブシステムやライブラリにない利点もいくつかあります。

  • モジュール開発

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

  • モデルの保護

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

  • 参照による使用

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

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

    Simulink は、モデルの使用が必要になるまで参照モデルを読み込まないため、モデルの読み込みが速くなります。

  • 高速シミュレーション

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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