メインコンテンツ

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

この例では、モデル参照変換アドバイザーまたは Simulink.SubSystem.convertToModelReference 関数を使用して、サブシステムを参照モデルに変換する方法を説明します。包括的な手順については、サブシステムから参照モデルへの変換を参照してください。

sldemo_mdlref_conversion モデルを開きます。変換を成功させるには、サブシステムを含むモデルが正常にコンパイルされる必要があります。モデルをコンパイルするには、Simulink® ツールストリップの [モデル化] タブで、[モデルの更新] または [実行] をクリックします。

mdl = "sldemo_mdlref_conversion";
open_system(mdl)
set_param(mdl,SimulationCommand="Update")

Block diagram of sldemo_mdlref_conversion model

sldemo_mdlref_conversion モデルには、Bus Counter という名前の Subsystem ブロックが含まれています。この Subsystem ブロックは、カウンター アルゴリズムを実装する Atomic サブシステムを表します。

Block diagram of Bus Counter subsystem

サブシステム インターフェイスは In Bus Element ブロックと Out Bus Element ブロックを使用して、バーチャル バスをサブシステムに渡したりサブシステムから受け取ったりします。バーチャル バスはそのデータ型を継承します。

モデル参照変換アドバイザーを開くには、Subsystem ブロックを選択します。次に、[Subsystem ブロック] タブで、[変換]、[参照モデル] を選択します。

Model Reference Conversion Advisor

モデル参照変換アドバイザーで [新規モデル名]sldemo_bus_counter に設定し、[変換] をクリックします。

あるいは、モデル参照変換アドバイザーを使用せずにサブシステムを参照モデルに変換するには、MATLAB® コマンド ウィンドウで次のコマンドを入力します。

blk = "sldemo_mdlref_conversion/Bus Counter";
newmdl = "sldemo_bus_counter";
Simulink.SubSystem.convertToModelReference(blk,newmdl,...
    ReplaceSubsystem=true);
### Successfully converted Subsystem block to Model block.

Subsystem ブロックが Model ブロックに置き換えられます。この Model ブロックは sldemo_bus_counter という名前の新しいモデルを参照しています。

Updated block diagram of sldemo_mdlref_conversion model

可能な場合、新しいモデルは元のサブシステムと同じブロック線図を使用します。

Block diagram of new model

既定では、変換時に Simulink.Bus オブジェクトは作成されません。新しいモデルのインターフェイスをより強力に定義するには、バス オブジェクトを作成し、それらをバスのデータ型として使用します。変換の一環としてバス オブジェクトを作成するには、CreateBusObjectsForAllBuses 引数を true に設定して Simulink.SubSystem.convertToModelReference 関数を使用します。

参考

ブロック

ツール

関数

トピック