首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当满足一定条件时,可以停止Simulink仿真吗?

当满足一定条件时,可以停止Simulink仿真吗?
EN

Stack Overflow用户
提问于 2015-12-18 10:02:03
回答 3查看 8.4K关注 0票数 4

假设您有一个Simulink仿真,其中某个信号首先是正的,在给定的时间间隔内经过一段时间t之后,它就变成了负值。你的目标是找到过零点。

第一种方法是绘制给定间隔上的信号,保存它并计算过零。

当对不同的参数重复多次仿真时,当信号变为负值时,能够停止仿真是很有帮助的。然后,在Matlab中已经有足够的信息用于计算过零.你怎么能这么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-18 11:08:47

是的,使用具有适当逻辑输入的停止模拟块:

票数 3
EN

Stack Overflow用户

发布于 2015-12-18 10:45:36

您可以使用if / else块来控制Simulink模型中的流。在if / else块中,您可以选择条件if u > 0,如果条件为真则继续正常,并使用else-option绕过您本来要运行的其他流。例如,直接跳转到作用域。

票数 3
EN

Stack Overflow用户

发布于 2015-12-18 11:49:51

另一种方式:

  1. 您可以使用命中交叉口在Simulink中寻找时间,在时刻达到零。
  2. 另一种方法-使用任何触发器或可重新部署的系统。它也能检测到过零点。例如:这个问题是如此
  3. 当然,您也可以使用User Defined function通过您的手检测零交叉,并在同一时间对信号做任何您想做的事情。

关于做大量的模拟,然后停止:您可以使用检查上静态界自动停止模拟,在n第四次过零的时刻。例如:

我把upper bound = 10设为这个街区,在第十个十字路口停下来。有很多方法可以保存函数值在这个点或只是数组的时间,但这是另一个问题:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34352902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档