メインコンテンツ

モデル参照変換アドバイザー

サブシステムから参照モデルへの変換

説明

モデル参照変換アドバイザーは、サブシステムを参照モデルに変換します。このアドバイザーは、条件付きサブシステム、マスク サブシステム、参照サブシステムなど、さまざまなサブシステムを変換できます。

サブシステムを参照モデルに変換することは、大規模で複雑なシステムのモデル化やチームベースの開発にとって有益です。多くの大規模モデルでは、サブシステムと参照モデルを組み合わせて使用します。サブシステムを参照モデルに変換するかどうかを決定するには、モデル コンポーネントのタイプの検討を参照してください。

変換で問題が発生すると、モデル参照変換アドバイザーを使って問題を確認および修正できます。Subsystem ブロックの内容を準備すると、問題がなくなるか、問題の数が削減されます。このような問題はモデル編集環境で解決する方が、モデル参照変換アドバイザーと Simulink® エディターの間を何度も切り替えるよりも効率的です。詳細については、サブシステムから参照モデルへの変換を参照してください。

The Model Reference Conversion Advisor window.

モデル参照変換アドバイザー を開く

  • Simulink エディター: Subsystem ブロックを選択します。次に、Simulink ツールストリップの [Subsystem ブロック] タブで、[変換][参照モデル] を選択します。

  • MATLAB® コマンド ウィンドウ: UseConversionAdvisortrue に設定して Simulink.SubSystem.convertToModelReference 関数を使用します。

すべて展開する

変換の出力を決定し、アドバイザーが変換エラーの修正を自動的に試みるかどうかを制御する入力パラメーターを指定します。

アドバイザーを開くときに、左側のペインで、最上位ノードが選択されています。このノードによって、アドバイザーが参照モデルに変換する Subsystem ブロックが特定され、変換入力パラメーターが提供されます。既定のパラメーター値を使用するか、あるいは値を変更して変換をカスタマイズすることができます。

特定のパラメーターの詳細については、パラメーターを参照してください。

モデル参照変換アドバイザーでは、各チェックを自動的にステップ実行できます。

  1. サブシステムの変換オプションの設定後、[変換] をクリックします。

    モデル参照変換アドバイザーが各チェックを自動的にステップ実行します。

  2. アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。

  3. 報告された問題を解決したら、[続行] をクリックします。

モデル参照変換アドバイザーがすべてのチェックを正常に実行したら、変換を完了します。

すべての変換入力パラメーターが有効であることを確認します。

特定のパラメーターの詳細については、パラメーターを参照してください。

  1. 左側のペインで [変換の入力パラメーターをチェック] ノードを選択します。

  2. [このタスクを実行] ボタンをクリックします。

  3. アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。

  4. 報告された問題を解決したら、[続行] をクリックします。

モデル コンフィギュレーションがモデル参照の要件を満たしていることを検証します。このチェックは、モデル参照で有効でないモデル コンフィギュレーション パラメーター設定を特定します。

  1. 左側のペインで [モデル コンフィギュレーションをチェック] ノードを選択します。

  2. [このタスクを実行] ボタンをクリックします。

  3. アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。

  4. 報告された問題を解決したら、[続行] をクリックします。

サブシステム インターフェイスがモデルの参照要件を満たしているかどうかを検証します。

  1. 左側のペインで [サブシステムのインターフェイスをチェック] ノードを選択します。

  2. [このタスクを実行] ボタンをクリックします。

    アドバイザーは、サブシステムのタイプがアドバイザーが変換できるタイプであることを検証します。次にアドバイザーは、マスク サブシステムなどの特定のタイプのサブシステムへのインターフェイスが変換の要件を満たしていることを検証します。

  3. アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。

  4. 報告された問題を解決したら、[続行] をクリックします。

サブシステムの内容がモデル参照の要件を満たしているかどうかを検証します。

  1. 左側のペインで [サブシステムのコンテンツをチェック] ノードを選択します。

  2. [このタスクを実行] ボタンをクリックします。

    アドバイザーはモデルが正常にコンパイルするかどうかを確認します。コンパイルが正常に行われると、アドバイザーはサブシステム内のブロックが変換の要件を満たしているかどうかチェックします。

  3. アドバイザーから報告された問題を解決します。アドバイザーでは、自動で修正できるすべての問題に [修正] ボタンが表示されます。

  4. 報告された問題を解決したら、[続行] をクリックします。

すべてのチェックが正常に実行されたら、変換が完了します。

  1. 左側のペインで [変換を完了] ノードを選択します。

  2. [このタスクを実行] ボタンをクリックします。

    モデル参照変換アドバイザーは以下を行います。

    • モデルを作成する。

    • サブシステムの内容を新しいモデルにコピーする。

    • 既定では、Subsystem ブロックを、新しいモデルを参照する Model ブロックに置き換えようとする。

    • 元のサブシステムからのコンパイルされた属性を使用するように、新しいモデルのルートレベルの入力ブロックと出力ブロックを更新する。

    • 親モデルのコンフィギュレーション セットを新しいモデルにコピーするか、親モデルと同じコンフィギュレーション セットを参照する。変換によって新しいモデルの一部の構成設定を変更して、新しいモデルを参照モデルとして使用できるようにすることができます。

    • slprj フォルダーに HTML 変換概要レポートが作成されます。このレポートには、アドバイザーが実行した修正結果を含む、変換プロセスの結果がまとめられています。このレポートでは、アドバイザーがコピーする要素についても説明しています。

    • オプションで、変換前後のシミュレーション結果の整合性をチェックする。

    該当する場合、モデル参照変換アドバイザーは以下も行います。

    • サブシステムによって使用されるモデル ワークスペースの内容を親モデルから新しいモデルにコピーする。

    • 親モデルで使用されるデータ ディクショナリを新しいモデルに適用する。

    • 新しいモデルに必要な Simulink.Bus オブジェクト、Simulink.Signal オブジェクト、および調整可能なパラメーターを作成する。

    • 元の Subsystem ブロックのブロック マスクに基づいて、新しいモデルのシステム マスクを作成する。システム マスクは、マスク初期化コードなどのブロック マスクの一部の機能をサポートしていません。詳細については、システム マスクの概要を参照してください。

    • Requirements Toolbox™ ソフトウェアで作成された要件リンクを、元の Subsystem ブロックから新しい Model ブロックにコピーする。

変換結果に満足しない場合、モデルを初期の状態に戻すことができます。[変換を完了] チェックを正常に実行した後に、[元のモデルを復元するにはここをクリック] リンクをクリックします。

[変換後にシミュレーション結果をチェック] を選択した場合、[比較結果を表示するにはここをクリック] リンクをクリックして結果を表示できます。

[変換後にシミュレーション結果をチェック] を選択した場合、モデル参照変換アドバイザーは変換前後の最上位モデルのシミュレーション結果の比較を提供します。

[変換を完了] チェックを正常に実行した後に、[比較結果を表示するにはここをクリック] をクリックします。結果がシミュレーション データ インスペクターに表示されます。緑色のチェック マークは、シミュレーション結果がベースライン モデルと新しい参照モデルを含むモデル間の許容誤差内にあることを示します。

The Simulation Data Inspector compares a logged signal before and after conversion.

詳細については、シミュレーション データの比較を参照してください。

関連する例

パラメーター

すべて展開する

既定の新規モデル名は、Subsystem ブロック名に基づく MATLAB パス上の一意の名前です。

有効なモデル ファイル名については、Choose Valid Model File Namesを参照してください。

変換データ ファイルには、変換中に作成された変数とオブジェクトが保存されます。

既定では、ファイル名はモデル名で始まり、_conversion_data.mat で終わります。たとえば、myModel という名前のモデル内のサブシステムの場合、既定の変換ファイル名は myModel_conversion_data.mat です。

変換データは、MAT ファイル (.mat) またはスクリプト (.m) に保存できます。.m ファイル拡張子を指定すると、ファイルは変数をシリアル化します。

依存関係

このパラメーターを有効にするには、親モデルでデータ ディクショナリを使用しないようにする必要があります。

このパラメーターを選択すると、アドバイザーは一部の変換の問題を自動的に修正します。

既定では、アドバイザー チェックによってアドバイザーが修正可能なエラーが検出されると、アドバイザーに [修正] ボタンが表示されます。アドバイザーで問題を修正するには、[修正] ボタンをクリックします。

アドバイザーは、サブシステム境界を越える Goto ブロックや From ブロックなどの変換の問題を修正できます。自動修正に基づいて、新しいモデルは元のサブシステムよりも多くの端子をもつことがあります。

変換中に必要な修正の数を減らすには、変換するサブシステムの準備を参照してください。

既定では、アドバイザーは Subsystem ブロックを、新しいモデルを参照する Model ブロックに置き換えようとします。自動修正によってインターフェイスに端子が追加された場合、親モデルのレイアウトを維持するために、アドバイザーは元の Subsystem ブロックを、Model ブロックを含む Subsystem ブロックに置き換えます。

このパラメーターをオフにすると、アドバイザーは元のモデルを更新しません。アドバイザーは新しいモデルを新しいウィンドウで開きます。アドバイザーは、新しいモデルを参照する Model ブロックを含むウィンドウも開きます。

ヒント

マスク Subsystem ブロックの場合、変換前に元の Subsystem ブロックのバックアップを作成することを検討してください。バックアップを使用すると、新しいシステム マスクと元の Subsystem ブロック マスクを比較できます。新しいモデルのシステム マスクは、元の Subsystem ブロックのブロック マスクとは異なる場合があります。たとえば、変換ではブロック マスクからシステム マスクにマスク初期化コードがコピーされません。詳細については、システム マスクの概要を参照してください。

親モデルから新しいモデルにコード マッピング情報をコピーするには、このパラメーターを選択します。

コード マッピング情報には、コード生成のためのモデル データ要素の設定が含まれます。このパラメーターはシミュレーションに影響しません。

詳細については、サブシステムの参照モデルへの変換とコードの生成 (Simulink Coder)を参照してください。

Model ブロック シミュレーション モードは、参照モデルの対応するインスタンス用のシミュレーション モードを制御します。同じモデルを参照する別の Model ブロックでは、別のシミュレーション モードを指定できます。

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

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

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

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

親モデルのシミュレーション モードが Model ブロックのシミュレーション モードをオーバーライドする場合があります。詳細については、モデルの階層構造内のシミュレーション モードの選択を参照してください。

変換前後の最上位モデルのシミュレーション結果を比較するには、このパラメーターを選択します。

変換完了後に結果を表示するには、[View comparison results] をクリックします。シミュレーション データ インスペクターに比較結果が表示されます。詳細については、変換前後のシミュレーション結果の比較を参照してください。

ヒント

変換を実行する前に以下のようにします。

  • アドバイザーの [Model ブロック シミュレーション モード] オプションを元のモデルと同じシミュレーション モードに設定する。

  • [終了時間][絶対許容誤差]、および [相対許容誤差] を設定する。

依存関係

  • このオプションを使用するには、対象のサブシステム出力信号に対して信号のログを有効にします。

  • このオプションを有効にするには、[サブシステムの内容を Model ブロックに置換] をオンにします。

既定では、シミュレーション結果の比較では親モデルの終了時間が使用されます。終了時間は、親モデルの開始時間以上の有限スカラーでなければなりません。詳細については、開始時間を参照してください。

依存関係

このパラメーターを有効にするには、[変換後にシミュレーション結果をチェック] を選択します。

絶対許容誤差とは、測定された信号の値がゼロに近づくにつれた、ソルバーの最大許容誤差です。変換前のシミュレーション結果はベースラインを確立します。変換後のシミュレーション結果は許容誤差の範囲内である必要があります。

依存関係

このパラメーターを有効にするには、[変換後にシミュレーション結果をチェック] を選択します。

相対許容誤差とは、許容可能な最大のソルバー誤差を、タイム ステップごとの各信号のサイズとの相対値としたものです。変換前のシミュレーション結果はベースラインを確立します。変換後のシミュレーション結果は許容誤差の範囲内である必要があります。

既定値 (0.001) は、比較対象信号がベースライン信号の 0.1% 以内の精度であることを意味します。

依存関係

このパラメーターを有効にするには、[変換後にシミュレーション結果をチェック] を選択します。

変換の完了後、slprj フォルダーに HTML 変換概要レポートが表示されます。このレポートには、アドバイザーが実行した修正結果を含む、変換の設定と結果がまとめられています。このレポートでは、アドバイザーがコピーする要素についても説明しています。

変換の完了後に変換レポートを開くには、このパラメーターを選択します。

プログラムでの使用

制限

モデル参照変換アドバイザーは、いくつかの種類のサブシステムで変換をサポートしません。以下に例を示します。

  • サブシステム境界を越える Simscape™ Multibody™ コンポーネントのある Subsystem ブロック

  • 非同期サブシステム — 非同期サブシステムを非同期関数呼び出しを受け入れる参照モデルに変換するには、非同期サポートの確認事項 (Simulink Coder)を参照してください。

ヒント

1 つ以上のサブシステムをモデルに変換するには、Simulink.SubSystem.convertToModelReference 関数を使用します。変換概要レポートを生成するには、モデル参照変換アドバイザーを使用します。

次の表に、モデル参照変換アドバイザーのパラメーターと、対応する Simulink.SubSystem.convertToModelReference 関数の引数とのマッピングを示します。

ツールのパラメーター関数の引数
新規モデル名1 つ以上のモデル名を指定するには、関数の 2 番目の入力引数を使用します。
変換データ ファイル名DataFileName
自動的にエラーを修正 (可能な場合)AutoFix
サブシステムの内容を Model ブロックに置換ReplaceSubsystem
コード マッピングをコピーCopyCodeMappings
Model ブロック シミュレーション モードSimulationModes
変換後にシミュレーション結果をチェックCheckSimulationResults
終了時間StopTime
絶対許容誤差AbsoluteTolerance
相対許容誤差RelativeTolerance

バージョン履歴

R2014a で導入

すべて展開する