Hallo ich programmiere gerade ein GPS-Navi, eine kleine Spielerei die ich im Flugzeug ausprobieren möchte. Es soll mir anzeigen, wie weit ich (Winkel) vom Sollkurs abweiche. Also positive Differenz für weiter "rechts" (größer) und negativ für weiter "links". Kurs ist 0° für Norden, 90° für Osten, 180° für Süden, 270° für Westen und dann geht es über 359° wieder über die Null. Wenn ich jetzt zwei Winkel von 0° bis 359° habe, also Sollkurs und Istkurs (Track über Grund), wie rechne ich dann die Differenz aus? Einfach abziehen geht nicht. Das kleinere vom größeren Abziehen bringts auch nicht. Differenz nehmen und wenn größer als 180° 180° abziehen bringt auch keine richtigen Ergebnisse. Irgendwie steh ich auf dem Schlauch, auch wenn es wahrscheinlich ganz einfach ist. Der Engländer würde sagen, ich kann da gerade meinen Kopf nicht drumwickeln.
Ich würd sagen, du musst prüfen, welche Weg auf dem Kompass von Soll- nach Ist-Winkel der kürzeste ist: mit oder gegen den Uhrzeigersinn. Dementsprechend ergibt sich dann das Vorzeichen.
Jan Gnublin schrieb: > Einfach abziehen geht nicht. Doch. Das ist dein erster Schritt. Dann allerdings gehts noch weiter. Denn deine Abweichung kann nich größer als +180 bzw. kleiner als -180 sein. Kriegst du ein Ergebnis das ausserhalb dieses Bereichs ist, dann musst du es aufbereiten. Dazu machst du die klar, dass es in einem Kreis bei 2 beliebigen Radien immer 2 Winkel gibt. Den einen, der zb im Uhrezeiger verläuft und den anderen, der entegegen dem Uhrezeiger verläuft. Aber egal wie die beiden Winkel auch sind, sie sind immer im Bereich 0 bis 360° und die Summe der beiden muss 360° ergeben (oder auf Deutsch: die beiden Winkel zusammengenommen bilden immer einen Vollkreis). Mit diesem Wissen ausgerüstet, kannst du jetzt Ergebnisse größßer als 180° bis kleiner als -180° entsprechend bewerten. Bsp. Dein Sollwinkel sei 359°. Du stellst aber einen Winkel von 5° fest. Wie groß ist die Abweichung (im mathematisch positiven Sinne). Wie immer rechnen wir Abweichung als Ist-Soll. 5-359. Das macht -354. Die Abweichung kann aber nicht kleiner als -180 sein. Also rechnest du den Cowinkel aus: 360-354 = 6. Ein positives Ergebnis, du bist also (von oben gesehen) zu weit 'im Uhrzeigersinn' und zwar um 6° daneben. Dein Sollwinkel sei 5°. Du misst aber 358°. Wie gross ist die Abweichung? 358-5=353. Die Abweichung kann aber nicht größer al +180 sein. Also kommt wieder der Cowinkel zum Zug (der allerdings anders berechnet wird, weil das vorläufige Ergebnis positiv war): 353-360 = -7. Die Abweichung ist -7°
1 | diff = ist - soll; |
2 | |
3 | if( diff < -180.0 ) |
4 | diff += 360.0; |
5 | |
6 | if( diff > 180.0 ) |
7 | diff -= 360.0; |
:
Bearbeitet durch User
Jan Gnublin schrieb: > 180° abziehen Immer Vielfache von 360 Grad abziehen / draufrechnen um in den gewuenschten Wertebereich zu kommen ! +/- 180 Grad gibt den Gegenkurs.
Hallo Karl Heinz, vielen Dank für diese sehr gute Erklärung, jetzt funktioniert es bei mir!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.