Dymola:使用非线性求解器初始化区域供热网络模拟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dymola:使用非线性求解器初始化区域供热网络模拟相关的知识,希望对你有一定的参考价值。

我一直在Dymola建模和模拟一些简单的区域供热网络,并且在初始化过程中经常遇到错误。

我们正在模拟的系统包括

  • 生产者:两个压力边界 - 源和汇。通过PI控制源处的压力,其确保源压力使得消费者的最小压差大于或等于某个设定值。
  • 消费者:他们有一个PI控制阀和一个固定返回温度的热交换器。阀控制质量流量,随后控制热流以在任何给定时间匹配消费者负载。
  • 管道:具有热损失的动态热水力模型和考虑延迟的空间分布。矢量化端口和混合体积用于减少非线性方程。

下图是该网络的一个大大简化的版本(此处发生相同的错误)enter image description here消费者模型如下所示:enter image description here和生产者:enter image description here

在初始化期间,发生以下错误:

        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 = 0
       Nonlinear system of equations number = 3
       Infinity-norm of residue = 118280
       Iteration is not making good progress.
       Accumulated number of residue       calc.: 389
       Accumulated number of symbolic Jacobian calc.: 5
       Last values of solution vector:
    L.PI.gainPID.y = 0
       Last values of residual vector:
    { -118280 }
Trying to solve non-linear system using global homotopy-method.
... loading "data" from "C:/Users/Sim1/Desktop/Keith Dymola Files/GrazReininghaus_UseCase/PythonScriptsforTranslation/Reininghaus.txt"
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 = 0
   Nonlinear system of equations number = 1
   Infinity-norm of residue = 2.22814E+018
   Iteration is not making good progress.
   Accumulated number of residue       calc.: 101
   Accumulated number of symbolic Jacobian calc.: 9
   Last values of solution vector:
M.port_a.m_flow = 0.000485868
N.valveLinear.dp = -55.8243
O.valveLinear.dp = -135.618
P.valveLinear.dp = 550.474
I.port_a.m_flow = 3.20321E-010
C.port_a.m_flow = 2.19343E-011
D.port_a.m_flow = 0.00208272
E.valveLinear.dp = 371.552
L.port_a.m_flow = -7.10982E-012
J.valveLinear.dp = 243.085
K.port_a.m_flow = 1.924E-005
   Last values of residual vector:
{ 6.60393E+013, -1.14781E+018, -1.05438E+018, -2.58754E+016, -111988,
  -1.56817E+010, 16024.9, 3.14411E+007, 3.99781E+008, 3.14412E+007,
  -15012.9 }

Error: could not solve simplified initialization for homotopy method.
Error: could not solve simplified initialization for homotopy method.
FixInitials:Init

组件A,B,C e.t.c是网络中的消费者。我正在使用Radau IIa 5阶解算器,tol = 1e-06。消费者阀门inittype中的PI控制器仅与integrtor状态集成,生产者中的PI初始化为输出值。我尝试过使用网络中质量流量和压降的各种标称值,以及PI控制器中的初始值,但始终返回相同的形式ERROR。模型通过了错误检查,但在初始化时总是失败。

我想知道是否有人有调试这种非线性系统的经验,如果有的话,关于如何初始化这些模型的一些技巧将对调试过程有很大帮​​助。

答案

好吧,对于任何有兴趣的人,我设法最终模拟我的网络。事实证明,初始化问题出现在消费者的“一阶”区块中,该区块在热交换器中获取测量的热流信号并将其传递给PI。该组件的默认初始化类型是“noinit”,但是通过将其更改为接受初始猜测值(在这种情况下工作的标称用户负载),初始化部分通过。我想在这个例子中出现了这个问题,因为我的消费者标称负载比前面的例子高很多,因此初始值超出了合适的范围而没有手动指定。

以上是关于Dymola:使用非线性求解器初始化区域供热网络模拟的主要内容,如果未能解决你的问题,请参考以下文章

求解模线性方程

城市供热管网无线监测系统方案

论文精选MLP神经网络在供暖室内温度预测的应用

模线性方程组

如何在 pyomo 中使用/选择/安装混合整数非线性求解器

犰狳线性系统求解器(带有openblas)