Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 02, 2025 08:06

Foren-Übersicht » Programmierung » Mathematik-Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Drehwinkel berechnen
BeitragVerfasst: Sa Jan 10, 2009 11:26 
Offline
DGL Member

Registriert: Fr Jan 09, 2009 14:08
Beiträge: 2
Hallo,
ich habe ein kleines Problem, dessen Lösung mir nicht so recht einfallen will:
Stellt Euch folgendes Beispiel vor: ich möchte eine Satellitenantenne auf einem Wohnmobil ausrichten. Die Eulerwinkel des Wohmobiles sind mir bekannt, also dessen Lage in drei Winkeln, das globale System in also die Erde.
Nun möchte ich die Antenne in eine festgelegte Richtung drehen. Die Dreheinrichtung ist fest mit dem Wohnmonbil verbunden. In diesem lokalen System gibt es wiederum 3 Achsen, um die gedreht werden kann. Die z-Achse senkrecht zum Wohnmobil, darauf zwei weitere, rechtwinkelig angeordnete Achsen. Eine für die Elevation und eine für die Drehung in Blickrichtung der Antenne.
Alle drei Drehwinkel der Achsen sollen berechnet werden, damit eine Blickrichtung, parallel zu einem Zielvektor entsteht. Auch die Achse in Blickreichtung der Antenne ist wichtig, wegen der Polarisation.
Eulerwinkel, Rotationsmatrix etc. alles Dinge, die ich soweit verstanden habe. Nur wie kommt man an die Drehwinkel der Verstelleinheit. Der Zielvektor bezieht sich auf das globale System. Die Verstelleinheit dreht um Achsen, die über eine Rotationsmatrix zum globalen System verdreht sind.

Anschliessend möchte ich das noch mit GL sichtbar machen.

Für Tipps wäre ich sehr dankbar!

PS: ein tolles Forum hier!

Grüße


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 10, 2009 15:25 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich versuch deine Beschreibung mal zusammen zu fassen. Falls ich richtig liege, haben wir dein Problem hier öffters zu lösen. ;)

Du hast ein die Rotation des Wohnmobils,
dann die der Antenne, welche auf dem Wohnmobil montiert ist.
Du hast eine weitere Drehbare Stufe an der Antenne, welche abhängig ist von den beiden übergeordneten.

Möchtest du jetzt die aktuelle Blickrichtung der letzten Stufe in globalen Koordinaten wissen, oder welche Winkel du für jede Stufe einstellen musst, dass die Blickrichtung einem Bestimmten Vector in globalen Koordinaten entspricht? Oder beides?

Ersteres ist ein recht häufiges Problem, was im Forum schon diverse male besprochen wurde. Du musst dazu die inverse Matrix deiner Rotationsmatrix bilden.

Falls du die zweite Frage beantwortet haben willst... hmmm... ich bin mir unsicher, ob es eine eindeutige Lösung für dieses Problem gibt. Soweit ich das sehe, können verschiedene Rotationseinstellungen eine Lösung sein.

Aber ich kann dich beruhigen: Wir haben hier Mathematiker im Forum, und die können dir bestimmt auch eine fundiertere Antwort geben. ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 10, 2009 16:51 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Iiiihhh immer diese ekeligen Eulerwinkel. Warum benutzt bitte niemand Quaternionen?

*Aber indeed... Zu allererst must du für die antenne festlegen, in welche richtung sie bezüglich des wohnmobils steht... zum beispiel zeigt sie ungedreht immer nach oben also ein vektor ala v = (0,1,0) (Eine Richtung entlang der Koordinatenachsen ist nicht ungeschickt!!). Dann hast Du wahrscheinlich die Richtung w', in die die die Antenne bezüglich Erde zeigen soll (z.B. w'=(1,1,1)). Jetzt drehst du w' in die Koordinaten des Wohnwages - nach Kameraanalogie ist das genau invers zu der Eulerdrehung des Wohnwagens (d.h. du negierst die winkel und dann multiplizierst du die zugehörigen Euler-Matrizen in genau umgekehrter Reihenfolge aneinander... Oder, weils vielleicht leichter ist und Du die Matrix evtl. sowieso schon ausgerechnet hast: Du multiplizierst normal zusammen, also mit normalen eulerwinkeln fürs wohnmobil und dann transponierst du die matrix - schau mal ins wiki unter: Techniken zur Matrixinversion (evtl. auch die neueste diskussion lesen). Diese Matrix wendest du auf w' an und bekommst w. v und w sind jetzt im selben Koordinatensystem.

* Dann rechnest du Spasshalber das Punktprodukt v*w aus - das ist dann bitte echt positiv - wenn nicht steht dein Wohnmobil nach einem Unfall auf dem Kopf oder du versuchst mit einem Satelliten Kontakt aufzunehmen, der sich auf der anderen Seite der Erde befindet... In Beiden Fällen würde ich auf das hineindrehen der Antenne in das Wohnmobil hinein absehen :-) (achtung: klappt nur, wenn v tatsächlich senkrecht nach oben bezüglich des wohnmobils zeigt...)

* Jedenfalls lassen sich Antennen ja üblicherweise um genau zwei Achsen drehen (azimuth und colatitude oder so) und die sind auch eindeutig. Kannste recht leicht ausrechnen, kommt aber ganz massiv drauf an, in welcher reihenfolge du Deine Euler-Matrizen miteinander multiplizierst. Ist im Prinzip genau das gleiche wie Kugelkoordinaten (den radius r brauchst du nicht, theta und phi sind im Prinzip die gesuchten winkel - ist leicht zu bestimmen, wenn v in richtung einer koordinatenachse steht... wenn nicht muss man mehr basteln, da man aber die richtung recht leicht festzuklemmen sein dürfte, würde ich so ne "schöne" richtung wählen ).


Zuletzt geändert von Delphic am Mi Jun 24, 2009 11:39, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 13, 2009 13:28 
Offline
DGL Member

Registriert: Fr Jan 09, 2009 14:08
Beiträge: 2
@Flash: es gibt ZWEI weitere Stufen. Also DREI Aktoren, die die Antenne verstellen.

Letztlich habe ich drei Winkel, die die Lage des Fahrzeugs beschreiben: Roll, Pitch, Yaw (so werden sie manchmal genannt, z.b. in der Fliegerei). Diese müssen, auf einen Vektor angewandt, auch in dieser Reihenfolge angewandt, werden, da sonst andere Ergebisse rauskommen.

Auf dem Wohnmobil sind drei Aktoren: einer um die Senkrechte Achse (senkrecht zum Wohnmobil!), dazu rechtwinkelig eine Art Höhenverstellung, und eine zum verstellen um die Achse der Empfangsrichtung.

Bei letzterer geht es um die Polarisation, d.h. es wird der Winkel zur globalen Senkrechten eingestellt, dieser soll im Regelfall immer 0 sein.
Die o.g. "Höhenverstellung" verstell nur dann 1:1 den Winkel zum Horizont, wenn das Wohnmobil gerade steht, ansonsten ist die Rotationsachse ja bereits gekippt.

Es gibt also 6 Eingangswerte: 3 Winkel, die die Lage beschreiben und drei Winkel, die die Ausrichtung (global) der Antenne beschreiben, namentlich Azimut, Elevation, Polarisation. Letzte drei sind Sollvorgaben.
Es sollen drei Werte rauskommen, namentlich z.b. Wz (senkrecht zum Wohnmobil), Wy (Höhe), Wx (Pol).

@Nico: klar, man kann das auch mit Quaternions machen, aber Quaternions, Eulerwinkel und Rotationsmatrizen lassen sich ineinander umrechnen. Das schöne an Eulerwinkeln ist, dass sie "verständlich" sind, das wir in diesen Dimensionen denken. Das geht mit Quaternions nicht. Leider gibt es bei Eulrwinkeln eine Singularität, die zum Gimbal Lock führt. Diese kann aber hier nicht auftreten, bzw nur, wenn das Wohnmobil einen Hang runterrollt (mit Überschlag). In dieser Situation wäre der Fersehempfang dann eher zweitrangig.

Vielen Dank

Grüße


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Mathematik-Forum


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]