主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

将子系统转换为引用模型

此示例显示如何使用模型引用转换顾问或 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 模块代表实现计数器算法的原子子系统。

Block diagram of Bus Counter subsystem

子系统接口使用 In Bus Element 和 Out Bus Element 模块将虚拟总线传入和传出子系统。虚拟总线继承了它们的数据类型。

要打开模型参考转换顾问,请选择 Subsystem 模块。然后,在 Subsystem 模块选项卡上,选择 Convert > Referenced Model

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.

Model 模块替换了 Subsystem 模块。Model 模块引用名为 sldemo_bus_counter 的新模型。

Updated block diagram of sldemo_mdlref_conversion model

如果可能的话,新模型使用与原始子系统相同的模块图。

Block diagram of new model

默认情况下,转换不会创建 Simulink.Bus 对象。为了更强地定义新模型的接口,创建总线对象并将其用作总线的数据类型。要创建总线对象作为转换的一部分,请使用 Simulink.SubSystem.convertToModelReference 函数并将 CreateBusObjectsForAllBuses 参量设置为 true

另请参阅

模块

工具

函数

主题