|
Da_Giva |

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 13:45
Titel: Startwert DAE System
|
 |
|
 |
|
Hallo zusammen,
wie bereits in 1-2 anderen Threads beschrieben, habe ich immer mal wieder Probleme mit DAE Systemen. Dieses mal geht es um den Startwert. ich gebe einen Startwert vor, der vorher stationär war, sprich, wenn ich mit diesem Wert rechne und die Parameter in meinem DAE System NICHT ändere, bleiben alle Werte konstant. Jetzt gebe ich den selben Startwert vor, ändere aber gleichzeitig eine Temperatur im System der DAE, also bei der Regelungstechnik einfach ein einheitssprung und will dann wissen, wie das System reagiert. ICh stelle mir jetzt vor, dass sich das System von meinem Startwert auf einen neuen stationären WErt einpendelt. Tut es aber NICHT!
Wenn ich das simuliere, starte ich direkt bei meinem Endwert und bleibe konstant und von meinem Startwerten ist nichts mehr zu sehen...
Kann sich das jemand erklären?
ich gehe folgender maßen vor:
options = odeset('Mass' , @Massenmatrix) ; %Nutzung der Massenmatrix
[t,xv] = ode15s (@RechteSeite , tspan , x0 , options)
x0 sind also meine Startwerte und über die Massenmatrix und RechteSeite ist mein DAE System definiert.
x0 bleibt bei mir immer konstant. ich änder nur sprunghaft eine Größe bei Massenmatrix und RechteSeite, auf die sich das System dann einstellen soll!
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 14:15
Titel:
|
 |
Hallo,
ich sehe 2-3 Möglichkeiten:
1) ein Implementierungsfehler. Bei der Behebung kann man dir nur helfen, wenn man den gesamten Code hat.
2 a) Die stationären Punkte sind zufällig gleich. Wenn sie das nicht sein dürften, siehe 1).
2 b) wie a), nur mit "so ähnlich, dass sie gleich erscheinen".
So oder so: wirklich helfen kann man dir hier nur, wenn der gesamte Code zur Verfügung steht.
Grüße,
Harald
|
|
|
Da_Giva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 15:19
Titel:
|
 |
es sind ja große Unterschiede zwischen den stationären Werten... Also kann es ja eigentlich nur an der Implementierung liegen :/
Darf den gesamten Code leider nicht posten... Aber danke für deine Hilfe!!! Vielleicht fällt dir ja noch was ein.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 16:54
Titel:
|
 |
Hallo,
ah, jetzt verstehe ich erst das Problem:
Zitat: |
Wenn ich das simuliere, starte ich direkt bei meinem Endwert und bleibe konstant und von meinem Startwerten ist nichts mehr zu sehen... |
Kann es sein, dass sich das System nur sehr schnell einpendelt? Zoome mal in den Anfang hinein.
Grüße,
Harald
|
|
|
Da_Giva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 17:00
Titel:
|
 |
ich habe mal von 0-0.0005 Sekunden simuliert, da bin ich schon auf dem Endwert. sehr komisch :/
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 17:09
Titel:
|
 |
Hallo,
was ist denn der allererste Wert? Der sollte ja immer dem Startwert entsprechen.
Grüße,
Harald
|
|
|
Da_Giva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 17:14
Titel:
|
 |
Genau das ist ja das Ding. Der erste wert entspricht nahezu dem Endwert. Und Endwert und Startwert unterscheiden sich um ca. 2000 kJ/kg ...
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 17:44
Titel:
|
 |
Hallo,
der erste Wert sollte genau der Anfangswert sein. Jedenfalls ist das in ein paar Testbeispielen so, die ich mal eben durchprobiert habe.
Grüße,
Harald
|
|
|
Da_Giva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 17:57
Titel:
|
 |
auch bei einem DAE und nur ne DGL mit ode gelöst?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.01.2013, 18:29
Titel:
|
 |
Hallo,
Meine Erfahrungen mit DAE halten sich da in Grenzen. Ich würde da allerdings ein ähnliches Verhalten erwarten.
Grüße,
Harald
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.01.2013, 12:01
Titel: Re: Startwert DAE System
|
 |
Hallo Da_Giva,
Ein solches Verhalten ist bei einem DAE möglich, aber das wäre dann eine fehlerhaftes Modell. Der Unterschied zwischen einem ODE und einem DAE sind die algebraischen Nebenbedingungen. So kann man z.B. einen Punkt, der auf einem Kreis rotiert entweder als ODE simulieren, indem man den Radius konstant lässt und der Drehwinkel per ODE berechnet wird. Oder als DAE hätte man einen freien Massenpunkt, der sich "zunächst" einfach geradlinig bewegt und fügt dann die Nebenbedingung hinzu, dass der Radius konstant ist.
Wenn Du nun von einem Startwert ausgehst, der nicht auf dem Kreisradius liegt, wird sich die Trajektorie auch nicht einpendeln, sondern als erster Schritt wird der Startwert auf einen zulässigen Wert projiziert.
Erfüllt Dein Startwert also die Nebenbedingungen? Falls nicht, ist die Benutzung eines DAE-Solvers fragwürdig.
Gruß, Jan
|
|
|
Da_Giva |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 19.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.01.2013, 13:05
Titel:
|
 |
Danke für die Antwort.
Genau sowas in der Art habe ich jetzt auch im Internet gefnden. Der Startwert wird, falls er nicht mehr zu dem System passt, neu von Matlab berechnet und angepasst.
Mein Startwert würde die Nebenbedingungen leider nicht mehr erfüllen. Ich hatte eigentlich vor, von einem stationören Wert in der Simulation, der mir als Startwert dient, durch Absenkung einer Temperatur auf den nächsten stationären Wert zu kommen. Da es sich dabei um DAE handelt, dachte ich direkt an diese Solver. GIbt es denn deiner Ansicht nach da eine andere Möglichkeit?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 28.01.2013, 14:47
Titel:
|
 |
|
 |
|
Hallo Da_Giva,
Ja, auf jeden Fall! Es gibt immer dann eine numerische Lösungsmethode, wenn der Prozess auch in der physikalischen Realität durchgeführt werden kann. Das schlagartige Absenken der Temperatur in der gesamten Probe ist jedoch unrealistisch und das spiegelt sich auch in der numerischen Lösung wieder.
Auf der anderen Seite ist es merkwürdig, dass das Ändern der Temperatur zu einem infeasible point führt. Ohne das Modell zu kennen, kann man kaum erraten, wieso die Temperatur nicht frei gewählt werden kann.
Bei der Erzeugung konsistenter Anfangswerte gibt es keine eindeutige Lösung. Beim einfachen Beispiel des Massepunktes auf dem Kreisring kann man z.B. den Start-Ort ausserhalb der erlaubten Trajektorie wählen und dazu noch eine "unpassende" Startgeschwindigkeit. Dann ist gar nicht eindeutig definiert, auf welchen regulären Punkt projiziert werden soll. Man könnte den Ort nehmen, der am nächsten liegt (Euklidischer Abstand) und von der Geschwindigkeit den Betrag beibehalten. Oder den Punkt wählen, bei dem die Geschwindigkeit tangential zur erlaubten Trajektorie ist, oder den Impuls oder die Energie des Punktes beibehalten, etc. Aber was man auch immer wählt, es bleiben mathematisch nicht lösbare Bedingungen übrig, wie z.B. wenn der Startpunkt der Mittelpunkt des Kreises ist - wohin soll der DAE-Solver dann projizieren?!
Vielleicht hilft es Dir also bereits, einen regulären Startpunkt so vorzugeben, dass er Deinen tatsächlichen Versuchbedingungen entspricht, und nicht den DAE-Solver nach Gutdünken einen regulären Startwert projizieren lassen.
Gruß, Jan
|
|
|
|
|
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.
|
|