Entschuldigt bitte schon im Voraus, dass das hier ein "Roman" wird.
Bei meinem Projekt "Modellbahnsteuerung" geht es unter anderem auch um eine automatische Bremssteuerung der Züge.
Erst mal die Ausgangslage. Ich will mal die Verhältnisse auf der Anlage schildern.
-------------------------BB---------------------------St-----Sig1--------------------------BB-----------------------St-----Sig2
BB ist ein vom Zug betätigter Kontakt für den Bremsbegin. St ein Kontakt der die Bremsung abschließt und den Zug stopt. Sig das zugehörige Signal. BB würde in Echt etwa dem Standort des Vorsignals entsprechen.
Es gibt nun 3 Situationen.
1. Der Zu kommt mit vollem Tempo und soll vor dem Signal zu stehen kommen.
2. Der Zug steht vor Sig1 (rot) , Sig 1 wird grün, Sig 2 ist aber rot. Der Zug beschleunigt, und bremst dann vor Signal 2 wieder ab.
3. Sig1 ist rot, der Zug bremst ab. Während der Zug abbremst, wird Sig 1 grün, Sig 2 ist aber weiterhin rot. Der Zug beschleunigt wieder, um beim 2. BB wieder zu bremsen (allerdings eventuell nicht aus Höchstgechwindigkeit).
Abhängig von der Geschwindigkeit würde der Lokfühere beim Vorbild bereits beim Vorsignal, oder aber wenn er langsamer ist etwas später zu bemsen beginnen. Er bremst den Zug dann bis auf 5-10 km/h ab, und rollt auf das Signal zu, um dann irgenwann die finale Bremsung eizuleiten.
Um das nachzubilden habe ich mir volgendes überlegt:
Ich habe einen Timer, der alle 100 mS die Situation neu berechnet.
Ich habe einen Referenzbremsweg mit zugehöriger Kurve. Ausgangspunkt ist dabei eine Geschwindigkeit von 120 km/h. Das entspricht Maßstabsgerecht umgerechnet 3,1 cm / Intervall( 100 mS). Die Bremsstrecke ist 400 cm. Wenn ich nun die Geschwindigkeit bei jedem Timeraufruf um 0,15% verringere habe ich nach 250 Durchgängen auf 10 km/h abgebremst, der Bermsweg von 400 cm ist dann zurückgelegt. und St würde die finale Bremsung einleiten. Bei dieser Berechnung wird auch dei Restbremsstrecke ermittelt.
Die Kurve hab ich mir mit hilfe von Excel erarbeitet.
Wenn nun ein Zug mit 50 km/h kommt wird seine Geschwindigkeitskurve (im Moment eine Gerade) irgendwann die Referenzbremskurve schneiden. Das ist dann der Punkt, wo die Bremsung beginnen muß. Auch bei der Beschleunigung (Situation 2 und 3) werden sich die Kurven irgendwann schneiden.
Meine Vorgehensweise: Die Istgeschwindigkeit ist bekannt. Da sich die Istgeschwindigkeit aber ändert, wird bei jedem Timeraufruf die Referenzreststrecke neu berechnet, gleichzeitig wird die Istreststrecke des Zuges ermittelt. Wenn nun die Istreststrecke <= Referenzstrecke ist, werden die Werte der Referenzkurve übernommen, und der Zug wird damit abgebremst.
So! Nun kommen wir zur eigentlichen Frage des Beitrags.
Ich ermittle die Werte der Referenzkurve über eine Schleifenkonstruktion.
Meine mathematischen Fähigkeiten reichen leder nicht aus, so etwas mit einer Formel zu berechnen.
Frage: Kann man das mit einer Formel machen, und wenn ja, wie würde die dann ausschauen ?
Also die Referenzreststrecke in Abhängigket der Zuggeschwindigkeit berechnen.
Habe fertig

Gruß Fritz