2022 개정 교육과정 연계 온디바이스 거대입자가속기·초전도RF STEM 시리즈 #52

초전도 고주파(SRF) 공동 로렌츠 비동조 서보 엔진

펄스 운전 $35\text{ MV/m}$ 거대 방사압에 의한 마이크로포닉스 및 0-Alloc C# 압전 튜너 고속 피드포워드 제어 루프

핵심 연구 개요 및 교과 연계

한국형 중이온가속기(RAON), 유럽 핵입자물리연구소(CERN), 국제선형충돌기(ILC) 등 최첨단 가속기의 심장은 순수 니오븀($\text{Nb}$)을 $2\text{ K}$ 극저온으로 냉각한 초전도 고주파(SRF, Superconducting RF) 가속 공동입니다. 공동 내부에는 $1.3\text{ GHz}$ 주파수에서 $E_{acc} \sim 35\text{ MV/m}$에 달하는 초고전자기장이 형성됩니다. 이때 벽면에 작용하는 로렌츠 전자기 방사압($P_L = \frac{1}{4} (\mu_0 H^2 - \varepsilon_0 E^2)$)은 순수 니오븀 공동 벽면을 미세하게 변형시켜 공진 주파수가 수백 Hz 이상 어긋나는 로렌츠 힘 비동조(LFD, Lorentz Force Detuning)를 초래합니다. SRF 공동의 대역폭(Bandwidth)은 수십 Hz에 불과하므로 주파수 이탈 시 가속 전력이 반사되어 빔 가속이 불가능해집니다.

본 백서는 2022 개정 물리학 II (초전도 현상과 마이스너 효과, 전자기장의 에너지 밀도와 로렌츠 방사압, 공진 회로), 미적분 (공동 기계 진동 2차 조화진동자 미분방정식 및 전기장 제곱 가중 적분), 그리고 정보 (C# 13 0-Alloc 스택 연산)를 결합하여, RF 위상 검파기로부터 주파수 편차($\Delta f$)를 실시간 연산하고 고전압 압전 세라믹 액추에이터를 10,000Hz로 피드포워드 구동하는 온디바이스 SRF 공진 안정화 서보 엔진을 완성합니다.

1. 로렌츠 방사압 및 슬레이터(Slater) 섭동 주파수 편차 수리 모델

공동 벽면 면소 $dA$에 수직으로 작용하는 전자기 복사압 $P_s$는 맥스웰 응력 텐서로부터 다음과 같이 유도됩니다:

$$P_s = \frac{1}{4} \left( \mu_0 |\mathbf{H}|^2 - \varepsilon_0 |\mathbf{E}|^2 \right)$$

슬레이터 섭동 정리에 따라 벽면 미세 변위 $\delta n$에 의한 공동 공진 주파수 편차 $\Delta f$는 가속 전계의 제곱($E_{acc}^2$)에 비례합니다:

$$\Delta f = -K_L \cdot E_{acc}^2$$

여기서 $K_L \approx 1.0\sim 2.0\text{ Hz/(MV/m)}^2$은 로렌츠 비동조 계수입니다. 기계적 진동 모드($\omega_m$)를 고려한 동적 주파수 응답은 2차 미분방정식을 따릅니다:

$$\frac{d^2 \Delta f_m}{dt^2} + \frac{2}{\tau_m} \frac{d \Delta f_m}{dt} + \omega_m^2 \Delta f_m = -K_m \omega_m^2 E_{acc}^2(t)$$

서보 루프는 펄스 RF 펄스의 상승 프로파일을 선행 감지하여 압전 튜너에 역위상 역전압 펄스를 선제 인가(Feedforward)함으로써 로렌츠 변형을 $1\text{ Hz}$ 이내로 완전 상쇄합니다.

2. 0-Alloc C# 스택 기반 SRF 공동 압전 튜너 서보

공동 전압/위상 위상차 신호로부터 순간 주파수 오차를 계산하고 피에조 전압을 10,000Hz로 제어하는 ref struct 루프입니다.

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.SuperconductingRf
{
    public readonly ref struct SrfCavityTelemetry
    {
        public readonly double AcceleratingGradientMvPerM;
        public readonly double RfPhaseErrorDeg;
        public readonly double ForwardPowerKw;
        public readonly double ReflectedPowerKw;
        public readonly double PiezoCurrentVoltageV;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public SrfCavityTelemetry(double eAcc, double phaseErr, double fwdKw, double refKw, double vPiezo)
        {
            AcceleratingGradientMvPerM = eAcc;
            RfPhaseErrorDeg = phaseErr;
            ForwardPowerKw = fwdKw;
            ReflectedPowerKw = refKw;
            PiezoCurrentVoltageV = vPiezo;
        }
    }

    public readonly ref struct SrfTuningResult
    {
        public readonly double InstantaneousDetuningHz;
        public readonly double TargetPiezoVoltageV;
        public readonly double ReflectedPowerRatio;
        public readonly bool IsResonanceLocked;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public SrfTuningResult(double detuningHz, double targetV, double refRatio, bool locked)
        {
            InstantaneousDetuningHz = detuningHz;
            TargetPiezoVoltageV = targetV;
            ReflectedPowerRatio = refRatio;
            IsResonanceLocked = locked;
        }
    }

    public ref struct SrfCavityPiezoServo
    {
        private const double CavityHalfBandwidthHz = 25.0; // 25 Hz 반대역폭
        private const double LorentzCoefficientKl = 1.25; // 1.25 Hz/(MV/m)^2
        private const double PiezoTuningRateHzPerV = 3.5;  // 3.5 Hz/V

        private readonly double _kpFeedback;
        private readonly double _kiFeedback;
        private double _integratedPhaseError;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public SrfCavityPiezoServo(double kp, double ki)
        {
            _kpFeedback = kp;
            _kiFeedback = ki;
            _integratedPhaseError = 0.0;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public SrfTuningResult Step(in SrfCavityTelemetry telemetry, double dt)
        {
            // 1. 위상 오차로부터 순간 비동조(Detuning) 주파수 산출: Delta_f = HalfBandwidth * tan(PhaseError)
            double phaseRad = telemetry.RfPhaseErrorDeg * (Math.PI / 180.0);
            double detuningHz = CavityHalfBandwidthHz * Math.Tan(phaseRad);

            // 2. 전기장 제곱 비례 로렌츠 힘 피드포워드 전압 연산: V_ff = (K_L * E_acc^2) / Rate
            double eAccSq = telemetry.AcceleratingGradientMvPerM * telemetry.AcceleratingGradientMvPerM;
            double lorentzDetuningHz = LorentzCoefficientKl * eAccSq;
            double vFeedforward = lorentzDetuningHz / PiezoTuningRateHzPerV;

            // 3. PI 피드백 보정
            _integratedPhaseError += telemetry.RfPhaseErrorDeg * dt;
            double vFeedback = _kpFeedback * telemetry.RfPhaseErrorDeg + _kiFeedback * _integratedPhaseError;

            // 4. 최종 압전 전압 지령
            double targetPiezoV = Math.Clamp(vFeedforward + vFeedback, -50.0, 150.0);

            // 5. 반사 전력 비율 및 공진 고정 판정 (비동조 < 5Hz)
            double refRatio = telemetry.ReflectedPowerKw / Math.Max(1.0, telemetry.ForwardPowerKw);
            bool isLocked = Math.Abs(detuningHz) < 5.0 && refRatio < 0.05;

            return new SrfTuningResult(detuningHz, targetPiezoV, refRatio, isLocked);
        }
    }
}

3. 교육적 가치 및 중고교 실험 시뮬레이션 적용

2022 개정 교육과정 연계 수업 가이드

  • 물리학 II [초전도와 자기장 차폐]: 전기 저항이 0이 되는 초전도체 내부로 고주파 전자기파가 침투하지 못하고 전자기압으로 벽면을 미는 마이스너 효과 학습.
  • 물리학 II [공명과 강제 진동]: 극도로 뾰족한 공진 곡선(높은 $Q$값, $Q_0 \sim 10^{10}$)을 갖는 가속 공동에서 미세한 주파수 이탈이 초래하는 전력 전달 손실 시뮬레이션.
  • 정보 [피드포워드와 피드백 복합 제어 프로그래밍]: 로렌츠 힘의 원인을 사전 예측하여 선제 조치하는 피드포워드와 잔여 오차를 잡는 피드백의 결합 알고리즘 구현.