----------
import numpy as np
import matplotlib.pyplot as plt
# --- FIZIKAI ÉS PLANETÁRIS KONSTANSOK ---
G = 6.67430e-11 # Gravitációs állandó (m^3 kg^-1 s^-2)
M_EARTH = 5.972e24 # Föld tömege (kg)
R_EARTH = 6371000 # Föld sugara (m)
# --- LÉGKÖRI PARAMÉTEREK ---
RHO_0 = 1.225 # Tengerszinti levegősűrűség (kg/m^3)
H_SCALE = 8500 # Skálamagasság (m)
# --- VAS-ASZTEROIDA PARAMÉTEREK (1 km átmérő) ---
INITIAL_DIAMETER = 1000
RADIUS_ASTEROID = INITIAL_DIAMETER / 2
DENSITY_ASTEROID = 7800 # Vas/Nikkel sűrűség (kg/m^3)
C_D = 1.2 # Légellenállási tényező
C_H = 0.01 # Hőátadási hatásfok
Q_ABLATION = 8.0e6 # Ablációs hő vashoz (J/kg)
initial_mass = (4/3) * np.pi * (RADIUS_ASTEROID**3) * DENSITY_ASTEROID
# --- KEZDETI FELTÉTELEK (13 km-es perigeum) ---
h_perigee = 13000 # 13 km (m)
r_perigee = R_EARTH + h_perigee
v_escape = np.sqrt(2 * G * M_EARTH / r_perigee)
v_perigee = v_escape + 4000 # Sebesség a perigeumban (~15.2 km/s)
# Pálya indítása a légkör széléről (100 km-es magasság)
h_start = 100000
r_start = R_EARTH + h_start
E = 0.5 * v_perigee**2 - (G * M_EARTH / r_perigee)
L = r_perigee * v_perigee
p = L**2 / (G * M_EARTH)
e = np.sqrt(1 + (2 * E * L**2) / (G * M_EARTH)**2)
cos_theta = (p / r_start - 1) / e
theta_start = -np.arccos(cos_theta)
x0 = r_start * np.cos(theta_start)
y0 = r_start * np.sin(theta_start)
v_radial = (G * M_EARTH * e * np.sin(theta_start)) / L
v_tangential = L / r_start
vx0 = v_radial * np.cos(theta_start) - v_tangential * np.sin(theta_start)
vy0 = v_radial * np.sin(theta_start) + v_tangential * np.cos(theta_start)
state_0 = np.array([x0, y0, vx0, vy0, initial_mass])
# Kezdeti belépési sebességvektor szöge (radiánban)
initial_angle = np.arctan2(vy0, vx0)
# --- DIFFERENCIÁLEGYENLET ---
def physics_with_ablation_derivs(t, state):
x, y, vx, vy, m = state
r = np.sqrt(x**2 + y**2)
h = r - R_EARTH
if m <= 0 or h < 0:
return np.zeros(5)
r_ast = (3 * m / (4 * np.pi * DENSITY_ASTEROID))**(1/3)
cross_section = np.pi * (r_ast**2)
ax_g = -G * M_EARTH * x / r**3
ay_g = -G * M_EARTH * y / r**3
rho = RHO_0 * np.exp(-h / H_SCALE)
v_mag = np.sqrt(vx**2 + vy**2)
drag_force = 0.5 * rho * v_mag**2 * C_D * cross_section
a_drag = drag_force / m
ax_d = -a_drag * (vx / v_mag) if v_mag > 0 else 0
ay_d = -a_drag * (vy / v_mag) if v_mag > 0 else 0
Q_in = 0.5 * rho * (v_mag**3) * C_H * cross_section
dm_dt = -Q_in / Q_ABLATION
return np.array([vx, vy, ax_g + ax_d, ay_g + ay_d, dm_dt])
def rk4_step(f, t, state, dt):
k1 = f(t, state)
k2 = f(t + dt/2, state + k1 * dt/2)
k3 = f(t + dt/2, state + k2 * dt/2)
k4 = f(t + dt, state + k3 * dt)
return state + (dt / 6) * (k1 + 2*k2 + 2*k3 + k4)
# --- SZIMULÁCIÓ FUTTATÁSA ---
dt = 0.05
current_state = state_0.copy()
trajectory = [current_state]
for _ in range(6000):
current_state = rk4_step(physics_with_ablation_derivs, 0, current_state, dt)
trajectory.append(current_state)
r_curr = np.sqrt(current_state[0]**2 + current_state[1]**2)
if r_curr < R_EARTH or current_state[4] <= 0:
break
if r_curr > r_start and len(trajectory) > 500:
break
trajectory = np.array(trajectory)
x_coords = trajectory[:, 0] / 1000
y_coords = trajectory[:, 1] / 1000
masses = trajectory[:, 4]
altitudes = (np.sqrt(trajectory[:, 0]**2 + trajectory[:, 1]**2) - R_EARTH) / 1000
# --- PÁLYAELHAJLÁS KISZÁMÍTÁSA ---
v_xf, v_yf = trajectory[-1, 2], trajectory[-1, 3]
final_angle = np.arctan2(v_yf, v_xf)
deflection_rad = np.abs(final_angle - initial_angle)
deflection_deg = np.degrees(deflection_rad) % 360
if deflection_deg > 180:
deflection_deg = 360 - deflection_deg
mass_lost_tons = (initial_mass - masses[-1]) / 1000
mass_lost_pct = (mass_lost_tons * 1000 / initial_mass) * 100
# --- VIZUALIZÁCIÓ KETTŐS DIAGRAMMAL ---
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 7))
# 1. Pályagrafikon ritkított irányvektorokkal
ax1.plot(x_coords, y_coords, color='darkorange', linewidth=2.5, label='Vas-aszteroida pálya')
ax1.add_patch(plt.Circle((0, 0), R_EARTH / 1000, color='royalblue', alpha=0.9, label='Föld felszín'))
# Sebességvektorok kirajzolása (minden 150. pontnál az átláthatóságért)
skip = 150
ax1.quiver(x_coords[::skip], y_coords[::skip],
trajectory[::skip, 2], trajectory[::skip, 3],
color='red', scale=2e5, width=0.005, label='Irányvektorok')
ax1.set_aspect('equal', 'box')
ax1.set_xlabel('X pozíció (km)')
ax1.set_ylabel('Y pozíció (km)')
ax1.set_title('Pályaelhajlás (Gravitációs parittya + Légköri fékezés)')
ax1.grid(True, alpha=0.3)
ax1.set_xlim(-150, 150)
ax1.set_ylim(R_EARTH/1000 - 20, R_EARTH/1000 + 120)
ax1.legend(loc='upper right')
# 2. Tömegveszteség grafikona
ax2.plot(altitudes, masses / 1e9, color='silver', linewidth=2.5, label='Vas tömeg')
ax2.set_xlabel('Magasság a felszín felett (km)')
ax2.set_ylabel('Aszteroida tömege (Millió tonna)')
ax2.set_title('Vas-aszteroida ablációja')
ax2.grid(True, linestyle=':')
ax2.invert_xaxis()
ax2.legend()
plt.tight_layout()
# Eredmények kiírása a konzolra
print(f"--- VAS-ASZTEROIDA EREDMÉNYEK ---")
print(f"Kezdeti tömeg: {initial_mass/1e9:.2f} millió tonna")
print(f"Elpárolgott vasmennyiség: {mass_lost_tons:.2f} tonna ({mass_lost_pct:.4f}%)")
print(f"Pályaelhajlás szöge (Deflection Angle): {deflection_deg:.2f}°")
plt.show()
-------------
--- VAS-ASZTEROIDA EREDMÉNYEK ---
Kezdeti tömeg: 4084.07 millió tonna
Elpárolgott vasmennyiség: 20217745.17 tonna (0.4950%)
Pályaelhajlás szöge (Deflection Angle): 6.12°
Ha 100 kilométeres magasság alatt halad el, egy 1 kilométer átmérőjű vas-nikkel aszteroidának rendkívül közel, lényegében a földi légkörön belül (kb. 100 kilométeres magasság alatt) kell elhaladnia ahhoz, hogy közvetlen fizikai pusztítást okozzon a felszínen anélkül, hogy ténylegesen becsapódna. Ha ennél távolabb – például több ezer vagy tízezer kilométerre – halad el, a világűr vákuumja miatt semmilyen közvetlen felszíni pusztítást nem képes végezni (a gravitációs árapály-hatása egy ekkora tömegnek elhanyagolható).A pusztítás különböző zónái a távolság függvényében a következők:
Közvetlen atmoszférikus pusztítás (0 – 100 km a felszíntől)Ha az aszteroida belép a légkörbe (amely nagyjából 100 km-es magasságig tart), a hiperszonikus sebessége (jellemzően 15–30 km/s, azaz 54 000–108 000 km/óra) miatt katasztrofális hatásokat vált ki:Hősugárzás (Termikus löket): A sűrűsödő levegő és a súrlódás miatt az aszteroida előtti gázfelhő több tízezer fokra hevül. Ez a gigantikus, izzó plazmagömb mindent felperzsel a felszínen, ami alatt elhalad, erdőtüzeket és tömeges égési sérüléseket okozva akár több száz kilométeres sávban.Lökéshullám és hangrobbanás: Egy 1 km-es szilárd vasdarab ekkora sebességnél brutális atmoszférikus lökéshullámot generál. Ha mindössze 30–50 km-es magasságban száguld el, a földfelszínt elérő túlnyomás egész városokat képes letarolni, épületeket romba dönteni és fákat kicsavarni.Súroló becsapódás (Grazing impact): Ha a pályája annyira alacsony, hogy érinti a sűrűbb légrétegeket, a fellépő óriási aerodinamikai nyomás miatt darabokra törhet, és a törmelék záporként csapódik a Földbe, miközben a fő tömeg visszatér az űrbe.
A kritikus határ: A Roche-határ (kb. 5 000 – 10 000 km)A Föld és az aszteroida között fellépő gravitációs árapály-erők ezen a távolságon belül válnak elég erőssé ahhoz, hogy hatással legyenek az égitestekre. Egy sűrű, szilárd vas-nikkel aszteroida szerkezetileg nagyon erős, így a Föld gravitációja nem fogja darabokra szaggatni (nem úgy, mint egy laza kő- vagy jégaszteroidát).A Földre gyakorolt hatás: Ezen a távolságon az aszteroida gravitációja még túl gyenge ahhoz, hogy árapály-hullámokat (szökőárakat) vagy földrengéseket indítson el a Földön.ÖsszegzésEgy 1 km-es vasaszteroida esetében a világűrben történő "közeli elhaladás" (legyen az akár a Hold távolságán belül, 100 000 km-re) teljesen ártalmatlan a felszínre nézve. A valódi pusztításhoz be kell lépnie a földi légkörbe (100 km alá), ahol a hangsebesség többszörösével száguldva a hősugárzás és a lökéshullámok globális katasztrófát ugyan nem, de a röppálya alatti régióban teljes megsemmisülést okoznának.
A Föld és egy 2 km-es szilárd, golyószerű, merev vas-nikkel aszteroida esetében a Roche-határ a Föld középpontjától mérve kb. 7 150 km-re, míg a felszíntől számítva kb. 780 km-es magasságban húzódik.
A számítás részletei a következők:
A merev testekre vonatkozó Roche-határ képleteMivel a feladat kikötötte, hogy az aszteroida egy szilárd, merev test (nem pedig folyékony vagy laza törmelékhalom), a merev testekre vonatkozó klasszikus képletet kell alkalmazni: A Roche-határ független az aszteroida méretétől, kizárólag a két égitest sűrűségének aránya és a Föld sugara határozza meg.
Ha egy űrbeli objektum (például egy aszteroida vagy meteoid) 780 km-es magasságban halad el a Föld mellett és nem lép be a sűrű légkörbe, a Föld felszínén semmilyen közvetlen fizikai kárt vagy katasztrófát nem okoz. Ez a magasság már hivatalosan is a világűr része (Alacsony Föld körüli pálya – LEO). Bár a felszínen biztonságban lennénk, egy ilyen közeli elhaladásnak mégis lennének következményei: például veszély a műholdakra: A 780 km-es magasság egy rendkívül zsúfolt űrsáv. Itt keringenek az időjárási, távközlési és földmegfigyelő műholdak. Az elhaladó objektum összeütközhet a drága űreszközökkel vagy az ott lévő űrszeméttel. Pályamódosulás a gravitáció miatt: A Föld erős tömegvonzása miatt az elhaladó objektum pályája drasztikusan meggörbül. A bolygónk lényegében parittyaként lökheti tovább az űrbe, teljesen új irányvektorba állítva azt. 134km alatt egy 2km átmérőjü merev vas objektum, vad dolgokra lenne képes.
Nincsenek megjegyzések:
Megjegyzés küldése