Tensor-Komponenten

Beispiel-Aufgaben

  • Passive Transformation: 2.2.C

  • Aktive Transformation: 2.2.E

Videos

../../../_images/tensor-trafo_all.png

Passive Transformation (links) und aktive Transformation (rechts).

Passive Transformation

Passive Transformation = 2 Bezugssysteme und 1 Tensor

Es gibt:

  • das \(\left(x, y\right)\)-System,

  • das \(\left(\bar x, \bar y\right)\)-System

  • den Winkel \(\varphi\), um den das \(\left(\bar x, \bar y\right)\)-System relativ zum \((x, y)\)-System gedreht ist

  • \(\begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \end{bmatrix}\): Die \(\left(x, y\right)\)-Komponenten des Tensors

  • \(\begin{bmatrix} T_{\bar x \bar x} & T_{\bar x\bar y} \\ \mathsf{sym} & T_{\bar y\bar y} \end{bmatrix}\): Die \((\bar x, \bar y)\)-Komponenten des Tensors

  • die Umrechnungs-Formel = die „Passive Transformation“:

    \begin{align} \label{trafo_tensor_eq_passive_matrix} \begin{bmatrix} T_{\bar x \bar x} & T_{\bar x\bar y} \\ \mathsf{sym} & T_{\bar y\bar y} \end{bmatrix} = R_\varphi \begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \end{bmatrix} R_\varphi^{\mathsf T} \tag{1} \end{align}

    mit \(R_\varphi = \begin{bmatrix}c_\varphi & s_\varphi \\-s_\varphi & c_\varphi\end{bmatrix}\) und \(R_\varphi^{\mathsf T}\) als Transponierte von \(R_\varphi\).

Details

Seien folgende Abkürzungen definiert:

\[\begin{split}\bar{T} &= \tfrac12 \left(T_{xx} + T_{yy}\right)\\ \tilde T &= \tfrac 12 \left( T_{xx} - T_{yy}\right)\end{split}\]

Nach Ausrechnen des Matrix-Produkts und mit diesen Abkürzungen lautet Gleichung (1):

\begin{align} \begin{bmatrix} T_{\bar x \bar x} & T_{\bar x\bar y} \\ \mathsf{sym} & T_{\bar y\bar y} \end{bmatrix} &= \begin{bmatrix} T_{xx} c_\varphi^2 + T_{xy} s_{2\varphi} + T_{yy} s_\varphi^2 & - \tilde T s_{2\varphi} + T_{xy} c_{2\varphi}\\ \mathsf{sym} & T_{xx} s_\varphi^2 - T_{xy} s_{2\varphi} + T_{yy} c_\varphi^2 \end{bmatrix} \\ &= \begin{bmatrix} \bar{T} + \tilde T c_{2\varphi} + T_{xy} s_{2\varphi} & - \tilde T s_{2\varphi} + T_{xy} c_{2\varphi}\\ \mathsf{sym} & \bar{T} - \tilde T c_{2\varphi} - T_{xy} s_{2\varphi} \end{bmatrix} \tag{1'} \end{align}

\(T_{\bar x \bar x}\) und \(T_{\bar x \bar y}\) aus dieser Gleichung anders notiert - nämlich zusammengefasst in einer Spaltenmatrix:

\begin{align} \label{trafo_tensor_eq_passive_eqns_2} \begin{bmatrix} T_{\bar x \bar x} \\ T_{\bar x\bar y} \end{bmatrix} &= \begin{bmatrix} \bar{T} \\ 0 \end{bmatrix} + \underbrace{ \begin{bmatrix} c_{2\varphi} & s_{2\varphi} \\ - s_{2\varphi} & c_{2\varphi} \end{bmatrix} }_{R_{2\varphi}} \begin{bmatrix} \tilde T\\ T_{xy} \end{bmatrix} \\ &= \begin{bmatrix} \bar{T} \\ 0 \end{bmatrix} + R_{2\varphi} \begin{bmatrix} \tilde T\\ T_{xy} \end{bmatrix} \tag{P} \end{align}

\(T_{\bar y \bar y}\) und \(- T_{\bar x \bar y}\) zusammengefasst in einer Spaltenmatrix:

\begin{align} \label{trafo_tensor_eq_passive_eqns_3} \begin{bmatrix} T_{\bar y \bar y} \\ - T_{\bar x\bar y} \end{bmatrix} &= \begin{bmatrix} \bar{T} \\ 0 \end{bmatrix} + \begin{bmatrix} -c_{2\varphi} & -s_{2\varphi} \\ s_{2\varphi} & - c_{2\varphi} \end{bmatrix} \begin{bmatrix} \tilde T\\ T_{xy} \end{bmatrix} \\ &= \begin{bmatrix} \bar{T} \\ 0 \end{bmatrix} + \underbrace{ \begin{bmatrix} c_{2(\varphi\pm 90^\circ)} & s_{2(\varphi\pm 90^\circ)} \\ -s_{2(\varphi\pm 90^\circ)} & c_{2(\varphi\pm 90^\circ)} \end{bmatrix} }_{R_{2(\varphi \pm 90^\circ)}} \begin{bmatrix} \tilde T\\ T_{xy} \end{bmatrix} \\ &= \begin{bmatrix} \bar{T} \\ 0 \end{bmatrix} + R_{2(\varphi \pm 90^\circ)} \begin{bmatrix} \tilde T\\ T_{xy} \end{bmatrix} \tag{P'} \end{align}
  • Mit Gleichung (1) lassen sich alle drei transformierten Komponenten berechnen. Hierzu benötigt man Matrix-Multiplikation: Man berechnet das Produkt dreier Matrizen.

  • Mit Gleichung (1‘) lassen sich alle drei transformierten Komponenten mit einem Taschenrechner berechnen - ohne Matrix-Multiplikation.

  • Wegen Gleichung (P) und (P‘) kann man die Komponenten als Punktkoordinaten auf dem Mohrschen Kreis ablesen.

Beispiel zu den Gleichungen (P) und (P')

Gegeben: Die \((x,y)\)-Komponenten:

\[\begin{split}\begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \end{bmatrix} &= \begin{bmatrix} 2 & 1 \\ \mathsf{sym} & 1{,}5 \end{bmatrix}\end{split}\]

Gesucht: Die \((\bar x, \bar y)\)-Komponenten bei Passiver Transformation mit \(\varphi=30^\circ.\)

Aus den gegebenen Komponenten berechnen:

\[\begin{split}\begin{bmatrix} \bar{T} \\ 0 \end{bmatrix} &= \begin{bmatrix} 1{,}75\\ 0 \end{bmatrix} \\ \begin{bmatrix} \tilde T\\ T_{xy} \end{bmatrix} &= \begin{bmatrix} 0{,}25\\ 1 \end{bmatrix} \\ R_{2\varphi} &= \begin{bmatrix} c_{2\cdot 30^\circ} & s_{2\cdot 30^\circ} \\ - s_{2\cdot 30^\circ} & c_{2\cdot 30^\circ} \end{bmatrix} \\ &= \begin{bmatrix} \tfrac 1 2 & \tfrac{\sqrt 3}{2} \\ - \tfrac{\sqrt 3}{2} & \tfrac 1 2 \end{bmatrix}\end{split}\]

Gleichung (2) liefert damit:

\begin{align*} \begin{bmatrix} T_{\bar x \bar x} \\ T_{\bar x\bar y} \end{bmatrix} &= \begin{bmatrix} 1{,}75\\ 0 \end{bmatrix} + R_{2\varphi} \begin{bmatrix} 0{,}25\\ 1 \end{bmatrix} \\ &\stackrel{0{,}01}{\approx} \begin{bmatrix} 2{,}74\\ 0{,}28 \end{bmatrix} \end{align*}
../../../_images/passive_all.png

Bild zum Beispiel mit \(\varphi=30^\circ\): Die Tensor-Komponenten \(\left( T_{\bar x \bar x}, T_{\bar x\bar y}\right)\) bei Passiver Transformation lassen sich grafisch ermitteln: 1. Den grauen Vektor \(\left(\bar{T}, 0\right)\) zeichnen. 2. Den roten Vektor \(\left(\tilde T, T_{xy}\right)\) zeichnen. 3. Diesen Vektor drehen mit \(2\varphi\) im Uhrzeigersinn. 4. An der Spitze des gedrehten Vektors die Komponenten \(\left( T_{\bar x \bar x}, T_{\bar x\bar y}\right)\) ablesen. 5. Genau gegenüber von diesem Punkt die Komponenten \(\left( T_{\bar y \bar y}, - T_{\bar x\bar y}\right)\) ablesen.

SymPy

Nachfolgend ein Programm, dass Sie ausführen können:

  • Auf dem PC z.B. mit Anaconda.

  • Im Browser (online) in drei Schritten:

    1. Copy: Source Code in die Zwischenablage kopieren.

    2. Paste: Source Code als Python-Notebook einfügen z.B. auf:

    3. Play: Ausführen.

# -*- coding: utf-8 -*-
from sympy.physics.units import *
from sympy import *

# Units:
deg  =  pi/180


# Rounding:
import decimal
from decimal import Decimal as DX
from copy import deepcopy
def iso_round(obj, pv,
    rounding=decimal.ROUND_HALF_EVEN):
    import sympy
    """
    Rounding acc. to DIN EN ISO 80000-1:2013-08
    place value = Rundestellenwert
    """
    assert pv in set([
        # place value   #  round to:
        "1",              #  round to integer
        "0.1",            #  1st digit after decimal
        "0.01",           #  2nd
        "0.001",          #  3rd
        "0.0001",         #  4th
        "0.00001",        #  5th        
        "0.000001",       #  6th
        "0.0000001",      #  7th
        "0.00000001",     #  8th
        "0.000000001",    #  9th
        "0.0000000001",   # 10th
        ])
    objc = deepcopy(obj)
    try:
        tmp = DX(str(float(objc)))
        objc = tmp.quantize(DX(pv), rounding=rounding)
    except:
        for i in range(len(objc)):
            tmp = DX(str(float(objc[i])))
            objc[i] = tmp.quantize(DX(pv), rounding=rounding)
    return objc

# ---

def c_collect(x):
    retval = collect(x, cos(2*phi))
    return retval
def s_collect(x):
    retval = collect(x, sin(2*phi))
    return retval

Txx, Txy, Tyy = 2, 1, 1.5
quantities = True
quantities = False

var("Txx, Txy, Tyy")
var("phi")
Tb = var(u"T\u0304")
Tt = var(u"T\u0303")
c2p, s2p = var("c₂ᵩ, s₂ᵩ")

sub_list = [
    ((Txx + Tyy)/2, Tb),
    ((Txx - Tyy)/2, Tt),
    (cos(2*phi), var("c₂ᵩ") ),
    (sin(2*phi), var("s₂ᵩ")),
    ]

sub_list_q = [
    (phi, 30*deg),
    (Txx, 2),
    (Txy, 1),
    (Tyy, S(3)/2 ),
    ]

pprint("\n(x,y)-Comp's of T:")
T = Matrix([
    [Txx, Txy],
    [Txy ,Tyy]
    ])
pprint(T)

c, s = cos(phi), sin(phi)
c2, s2 = cos(2*phi), sin(2*phi)
R = Matrix([
    [c, s],
    [-s, c]]
    )
pprint("\nR₂ᵩ for φ=30°:")
R2 = Matrix([
    [c2, s2],
    [-s2, c2]]
    )
tmp = R2
tmp = tmp.subs(sub_list_q)
pprint(tmp)
tmp = iso_round(tmp,"0.01")
pprint(tmp)


pprint("\n(x̄,ȳ)-Comp's of T:")
Tb = R*T*R.transpose()
tmp = Tb.applyfunc(trigsimp)
tmp = tmp.applyfunc(c_collect)
tmp = tmp.applyfunc(s_collect)
tmp = tmp.subs(sub_list)
pprint(tmp)


pprint("\n(Tx̄x̄, Tx̄ȳ) and (Tȳȳ, -Tx̄ȳ):")
for v in [Matrix([Tb[0,0], Tb[0,1]]), Matrix([Tb[1,1], - Tb[0,1]])]:
    tmp = v
    if quantities:
        tmp = tmp.subs(sub_list_q)
        tmp = iso_round(tmp,"0.01")
    else: # symbols:
        tmp = tmp.applyfunc(trigsimp)
        tmp = tmp.applyfunc(c_collect)
        tmp = tmp.applyfunc(s_collect)
        tmp = tmp.subs(sub_list)
    pprint(tmp)



                  
(x,y)-Comp's of T:
⎡Txx  Txy⎤
⎢        ⎥
⎣Txy  Tyy⎦
              
R₂ᵩ for φ=30°:
⎡      √3 ⎤
⎢1/2   ── ⎥
⎢      2  ⎥
⎢         ⎥
⎢-√3      ⎥
⎢────  1/2⎥
⎣ 2       ⎦
⎡ 0.5   0.87⎤
⎢           ⎥
⎣-0.87  0.5 ⎦
                  
(x̄,ȳ)-Comp's of T:
⎡Txy⋅s₂ᵩ + T̃⋅c₂ᵩ + T̄    Txy⋅c₂ᵩ - T̃⋅s₂ᵩ   ⎤
⎢                                         ⎥
⎣  Txy⋅c₂ᵩ - T̃⋅s₂ᵩ    -Txy⋅s₂ᵩ - T̃⋅c₂ᵩ + T̄⎦
                           
(Tx̄x̄, Tx̄ȳ) and (Tȳȳ, -Tx̄ȳ):
⎡Txy⋅s₂ᵩ + T̃⋅c₂ᵩ + T̄⎤
⎢                   ⎥
⎣  Txy⋅c₂ᵩ - T̃⋅s₂ᵩ  ⎦
⎡-Txy⋅s₂ᵩ - T̃⋅c₂ᵩ + T̄⎤
⎢                    ⎥
⎣  -Txy⋅c₂ᵩ + T̃⋅s₂ᵩ  ⎦

Statt SymPy lieber anderes CAS (Computeralgebrasystem) verwenden? Eine Auswahl verschiedener CAS gibt es hier.

Aktive Transformation

Aktive Transformation = 1 Bezugssystem und 2 Tensoren

Es gibt:

  • das \(\left(x, y\right)\)-System

  • den Tensor \(\boldsymbol T\) und den Tensor \(\boldsymbol T'\)

  • den Winkel \(\alpha\), um den \(\boldsymbol T'\) relativ zu \(\boldsymbol T\) gedreht ist

  • \(\begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \end{bmatrix}\): Die \(\left(x, y\right)\)-Komponenten des Tensors

  • \(\begin{bmatrix} T'_{xx} & T'_{xy} \\ \mathsf{sym} & T'_{yy} \end{bmatrix}\): Die \((x, y)\)-Komponenten des gedrehten Tensors

  • die Umrechnungs-Formel = die „Aktive Transformation“:

    \begin{align} \begin{bmatrix} T'_{xx} & T'_{xy} \\ \mathsf{sym} & T'_{yy} \end{bmatrix} = R_\alpha \begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \end{bmatrix} R_\alpha^{\mathsf T} \tag{1'} \end{align}

    mit \(R_\alpha = \begin{bmatrix}c_\alpha & -s_\alpha \\s_\alpha & c_\alpha\end{bmatrix}\) und \(R_\alpha^{\mathsf T}\) als Transponierte von \(R_\alpha\).

Passive vs. Aktive Transformation

Gleiche Komponenten - andere Bedeutung

Für \(\alpha=-\varphi\) bzw. gleichbedeutend \(\varphi = - \alpha\) gilt:

\[\begin{split}\begin{bmatrix} T_{\bar x \bar x} & T_{\bar x\bar y} \\ \mathsf{sym} & T_{\bar y\bar y} \end{bmatrix} = \begin{bmatrix} T'_{xx} & T'_{xy} \\ \mathsf{sym} & T'_{yy} \end{bmatrix}\end{split}\]
  • Eine passive Transformation mit \(\varphi=30^\circ\) führt auf dieselben transformierten Komponenten wie eine aktive Transformation (desselben Vektors) mit \(\alpha = -30^\circ\).

  • Das Bezugssystem um 30 Grad entgegen dem Uhrzeigersinn zu drehen führt auf dieselben transformierten Komponenten wie den Tensor um 30 Grad im Uhrzeigersinn zu drehen.

  • Die transformierten Komponenten sind hierbei zahlenmäßig gleich - haben aber verschiedene Bedeutungen.

2 der 4 Gleichungen von (1‘) lauten:

\begin{align} \begin{bmatrix} T'_{xx} \\ T'_{xy} \end{bmatrix} &= \begin{bmatrix} \bar{T} \\ 0 \end{bmatrix} + \begin{bmatrix} c_{2\alpha} & -s_{2\alpha} \\ s_{2\alpha} & c_{2\alpha} \end{bmatrix} \begin{bmatrix} \tilde T\\ T_{xy} \end{bmatrix} \tag{2'} \end{align}

Beispiel zu Gleichung (2')

Gegeben: Die \((x,y)\)-Komponenten des Tensors \(\boldsymbol T\):

\[\begin{split}\begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \end{bmatrix} &= \begin{bmatrix} 2 & 1 \\ \mathsf{sym} & 1{,}5 \end{bmatrix}\end{split}\]

Gesucht: Die \((x, y)\)-Komponenten von \(\boldsymbol T'\) bei Aktiver Transformation mit \(\alpha=45^\circ.\)

../../../_images/active.png

Bild zum Beispiel mit \(\alpha=45^\circ\):: Die Tensor-Komponenten bei Aktiver Transformation lassen sich grafisch ermitteln: 1. Den grauen Vektor \((\bar{T}, 0)\) zeichnen. 2. Den roten Vektor \((\tilde T, T_{xy})\) zeichnen. 3. Diesen Vektor drehen mit \(2\alpha\) entgegen dem Uhrzeigersinn. 4. An der Spitze des gedrehten Vektors die transformierten Komponenten \(( T'_{xx}, T'_{xy} ) = (0{,}75, 0{,}25 )\) ablesen.

Web-App

Tensor Transformation

Anleitung

Für Passive Transformation:

  • Oben die Komponenten \((T_{xx}, T_{xy}, T_{yy})\) eintragen als einheitenlose Größen. Falls z.B. ein Tensor untersucht werden soll mit den Komponenten \(\left(2\,\mathrm{Pa}, 1\,\mathrm{Pa}, \tfrac 3 2 \,\mathrm{Pa}\right)\): Dann würde man oben eintragen: \((T_{xx}, T_{xy}, T_{yy}) = (2, 1, 1.5).\)

  • Unten am Schieberegler den Winkel \(\varphi\) einstellen.

  • Im Diagramm die Komponenten \((T_{\bar x \bar x}, T_{\bar x\bar y})\) ablesen.

  • Es gilt für jedes beliebige \(n\in\mathbb{N}:\)

    \[T_{\bar y \bar y}(\varphi) = T_{\bar x \bar x}(\varphi + n \cdot 90^\circ)\]

    Darum lässt sich \(T_{\bar y \bar y}\) ablesen als \(T_{\bar x \bar x}\) für einen um 90 Grad größeren (oder kleineren) Winkel - also gegenüber auf dem Mohrschen Kreis. Beispiel:

    \[T_{\bar y \bar y}(10^\circ) = T_{\bar x \bar x}(-80^\circ)\]
  • 180-Grad-Periodizität: Die Passive Transformation ist definiert für jeden beliebigen Winkel \(\varphi\). Denn es gilt für jedes beliebige \(n\in\mathbb{N}:\)

    \[\begin{split}T_{\bar x \bar x}(\varphi\pm n \cdot 180^\circ) &= T_{\bar x \bar x}(\varphi) \\ T_{\bar x \bar y}(\varphi\pm n \cdot 180^\circ) &= T_{\bar x \bar y}(\varphi) \\ T_{\bar y \bar y}(\varphi\pm n \cdot 180^\circ) &= T_{\bar y \bar y}(\varphi) \\\end{split}\]

    Beispiel:

    \[T_{\bar x \bar y}(100^\circ) = T_{\bar x \bar y}(-80^\circ)\]

SymPy

Nachfolgend ein Programm, dass Sie ausführen können:

  • Auf dem PC z.B. mit Anaconda.

  • Im Browser (online) in drei Schritten:

    1. Copy: Source Code in die Zwischenablage kopieren.

    2. Paste: Source Code als Python-Notebook einfügen z.B. auf:

    3. Play: Ausführen.

# -*- coding: utf-8 -*-
from sympy.physics.units import *
from sympy import *

# Units:
(mm, cm)  =  ( m/1000, m/100 )
Newton    =  kg*m/s**2
kN        =  10**3*Newton
Pa        =  Newton/m**2
MPa       =  10**6*Pa
GPa       =  10**9*Pa
deg       =  pi/180
half      =  S(1)/2

# Rounding:
import decimal
from decimal import Decimal as DX
from copy import deepcopy
def iso_round(obj, pv,
    rounding=decimal.ROUND_HALF_EVEN):
    import sympy
    """
    Rounding acc. to DIN EN ISO 80000-1:2013-08
    place value = Rundestellenwert
    """
    assert pv in set([
        # place value   #  round to:
        "1",              #  round to integer
        "0.1",            #  1st digit after decimal
        "0.01",           #  2nd
        "0.001",          #  3rd
        "0.0001",         #  4th
        "0.00001",        #  5th
        "0.000001",       #  6th
        "0.0000001",      #  7th
        "0.00000001",     #  8th
        "0.000000001",    #  9th
        "0.0000000001",   # 10th
        ])
    objc = deepcopy(obj)
    try:
        tmp = DX(str(float(objc)))
        objc = tmp.quantize(DX(pv), rounding=rounding)
    except:
        for i in range(len(objc)):
            tmp = DX(str(float(objc[i])))
            objc[i] = tmp.quantize(DX(pv), rounding=rounding)
    return objc

# ---



def print_angle(angle):
    tmp = angle
    tmp /= deg
    tmp = iso_round(tmp,prec)
    print(tmp,end="")
    print("°")
    
def get_R(angle, passive=True):
    c, s = cos(angle), sin(angle)
    R = Matrix([[c, s],[-s, c]])
    if passive == True:
        pprint("\nPassive Transformation: φ:")
        print_angle(angle)
        return R
    else:
        pprint("\nActive Transformation: α:")
        print_angle(angle)
        return R.transpose()

# Output precision:
prec = "0.01"

Txx, Txy, Tyy = 2, 1, 1.5

pprint("\n(x,y)-Comp's of T:")
T = Matrix([
    [Txx, Txy],
    [Txy ,Tyy]
    ])
pprint(T)

phi = 10 * deg

# Calculator:
# C2, S2 = cos(phi)**2, sin(phi)**2
# c2, s2 = cos(2*phi), sin(2*phi)
# T11 = Txx*C2 + Txy*s2 + Tyy*S2
# T12 = (Tyy - Txx)/2*s2 + Txy*c2
# T22 = Txx*S2 - Txy*s2 + Tyy*C2

R = get_R(phi, passive=True)

pprint("\n(x̄,ȳ)-Comp's of T:")
tmp = R*T*R.transpose()
tmp = iso_round(tmp,prec)
pprint(tmp)

alpha = 45 * deg
R = get_R(alpha, passive=False)
pprint("\n(x,y)-Comp's of T':")
tmp = R*T*R.transpose()
tmp = iso_round(tmp,prec)
pprint(tmp)

pprint("\nTm:")
Tm = (Txx + Tyy)/2
tmp = Tm
tmp = iso_round(tmp,prec)
pprint(tmp)

pprint("\nr:")
r = ( (Txx - Tyy) / 2 )**2 + Txy**2
r = sqrt(r)
tmp = r
tmp = iso_round(tmp,prec)
pprint(tmp)

pprint("\nTx̄x̄₁:")
T1 = Tm + r
tmp = T1
tmp = iso_round(tmp,prec)
pprint(tmp)

pprint("\nφ₁ / deg:")
T2 = Tm - r
tmp = atan(Txy/(Txx - T2))
tmp /= deg
tmp = iso_round(tmp,prec)
pprint(tmp)

pprint("\nTx̄x̄₂:")
T2 = Tm - r
tmp = T2
tmp = iso_round(tmp,prec)
pprint(tmp)

                  
(x,y)-Comp's of T:
⎡2   1 ⎤
⎢      ⎥
⎣1  1.5⎦
                          
Passive Transformation: φ:
10.00°
                  
(x̄,ȳ)-Comp's of T:
⎡2.33  0.85⎤
⎢          ⎥
⎣0.85  1.17⎦
                         
Active Transformation: α:
45.00°
                   
(x,y)-Comp's of T':
⎡0.75  0.25⎤
⎢          ⎥
⎣0.25  2.75⎦
   
Tm:
1.75
  
r:
1.03
     
Tx̄x̄₁:
2.78
         
φ₁ / deg:
37.98
     
Tx̄x̄₂:
0.72

Statt SymPy lieber anderes CAS (Computeralgebrasystem) verwenden? Eine Auswahl verschiedener CAS gibt es hier.

Andere Ebenen und 3D

Entsprechende Formeln lassen sich auch für die anderen Ebenen aufstellen. Hierbei wird zyklisch vertauscht.

Ebene

\(\varphi\) zählt pos. um

\((x,y)\)

\(z\)

\((y,z)\)

\(x\)

\((z,x)\)

\(y\)

Beispiel \((y,z)\)-Ebene

Passive und aktive Transformation:

\[\begin{split}\begin{bmatrix} T_{\bar y \bar y} & T_{\bar y\bar z} \\ \mathsf{sym} & T_{\bar z\bar z} \end{bmatrix} \! &= R_\varphi \begin{bmatrix} T_{yy} & T_{yz} \\ \mathsf{sym} & T_{zz} \end{bmatrix} R_\varphi^{\mathsf T} \\ \begin{bmatrix} T'_{yy} & T'_{yz} \\ \mathsf{sym} & T'_{zz} \end{bmatrix} &= R_\alpha \begin{bmatrix} T_{yy} & T_{yz} \\ \mathsf{sym} & T_{zz} \end{bmatrix} R_\alpha^{\mathsf T}\end{split}\]
Tensor Transformation

Tensor-Komponente

  • Eine Tensor-Komponente ist der Anteil eines symmetrischen Tensors in einer bestimmten „Richtung“.

  • Diese „Richtung“ wird definiert mit zwei Einheitsvektoren (entlang dieser „Richtung“).

Um eine Tensor-Komponenten zu berechnen, braucht man:

  1. ein Bezugssystem, z.B. das \((x,y,z)\)-System.

  2. die Komponenten des Tensors (bezüglich Bezugssystem): \(T_{xx}, T_{xy}, T_{xz}, T_{yy}, T_{yz}, T_{zz}\).

  3. die Komponenten der Einheitsvektoren (bezüglich Bezugssystem).

\(xx\)-Komponente

Sei die „Richtung“ die \(xx\)-„Richtung“. Dann gilt für die Tensor-Komponente \(T_{xx}\) in dieser „Richtung“:

\[\begin{split}T_{xx} &= \begin{bmatrix}1 & 0 & 0 \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} & T_{xz}\\ & T_{yy} & T_{yz} \\ \mathsf{sym} & & T_{zz} \end{bmatrix} \begin{bmatrix}1 \\ 0 \\ 0 \end{bmatrix} \\ &= \begin{bmatrix}1 & 0 & 0 \end{bmatrix} \begin{bmatrix} T_{xx} \\ T_{xy} \\ T_{xz} \end{bmatrix} \\ &= T_{xx}\end{split}\]

2D

In 2D z.B. in der \((x,y)\)-Ebene:

\[\begin{split}T_{xx} &= \begin{bmatrix}1 & 0 \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym}& T_{yy}\\ \end{bmatrix} \begin{bmatrix}1 \\ 0\end{bmatrix} \\ &= \begin{bmatrix}1 & 0 \end{bmatrix} \begin{bmatrix} T_{xx} \\ T_{xy} \end{bmatrix} \\ &= T_{xx}\end{split}\]

\(xy\)-Komponente

Sei die „Richtung“ die \(xy\)-„Richtung“. Dann gilt für die Tensor-Komponente \(T_{xy}\) in dieser „Richtung“:

\[\begin{split}T_{xy} &= \begin{bmatrix}1 & 0 & 0 \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} & T_{xz}\\ & T_{yy} & T_{yz} \\ \mathsf{sym} & & T_{zz} \end{bmatrix} \begin{bmatrix}0 \\ 1 \\ 0 \end{bmatrix} \\ &= \begin{bmatrix}1 & 0 & 0 \end{bmatrix} \begin{bmatrix} T_{xy} \\ T_{yy} \\ T_{yz} \end{bmatrix} \\ &= T_{xy}\end{split}\]

2D

In 2D z.B. in der \((x,y)\)-Ebene:

\[\begin{split}T_{xy} &= \begin{bmatrix}1 & 0 \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \\ \end{bmatrix} \begin{bmatrix}0 \\ 1 \end{bmatrix} \\ &= \begin{bmatrix}1 & 0 \end{bmatrix} \begin{bmatrix} T_{xy} \\ T_{yy} \\ \end{bmatrix} \\ &= T_{xy}\end{split}\]

\(\bar x\bar x\)-Komponente

Sei die „Richtung“ die \(\bar x\bar x\)-„Richtung“. Weil \(\bar x\) um den Winkel \(\varphi\) relativ zu \(x\) gedreht ist, hat ein Einheitsvektor in \(\bar x\)-Richtung die \((x,y,z)\)-Komponenten \((c_\varphi, s_\varphi, 0)\). Und für die Tensor-Komponente \(T_{\bar x \bar x}\) in dieser „Richtung“ gilt:

\[\begin{split}T_{\bar x\bar x} &= \begin{bmatrix}c_\varphi & s_\varphi & 0 \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} & T_{xz}\\ & T_{yy} & T_{yz} \\ \mathsf{sym} & & T_{zz} \end{bmatrix} \begin{bmatrix}c_\varphi \\ s_\varphi \\ 0 \end{bmatrix}\end{split}\]

2D

In 2D z.B. in der \((x,y)\)-Ebene:

\[\begin{split}T_{\bar x\bar x} &= \begin{bmatrix}c_\varphi & s_\varphi \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \\ \end{bmatrix} \begin{bmatrix}c_\varphi \\ s_\varphi\end{bmatrix}\end{split}\]

\(\bar x\bar y\)-Komponente

Sei die „Richtung“ die \(\bar x\bar y\)-„Richtung“. Weil \(\bar x\) um den Winkel \(\varphi\) relativ zu \(x\) gedreht ist, hat ein Einheitsvektor in \(\bar x\)-Richtung die \((x,y,z)\)-Komponenten \((c_\varphi, s_\varphi, 0)\). Und weil \(\bar y\) um den Winkel \(\varphi\) relativ zu \(y\) gedreht ist, hat ein Einheitsvektor in \(\bar y\)-Richtung die \((x,y,z)\)-Komponenten \((-s_\varphi, c_\varphi, 0)\). Und für die Tensor-Komponente \(T_{\bar x \bar y}\) in dieser „Richtung“ gilt:

\[\begin{split}T_{\bar x\bar y} &= \begin{bmatrix}c_\varphi & s_\varphi & 0 \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} & T_{xz}\\ & T_{yy} & T_{yz} \\ \mathsf{sym} & & T_{zz} \end{bmatrix} \begin{bmatrix}-s_\varphi \\ c_\varphi \\ 0 \end{bmatrix}\end{split}\]

2D

In 2D z.B. in der \((x,y)\)-Ebene:

\[\begin{split}T_{\bar x\bar y} &= \begin{bmatrix}c_\varphi & s_\varphi \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \\ \end{bmatrix} \begin{bmatrix}-s_\varphi \\ c_\varphi\end{bmatrix}\end{split}\]

Dieselben Formeln werden in der Passiven Transformation verwendet.