2026. június 25., csütörtök

Friedlander-egyenleten alapuló Nukleáris robbanáshullám antropogén ​​hatásának numerikus szimulációja


Kedves Diákjaim! Ez a program a sugárzás-hidrodinamikai törvényeken és a módosított Friedlander-egyenleten alapuló Nukleáris robbanáshullám antropogén szerkezetek védőelemeire gyakorolt ​​hatásának numerikus szimulációját modellezi. A nukleáris robbanáshullám antropogén szerkezetek védőelemeire gyakorolt ​​hatásának numerikus szimulációja, detonáció és robbanáshullámok terjedésének szimulációja. A modell a légköri nyomás változását, a lökéshullám érkezési idejét és a csúcs-túlnyomást számítja ki különböző távolságokban egy 20 Megatonnás robbanás esetén.A szimuláció a megadott robbanási energiát (TNT egyenérték) és a távolságot használja, majd az alábbi formulák alapján modellezi a nyomásváltozást:A matematikai háttérA csúcs-túlnyomás (\(P_{so}\)) közelítése a Sach-féle skálázási törvény és Brode egyenletei alapján:


-----------
import numpy as np
import matplotlib.pyplot as plt

# Kapott adatok
MEGATON = 20.0
ENERGY_KT = MEGATON * 1000.0
P_ATM = 101325.0

def scaled_distance(r, w):
    return r / (w ** (1.0 / 3.0))

def peak_overpressure(z):
    if z < 1.0:
        return 0.0
    p_so = 0.67 * (1.0 / z) + 0.90 * (1.0 / z**2) - 0.16 * (1.0 / z**3)
    return p_so * P_ATM

def positive_phase_duration(w, z):
    return (w ** (1.0 / 3.0)) * (0.001 * z)

def friedlander_equation(t, P_so, t_p, b):
    if t < 0 or t > t_p:
        return 0.0
    return P_so * (1.0 - (t / t_p)) * np.exp(-b * (t / t_p))

# Kapott távolságok
distances = [5000, 10000, 20000]
time_steps = np.linspace(0, 30, 1000)

for r in distances:
    z = scaled_distance(r, ENERGY_KT)
    P_so = peak_overpressure(z)

    print(f"\nTávolság: {r/1000:.1f} km")
    print(f"Skálázott távolság: {z:.3f}")

    if P_so > 0:
        t_p = positive_phase_duration(ENERGY_KT, z)
        b = 1.5
        pressure_wave = [friedlander_equation(t, P_so, t_p, b) for t in time_steps]
        max_pressure = max(pressure_wave)

        print(f"Csúcs túlnyomás: {P_so/1000:.2f} kPa")
        print(f"Pozitív fázis időtartama: {t_p:.4f} s")
        print(f"Maximális érték a görbén: {max_pressure/1e6:.6f} MPa")
    else:
        print("A modell szerint itt nincs érdemi túlnyomás.")

print("\Kapott adatokkal végzett szimuláció kész.")
------------
Távolság: 5.0 km
Skálázott távolság: 184.202
Csúcs túlnyomás: 0.37 kPa
Pozitív fázis időtartama: 5.0000 s
Maximális érték a görbén: 0.000371 MPa

Távolság: 10.0 km
Skálázott távolság: 368.403
Csúcs túlnyomás: 0.18 kPa
Pozitív fázis időtartama: 10.0000 s
Maximális érték a görbén: 0.000185 MPa

Távolság: 20.0 km
Skálázott távolság: 736.806
Csúcs túlnyomás: 0.09 kPa
Pozitív fázis időtartama: 20.0000 s
Maximális érték a görbén: 0.000092 MPa

A kapott adatokkal végzett szimuláció kész.
--------------
Na ez már a tudományos kutatás kategóriája
--------------

Nincsenek megjegyzések:

Megjegyzés küldése