|
|
Wertetabelle integrieren und zu gegebenen Zeiten auswerten |
|
Vivi |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.02.2009, 18:23
Titel: Wertetabelle integrieren und zu gegebenen Zeiten auswerten
|
 |
|
 |
|
Hallo!
Ich versuche gerade folgendes Problem zu lösen:
gegeben: Wertetabelle mit Beschleunigung pro Zeit
Um ein gegebenes Differentialgleichungssystem zu lösen (mit ode45) brauche ich die zur Wertetabelle zugehörige Geschwindigkeit und den Weg, d.h. ich muss die Wertetabelle zweimal integrieren. Das habe ich sowohl mit interp1 und dann ode45, als auch mit cumtrapz erfolgreich gemacht. Allerdings bekomme ich 'nur' eine Wertetabelle für die Geschwindigkeit und den Weg zu bestimmten Zeitpunkten raus.
Um das ursprüngliche DGLsystem mit ode45 lösen zu können, brauche ich aber die Funktionsauswertungen von Geschwindigkeit und Weg zu bestimmten Zeiten (nämlichen genau denen, die durch die Schrittweitensteuerung von ode45 vorgegeben sind).
Das habe ich bisher auf zwei nicht zufriedenstellenden Wegen gelöst:
*) Interpolation der mittels cumtrapz (zweimal angewendet) erhaltenen Werte mit interp1 von einem kleinen Intervall, in dem der aktuell gewünschte Zeitpunkt enthalten ist, und Auswertung zu diesem Zeitpunkt
-> geht schnell, liefert aber ein fällig falsches Endergebnis (Wo könnten da mögliche Fehlerquellen liegen?)
*) Funktion geschrieben, die meine Beschleunigungswerte mit interp1 interpoliert und mit ode45 zweimal integriert. Im tatsächlich zu lösendem DGLsystem dann an den entsprechenden Stellen diese Funktion mit einem kleinstmöglichen Integrationsintervall aufgerufen und Auswertung zum gewünschten Zeitpunkt t (in ode45: tspan = [tstart,t,tend])
-> Ergebnis schein korrekt zu sein, allerdings dauert das Programm sehr sehr lange (2 Stunden für 5 Sekunden Integrationszeit). Liegt das daran, dass man eine Integration in der Integration lösen muss? Das Integrationsintervall der eingebetteten Integration habe ich schon kleinstmöglich gewählt.
Frage: Gibt es einen Befehl, der mir zu einem beliebigen Zeitpunkt einen Funktionswert übergibt, wenn ich die Funktion nur durch eine Wertetabelle gegeben habe?
Interpolation mit interp1 scheint ja nicht zu funktionieren:(
Und immer 'aktuell' integrieren ist zu teuer:((
Ich hoffe, jemand kann mir weiterhelfen.
Grüße,
Vivi
|
|
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.02.2009, 18:45
Titel:
|
 |
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.02.2009, 18:55
Titel:
|
 |
Vielen Dank für die schnelle Antwort:)
Ich habe meine Wertetabelle schon zweimal mit cumtrapz integriert, sodass ich jetzt eine Wertetabelle für den Weg und die Geschwindigkeit pro Zeit habe.
Mein Problem: Wie kann ich möglichst 'billig' Funktionswerte zu vorgegebenen Zeitpunkten, die nicht unbedingt in der Wertetabelle erfasst sein müssen, für meine Weg- bzw. Geschwindigkeitsfuntkion bekommen?
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.02.2009, 18:57
Titel:
|
 |
Mein Gedanke war, das schon bei der Integration mit cumtrapz was schief läuft.
Guck dir doch den Effekt der Anfangsbedingung im Beispiel oben mal an. Vielleicht ist es bei dir ähnlich.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.02.2009, 19:37
Titel:
|
 |
Die Anfangsbedingungen sind alle 0.
Die Integration mit cumtrapz stimmt auch (habe ich mit Simpack überprüft).
Auch wenn ich anstelle die gesuchten Funktionswerte über Interpolation der mit cumtrapz erstellten Wertetabelle bestimme, die Funktionswerte direkt mit trapz auslesen lasse, kommt dasselbe falsche Ergebnis raus.
Gibt es vielleicht eine Möglichkeit, Funktionswerte zu vorgegebenen Zeitpunkten, die nicht unbedingt in meiner Wertetabelle erfasst sein müssen, für meine Weg- bzw. Geschwindigkeitsfunktion zu bekommen?
|
|
|
|
|
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.
|
|