我下载了Simulink模型,该模型希望以固定步长较大的方式运行,因为我对速度比对精度更感兴趣。
ode3:工作到Fixed-step size 3
Fixed-step size 4
上的所有内容均会导致错误。
(诸如ode8之类的其他求解器会导致其他固定步长的错误。)
这是错误消息:
Derivative of state '1' in block 'example_HeatPump/HeatPump/HeatPump_basic/model cold side/Integrator' at time 16.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)
只是增加了模型无法处理较大步长的原因。对于太大的步长,在仿真过程中可能会出现无法满足一个或多个建模约束的情况,从而导致这种错误。因此,您的模型中可能存在一些未知的约束,而这些约束是您不知道的。
仅举一个例子,如果您有一个用于多实体系统的闭环连接系统,则约束条件是模型中连接实体的铰链。对于太大的步长,在仿真过程中的某个时刻,铰链(连接主体1和2的位置)在主体1中的位置与同一铰链在主体2中的位置可能不一致。对于小的(数字)错误,有一些方法可以解决。大错误会导致问题。