Hallo!
Das Problem ist jetzt nicht direkt Labview-spezifisch, aber vielleicht hat jemand diesbezüglich eine gute Idee und kann mir helfen... (da meine neue Software in LV ist, kennt vllt. jemand einen Trick mit LV oder hat ein .vi)
Folgender Sachverhalt ist gegeben:
Ich möchte eine neue Steuerung für eine Satellitenantenne programmieren. Die Antenne lässt sich in drei "Achsen" steuern: Azimuth, Elevation und Polarisation. Soweit alles kein Problem, die Werte werden einfach als String an einen Steuerrechner übergeben, der dann die Ansteuerung der jeweiligen Motoren übernimmt.
Interessant wird es jetzt: Die Antenne ist nämlich auf einem Fahrzeug montiert. Zur Verfügung steht weiterhin noch ein elektronischer Kompass, mit dem ich die "Lage" des Fahrzeugs messen kann (Heading, Pitch, Roll).
Aufgabenstellung ist: unabhängig von der Lage des Fahrzeugs den ausgewählten Satellit zu treffen. In der originalen Software kann ich die Kompassdaten eingeben und erhalte dann die notwendigen Daten für Azimuth, Elevation und Polarisation
Ich kann auch mal ein Zahlenbeispiel geben:
Das Fahrzeug (bzw. der Kompass) zeigt folgende Werte:
Heading: 150°
Pitch: 10°
Roll: 10°
Der Satellit steht (hier wird ein idealisierter Satellit angenommen, der genau über meinem Längengrad steht, d. h. exakt nach Süden), wenn man von der aktuellen geographischen Position (Frankfurt) ausgeht:
Azimuth: 180°
Elevation: 32.5763°
Polarisation: 0°
Nun möchte ich die Antenne auf dem Fahrzeug auf den o. g. Satellit drehen. Die Original-Software gibt mir nun folgende Daten zurück:
Az: 205,6997°
El: 46.0669°
Pol: -3.72°
Jetzt bin ich in meinem Kenntnisstand soweit, dass das wohl über eine Drehung mit Euler-Winkeln zusammenhängt. Leider rechne ich schon seit 3 Tagen an dieser Geschichte rum und kriege das nicht in einen Algorithmus gegossen. Ich möchte eigentlich nur die Rotationsmatrix wissen und dann quasi die neuen Winkel erhalten, die ich dann weiterverarbeiten kann. Leider komme ich auf keinen Nenner.
Kann mir evtl. jemand einen Tritt in die richtige Richtung verpassen?
Danke & Gruß