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

ライブラリ:
Simulink /
Ports & Subsystems
HDL Coder /
Ports & Subsystems
説明
Model ブロックは指定されたモデルを参照します。参照モデルの最上位の入力端子と出力端子に対応する入力端子と出力端子を表示します。これらの端子を使用すると、参照モデルを親モデル内の他のブロックに接続できます。
Model ブロックが同様の機能をもつ別のブロックよりも目的に適しているかどうか確認するには、モデル コンポーネントのタイプの検討およびモデル コンポーネントの機能の比較を参照してください。
Model ブロックを含むモデルを参照する方法については、既存のモデルの参照を参照してください。
既定では、Model ブロックは参照モデルのコンテンツ表現を表示します。詳細については、モデル コンポーネントの内容のプレビューを参照してください。参照モデルの内容を表示するには、Model ブロックをダブルクリックします。
Simulink® Coder™ のライセンスがある場合は、モデルを保護することで、参照モデルの実装の詳細を隠すことができます。モデルを保護するには、コンテンツを隠すためのモデルの保護 (Simulink Coder)を参照してください。保護モデルを参照するには、サードパーティからの保護モデルの参照を参照してください。
例
別のモデルの参照
Model ブロックを使用してモデルを別のモデルに含めることができます。各 Model ブロックは "モデル参照"、つまり別のモデルへの参照です。モデルは何度でも参照できるので、同じものを繰り返しコピーする必要がなく、同じモデルを複数の異なるモデルから参照できます。
例を開きます。この例には sldemo_mdlref_counter
という名前のモデルが含まれています。
sldemo_mdlref_counter
などのモデルを参照する前に、その構成、インターフェイス、および内容を検討します。
sldemo_mdlref_counter
は固定ステップ離散ソルバーを使用しており、3 つの Inport ブロックと 1 つの Outport ブロックを含んでいます。
upper
という名前の Inport ブロックはカウンターの上限を提供します。input
という名前の Inport ブロックはタイム ステップごとにカウンターをインクリメントする値を提供します。lower
という名前の Inport ブロックはカウンターの下限 (開始値) を提供します。output
という名前の Outport ブロックは現在のカウントを提供します。
各 Inport ブロックはモデル入力を表し、各 Outport ブロックはモデル出力を表します。
新しいモデルで、Model ブロックを追加します。
プロパティ インスペクターで [モデル名] を sldemo_mdlref_counter
に設定します。
ブロック アイコンの情報を見やすくするために、重なっている情報がなくなるまで Model ブロックの隅をドラッグします。
Model ブロック アイコンでは以下が表示されます。
参照モデルの名前:
sldemo_mdlref_counter
upper
、input
、およびlower
という名前の入力端子output
という名前の出力端子
固定ステップの離散シミュレーション用に最上位モデルを構成します。
[モデル化] タブで、[モデル設定] をクリックします。
[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインで [タイプ] を
Fixed-step
、[ソルバー] をdiscrete (no continuous states)
に設定します。
参照モデルの予期される入出力に対応する入出力を Model ブロックに接続します。
カウンターの上限を表すために、Constant ブロックを追加して [定数値] を
100
に設定します。次に、それを [upper] 端子に接続します。カウンターのインクリメントを表すために、Constant ブロックを追加して [定数値] を
1
に設定します。次に、それを [input] 端子に接続します。カウンターの下限を表すために、Constant ブロックを追加して [定数値] を
0
に設定します。次に、それを [lower] 端子に接続します。プロットでカウンター出力を表示するために、Scope ブロックを追加します。次に、それを [output] 端子に接続します。
ツールストリップで [実行] をクリックします。
最上位モデルでシミュレートされ、参照モデルが実行されます。スコープ ウィンドウでシミュレーションの出力カウントが表示されます。
拡張例
端子
入力
Port_1 — 参照モデルのルートレベルのブロックに対応する入力
スカラー | ベクトル | 行列 | 配列 | バス
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
複素数のサポート: あり
出力
Port_1 — 参照モデルのルートレベルのブロックに対応する出力
スカラー | ベクトル | 行列 | 配列 | バス
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
複素数のサポート: あり
コントロール
Enable — 参照モデルを有効にする制御信号
スカラー | ベクトル | 行列
イネーブル端子は、Model ブロックの上部に表示されます。端子ラベルは、イネーブル信号を表すアイコンです。
端子に接続している制御信号によって、参照モデルを実行するタイミングが決定します。詳細については、参照モデルの条件付き実行を参照してください。
依存関係
この端子を有効にするには Enable ブロックを参照モデルの最上位に追加します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Trigger — 参照モデルをトリガーする制御信号
スカラー | ベクトル | 行列
トリガー端子は Model ブロックの上部に表示されます。端子ラベルは、トリガー信号を表すアイコンです。
端子に接続している制御信号によって、参照モデルを実行するタイミングが決定します。詳細については、参照モデルの条件付き実行を参照してください。
依存関係
この端子を有効にするには Trigger ブロックを参照モデルの最上位に追加し、その [トリガー タイプ] を [立ち上がり]
、[立ち下がり]
、または [両方]
に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Function Call — 関数呼び出しイベントの制御信号
スカラー
関数呼び出し端子は、Model ブロックの上部に表示されます。端子ラベルには、参照モデルの名前が関数として表示されます。
端子に接続している関数呼び出し制御信号によって、参照モデルを実行するタイミングが決定します。詳細については、参照モデルの条件付き実行を参照してください。
依存関係
この端子を有効にするには Trigger ブロックを参照モデルの最上位に追加し、その [トリガー タイプ] を [関数呼び出し]
に設定します。
initialize — モデルの初期化イベントの制御信号
スカラー
初期化イベント端子は、モデルの初期化イベントをトリガーする関数呼び出し制御信号を提供します。これにより、参照モデルの状態が初期化されます。
参照モデルには、モデルの初期化イベントに対応する Initialize Function ブロックを含めることができます。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。
依存関係
この端子を有効にするには、[モデル初期化端子を表示] を選択します。
reset — モデル リセット イベントの制御信号
スカラー
リセット イベント端子は、モデル リセット イベントをトリガーする関数呼び出し制御信号を提供します。これにより、参照モデルの状態がリセットされます。
参照モデルには、各モデル リセット イベントに対応する Reset Function ブロックが含まれていなければなりません。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。
端子名を指定するには、Reset Function ブロック内の Event Listener ブロックの [イベント名] パラメーターを使用します。
依存関係
このタイプの端子を有効にするには、[モデル リセット端子を表示] を選択します。
reinit — モデルの再初期化イベントの制御信号
スカラー
再初期化イベント端子は、モデルの再初期化イベントをトリガーする関数呼び出し制御信号を提供します。これにより、参照モデルの状態が再初期化されます。
参照モデルには、各モデル再初期化イベントに対応する Reinitialize Function ブロックが含まれていなければなりません。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。
端子名を指定するには、Reinitialize Function ブロック内の Event Listener ブロックの [イベント名] パラメーターを使用します。
依存関係
このタイプの端子を有効にするには、"モデル再初期化端子を表示" を選択します。
terminate — モデル終了イベントの制御信号
スカラー
終了イベント端子は、モデル終了イベントをトリガーする関数呼び出し制御信号を提供します。これにより、参照モデルの状態が読み取られ、保存されます。
参照モデルには、モデル終了イベントに対応する Terminate Function ブロックを含めることができます。詳細については、初期化関数、再初期化関数、リセット関数および終了関数の使用を参照してください。
依存関係
この端子を有効にするには、[モデル終了端子を表示] を選択します。
D — 周期的イベントをスケジュールする制御信号
スカラー
周期的イベント端子は、モデルを実行するタイミングを指定する関数呼び出し制御信号を提供します。例については、Function-Call Generator を使用したレートベース モデルのシミュレーションのテストを参照してください。
各端子ラベルは、対応する Inport ブロックのサンプル時間など、周期的イベントに関する情報を表示します。たとえば、次の図の Model ブロックは、周期的イベント端子を表示し、次の 2 つの離散レートをもつモデルを参照します。0.01 と 0.1。
依存関係
このタイプの端子を有効にするには、[次を使用してレートをスケジュール] を [端子]
に設定します。
パラメーター
Model ブロック パラメーターを対話的に変更するには、Model ブロックを選択します。次に、Simulink ツールストリップの [Model ブロック] タブで [ブロック パラメーター] をクリックします。
メイン
Model ブロックの基本情報を指定します。
モデル名 — 参照モデルのファイル名
既定値なし
参照モデルのファイル名を指定します。このファイル名は、Choose Valid Model File Namesで定義されているような、モデルに対する有効な MATLAB® 識別子をもたなければなりません。ファイルの拡張子はオプションです。
参照するモデルを選択するには、[参照] をクリックします。指定したモデルを表示するには、[モデルを開く] をクリックします。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | ModelNameDialog |
値: | '' (既定値) | filename in quotes |
データ型: | char | string |
例: set_param(gcb,'ModelNameDialog','mymodel.slx')
ブロック パラメーターの値をプログラムで取得するには、関数 get_param
を使用します。
次の異なる形式で参照モデルの名前をクエリできます。
ModelFile
— ファイル拡張子を含むモデル名。ファイル拡張子を指定しない場合、MATLAB パスで検出された最初の一致によって、ファイル拡張子が決定します。ModelNameDialog
— ファイル拡張子を指定するかどうかに応じて、ファイル拡張子を含むまたは含まないモデル名。ModelName
— ファイル拡張子を含まないモデル名。ModelName
でファイル拡張子を含むモデル名を指定すると、ModelNameDialog
とModelFile
が設定されてファイル拡張子が維持されます。
シミュレーション モード — モデル参照用のシミュレーション モード
ノーマル
(既定値) | アクセラレータ
| ソフトウェアインザループ (SIL)
| プロセッサインザループ (PIL)
Model ブロックのシミュレーション モードを指定します。Model ブロックのシミュレーション モードは、その参照モデルおよびモデル階層構造内のその他のモデルのシミュレーション モードと異なる可能性があります。
ノーマル
— 参照モデルをインタープリターで実行します。参照モデルは、親モデル内に直接実装された Atomic Subsystem であるかのように扱われます。アクセラレータ
— 参照モデルの MEX ファイルを作成します。その後、S-Function を実行して参照モデルを実行します。ソフトウェアインザループ (SIL)
— このオプションには Embedded Coder® のライセンスが必要です。[コード インターフェイス] のパラメーター設定に基づき、量産コードを生成します。そのコードは、ホスト プラットフォーム用にコンパイルされてホスト プラットフォーム上で実行されます。プロセッサインザループ (PIL)
— このオプションには Embedded Coder のライセンスが必要です。[コード インターフェイス] のパラメーター設定に基づき、量産コードを生成します。このコードは、ターゲット プラットフォーム用にコンパイルされてターゲット プラットフォーム上で実行されます。ターゲットのコネクティビティ API 実装は、PIL シミュレーション中に各タイム ステップでホストとターゲットの間のデータ交換をサポートします。
Model ブロックの角は、Model ブロックのシミュレーション モードを示しています。ノーマル モードでは、角に塗りつぶしなしの三角形が表示されます。アクセラレータ モードでは、角の三角形は塗りつぶされます。SIL モードと PIL モードでは、角は塗りつぶされ、ブロック アイコンに (SIL)
または (PIL)
という語が表示されます。
モデルに対してどのシミュレーション モードでも指定できますが、そのモデルを参照する際、Model ブロックが、その参照モデルのインスタンスのシミュレーション モードを指定します。親モデルのシミュレーション モードが Model ブロックのシミュレーション モードをオーバーライドする場合があります。
詳細については、モデルの階層構造内のシミュレーション モードの選択を参照してください。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | SimulationMode |
値: | 'Normal' (既定値) | 'Accelerator' | 'Software-in-the-loop' | 'Processor-in-the-loop' |
例: set_param(gcb,'SimulationMode','Accelerator')
コード インターフェイス — 最上位モデルまたは参照モデルからコードを生成するオプション
モデル参照
(既定値) | 最上位モデル
SIL シミュレーション モードと PIL シミュレーション モードにおいて、最上位モデルからコードを生成するか、参照モデルからコードを生成するかを指定します。生成したコードを、その参照モデルを使用する大規模なアプリケーションの一部として展開する場合、[モデル参照]
を指定します。生成したコードをスタンドアロン アプリケーションとして展開する場合、[最上位モデル]
を指定します。
モデル参照
— コードはモデルの階層構造の一部として参照モデルから生成されます。コード生成にはslbuild('
コマンドが使用されます。model
', 'ModelReferenceCoderTarget')最上位モデル
— コードは最上位モデルからスタンドアロン コード インターフェイスで生成されます。コード生成にはslbuild('
コマンドが使用されます。model
')
依存関係
このパラメーターを有効にするには、[シミュレーション モード] を [ソフトウェアインザループ (SIL)]
または [プロセッサインザループ (PIL)]
のいずれかに設定します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | CodeInterface |
値: | 'Model reference' (既定値) | 'Top model' |
例: set_param(gcb,'CodeInterface','Top model')
モデル イベントのシミュレーション
参照モデルを実行し、状態を変更するタイミングを制御します。
モデル初期化端子を表示 — 初期化イベント端子を表示するオプション
off
(既定値) | on
初期化イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。
依存関係
このパラメーターを有効にするには、条件付き実行用に設定されていないモデルを参照します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | ShowModelInitializePort |
値: | 'off' (既定値) | 'on' |
例: set_param(gcb,'ShowModelInitializePort','on')
モデル再初期化端子を表示 — 再初期化イベント端子を表示するオプション
off
(既定値) | on
再初期化イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。
依存関係
このパラメーターを有効にするには、条件付き実行用に設定されていない、Reinitialize Function ブロックが含まれるモデルを参照します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | ShowModelReinitializePorts |
値: | 'off' (既定値) | 'on' |
例: set_param(gcb,'ShowModelReinitializePorts','on')
モデル リセット端子を表示 — リセット イベント端子を表示するオプション
off
(既定値) | on
リセット イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。
依存関係
このパラメーターを有効にするには、条件付き実行用に設定されていない、Reset Function ブロックが含まれるモデルを参照します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | ShowModelResetPorts |
値: | 'off' (既定値) | 'on' |
例: set_param(gcb,'ShowModelResetPorts','on')
モデル終了端子を表示 — 終了イベント端子を表示するオプション
off
(既定値) | on
終了イベント端子を表示するには、このパラメーターを選択します。端子を削除するには、このパラメーターの選択を解除します。
依存関係
このパラメーターを有効にするには、条件付き実行用に設定されていないモデルを参照します。次に、[モデル初期化端子を表示] を選択します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | ShowModelTerminatePort |
値: | 'off' (既定値) | 'on' |
例: set_param(gcb,'ShowModelTerminatePort','on')
レートのスケジュール — 周期的イベントをスケジュールするオプション
off
(既定値) | on
周期的イベントで参照モデルの実行を制御します。
[次を使用してレートをスケジュール] パラメーターの値に応じて、このパラメーターを選択すると、Model ブロックに周期的イベント端子が表示されるか、スケジュール エディターで使用する分割が作成されます。[次を使用してレートをスケジュール] パラメーターが表示されない場合、既定値 ([端子]
) が適用されます。
このパラメーターをオフにすると、周期的イベント端子が非表示になり、分割は作成されません。
依存関係
このパラメーターを有効にするには、条件付き実行用に設定されていない、およびエクスポート関数モデルではない、離散サンプル時間を含むモデルを参照します。親モデルがレート ベースで、参照モデルがエクスポート関数モデルである場合、[レートのスケジュール] が自動的に選択されます。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | ScheduleRates |
値: | 'off' (既定値) | 'on' |
例: set_param(gcb,'ScheduleRates','on')
次を使用してレートをスケジュール — 分割または周期的イベント端子を作成するオプション
端子
(既定値) | スケジュール エディター
端子または分割を作成します。
端子
— 参照モデルの離散レートに対する周期的イベント端子を表示します。端子レートを手動で指定するには、関数
set_param
を使用して Model ブロックのAutoFillPortDiscreteRates
パラメーターを'off'
に設定します。次に、PortDiscreteRates
パラメーターを使用して端子レートを指定します。スケジュール エディター
— スケジュール エディターで使用する参照モデル用の分割を作成します。
依存関係
このパラメーターは次の場合に有効になります。
親モデルをエクスポート関数モデルにすることはできません。
親モデルでは固定ステップ ソルバーおよびシングルタスク モードを使用できません。
[レートのスケジュール] を選択します。親モデルがレート ベースで、参照モデルがエクスポート関数モデルである場合、[レートのスケジュール] が自動的に選択されます。
[モデル初期化端子を表示]、[モデル リセット端子を表示]、[モデル再初期化端子を表示] をオフにします。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | ScheduleRatesWith |
値: | 'Ports' (既定値) | 'ScheduleEditor' |
例: set_param(gcb,'ScheduleRatesWith','ScheduleEditor')
インスタンス パラメーター
モデル引数のインスタンス固有の値を指定します。
インスタンス パラメーター — インスタンス パラメーターの表示と参照モデルの値の指定
数値 | ワークスペース変数 | 数式 | 構造体または構造体フィールド
インスタンス パラメーターを表示し、インスタンス固有の値を指定します。"インスタンス パラメーター" は、モデルの各インスタンスに異なる値を使用するために、参照モデルで設定されているブロック パラメーターです。
インスタンス固有の値を指定するには、テーブルの [値] 列を使用します。パラメーター値が親モデルによってオーバーライドされるように指定するには、[引数] チェック ボックスをオンにします。インスタンス パラメーターの参照モデルでの設定およびインスタンス固有の値の Model ブロックでの指定の詳細については、再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。
インスタンス固有の値を変更する際に、値を変更する必要があるインスタンス パラメーターのみに対応するフィールドが含まれる部分構造体を使用できます。部分構造体に含まれていないインスタンス パラメーターは値が維持されます。この構造体には、インスタンス パラメーター名と値が含まれ、文字ベクトルとして指定されます。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | ParameterArgumentValues |
値: | structure with no fields (既定値) | structure |
データ型: | struct |
パラメーター: | InstanceParameters |
値: | structure with fields Name , Value , Path , and Argument |
データ型: | struct |
ソルバー
参照モデルのコンフィギュレーション パラメーターとモデルを参照する各 Model ブロックのブロック パラメーターの組み合わせを使用して、ローカル ソルバーのパラメーターを構成します。
参照モデルのコンフィギュレーション パラメーターローカル ソルバーを使用 — 参照モデルでローカル ソルバーを使用するオプション
参照モデルのコンフィギュレーション パラメーターへのリンク
このパラメーターは、ブロックで参照されるモデルの [コンフィギュレーション パラメーター] ダイアログ ボックスを開くハイパーリンクを提供します。[コンフィギュレーション パラメーター] ダイアログ ボックスで、参照モデルの [モデルの参照時にローカル ソルバーを使用] コンフィギュレーション パラメーターを選択または選択解除します。[モデルの参照時にローカル ソルバーを使用] を選択すると、参照モデルでローカル ソルバーが使用されます。
ローカル ソルバーを使用するように参照モデルを構成すると、シミュレーション時に参照モデルの状態値がローカル ソルバーで計算されます。ローカル ソルバーを使用すると次のことが可能になり、シミュレーションのパフォーマンスを改善できます。
システムの残りの部分に比べてダイナミクスが低速なコンポーネントに他よりも大きいステップ サイズを指定する。
参照モデルにより適した別のソルバーを選択する。
詳細については、Use Local Solvers in Referenced Modelsを参照してください。
ソルバー — ローカル ソルバーを選択するオプション
参照モデルのコンフィギュレーション パラメーターへのリンク
このパラメーターは、ブロックで参照されるモデルの [コンフィギュレーション パラメーター] ダイアログ ボックスを開くハイパーリンクを提供します。[コンフィギュレーション パラメーター] ダイアログ ボックスで、[ソルバー] パラメーターの値を選択して、参照モデルのローカル ソルバーとして使用するソルバーを指定します。
ローカル ソルバーは固定ステップ ソルバーでなければなりません。
依存関係
このパラメーターを有効にするには、このブロックで参照されるモデルのモデル コンフィギュレーション パラメーターで [モデルの参照時にローカル ソルバーを使用] を選択します。
ステップ サイズ — ローカル ソルバーのステップ サイズを指定するオプション
参照モデルのコンフィギュレーション パラメーターへのリンク
このパラメーターは、ブロックで参照されるモデルの [コンフィギュレーション パラメーター] ダイアログ ボックスを開くハイパーリンクを提供します。[コンフィギュレーション パラメーター] ダイアログ ボックスで、参照モデルの [固定ステップ サイズ (基本サンプル時間)] パラメーターの値を指定して、ローカル ソルバーのステップ サイズを指定します。
ローカル ソルバーのステップ サイズは親ソルバーのステップ サイズの整数倍でなければなりません。
依存関係
このパラメーターを有効にするには、このブロックで参照されるモデルのモデル コンフィギュレーション パラメーターで [モデルの参照時にローカル ソルバーを使用] を選択します。
入力信号の処理 — ローカル ソルバーの入力の外挿法
自動
(既定値) | ゼロ次ホールド
ローカル ソルバーの実行は親ソルバーの実行から分離されているため、ローカル ソルバーはモデル参照の外から値を外挿し、内挿値を親ソルバーに提供します。詳細については、Use Local Solvers in Referenced Modelsを参照してください。
このパラメーターを使用して、ローカル ソルバーがモデル参照の外から値を外挿する方法を指定します。
自動
— 既定の入力処理を使用します。これには、最上位ソルバーとローカル ソルバー間のデータ交換を改善する数値補償が含まれます。ゼロ次ホールド
— 親ソルバーで計算された最後の値を使用します。
[自動]
入力処理を指定すると、一般にシミュレーション結果の精度が向上します。[自動]
入力処理の方が [ゼロ次ホールド]
入力処理よりも計算量は多くなります。
次の状況のいずれかに該当する場合は、[ゼロ次ホールド]
入力処理の使用を検討してください。
許容できるシミュレーション結果が
[ゼロ次ホールド]
入力処理で得られ、パフォーマンスを重視する場合参照モデルに入力端子がない場合
入力端子の値が連続状態の計算に影響しない場合
導関数の大部分が状態自体に基づく場合 (モデル内のフィードバック ループなど)
特定のステップ サイズでのローカル ソルバーの安定性を向上させる場合
依存関係
このパラメーターを有効にするには、このブロックで参照されるモデルのモデル コンフィギュレーション パラメーターで [モデルの参照時にローカル ソルバーを使用] を選択します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | InputSignalHandling |
値: | 'Auto' (既定値) | 'Zero-order hold' |
例: set_param(gcb,'InputSignalHandling','Zero-order hold')
出力信号の処理 — ローカル ソルバーからの出力の内挿法
ソルバー内挿を使用
(既定値) | ゼロ次ホールド
ローカル ソルバーの実行は親ソルバーの実行から分離されているため、ローカル ソルバーはモデル参照の外から値を外挿し、内挿値を親ソルバーに提供します。詳細については、Use Local Solvers in Referenced Modelsを参照してください。
このパラメーターを使用して、ローカル ソルバーが親ソルバーに値を提供するときに使用する内挿法を指定します。
ソルバー内挿を使用
— ローカル ソルバーの内挿を使用して、内挿される状態と出力信号の値を計算します。ゼロ次ホールド
— 最上位ソルバーの現在の時間までにローカル ソルバーで計算された最後の値を使用します。
一般に、ソルバーの内挿を出力処理に使用すると精度が向上します。ゼロ次ホールド出力処理は、計算量は少なくなりますが、精度も低くなります。
依存関係
このパラメーターを有効にするには、このブロックで参照されるモデルのモデル コンフィギュレーション パラメーターで [モデルの参照時にローカル ソルバーを使用] を選択します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
パラメーター: | OutputSignalHandling |
値: | 'Use solver interpolant' (既定値) | 'Zero-order Hold' |
例: set_param(gcb,'OutputSignalHandling','Zero-order Hold')
ブロックの特性
ヒント
Model ブロックが保護モデルを参照するかどうかをプログラムにより判別するには、関数 get_param
を使用して、Model ブロックの読み取り専用 ProtectedModel
パラメーターをクエリします。参照モデルが保護されている場合、関数は 'on'
を返します。参照モデルが保護されていない場合、関数は 'off'
を返します。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
実際のコード生成のサポートは、ブロックの実装に依存します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための Verilog および VHDL のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。HDL コード生成への Model ブロックの使用について、およびベスト プラクティスと制限事項の詳細については、HDL コード生成でのモデル参照 (HDL Coder)を参照してください。
参照モデル用のブラック ボックス インターフェイスの生成 (HDL Coder)および参照モデルのパラメーター付きのコードの生成 (HDL Coder)も参照してください。
アーキテクチャ | 説明 |
---|---|
ModelReference (既定) | 参照モデルおよび任意の入れ子にされたモデルからコードを生成する場合、[ModelReference] 実装を使用します。詳細については、参照モデルのコードの生成方法 (HDL Coder)を参照してください。 |
BlackBox | レガシまたは外部の HDL コードについては、 詳細については、参照モデル用のブラック ボックス インターフェイスの生成 (HDL Coder)を参照してください。 |
[BlackBox]
アーキテクチャについて、端子名をカスタマイズして、外部コンポーネントのインターフェイスの属性を設定できます。ブラック ボックスまたは HDL コシミュレーション インターフェイスのカスタマイズ (HDL Coder)を参照してください。
BalanceDelays | あるパスに新しい遅延が導入されたことを検出し、それに一致する遅延を他のパスに挿入します。既定の設定は |
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
DistributedPipelining | パイプライン レジスタの分散、またはレジスタのリタイミング。既定の設定は |
DSPStyle | 乗算器のマッピングの合成属性。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
ReferenceModelPrefix | 生成されたコードに挿入する参照モデルの接頭辞。コード ジェネレーターはこの接頭辞をサブモデル ファイル名および HDL 識別子に適用します。既定の接頭辞は メモ
|
SharingFactor | 単一の共有リソースにマッピングされる、機能的に等価なリソースの数。既定の設定は 0 です。リソース共有 (HDL Coder)も参照してください。 |
StreamingFactor | 時間多重化されてシリアルのスカラー データ パスに変換される、パラレル データ パスの数、またはベクトルの数。既定値は 0 であり、パラレル データ パスがそのまま実装されます。ストリーミング (HDL Coder)も参照してください。 |
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
実際のデータ型のサポートは、ブロックの実装に依存します。
バージョン履歴
R2006a より前に導入R2023b: 参照モデルを入力せずに Model ブロックの端子を作成
R2023b 以降では、Subsystem ブロックの場合と同様に、参照モデルを入力することなく Model ブロックで端子を作成できます。
端子を作成するには、Model ブロックの 4 つのエッジのいずれかの上にマウスをポイントします。ポインターが十字形になったらクリックします。クリックしたエッジに新しい端子が表示され、青で強調表示されます。新しい端子の上にマウスをポイントします。展開されたアクション メニューで、作成する端子のタイプを選択します。
既存の端子を削除するには、端子を選択して Delete キーを押します。複数の端子を削除するには、Shift キーを押したまま端子を選択します。次に、Delete キーを押します。
Model ブロックの端子の作成の詳細については、Add Ports to Model Reference Interfaceを参照してください。
R2019a: Model ブロックでのバリアント モデルの指定はサポートされなくなりました
R2019a 以降、Model ブロックでのバリアント モデルの指定はサポートされなくなりました。バリアント モデルを指定するために事前に設定された Model である Model Variants ブロックもサポートされなくなりました。これらのブロックを含むモデルを読み込むと、これらはバリアントの選択を表す Model ブロックを含む Variant Subsystem ブロックに変換されます。
Variant Subsystem ブロックには、以下の利点があります。
Model ブロックと Subsystem ブロックをバリアントの選択肢として混在させることができます。
入力端子と出力端子の数が異なるバリアントを指定できます。
Variant Subsystem ブロック パラメーター [ブロック線図の更新中にすべての選択肢を解析し、プリプロセッサの条件を生成する] は、Model ブロック パラメーター [プリプロセッサの条件を生成] と異なる動作をします。Variant Subsystem ブロック パラメーターは、シミュレーションを実行させてブロック線図を更新することでアクティブなバリアントのみをコンパイルするのではなく、すべてのバリアントをコンパイルします。
バリアントの Model ブロック パラメーターを使用するスクリプトがある場合、Variant Subsystem ブロック パラメーターを使用するようにそれらを更新しなければなりません。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)