2022 개정 교육과정 연계 온디바이스 양자터널링·나노계측 STEM 시리즈 #62

주사 터널링 현미경(STM) 피코미터 Z축 서보 엔진

단원자 표면 터널링 전류($I \propto e^{-2\kappa d}$) 추종 및 0-Alloc C# 압전 튜브 팁 충돌 방지 제어 루프

핵심 연구 개요 및 교과 연계

개별 원자의 배열과 전자 국소 상태 밀도(LDOS)를 원자 단위로 시각화하는 주사 터널링 현미경(STM, Scanning Tunneling Microscopy)의 핵심은 양자역학적 터널링 효과(Quantum Tunneling Effect)입니다. 원자 1개 두께의 날카로운 텅스텐($\text{W}$) 팁과 전도성 시료 표면 간격($d \sim 0.5\text{ nm}$)에 바이어스 전압($V_b$)을 걸면 진공 장벽을 투과하는 터널링 전류($I_t \sim 0.1\sim 10\text{ nA}$)가 흐르며, 이 전류는 간격 $d$에 대해 지수함수적으로 민감($0.1\text{ nm}$ 변화당 10배 변동)합니다. 원자 스텝(Step Edge)이나 불순물 돌출부를 지날 때 응답 지연으로 인한 팁 충돌(Tip Crash)은 즉각적인 원자 팁 둔화와 시료 손상을 초래합니다.

본 백서는 2022 개정 물리학 II (물질파와 양자 터널링, 압전 효과와 전자기력), 미적분 (바딘(Bardeen) 터널링 해밀토니안 지수 미분 및 비선형 로그 피드백), 그리고 정보 (C# 13 0-Alloc 스택 연산)를 결합하여, 로그 증폭기 출력으로부터 거리 편차를 실시간 선형화하고 PZT 압전 튜브 Z축 전압을 10,000Hz로 피코미터($\text{pm}$) 단위 제어하는 온디바이스 초고속 STM 서보 아키텍처를 제시합니다.

1. 1차원 양자 장벽 터널링 및 바딘(Bardeen) 전이 확률 모델

페르미 준위 근처에서 유효 일함수 $\Phi$를 갖는 진공 장벽을 통과하는 터널링 감쇄 상수 $\kappa$와 전류 밀도 $J$는 다음과 같습니다:

$$\kappa = \frac{\sqrt{2 m_e \Phi}}{\hbar} \approx 0.51 \sqrt{\Phi\text{ [eV]}} \quad (\text{\AA}^{-1})$$
$$I_t(d) \approx I_0 \cdot \exp\left( -2 \kappa d \right) \implies \ln(I_t) = \ln(I_0) - 2 \kappa d$$

로그 변환된 오차 신호 $e_{\ln} = \ln(I_{set}) - \ln(I_{measured})$는 팁-시료 간격 변위 $\Delta d$에 엄격히 선형 비례하므로:

$$\Delta d = \frac{e_{\ln}}{2 \kappa}$$

압전 계수 $d_{33}$ ($\sim 2\text{ nm/V}$)를 갖는 PZT 튜브에 인가되는 보정 전압 $\Delta V_z$는 PI 제어로 출력되어 팁 간극을 일정하게 유지합니다:

$$\Delta V_z(t) = K_p \Delta d(t) + K_i \int \Delta d(t') dt'$$

2. 0-Alloc C# 스택 기반 STM 피코미터 Z축 서보

터널링 전류의 급격한 이상 폭증을 감지하여 팁을 즉각 후퇴시키는 충돌 방지 로직이 내장된 ref struct 제어 엔진입니다.

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.ScanningProbeMicroscopy
{
    public readonly ref struct StmTelemetry
    {
        public readonly double TunnelingCurrentNa;
        public readonly double BiasVoltageV;
        public readonly double CurrentPiezoVoltageVz;
        public readonly double ScanVelocityNmPerSec;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public StmTelemetry(double iNa, double vBias, double vz, double vScan)
        {
            TunnelingCurrentNa = iNa;
            BiasVoltageV = vBias;
            CurrentPiezoVoltageVz = vz;
            ScanVelocityNmPerSec = vScan;
        }
    }

    public readonly ref struct StmZControlResult
    {
        public readonly double TargetPiezoVoltageVz;
        public readonly double EstimatedGapDistancePm;
        public readonly bool EmergencyRetractActive;
        public readonly double SurfaceTopographyHeightPm;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public StmZControlResult(double targetVz, double gapPm, bool retract, double heightPm)
        {
            TargetPiezoVoltageVz = targetVz;
            EstimatedGapDistancePm = gapPm;
            EmergencyRetractActive = retract;
            SurfaceTopographyHeightPm = heightPm;
        }
    }

    public ref struct StmPiezoZServo
    {
        private const double KappaAInv = 1.1; // 1.1 Angstrom^-1 (약 11 nm^-1)
        private readonly double _setpointCurrentNa;
        private readonly double _kp;
        private readonly double _ki;
        private readonly double _piezoSensitivityPmPerV; // 예: 2000 pm/V
        private double _integratedErrorPm;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public StmPiezoZServo(double setpointNa, double kp, double ki, double piezoSensPmPerV)
        {
            _setpointCurrentNa = setpointNa;
            _kp = kp;
            _ki = ki;
            _piezoSensitivityPmPerV = piezoSensPmPerV;
            _integratedErrorPm = 0.0;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public StmZControlResult Step(in StmTelemetry telemetry, double dt)
        {
            // 1. 긴급 팁 충돌 회피 판별 (설정 전류의 5배 초과 시)
            if (telemetry.TunnelingCurrentNa > 5.0 * _setpointCurrentNa)
            {
                // 즉각 팁 후퇴: 최대 역방향 전압 인가
                return new StmZControlResult(-150.0, 0.0, true, 0.0);
            }

            // 2. 로그 증폭 선형 오차 산출 (nm 단위 변위 오차)
            double safeCurrent = Math.Max(1e-4, telemetry.TunnelingCurrentNa);
            double logError = Math.Log(_setpointCurrentNa) - Math.Log(safeCurrent);

            // delta_d (nm) = logError / (2 * kappa)
            double deltaGapNm = logError / (2.0 * (KappaAInv * 10.0));
            double deltaGapPm = deltaGapNm * 1000.0;

            // 3. PI 컨트롤러
            _integratedErrorPm += deltaGapPm * dt;
            double controlDeltaPm = _kp * deltaGapPm + _ki * _integratedErrorPm;

            // 4. 압전 구동 전압으로 환산
            double deltaVz = controlDeltaPm / _piezoSensitivityPmPerV;
            double targetVz = Math.Clamp(telemetry.CurrentPiezoVoltageVz + deltaVz, -150.0, 150.0);

            // 5. 표면 원자 높이 단차 지형도 산출 (Z 전압의 반대 부호가 실제 표면 요철)
            double surfaceHeightPm = -targetVz * _piezoSensitivityPmPerV;

            return new StmZControlResult(targetVz, deltaGapPm, false, surfaceHeightPm);
        }
    }
}

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

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

  • 물리학 II [미시 세계와 양자역학]: 고전역학적으로는 넘을 수 없는 전위 장벽을 전자가 확률적으로 투과하는 양자 터널링의 수학적 지수 감쇠 특성 이해.
  • 물리학 II [전자기와 신소재]: 전압 인가 시 결정 격자가 수 피코미터 단위로 정밀 신축하는 압전 세라믹(PZT) 액추에이터의 역압전 효과 응용.
  • 정보 [실시간 센서 제어와 이상치 보호]: 원자 계단 충돌과 같은 이상치를 마이크로초 단위로 판단하여 팁 파손을 막는 인터럽트 세이프가드 프로그래밍.