上一期我们学完了while语义中的do-while子系统。接下来学习While子系统。
首先看看While子系统的描述,while子系统会运行至cond接口所输入为false或者是迭代次数到达上限为止。上期忘记说了,while子系统中的模块名为while迭代器,因此可以实现上一期中输出从1~N的功能。while与do-while的区别主要在于while 迭代器除了需要输入一个判断结果cond,还需要输入一个IC值来告诉迭代器是否需要对当前迭代数进行迭代。如果为True则使用当前迭代数迭代,如果为false,则跳过该输入的迭代数。
接下来顺着Simulink的案例学习一下,原来的模型是找出迭代到多少个数时,叠加值大于迭代数本身。
这里我们把模型修改下,仍然是进行简单的10以内的叠加。
仿真一下,结果如预期,是正确的。
总结
经过练习,不知道是不是理解有误,simulink中while语义以及相关模块更多时候是实现一个迭代功能,而非像其他语言中的一个条件执行语句块内程序的功能。可能还是实践的不够,还需要后面继续研究。