Plattenberechnung mit Fourier < Bauingenieurwesen < Ingenieurwiss. < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 09:34 Di 11.01.2011 | Autor: | Ballers |
Aufgabe | Erstellen sie mit MathCad einen Berechnungsalgorithmus zur Berechnung einer allseitig frei drehbar gelagerten Rechteckplatte mit voller bzw. partieller Flächenbelastung. |
Zu erst einmal hallo an alle, bin neu hier und hoffe auf eure Unterstützung. Zu dieser Aufgabe haben wir als Grundlage eine Phyton -Datei bekommen, da ich von diesem Programm keine Ahnung habe, hoffe ich ihr könnt mir den Quelltext mal in normalen Formeln bzw. Ausdrücken wiedergeben, danke schonmal.
Hier der Quelltext:
# Plattenabmessungen (m)
a = 7.00
b = 6.00
h = 0.20
# Betrag der Fldchenlast (kN/m2)
p = 20
# Mittelpunkt der Fldchenlast (m)
xi = 3.50
eta = 3.00
# Ausdehnung der Fldchenlast (m)
u = 7.00
v = 6.00
# Elastizitdtsmodul (kN/m2), Querdehnzahl
E = 28300 * 1000
nu = 0.2
# Anzahl der Reihenglieder (1...1000)
mmax = 100
nmax = 100
# Punkt f|r die Ausgabe (m)
xp = 3.50
yp = 3.00
import sys
try:
a, b, h, p, xi, eta, u, v, E, nu, xp, yp = [mm] \
[/mm]
map(float, (a, b, h, p, xi, eta, u, v, E, nu, xp, yp))
mmax, nmax = map(int, (mmax, nmax))
assert a > 0. and b > 0. and h > 0. and xi > 0. and eta > 0. and [mm] \
[/mm]
u > 0. and xi - .5*u >= 0. and xi + .5*u <= a and [mm] \
[/mm]
v > 0. and eta - .5*v >= 0. and eta + .5*v <= b and [mm] \
[/mm]
E > 0. and nu >= 0. and nu <= .5 and [mm] \
[/mm]
mmax > 0 and mmax <= 1000 and nmax > 0 and nmax <= 1000 and [mm] \
[/mm]
xp >= 0. and xp <= a and yp >= 0. and yp <= b
except:
sys.exit("Fehler in der Eingabe")
w = mx = my = mxy = 0.
from math import pi, sin, cos, atan2, fabs, sqrt
for m in xrange(1, mmax+1):
tx = m*pi/a
for n in xrange(1, nmax+1):
ty = n*pi/b
qmn = sin(tx*xi) * sin(.5*tx*u) * sin(ty*eta) * sin(.5*ty*v)
qmn /= ((m/a)**2 + (n/b)**2)**2
rmn = qmn * sin(tx*xp) * sin(ty*yp)
w += rmn / m / n
mx += rmn * m / n
my += rmn * n / m
mxy += qmn * cos(tx*xp) * cos(ty*yp)
D = E*h**3/12./(1. - nu**2)
w *= 16.*p / pi**6 / D
mx *= 16.*p / pi**4 / a**2
my *= 16.*p / pi**4 / b**2
mxy *= 16.*p / pi**4 / a / b
[mm] m_x [/mm] = (mx + nu*my)
[mm] m_y [/mm] = (my + nu*mx)
m_xy = - (1. - nu) * mxy
if fabs(m_xy) < [mm] 1e-6*(fabs(m_x)+fabs(m_y)): [/mm] # m_xy ~ 0
if [mm] m_x [/mm] >= [mm] m_y:
[/mm]
phi = 0.
m1 = [mm] m_x
[/mm]
m2 = [mm] m_y
[/mm]
else:
phi = .5*pi
m1 = [mm] m_y
[/mm]
m2 = [mm] m_x
[/mm]
else:
t = [mm] m_x [/mm] - [mm] m_y
[/mm]
if t == 0.: # tan(2*phi) -> oo
phi = .25*pi
else:
phi = .5*atan2(2.*m_xy, t)
m1 = [mm] .5*(m_x [/mm] + [mm] m_y [/mm] + sqrt(t**2 + 4.*m_xy**2))
m2 = [mm] .5*(m_x [/mm] + [mm] m_y [/mm] - sqrt(t**2 + 4.*m_xy**2))
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:21 Sa 15.01.2011 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|