MATLAB Simulink中的积分环节在运行过程中怎么清零?

程序的方式也可以,要实现的功能是积分值达到一定值后,将积分值清零,重新开始积分

很简单,你只要
在积分器设置里面做两项工作,第一,把“External reset”选成rising,积分器会打开一个端口,这个端口就是用来接收外部清零的条件的;第二把“show state port”打开,这个端口其实输出的就是积分值,但是它只能用于积分的清零,不能作为输出;
积分器会出现两个新的端口,一个输出 state port,一个输入 external reset。
举例说,如果自变量我们取t,初条件是积分值为0.清零条件是积分值达到50,这样我们就从state port里引出来一条线和50做减法,然后输出线连到积分器的输入端,这个过程意思就是设定积分到50的时候就清零,表达式为 1/2 * t^2 - 50 之所以最初把外部重设条件设为 rising 是因为一开始t=0时,表达式为-50,随着t的增长,当t=10的时候,整个表达式由负变正,相当于上升过零。
这样运行仿真 你就看到积分结果不停地到0就重置。

如果仿真时间设的很长,则可能后来就发散了,这样你可以变换一下求解器,选个不同的 比如ode15s,收敛的比较好~ 具体为啥我现在也不知道~~

希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-13

不多说,直接上图。

积分值100,清理值5。

本回答被提问者采纳
第2个回答  推荐于2017-09-06
方法1:在你想要停下的代码行后添加keyboard语句。当程序运行到这里时,就会返回到matlab命令框中。显示K》,想要继续运行,可以在K》后输入return
方法2:据我所知,在matlabr2008a后,m文件中都可以设置断点。
相似回答