Gast
#4594885
Hallo Foraner, für mein Projekt zum Steuern der Gartenbahn mittels 1:1 nachgebautem Führerstand stehe ich nun an einem kleinen mathematischen Problem an. Das Einlesen der Daten mit USB4all über USB und die Ausgabe über RS232/TCP ist kein Problem. Aber die Verarbeitung derselben. Als relevante Daten habe ich: - Stellung Stufenschalter (-21 .. 0 .. +25, wobei - Bremsen und + Fahren entspricht - Stellung der Luftbremse als Analogwert - gesammte Zuglast (Masse des Zuges) - Steigung des momentan befahrenen Streckenabschnitts - Zeit seit letzter Abfrage (in ms) Mit der Formel zum Laden/Entladen eines Kondensators habe ich mal eine einfache Formel gefunden, um die Geschwindigkeit nach einer bestimmten Zeit bei einer bestimmten Stufenschalterstellung errechnet: Zum Fahren: V = Vmax. * (1 - k ^ -x) Zum Bremsen: V = Vmax. * (k ^ -x) Wobei Koeffizient k einfach mal eine Zahl ist, die von der Stellung des Stufenschalters (und der Zuglast) abhängt. Problem 1: Das Programm läuft in einer Schleife und ich möchte bei jedem Schleifendurchlauf die Einzelschritte berechnen. Also iterativ, wobei der errechnete Wert vom letzten wert abhängt, und NICHT vom Startwert. Das muss ich ja, weil die Stufenschalterstellung jederzeit ändern kann. Geht das überhaupt? Uebertragen auf den Kondensator würde das bedeuten, der Ladewiderstand kann jederzeit ändern, was die Kurvenform beeinflusst. Problem 2: Auch die Vmax. in der Formel kann jederzeit (in Abhängigkeit von der Stufenschalterstellung ändern! Was passiert, wenn das Resultat KLEINER ist als der letzte Wert? Der sollte dann gleich bleiben! Da sehe ich überhaupt nicht durch. Problem 3: Ich brauche noch eine Komponente, die zum Beispiel bei Talfahrt die Geschwindigkeit linear ansteigen lässt (abhängig von der Steigung), sowie bei Bergfahrt "bremst". Diese 3 Probleme sollen sich überlagern. Zu sagen ist noch, dass die Ausgabe nicht sonderlich exakt sein muss, ich habe 127 Fahrstufen für einen Geschwindigkeitsbereich von 65km/h, und ob der jetzt einen km/h schneller oder langsamer fährt, ist nicht so schlimm... Zuerst wollte ich das in einer Tabelle lösen, aber als sich dann abzeichnete, dass diese mehrere Dimensionen hätte, verwarf ich die Idee wieder... Einzig die Fahrstufen dürften vernünftigereise durch eine Tabelle gejagt werden, wo ich individuell das "Fahrgefühl" einstellen kann (bzw. Vmax. und k). Im Anhang die Oberfläche des schon realisierten Programms zur Steuerung. Läuft auf einem WinXP-Rechner, programmiert mit XProfan11. Danke und Gruss Chregu
