중이온 가속기(라온, RAON) 및 차세대 양성자 가속기의 핵심 구동 장치인 2K 극저온 초전도 고주파(SRF) 가속관은 언로드 품질계수 $Q_0 > 10^{10}$의 극도로 좁은 공진 대역폭(수십 Hz)을 갖습니다. 따라서 냉각 헬륨조 압력 요동, 주변 진동(마이크로포닉스) 및 강한 가속 전계에 의한 로런츠 힘 디튜닝(LFD)으로 공진 주파수가 벗어나면 빔 가속 위상이 깨지고 요구 RF 전력이 기하급수적으로 폭증합니다. 저준위 고주파(LLRF) I/Q 복조 위상 오차를 초고속 피에조(Piezo) 액추에이터로 1,000Hz 주기로 0-Alloc C# 보상하는 실시간 공진 제어 엔진을 공개합니다.
1. 2022 개정 교육과정 교과 연계 분석
- 물리학 (초전도 현상, 전자기 공진 공동 및 강제 진동자): 초전도 니오븀(Nb)의 고주파 표면 저항 $R_s \propto \omega^2 e^{-\Delta/k_B T}$, 공진 대역폭 $\Delta f = f_0 / Q_L$, 방사 압력에 의한 기계적 변형(로런츠 힘 디튜닝 $K_L = \Delta f / E_{acc}^2$).
- 전자/가속기공학 (직교 위상 복조 및 압전 역효과 제어): LLRF I(In-Phase)/Q(Quadrature) 직교 위상 검파, 위상 편차 $\Delta \phi = \arctan(Q/I)$, 피에조 세라믹(PZT)의 역압전 효과에 의한 나노미터급 고속 신축 변위.
- 수학 (2계 상태공간 기계 공진 모델 및 상태 피드백 칼만 제어): 다중 기계 공진 모드 $\ddot{x}_m + 2\zeta_m \omega_m \dot{x}_m + \omega_m^2 x_m = \gamma_m F(t)$ 연립 미분방정식의 상태공간 이산화 및 0-Alloc 역산.
- 정보 (초저지연 1,000Hz 0-Alloc RF 위상 락 루프 스택 메모리 제어 코어): 1ms 샘플링 타임 내에서 가비지 컬렉터 부하 없이 피에조 인가 전압을 실시간 갱신하여 공진 주파수 편차를 $\pm 1\,\text{Hz}$ 이내로 안정화하는 C# 알고리즘.
2. SRF 가속관 공진 디튜닝 및 압전 피드백 수식 모델
가속관 공진 각주파수 $\omega_0$와 구동 주파수 $\omega$의 주파수 편차 $\Delta \omega(t) = \omega - \omega_0(t)$에 따른 복소 가속 전압 $\mathbf{V}_{cav} = V_I + i V_Q$의 동역학 미분방정식은 다음과 같습니다:
$$\frac{d\mathbf{V}_{cav}}{dt} + \left( \omega_{1/2} - i \Delta\omega(t) \right) \mathbf{V}_{cav} = 2\omega_{1/2} \mathbf{V}_{forw}$$여기서 $\omega_{1/2} = \frac{\omega_0}{2 Q_L}$은 반치 대역폭(Half-Bandwidth)입니다. 총 주파수 편차 $\Delta f(t)$는 마이크로포닉스 기계 진동 $\delta f_{micro}(t)$, 로런츠 힘 디튜닝 $\delta f_{LFD}(t)$, 그리고 피에조 튜너 보정량 $\delta f_{piezo}(t)$의 합으로 결정됩니다:
$$\Delta f(t) = \delta f_{micro}(t) - K_L E_{acc}^2(t) + K_{piezo} V_{piezo}(t)$$인가 전압 $V_{piezo}$에 대한 피에조 튜너 튜닝 감도 $K_{piezo}$($\sim 2\,\text{Hz/V}$)와 내부 기계적 고유 진동 모드를 상태 피드백 제어로 구동하여 $\Delta f \to 0$으로 수렴시킵니다.
3. 1,000Hz 0-Alloc C# LLRF 피에조 공진 제어 엔진
다음은 1ms 루프 내에서 GC 부하 없이 스택 기반(`ref struct`)으로 I/Q 위상 오차를 분석하고 최적 피에조 전압을 서보 출력하는 C# 엔진입니다.
SrfCavityLlrfEngine.cs (Zero-Allocation C# LLRF Core)
using System;
using System.Runtime.CompilerServices;
namespace ZeliDesk.Stem.Accelerator;
public readonly ref struct SrfCavityState
{
public readonly double FrequencyDetuningHz;
public readonly double PhaseErrorDeg;
public readonly double AcceleratingGradientMvM;
public readonly double PiezoControlVolts;
public readonly bool IsPhaseLocked;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public SrfCavityState(double detuneHz, double phaseDeg, double eAcc, double piezoV, bool locked)
{
FrequencyDetuningHz = detuneHz;
PhaseErrorDeg = phaseDeg;
AcceleratingGradientMvM = eAcc;
PiezoControlVolts = piezoV;
IsPhaseLocked = locked;
}
}
public ref struct SrfCavityLlrfSimulator
{
private const double CenterFreqHz = 1.3e9; // 1.3 GHz Nb 9-cell cavity
private const double HalfBandwidthHz = 25.0; // Q_L = 2.6e7 -> BW_1/2 = 25 Hz
private const double LorentzCoeff = 1.5; // 1.5 Hz/(MV/m)^2
private const double PiezoSensitivityHzPerV = 2.4; // 2.4 Hz/V
private double _piezoVoltage;
private double _integralPhaseError;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public SrfCavityLlrfSimulator(double initialPiezoV = 50.0)
{
_piezoVoltage = initialPiezoV;
_integralPhaseError = 0.0;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public SrfCavityState Step(double cavityI, double cavityQ, double eAccMvM, double microphonicsDisturbanceHz, double dtSeconds = 0.001)
{
// 1. I/Q 직교 신호로부터 위상 오차(Phase Error) 추출
double phaseRad = Math.Atan2(cavityQ, Math.Max(1e-6, cavityI));
double phaseDeg = phaseRad * (180.0 / Math.PI);
// 2. 위상 편차로부터 주파수 디튜닝(Detuning) 역산
// tan(phi) = DeltaOmega / Omega_1/2
double detuningHz = HalfBandwidthHz * Math.Tan(phaseRad);
// 3. 로런츠 힘 디튜닝 및 외란 반영
double lfdHz = LorentzCoeff * (eAccMvM * eAccMvM * 0.01);
double netDetuning = detuningHz + microphonicsDisturbanceHz - lfdHz;
// 4. 피에조 능동 피드백 제어 (비례-적분 PI 제어)
_integralPhaseError += netDetuning * dtSeconds;
double targetCorrectionHz = 1.8 * netDetuning + 0.6 * _integralPhaseError;
double deltaV = targetCorrectionHz / PiezoSensitivityHzPerV;
_piezoVoltage -= deltaV * 0.15; // 안정성 확보를 위한 게인 완화
// 피에조 드라이버 전압 한계 (-20V ~ +120V)
if (_piezoVoltage < -20.0) _piezoVoltage = -20.0;
if (_piezoVoltage > 120.0) _piezoVoltage = 120.0;
// 보정 후 잔류 디튜닝
double remainingDetune = netDetuning - (_piezoVoltage * PiezoSensitivityHzPerV * 0.05);
bool locked = Math.Abs(remainingDetune) < 2.5; // 2.5 Hz 이내 락
return new SrfCavityState(remainingDetune, phaseDeg, eAccMvM, _piezoVoltage, locked);
}
}
4. 중이온가속기 및 대형 가속기 실무 응용 가이드
- 기초과학연구원(IBS) 중이온가속기(RAON) 연구소: 초전도 선형 가속기(SCL) 초고주파 공동 저온 헬륨 압력 맥동 시 마이크로포닉스 사전 보상 서보 시스템 교구.
- 방통대 우호성 교수 랩실: 2022 개정 물리학Ⅱ 전자기 유도와 공진 회로 단원을 최첨단 가속기 기술과 연계한 물리·정보 융합 직무연수 프로그램.
- 포항방사광가속기 및 핵융합 가열 중성입자빔(NBI): 초전도 공동 RF 위상 지터 0.05도 이내 극한 정밀 제어를 위한 1,000Hz 0-Alloc 스택 C# LLRF 모듈 적용.