|
|
| bugmenot |

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 16.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2017, 12:28
Titel: ODE45 für Messdaten
|
 |
|
Hallo, ich würde gerne wissen, ob man ode45 auch für Messdaten verwenden kann. Das Problem ist, dass die ode-Funktion mit einem gemessenen Vektor berechnet wird, welcher alle 0.01 Sekunden gemessen wurde. ode45 erzeugt aber Schrittweiten, welche kleiner als 0.01 sind, ich habe als Lösung interpoliert, aber das Resultat ist statt einem Fehler, dass die Schrittweite immer kleiner wird und es unendlich lange zum berechnen braucht. Ich benötige also so etwas wie eine minimale Schritweite wegen den Messdaten. Mit rel tool und abs tool könnte ich das indirekt machen. Sollte ich lieber einen Solver mit fester Schrittweite benutzen oder gibt es noch eine elegantere Lösung?
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2017, 12:35
Titel:
|
 |
Hallo,
| Zitat: |
| ode45 erzeugt aber Schrittweiten, welche kleiner als 0.01 sind, ich habe als Lösung interpoliert, aber das Resultat ist statt einem Fehler, dass die Schrittweite immer kleiner wird und es unendlich lange zum berechnen braucht. |
Das ist ungewöhnlich, und es ist aus meiner Sicht fraglich, ob das an der Interpolation liegt. Handelt es sich vielleicht um ein steifes System? Dann könntest du mal
ode23s
oder
ode15s
versuchen.
Zudem ist die Schrittweitensteuerung nicht wirklich sinnvoll, da man ja noch einen Interpolationsfehler hat. Insofern wäre ein Solver mit fester Schrittweite besser, siehe z.B.
https://www.mathworks.com/matlabcen.....lver-in-matlab-8-0-r2012b
Grüße,
Harald
|
|
|
|
| bugmenot |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 16.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2017, 16:35
Titel:
|
 |
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2017, 18:37
Titel:
|
 |
Hallo,
| Zitat: |
| Update: ode5 ist ebenfalls zu langsam und erzeugt ebenfalls schritte die zu klein sind Sad |
Du gibst doch die Schritte über tspan an. Um die Ordnung 5 hinzubekommen, muss natürlich auch an Zwischenstellen ausgewertet werden.
Grüße,
Harald
|
|
|
|
| bugmenot |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 34
|
 |
|
 |
Anmeldedatum: 16.10.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2017, 18:47
Titel:
|
 |
Oh, daran habe ich gar nicht gedacht, vielen Dank
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2017, 19:03
Titel:
|
 |
Hallo,
hast du denn mal ode23s versucht??
Da braucht der Code bei mir statt 220 Sekunden nur 7 Sekunden.
Wenn man dann noch das wiederholte Laden der .mat-Datei in odefun vermeidet (auf die gleiche Art übergeben wie w), dann ist man bei 0,2 Sekunden. Allerdings wählt ode15s zu große Schritte und wird dadurch ungenau.
Wenn man die max. Schrittweite beschränkt
hat man innerhalb einer Sekunde (vermutlich) sinnvolle Ergebnisse.
Grüße,
Harald
|
|
|
|
|
|
|
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.
|
|