我也遇到过题主所述的这种情况,也是报错说某个积分模块在某个仿真时刻的值是not finite。
在我的仿真模块里,我设定的是固定步长,0.001。解决方法一般有以下几种,可以逐个尝试:
1、在simulation下拉菜单中congfiguration parameters减小步长
2、给积分模块赋予初值,取一个极小数(如0.0001),不影响全局
3、如果在仿真模块中含有控制器,可以在控制器的输出值后面增加一个限幅环节,这样可防止出现刚开始仿真时就出现过冲的现象。在我的仿真示例中,采用了系统自带的PID控制模块,因此可以直接在该模块中设置限幅:
双击PID Controller模块可以找到
根据实际需要设置限幅值,如±10
4、也可以考虑修改PID Controller模块中的Filter coefficient,在这里我把原来的值10000减小为1000,
接着便可以正常仿真了:
希望可以帮助到大家❤❀~
我也刚好遇到过这个问题,我的解决方法是在某些积分器中设置初始值就可以了。仿真报错的积分器却不是我修改的积分器,我暂时搞不清
在configuration parameters 中将 solver options 用fixed-step ode3 0.0001 后没有报错了
MATLAB/SIMULINK的一个错误Derivativeinputof
调了一下控制框图中某个环节的参数,报错消失了