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

DGLs mit Veränderlichen

 

MartinSch
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2011, 16:22     Titel: DGLs mit Veränderlichen
  Antworten mit Zitat      
Hallo liebe Gemeinde,

ich schreibe derzeit eine Studienarbeit in Matlab und bin noch ein Anfänger. Ich habe folgendes Problem:

Es liegt ein DGL-System vor, das etwa folgende Form hat

\frac{\partial c_A}{dt} = k_1*c_A*c_B \\ \frac{\partial c_B}{dt} = k_2*c_A*c_B \\ \frac{\partial T}{dt} = \dfrac{T1-T}{\tau} + \dfrac{1}{c_p*\rho}(\delta H_{r1}k_1 + \Delta H_{r2}k_2)

Nun ist mein Problem, dass k1 und k2 in Wirklichkeit k1(T) und k2(T) sind, und cp auch von T abhängig ist. Wie kann ich Matlab beibringen, dass k1,k2 und cp variabel sind?

Meine Überlegung bisher war, dass ich die DGL mittels ode45 löse und den Bereich "tspan" nicht in einem Mal löse, sondern in kleinen Schritten, anhand von cA, cB und T neue Werte für k1,k2 und cp berechne und die ode45 erneut aufrufe. Gibt es eine Alternative zu dieser iterativen Berechnung?

Vielen Dank!
MS

Edit: Das mit dem Mathematik-Formeleditor scheint nicht ganz zu klappen. :-/
Edit2: cp ist von T als auch von cA und cB abhängig
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.11.2011, 16:36     Titel:
  Antworten mit Zitat      
Hallo,

das erscheint mir unnötig umständlich. Die Funktion wird folgende Form haben:
Code:
function dy = f(t,y) % mit y = [c_A; c_B; c_T] und dy entsprechend


In dieser Funktion kannst du natürlich entweder weitere Funktion aufrufen, die k1, k2 und cp in Abhängigkeit von y berechnen, oder das direkt als Ausdruck von y hinschreiben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
MartinSch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2011, 16:53     Titel:
  Antworten mit Zitat      
Hallo Harald,

erst einmal vielen Dank für deine schnelle Antwort. Das DGL-System habe ich aufgestellt und in einer Funktion gespeichert.

An welcher Stelle rufe ich dann die Funktionen für k1,k2 und cp auf? In der Funktion dy_dt? (Leider kann ich das erst morgen umsetzen, da mir Matlab nur in der Uni zur Verfügung steht.)

Nun habe ich jedoch nicht nur dc=f(c,t) sondern auch noch eine Funktion dT=f(T,t), wobei diese beiden DGL-Systeme gekoppelt sind. Daher stellt sich mir die Frage, wie ich die beiden DGL-Systeme in gegenseitiger Abhängigkeit berechnen lassen kann?!

Edit: die dritte Gleichung soll dT/dt sein, nicht dcT/dt!

Viele Grüße :-)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.11.2011, 17:21     Titel:
  Antworten mit Zitat      
Hallo,

die Funktionen da aufrufen, wo du sie brauchst - also in der Funktion, die du an ode45 übergibst.

Das Koppeln von ODEs sollte auch innerhalb einer Funktion kein Problem sein.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin
Admin

Admin



Beiträge: 652
Anmeldedatum: 16.06.07
Wohnort: Bietigheim-Bissingen
Version: ---
     Beitrag Verfasst am: 07.11.2011, 17:23     Titel: Re: DGLs mit Veränderlichen
  Antworten mit Zitat      
Hallo Martin,

MartinSch hat Folgendes geschrieben:
...

\frac{\partial c_A}{dt} = k_1*c_A*c_B \\ \frac{\partial c_B}{dt} = k_2*c_A*c_B \\ \frac{\partial T}{dt} = \dfrac{T1-T}{\tau} + \dfrac{1}{c_p*\rho}(\delta H_{r1}k_1 + \Delta H_{r2}k_2)

...

Edit: Das mit dem Mathematik-Formeleditor scheint nicht ganz zu klappen. :-/


Jein, der Formeleditor kommt nur nicht mit den ganzen Zeilenumbrüchen zurecht. Ich habe nun alles in eine Zeile gemacht und es klappt einwandfrei.
Mal sehen ob ich da noch etwas besser programmieren kann dass er Zeilenumbrüche ignoriert.

Viele Grüße
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
MartinSch
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2012, 16:28     Titel:
  Antworten mit Zitat      
Hallo,

das Problem konnte mit Hilfe einer weiteren Funktion gelöst werden.

Mir kam eine neue Frage:
Ich berechne einige Vorfaktoren (wie z.B. k1 und k2) und möchte, dass diese ebenfalls betrachten. Gibt es eine Möglichkeit, die Vorfaktoren für jeden Berechnungsschritt zu speichern/übergeben?
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 - 2024 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.