화성 유인 탐사 및 심우주 심층 기동을 가능하게 하는 유일한 실용 고추력 추진체는 화학 로켓 대비 2배 이상의 비추력($I_{sp} \approx 900\text{ s}$)을 제공하는 '핵열추진(NTP: Nuclear Thermal Propulsion)' 시스템입니다. 고농축 우라늄(HALEU) 연료봉 노심에 극저온 액체수소($\text{LH}_2$)를 초고압으로 주입하여 2,700K 이상의 초고온 기체로 순간 가열 분사하는 과정에서, 노심 출력의 급변은 연료의 도플러 효과(Doppler Feedback) 및 수소 냉각재 밀도 변화에 따른 반응도 섭동을 야기합니다. 6군 지연중성자 선행핵(Delayed Neutron Precursors)을 고려한 원자로 점동특성(Point Kinetics) 미분방정식을 기반으로, 1,000Hz 주기로 제어 드럼(Control Drum)과 수소 터보펌프 밸런싱을 제어하는 0-Alloc C# 스택 서보 엔진을 공개합니다.
1. 2022 개정 교육과정 교과 연계 분석
- 물리학 (핵반응과 에너지 변환): 아인슈타인의 질량-에너지 등가 원리($E = mc^2$), 핵분열 연쇄반응, 중성자 증배 계수 $k_{eff}$, 즉발 중성자와 지연 중성자의 물리적 역할.
- 화학 / 열역학 (기체 분자 운동론과 비추력): 비추력 $I_{sp} \propto \sqrt{T_c / M_w}$, 단원자·이원자 분자량 차이(수소 $M_w = 2$ vs 연소가스 $M_w \approx 18$)에 의한 비추력 비약적 향상 원리.
- 미적분 (결합 선형 및 비선형 미분방정식계): 1차 점동특성 미분방정식과 6군 선행핵 붕괴 상미분방정식 계의 수치적 시간 적분(Runge-Kutta).
- 정보 및 제어 공학 (실시간 원자로 안전 서보 루프): 우주 방사선 환경 및 실시간 임베디드 OS 상에서 가비지 컬렉션 지연이 전무한 0-Alloc C# 스택 기반 반응도 모니터링 서보.
2. 핵심 수학적 모델링 및 물리 공식
1) 6군 지연중성자 점동특성 방정식 (Point Kinetics Equations)
중성자 밀도(출력) $P(t)$와 6군 선행핵 농도 $C_i(t)$의 비선형 시간 미분방정식:
$$\frac{dP(t)}{dt} = \frac{\rho(t) - \beta}{\Lambda} P(t) + \sum_{i=1}^6 \lambda_i C_i(t)$$ $$\frac{dC_i(t)}{dt} = \frac{\beta_i}{\Lambda} P(t) - \lambda_i C_i(t), \quad \beta = \sum_{i=1}^6 \beta_i$$ $$\Lambda \approx 2.5 \times 10^{-5}\text{ s (즉발 중성자 생성 시간)}$$2) 반응도 피드백 및 제어 드럼 모델링
제어 드럼 각도 $\theta$, 연료 온도 $T_f$, 냉각재(수소) 밀도 $\rho_{H2}$에 따른 총 반응도 $\rho(t)$:
$$\rho(t) = \rho_{drum}(\theta) + \alpha_D ( \sqrt{T_f(t)} - \sqrt{T_{f0}} ) + \alpha_H ( \rho_{H2}(t) - \rho_{H2,0} )$$ $$\alpha_D < 0 \text{ (도플러 부반응도 안정성 계수)}, \quad \alpha_H > 0 \text{ (수소 감속 양반응도 계수)}$$3) 로켓 비추력(Specific Impulse) 및 추력 방정식
노심 출구 온도 $T_c$, 수소 분자량 $M_{H2}$, 노즐 팽창비 $\epsilon$에 따른 비추력 $I_{sp}$ 및 추력 $F$:
$$I_{sp} = \frac{1}{g_0} \sqrt{\frac{2\gamma}{\gamma - 1} \frac{R_u T_c}{M_{H2}} \left[ 1 - \left(\frac{p_e}{p_c}\right)^{\frac{\gamma - 1}{\gamma}} \right]}$$ $$F = \dot{m}_{H2} I_{sp} g_0 + (p_e - p_a) A_e$$3. 1,000Hz 0-Alloc C# NTP 원자로 반응도 서보 제어 엔진
1,000Hz 주기로 노심 내 중성자속 센서 및 열전대 신호를 수집하여 반응도 섭동을 상쇄하고, 회전형 제어 드럼 액추에이터 명령을 0-Alloc 스택 메모리로 산출하는 C# 제어 엔진입니다.
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace ZeliDesk.Stem.NtpControl
{
/// <summary>
/// 노심 계측 센서 데이터 (중성자 출력, 연료온도, 수소유량)
/// </summary>
[StructLayout(LayoutKind.Sequential, Pack = 8)]
public readonly struct NtpCoreSensorData
{
public readonly double RelativePower; // 1.0 = 100% 정격 출력
public readonly double FuelTemperatureK; // 켈빈 온도 (K)
public readonly double HydrogenFlowKgS; // 수소 유량 (kg/s)
public readonly double ChamberPressureMPa;// 연소실 압력 (MPa)
public NtpCoreSensorData(double p, double tf, double flow, double pc)
{
RelativePower = p;
FuelTemperatureK = tf;
HydrogenFlowKgS = flow;
ChamberPressureMPa = pc;
}
}
/// <summary>
/// 제어 드럼 회전각 및 바이패스 밸브 제어 명령
/// </summary>
public ref struct NtpControlCommand
{
public double DrumAngleDegrees; // 0.0 ~ 180.0 도
public double PumpSpeedRpm;
public double EstimatedReactivityPcm; // pcm (10^-5 dk/k)
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public NtpControlCommand(double drumAngle, double pumpRpm, double pcm)
{
DrumAngleDegrees = drumAngle;
PumpSpeedRpm = pumpRpm;
EstimatedReactivityPcm = pcm;
}
}
/// <summary>
/// 1,000Hz 무할당 NTP 원자로 점동특성 제어 서보 엔진
/// </summary>
public ref struct NtpReactorKineticsEngine
{
private const double PromptNeutronGenerationLambda = 2.5e-5; // 초
private const double DelayedNeutronFractionBeta = 0.0065; // U-235 베타
private const double DopplerCoeff = -2.8e-5; // 도플러 계수
private const double NominalFuelTempK = 2600.0;
private double _precursorC1;
private double _precursorC2;
private double _integratedPowerError;
private double _currentDrumAngle;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ExecuteControlCycle(
in NtpCoreSensorData sensorData,
double targetPowerFraction,
out NtpControlCommand command,
out double specificImpulseSec)
{
// 1. 도플러 피드백 반응도 계산
double deltaTemp = Math.Max(0.0, sensorData.FuelTemperatureK) - NominalFuelTempK;
double rhoDoppler = DopplerCoeff * (Math.Sqrt(sensorData.FuelTemperatureK) - Math.Sqrt(NominalFuelTempK));
// 2. 비례-적분(PI) 출력 제어기
double powerError = targetPowerFraction - sensorData.RelativePower;
_integratedPowerError += powerError * 0.001;
double kp = 0.08;
double ki = 0.25;
double reactivityCommand = kp * powerError + ki * _integratedPowerError - rhoDoppler;
// 3. 제어 드럼 각도(0~180도) 맵핑 (회전 반사체 내 B4C 중성자 흡수체)
// Drum Angle 0도: 흡수체 코어 대향(최소 반응도), 180도: 베릴륨 반사체 코어 대향(최대 반응도)
double targetAngle = 90.0 + (reactivityCommand / 0.005) * 90.0;
_currentDrumAngle = Math.Clamp(targetAngle, 0.0, 180.0);
// 4. 수소 터보펌프 속도 및 비추력 계산 (Ru = 8314 J/kmol*K, MH2 = 2.016 kg/kmol)
double gamma = 1.4;
double ruOverM = 8314.0 / 2.016;
double exitTemp = Math.Min(sensorData.FuelTemperatureK * 0.96, 2800.0);
specificImpulseSec = (1.0 / 9.80665) * Math.Sqrt((2.0 * gamma / (gamma - 1.0)) * ruOverM * exitTemp * (1.0 - Math.Pow(0.001, 0.2857)));
double pumpRpm = 45000.0 * Math.Sqrt(targetPowerFraction);
command = new NtpControlCommand(_currentDrumAngle, pumpRpm, reactivityCommand * 1.0e5);
}
}
}
4. 방통대 우호성 교수 랩실 연구 지도 및 직무연수 활용 가이드
- 초·중·고 과학교사 직무연수: 화학 추진 로켓과 핵열추진 로켓의 비추력 차이를 분자량($M_{H2} = 2$ vs $M_{H2O} = 18$)과 기체 분자 운동 에너지 공식($E = \frac{3}{2} k_B T$)으로 설명하는 융합 수업을 지도할 수 있습니다.
- 물리-화학 융합 탐구: 즉발 중성자(마이크로초)와 지연 중성자(초~수십 초)의 차이를 통해 원자로가 폭발하지 않고 안전하게 제어될 수 있는 물리학적 메커니즘을 탐구하는 교수 학습 자료로 활용 가능합니다.
- 국방·우주 방위산업 MUM-T 기동성: 심우주 탐사선 및 궤도 기동형 국방 군사위성의 기동성 극대화를 위한 소형 원자로 안전 제어 모델로서 국방 AI 교과서 추진역학 교육에 적용할 수 있습니다.