M .task/backlog.data M .task/completed.data M .task/pending.data M .task/undo.data A Class_Work/nuce2101/exam2/NUCE2101_SABO/Submission.pdf A Class_Work/nuce2101/exam2/NUCE2101_SABO/problem1.py A Class_Work/nuce2101/exam2/NUCE2101_SABO/problem1_equal_loading.png A Class_Work/nuce2101/exam2/NUCE2101_SABO/problem1_unequal_loading.png
100 lines
3.6 KiB
Python
100 lines
3.6 KiB
Python
import numpy as np
|
||
import matplotlib.pyplot as plt
|
||
|
||
# Problem 4: PWR Power Increase Transient (25% → 50% Steam Load)
|
||
|
||
print("=" * 70)
|
||
print("Problem 4: PWR Power Increase Transient")
|
||
print("=" * 70)
|
||
|
||
# Given Initial Conditions (25% power steady state)
|
||
T_ave_initial = 500 # °F - Average temperature
|
||
T_h_initial = 510 # °F - Hot leg temperature
|
||
T_c_initial = 490 # °F - Cold leg temperature
|
||
P_initial = 25 # % - Initial power level
|
||
P_final = 50 # % - Final power level
|
||
|
||
print("\n--- Initial Conditions (25% Power) ---")
|
||
print(f"T_ave = {T_ave_initial} °F")
|
||
print(f"T_h = {T_h_initial} °F")
|
||
print(f"T_c = {T_c_initial} °F")
|
||
print(f"Power = {P_initial}%")
|
||
|
||
# Calculate initial ΔT across core
|
||
DeltaT_initial = T_h_initial - T_c_initial
|
||
print(f"ΔT across core = {DeltaT_initial} °F")
|
||
|
||
print("\n" + "=" * 70)
|
||
print("Part A: Chronological Physical Impacts")
|
||
print("=" * 70)
|
||
|
||
print("\n" + "=" * 70)
|
||
print("Part B: Final State Comparison")
|
||
print("=" * 70)
|
||
|
||
# For a PWR at steady state:
|
||
# Power ∝ mass flow rate × Cp × ΔT
|
||
# If flow rate is constant (no pump speed change):
|
||
# P_new / P_old = ΔT_new / ΔT_old
|
||
|
||
# Calculate new ΔT
|
||
DeltaT_final = DeltaT_initial * (P_final / P_initial)
|
||
print(f"\nΔT calculation:")
|
||
print(f"ΔT_initial = {DeltaT_initial} °F at {P_initial}% power")
|
||
print(f"ΔT_final = ΔT_initial × (P_final/P_initial)")
|
||
print(f"ΔT_final = {DeltaT_initial} × ({P_final}/{P_initial}) = {DeltaT_final} °F")
|
||
|
||
# Estimate final temperatures
|
||
# Assume T_ave returns to approximately initial value (no automatic control,
|
||
# but moderator feedback will drive it back toward equilibrium)
|
||
# This is a simplification - in reality, T_ave might be slightly different
|
||
|
||
# Method 1: Assume T_ave = constant (strong moderator feedback)
|
||
T_ave_final_method1 = T_ave_initial
|
||
T_h_final_method1 = T_ave_final_method1 + DeltaT_final / 2
|
||
T_c_final_method1 = T_ave_final_method1 - DeltaT_final / 2
|
||
|
||
print(f"\n--- Method 1: Assume T_ave constant (strong moderator feedback) ---")
|
||
print(f"T_ave_final = {T_ave_final_method1} °F")
|
||
print(
|
||
f"T_h_final = T_ave + ΔT/2 = {T_ave_final_method1} + {DeltaT_final/2} = {T_h_final_method1} °F"
|
||
)
|
||
print(
|
||
f"T_c_final = T_ave - ΔT/2 = {T_ave_final_method1} - {DeltaT_final/2} = {T_c_final_method1} °F"
|
||
)
|
||
|
||
# Method 2: More realistic - Tc drops somewhat, Th rises more
|
||
# The SG cooling will lower Tc, but not back to initial Tc
|
||
# Let's estimate Tc drops by ~5-10°F, then Th rises to accommodate ΔT
|
||
T_c_drop = 5 # °F - estimated drop in Tc due to increased SG cooling
|
||
T_c_final_method2 = T_c_initial - T_c_drop
|
||
T_h_final_method2 = T_c_final_method2 + DeltaT_final
|
||
T_ave_final_method2 = (T_h_final_method2 + T_c_final_method2) / 2
|
||
|
||
print(f"\n--- Method 2: Estimate Tc drop due to SG cooling ---")
|
||
print(f"Assume Tc drops by ~{T_c_drop}°F due to increased steam flow")
|
||
print(f"T_c_final = {T_c_final_method2} °F")
|
||
print(
|
||
f"T_h_final = T_c + ΔT = {T_c_final_method2} + {DeltaT_final} = {T_h_final_method2} °F"
|
||
)
|
||
print(f"T_ave_final = {T_ave_final_method2} °F")
|
||
|
||
print(f"\n--- Comparison Table ---")
|
||
print(
|
||
f"{'Parameter':<20} {'Initial (25%)':<20} {'Final (50%) M1':<20} {'Final (50%) M2':<20}"
|
||
)
|
||
print(f"{'-'*80}")
|
||
print(f"{'Power':<20} {P_initial:<20} {P_final:<20} {P_final:<20}")
|
||
print(
|
||
f"{'T_h (°F)':<20} {T_h_initial:<20} {T_h_final_method1:<20.1f} {T_h_final_method2:<20.1f}"
|
||
)
|
||
print(
|
||
f"{'T_c (°F)':<20} {T_c_initial:<20} {T_c_final_method1:<20.1f} {T_c_final_method2:<20.1f}"
|
||
)
|
||
print(
|
||
f"{'T_ave (°F)':<20} {T_ave_initial:<20} {T_ave_final_method1:<20.1f} {T_ave_final_method2:<20.1f}"
|
||
)
|
||
print(
|
||
f"{'ΔT (°F)':<20} {DeltaT_initial:<20} {DeltaT_final:<20.1f} {DeltaT_final:<20.1f}"
|
||
)
|