概述
simulink中实现switch case的功能,可以直接采用switch-case的形式,也可以采用if的嵌套形式。
但是需要注意的是:如果是直接生成的是switch-case的形式,因为switch语句后面接的变量必须为整形,所以simulink中会自动进行转化。
例如:
起初一看,1.9不在1,2,3三个条件之间应该执行default语句,也就是0。但是仿真的结果却是1。simulink在执行switch case的逻辑时,是先将double类型1.9转化为int32的类型,也就是1。然后再执行后续语句,所以最后的结果是1而不是0。
如果需要实现switch后的变量和case后的条件部分不为整形.那么建议使用if进行嵌套。
实例说明:
算法功能:
switch(x)
{
case 1: y=1; break;
case 2: y=2; break;
case 3: y=3; break;
default:y=0; break;
}
1>直接生成switch case形式
①.MultiportSwitch模块
模型:
代码生成:
②Switch Case和Switch Case Action Subsystem模块
模型:
代码生成:
2>生成if嵌套形式
①stateflow
模型:
为使和上述功能保持一致,将输入做了强制转化
代码生成:
②switch模块
模型:
为使和上述功能保持一致,将输入做了强制转化
代码生成:
如果有用请帮忙转发或者点击看一看,有问题也欢迎进行留言。
最后
以上就是光亮草莓为你收集整理的if中的break_Simulink中switch case功能实现的全部内容,希望文章能够帮你解决if中的break_Simulink中switch case功能实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复