ドキュメンテーション

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

Simulink.SubSystem.convertToModelReference

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

構文

  • Simulink.SubSystem.convertToModelReference(gcb,'UseConversionAdvisor',true)
  • [success,mdlRefBlkHs] = Simulink.SubSystem.convertToModelReference(subsys,mdlRefs)
  • [success,mdlRefBlkHs] = Simulink.SubSystem.convertToModelReference(subsys,mdlRefs,Name,Value)

説明

Simulink.SubSystem.convertToModelReference(gcb,'UseConversionAdvisor',true) は、現在選択している Subsystem ブロックに対してモデル参照変換アドバイザーを開きます。

[success,mdlRefBlkHs] = Simulink.SubSystem.convertToModelReference(subsys,mdlRefs) は指定したサブシステムを mdlRefs 値を使用して参照モデルに変換します。

関数が変換するサブシステムごとに、以下を行います。

  • モデルを作成する

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

  • ルートレベルの Inport ブロック、Outport ブロック、Trigger ブロック、Enable ブロックとモデルのコンフィギュレーション パラメーターを更新し、元のサブシステムのコンパイルされた属性と一致させる

  • 元のモデルのモデル ワークスペースの内容を新しいモデルにコピーする

関数を使用する前に、サブシステムが含まれるモデルを読み込みます。

[success,mdlRefBlkHs] = Simulink.SubSystem.convertToModelReference(subsys,mdlRefs,Name,Value) は、1 つ以上の Name,Value のペアの引数によって指定された追加オプションを使用します。

すべて折りたたむ

f14 モデルを開きます。

open_system('f14');

f14 モデルで、Controller サブシステムの出力信号を選択し、[シミュレーション データ インスペクター] ボタン矢印 をクリックして、[選択した信号をワークスペースにログ] を選択します。

Simulink® エディターで Controller サブシステムを選択します。次に、コマンド ラインからモデル参照変換アドバイザーを開きます。

Simulink.SubSystem.convertToModelReference(gcb,'UseConversionAdvisor',true);

アドバイザーを使用して変換を実行します。

Bus Counter サブシステムを bus_counter_ref_model という名前の参照モデルに変換します。

open_system('sldemo_mdlref_conversion');
Simulink.SubSystem.convertToModelReference(...
   'sldemo_mdlref_conversion/Bus Counter', ...
   'bus_counter_ref_model', ...
   'AutoFix',true,...
   'ReplaceSubsystem',true,...
   'CheckSimulationResults',true);
success =

     1

>> mr_handle

mr_handle =

   79.0018

2 つのサブシステムを 1 つのコマンドで変換します。

open_system('f14');
Simulink.SubSystem.convertToModelReference(...
{'f14/Controller','f14/Aircraft Dynamics Model'},...
{'controller_ref_model','aircraft_dynamics_ref_model'},...
'ReplaceSubsystem',true,...
'CheckSimulationResults',true)

関連する例

入力引数

すべて折りたたむ

変換するサブシステム。文字列、サブシステム ハンドル、文字列のセル配列またはサブシステム ハンドルの配列として指定します。

各サブシステムは次のいずれかの種類のサブシステムでなければなりません。

  • Atomic

  • Function-call

  • Triggered

  • Enabled

[コンフィギュレーション パラメーター][診断][データ有効性]信号の関連付けパラメーターを [明示的のみ] に設定しなければなりません。そのパラメーターをプログラムで設定するには、このコマンドを使用してモデル名を myModelName に代入します。

set_param(myModellName,'SignalResolutionControl','UseLocalSettings');

データ型: double

参照モデル名。文字列または文字列のセル配列として指定します。各モデル名は 59 文字以下でなければなりません。

変換するサブシステムのセル配列を指定する場合、参照モデル名のセル配列を指定します。各モデル名は、指定されたサブシステムに同じ順序で対応します。

名前/値のペアの引数

オプションのコンマ区切りされた Name,Value の組み合わせ引数を指定します。ここで、Name は引数名、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: Simulink.SubSystem.convertToModelReference...(engineSubsys,engineModelRef,'ReplaceSubsystem',true)

すべて折りたたむ

AutoFixtrue に設定すると、関数は修正可能なすべての変換問題を修正します。

関数で修正できない問題については、モデルを修正して対処するように促すエラー メッセージが変換プロセスによって生成されます。

    メモ:   'Force'true に設定すると、関数は自動的に変換の問題を修正しません。

データ型: logical

'Force'true に設定すると、関数は変換エラーを警告として返し、エラーを修正せずに変換を継続します。このオプションによって、この関数を変換の最初のステップを行うために使用し、その後手動で変換プロセスを完了させることができます。

Forcetrue に設定すると、関数は 'AutoFix'true に設定した場合でも変換の問題を修正しません。ただし、success 出力引数は変換エラーが発生したかしないかにかかわらず true です。

変換前後のシミュレーション結果の比較。true または false として指定します。

変換を実行する前に、モデルで目的のサブシステム出力信号の信号ログを有効にします。

Simulink.SubSystem.convertToModelReference コマンドに以下を設定します。

  • 'CheckSimulationResults'true に設定

  • 'AbsoluteTolerance'

  • 'RelativeTolerance'

  • 'SimulationModes' を元のモデルと同じシミュレーション モードに設定

シミュレーション結果間の差分が許容誤差レベルを超える場合、関数はメッセージを表示します。

比較のための信号の絶対許容誤差。double として指定します。CheckSimulationResultstrue に設定した場合にのみこのオプションを使用します。

データ型: double

比較のための信号の相対許容誤差。double として指定します。CheckSimulationResultstrue に設定した場合にのみこのオプションを使用します。

データ型: double

変換データを保存するファイルの名前。文字列として指定します。絶対パスまたは相対パスを指定できます。

変換データは、MAT ファイル (既定) または MATLAB® ファイルに保存できます。.m ファイル拡張子を使用する場合、関数はすべての変数を MATLAB ファイルにシリアル化します。

既定では、関数はモデル名と _conversion_data.mat で構成されるファイル名を使用します。

Subsystem ブロックを Model ブロックと置き換えます。true または false として指定します。Model ブロックは参照モデルを参照します。

既定では、関数は参照モデルを別の Simulink エディター ウィンドウに表示します。

値を true に設定する場合は、サブシステムを変換する前に元のモデルのバックアップを作成することを検討してください。変換を元に戻す場合、バックアップを作成しておくとモデルの復元が容易になります。

ReplaceSubsystemtrue に設定した場合、変換処理は自動修正オプションを使用するかどうかに応じて異なります。

  • 自動修正を使用する場合、自動修正で入力端子と出力端子が変更されない限り、変換によって Subsystem ブロックは Model ブロックと置き換えられます。端子が変更される場合、変換によって Subsystem ブロックに挿入される Model ブロックにサブシステムの内容が含まれます。

  • 自動修正を使用しない場合、変換によって Subsystem ブロックが Model ブロックと置き換えられます。

データ型: logical

モデル レイアウトを保持するためにラッパー サブシステムを挿入します。true または false として指定します。サブシステムを参照モデルに変換する場合、変換プロセスでラッパー サブシステムを挿入してモデルのレイアウトを保持できます。サブシステム ラッパーには、変換による Model ブロックが含まれています。

自動修正によってサブシステムの入力端子または出力端子が変更される場合、変換プロセスによってこのオプションが有効になります。

データ型: logical

Model ブロック用のシミュレーション モード。'Normal' または 'Accelerator' として指定します。このシミュレーション モード設定は変換によって作成されたモデルを参照する Model ブロックに適用されます。

生成するモデル参照ターゲット。文字列として指定します。

  • 'Sim' — モデル参照のシミュレーション ターゲット

  • 'RTW' — コード生成ターゲット

出力引数

すべて折りたたむ

変換ステータス。1 の値は変換に成功したことを示します。

'Force'true に設定した場合、変換が完了すると関数は 1 の値を返します。ただし、シミュレーション結果は変換前のモデルのシミュレーション結果とは異なる場合があります。

作成された Model ブロックのハンドル。double またはセル配列として返されます。

データ型: double

詳細

すべて折りたたむ

ヒント

  • 変換する複数のサブシステムを 1 つのコマンドで指定すると、各サブシステムを個別に変換するのに比べ、時間が節約される可能性があります。複数サブシステムの変換プロセスではモデルが一度にコンパイルされます。

  • 変換する複数のサブシステムを指定すると、変換プロセスは各システムを変換しようとします。正常に変換されたサブシステムは、他のサブシステムの変換が失敗しても、参照モデルになります。

  • 複数のサブシステムを指定する場合は、次の点を考慮します。

    • これらの 'Autofix''ReplaceSubsystem''Verify Simulation Results' の名前と値のペアを指定し、true に設定する。

    • モデルでは、シミュレーション時間を短時間に設定する。

  • Simulink はデータ ディクショナリを使用して、次の条件がどちらも存在する場合に変換プロセスの一部として作成するバス オブジェクトを保存します。

    • 最上位モデルでデータ ディクショナリを使用する。

    • 最上位モデルへのすべての変更が保存されている。

  • 変換が完了した後、必要に応じてモデル化要件に合わせてモデルを更新します。詳細は、「参照モデルの親モデルへの統合」を参照してください。

  • マスク サブシステムを変換する場合、そのマスク サブシステムが提供する同じ一般的な動作を維持するために、追加のタスクの実行が必要になる場合があります。

    変換するサブシステムにマスク ブロックが含まれている場合、新しい参照モデルで Model ブロックをマスクすることを検討してください (「ブロック マスク」を参照)。マスク サブシステムの機能をサポートするように参照モデルを構成してください。

      メモ:   参照モデルは、マスク パラメーターを作成するためにマスク初期化コードで実現できる機能をサポートしていません。

    マスク パラメーターに対して、以下を行います。

    1. 参照モデルのモデル ワークスペースで、各マスク パラメーターに対して変数を 1 つ作成します。

    2. モデル エクスプローラーで Model Workspace ノードを選択します。[ダイアログ] ペインの [モデルの引数] パラメーターで、モデルの引数にする変数を入力します。

    3. 新しい Model ブロックで [モデルの引数] パラメーターに対してモデルの引数に対する値を指定します。

    マスク コールバック、アイコン、端子およびドキュメンテーションに対して、以下を行います。

    1. マスク サブシステムのバックアップ コピーでマスク エディターを開いて、マスクされた Model ブロックに格納する内容をコピーします。

    2. 新しい Model ブロックのマスク エディターで、マスク サブシステムの内容を貼り付けます。

R2006a で導入

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