Python primeri za gradbeništvo in statične izračune
Python primeri za gradbene inženirje
1. Izračun prostornine stebrov
Spodnja koda izračuna skupno prostornino betonskih stebrov na podlagi seznama dimenzij:
stebri = [
{"id": "A1", "sirina": 0.5, "dolzina": 0.5, "visina": 4.0},
{"id": "A2", "sirina": 0.8, "dolzina": 0.8, "visina": 5.0},
{"id": "B1", "sirina": 0.6, "dolzina": 0.6, "visina": 3.5},
{"id": "B2", "sirina": 1.0, "dolzina": 1.0, "visina": 6.0},
{"id": "C1", "sirina": 0.7, "dolzina": 0.7, "visina": 5.5}
]
Izračun prostornine vsakega stebra v seznamu in seštevek vseh prostornin
skupna_kolicina = sum([s["sirina"] s["dolzina"] s["visina"] for s in stebri])
print(f"Skupna količina potrebnega betona: {skupna_kolicina} m³")
2. Vektorska analiza in rezultanta
Izračun rezultante dveh vektorjev in njune absolutne vrednosti:
import numpy as np
Definicija vektorjev
a = np.array([10, 12])
b = np.array([4, 8])
Izračun rezultante
r = a + b
Izračun absolutne vrednosti (velikosti) rezultante
absolutna_vrednost = np.linalg.norm(r)
print(f"Rezultanta r: {r}")
print(f"Absolutna vrednost ||r||: {absolutna_vrednost:.4f}")
3. Izračun povesa nosilca
Funkcija za določanje povesa nosilca glede na podane fizikalne parametre:
def izracun_povesa(x):
# Podatki naloge v osnovnih SI enotah
L = 6.0 # dolžina nosilca v m
F = 50 * 10**3 # sila v N (50 kN)
E = 210 * 10**9 # prožnostni modul v Pa (210 GPa)
I = 8360 * 10**(-8) # vztrajnostni moment v m^4 (8360 cm^4)
# Preverimo simetrijo za desno polovico nosilca
if x > L / 2:
x_calc = L - x
else:
x_calc = x
# Izračun povesa po podani formuli
w = (F * x_calc / (48 * E * I)) * (3 * L**2 - 4 * x_calc**2)
return w</code></pre>
4. Reševanje sistema enačb (togostna matrika)
Uporaba knjižnice numpy za reševanje matričnih sistemov:
K = np.array([
[10, -3, 0, 0],
[-3, 8, -2, 0],
[0, -2, 7, -2],
[0, 0, -2, 5]
])
F = np.array([22, 20, 40, -6])
Preverjanje rešljivosti sistema z determinanto
Preverjanje rešljivosti sistema z determinanto
det_K = np.linalg.det(K)
if det_K != 0:
u_solve = np.linalg.solve(K, F)
print(f"Pomiki u: {u_solve}")
5. Integracija in določanje težišča
Izračun pritisne sile in težišča s pomočjo numerične integracije (scipy.integrate.quad):
from scipy.integrate import quad
Izračun Q in M neposredno z lambda funkcijo
Izračun Q in M neposredno z lambda funkcijo
Q, = quad(lambda x: 3 * x*2 + 4 x np.cos(np.pi x / 8), 0, 4)
M, = quad(lambda x: x (3 x*2 + 4 x np.cos(np.pi x / 8)), 0, 4)
Globina težišča
Globina težišča
x_T = M / Q
print(f"Pritisk Q: {Q:.2f} kN")
print(f"Statični moment M: {M:.2f} kNm")
print(f"Težišče x_T: {x_T:.2f} m")
serbocroata con un tamaño de 3,61 KB