Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

Simulink.SubSystem.convertToModelReference

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

説明

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

[tf,h] = Simulink.SubSystem.convertToModelReference(subsys,model) は指定したサブシステムを参照モデルに変換します。

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

  • モデルを作成する。

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

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

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

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

[tf,h] = Simulink.SubSystem.convertToModelReference(subsys,model,Name,Value) は、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。

すべて折りたたむ

f14 モデルを開きます。

open_system('f14');

f14 モデルで、Controller Subsystem の出力信号を選択して [信号のログ] をクリックします。

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

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);
### Successfully converted Subsystem block to Model block.

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

open_system('f14');
set_param(gcs,'SaveOutput','on','SaveFormat','Dataset');
set_param(gcs,'SignalResolutionControl','UseLocalSettings');
Simulink.SubSystem.convertToModelReference(...
{'f14/Controller','f14/Aircraft Dynamics Model'},...
{'controller_ref_model','aircraft_dynamics_ref_model'},...
'ReplaceSubsystem',true,...
'AutoFix',true,...
'CheckSimulationResults',true)

入力引数

すべて折りたたむ

サブシステム名またはハンドル。数値配列、文字ベクトル、文字ベクトルの cell 配列、または string 配列として指定します。

変換できるサブシステムの詳細については、条件付き実行のための参照モデルの変更を参照してください。

データ型: double | char | string

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

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

データ型: char | string

名前と値のペアの引数

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

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

自動修正が可能なすべての変換の問題を修正するオプション。'AutoFix' および true または false で構成されるコンマ区切りのペアとして指定します。

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

メモ

Forcetrue に設定すると、関数は自動的に変換の問題を修正しません。

データ型: logical

エラーが発生しても変換を完了するオプション。'Force' および true または false で構成されるコンマ区切りのペアとして指定します。

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

データ型: logical

親モデルから新しい変換されたモデルにコード マッピングをコピーするオプション。'CopyCodeMappings' および true または false で構成されるコンマ区切りのペアとして指定します。

true の場合、関数は親モデルから新しい変換された参照モデルに既存のコード マッピング構成をコピーします。

false の場合、関数は親モデルから新しい変換された参照モデルに既存のコード マッピング構成をコピーしません。

データ型: logical

変換前後のシミュレーション結果をチェックするオプション。'CheckSimulationResults' および true または false で構成されるコンマ区切りのペアとして指定します。

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

  • モデルで目的のサブシステム出力信号の信号ログを有効にする。

  • CheckSimulationResultstrue に設定する。

  • AbsoluteTolerance を設定する。

  • RelativeTolerance を設定する。

  • SimulationModes を元のモデルで使用されるシミュレーション モードに設定する。

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

データ型: logical

比較のための信号の絶対許容誤差。'AbsoluteTolerance' および数値スカラーで構成されるコンマ区切りのペアとして指定します。

CheckSimulationResultstrue に設定した場合にのみこのオプションを使用します。

データ型: double

比較のための信号の相対許容誤差。'RelativeTolerance' および数値スカラーで構成されるコンマ区切りのペアとして指定します。

CheckSimulationResultstrue に設定した場合にのみこのオプションを使用します。

データ型: double

変換データを保存するファイルの名前。'DataFileName' および文字ベクトルで構成されるコンマ区切りのペアとして指定します。絶対パスまたは相対パスを指定できます。

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

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

データ型: char

Subsystem ブロックを Model ブロックと置き換えるオプション。'ReplaceSubsystem' および true または false で構成されるコンマ区切りのペアとして指定します。

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

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

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

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

データ型: logical

モデル レイアウトを保持するためのラッパー サブシステムを挿入するオプション。'CreateWrapperSubsystem' および true または false で構成されるコンマ区切りのペアとして指定します。

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

この変換では、端子の追加によって Model ブロックのインターフェイスが変更された場合、ラッパー サブシステムが自動的に作成されます。

データ型: logical

Model ブロック用のシミュレーション モード。'SimulationModes' および 'Normal' または 'Accelerator' で構成されるコンマ区切りのペアとして指定します。このシミュレーション モード設定は変換によって作成されたモデルを参照する Model ブロックに適用されます。

データ型: char

生成するモデル参照ターゲット。'BuildTarget' および 'Sim' または 'Coder' で構成されるコンマ区切りのペアとして指定します。

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

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

データ型: char

出力引数

すべて折りたたむ

True または false の結果。データ型 logical1 または 0 として返されます。

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

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

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

データ型: double

ヒント

  • 親サブシステムとそのサブシステムの子を同時に変換することはできません。

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

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

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

    • 入力引数で、'Autofix''ReplaceSubsystem''CheckSimulationResults'true に設定する。

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

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

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

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

  • マスク サブシステムの動作を維持するには、次の追加のタスクを実行します。

    • マスク コールバック、アイコン、端子およびドキュメンテーションに対して、参照モデルに変換する前にマスク サブシステムのバックアップ コピーを作成します。変換後に、バックアップしたマスク サブシステムのマスク エディターから内容を新しい Model ブロックのマスク エディターにコピーします。

    • マスク パラメーターをモデル引数で置き換えます (再利用可能な参照モデルのインスタンスのパラメーター化を参照)。

    メモ

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

互換性についての考慮事項

すべて展開する

R2019a 以降は非推奨

R2006a で導入