AIDT 온디바이스 STEM 뮤온 g-2 변칙 자기 모멘트 저장링 NMR 자기장 안정화 서보 제어기

1.45T 초전도 마그넷 서브-ppb NMR 프로브 계측, 극저온 트롤리 자장 매핑, 10,000Hz C# 엔진

1. 개요

입자물리학 표준 모형(Standard Model)을 넘어서는 새로운 물리(New Physics)의 존재를 검증하는 가장 정밀한 실험 중 하나는 뮤온(Muon)의 변칙 자기 모멘트 \(a_\mu = (g-2)/2\) 정밀 측정입니다. 페르미 국립가속기연구소(Fermilab) 등에서 운용되는 뮤온 저장링(Storage Ring)은 직경 14미터의 원형 궤도에 1.45 테슬라(T)의 초전도 정밀 균일 자기장을 형성합니다. 양의 뮤온이 저장링을 순환하며 자전축이 세차 운동(Precession)할 때의 변칙 세차 주파수 \(\omega_a\)와 양성자 NMR 라모어 세차 주파수 \(\tilde{\omega}_p\)의 비율을 측정하여 \(a_\mu\)를 결정합니다. 이때 자기장 불균일도 및 주변 환경 온도 변화에 따른 드리프트가 수십 ppb(10억분의 1) 수준을 초과하면 실험 전체의 신뢰도가 붕괴됩니다. 본 고에서는 수백 개의 펄스형 양성자 NMR 프로브 데이터를 10,000Hz 주기로 융합하여 서브-ppb 수준으로 표면 보정 코일 전류를 피드백 제어하는 0-Alloc C# 서보 엔진을 구현합니다.

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

양의 뮤온 변칙 세차 주파수 \(\vec{\omega}_a\)와 균일 자기장 \(\vec{B}\), 전기 쌍극자 모멘트(EDM) \(\eta\)에 관한 토마스-BMT(Bargmann-Michel-Telegdi) 방정식은 다음과 같습니다:

\[ \vec{\omega}_a = \vec{\omega}_s - \vec{\omega}_c = - \frac{q}{m_\mu} \left[ a_\mu \vec{B} - \left( a_\mu - \frac{1}{\gamma^2 - 1} \right) \frac{\vec{\beta} \times \vec{E}}{c} \right] \]

매직 모멘텀(\(\gamma = 29.3, p = 3.094\text{ GeV/c}\)) 조건에서 전기장 텀이 소거될 때, 자기장 가중 평균 라모어 주파수 \(\langle \tilde{\omega}_p \rangle\)와 \(a_\mu\)의 관계는 다음과 같습니다:

\[ a_\mu = \frac{\omega_a}{\frac{\mu_p}{\mu_B} \frac{2 m_\mu}{e \hbar} \langle B \rangle} = \frac{\omega_a / \tilde{\omega}_p}{\mu_\mu / \mu_p - \omega_a / \tilde{\omega}_p} \]

저장링 다중극 전개(Multipole Expansion)에 따른 국소 자장 편차 \(\Delta B(r, \theta, \phi, t)\) 방정식은 다음과 같습니다:

\[ B_y(r, \theta) = B_0 + \sum_{n=1}^{K} \left( \frac{r}{r_0} \right)^n \left[ c_n(t) \cos(n\theta) + s_n(t) \sin(n\theta) \right] \]

서브-ppb 보정 코일 전류 행렬 \(\vec{I}_{shim}(t)\) 및 최소제곱 오차 수렴 방정식은 다음과 같습니다:

\[ \vec{I}_{shim}(t+\Delta t) = \vec{I}_{shim}(t) - \mathbf{J}_{B}^\dagger \left( \vec{B}_{meas}(t) - \vec{B}_{target} \right) \]

3. 실시간 C# 서보 제어기 구현

다음은 저장링 전역의 NMR 자기장 센서 어레이를 초고속 처리하여 10,000Hz 주기로 표면 보정 코일을 제어하는 0-Alloc C# 엔진 구현체입니다:

MuonG2MagneticFieldServoEngine.cs
using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.MuonPhysics
{
    public readonly ref struct StorageRingMagneticFrame
    {
        public readonly double MeasuredCenterFieldTesla;
        public readonly double TargetFieldTesla;
        public readonly double QuadrupoleGradientTPerM;
        public readonly double MagnetYokeTempKelvin;
        public readonly double NmrProtonPrecessionFreqKhz;

        public StorageRingMagneticFrame(
            double measuredCenterFieldTesla,
            double targetFieldTesla,
            double quadrupoleGradientTPerM,
            double magnetYokeTempKelvin,
            double nmrProtonPrecessionFreqKhz)
        {
            MeasuredCenterFieldTesla = measuredCenterFieldTesla;
            TargetFieldTesla = targetFieldTesla;
            QuadrupoleGradientTPerM = quadrupoleGradientTPerM;
            MagnetYokeTempKelvin = magnetYokeTempKelvin;
            NmrProtonPrecessionFreqKhz = nmrProtonPrecessionFreqKhz;
        }
    }

    public ref struct StorageRingControlCommand
    {
        public double FieldErrorPpb;
        public double MainCoilTrimCurrentAmps;
        public double QuadrupoleShimCurrentAmps;
        public bool IsFieldUniformitySubPpb;
    }

    public ref struct MuonG2MagneticFieldServoEngine
    {
        private readonly double _kpMain;
        private readonly double _kiMain;
        private readonly double _kpQuad;
        private readonly double _dt;
        private double _mainErrorIntegral;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public MuonG2MagneticFieldServoEngine(double kpMain, double kiMain, double kpQuad, double dt)
        {
            _kpMain = kpMain;
            _kiMain = kiMain;
            _kpQuad = kpQuad;
            _dt = dt;
            _mainErrorIntegral = 0.0;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public void ComputeFieldStabilization(in StorageRingMagneticFrame frame, out StorageRingControlCommand cmd)
        {
            cmd = default;
            double errorTesla = frame.TargetFieldTesla - frame.MeasuredCenterFieldTesla;
            double errorPpb = (errorTesla / frame.TargetFieldTesla) * 1e9;

            _mainErrorIntegral += errorTesla * _dt;
            if (_mainErrorIntegral > 1e-4) _mainErrorIntegral = 1e-4;
            else if (_mainErrorIntegral < -1e-4) _mainErrorIntegral = -1e-4;

            double mainTrim = (_kpMain * errorTesla) + (_kiMain * _mainErrorIntegral);
            double quadTrim = -_kpQuad * frame.QuadrupoleGradientTPerM;

            cmd.FieldErrorPpb = errorPpb;
            cmd.MainCoilTrimCurrentAmps = mainTrim;
            cmd.QuadrupoleShimCurrentAmps = quadTrim;
            cmd.IsFieldUniformitySubPpb = Math.Abs(errorPpb) < 1.0; // < 1 ppb
        }
    }
}

4. 교육 및 실무 적용 방안

  • 한국방송통신대학교 AI 교구: 기초 전자기 유도, 라모어 세차 운동, 핵자기공명(NMR) 계측 원리 가상 실험.
  • 국가 기초과학 가속기 및 초전도 MRI 연구: 고자장 초전도 마그넷의 실시간 자기장 균일도 튜닝 및 드리프트 보정 표준 알고리즘.