临摹对象
可变子系统
demo名称:sldemo_variant_subsystems
模型图:
模型功能简介
Controller是一个可变子系统(Variant Subsystem),里面包含2个子系统:Linear Controller和Nonlinear Controller
这两个子系统是排他的关系,每次仿真时只有一个是生效的,它由变量VSS_MODE来控制。每次模型加载时,会在基础工作区创建VSS_MODE变量。
当VSS_MODE的值为2时,Nonlinear Controller子系统使能,子系统外观显示为黑色,子系统里面的模块也是正常的黑色。而Linear Controller子系统被禁能,子系统外观以及它里面的子模块都显示为灰色。
在基础工作区中设置VSS_MODE为1,则上面的Linear Controller变为使能了:
同时,可变子系统上的名称也会显示为:Linear Controller
然而,VSS_MODE是什么呢?它又是如何控制子系统的呢?
是在Controller这个可变子系统的参数里面设置的:
而VSS_LINEAR_CONTROLLER和VSS_NONLINEAR_CONTROLLER这两个变体对象是在模型预加载的回调函数里设置的:
临摹步骤
1,拖放顶层模块:正弦波,可变子系统、示波器等。
其中,可变子系统模块在:Simulink Library Browser => Simulink => Ports & Subsystems => Variant Subsystem
2,在可变子系统中放置输入、输出端口。
3,在可变子系统中放置多个子系统。方法有二:
(1)先拖放一个普通子系统,再在其中添加端口、功能模块;
(2)在子系统参数对话框中,点击:Create and add a new subsystem choice:在表中放置一个新子系统变体选项
这时就会自动添加一个子系统,并且配置好相关的输入输出端口。
4,配置可变的条件。
参考资料
可变子系统模块:
https://ww2.mathworks.cn/help/simulink/slref/variantsubsystem.html
可变子系统示例:
https://ww2.mathworks.cn/help/simulink/examples/variant-subsystems.html