|
|
Großes Problem bei Kombination von fsolve und ode |
|
Da_Giva |

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.01.2013, 12:10
Titel: Großes Problem bei Kombination von fsolve und ode
|
 |
|
 |
|
Ich habe z.Z. ein Problem mit fsolve und ode bzw. bei der Kombination von beidem und bin auf der Suche nach Ideen.
Problem ist folgendes.
Es handelt sich um ein thermodynamisches System mit unterschiedlichen Temperaturen Drücken... Im stationären Betrieb sind die Temperaturen und Drücke Konstant. Im instationären ändert sich dies. Durch die Dynamik (DLG) möchte ich die Änderung der Temperaturen etc. abbilden.
Ich habe ein Gleichungssystem mit 42 unbekannten und ausschließlich algebraischen, welches sich mit fsolve problemlos bestimmen lässt.(stationär) In diesem Gleichungssystem möchte ich jetzt gewisse Gleichungen durch Differentialgleichungen ersetzen. (instationär) Matlab ist durch ode23 in der Lage die Differentialgleichungen ohne Einbindung in das Gleichungssystem zu berechnen, also zu lösen. Wenn ich jetzt die DGLs aber im Gleichungssystem unterbringen möchte, kommt ja in fsolve eine Zeitabhängigkeit rein.
Ich habe jetzt schon so einiges probiert. Zum Beispiel das Gleichungssystem mit den algebraischen Gleichungen so umzuschreiben, dass es mit Ode gelöst werden kann. Dies führt aber dazu, dass NUR die DGLs gelöst werden, die algebraischen Gleichungen jedoch konstant beim Startwert bleiben.
Hoffe Ihr versteht mich und könnt mir weiterhelfen
Hat jemand eine Idee, wie ich das Problem behaben kann?
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.01.2013, 15:21
Titel:
|
 |
Hallo,
anhand von Code oder eines Codegerüsts wäre das vielleicht leichter zu verstehen.
Generell würde ich das so angehen: du übergibst eine Funktion an fsolve, innerhalb der die DGLen, z.B. mit ode23 gelöst werden. Du musst dir dann natürlich überlegen, inwiefern die Lösung (bzw. der Lösungsvektor) den zuvor skalaren Wert sinnvoll ersetzen kann.
Grüße,
Harald
|
|
|
Da_Giva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.01.2013, 17:58
Titel:
|
 |
|
 |
|
ganzen Code kann/darf ich leider nicht schreiben. Versuche es aber mal beispielhaft darzustellen:
Zuerst stand das algebraische System, welches per fsolve gelöst werden konnte:
F=[Q1 - k1*A1*deltaT1;
Q1 + m_dot_Wasser1*deltah_Wasser;
Q1 - m_dot_Luft1+deltah_LuftM
und dann noch viele Gleichungen dieser Art mehr... ingesamt ca. 40 Gleichungen
Jetzt soll die gleichung Q1 + m_dot_Wasser1*deltah_Wasser durch mehrere Differentialgleichungen ersetzt werden
Jetzt habe ich alles umgeschrieben, damit es von Fsolve auf Ode passt. also das Q1 zum beispiel durch Y(1) ersetzt. und meine Temperaturdifferential, was in den obigen Gleichungen in deltah_Wasser drinne steckt mit dY(...) definiert. Matlab löst das auch alles brav. leider ändert es über die Zeit nur die Terme mit dY(...) und nicht die Y(...) wie zum Beispiel Y(1). Und das möchte ich eigentlich erreichen, dass sich aufgrund der DGLs, die sich mit der Zeit ändern, die anderen WErte auch ändern, weil sie sich ja anpassen müssen. KAnn ja nämlich nicht sein, dass die eine Temperatur aufgrund der DGL total sinkt, die zugeführte Wärme aber über die ganze Zeit gleich bleibt...
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.01.2013, 20:18
Titel:
|
 |
Hallo,
kann es dann sein, dass du eher die andere Richtung brauchst?
Dass du also eine DGL schreibst und in der rechten Seite des DGL-Systems ein Gleichungssystem löst?
Es kann auch helfen, das Problem (allgemein) mathematisch zu formulieren.
Grüße,
Harald
|
|
|
Da_Giva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.01.2013, 22:10
Titel:
|
 |
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.01.2013, 22:17
Titel:
|
 |
Hallo,
wenn es ein solches System ist, kann es wohl so gelöst werden.
Zwar auch ohne Massematrix, aber mit Massematrix dürfte effizienter sein.
Nach deiner bisherigen Beschreibung wäre ich mir nicht sicher, ob es genau so ein Problem ist.
Grüße,
Harald
|
|
|
Da_Giva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.01.2013, 16:59
Titel:
|
 |
Mit der Massenmatrix scheint es in der Tat zu funktionieren
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|