【发布时间】:2016-04-11 03:50:09
【问题描述】:
我正在 Dymola(基于 modelica 的商业软件)中运行系统模型。模型是关于强制对流下多孔物质的传热传质。我提出这个问题的问题是关于模型模拟过程中产生的错误。
在给定的模拟时间(7200 秒)内,模型的当前设置成功运行。但它会在日志文件中生成以下提示(在整个运行时间内间歇性地):
ERROR: Failed to solve non-linear system using Newton solver.
To get more information: Turn on Simulation/Setup/Debug/Nonlinear solver diagnostics/Details
Solution to systems of equations not found at time = 882.457
Nonlinear system of equations number = 4
Infinity-norm of residue = 154.849
Iteration is not making good progress.
Accumulated number of residue calculations: 25279
Last values of solution vector:
drum.T_e = 306.346
drum.X_e = 0.0413446
Last values of residual vector:
{ -0.000157014, 154.849 }
我想我最重要的问题是,当我看到这个时,我一般应该对我的模型有什么了解。这是否意味着我定义方程或事件系统的方式存在特定错误?当我通过在一定范围内更改一些关键参数对模型进行稳健性研究时,这个问题变得很明显。由于此错误,模型在结束时间之前失败,参数值的随机组合。正如错误消息中所建议的那样,我确实在检查了诊断详细信息的情况下运行了模型,它提供了大型 Amat 数组,并带有以下说明:
Failed to evaluate model for ODE-Jacobian
Too many slow iterations with no progress
Line search: DX-norm scaled-residua-norm residual (unscaled)
Search direction{ -0.000634251, 6.52346E-006 }
To investigate the properties of the function, you can plot the
function in the search direction by pasting the following
commands in the Dymola command window:
Amat={<...>};
plotArray(Amat[:,1],Amat[:,2],-1);
If the graph has discontinuities, local minima above zero,
and/or knees this explains the problem.
如您所见,它为绘制 Amat 提供了方向(以查看是否存在不连续性和局部最小值)。再次,如果我确实发现了这些违规行为,那么我应该对我的模型(方程式)进行哪些更改?
我知道提供的详细信息可能不足以回答,但是在整个运行期间有大量日志重复出现相同的故障。因此,如果有人对此有所了解,还请建议我可以添加关于我的模型或模拟的相关细节,以便回答可能很容易。
【问题讨论】: