2022 개정 교육과정 연계 온디바이스 양자광학·미세입자역학 STEM 시리즈 #66

홀로그래픽 광집게(HOT) 궤도각운동량 광소용돌이 서보 엔진

라게르-가우스($\text{LG}_{0,l}$) 나선 위상 광소용돌이 광압 전달 및 0-Alloc C# 미세세포 3차원 트래핑 제어 루프

핵심 연구 개요 및 교과 연계

노벨 물리학상에 빛나는 아서 애슈킨(Arthur Ashkin)의 광집게(Optical Tweezers) 기술은 액정 공간 광변조기(Liquid Crystal SLM)를 결합한 홀로그래픽 광집게(HOT, Holographic Optical Tweezers)로 진화했습니다. 위상 특이점(Phase Singularity)을 지닌 라게르-가우스(Laguerre-Gaussian, $\text{LG}_{0,l}$) 광소용돌이 빔은 광자 하나당 $l \hbar$의 궤도 각운동량(OAM, Orbital Angular Momentum)을 운반합니다. 이 광선이 미세 유체 채널 내의 단일 세포나 미세 비드에 흡수·굴절될 때 광학 토크가 가해져 기계적 접촉 없이 시계/반시계 방향 회전 운동을 정밀 구동할 수 있습니다.

본 백서는 2022 개정 물리학 II (빛의 입자성과 광자의 운동량, 로렌츠 광압, 파동의 간섭과 홀로그래피), 미적분 (원통 좌표계 맥스웰 응력 텐서 면적분 및 게르히버그-색스톤(GS) 위상 복원 알고리즘), 그리고 정보 (C# 13 0-Alloc 스택 연산)를 결합하여, 고속 CMOS 카메라로 추적된 미세 입자의 회전 각속도 오차로부터 SLM 위상 홀로그램의 위상 단차를 1,000Hz로 재계산하는 온디바이스 광학 토크 서보 엔진을 완성합니다.

1. 라게르-가우스 광소용돌이 모드 및 광학 토크 전달 수리 모델

나선형 위상 인자 $\exp(i l \theta)$를 갖는 $\text{LG}_{0,l}$ 빔의 횡방향 전기장 분포는 다음과 같습니다:

$$E_{0,l}(r, \theta, z) = E_0 \frac{w_0}{w(z)} \left( \frac{\sqrt{2} r}{w(z)} \right)^{|l|} \exp\left( -\frac{r^2}{w^2(z)} \right) L_0^{|l|}\left( \frac{2r^2}{w^2(z)} \right) \exp\left( -i k \frac{r^2}{2 R(z)} + i l \theta - i \psi(z) \right)$$

입자에 흡수되는 총 레이저 출력 $P_{abs}$에 비례하여 전달되는 축상 광학 토크 $\tau_z$는 다음과 같이 주어집니다:

$$\tau_z = \frac{l}{\omega} P_{abs} = \frac{l \lambda}{2 \pi c} P_{abs}$$

점성도 $\eta$, 반경 $a$인 유체 속에서 회전하는 구형 입자의 스토크스 회전 항력 토크 $\tau_{drag} = 8 \pi \eta a^3 \Omega$와의 동적 평형에 의해 종단 회전 각속도 $\Omega$가 결정됩니다:

$$\Omega = \frac{\tau_z}{8 \pi \eta a^3} = \frac{l \lambda P_{abs}}{16 \pi^2 c \eta a^3}$$

온디바이스 서보 루프는 입자의 각속도 편차를 0-Alloc 스택에서 유한 차분하여 SLM의 회절 효율과 레이저 펌프 출력을 폐루프로 동시 제어합니다.

2. 0-Alloc C# 스택 기반 HOT 광소용돌이 각운동량 서보

비전 추적기 각변위로부터 각속도를 산출하고 광학 토크를 지휘하는 ref struct 엔진입니다.

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.QuantumOptics
{
    public readonly ref struct ParticleTrapTelemetry
    {
        public readonly double PositionXUm;
        public readonly double PositionYUm;
        public readonly double RotationAngleRad;
        public readonly double LaserPowerMw;
        public readonly double FluidViscosityCp;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public ParticleTrapTelemetry(double xUm, double yUm, double angleRad, double powerMw, double viscCp)
        {
            PositionXUm = xUm;
            PositionYUm = yUm;
            RotationAngleRad = angleRad;
            LaserPowerMw = powerMw;
            FluidViscosityCp = viscCp;
        }
    }

    public readonly ref struct OpticalTorqueControlResult
    {
        public readonly double MeasuredAngularVelocityRps;
        public readonly double LaserPowerAdjustmentMw;
        public readonly int TopologicalChargeL;
        public readonly bool IsTrappedStable;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public OpticalTorqueControlResult(double omegaRps, double powerAdjMw, int chargeL, bool isStable)
        {
            MeasuredAngularVelocityRps = omegaRps;
            LaserPowerAdjustmentMw = powerAdjMw;
            TopologicalChargeL = chargeL;
            IsTrappedStable = isStable;
        }
    }

    public ref struct HolographicOpticalTweezersServo
    {
        private readonly double _targetAngularVelocityRps;
        private readonly int _baseTopologicalCharge;
        private readonly double _kpPower;
        private double _prevAngleRad;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public HolographicOpticalTweezersServo(double targetOmegaRps, int baseL, double kp)
        {
            _targetAngularVelocityRps = targetOmegaRps;
            _baseTopologicalCharge = baseL;
            _kpPower = kp;
            _prevAngleRad = 0.0;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public OpticalTorqueControlResult Step(in ParticleTrapTelemetry telemetry, double dt)
        {
            // 1. 회전 각속도 유한 차분 (2pi 래핑 보정 포함)
            double deltaAngle = telemetry.RotationAngleRad - _prevAngleRad;
            if (deltaAngle > Math.PI) deltaAngle -= 2.0 * Math.PI;
            else if (deltaAngle < -Math.PI) deltaAngle += 2.0 * Math.PI;
            _prevAngleRad = telemetry.RotationAngleRad;

            double measuredOmega = dt > 0.0 ? (deltaAngle / dt) / (2.0 * Math.PI) : 0.0;

            // 2. 목표 각속도 오차에 따른 레이저 파워 보정 계산
            double omegaError = _targetAngularVelocityRps - measuredOmega;
            double powerAdjustmentMw = _kpPower * omegaError;

            // 3. 횡방향 트랩 안정도 판별 (중심 이탈 0.3um 이내)
            double radialDisplacement = Math.Sqrt(telemetry.PositionXUm * telemetry.PositionXUm + telemetry.PositionYUm * telemetry.PositionYUm);
            bool isStable = radialDisplacement < 0.30;

            // 4. 큰 오차 발생 시 위상 전하 L 동적 스케일링
            int targetL = _baseTopologicalCharge;
            if (Math.Abs(omegaError) > 5.0)
            {
                targetL = omegaError > 0 ? _baseTopologicalCharge + 2 : Math.Max(1, _baseTopologicalCharge - 2);
            }

            return new OpticalTorqueControlResult(measuredOmega, powerAdjustmentMw, targetL, isStable);
        }
    }
}

3. 교육적 가치 및 중고교 실험 시뮬레이션 적용

2022 개정 교육과정 연계 수업 가이드

  • 물리학 II [빛의 이중성과 광자]: 질량이 없는 빛(광자)이 운동량과 각운동량을 지녀 거시적 물체에 힘(광압)과 토크를 가할 수 있다는 현대물리학의 기본 명제 탐구.
  • 물리학 II [파동의 간섭과 회절]: 컴퓨터 생성 홀로그램(CGH)을 통해 빛의 위상을 변조하여 도넛 형태의 광학 소용돌이를 만드는 공간 위상 제어 실습.
  • 정보 [디지털 영상 처리와 피드백 제어]: 현미경 동영상 속 입자 윤곽을 추적하여 회전 속도를 계산하고 레이저 파워를 실시간 연동하는 광메카트로닉스 구현.