Egy reaktor-kinetikai modellt (PRKE) valósít meg, a maghasadás láncreakciójának időbeli alakulását, a hőmérséklet-visszacsatolást és a szabályzórudak hatását modellezi.
------------------
import numpy as np
import matplotlib.pyplot as plt
# 1. Állandók és kezdeti paraméterek
k_eff = 1.05 # Hatásos szorzási tényező (kissé szuperkritikus)
beta = 0.0065 # Késleltetett neutronok hányada (urán üzemanyag)
lambda_n = 0.08 # Késleltetett neutronok bomlási állandója (1/s)
Prompt_gen = 0.00001 # Neutron generációs idő (s)
c_initial = beta / Prompt_gen # Kezdeti késleltetett neutron prekurzor koncentráció
P_0 = 100.0 # Kezdeti termikus teljesítmény (MW)
# Hőmérsékleti visszacsatolási együttható és hűtési paraméter
alpha_temp = -0.002 # Reaktivitási hőmérsékleti együttható (1/K)
T_0 = 300.0 # Hűtőközeg kezdeti hőmérséklete (K)
heat_capacity = 0.5 # Hőkapacitás paraméter
cooling_rate = 0.1 # Hűtési ráta
# 2. Időbeli paraméterek
t_start = 0.0
t_end = 60.0
dt = 0.1
time_steps = int((t_end - t_start) / dt)
# Adattárolók a vizualizációhoz
time_array = np.zeros(time_steps)
power_array = np.zeros(time_steps)
temp_array = np.zeros(time_steps)
# Kezdeti értékek beállítása
P = P_0
C = c_initial
T = T_0
# 3. Szimulációs ciklus (Euler-módszer)
for i in range(time_steps):
time_array[i] = t_start + i * dt
power_array[i] = P
temp_array[i] = T
rho = (k_eff - 1.0) / k_eff
rho_total = rho + alpha_temp * (T - T_0)
dPdt = ((rho_total - beta) / Prompt_gen) * P + lambda_n * C
dCdt = (beta / Prompt_gen) * P - lambda_n * C
dTdt = heat_capacity * P - cooling_rate * (T - T_0)
P += dPdt * dt
C += dCdt * dt
T += dTdt * dt
# 4. Eredmény kiírása
print("Szimuláció végeredménye:")
print(f"Végső teljesítmény: {P:.3f} MW")
print(f"Végső hőmérséklet: {T:.3f} K")
print(f"Végső prekurzor koncentráció: {C:.3f}")
print(f"Maximális teljesítmény: {np.max(power_array):.3f} MW")
print(f"Maximális hőmérséklet: {np.max(temp_array):.3f} K")
# 5. Vizualizáció
fig, ax1 = plt.subplots(figsize=(10, 6))
color = 'tab:red'
ax1.set_xlabel('Idő (s)')
ax1.set_ylabel('Reaktor Teljesítmény (MW)', color=color)
ax1.plot(time_array, power_array, color=color, linewidth=2)
ax1.tick_params(axis='y', labelcolor=color)
ax2 = ax1.twinx()
color = 'tab:blue'
ax2.set_ylabel('Hűtőközeg Hőmérséklet (K)', color=color)
ax2.plot(time_array, temp_array, color=color, linestyle='--', linewidth=2)
ax2.tick_params(axis='y', labelcolor=color)
plt.title('Atomreaktor tranziens szimuláció (Teljesítmény és Hőmérséklet)')
fig.tight_layout()
plt.grid(True)
plt.show()
......................
Szimuláció végeredménye:
Végső teljesítmény: nan MW
Végső hőmérséklet: nan K
Végső prekurzor koncentráció: nan
Maximális teljesítmény: nan MW
Maximális hőmérséklet: nan K
Nincsenek megjegyzések:
Megjegyzés küldése