Brauche mathematische Hilfe - programmiere Loksim Tool

  • Hallo,


    ich programmiere gerade ein Tool, mit der Streckenverlauf aus Luftbildern (Internet-Stadtplandienst) entnommen werden kann. Programmbeschreibung weiter unten.


    Dabei bin ich bei der Berechnung von Kurven an meine mathematischen Grenzen gestossen. Wer kann mir helfen?


    Bei der Bahn wird der Schienenverauf in Kurven nicht als Kreisbogen ausgeführt. Der Anfang und das Ende besteht aus einer Schneckenkurve (Klothoide). Da die Anfangs- und Endbögen unterschiedliche Werte besitzten können, ist oft eine Näherung mit nur einem Kreisbogen nicht möglich. daher will ich für diese Fälle eine Annäherung mit zwei Kreisbögen unterschiedlicher Radien, "ähnlich" einer Ellipse, realisieren.



    Und nun das Problem (s. Bild)


    [Blockierte Grafik: http://img376.imageshack.us/img376/4914/kreis11hl.gif]


    http://img376.imageshack.us/img376/4914/kreis11hl.gif


    In meinem Programm lege ich alle (Start-und End) Punkte durch Koordinaten fest. Die Umrechnug in das Loksimformat (Vektoren) erfolgt erst bei der Dateiausgabe. Grau: Kreis mit maximalem Radius (nur Info - C kann ich berechen=>g2' => R )


    Gegeben:
    die Geraden g1 und g2 mit den Punkten A und C
    g' senkrecht auf g durch Endpunkt;


    Bedingungen:
    g1 ist Tagente an k1 in A; g2 Tangente an K2 in C
    in B haben k1 und k2 eine gemeinsame Tangente


    Gesucht: eine Formel um Punkte B (oder M1 oder g3) für verschiedene Radien r1 (oder alpha) zu berechnen.
    (evtl. auch Formel für k1min)

    Vielen Dank


    Franz



    Für die Interessierten, was das Programm genau macht:


    Stadtplandiest.de hat so wunderbare Luftbilder im Masstab 1:7500 - kostenlos! nur leider besteht eine angezeigte Seite aus 9 einzelnen Luftbildern (ich nenne sie mal Kacheln). Diese werde im IE-Cache auf der Festplatte abgespeichert. Leider ist aus dem Dateinamen nicht ersichtlich, welche Kacheln zusammengehören. Und das Puzzle per Hand zu lösen dauert Stunden....


    Als Vorarbeiten müssen die Dateien umbenannt und in einem Ordner als BMP gespeichert werden (Dauer ca. 20 Minuten).


    Nun kommt das Programm ins Spiel. Die Dateien werden eingelesen und halbautomatisch aneinandergefügt. Dabei werden in einem 7*7 Kachel grossem Ausschnitt passende Kacheln gesucht und angezeigt. Dann Bereich manuell verschieben und erneut suchen lassen. Manchmal ist eine Korrektur nötig, aber bei über 90% gehts automatisch. Nun ist der ganze Streckenverauf vorhanden.


    Und wenn die Daten schon im Computer sind, dann kann daraus auch gleich die Loksim-Trasse erzeugt werde. Dazu nur Punkte auf der Trasse setzen, da die Karten masstabsgetreu sind ist keine weiteren Messungen nötig. Natürlich muss angegeben werden ob es eine Gerade oder Kurve werden soll, das kann das Programm nicht. Nachträgliche Korrekturen lassen sich auch durchführen.
    Zusätzlich können: Modulgrenzen festgelegt werden; fix-KM angegeben werden (z.B. für Bahnhöfe... bei Differenz automatischer Ausgleich); Abzweigungen angegeben werden (Weiche wird eingebaut); Kommentare hinzugefügt werden.


    Es kann das Puzzle und die eingegebne Trasse gespeichert und wieder geöffnet (und dann auch verändert) werden.
    Die Loksim-Streckendatei kann nur geschrieben werden!!! Daher können keine bestehenden Loksim-Strecken überarbeitet werden (wird evtl. mal programmiert).


    Und für das ganze gibts auch eine detaillierte Anleitung (schon fast fertig)


    zum Schluss ein paar Zeiten (incl. maueller Korrekturen):


    Strecke Basel(CH)- Stuttgart über Bruchsal (ca 300 km):
    - es sind 2650 Kacheln (Einzelbilder)
    - das Puzzle hat ca. 75 Minuten gedauert (Athlon 2,8 GHz)
    - 21 Korrekturen waren nötig (Korrektur heisst, dass bei einem Suchlauf eine oder auch mehrere Kacheln falsch waren)
    - es blieb keine Kachel übrig!!


    Strecke München Hbf-Ulm (ca. 150 km):
    - ca. 1200 Kacheln
    - Dauer 45 Minuten
    - ? Korrekturen
    - an einer Stelle fand das Programm nicht die passende Kachel, musste per hand angelegt werden! (die passende Kachel wurde zwar programmintern vorgeschlagen, hat aber nicht alle Tests bestanden. Seitdem gibts auch eine mauelle Suchfunktion...)
    - 5 Kacheln blieben übrig (mit der manuellen Suchfunktion kein Problem mehr)
    Die Stelle an der das Programm solche Schwierigkeiten hatte war dichter Wald...


    Zeiten für die Trasse sind erste Testwerte hochgerechnet, da Kurven noch nicht angezeigt werden :)
    Die Trasse angeben dauert ca 3-10 Sekunden je Trassenpunkt, Durchschnittlich 1 bis 2 Punkte je Kachel mit Trasse (= 1/3 Kachelanzahl).
    Basel-Stuttgart 45 Minuten- 5 Stunden; München Ulm 20 Minuten - 2 Stunden

  • zunächst: Der Link geht nicht
    und: Vor Veröffentlichung so eines Programms sollte man sich die Lizenzbedingungen der Seite gründlich anschauen. Es könnte sein (muß nicht), daß so eine Nutzung mit dem Urheberrecht in Konflikt gerät.


    Zur Sache: Nach dem Prinzip werden ja auch bei Zusi Strecken entworfen. Grundlage sind dabei die TOP50-Karten der Landesvermessungsämter, die von Hause aus eine Möglichkeit haben, Vektorzüge abzustecken.
    Für den Streckenbau ist das aber nur grob zu gebrauchen, also man bekommt die Strecke nicht so exakt abgesteckt, daß man sie gleich befahren könnte. Vorgehen ist also: Strecke grob abstecken, markante Punkte (Brücken, Bü usw. markieren und dann im Streckeneditor den Feinausbau vornehmen.
    Mag sein, daß es mit den Bildern präziser geht, aber ich würde mal leichte Zweifel anmelden.


    Wenn man richtige Klothoiden verwenden will, ist das ganze alles andere als trivial. Für Zusi hat Roland Ziegler den "Absteckrechner" dafür entwickelt, der die Baunormen der Deutschen Eisenbahn beherrscht. Das ganze läßt sich nur iterativ lösen (und geht schon bei kleinen Abweichungen wegen der wenigen Freiheitsgrade meistens nicht auf bzw. führt zu völlig falschen Ergebissen/Radien - man muß also sorgfältig bauen).


    Alternative wären Splines, diese gehen immer auf und sind mathematisch viel freundlicher, nur hat das mit echtem Streckenbau nichts zu tun, die Bahn kennt keine Splines und man sieht das einer Strecke auch an (s. Trainz).


    Carsten

  • Ich glaube, das Problem der Übergangsbögen wird sich von selbst lösen, da die Version 2.4 diese automatisch anlegen kann. Wenn das "Absteckrechner"-Programm in der Lage ist, aus der abgesteckten Grafik XML-Code zu erzeugen, muss dort einfach nur noch der Parameter SanfterWinkel="TRUE" hinzugefügt werden. Andreas Hofmann möge mich berichtigen, falls ich da falsch liege.

  • kommt etwas drauf an, wie der 2.4 die Klothoiden berechnet. Eine Klothoide "vorwärts" zu bauen, so wie es der Zusi-Streckeneditor kann, ist recht einfach, einen kompletten Bogen (Klothoide+Kreisbogen+Klothoide) zwischen zwei irgendwie bereits liegenden Geraden einzupassen, ist mathematisch erheblich schwieriger.
    M.W. arbeitet der Loksim ja nicht mit einem absoluten Koordinatensystem, von daher vermute ich ganz stark, daß die Loksim-Klothoiden-Funktion hier nicht hilft. Aber jetzt müßte endgültig Andreas übernehmen...(wenn Info zur gemeinen Klothoide gewünscht werden kann ich gerne helfen, habe auch Dokumente zur Berechnung hier rumfliegen).


    Ach so, der Absteckrechner versteht halt nur Zusi-Format, aber das ist nicht schwer und auch gut dokumentiert - ließe sich also wohl durchaus nutzen, Rolands Einverständis vorausgesetzt.


    Carsten

  • Hallo,


    Danke für Eure Tips!


    @ alle: das Bild müsste jetzt funktionieren :)


    @ Carsten: mit dem Urheberrecht gibt es keine Probleme, das Programm bearbeitet die Bilder nicht. Es lädt nur BMPs von der Grösse 200*200 Pixel. Gebe vorsichtshalber entsprechende Hinweise zum Urheberrecht.
    TOP50-Karten 1:50000; Luftbild 1:7500 (2m je Pixel) - das macht es so richtig spannend :) Teilweise sind auch Weichen bzw Weichenstrassen erkennbar, hängt u.a. vom Aufnahmewinkel ab.
    Splines schwingen über den nächsten Punkt hinaus und haben keinerlei Radius. schauen schön aus und sind, wie du schon bemerkst, nicht für den Bahnbau geeignet.
    Klothoidenformel -tabellen und Struktogramm für Berechnung hab ich, will aber ohne sie auskommen (s.u.)


    @ RainerH: Danke für den Tip mit Sanfter Winkel. Werde mich mit Andreas Hofmann in Verbindung setzten, und schauen wie ich diese Option bei mir berücksichtigen kann. Natürlich erzeugt mein Programm XML-Code. Mit der jetzigen Loksim-Version funktioniert es :)


    @ Gerd S: was ich rausgelesen habe, sind mit Korbbögen auch Klothoiden gemeint (gerade Krümmungslinie im Raum). Der Korb kommt m. E. durch die Überhöhung, hab keine spezielle Formel für Körbbögen gefunden. Es gibt auch noch Korbbögen mit geschwungener Krümmungslinie nach Schramm bzw. nach Bloss. Bei allen diesen Formeln ist delta uf enthalten. "delta uf ist die Änderung des Überhöhungsfehlbetrages in Millimeter" (Schneider Bautabellen, Werner Verlag, 10.Auflage, S. 12.62). Da die Überhöhung das Fahrverhalten (und das Komfortempfinden der Reisenden) erheblich beeinflusst, ist sie beim Bahnbau auch bei den Übergangsbögen zu beachten.
    wenn ich mich täusche bitte um Korrektur -> was ist die Formel für Korbbögen? y=?


    Der Link heisst http://www.fh-merseburg.de/~no…pocheII/DRG/e2d_3308.html und funktioniert. Die darin beschrieben Masse sind Absteckmasse.


    Die Thematik bei meinem Programm ist, dass:
    1. das Programm die Streckenlänge aus den Koordinaten und den dazugehörigen Funktionen berechnet. Fixpunkte (Haltestellen...) sind durch Koordinaten bestimmt, der Streckenkilomter wird berechnet. Je genauer die Streckenabschnitte berechnet werden, desto geringer (und seltener) muss eine Längenkorrektur vorgenommen werden.
    2 die Verwendung von einem Kreisbogen je Kurve in meinem Programm oft eine etwas seltsame Darstellung erzeugt (Sprung von Kreisende zu Geradenanfang). Das verwirrt sicher die Streckenbauer (ausserdem darf ich dann noch die Längendifferenz zwischen Kreisbogen und tatsächlicher Kurvenlänge schätzen/"berechnen")
    3 es gibt an vielen Strecken Kurven, die zwei (oder mehr) unterschiedlichen Radien besitzen (z.B. Stuttgart Hbf: Ausfahrt nach Norden)
    4 nachzeichnen der Kurven durch Klothoiden schon angedacht war, aber zur Längenmessung unnötig ist (Fehler < 3%, hab ich noch aus meinem Studium im Hinterkopf)
    5. ich mir noch keine Gedanken über Gegenbögen gemacht habe. Dachte immer, es sei dazwischen min 30m Gerade


    Bei Loksim wird von Kurven der Start- und Endstreckenkilometer eingegeben, die Streckenlänge ändert sich dadurch nicht. Daher ist die Darstellung mit Übergangsbogen rein optisch. (diese Aussage ist eine Vermutung.Es würde dem Loksim-Konzept wiedersprechen, falls sich die Streckenlänge durch Verwendung der Klothoide ändert!)


    Franz

  • wg. Urheberrecht: Das kann auch Probleme geben, wenn die Daten nicht bearbeitet werden und zwar auch und ausdrücklich für den, der die Tools dafür zur Verfügung stellt. Also lieber vorher erkundigen!


    Es gibt Splines mit Punkt+Neigung an jeder Stützstelle, da wäre das Überschwingen wohl verhindert.


    Das was ich oben beschrieben hatte, ist kein Korbbogen, in dem Link ist es ja auch richtig beschrieben...


    Also der Korbbögen ist mathematisch auch eine Klothoide, aber man beginnt nicht bei Krümmung=0, sondern etwas später. Also man schneidet sozusagen ein Teilstück einer vollständigen Klothoide heraus.


    Zur Skizze: da entstehen natürlich keine Übergangsbögen, also das dürfte nur ein mäßiges Ergebnis liefern, oder?
    Der Absteckrechner würde da an einem der beiden geraden Stränge ein gerades Stück ansetzen, so daß eine symmetrische Situation gegeben ist und dann dazwischen Klothoide+Kreisbogen+Klothoide bauen.


    Für einen ähnlichen Fall (Die beiden Kreisbögen gegenläufig) habe ich mal eine geschlossene Lösung hergeleitet. Die Formel füllt (mehrere?) Bildschirmseiten und läßt sich halbwegs sinnvoll nur noch mit entsprechenden Mathematikprogrammen herleiten. Also da wird man wohl eher iterativ rangehen müssen.


    Carsten

  • also zu den Begriffen:
    Übergangsbogen: geht stufenlos von einer Geraden in einen Bogenradius
    Korbbogen: Geht stufenlos von einem Bogenradius in einen anderen Bogenradius


    Anwendungen gibt es dafür natürlich massenhaft, nicht nur bei der Bahn. Aber wenn wir mal bei der Bahn bleiben, dann gibt es m.W. nur eine übliche Form, nämlich die Klothoide. Also die Klothiode ist sozusagen eine von vielen Möglichkeiten, einen Übergangs- oder Korbbogen zu konstruieren. Da sie für eine linear zunehmende Querbeschleunigung sorgt, ist sie für Trassierungen von Bahn oder Straße besonders geeignet.


    Carsten

  • Carsten hat mich gestern auf diesen Thread aufmerksam gemacht.


    Das Vorlesungsskript von Prof Bäumker habe auch ich damals als hilfreich empfunden.


    Bei der Eisenbahn dient der Übergangsbogen dem Aufbau der Überhöhungsrampe, es gibt also einen unmittelbaren Zusammenhang.


    Die Ausprägung des Übergangsbogens erfolgt üblicherweise mit einer Klothoide, es gibt aber auch noch andere Kurvenformen, mit jedoch deutlich geringerer Bedeutung. Eine Klothoide ist durch sich linear ändernden Radius gekennzeichnet. Man spricht auch von linearer Krümmungslinie.


    Die Berechnung der Klothoide kann kompliziert werden, wenn sie eingepasst werden muss, also beispielsweise die Länge vorgegeben ist. Geschlossen mit normalen Mathematikkenntnissen kaum lösbar. Üblicherweise wird eine Reihenentwicklung mit Taylor verwendet. Die Formeln dazu finden sich z.B. im Skript von Prof Bäumker.


    Bei klassichem Bahnbau zu Zeiten, als der Computer noch unbekannt war, wurden Übergangsbögen als kubische Parabel gebaut. Diese Vereinfachung ist ein Abbruch der Taylor-Reihe der Klothoide nach dem dritten Glied und für typische Übergangsbogenlängen und -Radien auch genau genug.


    Für Iterationsverfahren, so wie ich sie im Absteckrechner anwende, reicht diese Genauigkeit allerdings nicht aus.


    Der Korbbogen ist ein Sonderfall des Übergangsbogens. Der Korbbogen verbindet zwei unterschiedliche, gleichgerichtete Krümmungen. Dazu wird das Segment einer Klothoide verwendet, bei der der Anfangsradius ungleich unendlich ist - im Gegensatz dazu beginnt der "gewöhnliche" Übergangsbogen aus der Geraden bei Krümmung 0 bzw Radius unendlich.