AIDT 온디바이스 STEM 방사광 가속기 언듈레이터(Undulator) 준단색성 X선 서보 엔진

로렌츠 인자 \(\gamma > 6000\), 자기장 왜곡 파라미터 \(K\) 미세 튜닝, 서브마이크론 간극 10,000Hz C# 엔진

1. 개요

3·4세대 방사광 가속기(Synchrotron)의 핵심 삽입 장치인 진공 내 언듈레이터(In-Vacuum Undulator, IVU)는 수 GeV의 상대론적 전자 빔(\(\gamma = E_e / m_e c^2 > 6000\))을 주기적인 쌍극 자석 배열 사이로 통과시켜 미세한 사인파 궤적 진동을 유도합니다. 이때 각 주기에서 방출된 광파가 전방에서 결맞게 보강 간섭을 일으켜 초고휘도 준단색성 경X선(Hard X-ray) 펄스를 방출합니다. 그러나 전자 빔의 에너지 분산 및 자석 극편 간극(Gap, \(g\))의 기계적 열팽창으로 인해 편향 파라미터 \(K = \frac{e B_0 \lambda_u}{2\pi m_e c}\)가 표류하면, X선 중심 파장 \(\lambda_n\)이 이동하고 고조파 분광 휘도가 급락합니다. 본 고에서는 10,000Hz 서브마이크론 정밀 서보 루프로 언듈레이터 테이퍼 및 간극을 실시간 보정하는 0-Alloc C# 엔진을 구현합니다.

2. 수학적 모델링 및 지배 방정식

언듈레이터 주기 \(\lambda_u\), 전자 상대론적 로렌츠 인자 \(\gamma\), 편향 파라미터 \(K\) 하에서 n차 고조파 방사 파장 \(\lambda_n(\theta)\)은 다음과 같이 정식화됩니다:

\[ \lambda_n(\theta) = \frac{\lambda_u}{2 n \gamma^2} \left( 1 + \frac{K^2}{2} + \gamma^2 \theta^2 \right) \]

여기서 피크 자계 세기 \(B_0\)는 자석 간극 \(g\)에 지수함수적으로 반비례합니다:

\[ B_0(g) = a \exp\left( -b \frac{g}{\lambda_u} + c \left(\frac{g}{\lambda_u}\right)^2 \right) \]

전자 빔 궤도 왜곡을 방지하기 위한 1차·2차 자계 적분 널링(\(I_1 = \int B_y dz = 0, I_2 = \int \int B_y dz dz' = 0\)) 조건을 10,000Hz 루프에서 보정 코일 전류로 동적 연산합니다.

3. 실시간 피드백 제어 아키텍처

+-----------------------------------------------------------------------------+
|    AIDT Synchrotron Undulator Gap & Phase 10,000Hz Real-Time Servo Engine   |
+-----------------------------------------------------------------------------+
|  [BPM Electron Orbit Monitor & X-Ray Monochromator Energy Peak Sensor]      |
|                                       |                                     |
|                                       v                                     |
|     [K-Parameter Deflection & 1st/2nd Field Integral Distortion Solver]     |
|                                       |                                     |
|                                       v                                     |
|     [Zero-Alloc Discrete Dynamic Gap & Corrector Coil Current Servo]        |
|                                       |                                     |
|                                       v                                     |
|   [Sub-Micron Linear Motor Actuators & Bipolar Corrector Power Supplies]    |
+-----------------------------------------------------------------------------+
                    

4. Zero-Allocation C# 서보 엔진 구현

X선 중심 파장 오차를 실시간 추종하여 언듈레이터 갭 및 보정 코일을 10,000Hz로 제어하는 C# 클래스입니다.

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Accelerator.Undulator
{
    public readonly struct UndulatorConfig
    {
        public readonly double TargetPhotonEnergyEv;
        public readonly double ElectronGamma;
        public readonly double PeriodMm;
        public readonly double NominalGapMm;
        public readonly double Kp;
        public readonly double Ki;

        public UndulatorConfig(double targetPhotonEnergyEv, double electronGamma, double periodMm,
                               double nominalGapMm, double kp, double ki)
        {
            TargetPhotonEnergyEv = targetPhotonEnergyEv;
            ElectronGamma = electronGamma;
            PeriodMm = periodMm;
            NominalGapMm = nominalGapMm;
            Kp = kp;
            Ki = ki;
        }
    }

    public ref struct UndulatorGapServo
    {
        private readonly UndulatorConfig _config;
        private double _energyErrorIntegral;
        private double _targetGapMm;

        public UndulatorGapServo(in UndulatorConfig config)
        {
            _config = config;
            _energyErrorIntegral = 0.0;
            _targetGapMm = config.NominalGapMm;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public (double controlledGapMm, double trimCoilCurrentA) Update(double measuredPhotonEnergyEv, double orbitOffsetUm, double dtSec)
        {
            double error = measuredPhotonEnergyEv - _config.TargetPhotonEnergyEv;
            _energyErrorIntegral += error * dtSec;
            _energyErrorIntegral = Math.Clamp(_energyErrorIntegral, -50.0, 50.0);

            // 간극 제어를 통한 K-값 보정
            double deltaGap = (_config.Kp * error) + (_config.Ki * _energyErrorIntegral);
            _targetGapMm = Math.Clamp(_targetGapMm + deltaGap * 0.001, 4.0, 30.0);

            // 전자 궤도 변위 널링 보정 코일 전류 산출
            double trimCurrent = Math.Clamp(-orbitOffsetUm * 0.05, -5.0, 5.0);

            return (_targetGapMm, trimCurrent);
        }
    }
}

5. 학술적 의의 및 교육적 활용 가치

본 설계는 2022 개정 물리 교과 내 '특수 상대성 이론과 로렌츠 수축', '가속 전하의 전자기 방사', 'X선 회절과 물질 구조 규명'을 포괄하는 대형 연구시설 연계 STEM 교구입니다. 빛의 속도에 근접한 전자가 방출하는 결맞음 X선의 파장 가변 원리를 수학적, 시스템적으로 깊이 있게 이해할 수 있습니다.