WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Großes Problem bei Kombination von fsolve und ode

 

Da_Giva
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 19.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2013, 12:10     Titel: Großes Problem bei Kombination von fsolve und ode
  Antworten mit Zitat      
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 Smile
Hat jemand eine Idee, wie ich das Problem behaben kann?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.01.2013, 15:21     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Da_Giva
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 19.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2013, 17:58     Titel:
  Antworten mit Zitat      
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...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.01.2013, 20:18     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Da_Giva
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 19.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2013, 22:10     Titel:
  Antworten mit Zitat      
Also im Endeffekt liegt mir ja eine Differentialalgebraisches Gleichungssystem 1. Ordnung vor. Diese können laut Matlab mit ode15t und ode 23s gelöst werden. Die Frage ist, kann das nur mit dem Ansatz der MAssenmatrix gelöst werden?

S.244ff

http://books.google.de/books?id=-nl.....20in%20matlab&f=false
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.01.2013, 22:17     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Da_Giva
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 19.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2013, 16:59     Titel:
  Antworten mit Zitat      
Mit der Massenmatrix scheint es in der Tat zu funktionieren Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.