我目前正在尝试重建论文“向具有集成季节性地热能存储的太阳能区域供热网过渡的策略”中提出的模型(https://ideas.repec.org/a/eee/energy/v228y2021ics0360544221009117.html)但总是遇到问题,模拟失败,因为Warning: Failed to solve nonlinear system using Newton solver.
对于该模型,我尝试使用 MoSDH 库(https://github.com/MoSDH/MoSDH)。
我无法在这个论坛上上传我的模型,但我很高兴与有兴趣研究我的问题的每个人分享。
我将添加错误消息的最后几行,以便更好地理解我的问题。
Warning: Failed to solve nonlinear system using Newton solver.
During initialization at time: 0
Tag: simulation.nonlinear[27]
Homotopy reducing
Warning: Failed to solve nonlinear system using Newton solver.
During initialization at time: 0
Tag: simulation.nonlinear[27]
Error: Integrator failed to start model.
... Error message from dymosim
ERROR: The simulation of FormhalsModellNachbau.SolarThermalTest3 FAILED
Run Code Online (Sandbox Code Playgroud)
我已经尝试过 Dassl 和 Cvode 解决案例,它们应该是最好的工作案例。两者都遇到了同样的问题。
小智 6
这是 Modelica 建模/仿真项目中的常见问题。
这种“非线性系统”的数学正确名称是隐式代数方程系统。如果它们存在,您的模型就是所谓的DAE而不是ODE。
通常,Dymola 通过为每个代数系统嵌入牛顿求解器并将生成的整个系统暴露给 ODE 求解器来求解 DAE。
但正如您所经历的那样,牛顿迭代可能会失败。我会推荐以下方法来解决它:
第 1 点是最重要的一点。您需要理解并打破代数环。典型原因有:
我们已经发表了一篇关于该主题的博客文章。