1. 개요 및 연구 배경

2022 개정 물리학 II 파동 광학 단원(빛의 회절 한계, 간섭 및 기하광학적 수차 보정)과 고급 수학(극좌표계 직교 함수 전개 및 행렬 의사역행렬 역산)을 융합하는 차세대 적응광학(Adaptive Optics) 시스템 모델입니다. 지상 초대형 천체망원경(ELT) 및 우주 망원경은 대기 난류 또는 궤도상 열 변형으로 인해 입사 평면파 파면이 심각하게 왜곡되어 회절 한계(Diffraction Limit) 해상도를 상실합니다.

섁-하트만(Shack-Hartmann) 파면 센서는 마이크로렌즈 어레이를 통해 수차 파면을 국소 기울기(Local Slope) 벡터로 분할 계측하며, 변형거울(Deformable Mirror, DM)의 수백 개 압전 피에조 액추에이터(PZT Actuator)가 실시간으로 반대 형상으로 변형하여 파면 오차를 상쇄합니다.

본 연구에서는 국방 우주감시 위성 및 정밀 정찰 위성의 회절 한계 복원을 위해, 0-Alloc C# 10,000Hz Zernike 다항식 분해 및 고속 모달 행렬 피드백 제어 서보 엔진을 설계하고 실시간 성능을 검증합니다.

2. 수학적 및 파면 광학 모델링

원형 동공(Circular Pupil) \(r \le 1, 0 \le \theta < 2\pi\) 상의 수차 파면 \(\Phi(r, \theta)\)는 직교 Zernike 다항식 \(Z_n^m(r, \theta)\)의 무한 급수로 전개됩니다:

\[ \Phi(r, \theta) = \sum_{j=1}^J a_j Z_j(r, \theta) = \sum_{n=0}^\infty \sum_{m=-n}^n a_n^m R_n^{|m|}(r) \Theta_m(\theta) \]

여기서 반경 방향 다항식 \(R_n^m(r)\)은 다음과 같이 정의됩니다:

\[ R_n^m(r) = \sum_{k=0}^{\frac{n-m}{2}} \frac{(-1)^k (n-k)!}{k! \left(\frac{n+m}{2} - k\right)! \left(\frac{n-m}{2} - k\right)!} r^{n-2k} \]

섁-하트만 센서의 \(k\)번째 서브애퍼처에서의 스팟 중심 이동 \((S_x^k, S_y^k)\)은 국소 파면 기울기의 면적 평균에 비례합니다:

\[ S_x^k = \frac{f_{\text{lens}}}{A_k} \iint_{A_k} \frac{\partial \Phi}{\partial x} dx dy = \sum_{j=1}^J G_{xj}^k a_j \]

기울기 벡터 \(\mathbf{s} \in \mathbb{R}^{2K}\)와 Zernike 모드 벡터 \(\mathbf{a} \in \mathbb{R}^J\) 간의 상호작용 행렬 \(\mathbf{G}\)에 대해 특이값 분해(SVD) 의사역행렬을 통한 최소자승 역산:

\[ \mathbf{a} = (\mathbf{G}^T \mathbf{G} + \lambda \mathbf{I})^{-1} \mathbf{G}^T \mathbf{s} = \mathbf{G}^\dagger \mathbf{s} \]

3. 0-Alloc C# 초고속 10,000Hz 파면 복원 및 압전 구동 서보

10,000Hz 클록에서 힙 할당 없이 스택 메모리 상에서 Shack-Hartmann 슬로프 벡터를 Zernike 모드 전압으로 직접 매핑하는 무할당 서보입니다:

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.AdaptiveOptics
{
    public readonly ref struct WavefrontSlope
    {
        public readonly double Dx;
        public readonly double Dy;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public WavefrontSlope(double dx, double dy)
        {
            Dx = dx;
            Dy = dy;
        }
    }

    public static class DeformableMirrorServoEngine
    {
        public const int NumSubApertures = 16;
        public const int NumZernikeModes = 8;
        public const int NumActuators = 16;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static void ReconstructAndDrive(
            ReadOnlySpan slopes,
            ReadOnlySpan reconstructorMatrix, // [NumActuators x (2 * NumSubApertures)]
            Span actuatorVoltages,
            double gain)
        {
            // 0-Alloc Matrix-Vector Multiply
            int slopeDim = slopes.Length * 2;

            for (int act = 0; act < NumActuators; act++)
            {
                double sum = 0.0;
                int rowOffset = act * slopeDim;

                for (int sub = 0; sub < slopes.Length; sub++)
                {
                    sum += reconstructorMatrix[rowOffset + sub * 2] * slopes[sub].Dx;
                    sum += reconstructorMatrix[rowOffset + sub * 2 + 1] * slopes[sub].Dy;
                }

                // Closed-loop integrator
                double targetV = actuatorVoltages[act] - gain * sum;

                // Saturation Clamp (-100V ~ +100V)
                if (targetV > 100.0) targetV = 100.0;
                if (targetV < -100.0) targetV = -100.0;

                actuatorVoltages[act] = targetV;
            }
        }
    }
}

4. 2022 개정 교육과정 연계 및 우주국방 응용

  • 물리학 II: 파동의 회절 한계(에어리 디스크 Airy Disk) 및 파면 수차가 상 형성에 미치는 영향 해석.
  • 기하와 벡터 / 고급 수학: 2차원 극좌표 직교 함수 기저 전개 및 고차원 행렬 의사역행렬 변환.
  • 국방 우주감시: 저궤도 정찰위성 광학계 발사 충격 및 우주 궤도 열팽창 변형 실시간 능동 보정.