Koordinatentransformation

Von: , Frage gestellt am Fr, 15. Okt 1999

Hallo

Ich habe folgendes Problem:
eine 2x2 Matrix beschreibt mir ein Spannungsfeld im kartesischen Koordinatensystem
(2D):
( Sxx Txy )
( Txy Syy )

Diese Spannungsmatrix möchte ich nun auf ein Polarkoordinatensystem transformieren
(Basistransformation).
D.h. ich möchte eine Matrix der Form:
( Srr Trp )
( Trp Spp )
erhalten, wobei x und y die kartesichen, r und p(phi) die Polarkoordinaten sind.

Wie muss ich hierbei genau vorgehen?

Mit bestem Dank im voraus

Andreas

2 Antworten zu dieser Frage

  1. Antwort von nach 5 Tagen hilfreich
    Re: Koordinatentransformation

    Hallo
    hi [Problem]
    2x2 Matrix -> Polar
    so auf die schnelle hab ich es nur in 3D...
    ich hoffe du kannst PASCAL:


    (*---------------------------------------------------------------------------*)
    (* SN: Sinus-Funktion (Gradmass) *)
    (*---------------------------------------------------------------------------*)
    FUNCTION SN(X:REAL):REAL;
    CONST RAD=0.0174532925199433;
    BEGIN
    SN:=SIN(X*RAD)
    END;

    (*---------------------------------------------------------------------------*)
    (* CS: Cosinus-Funktion (Gradmass) *)
    (*---------------------------------------------------------------------------*)
    FUNCTION CS(X:REAL):REAL;
    CONST RAD=0.0174532925199433;
    BEGIN
    CS:=COS(X*RAD)
    END;

    (*---------------------------------------------------------------------------*)
    (* TN: Tangens-Funktion (Gradmass) *)
    (*---------------------------------------------------------------------------*)
    FUNCTION TN(X:REAL):REAL;
    CONST RAD=0.0174532925199433;
    VAR XX: REAL;
    BEGIN
    XX:=X*RAD; TN:=SIN(XX)/COS(XX);
    END;
    (*---------------------------------------------------------------------------*)
    (* ATN2: Arcus-Tangens von y/x fuer zwei Argumente *)
    (* (quadrantenrichtig mit -180 Grad <= ATN2 <= +180 Grad) *)
    (*---------------------------------------------------------------------------*)
    FUNCTION ATN2(Y,X:REAL):REAL;
    CONST RAD=0.0174532925199433;
    VAR AX,AY,PHI: REAL;
    BEGIN
    IF (X=0.0) AND (Y=0.0)
    THEN ATN2:=0.0
    ELSE
    BEGIN
    AX:=ABS(X); AY:=ABS(Y);
    IF (AX>AY)
    THEN PHI:=ARCTAN(AY/AX)/RAD
    ELSE PHI:=90.0-ARCTAN(AX/AY)/RAD;
    IF (X<0.0) THEN PHI:=180.0-PHI;
    IF (Y<0.0) THEN PHI:=-PHI;
    ATN2:=PHI;
    END;
    END;

    (*---------------------------------------------------------------------------*)
    (* POLAR: Umwandlung von kartesischen Koordinaten (x,y,z) *)
    (* in Polarkoordinaten (r,theta,phi) *)
    (* ( theta = [-90 Grad,+90 Grad]; phi = [0 Grad,+360 Grad]) *)
    (*---------------------------------------------------------------------------*)
    PROCEDURE POLAR(X,Y,Z:REAL;VAR R,THETA,PHI:REAL);
    VAR RHO: REAL;
    BEGIN
    RHO:=X*X+Y*Y; R:=SQRT(RHO+Z*Z);
    PHI:=ATN2(Y,X); IF PHI<0 THEN PHI:=PHI+360.0;
    RHO:=SQRT(RHO); THETA:=ATN2(Z,RHO);
    END;

    (*---------------------------------------------------------------------------*)
    (* CART: Umwandlung von Polarkoordinaten (r,theta,phi) *)
    (* in kartesische Koordinaten (x,y,z) *)
    (* ( theta = [-90 Grad,+90 Grad]; phi = [-360 Grad,+360 Grad] ) *)
    (*---------------------------------------------------------------------------*)
    PROCEDURE CART(R,THETA,PHI: REAL; VAR X,Y,Z: REAL);
    VAR RCST : REAL;
    BEGIN
    RCST := R*CS(THETA);
    X := RCST*CS(PHI); Y := RCST*SN(PHI); Z := R*SN(THETA)
    END;



    Mit bestem Dank im voraus
    ich hoffe es hilft dir... Andreas

    • Antwort von nach 8 Tagen hilfreich
      Re^2: Koordinatentransformation

      Andreas,
      die von Dir verwendeten Transformationsformeln sind unrichtig.
      Du transformierst einen Punkt in einem
      kartesischem Koordinatensystem in ein
      polares. Das ist richtig, wenn ein Punkt transformiert wird, oder kann als vektortransformation betrachtet werden, wenn der Ortsvektor des beschriebenen punktes in einem anderen Koordinatensystem beschrieben wird.

      Hier ist allerdings die Aufgabe gestellt, einen SPANNUNGSTEBSOR in ein Koordinatensystem (rho/phi) zu transformieren. Die Transformatione eines Spannungstensors in ein lokales radiales Koordinatensystem (r,u) ist einfach (wenngleich etwas weniger einfach als in Deinem Programm dargestellt), in ein Koordinatensystem (r,phi) kenne ich keine Lösung.

      Gruß

      Harald



      zu transformieren. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!