Я моделировал и моделировал ряд простых сетей централизованного теплоснабжения в Димоле и довольно часто сталкивался с ошибкой во время инициализации.
Система, которую мы моделируем, состоит из
- Производитель: две границы давления - исток и сток. Давление в источнике регулируется с помощью PI, который гарантирует, что давление в источнике таково, что минимальный перепад давления на потребителе больше или равен некоторому заданному значению.
- Потребители: У них есть клапан с ПИ-регулированием и теплообменник с фиксированной температурой возврата. Клапан регулирует массовый расход, а затем и тепловой поток, чтобы соответствовать нагрузке потребителя в любой момент времени.
- Трубы: динамическая термогидравлическая модель с тепловыми потерями и пространственным распределением для учета задержки. Векторизованные порты и объемы смешивания используются для сокращения нелинейных уравнений.
На рисунке ниже представлена сильно упрощенная версия сети (здесь возникает та же ошибка) Модель потребителя выглядит следующим образом: И производитель:
Во время инициализации возникает следующая ошибка:
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 являются потребителями в сети. Я использую решатель 5-го порядка Radau IIa с tol = 1e-06. ПИ-регулятор в типе инициализации потребительских клапанов должен интегрироваться только с состоянием интегратора, а ПИ-регулятор в производителе инициализируется выходным значением. Я пробовал играть со всевозможными номинальными значениями массового расхода и перепада давления в сети, а также с начальными значениями в контроллерах PI, но всегда возвращается та же форма ERROR. Модель проходит проверку на ошибки, но всегда терпит неудачу при инициализации.
Я хотел бы знать, есть ли у кого-нибудь опыт отладки таких нелинейных систем, и если да, то несколько советов по инициализации этих моделей будут большим подспорьем в процессе отладки.