我是靠谱客的博主 机灵火车,最近开发中收集的这篇文章主要介绍SIMULINK Debug:Derivative of state ‘1‘ in block ‘##‘ at time 0.0 is not finite.,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
运行SIMULNK程序的时候出现了这样的问题:
Derivative of state '1' in block 'single_phase_grid_connect_inverter/observer1' at time 0.0 is not finite. The simulation will be stopped. There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances)
意思是,在0.0时刻,这个模块的输入值不是一个有限值,那么说明输入的表达式的分母出现了0,也就是奇异点。比如一个表达式:1/(i(t)+v(t))把它的结果作为模块的输入值,因为它俩的初始值都是0,所以在0.0时刻,表达式出现了分母为0的情况。
我在表达式加上极限值:1/(i(t)+v(t) + eps),这样就避免了分母为0的情况。程序就正常运行了。
所以,出现这种错误,需要查看模块的输入表达式,避免出现NAN的时刻。
(有的人可能不是在0.0时刻,是在 0.84166799753954546s这样的时刻,解决方案都是一样的)
PS:缩小运行步长或者如下图所示的求解器,只对部分人有用,还是要用我上面的方法从根源解决问题。
最后
以上就是机灵火车为你收集整理的SIMULINK Debug:Derivative of state ‘1‘ in block ‘##‘ at time 0.0 is not finite.的全部内容,希望文章能够帮你解决SIMULINK Debug:Derivative of state ‘1‘ in block ‘##‘ at time 0.0 is not finite.所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复