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小时内删除。

相关推荐
meilindehuzi_a1 小时前
从零理解并实现 RAG:用 LangChain.js 构建语义检索问答系统
开发语言·javascript·langchain
风流 少年1 小时前
Julia
开发语言·julia
江畔柳前堤1 小时前
GO01-Go 语言与主流编程语言深度对比
开发语言·人工智能·后端·微服务·云原生·golang·go
:-)2 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
GIS阵地3 小时前
QgsRasterDataProvider 完整详解(QGIS 3.40.13 C++)
开发语言·c++·qt·开源软件·qgis
yaoxin5211234 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
阿里嘎多学长4 小时前
2026-07-14 GitHub 热点项目精选
开发语言·程序员·github·代码托管
charlie1145141915 小时前
Cinux: 为大内核铺路
开发语言·c++·操作系统·现代c++
2501_914245935 小时前
C语言设计模式详解:从理论到实践的完整指南
c语言·开发语言·设计模式
Hazenix6 小时前
Go 指南:一篇文章速通 Golang
开发语言·后端·golang