|
alduro |

Forum-Fortgeschrittener
|
 |
Beiträge: 62
|
 |
|
 |
Anmeldedatum: 30.01.08
|
 |
|
 |
Wohnort: Tucson , AZ
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.11.2009, 18:27
Titel: Frage zu ode
|
 |
|
 |
|
Hallo liebes Forum
Ich habe ein Frage zum ode(45).
Hier mein code
Und die Funktion die ausgwertert werden muss
Wenn ich mir nun die Vektoren T und zT anschaue, beinhalten diese die Zeitschritte und die dazu passenden Ergebnisse.
T sieht so aus : T= [0 , 0.1, 0.2 ........]
Und wie gesagt zT beinhaltet die Werte zu den passenden Zeit aus T.
Dies sind ja aber Werte, die genau auf die von mir eingestelleten Timesteps (0,0.1,0.2, etc) "normiert,gerundet,itteriert,was auch immer" werden.
Ich möchte die Werte, die in meiner Funktion "BC_eqsmo_new" genutzt werden, nämlich t und z.
Wenn man sich diese nämlich mal anschaut, sind es sie in keinster Weise auf die gewählten TimeSteps "normiert".
t und z beinhaltet sehr ungerade Werte mit verschiedenen Abständen. Also die originalen Integratorwerte.
Wie kann ich an diese kommen ?? Kann ich die irgendwie speichern, oder liefert der ODE die in irgendeinem vektor oder array zurück ??
Hoffe jemand weiß die Antwort.
Vielen Dank fürs Lesen und helfen !
ALDURO !
_________________
Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.11.2009, 19:06
Titel:
|
 |
Hallo,
ich verstehe den Hintergrund der Frage nicht ganz.
Entweder möchte ich die Lösung zu festen Zeiten. Dann kann ich dieses Gitter an ode45 etc. übergeben und bekomme die Lösung zu genau diesen Zeiten.
Oder ich gebe ein Intervall (TSPAN mit genau 2 Elementen) an. Dann wählt der Löser die Schritte komplett eigenständig, und dementsprechend erhält man die Lösung auf einem ungleichmäßigen Gitter.
Ich kann mir jedoch nicht erklären, warum man beides gleichzeitig wollen würde, und sehe auch keine direkte Möglichkeit dazu.
Grüße,
Harald
|
|
|
alduro |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 62
|
 |
|
 |
Anmeldedatum: 30.01.08
|
 |
|
 |
Wohnort: Tucson , AZ
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.11.2009, 12:53
Titel:
|
 |
Hallo Harald,
danke für deine Antwort. Ja, du hast recht. Wenn ich dem ode einen zeitvektor mit nur zwei Einträgen übergebe, dann kann er die Zeitschritte eigenständig wählen.
Der Grund warum ich dem Ode fest timesteps übergebe:
Mit den Ergebnissen führe ich danach einen Parameteridentifikation durch. Nach meinem Verständnis brauch ich dafür einen festen timestep, da ich diesen dann auch an den Schätzer (pem) übergeben muss.
Der Grund warum ich auch die "waren" Werte haben möchte :
In der Simulation kommt es zu einem Kontakt (also eher gesagt schaltet sich eine event function ein). Ich möchte sehen wie der Integrator sich beim entreten dieses events verhält, also wie er die stepsize ändert.
Ich hoffe das dir dies etwas weiter hilft.
Schöne Grüße
ALDURO
_________________
Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 28.11.2009, 19:22
Titel:
|
 |
Hallo,
dann würde ich den Code schlichtweg einmal mit vorgegebenem Intervallen laufen lassen, einmal nur mit den Grenzen. Wenn ich mich nicht irre, verkleinert MATLAB bei vorgegebenen Zeitschritten seine Schritte so, dass es eine "Punktlandung" macht -> kein Genauigkeitsverlust.
Grüße,
Harald
|
|
|
alduro |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 62
|
 |
|
 |
Anmeldedatum: 30.01.08
|
 |
|
 |
Wohnort: Tucson , AZ
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 09:15
Titel:
|
 |
Hallo Harald,
das ist eine gute idee ...
Mal sehen ob es dann auch noch mit der Identifikation klappt....
Ich melde mich wieder, vielleicht interessiert es ja auch noch andere ...
ALDURO !
_________________
Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
|
|
|
alduro |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 62
|
 |
|
 |
Anmeldedatum: 30.01.08
|
 |
|
 |
Wohnort: Tucson , AZ
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 10:05
Titel:
|
 |
|
 |
|
Hallo Harald, und auch an alle anderen P-)
ich bin mir noch nicht sicher, ob ich das mit dem TimeStep richtig verstanden habe:
Deswegen bitte ich nochmal um einen Erklärung.
Ich weiß das der ode45 ein Integrator mit varibaler Schrittweite ist. Das heißt für mich: Der Integrator fängt mit einer recht kleinen Schrittweite an. Wenn er dann während der Rechnung merkt, das die Ergebnisse "alle in eine Richtung gehen" bzw. "leicht vorhersagbar sind" (weiß nicht wie ich es anders sagen soll) dann vergrößert er die Schrittweite um eine bessere Performance zu bekommen.
Dies geschieht wenn ich dem Integrator ein Tspan Vektor mit ZWEI Einträgen, nämlich Anfangs- bzw. Endzeit übergebe.
Nun möchte ich vom Integrator Ergebnisse zu festen Zeitschritten haben. Somit übergebe ich dem Integrator einen Zeitvektor mit DREI Einträgen, bzw einen Vektor der die festen Zeitschritte schon beinhaltet.
Jetzt zu meiner Frage. Wenn ich dem Integrator einen Vektor mit festen Zeitschritten übergebe, wird der ode dann zu einem FixStep Integrator ?? Oder rechnet er weiterhin mit Variabler Stepsize und "rundet, itreriert, was auch immer" die Ergebnisse auf die von mir vorgegebenen Zeitschritte ??
Danke für Eure, vorallem deine Harald, Hilfe !
ALDURO !
_________________
Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 10:27
Titel:
|
 |
|
 |
|
Hallo,
Zitat: |
Ich weiß das der ode45 ein Integrator mit varibaler Schrittweite ist. Das heißt für mich: Der Integrator fängt mit einer recht kleinen Schrittweite an. Wenn er dann während der Rechnung merkt, das die Ergebnisse "alle in eine Richtung gehen" bzw. "leicht vorhersagbar sind" (weiß nicht wie ich es anders sagen soll) dann vergrößert er die Schrittweite um eine bessere Performance zu bekommen. |
Das stimmt so nicht ganz. ode45 setzt 2 Verfahren um einen 4. und eines 5. Ordnung (deswegen ode45) und schätzt so den Integrationsfehler. Man versucht, die Schrittweite so zu wählen, dass sie zum einen möglichst groß ist, der Integrationsfehler aber mit ziemlicher Sicherheit unterhalb der Toleranz liegt. Verletzt der Integrationsfehler nämlich die Toleranz, muss der Schritt nochmal mit einer kürzeren Schrittweite durchgeführt werden - der alte Schritt wurde also "verschenkt".
Insbesondere kann die Schrittweite problemabhängig während der Laufzeit größer oder kleiner werden.
Zitat: |
Jetzt zu meiner Frage. Wenn ich dem Integrator einen Vektor mit festen Zeitschritten übergebe, wird der ode dann zu einem FixStep Integrator ?? Oder rechnet er weiterhin mit Variabler Stepsize und "rundet, itreriert, was auch immer" die Ergebnisse auf die von mir vorgegebenen Zeitschritte ?? |
Nein! Das wäre absolut kontraproduktiv. Siehe dazu auch einen Ausschnitt aus der Doku von ode45, wichtige Punkte in fett hervorgehoben:
"Specifying tspan with more than two elements does not affect the internal time steps that the solver uses to traverse the interval from tspan(1) to tspan(end). All solvers in the ODE suite obtain output values by means of continuous extensions of the basic formulas. Although a solver does not necessarily step precisely to a time point specified in tspan, the solutions produced at the specified time points are of the same order of accuracy as the solutions computed at the internal time points."
Grüße,
Harald
|
|
|
alduro |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 62
|
 |
|
 |
Anmeldedatum: 30.01.08
|
 |
|
 |
Wohnort: Tucson , AZ
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2009, 10:39
Titel:
|
 |
Super vielen Dank für deinen Hilfe Harald !
Das beantwortet meine Frage zu 100 % !
Gruß ALDURO !
_________________
Hallo,
ich arbeite zur Zeit an einer verbesserten Kontaktabbildung im MKS Tool ADAMS.
Spannenden Sache, aber im Moment gibt es noch viel offene Fragen ... Aber das wird schon P-)
|
|
|
|
|
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.
|
|