@Ooohh... mist falscher Kanal!! Sorry.. der vorherige Beitrag sollte in Axels Kanal - war ein Versehen :( ...!!

@Christoph Moder : Vielleicht könnten wir mal gucken, ob unsere Rechner bei den selben Inputwerten dieselben Outputwerte liefern? - Nur so als Check... Sag mir gerne Bescheid, wenn Du mal Dein Programm mit goAxel abgleichen möchtest... Und andersherum würde ich auch gerne gucken, ob Dein Programm dieselben Werte wie meins rauswirft... Dazu müsste ich nur alle erdenklichen Parameter wissen... (Hast Du auch crv = 0.1 gesetzt? und Luftdruck P0 usw... ) .. Vielleicht könnte man sich am WE oder kommende Woche mal kurzschliessen ?

Schöne Grüße,

Schaltnix
 
Zuletzt bearbeitet:
ich hab was für diesen Kanal:
Wenn die v-Iteration solche Probleme macht - ihr rechnet doch eh abschnittsweise, dann wäre es doch relativ leicht, einen kleinen Trick aus der Spieleprogrammierung anzuwenden und für jeden Gefälle+Gegenwind(oder was immer ihr sonst noch an äußeren Einflüssen einrechnet)-Abschnitt ein kleines numerisches Array vorzuberechnen P=f(v), meinetwegen auch im erwarteten Zielbereich ±25% und als v=f(P) zurückzuinterpolieren,
das Array muss man relativ selten berechnen, und die Interpolation, auch wenn sie quadratisch ist, geht schnell und liefert 1 Ergebnis!
Aber das geht natürlich nur für jeden gleichförmig beschleunigten Abschnitt...

vielleicht ist es auch mit etwas Optimierung "punktförmig" schneller, wenn man z.B. immer 4 Werte vorwärtsberechnet und daraus einen zurückinterpoliert, als wenn man genauigkeitsorientiert "herumiteriert"...
 
Zuletzt bearbeitet:
Geschwindigkeitskurve:
Screenshot_20210505-003438_Firefox.jpg
Was hast du bezüglich P_roll und P_accel geändert:
Screenshot_20210510-143300_Firefox.jpg
 
Nur ein kurzer Tipp / wurde vermutlich schon längst getestet / gecheckt (*) ???? :

Wenn wir wissen wollen, ob irgendein Verfahren zur Berechnung von y(t) bzw. v(t) korrekt ist, nehme man z.B. an 10 verschiedenen Stellen des zugehörigen Graphen die Steigung, ermittelt diese grafisch und schaut, ob diese mit der jeweilgen Ableitung zu diesem Zeitpunkt
übereinstimmt, also

y'(t) = v(t) ?
v'(t) = y''(t) = Kreuzotterformel (t)

und y''(t) ist ja als Formel ( = Kreuzotterformel - siehe FAQ bei kreuzotter.de/speed....) gegeben !!

So kann man sehr einfach für ausgewählte Zeiten überprüfen, ob die kalkulierten Geschwindigkeiten v(t) und Orte y(t) korrekt sind!!

Schöne Grüße,

Schaltnix

PS : Das "grafisch" kann man natürlich auch rchnerisch machen, in dem man nach einem Algorithmus die Sekante bzw. die Gerade des Graphen
per Algorithmus bildet bzw. deren Steigung... - Man wähle dann die entsprechende Schrittweite Delta t und nehme die Werte des Graphen jeweils bei +- 0.5*Delta t

(*) Ich bitte um Verzeihung... so viel schöne und gute Beiträge, so wenig Zeit zum lesen.. :(
 
Was hast du bezüglich P_roll und P_accel geändert:
Du meinst links in der Statistik? Gar nichts. Keine Ahnung, warum das anders ist. Vielleicht, weil es jetzt numerisch etwas stabiler ist; mehr Gezappel in der Geschwindigkeit bedeutet mehr Beschleunigungen.

Ich habe mir den Code an der Stelle noch einmal angeschaut; da sieht nichts verdächtig aus.
 
So, habe noch etwas gebastelt.

Erstens:
Was vielleicht auch noch ganz interessant ist: Wenn der Parameter csv auf 1 gesetzt ist, wird in die Browser-Konsole eine Tabelle mit allen Datenwerten geschrieben. Die kann man dann z.B. in die Tabellenkalkulation laden und weiterverarbeiten (hier Beispiel Firefox):
Hm, habe ich mit Firefox auf meinem Android-Tablet probiert - da tut sich offenbar mal wieder nichts :(
Jetzt gibt es mehr Auswahlmöglichkeiten beim Parameter CSV:
  • 0: es wird nichts ausgegeben
  • 1: Ausgabe als CSV in der Browser-Konsole
  • 2: Ausgabe als Tabelle in der Browser-Konsole
  • 3: Ausgabe als HTML-Tabelle in einem neuen Fenster
  • 4: Ausgabe als CSV in einem neuen Fenster
Damit könnte es auch auf dem Tablet funktionieren.
Es geht ja um das Trägheitsmoment J: Nimm als grobes Modell das Trägheitsmoment eines Kreisringes, also eines Volltorus:
Habe jetzt auch die Rotationsenergie eingebaut. Es gibt einen neuen Parameter mwheels, der die rotierende Masse bezeichnet. Habe ich mal als 3 kg angenommen. mbike bezeichnet weiterhin die Gesamtmasse des Fahrrads; die Rotationsenergie der Räder kommt nur beim Beschleunigen dazu bzw. steht beim Abbremsen zur Verfügung.
 
...

Habe jetzt auch die Rotationsenergie eingebaut. Es gibt einen neuen Parameter mwheels, der die rotierende Masse bezeichnet. Habe ich mal als 3 kg angenommen. mbike bezeichnet weiterhin die Gesamtmasse des Fahrrads; die Rotationsenergie der Räder kommt nur beim Beschleunigen dazu bzw. steht beim Abbremsen zur Verfügung.
Prima Christoph !! (y)Noch ein weiterer Verbesserungsvorschlag dazu ( für die Fetischisten ) :) -

habe als Grundlage für mein Programm die Zusammenhänge/ die Formeln auf Seite 12/13 des folgenden pdf's genommen :


Im Grunde genommen könntest Du/könnten wir die dortige Formel direkt übernehmen..

Dort könnte man auch die Gänge i und das Kettenblatt mit einbeziehen... , das heißt der Nutzer Deines Programms wählt noch KB-Zahnanzahl und Masse aus und gegebenfalls welche Kassette /welches der bevorzugte Gang/ das bevorzugte Ubersetzungsverhätnis ist .. wenn schon denn schon!! :)
Das Trägheitsmoment können wir wohl getrost als das eines Torus anehmen, das Kettenblatt gegebenenfalls als das einer
Scheibe... ?!

Tipp : bei den relevanten rotierenden Massen immer die Außenmassen zählen also, Felge + Reifen / Schlauch... - ich habe keine Ahnung, was sowas - Felge, Reifen,.. - wiegt.. ?? Insbesondere die Felgen.... 3Kg ?!
Dass KB ist ja bei den Velos besonders ausgeprägt, ebenso ist das rotierende Gewicht der Kette nicht komplett vernachlässigbar... Da wären dann aber auch wirklich die relevanten rotierenden Massen.
ein bisschen kommt da vielleicht noch was zusammen?!. habe aber auch da keine Ahnung, was KB/Kette so an Masse haben, auch etwa 1Kg?
 
Zuletzt bearbeitet:
Kann ich die genauen Statistikwerte aus der Tabelle heraus erzeugen?
Ja, müsste gehen. Da werden schließlich nur die einzelnen Datenwerte aufsummiert (siehe hier im Code; geht, da konstanter Zeitschritt von 1 s) und danach die Prozente berechnet.
Dort könnte man auch die Gänge i und das Kettenblatt mit einbeziehen... , das heißt der Nutzer Deines Programms wählt noch KB-Zahnanzahl und Masse aus und gegebenfalls welche Kassette /welches der bevorzugte Gang/ das bevorzugte Ubersetzungsverhätnis ist .. wenn schon denn schon!! :)
Erhöht das denn die Genauigkeit? Oder fügt das unnötige Komplexität hinzu?

Das Kettenblatt dreht sich ja ungefähr immer mit der gleichen Trittfrequenz, d.h. die größte Beschleunigung gibt es beim Anfahren. Und die Kassette dreht sich immer mit der Geschwindigkeit des Hinterrads, d.h. die kann man in die Rotationsenergie des Hinterrads mit einrechnen.
Tipp : bei den relevanten rotierenden Massen immer die Außenmassen zählen also, Felge + Reifen / Schlauch... - ich habe keine Ahnung, was sowas - Felge, Reifen,.. - wiegt.. ?? Insbesondere die Felgen.... 3Kg ?!
Bei den Vorderrädern weiß ich, dass sie etwas über 1 kg liegen. Mein Hinterrad habe ich nicht gewogen, aber laut Angaben von Ginkgo scheint es nicht nennenswert schwerer zu sein, weil z.B. die schwere Trommelbremsnabe wegfällt.

Bei den Rädern ist es eben einfach; die drehen sich außen immer mit Fahrgeschwindigkeit. Wenn deren Masse komplett an den äußeren Rändern wäre, dann entspricht die Rotationsenergie genau der linearen Bewegungsenergie, und sie beschleunigen gemeinsam mit dem ganzen Fahrzeug und ihre Rotationsenergie steht zusammen mit der Bewegungsenergie zur Verfügung, um z.B. bergauf zu rollen.

Da die Masse der Räder nicht ganz außen ist, ist das Trägheitsmoment etwas geringer. Deshalb würde ich pauschal die Masse etwas geringer ansetzen (daher die 3 kg, was weniger als das reale Gewicht ist, aber vermutlich immer noch etwas zu hoch).

Bei anderen rotierenden Komponenten ist dieser Zusammenhang nicht so einfach, und deren Rotationsenergie ist auch nicht so einfach nutzbar (z.B. bergauf). D.h. das würde ich eher pauschal den Antriebsverlusten zuschlagen.
Wenn die v-Iteration solche Probleme macht - ihr rechnet doch eh abschnittsweise, dann wäre es doch relativ leicht, einen kleinen Trick aus der Spieleprogrammierung anzuwenden und für jeden Gefälle+Gegenwind(oder was immer ihr sonst noch an äußeren Einflüssen einrechnet)-Abschnitt ein kleines numerisches Array vorzuberechnen P=f(v), meinetwegen auch im erwarteten Zielbereich ±25% und als v=f(P) zurückzuinterpolieren,
das Array muss man relativ selten berechnen, und die Interpolation, auch wenn sie quadratisch ist, geht schnell und liefert 1 Ergebnis!
Aber das geht natürlich nur für jeden gleichförmig beschleunigten Abschnitt...
Zuerst muss ich einmal verstehen, warum diese Probleme auftreten und ob das in der Praxis wirklich ein Problem ist, statt prophylaktisch dort Aufwand reinzustecken.

Und ich glaube, in der Spieleprogrammierung hat man das früher gemacht, als Rechenleistung knapp war – heute dürfte es schneller sein, Dinge einfach zu berechnen; gerade auch, weil die Formeln der Fahrtwiderstände ja recht simpel sind, da ist eine Interpolation kaum einfacher.

Was vielleicht helfen würde: in den Iterationen mitzunotieren, wie sich die Leistung mit der Geschwindigkeit ändert (z.B. bei Steigung deutlich stärker). Es geht ja darum, bei großem Leistungsdefizit die Leistung stark anzupassen, aber eben nicht mit festen (= vom Leistungsdefizit abhängigen) Geschwindigkeitsschritten, sondern abhängig davon, wie stark die Geschwindigkeit momentan die Leistung verändert.
 
Dass KB ist ja bei den Velos besonders ausgeprägt, ebenso ist das rotierende Gewicht der Kette nicht komplett vernachlässigbar...
Hm - mein 59Z-Alu-Kettenblatt wiegt 126g. Meine Kette 745g - aber wenn man, nachdem man losgefahren ist, immer schön gleichmäßig tritt :sneaky: kann man dies ja komplett vernachlässigen.
 
Vielleicht blick ich es besser, wenn du mir verrätst, was das Kürzel '_inst' genau bezeichnet.
Das ist das, was ich hier beschrieben hatte („inst“ soll „instantan“ heißen, also nicht wie bei sum_in und sum_out über die gesamte Fahrt bilanziert, sondern während des Tretens; ja, mir ist keine bessere Bezeichnung eingefallen):
Das ist noch ein Relikt aus dem Powermeter-Diagramm. Es ist ebenfalls eine Output-Leistung, bezieht sich aber nur auf die Leistung während des Tretens:
Mir ist auch irgendwann mal aufgefallen, dass die absoluten Werte dort recht klein sind. Könnte also sein, dass da was nicht stimmt – aber ich habe es mir noch nicht genauer angeschaut.
Ja, CSV=3 und 4 funktionieren, wenn auch letzteres grausam ausschaut.
Genau; letzteres ist nur dafür gedacht, dass man es direkt abspeichern kann, und dann eine CSV-Datei erhalten sollte.
 
Aber mein Excel erkennt die Zeilenenden dann nicht - da steht offenbar auch nur ein Tab (09) drin.
Ja, das wird wohl von den Browsern verhackstückt. Es sollten Zeilenumbrüche sein; aber wenn man einfach Text in ein Fenster schreibt, dann wird das auch ohne HTML-Tags als HTML interpretiert, und alle Tabulatoren/Zeilenumbrüche durch Leerzeichen ersetzt. Anscheinend kann man den MIME-Typ nicht setzen, sondern muss hoffen, dass der Browser keinen Unsinn macht. Auch kopieren und einfügen hat nicht funktioniert.
 
Kannst du einen Editor aus sicherer Quelle empfehlen - will mein Tablet nicht kompromitieren.
Das liegt nicht am Editor, sondern Browser.

Ich habe recherchiert und jetzt was geändert; einfach den ganzen Text in <pre>-Tags eingeschlossen. Jetzt sieht es besser aus. (D.h. um nicht HTML zu bekommen, sondern Klartext, muss man HTML verwenden, das dem Browser sagt, es nicht wie HTML darzustellen.)
 
Zurück
Oben Unten