Simulink —— Switch判断及If模块的使用

1. Switch

在这里插入图片描述

参考文献:

对于Switch Case与If使用类似,具体可参考这篇博文:Simulink学习——switch-case语义的实现(switch-case子系统)

2. IfIf Action Subsystem

在这里插入图片描述
在这里插入图片描述

  • Number of inputs:输入端口的数目
  • If expression:If判断条件
  • Elseif expressions:else的判断条件,多个else用逗号分隔
  • Show else condition:显示Else分支的输出信号

使用注意: 即使动作没被触发,状态也会被默认初始化为0,切记切记!!!

案例:
在这里插入图片描述

在这里插入图片描述

### Simulink 中 `while`、`if` 和 `case` 结构的模块库及其使用 #### 条件执行子系统中的 `If` 模块 在 MATLAB 的 Simulink 环境中,条件执行子系统的构建依赖于特定类型的控制流结构。对于分支逻辑,“If模块允许创建基于布尔表达式的不同路径[^1]。 ```matlab % 创建一个新的Simulink模型并打开它 new_system('myIfExample'); open_system('myIfExample'); % 添加 If 模块到当前窗口 add_block('simulink/Signal Routing/If', 'myIfExample/If Module'); % 设置输入信号源以及输出显示组件 add_block('simulink/Sources/Step','myIfExample/Input Signal'); % 输入步进信号作为测试数据 add_block('simulink/Sinks/Scope','myIfExample/Output Display'); % 输出至示波器查看结果 ``` #### 循环迭代机制下的 `While Iterator` 子系统 为了实现循环功能,Simulink 提供了专门设计用于重复执行某些部分直到满足指定终止条件为止的功能——即 While Iterator Subsystem。此子系统内部可放置任意数量的标准模块来定义每次迭代要完成的任务[^2]。 ```matlab % 新建一个包含 While Iterator 的子系统实例 new_system('myWhileLoopSystem'); open_system('myWhileLoopSystem'); % 插入 While Iterator 并连接必要的触发和计数接口 add_block('simulink/Commonly Used Blocks/TriggeredSubsystem',... 'myWhileLoopSystem/While Loop Body'); set_param(gcb,'SimulationMode','classic') % 切换模式适应旧版兼容性需求 add_block('simulink/Signal Attributes/Iterator', ... 'myWhileLoopSystem/While Loop Body/Internal Counter'); ``` #### 多路选择架构里的 Case Switching 构造 针对多选项场景的选择处理,可以通过组合多个开关(Switch)或 Lookup Table 查找表等手段间接达成目的;不过更推荐的做法是利用 Stateflow 工具箱内的 Chart 对象直接绘制状态转移图来进行复杂业务流程的设计[^3]。 ```xml <!-- 假设已经安装好StateFlow工具包 --> <stateChart name="MultiCaseHandler"> <!-- 定义初始节点和其他可能的状态 --> <initial transitionTarget="Start"/> <state id="Start" onEntry="evaluateCondition()"> <transition cond="conditionA==true" target="Branch_A"/> <transition cond="conditionB==true" target="Branch_B"/> <transition cond="otherwise" target="DefaultAction"/> <!-- 各个分支的具体行为描述省略 --> </state> </stateChart> ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值