Simulink中Switch模块的典型用法
使用默认的Switch模块,不要修改阈值和u2>0判定条件
u2输入boolean类型(生成C代码后,为uint8类型,false=0,true=1)
u2为true时,输出y=u1
u2为false时,输出y=u3
上述u2输入通常为Relational Operator模块或Logical Operator模块的计算结果。
在定点数据类型建模时,u1、u3根据各自计算精度要求,很可能为不同定点数据类型,此时通常在Switch模块后端搭配Data Type Conversion模块使用。
一般不建议修改Switch模块的默认参数后使用
这会造成后续维护的困难,例如u2>=0和u2>0条件之间的区别很容易遭到忽视。
如果一定要使用非默认参数的Switch模块,建议封装到库中,使用不同颜色进行区分。
非默认参数Switch模块的替代方案
可以通过前置Relational Operator模块+Constant模块实现等效u2>=阈值的逻辑判断。
将Relational Operator模块的输出(boolean)类型作为Switch模块的输入。
Simulink Switch模块典型应用场景
- 根据不同工况,选择不同PI参数,用于PID控制
- 根据不同驾驶模式,输出不同电机最大功率限值
- 如果输入超过阈值,输出输入信号类型的最大限值,否则输出信号原始值
- 如果故障信号为true,输出跛行模式下的信号值,否则输出信号原始值
- ...