モデル参照変換アドバイザー
サブシステムから参照モデルへの変換
説明
モデル参照変換アドバイザーは、サブシステム (条件付きサブシステムおよび参照サブシステムを含む) を参照モデルに変換します。
サブシステムを参照モデルに変換することは、大規模で複雑なシステムのモデル化やチームベースの開発にとって有益です。多くの大規模モデルでは、サブシステムと参照モデルを組み合わせて使用します。サブシステムを参照モデルに変換するかどうかを決定するには、モデル コンポーネントのタイプの検討を参照してください。
変換で問題が発生すると、モデル参照変換アドバイザーを使って問題を確認および修正できます。Subsystem ブロックの内容を準備すると、問題がなくなるか、問題の数が削減されます。このような問題はモデル編集環境で解決する方が、モデル参照変換アドバイザーと Simulink® エディターの間を何度も切り替えるよりも効率的です。
モデル参照変換アドバイザー を開く
Simulink エディターで、Subsystem ブロックを選択します。Simulink ツールストリップで、次のいずれかの操作を実行します。
[Subsystem ブロック] タブで、[変換] 、 [Model ブロック] を選択します。
[モデル化] タブの [コンポーネント] ギャラリーで、[Model ブロックに変換] を選択します。
MATLAB® コマンド ウィンドウで、引数
'UseConversionAdvisor'
をtrue
に設定して関数Simulink.SubSystem.convertToModelReference
を使用します。
例
サブシステム変換オプションの設定
変換の出力を決定し、アドバイザーが変換エラーの修正を自動的に試みるかどうかを制御する入力パラメーターを指定します。
アドバイザーを開くときに、左側のペインで、最上位ノードが選択されています。このノードによって、アドバイザーが参照モデルに変換する Subsystem ブロックが特定され、変換入力パラメーターが提供されます。既定のパラメーター値を使用するか、あるいは値を変更して変換をカスタマイズすることができます。
特定のパラメーターの詳細については、パラメーターを参照してください。
サブシステムから参照モデルへの自動変換
モデル参照変換アドバイザーでは、各チェックを自動的にステップ実行できます。
サブシステムの変換オプションの設定後、[変換] をクリックします。
モデル参照変換アドバイザーが各チェックを自動的にステップ実行します。
アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。
報告された問題を解決したら、[続行] をクリックします。
モデル参照変換アドバイザーがすべてのチェックを正常に実行したら、変換を完了します。
変換入力パラメーターのチェック
すべての変換入力パラメーターが有効であることを確認します。
特定のパラメーターの詳細については、パラメーターを参照してください。
左側のペインで [変換の入力パラメーターをチェック] ノードを選択します。
[このタスクを実行] ボタンをクリックします。
アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。
報告された問題を解決したら、[続行] をクリックします。
モデル コンフィギュレーションのチェック
モデル コンフィギュレーションがモデル参照の要件を満たしていることを検証します。このチェックは、モデル参照で有効でないモデル コンフィギュレーション パラメーター設定を特定します。
左側のペインで [モデル コンフィギュレーションをチェック] ノードを選択します。
[このタスクを実行] ボタンをクリックします。
アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。
報告された問題を解決したら、[続行] をクリックします。
サブシステム インターフェイスのチェック
サブシステム インターフェイスがモデルの参照要件を満たしているかどうかを検証します。
左側のペインで [サブシステムのインターフェイスをチェック] ノードを選択します。
[このタスクを実行] ボタンをクリックします。
アドバイザーは、サブシステムのタイプがアドバイザーが変換できるタイプであることを検証します。次に、マスク サブシステムなどの特定のタイプのサブシステムへのインターフェイスが変換の要件を満たしていることを検証します。
アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。
報告された問題を解決したら、[続行] をクリックします。
サブシステムの内容のチェック
サブシステムの内容がモデル参照の要件を満たしているかどうかを検証します。
左側のペインで [サブシステムのコンテンツをチェック] ノードを選択します。
[このタスクを実行] ボタンをクリックします。
アドバイザーはモデルが正常にコンパイルするかどうかを確認します。コンパイルが正常に行われると、アドバイザーはサブシステム内のブロックが変換の要件を満たしているかどうかチェックします。
アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。
報告された問題を解決したら、[続行] をクリックします。
変換の完了
すべてのチェックが正常に実行されたら、変換が完了します。
左側のペインで [変換を完了] ノードを選択します。
[このタスクを実行] ボタンをクリックします。
モデル参照変換アドバイザーは以下を行います。
サブシステムから参照モデルが作成されます。
参照モデルに必要な
Simulink.Bus
オブジェクト、Simulink.Signal
オブジェクトおよび調整可能なパラメーターが作成されます。既定では、新しいモデルを参照する Model ブロックによって Subsystem ブロックが置き換えられます。
自動修正によって端子が Model ブロック インターフェイスに追加された場合、Subsystem ブロックに Model ブロックが挿入されます。
slprj
フォルダーに HTML 変換概要レポートが作成されます。このレポートには、アドバイザーが実行した修正結果を含む、変換プロセスの結果がまとめられています。このレポートでは、アドバイザーがコピーする要素についても説明しています。オプションで、変換前後のシミュレーション結果の整合性をチェックします。
以下の要素を元のモデルから、新たに作成した参照モデルにコピーします。
コンフィギュレーション セット — 親モデルで以下を使用する場合
参照されるコンフィギュレーション セットではないコンフィギュレーション セット。アドバイザーはコンフィギュレーション セット全体を参照モデルにコピーします。
参照されるコンフィギュレーション セット。親モデルと参照モデルはどちらも同じ参照されるコンフィギュレーション セットを使用します。
変数 — アドバイザーは、元のモデルでサブシステムが使用していたモデル ワークスペース変数のみを、参照モデルのモデル ワークスペースにコピーします。サブシステムを含むモデルがデータ ディクショナリを使用している場合は、参照モデルも同じデータ ディクショナリを使用します。
要件リンク — アドバイザーは Requirements Toolbox™ ソフトウェアで作成された要件リンクを元の Subsystem ブロックから Model ブロックにコピーします。
変換結果に満足しない場合、モデルを初期の状態に戻すことができます。[変換を完了] チェックを正常に実行した後に、[元のモデルを復元するにはここをクリック] リンクを使用します。
[変換後にシミュレーション結果をチェック] を選択した場合、[比較結果を表示するにはここをクリック] リンクを使用して結果を表示できます。
変換前後のシミュレーション結果の比較
[変換後にシミュレーション結果をチェック] を選択した場合、モデル参照変換アドバイザーは変換前後の最上位モデルのシミュレーション結果の比較を提供します。
[変換を完了] チェックを正常に実行した後に、[比較結果を表示するにはここをクリック] をクリックします。結果がシミュレーション データ インスペクターに表示されます。緑色のチェック マークは、シミュレーション結果がベースライン モデルと新しい参照モデルを含むモデル間の許容誤差内にあることを示します。
詳細については、シミュレーション データの比較を参照してください。
関連する例
パラメーター
新規モデル名
— モデル ファイルの一意の名前
テキスト
既定の新規モデル名は、Subsystem ブロック名に基づく MATLAB パス上の一意の名前です。
モデル名は 59 文字以内です。詳細については、Choose Valid Model File Namesを参照してください。
ヒント
参照モデルが存在するというエラーが表示された場合は、このパラメーターを使用して新しいモデル名を指定します。
変換データ ファイル名
— 変換データ ファイルの一意の名前
テキスト
変換データ ファイルには、変換中に作成された変数またはオブジェクトが保存されます。
既定では、ファイル名はモデル名で始まり、_conversion_data.mat
で終わります。たとえば、myModel
という名前のモデル内のサブシステムの場合、既定の変換ファイル名は myModel_conversion_data.mat
です。
変換データは、MAT ファイル (.mat
) またはスクリプト (.m
) に保存できます。.m
ファイル拡張子を使用する場合、ファイルはすべての変数をシリアル化します。
依存関係
このパラメーターを有効にするには、最上位モデルでデータ ディクショナリを使用しないようにする必要があります。
自動的にエラーを修正 (可能な場合)
— 使用可能な修正を適用するオプション
off
(既定値) | on
既定では、アドバイザー チェックによってアドバイザーが修正可能なエラーが検出された場合、アドバイザーに [修正] ボタンが表示されます。このボタンをクリックすると、アドバイザーによって問題が修正されます。
このパラメーターを選択すると、アドバイザーは修正可能なすべての変換エラーを [修正] ボタンを表示することなく修正します。
サブシステムの内容を Model ブロックに置換
— サブシステムを参照モデルと置き換えるオプション
on
(既定値) | off
既定では、アドバイザーは Model ブロックを挿入することで元のモデルを更新します。アドバイザーの動作は、自動修正オプションを使用しているかどうかにより異なります。
自動修正を使用する場合、自動修正によって入力端子または出力端子が変更される場合を除き、アドバイザーは Subsystem ブロックを Model ブロックで置き換えます。端子が変更された場合、アドバイザーには Model ブロック内のサブシステムのコンテンツが含まれ、それを Subsystem ブロックに挿入します。
自動修正を使用しない場合、アドバイザーは Subsystem ブロックを Model ブロックで置き換えます。
新規に作成されたモデルを参照する Model ブロックのみを含む新しい Simulink エディター ウィンドウをアドバイザーが開くようにするにはこのパラメーターをクリアします。アドバイザーは他の Simulink エディター ウィンドウ内の元のモデルは更新しません。
コード マッピングをコピー
— 新しいモデルにコード マッピング情報をコピーするオプション
off
(既定値) | on
コード マッピング情報を親モデルから新しい変換済みの参照モデルにコピーするには、このパラメーターを選択します。
コード マッピング情報には、コード生成のためのモデル データ要素の設定が含まれます。このパラメーターはシミュレーションに影響しません。
詳細については、サブシステムの参照モデルへの変換とコードの生成 (Simulink Coder)を参照してください。
Model ブロック シミュレーション モード
— モデル参照インスタンス用のシミュレーション モード
ノーマル
(既定値) | アクセラレータ
| ソフトウェアインザループ (SIL)
Model ブロック シミュレーション モードは、参照モデルの対応するインスタンス用のシミュレーション モードを制御します。同じモデルを参照する別の Model ブロックでは、参照モデルのインスタンス用に別のシミュレーション モードを指定できます。
ノーマル
— 参照モデルをインタープリターで実行します。参照モデルは、親モデル内に直接実装された Atomic Subsystem であるかのように扱われます。アクセラレータ
— 参照モデルの MEX ファイルを作成します。その後、S-Function を実行して参照モデルを実行します。ソフトウェアインザループ (SIL)
— このオプションには Embedded Coder® のライセンスが必要です。Model ブロックの [コード インターフェイス] のパラメーター設定に基づき、量産コードを生成します。そのコードは、ホスト プラットフォーム用にコンパイルされてホスト プラットフォーム上で実行されます。
Model ブロックの角は、Model ブロックのシミュレーション モードを示しています。ノーマル モードでは、角に塗りつぶしなしの三角形が表示されます。アクセラレータ モードでは、角の三角形は塗りつぶされます。SIL モードでは、角は塗りつぶされ、ブロック アイコンに (SIL)
という語が表示されます。
親モデルのシミュレーション モードが Model ブロックのシミュレーション モードをオーバーライドする場合があります。詳細については、モデルの階層構造内のシミュレーション モードの選択を参照してください。
変換後にシミュレーション結果をチェック
— 変換前後の最上位モデルのシミュレーション結果の比較
off
(既定値) | on
変換前後の最上位モデルのシミュレーション結果を比較するには、このパラメーターを選択します。
変換完了後に結果を表示するには、[View comparison results] をクリックします。シミュレーション データ インスペクターに比較結果が表示されます。
詳細については、変換前後のシミュレーション結果の比較を参照してください。
ヒント
変換を実行する前に以下のようにします。
関心のあるサブシステム出力信号に対して信号のログを有効にする。
アドバイザーの [Model ブロック シミュレーション モード] オプションを元のモデルと同じシミュレーション モードに設定する。
[終了時間]、[絶対許容誤差]、および [相対許容誤差] を指定する。
依存関係
このオプションを有効にするには、[サブシステムの内容を Model ブロックに置換] をオンにします。
終了時間
— シミュレーション終了時間
正のスカラー
既定では、最上位モデルの終了時間が inf
である場合を除いて、アドバイザーは最上位モデルの終了時間を使用します。最上位モデルの終了時間が inf
である場合、アドバイザーは既定の終了時間である 10
を使用します。
依存関係
このパラメーターを有効にするには、[変換後にシミュレーション結果をチェック] を選択します。
絶対許容誤差
— シミュレーションを比較するための絶対許容誤差
1e-06
(既定値) | 正のスカラー
絶対許容誤差とは、測定された信号の値がゼロに近づくにつれた、ソルバーの最大許容誤差です。変換前のシミュレーション結果はベースラインを確立します。変換後のシミュレーション結果は許容誤差の範囲内である必要があります。
依存関係
このパラメーターを有効にするには、[変換後にシミュレーション結果をチェック] を選択します。
相対許容誤差
— シミュレーションを比較するための相対許容誤差
0.001
(既定値) | 正のスカラー
相対許容誤差とは、許容可能な最大のソルバー誤差を、タイム ステップごとの各信号のサイズとの相対値としたものです。変換前のシミュレーション結果はベースラインを確立します。変換後のシミュレーション結果は許容誤差の範囲内である必要があります。
既定値 (0.001
) は、比較対象信号がベースライン信号の 0.1% 以内の精度であることを意味します。
依存関係
このパラメーターを有効にするには、[変換後にシミュレーション結果をチェック] を選択します。
実行後にレポートを表示
— 完了時に変換レポートを開くオプション
off
(既定値) | on
変換の完了後、slprj
フォルダーに HTML 変換概要レポートが表示されます。このレポートには、アドバイザーが実行した修正結果を含む、変換の設定と結果がまとめられています。このレポートでは、アドバイザーがコピーする要素についても説明しています。
変換の完了後に変換レポートを開くには、このパラメーターを選択します。
制限
モデル参照変換アドバイザーは、いくつかの種類のサブシステムで変換をサポートしません。以下に例を示します。
サブシステム境界を越える Simscape™ Multibody™ コンポーネントのある Subsystem ブロック
非同期サブシステム — 非同期サブシステムを非同期関数呼び出しを受け入れる参照モデルに変換するには、非同期サポートの確認事項 (Simulink Coder)を参照してください。
バージョン履歴
R2014a で導入R2023a: 親モデルから参照モデルへのサービス インターフェイスのコード マッピングのコピー
R2022b でサービス インターフェイスのコード マッピングが導入されました。R2023a 以降では、新規に作成された参照モデルに親モデルからサービス インターフェイスのコード マッピングをコピーできます。マッピングをコピーするには、モデル参照変換アドバイザーで [コード マッピングをコピー] パラメーターを選択します。サービス インターフェイスのコード マッピングの詳細については、C サービス インターフェイス (Embedded Coder)を参照してください。コード マッピング構成の詳細については、Define Service Interfaces, Storage Classes, Memory Sections, and Function Templates for Software Architecture (Embedded Coder)を参照してください。
R2020b: 親モデルから参照モデルへのコード マッピングのコピー
R2020b 以降では、新規に作成された参照モデルに親モデルからコード マッピングをコピーできます。コード マッピングをコピーするには、モデル参照変換アドバイザーで [コード マッピングをコピー] パラメーターを選択します。
参考
関数
ブロック
トピック
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)