概述
While语义
While Iterator Subsystem模块是一个预先配置的 Subsystem模块,可以作为一个起点,用于创建在仿真时间步期间逻辑条件为true时对输入信号的每个元素或子数组重复执行的子系统。其作用基本等效于编程中的while或者是do-while的循环语句。接下来我们来学习一下Simulink中的While语义。
模块学习
在Simulink中加入该模块,
可以看到子系统中,用于while逻辑判断的有两个接口:
双击该模块。可以看到可以实现while与do-while两种操作
Help文档中如此描述这两种模式:
如果使用While模式,则只有IC输入为True时候才会进行while判断并重复执行子系统。
如果使用do-while模式,则只要con条件输入为True则子系统就会被重复执行。
案例学习——N以内数字的累加
Simulink提供了一个案例帮助我们理解Simulink里面,while子系统是如何作用的:
乍一看,发现看不出来这个模型是如何分别输入1到10进行累加的,好像既没有提供1、2、3、4、5、6、7、8、9、10的输入,也没有提供将10分割成单个数的模块。
但是点击do while模块,可以发现它还附带一个将输入交互数,从1开始输出的功能,因此能够实现出将外部输入的10进行1到10累加的效果。这样就能够都读通这个模型的逻辑啦。
临摹学习
接下来我们来模仿建一个:
首先创建一个逻辑判断模块,将1~N与N进行比较,若小于N则返回True,若大于等于N则返回False
再加入一个累加操作逻辑
设置do-while模块参数,调整最大交互数到大于所设N值,将每次循环后的值状态改为reset,然后将数据输出类型改为double(这个在10累加里可以不改)
仿真一下
可以看到结果是对的
最后
以上就是明理樱桃为你收集整理的Simulink学习——While语义(一)do-while子系统While语义的全部内容,希望文章能够帮你解决Simulink学习——While语义(一)do-while子系统While语义所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复