2.2.E
![../../../_images/2.2.E.png](../../../_images/2.2.E.png)
Gegebene Größen: Die \((y,z)\)-Komponenten des Flächenträgheitstensors. Links unten: Passive Transformation. Rechts unten: Aktive Transformation.
Verwenden Sie als dimensionslose Tensor-Komponenten die Flächenträgheitstensor-Komponenten in \(\mathrm{cm}^4\) (Zentimeter hoch 4), also:
Untersuchen Sie die Struktur. Gehen Sie wie folgt vor.
a) Mohrscher Kreis
Zeichnen Sie den Mohrschen Kreis.
Verwendung der \((y,z)\)-Ebene statt der \((x,y)\)-Ebene wie beschrieben in Transformation von Tensor-Komponenten.Lösung
b) Passive und Aktive Transformation
Füllen Sie die Tabellen aus. Und zwar mit Zahlen gerundet auf Rundestellenwert \(0{,}01\).
\(\varphi\) |
\(T_{\bar y \bar y}\) |
\(T_{\bar y \bar z}\) |
\(T_{\bar z \bar z}\) |
---|---|---|---|
\(-20^\circ\) |
|||
\(0^\circ\) |
|||
\(20^\circ\) |
|||
\(90^\circ\) |
|||
\(180^\circ\) |
\(\alpha\) |
\(T'_{yy}\) |
\(T'_{yz}\) |
\(T'_{zz}\) |
---|---|---|---|
\(-20^\circ\) |
|||
\(0^\circ\) |
|||
\(20^\circ\) |
|||
\(90^\circ\) |
|||
\(180^\circ\) |
\(\varphi\) \(T_{\bar y \bar y}\) \(T_{\bar y \bar z}\) \(T_{\bar z \bar z}\) \(-20^\circ\) \(788{,}2\) \(208{,}26\) \(291{,}8\) \(0^\circ\) \(864\) \(0\) \(216\) \(20^\circ\) \(788{,}2\) \(-208{,}26\) \(291{,}8\) \(90^\circ\) \(216\) \(0\) \(864\) \(180^\circ\) \(864\) \(0\) \(216\) \(\alpha\) \(T'_{yy}\) \(T'_{yz}\) \(T'_{zz}\) \(-20^\circ\) \(788{,}2\) \(-208{,}26\) \(291{,}8\) \(0^\circ\) \(864\) \(0\) \(216\) \(20^\circ\) \(788{,}2\) \(208{,}26\) \(291{,}8\) \(90^\circ\) \(216\) \(0\) \(864\) \(180^\circ\) \(864\) \(0\) \(216\)Lösung
Nachfolgend ein Programm, dass Sie ausführen können: Auf dem PC z.B. mit Anaconda. Im Browser (online) in drei Schritten: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code als Python-Notebook einfügen z.B. auf: JupyterLite oder JupyterLab oder Play: Ausführen. Statt SymPy lieber anderes CAS (Computeralgebrasystem) verwenden? Eine Auswahl verschiedener CAS gibt es hier.SymPy
# -*- coding: utf-8 -*-
from sympy.physics.units import *
from sympy import *
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
# ---
prec = "0.1"
def get_R(angle, passive=True):
c, s = cos(angle), sin(angle)
R = Matrix([[c, s],[-s, c]])
if passive == True:
pprint("\nPassive Transformation")
pprint("φ:")
tmp = angle
tmp /= deg
tmp = iso_round(tmp,prec)
pprint(tmp)
return R
else:
pprint("\nActive Transformation")
pprint("α:")
tmp = angle
tmp /= deg
tmp = iso_round(tmp,prec)
pprint(tmp)
return R.transpose()
# For output only:
Tbyy, Tbyz, Tbzz = var("Ty\u0304y\u0304, Ty\u0304z\u0304, Tz\u0304z\u0304")
Tpyy, Tpyz, Tpzz = var("T'yy, T'yz, T'zz")
Tb = Matrix([[Tbyy, Tbyz],[Tbyz, Tbzz]])
Tp = Matrix([[Tpyy, Tpyz],[Tpyz, Tpzz]])
def round(x):
return iso_round(x,prec)
# ---
b, h = 6 *cm, 12 *cm
Iyy = b*h**3/12
Izz = h*b**3/12
Tyy, Tzz = Iyy / cm**4, Izz / cm**4
T = Matrix([[Tyy, 0], [0, Tzz]])
pprint(T)
phi = 5 * deg
R = get_R(phi, passive=True)
pprint(Tb)
tmp = R*T*R.transpose()
tmp = tmp.applyfunc(round)
pprint(tmp)
alpha = 5 * deg
R = get_R(alpha, passive=False)
pprint(Tp)
tmp = R*T*R.transpose()
tmp = tmp.applyfunc(round)
pprint(tmp)
⎡864 0 ⎤
⎢ ⎥
⎣ 0 216⎦
Passive Transformation
φ:
5.0
⎡Tȳȳ Tȳz̄⎤
⎢ ⎥
⎣Tȳz̄ Tz̄z̄⎦
⎡859.1 -56.3⎤
⎢ ⎥
⎣-56.3 220.9⎦
Active Transformation
α:
5.0
⎡T'yy T'yz⎤
⎢ ⎥
⎣T'yz T'zz⎦
⎡859.1 56.3 ⎤
⎢ ⎥
⎣56.3 220.9⎦