Python primeri za gradbeništvo in statične izračune

Enviado por Anónimo y clasificado en Física

Escrito el en serbocroata con un tamaño de 3,61 KB

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

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

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

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

Entradas relacionadas: