- Beiträge
- 3.485
Hallo @Schaltnix,
tolle Arbeit!
Trotzdem waren noch etliche Stunden Arbeit nötig, bis es dann so halbwegs funktionierte, weil eben ein paar Annahmen grundsätzlich anders waren; z.B. hat man bei einer Aufzeichnung die Entfernung und Geschwindigkeit gegeben, und kann diese für die Leistungsberechnung verwenden. Hier hat man das nicht, sondern muss in Zeitschritten arbeiten.
Und mir gefällt das Konzept mehrerer Graphen. Vielleicht habe ich es etwas übertrieben, alles in ein Diagramm einzuzeichnen; da muss man dann manchmal Kurven ausblenden, damit man nicht die Übersicht verliert.
Was mir aufgefallen ist: die Zeit-Auflösung von 1/100 s. Ich verwende einfach eine Schrittweite von 1 s; scheint auch sinnvolle Ergebnisse zu liefern.
Generell habe ich mir über numerische Methoden etc. nicht viele Gedanken gemacht, sondern einfach mal gehofft, dass eine naive Implementierung gut genug ist. Und in die Berechnung selbst habe ich etwas Vertrauen, da ich sie, wie gesagt, aus dem anderen Code komplett übernommen habe, und dort hatte schon @labella-baron intensiv getestet (vielen Dank noch einmal!) und einige kleine Bugs gefunden, die ich beseitigen konnte.
Je komplizierter die Eingaben sind, desto schwieriger ist es zu beurteilen, ob das Ergebnis sinnvoll ist. Alleine schon darum ist es gut, mehrere unabhängige Implementationen zu haben, die man gegenseitig auf Plausibilität checken kann.
tolle Arbeit!
Jetzt übertreib mal nicht. Das ist auch nur hingebastelt; da ich zuvor schon das Programm zur Powermeter-Analyse hatte, wo ich die ganzen Formeln und die Interaktivität schon eingebaut hatte, war der weitere Schritt nicht mehr so schwer.ich habe gerade/ heute gesehen, dass @Christoph Moder schon ein Programm geschrieben hat, was das leistet, was ich wollte und das auch in schön und superprofessionell.
Trotzdem waren noch etliche Stunden Arbeit nötig, bis es dann so halbwegs funktionierte, weil eben ein paar Annahmen grundsätzlich anders waren; z.B. hat man bei einer Aufzeichnung die Entfernung und Geschwindigkeit gegeben, und kann diese für die Leistungsberechnung verwenden. Hier hat man das nicht, sondern muss in Zeitschritten arbeiten.
Sehr interessant! Ich wusste gar nicht, dass mit Geogebra so etwas möglich ist.Damit ihr überhaupt wisst, was mein kleines Basistool in der Version 001 macht, habe ich dazu ein kleines Video bei youtube gemacht, wo ich die Bedienung und die Eigenarten des Programms vorstelle. Der Link zum Video ist :
Und mir gefällt das Konzept mehrerer Graphen. Vielleicht habe ich es etwas übertrieben, alles in ein Diagramm einzuzeichnen; da muss man dann manchmal Kurven ausblenden, damit man nicht die Übersicht verliert.
Was mir aufgefallen ist: die Zeit-Auflösung von 1/100 s. Ich verwende einfach eine Schrittweite von 1 s; scheint auch sinnvolle Ergebnisse zu liefern.
Generell habe ich mir über numerische Methoden etc. nicht viele Gedanken gemacht, sondern einfach mal gehofft, dass eine naive Implementierung gut genug ist. Und in die Berechnung selbst habe ich etwas Vertrauen, da ich sie, wie gesagt, aus dem anderen Code komplett übernommen habe, und dort hatte schon @labella-baron intensiv getestet (vielen Dank noch einmal!) und einige kleine Bugs gefunden, die ich beseitigen konnte.
Vor dem Problem stand ich auch. Ich habe das dann folgendermaßen gelöst:Zweite kleine Ergänzung : Mit dem Parameter "tEnde" bestimmt ihr wie lang die Simulation laufen soll : Auch hier könnt ihr natürlich auch höhere Werte als 300s eingeben... Ich habe es einfach nur erstmal begrenzt, um unkontrollierte Abstürze des Programms zu vermeiden..
- Die Entfernung muss von Anfang an feststehen, weil sonst das Diagramm nicht gezeichnet werden kann.
- D.h. die Simulation endet, wenn die Entfernung zurückgelegt ist.
- Darum darf die Durchschnittsleistung und damit Durchschnittsgeschwindigkeit nicht 0 sein, weil sonst das Ziel nie erreicht wird.
- Die Maximalzeit ergibt sich bei mir dann aus einer Mindest-Durchschnittsgeschwindigkeit von 1 km/h.
- In jedem Iterationsschritt wird die Eingabeleistung mit der Ausgabeleistung verglichen und die Geschwindigkeit entsprechend angepasst, und dann so lange iteriert, bis die Differenz nicht mehr kleiner wird.
- Nach meiner Erfahrung darf die Anpassung höchstens ca. 0.1 km/h sein, weil sonst Artefakte auftreten (die Leistungssprünge sind zu groß). (Vielleicht zeigt sich, dass das auch noch zu hoch ist.)
- Ich passe die Geschwindigkeit abhängig von der Leistungsbilanz an; d.h. Geschwindigkeitsschritt ist Leistungsdifferenz / 1000. D.h. bei 50 W Differenz wären das dann 0.05 km/h, bei 200 W wäre die Anpassung auf 0.1 km/h begrenzt.
Das klingt super!In der nächsten Version werde ich zwei Velomobile gewissermaßen virtuell gegeneinander fahren lassen. Die dritte Version ist dann mit beliebig vorgegebenen Steigungsprofil und in der vierten Version würde ich einige realistische Schwankungen mit einbauen wie z.B. schwankende Windrichtung/ stärke, kurzfristige Änderung des Rollwiderstandes auf der Strecke.
Je komplizierter die Eingaben sind, desto schwieriger ist es zu beurteilen, ob das Ergebnis sinnvoll ist. Alleine schon darum ist es gut, mehrere unabhängige Implementationen zu haben, die man gegenseitig auf Plausibilität checken kann.