Tensor-Komponenten

Videos

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

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

Symbole

Winkel

zählt pos. um

zeigt Wink.-pos. v.

relativ zu

\(\varphi\)

\(z=\bar z\)

\((\bar x, \bar y)\)

\((x, y)\)

\(\alpha\)

\(z=\bar z\)

\(\boldsymbol{T}'\)

\(\boldsymbol T\)

Tensor

\((x,y)\)-Komp.

\((\bar x, \bar y)\)-Komp.

\(\boldsymbol T\)

\(\left( T_{xx} , T_{xy}, T_{yy} \right)\)

\(\left(T_{\bar x \bar x}, T_{\bar x\bar y}, T_{\bar y\bar y} \right)\)

\(\boldsymbol T'\)

\(\left( T'_{xx}, T'_{xy}, T'_{yy} \right)\)

nicht definiert

Passive und Aktive Transformation

Passive Transformation

1 Tensor & 2 Bezugssysteme:

  • \(\left(x, y\right)\)-System: Ist gegeben.

  • \(\left(T_{xx}, T_{xy}, T_{yy} \right)\): \(\left(x, y\right)\)-Komponenten des Tensors \(\boldsymbol T\) sind gegeben.


  • \(\left(\bar x, \bar y\right)\)-System: Ist gedreht relativ zum \((x, y)\)-System um den gegebenen Winkel \(\varphi.\)

  • \(\left( T_{\bar x \bar x}, T_{\bar x\bar y}, T_{\bar y\bar y} \right)\): \((\bar x, \bar y)\)-Komponenten des Tensors \(\boldsymbol T\) werden berechnet.

\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\).

Ausführen der Matrix-Multiplikationen und Verwendung der Abkürzungen:

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

führt auf:

\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} \end{align}

Zwei dieser 4 Gleichungen lauten:

\begin{align} \label{trafo_tensor_eq_passive_eqns} \begin{bmatrix} T_{\bar x \bar x} \\ 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} \tag{2} \end{align}

Interpretation

  • Alle Punkte mit Punktkoordinaten \((T_{\bar x \bar x}, T_{\bar x \bar y})\) liegen auf einem Kreis mit Mittelpunkt bei \((\bar{T}, 0 ).\)

  • Für vorgegebenen Winkel \(\varphi\) lässt sich der zugehörigen Punkt auf dem Kreis finden, indem man den Vektor mit den Komponenten \((\tilde{T}, T_{xy} )\) um den Winkel \(2\varphi\) dreht (Aktive Transformation mit \(\alpha = -2 \vaprhi\)).

Tensor-Komponente

Eine skalarwertige Tensor-Komponente \(T_{ef}\) ist der Anteil eines Tensors \(\boldsymbol T\) in einer bestimmten „Richtung“. Diese „Richtung“ wird mit zwei Einheitsvektoren \(\boldsymbol e\) und \(\boldsymbol f\) beschrieben. Und es gilt:

\[T_{ef} = \boldsymbol e \cdot \boldsymbol T \cdot \boldsymbol f\]

Durch die zuvor definierte Passive Transformation ist \(T_{ef}\) unabhängig vom dem zur Berechnung von \(T_{ef}\) verwendeten Bezugssystem. Mit Matrix-Multiplikation gilt:

\[\begin{split}T_{ef} &= \begin{bmatrix} e_x & e_y \end{bmatrix} \begin{bmatrix} T_{xx} & T_{xy} \\ \mathsf{sym} & T_{yy} \end{bmatrix} \begin{bmatrix} f_x \\ f_y \end{bmatrix} \\ &= \begin{bmatrix} e_{\bar x} & e_{\bar y} \end{bmatrix} \begin{bmatrix} T_{\bar x \bar x} & T_{\bar x\bar y} \\ \mathsf{sym} & T_{\bar y\bar y} \end{bmatrix} \begin{bmatrix} f_{\bar x} \\ f_{\bar y} \end{bmatrix}\end{split}\]

mit \((e_x, e_y)\)-Komponenten von \(\boldsymbol e\) und \((e_{\bar x}, e_{\bar y})\) als \((\bar x,\bar y)\)-Komponenten von \(\boldsymbol e\) sowie mit \((f_x, f_y)\) als \((x,y)\)-Komponenten von \(\boldsymbol f\) und \((f_{\bar x}, f_{\bar y})\) als \((\bar x,\bar y)\)-Komponenten von \(\boldsymbol f\).

Zeigt \(\boldsymbol e\) z.B. in Richtung \(\bar x\) und zeigt \(\boldsymbol f\) z.B. in Richtung \(\bar y\) und sind \(\bar x\) bzw. \(\bar y\) wie oben um \(\varphi\) relativ zu \(x\) bzw. \(y\) gedreht: Dann gilt:

\[\begin{split}T_{ef} &= \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} \\ &= \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} T_{\bar x \bar x} & T_{\bar x\bar y} \\ \mathsf{sym} & T_{\bar y\bar y} \end{bmatrix} \begin{bmatrix} 0 \\ 1 \end{bmatrix} \\ &= T_{\bar x\bar y}\end{split}\]

Eigenschaften der Passiven Transformation siehe hier.

Aktive Transformation

2 Tensoren & 1 Bezugssystem:

  • \(\left(x, y\right)\)-System: Ist gegeben.

  • \(\left(T_{xx}, T_{xy}, T_{yy} \right)\): \(\left(x, y\right)\)-Komponenten des Tensors \(\boldsymbol T\) sind gegeben.


  • Tensor \(\boldsymbol T'\): Ist gedreht relativ zum Tensor \(\boldsymbol T\) um den gegebenen Winkel \(\alpha.\)

  • \(\left(T'_{xx}, T'_{xy}, T'_{yy} \right)\): \((x, y)\)-Komponenten des Tensors \(\boldsymbol T'\) werden berechnet.

\[\begin{split}\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}\end{split}\]

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\).

Zusammenhang zwischen Passiver und Aktiver Transformation

\(\alpha=-\varphi\) bzw. gleichbedeutend \(\varphi = - \alpha\) liefert:

\[\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 dabei aber verschiedene Bedeutungen.

180-Grad-Periodizität

Passive und Aktive Transformation sind definiert für jeden beliebigen Winkel \(\varphi\) bzw. \(\alpha\). 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) \\ \\ T'_{xx}(\alpha\pm n \cdot 180^\circ) &= T'_{xx}(\alpha) \\ T'_{xy}(\alpha\pm n \cdot 180^\circ) &= T'_{xy}(\alpha) \\ T'_{yy}(\alpha\pm n \cdot 180^\circ) &= T'_{yy}(\alpha) \\\end{split}\]

Beispiele:

\[\begin{split}T_{\bar x \bar y}(100^\circ) &= T_{\bar x \bar y}(-80^\circ) \\ T'_{yy}(0^\circ) &= T'_{yy}(180^\circ)\end{split}\]

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

# ---

# LateX:
kwargs = {}
kwargs["mat_str"] = "bmatrix"
kwargs["mat_delim"] = ""

# ---

# Output precision:
prec = "0.01"

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()

Txx, Txy, Tyy = -1, 4, 5
# Txx, Txy, Tyy = 13, 4, 7

pprint("\nT:")
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("\nT\u0304:")
tmp = R*T*R.transpose()
tmp = iso_round(tmp,prec)
pprint(tmp)

alpha = 10 * deg
R = get_R(alpha, passive=False)
pprint("\nT':")
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)
  
T:
⎡-1  4⎤
⎢     ⎥
⎣4   5⎦
                          
Passive Transformation: φ:
10.00°
  
T̄:
⎡0.55  4.78⎤
⎢          ⎥
⎣4.78  3.45⎦
                         
Active Transformation: α:
10.00°
   
T':
⎡-2.19  2.73⎤
⎢           ⎥
⎣2.73   6.19⎦
   
Tm:
2.00
  
r:
5.00
     
Tx̄x̄₁:
7.00
         
φ₁ / deg:
63.43

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

Web-App

Anleitung

  • 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\) oder \(-\alpha\) (jeweils in Grad) einstellen.

  • Im Diagramm die Komponenten \((T_{\bar x \bar x}, T_{\bar x\bar y})\) oder \((T'_{xx}, T'_{xy})\) ablesen.

Tȳȳ gegenüber 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)\]

Aktive Transformation: Vorzeichen beachten

Auf dem Schieberegler stellt man ein: \(-\alpha / \mathrm{deg},\) also minus Alpha in Grad. D.h. für eine Aktive Transformation mit \(\alpha = 30^\circ\), muss der Schieberegler stehen bei \(-30\), denn:

\[\alpha = 30^\circ \quad \Leftrightarrow \quad -\alpha \,/ \, ^\circ = -30\]

Andere Ebenen

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}\]

3D

Bemerkung

Für 3D siehe 3D-Drehungen.