![]() |
AW: Fahrzeitberechnung mit Beschleunigung und Bremsen
Delphi-Quellcode:
Hatte es so probiert, aber hat nicht gefruchtet.
if bIsBraking or ((fNextStationDistance > 0.09) and (fCurrentTrackMark > 0.8) and (fNextStationDistance < (fBrakeDistance+0.8)/1000)) then begin
|
AW: Fahrzeitberechnung mit Beschleunigung und Bremsen
Zitat:
Wenn du mit 2 verschiedenen Beschleunigungen bremst, ist das ganze nochmal komplizierter, aber immer noch machbar. Probleme gibts nur, wenn sich die Maximalgeschwindigkeit (die ja auch von der Strecke kommen kann) während der fahrt ändert. In diesem Fall hätte ich noch eine tolle Idee: vergiss den analytischen Ansatz und mach das numerisch :mrgreen: Also zu jedem Zeitpunkt x, v und a (Ort, Geschw. & Beschl.) berechnen und durch Grenzen dieser Variablen (z.B.: -3 < a < 5 oder 0 <= v <= v_max) das Verhalten des Zugs beeinflussen. das einzig analytische ist dann eben noch der Bremspunkt: Du errechnest aus der aktuellen Geschwindigkeit den Bremsweg und vergleichst den mit der Distanz zur nächsten Haltestelle (ggf. mal einen Sicherheitsfaktor). Wenn der Bremsweg größer ist als die Distanz, dann wird die Bremsung eingeleitet. Das "Problem" dabei ist, dass sich die Haltestellen nur schlecht modellieren lassen. Ein Ansatz wäre z.B. ein sehr kurzer Streckenabschnitt, mit sehr geringer erlaubter Geschwindigkeit. Die Länge wird genau so gewählt, dass die Zeit zum durchfahren der Strecke gleich der Haltezeit ist. Mit dem numerischen Ansatz sind dann auch dynamische Änderungen der Streckenhöchstgeschwindigkeit kein Problem ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz