Main Content

Model

モデル階層の作成のための別のモデルの参照

  • ライブラリ:
  • Simulink / Ports & Subsystems

    HDL Coder / Ports & Subsystems

  • Model block

説明

Model ブロックは指定されたモデルを参照します。参照モデルの最上位の入力端子と出力端子に対応する入力端子と出力端子を表示します。これらの端子を使用すると、参照モデルを親モデル内の他のブロックに接続できます。

Model ブロックが同様の機能をもつ別のブロックよりも目的に適しているかどうか確認するには、モデル コンポーネントのタイプの選択およびモデル コンポーネントの機能の比較を参照してください。

Model ブロックを含むモデルを参照する方法については、既存のモデルの参照を参照してください。

既定では、Model ブロックは参照モデルのコンテンツ表現を表示します。詳細については、モデル コンポーネントの内容のプレビューを参照してください。参照モデルの内容を表示するには、Model ブロックをダブルクリックします。

Simulink® Coder™ のライセンスがある場合は、モデルを保護することで、参照モデルの実装の詳細を隠すことができます。モデルを保護するには、コンテンツを隠すためのモデルの保護 (Simulink Coder)を参照してください。保護モデルを参照するには、サードパーティからの保護モデルの参照を参照してください。

端子

入力

すべて展開する

Model ブロックには、参照するモデルの各入力端子に対して 1 つの入力端子があります。参照モデルの入力端子は Inport ブロックと In Bus Element ブロックによって定義されます。Model ブロックの端子の名前は、参照モデルの対応する端子の名前と一致します。各 Model ブロック端子への入力信号、メッセージ、または関数呼び出しは、参照モデルの対応する端子に対して有効でなければなりません。詳細については、モデル参照のインターフェイスと境界を参照してください。

ヒント

  • 参照モデルの信号属性は、Model ブロックのコンテキストから独立しています。たとえば、信号次元とデータ型は Model ブロック境界で伝播されません。参照モデルの信号属性を定義するには、ルートレベルの Inport ブロックと In Bus Element ブロックのブロック パラメーターを定義します。

  • 入力端子に接続されている関数呼び出しは参照モデルに渡されます。関数呼び出しに基づいて参照モデルを条件付きで実行するには、関数呼び出しを参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
複素数のサポート: あり

出力

すべて展開する

Model ブロックには、参照するモデルの各出力端子に対して出力端子があります。参照モデルの出力端子は Outport ブロックおよび Out Bus Element ブロックによって定義されます。Model ブロックの端子の名前は、参照モデルの対応する端子の名前と一致します。Model ブロックの出力信号とメッセージは、参照モデルの Outport ブロックおよび Out Bus Element ブロックに接続されている信号とメッセージです。モデル参照のインターフェイスと境界を参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
複素数のサポート: あり

コントロール

すべて展開する

条件付き実行

イネーブル端子は、Model ブロックの上部に表示されます。端子ラベルは、イネーブル信号を表すアイコンです。

Enable port on Model block

端子に接続している制御信号によって、参照モデルを実行するタイミングが決定します。詳細については、参照モデルの条件付き実行を参照してください。

依存関係

この端子を有効にするには Enable ブロックを参照モデルの最上位に追加します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

トリガー端子は Model ブロックの上部に表示されます。端子ラベルは、トリガー信号を表すアイコンです。

Trigger port on Model block

端子に接続している制御信号によって、参照モデルを実行するタイミングが決定します。詳細については、参照モデルの条件付き実行を参照してください。

依存関係

この端子を有効にするには Trigger ブロックを参照モデルの最上位に追加し、その [トリガー タイプ][立ち上がり][立ち下がり]、または [両方] に設定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

関数呼び出し端子は、Model ブロックの上部に表示されます。端子ラベルには、参照モデルの名前が関数として表示されます。

Function-call port on Model block

端子に接続している関数呼び出し制御信号によって、参照モデルを実行するタイミングが決定します。詳細については、参照モデルの条件付き実行を参照してください。

依存関係

この端子を有効にするには Trigger ブロックを参照モデルの最上位に追加し、その [トリガー タイプ][関数呼び出し] に設定します。

モデル イベントのシミュレーション

初期化イベント端子は、モデルの初期化イベントをトリガーする関数呼び出し制御信号を提供します。これにより、参照モデルの状態が初期化されます。

参照モデルには、モデルの初期化イベントに対応する Initialize Function ブロックを含めることができます。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。

依存関係

この端子を有効にするには、[モデル初期化端子を表示] を選択します。

リセット イベント端子は、モデル リセット イベントをトリガーする関数呼び出し制御信号を提供します。これにより、参照モデルの状態がリセットされます。

参照モデルには、各モデル リセット イベントに対応する Reset Function ブロックが含まれていなければなりません。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。

端子名を指定するには、Reset Function ブロック内の Event Listener ブロックの [イベント名] パラメーターを使用します。

依存関係

このタイプの端子を有効にするには、[モデル リセット端子を表示] を選択します。

再初期化イベント端子は、モデルの再初期化イベントをトリガーする関数呼び出し制御信号を提供します。これにより、参照モデルの状態が再初期化されます。

参照モデルには、各モデル再初期化イベントに対応する Reinitialize Function ブロックが含まれていなければなりません。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。

端子名を指定するには、Reinitialize Function ブロック内の Event Listener ブロックの [イベント名] パラメーターを使用します。

依存関係

このタイプの端子を有効にするには、モデル再初期化端子を表示, Show model reinitialize portsモデル再初期化端子を表示Show model reinitialize portsを選択します。

終了イベント端子は、モデル終了イベントをトリガーする関数呼び出し制御信号を提供します。これにより、参照モデルの状態が読み取られ、保存されます。

参照モデルには、モデル終了イベントに対応する Terminate Function ブロックを含めることができます。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。

依存関係

この端子を有効にするには、[モデル終了端子を表示] を選択します。

周期的イベント端子は、モデルを実行するタイミングを指定する関数呼び出し制御信号を提供します。例については、Function-Call Generator を使用したレートベース モデルのシミュレーションのテストを参照してください。

各端子ラベルは、対応する Inport ブロックのサンプル時間など、周期的イベントに関する情報を表示します。たとえば、次の図の Model ブロックは、周期的イベント端子を表示し、次の 2 つの離散レートをもつモデルを参照します。0.01 と 0.1。

A Model block has ports labeled D1[0.01] and D2[0.1].

依存関係

このタイプの端子を有効にするには、[次を使用してレートをスケジュール][端子] に設定します。

パラメーター

すべて展開する

Model ブロック パラメーターを対話的に変更するには、Model ブロックを選択します。次に、Simulink ツールストリップの [Model ブロック] タブで [ブロック パラメーター] をクリックします。

メイン

Model ブロックの基本情報を指定します。

参照モデルのファイル名を指定します。このファイル名は、モデル名で定義されているような、モデルに対する有効な MATLAB® 識別子をもたなければなりません。ファイルの拡張子はオプションです。

参照するモデルを選択するには、[参照] をクリックします。指定したモデルを表示するには、[モデルを開く] をクリックします。

プログラムでの使用

次の異なる形式で参照モデルの名前をクエリできます。

  • ModelFile — ファイル拡張子を含むモデル名。ファイル拡張子を指定しない場合、Simulink により MATLAB パスで検出された最初の一致によって、ファイル拡張子が決定します。

  • ModelNameDialog — ファイル拡張子を指定するかどうかに応じて、ファイル拡張子を含むまたは含まないモデル名。

  • ModelName — ファイル拡張子を含まないモデル名。ModelName でファイル拡張子を含むモデル名を指定すると、Simulink では、ModelNameDialogModelFile を設定してファイル拡張子が維持されます。

パラメーター: ModelNameDialog
: 文字ベクトル
: '' | '<filename>'
既定の設定: ''

Model ブロックのシミュレーション モードを指定します。Model ブロックのシミュレーション モードは、その参照モデルおよびモデル階層構造内のその他のモデルのシミュレーション モードと異なる可能性があります。

  • アクセラレータ — 参照モデルに対して MEX ファイルを作成し、S-Function を実行して参照モデルを実行します。

  • ノーマル — 参照モデルをインタープリターで実行します。参照モデルは、親モデル内に直接実装された Atomic Subsystem であるかのように扱われます。

  • ソフトウェアインザループ (SIL) — このオプションには Embedded Coder® のライセンスが必要です。[コード インターフェイス] のパラメーター設定に基づき、量産コードを生成します。そのコードは、ホスト プラットフォーム用にコンパイルされてホスト プラットフォーム上で実行されます。

  • プロセッサインザループ (PIL) — このオプションには Embedded Coder のライセンスが必要です。[コード インターフェイス] のパラメーター設定に基づき、量産コードを生成します。このコードは、ターゲット プラットフォーム用にコンパイルされてターゲット プラットフォーム上で実行されます。ターゲットのコネクティビティ API 実装は、PIL シミュレーション中に各タイム ステップでホストとターゲットの間のデータ交換をサポートします。

Model ブロックの角は、Model ブロックのシミュレーション モードを示しています。ノーマル モードでは、角に塗りつぶしなしの三角形が表示されます。アクセラレータ モードでは、角の三角形は塗りつぶされます。SIL モードと PIL モードでは、角は塗りつぶされ、ブロック アイコンに (SIL) または (PIL) という語が表示されます。

モデルに対してどのシミュレーション モードでも指定できますが、そのモデルを参照する際、Model ブロックが、その参照モデルのインスタンスのシミュレーション モードを指定します。親モデルのシミュレーション モードが Model ブロックのシミュレーション モードをオーバーライドする場合があります。

詳細については、モデルの階層構造内のシミュレーション モードの選択を参照してください。

プログラムでの使用

パラメーター: SimulationMode
: 文字ベクトル
: 'Normal' | 'Accelerator' | 'Software-in-the-loop' | 'Processor-in-the-loop'
既定の設定: 'Normal'

SIL シミュレーション モードと PIL シミュレーション モードにおいて、最上位モデルからコードを生成するか、参照モデルからコードを生成するかを指定します。生成したコードを、その参照モデルを使用する大規模なアプリケーションの一部として展開する場合、[モデル参照] を指定します。生成したコードをスタンドアロン アプリケーションとして展開する場合、[最上位モデル] を指定します。

  • モデル参照 — コードはモデルの階層構造の一部として参照モデルから生成されます。コード生成には slbuild('model', 'ModelReferenceCoderTarget') コマンドが使用されます。

  • 最上位モデル — コードは最上位モデルからスタンドアロン コード インターフェイスで生成されます。コード生成には slbuild('model') コマンドが使用されます。

依存関係

このパラメーターを有効にするには、[シミュレーション モード][ソフトウェアインザループ (SIL)] または [プロセッサインザループ (PIL)] のいずれかに設定します。

プログラムでの使用

パラメーター: CodeInterface
型: 文字ベクトル
値: 'Model reference' | 'Top model'
既定の設定: 'Model reference'

モデル イベントのシミュレーション

参照モデルを実行し、状態を変更するタイミングを制御します。

初期化イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。

依存関係

このパラメーターを有効にするには、条件付き実行用に設定されていないモデルを参照します。

プログラムでの使用

ブロック パラメーター: ShowModelInitializePort
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

再初期化イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。

依存関係

このパラメーターを有効にするには、条件付き実行用に設定されていない、Reinitialize Function ブロックが含まれるモデルを参照します。

プログラムでの使用

ブロック パラメーター: ShowModelReinitializePorts
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

リセット イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。

依存関係

このパラメーターを有効にするには、条件付き実行用に設定されていない、Reset Function ブロックが含まれるモデルを参照します。

プログラムでの使用

ブロック パラメーター: ShowModelResetPorts
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

終了イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。

依存関係

このパラメーターを有効にするには、条件付き実行用に設定されていないモデルを参照します。次に、[モデル初期化端子を表示] を選択します。

プログラムでの使用

ブロック パラメーター: ShowModelTerminatePort
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

周期的イベントで参照モデルの実行を制御します。

[次を使用してレートをスケジュール] パラメーターの値に応じて、このパラメーターを選択すると、Model ブロックに周期的イベント端子が表示されるか、スケジュール エディターで使用する分割が作成されます。[次を使用してレートをスケジュール] パラメーターが表示されない場合、既定値 ([端子]) が適用されます。

このパラメーターをオフにすると、周期的イベント端子が非表示になり、分割は作成されません。

依存関係

このパラメーターを有効にするには、条件付き実行用に設定されていない、およびエクスポート関数モデルではない、離散サンプル時間を含むモデルを参照します。親モデルがレート ベースで、参照モデルがエクスポート関数モデルである場合、[レートのスケジュール] が自動的に選択されます。

プログラムでの使用

ブロック パラメーター: ScheduleRates
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

端子または分割を作成します。

  • 端子 — 参照モデルの離散レートに対する周期的イベント端子を表示します。

    端子レートを手動で指定するには、関数 set_param を使用して Model ブロックの AutoFillPortDiscreteRates パラメーターを 'off' に設定します。次に、PortDiscreteRates パラメーターを使用して端子レートを指定します。

  • スケジュール エディタースケジュール エディターで使用する参照モデル用の分割を作成します。

依存関係

このパラメーターは次の場合に有効になります。

プログラムでの使用

ブロック パラメーター: ScheduleRatesWith
型: 文字ベクトル
値: 'Ports' | 'ScheduleEditor'
既定の設定: 'Ports'

インスタンス パラメーター

モデル引数のインスタンス固有の値を指定します。

インスタンス パラメーターを表示し、インスタンス固有の値を指定します。"インスタンス パラメーター" は、モデルの各インスタンスに異なる値を使用するために、参照モデルで設定されているブロック パラメーターです。

インスタンス固有の値を指定するには、テーブルの [値] 列を使用します。パラメーター値が親モデルによってオーバーライドされるように指定するには、[引数] チェック ボックスをオンにします。インスタンス パラメーターの参照モデルでの設定およびインスタンス固有の値の Model ブロックでの指定の詳細については、再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。

インスタンス固有の値を変更する際に、値を変更する必要があるインスタンス パラメーターのみに対応するフィールドが含まれる部分構造体を使用できます。部分構造体に含まれていないインスタンス パラメーターは値が維持されます。この構造体には、インスタンス パラメーター名と値が含まれ、文字ベクトルとして指定されます。

プログラムでの使用

ブロック パラメーター: ParameterArgumentValues
タイプ: 構造体
値: 構造体
既定の設定: フィールドのない構造体
ブロック パラメーター: InstanceParameters
型: 構造体配列
値: NameValuePath および Argument のフィールドをもつ構造体。

ソルバー

モデルの引数に対するローカル ソルバー固有の値を指定します。この機能の使用方法の詳細については、Use local solver when referencing modelを参照してください。

信号の処理方法を指定します。[自動] を選択すると、Simulink は、選択した [ソルバー] に基づく入力処理を選択します。[自動] はローカル ソルバーに数値補償を適用し、最上位ソルバーとローカル ソルバー間のデータ交換を改善します。[ゼロ次ホールド] では行われません。

プログラムでの使用

ブロック パラメーター: InputSignalHandling
型: 文字ベクトル
値: 'Use solver interpolant' | 'Zero-order hold'
既定の設定: 'Use solver interpolant'

出力信号の処理方法を指定します。[ソルバー内挿を使用] を選択すると、Simulink は、選択した [ソルバー] に基づく出力処理を選択します。

プログラムでの使用

ブロック パラメーター: OutputSignalHandling
型: 文字ベクトル
値: 'Auto' | 'Zero-order Hold'
既定の設定: 'Auto'

このパラメーターを使用して [ソルバー] コンフィギュレーション パラメーターを[ソルバー] ペインに設定します。

依存関係

このパラメーターは固定ステップ ソルバーを選択した場合にのみ機能します。

このパラメーターを使用して [固定ステップ サイズ (基本サンプル時間)] コンフィギュレーション パラメーターを[ソルバー] ペインに設定します。

依存関係

このパラメーターは固定ステップ ソルバーを選択した場合にのみ機能します。

モデルの例

ブロックの特性

データ型

Booleana | busa | doublea | enumerateda | fixed pointa | halfa | integera | singlea | stringa

直接フィードスルー

いいえ

多次元信号

限定的a

可変サイズの信号

限定的a

ゼロクロッシング検出

いいえ

a 実際のデータ型または機能のサポートは、ブロックの実装に依存します。

ヒント

Model ブロックが保護モデルを参照するかどうかをプログラムにより判別するには、関数 get_param を使用して、Model ブロックの読み取り専用 ProtectedModel パラメーターをクエリします。参照モデルが保護されている場合、関数は 'on' を返します。参照モデルが保護されていない場合、関数は 'off' を返します。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する

R2019a 以降は警告