Ich verwende ein Systemmodell in Dymola (modelica basierte kommerzielle Software). Modell ist über Wärme- und Stoffübertragung von poröser Substanz unter erzwungener Konvektion. Mein Problem für das Stellen dieser Frage ist bezüglich der Fehler, die während der Simulation des Modells erzeugt werden.Modelica Modell Robustheitsproblem: Fehler beim Evaluieren des Modells für ODE-Jacobi
Mit den aktuellen Einstellungen des Modells läuft erfolgreich für eine gegebene Simulationszeit (7200 Sek.). Aber es erzeugt folgende Aufforderungen in Protokolldatei (mit Unterbrechungen während der gesamten Laufzeit):
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 }
Ich nehme meine vorderste Frage ist, was soll ich über mein Modell im Allgemeinen verstehen, wenn ich das sehen. Bedeutet dies einen besonderen Fehler in der Art und Weise, wie ich das System der Gleichungen oder Ereignisse definiert habe? Dieses Problem wird offensichtlich, wenn ich eine Robustheitsstudie an einem Modell durchführe, indem ich einige Schlüsselparameter über einen Bereich ändere. Das Modell schlägt dann vor der Endzeit aufgrund dieses Fehlers bei zufälligen Kombinationen von Parameterwerten fehl. Wie in Fehlermeldung vorgeschlagen, habe ich das Modell mit Diagnose Detail geprüft laufen und es gibt große Amat Array, mit folgenden Anweisungen:
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.
Wie Sie es Richtung Amat plotten gibt sehen können (um zu sehen, wenn Diskontinuitäten und lokale Minima vorhanden sind). Wenn ich diese Unregelmäßigkeiten wiederfinde, was sollte sie in Bezug auf Änderungen vorschreiben, die ich an meinem Modell (Gleichungen) vornehmen sollte?
Ich weiß, dass die bereitgestellten Informationen möglicherweise nicht ausreichen, um zu beantworten, aber es gibt riesige Protokoll mit gleichen wiederholten Fehler während der Laufzeit. Also, wenn jemand eine Idee dazu hat, bitte schlagen Sie auch vor, welche relevanten Details ich über mein Modell oder Simulation hinzufügen kann, damit die Beantwortung einfach sein kann.
Hallo, Danke, dass du dir die Zeit genommen hast zu antworten. Ich werde versuchen, .mof für mein Modell zu generieren und zu überprüfen, welche Nichtlinearitäten vorhanden sind (und ob sie einen Hinweis darauf geben, warum es zu Fehlern kommen könnte). Ich habe nach einer solchen Perspektive gesucht, als ich die Frage gestellt habe. (Ich werde es vorerst offen lassen, wenn ich für einige Tage keine Antworten mehr bekomme, werde ich diese Antwort akzeptieren). – user1768201
Hallo, ich fand Änderung im Modell, das konsequent funktioniert. Der flache Modelica-Code * .mof hat mich auf ein nichtlineares System von Gleichungen gelenkt, das Probleme hatte. (Es hat 5 Systeme, von denen System 1 ein Problem hatte). Nach dem Durcharbeiten verschiedener Änderungen habe ich festgestellt, dass eine der Gradientenvariablen bei gegebener Initialisierung negativ wird. Die Lösung bestand darin, das vorhandene Komponentenmodell von einer einfachen Flusskomponente in eine Volumenkomponente zu konvertieren. – user1768201