AIDT 온디바이스 STEM 방사광 X선 프티코그래피(Ptychography) 나노단층촬영 서보 엔진

위상 회복 ePIE 알고리즘, 공간 겹침률 \(> 70\%\), 10nm 공간 분해능 10,000Hz C# 엔진

1. 개요

결맞음 X선 회절 이미징(Coherent Diffraction Imaging, CDI)의 정점인 X선 프티코그래피(Ptychography)는 집속 렌즈의 제조 한계(대물렌즈 수차)를 극복하고, 국소 조명 빔(Probe)을 인접 위치와 60% 이상 공간적으로 중첩(Overlap) 주사하면서 기록된 원거리 프라운호퍼(Fraunhofer) 회절 강도 패턴들로부터 시료의 진폭과 위상 투과율을 무수차·초해상도(10nm 이하)로 동시 재구성하는 계산 광학(Computational Optics) 기법입니다. 확장 프티코그래피 반복 엔진(ePIE)을 통해 위상 문제(Phase Problem)를 해결하나, 나노미터 스캔 스테이지의 열적 표류와 피에조 크립(Creep)에 의한 실제 조명 위치 오차는 위상 복원 발산을 초래합니다. 본 고에서는 10,000Hz 간섭계 위치 보정과 결합된 실시간 프티코그래피 스캔 서보 엔진을 구현합니다.

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

시료 위치 \(\mathbf{R}_j\)에서의 출구 파면(Exit Wave) \(\psi_j(\mathbf{r})\)과 검출기 면에서의 회절 복소 진폭 \(\Psi_j(\mathbf{k})\)는 푸리에 변환 관계를 만족합니다:

\[ \psi_j(\mathbf{r}) = O(\mathbf{r}) P(\mathbf{r} - \mathbf{R}_j), \quad \Psi_j(\mathbf{k}) = \mathcal{F}\{\psi_j(\mathbf{r})\} = |\Psi_j(\mathbf{k})| e^{i \phi_j(\mathbf{k})} \]

ePIE 알고리즘의 시료 함수 \(O(\mathbf{r})\) 및 프로브 함수 \(P(\mathbf{r})\) 갱신 방정식은 다음과 같습니다:

\[ O_{n+1}(\mathbf{r}) = O_n(\mathbf{r}) + \alpha_{pie} \frac{P_n^*(\mathbf{r} - \mathbf{R}_j)}{|P_n(\mathbf{r} - \mathbf{R}_j)|_{max}^2} \left[ \psi_j'(\mathbf{r}) - \psi_j(\mathbf{r}) \right] \]

여기서 \(\psi_j'(\mathbf{r}) = \mathcal{F}^{-1}\left\{ \sqrt{I_j^{meas}(\mathbf{k})} \frac{\Psi_j(\mathbf{k})}{|\Psi_j(\mathbf{k})|} \right\}\)입니다. 레이저 간섭계 피드백을 통해 스캔 좌표 \(\mathbf{R}_j\)의 위치 불확도를 서브 나노미터 단위로 유지하여 위상 오차 에너지를 최소화합니다.

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

+-----------------------------------------------------------------------------+
|    AIDT Synchrotron X-ray Ptychography 10,000Hz Real-Time Servo Engine      |
+-----------------------------------------------------------------------------+
|  [Hybrid Pixel Array X-ray Detector (100kHz Frame Rate) & Laser Encoder]   |
|                                       |                                     |
|                                       v                                     |
|     [Sub-Pixel Probe Position Drift & Diffraction Overlap Ratio Solver]     |
|                                       |                                     |
|                                       v                                     |
|     [Zero-Alloc Discrete Dynamic Piezo Nanopositioner Trajectory Servo]     |
|                                       |                                     |
|                                       v                                     |
|   [Sub-Angstrom Piezo Stage] -> [Sample Scanning Gimbal Micro-Positioner]   |
+-----------------------------------------------------------------------------+
                    

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

프티코그래피 스캔 중 위치 오차를 실시간 상쇄하는 10,000Hz C# 엔진 클래스입니다.

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Imaging.Ptychography
{
    public readonly struct PtychoConfig
    {
        public readonly double TargetOverlapRatio;
        public readonly double ProbeBeamDiameterNm;
        public readonly double MaxStepDeviationNm;
        public readonly double Kp;
        public readonly double Ki;

        public PtychoConfig(double targetOverlapRatio, double probeBeamDiameterNm,
                            double maxStepDeviationNm, double kp, double ki)
        {
            TargetOverlapRatio = targetOverlapRatio;
            ProbeBeamDiameterNm = probeBeamDiameterNm;
            MaxStepDeviationNm = maxStepDeviationNm;
            Kp = kp;
            Ki = ki;
        }
    }

    public ref struct PtychoScanServo
    {
        private readonly PtychoConfig _config;
        private double _positionIntegralX;
        private double _positionIntegralY;
        private double _correctedPosXNm;
        private double _correctedPosYNm;

        public PtychoScanServo(in PtychoConfig config)
        {
            _config = config;
            _positionIntegralX = 0.0;
            _positionIntegralY = 0.0;
            _correctedPosXNm = 0.0;
            _correctedPosYNm = 0.0;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public (double targetXNm, double targetYNm) Update(double measuredPosXNm, double measuredPosYNm,
                                                           double nominalStepXNm, double nominalStepYNm, double dtSec)
        {
            double errorX = (_correctedPosXNm + nominalStepXNm) - measuredPosXNm;
            double errorY = (_correctedPosYNm + nominalStepYNm) - measuredPosYNm;

            _positionIntegralX += errorX * dtSec;
            _positionIntegralY += errorY * dtSec;

            double deltaX = (_config.Kp * errorX) + (_config.Ki * _positionIntegralX);
            double deltaY = (_config.Kp * errorY) + (_config.Ki * _positionIntegralY);

            _correctedPosXNm = measuredPosXNm + Math.Clamp(deltaX, -_config.MaxStepDeviationNm, _config.MaxStepDeviationNm);
            _correctedPosYNm = measuredPosYNm + Math.Clamp(deltaY, -_config.MaxStepDeviationNm, _config.MaxStepDeviationNm);

            return (_correctedPosXNm, _correctedPosYNm);
        }
    }
}

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

본 설계는 2022 개정 물리 교과 내 '빛의 회절과 간섭', '푸리에 변환 광학', '계산 과학과 나노 이미징'을 융합한 최첨단 교구입니다. 렌즈 없이 회절 패턴의 겹침 정보만으로 나노미터급 고해상도 위상 이미지를 복원하는 현대 계산 회절 현미경학의 원리를 정량적으로 학습할 수 있습니다.