RegistrierenRegistrieren   LoginLogin   FAQFAQ    SuchenSuchen   
Drehung um alle Achsen -> bestimmung der Drehwinkel
 
Neue Frage »
Antworten »
    Foren-Übersicht -> Mechanik
Autor Nachricht
Pat84



Anmeldungsdatum: 11.03.2010
Beiträge: 9

Beitrag Pat84 Verfasst am: 11. März 2010 16:27    Titel: Drehung um alle Achsen -> bestimmung der Drehwinkel Antworten mit Zitat

Hallo,

ich habe ein Programm für einen CFD-Code geschrieben und möchte dieses erweitern, nur leider stehe ich jetzt vor einer schwierigen Aufgabe:

Ich habe einen beliebigen Einheitsvektor im Raum, der in einem anderen Koordinatensystem die X-Achse darstellt. Nun möchte ich meine X-Achse (Vektor 1,0,0) durch rotieren aller Achsen nacheinander (erst x -> y -> z) die Winkel in den Drehmatrizen bestimmen. Ich habe eine analytische Lösung, allerdings bekomme ich dort immer nur maximal Pi/4 und den negativen Gegenpart. Kann die Bestimmung der Transformationsmatrix auch eleganter lösen?

MfG
Pat84
Pat84



Anmeldungsdatum: 11.03.2010
Beiträge: 9

Beitrag Pat84 Verfasst am: 11. März 2010 21:02    Titel: Antworten mit Zitat

Ich habe noch mal Überlegungen angestellt und bin darauf gekommen, dass man nicht beliebig drehen kann, sondern in einer gewissen Reihenfolge vorgehen muss.

In meinem Fall muss man sich vorstellen, dass sich eine kegelartige Verengung im einem Rohr (Düse), mit der X-Achse als Achse, irgendwo im Raum befindet. Auf dieser Verengung ist ein Punkt und dessen Flächennormale gegeben. Von diesem Punkt aus geht ein kleiner Kanal ab, dessen Durchsatz ich analytisch berechne. Die Richtung des Rohres ist in einem anderen Koordinatensystem. In diesem Koordinatensystem wäre die Y-Achse die Flächennormale und der Ursprung der Punkt auf der Verengung.

Nun ist meine Überlegung, dass man erst um die Z-Achse Rotiert und dann um die X-Achse. Der Vektor, der am Ende der Rotation herauskommen soll ist Bekannt: der Normalenvektor der Verengung. Der Vektor zu Beginn auch: die Y-Achse.

Vielleicht ist mein Fall jetzt klarer. Momentan benutze ich erst die Z-Rotationsmatrix und dann auf den ein mal rotierten Vektor die X-Rotationsmatrix. Da ich immer nur eine Unbekannte habe, kann ich mit Trigonometrischer Umformung, der PQ-Formel und anschließend dem Arcsin den Winkel berechnen. Leider ist das Ergebnis mehr oder weniger schlecht, denn ich bekomme nur einen Winkel bis 90°. 225° sind also 45° und -45° ( Wegen der Wurzel unter der PQ-Formel). Eine Fallunterscheidung und ein Algorithmus zum Aufsummieren des restlichen Winkels Fällt mir auch nicht ein.

Eine ganz andere Art um an die Transformationsmatrix zu kommen wäre da viel besser.. Wenn es eine Gibt.
VeryApe



Anmeldungsdatum: 10.02.2008
Beiträge: 3248

Beitrag VeryApe Verfasst am: 11. März 2010 21:22    Titel: Antworten mit Zitat

Skizzen sind oft aussagekräftiger.
Pat84



Anmeldungsdatum: 11.03.2010
Beiträge: 9

Beitrag Pat84 Verfasst am: 11. März 2010 22:12    Titel: Antworten mit Zitat

Hoffe man kann etwas erkennen..

Das erste Koordinatensystem mit der Verengung stellt eine mögliche Geometrie dar. Die Flächennormale geht durch einen Punkt (ist bekannt). Das 2. Koordinatensystem beinhaltet die Richtung des Kanals. Man stelle sich jetzt vor der Ursprung von Koord. 2 liege auf dem Punkt, an dem die Flächennormale in Koord. 1 die Fläche der Geometrie durchstößt und die Y-Achse von Koord. 2 soll durch den Normalenvektor in Koord. 1 dargestellt werden. Unten rechts sieht man wie ich mir das Vorstelle. Da Vektoren verschoben werden können, behandle ich die Koordinatensysteme als fielen die Ursprünge aufeinander. Jetzt möchte ich die beiden Winkel herausfinden, damit ich eine Transformationsmatrix erstellen kann und den in Koord 2. befindlichen Vektor in Koord. 1 überführen kann.



Für diese gilt:



Wobei z.B. die Y-Achse ist (0/1/0) und mein Flächennormalenvektor. Die Transformationsmatrix möchte ich dann benutzten, um den Vektor in Koord. 2 nach Koord. 1 zu überführen.

Puhhhh.. hoffe mene Absicht ist nun klarer Augenzwinkern



Zeichnung.jpg
 Beschreibung:

Download
 Dateiname:  Zeichnung.jpg
 Dateigröße:  75.94 KB
 Heruntergeladen:  2826 mal

Pat84



Anmeldungsdatum: 11.03.2010
Beiträge: 9

Beitrag Pat84 Verfasst am: 15. März 2010 15:05    Titel: Antworten mit Zitat

Sagt mal.. gibt es eine Möglichkeit ohne arcsin auf das Bogenmaß zu kommen, dass hinter einem Sinus steckt?
DrStupid



Anmeldungsdatum: 07.10.2009
Beiträge: 5044

Beitrag DrStupid Verfasst am: 17. März 2010 22:01    Titel: Antworten mit Zitat

Pat84 hat Folgendes geschrieben:
Jetzt möchte ich die beiden Winkel herausfinden, damit ich eine Transformationsmatrix erstellen kann und den in Koord 2. befindlichen Vektor in Koord. 1 überführen kann.



Für diese gilt:



Wobei z.B. die Y-Achse ist (0/1/0) und mein Flächennormalenvektor.


Wenn ich Dich richtig verstanden habe, brauchst Du die Winkel nur, um die Transformationsmatrix zu berechnen. Ich hätte einen Weg, um die Matrix ohne irgendwelche Winkel zu berechnen:

Die Matrix soll die Basisvektoren

, und

des ursprünglichen Koordinatensystems in die Basisvektoren



des neuen Koordinatensystems überführen. Das kann die Matrix in diesem einfachen Fall leisten, wenn ihre Spaltenvektoren gleichzeitig die Basisvektoren des neuen Koordinatensystems sind. Damit steht einer der drei Spaltenvektoren bereits fest:



Um an die anderen Basisvektoren zu kommen, muss ich das Ganze ein wenig einschränken. Prinzipiell gibt es unendlich viele Transformationen, die die Y-Achse in die richtige Richtung drehen. Du hast Dich aber schon für eine dieser Möglichkeiten entschieden, indem das Koordinatensystem nacheinander erst um die Z-Achse und dann um die X-Achse des alten Koordinatensystems gedreht wird. Das hat zur Folge, dass die neue Z-Achse in der YZ-Ebene des alten Koordinatensystems liegt und damit senkrecht auf der alten X-Achse steht. Mathematisch heißt das



Daraus folgt schon mal



Die nächste Einschränkung besteht darin, dass alle Basisvektoren senkrecht aufeinander stehen. Das bedeutet beispielsweise



Daraus folgt



Schließlich sollen alle Basisvektoren auch noch die Länge 1 haben:



und damit ist der nächste Basisvektor schon fast komplett:



Jetzt muss ich nur noch das Vorzeichen wiederfinden, das bei der Normierung verloren gegangen ist. Das muss so gewählt werden, dass die X-Achse unverändert bleibt, wenn die neue Y-Achse mit der alten zusammen fällt und schon ist der zweite Basisvektor fertig:



Beim letzen Vektor könnte ich jetzt genauso vorgehen, indem ich ihn senkrecht zu den beiden anderen stelle, normiere und das resultierende Gleichungssystem löse. Aufgrund der einfachen Metrik geht das aber viel einfacher:



Und schon habe ich die Transformationsmatrix:



Für den Fall, dass ich mich verrechnet habe, weißt Du jetzt ja, wie Du Dir die Tranbsformation selbst basteln kannst.
Neue Frage »
Antworten »
    Foren-Übersicht -> Mechanik