MATLAB的Simulink的可变子系统(选择子系统)

可变子系统内封装了多个child子系统,其输入/输出端口不需要连线,每个child子系统都有一个对应的变量或表达式,某个child子系统的变量或表达式值为真时此子系统就被激活。Simulink 的采样时刻到来时最多只有一个child子系统被激活,可以通过变量方便地控制其中某个child子系统的执行。可变子系统Variant Subsystem的模图标如图所示。


从Simulink 库的Ports&subsystem中将可变子系统拖拽到Simulink模型文件中,右击可变子系统,在弹出的菜单中单击Block parameters(subsystem),弹出对话框,如图所示。

左侧按列排列4个按钮,第一个按钮用来在可变子系统内建立child子系统,第二个按钮用来编辑激活child子系统的条件,第三个按钮用来打开选中的child子系统,第四个按钮用来更新信息列表。按钮列右侧是一个列表框,第二列Variant control表示Condition的 simulink. variant对象,其内部包含一个判断条件Conditon,即是第三列参数,由用户指定一个逻辑表达式,如sel = = 0,当条件满足时,此条件所对应的child子系统会被激活。在VariantControl编辑结束时, simulink.variant变量会自动创建到工作空间,如图所示。

Matlab 复制代码
>> seq =5

seq =

     5

通过第一个按钮创建三个child子系统如图所示,仅当前被选择为激活状态的子系统可实线显示,其他子系统则以 comment on状态显示。


再建立一个具有3个child子系统的可变子系统模块,其参数选择对话框如图所示。

3个child子系统功能依次是实现。当在MATLAB工作空间输入variant=3回车后,条件 variant==3成立使得child子系统中gain2子系统(对输入乘以2的子系统)处于激活状态。单击仿真按钮显示处于激活态子系统的输出。如图所示。

Matlab 复制代码
>> variant=3

variant =

     3

参考内容

1\] 孙忠潇.Simulink仿真及代码生成技术入门到精通\[M\].北京:北京航空航天大学出版社,2015. 本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

相关推荐
zmzb01036 小时前
C++课后习题训练记录Day98
开发语言·c++
猫头虎7 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
YUJIANYUE8 小时前
PHP纹路验证码
开发语言·php
仟濹8 小时前
【Java基础】多态 | 打卡day2
java·开发语言
孞㐑¥8 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
Re.不晚8 小时前
JAVA进阶之路——无奖问答挑战2
java·开发语言
八零后琐话8 小时前
干货:程序员必备性能分析工具——Arthas火焰图
开发语言·python
Not Dr.Wang4228 小时前
FIR数字滤波器设计的两种实现
matlab
3GPP仿真实验室8 小时前
【MATLAB源码】CORDIC-QR :基于Cordic硬件级矩阵QR分解
开发语言·matlab·矩阵
知南x8 小时前
【Ascend C系列课程(高级)】(1) 算子调试+调优
c语言·开发语言