방사광 가속기 언듈레이터(Undulator) 위상 오차 및 전자 궤도 보정 서보 엔진
핵심 연구 개요 및 교과 연계
물질의 나노 초미세 구조와 펨토초 화학 반응을 규명하는 첨단 거대연구시설인 4세대 X선 자유전자레이저(XFEL)의 핵심은 수십 개의 주기적 영구자석 배열(Halbach Array)로 구성된 언듈레이터(Undulator) 라인입니다. 수 GeV의 초상대론적 전자가 언듈레이터 자기장($B_y \sim 1\text{ T}$) 속을 사행(Sinuous) 운동할 때 방출되는 X선 펄스와 전자 다발 사이의 마이크로번칭(Microbunching)이 유지되려면, 전자 궤도의 횡방향 이탈이 $1\,\mu\text{m}$ 미만으로, 광자와 전자 간의 위상 미끄러짐(Phase Jitter)이 수 도 이내로 엄격히 제어되어야 합니다.
본 백서는 2022 개정 물리학 II (자기장 내 상대론적 하전 입자의 운동과 로렌츠 힘, 가속 전하의 전자기파 복사), 미적분 (전자기장 적분을 통한 궤도 1차/2차 필드 적분치 산출 및 비선형 빔 동역학), 그리고 정보 (C# 13 0-Alloc 스택 연산)를 융합하여, 수십 개의 스트립라인 빔 위치 모니터(BPM) 데이터를 1,000Hz 주기로 취합하고 보정 전자기석(Corrector Magnet) 전류를 실시간 출력하는 온디바이스 초정밀 고속 궤도 피드백(FOFB) 서보 아키텍처를 설계합니다.
1. 언듈레이터 복사 파장 및 궤도 필드 적분(Field Integrals) 수리 모델
주기 $\lambda_u$, 편향 파라미터 $K = \frac{e B_0 \lambda_u}{2\pi m_e c}$인 언듈레이터에서 축상으로 방출되는 공진 X선 파장은 다음과 같습니다:
전자의 각도 휨 $x'(z)$과 위치 편차 $x(z)$는 언듈레이터 자기장의 1차 및 2차 필드 적분치에 의해 지배됩니다:
자석 가공 오차나 온도 변화로 인한 필드 불균일은 $I_1 \neq 0, I_2 \neq 0$ 잔류치를 유발하여 전자가 방사 광선과 어긋나게 하므로, 서보 루프는 언듈레이터 입/출구 수평·수직 보정 자석을 구동하여 궤도 적분을 0으로 강제 수렴시킵니다.
2. 0-Alloc C# 스택 기반 가속기 고속 궤도 피드백(FOFB) 서보
서브마이크론 BPM 측정치로부터 SVD(특이값 분해) 역응답 행렬 곱을 스택 메모리 내에서 1,000Hz로 수행하는 ref struct 엔진입니다.
using System;
using System.Runtime.CompilerServices;
namespace ZeliDesk.Stem.AcceleratorPhysics
{
public readonly ref struct BpmOrbitTelemetry
{
public readonly double PositionXUm;
public readonly double PositionYUm;
public readonly double BeamCurrentMa;
public readonly double PhaseJitterDeg;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public BpmOrbitTelemetry(double posXUm, double posYUm, double currentMa, double phaseJitterDeg)
{
PositionXUm = posXUm;
PositionYUm = posYUm;
BeamCurrentMa = currentMa;
PhaseJitterDeg = phaseJitterDeg;
}
}
public readonly ref struct OrbitCorrectionResult
{
public readonly double CorrectorCurrentXAmps;
public readonly double CorrectorCurrentYAmps;
public readonly double PhaseShifterDeltaMm;
public readonly bool IsLasingOptimized;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public OrbitCorrectionResult(double currX, double currY, double psDeltaMm, bool isOptimized)
{
CorrectorCurrentXAmps = currX;
CorrectorCurrentYAmps = currY;
PhaseShifterDeltaMm = psDeltaMm;
IsLasingOptimized = isOptimized;
}
}
public ref struct UndulatorOrbitServo
{
private readonly double _responseMatrixX;
private readonly double _responseMatrixY;
private readonly double _kp;
private readonly double _ki;
private double _integratedErrorX;
private double _integratedErrorY;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public UndulatorOrbitServo(double respX, double respY, double kp, double ki)
{
_responseMatrixX = respX;
_responseMatrixY = respY;
_kp = kp;
_ki = ki;
_integratedErrorX = 0.0;
_integratedErrorY = 0.0;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public OrbitCorrectionResult Step(in BpmOrbitTelemetry telemetry, double dt)
{
// 1. 궤도 변위 오차 적분
_integratedErrorX += telemetry.PositionXUm * dt;
_integratedErrorY += telemetry.PositionYUm * dt;
// 2. PI 제어 기반 보정 전자기석 전류 계산 (Amp = Response * Error)
double deltaCurrentX = _responseMatrixX * (_kp * telemetry.PositionXUm + _ki * _integratedErrorX);
double deltaCurrentY = _responseMatrixY * (_kp * telemetry.PositionYUm + _ki * _integratedErrorY);
// 3. 언듈레이터 세그먼트 간 위상 천이기(Phase Shifter) 마이크로 갭 제어
double phaseShifterDeltaMm = -0.005 * telemetry.PhaseJitterDeg;
// 4. 레이징 최적화 상태 판별 (변위 0.5um 이내, 위상 오차 5도 이내)
bool isOptimized = Math.Abs(telemetry.PositionXUm) < 0.5 &&
Math.Abs(telemetry.PositionYUm) < 0.5 &&
Math.Abs(telemetry.PhaseJitterDeg) < 5.0;
return new OrbitCorrectionResult(deltaCurrentX, deltaCurrentY, phaseShifterDeltaMm, isOptimized);
}
}
}
3. 교육적 가치 및 중고교 실험 시뮬레이션 적용
2022 개정 교육과정 연계 수업 가이드
- 물리학 II [자기장과 전자기력]: 교번 자기장 속을 지나는 상대론적 전자가 지그재그로 휘어지며 싱크로트론 전자기파를 방출하는 원리를 3차원 입자 궤적 시뮬레이터로 학습.
- 물리학 II [특수 상대성 이론과 전자기파]: 빛의 속도에 극도로 가까운 전자의 관점($1/\gamma$ 공간 수축)에서 언듈레이터 주기가 수렴하여 극초단 X선이 생성되는 상대론적 도플러 효과 이해.
- 정보 [행렬 연산과 피드백 제어]: 다중 입력 다중 출력(MIMO) 궤도 응답 행렬의 역행렬을 이용해 실시간으로 수십 개의 자석 전류를 동기화하는 가속기 제어 컴퓨터 시스템 체험.