전파와 광파 사이의 미개척 전자기 스펙트럼 대역인 테라헤르츠파($0.1 \sim 10\text{ THz}$, 파장 $30\mu\text{m} \sim 3\text{mm}$)는 X선과 달리 인체 및 복합재에 무해한 비전리 방사선이면서도 플라스틱, 세라믹, 탄소섬유강화플라스틱(CFRP) 등 비금속 재료를 깊이 투과하는 독보적인 특성을 지닙니다. 광전도 안테나(Auston Switch)에 펨토초 레이저 펄스를 조사하여 수 피코초($10^{-12}\text{ s}$) 폭의 단일 전자기 펄스를 생성·검출하는 '테라헤르츠 시역학 분광법(THz-TDS)'은 시간 영역 파형의 비행 시간(Time-of-Flight)과 진폭 감쇠로부터 매질의 주파수별 복소 굴절률($\tilde{n}(\omega) = n(\omega) + i\kappa(\omega)$)을 절대 위상과 함께 직접 추출합니다. 항공기 동체 및 무인 스텔스기 외피의 미세 박리(Delamination)와 공극(Void)을 실시간 검출하는 1,000Hz 0-Alloc C# 고속 위상 지연 서보 엔진을 공개합니다.
1. 2022 개정 교육과정 교과 연계 분석
- 물리학 (전자기파의 파동성과 매질 굴절률): 전자기파의 투과·반사, 스넬의 법칙, 프레넬 반사 계수, 파장과 진동수 관계($c = f\lambda$).
- 고급 물리학 (유전율 분산 및 광전자 상호작용): 복소 굴절률 $\tilde{n} = \sqrt{\epsilon_r}$, 드루드-로런츠(Drude-Lorentz) 모델에 의한 자유 전자 및 격자 포논 흡수 공명.
- 미적분 / 정보 (이산 푸리에 변환과 신호 분해): 시간 영역의 피코초 펄스 신호 $E(t)$를 주파수 스펙트럼 $E(\omega)$로 변환하고 크기비 및 위상차로부터 굴절률을 역해석하는 수치 알고리즘.
- 정보 및 제어 공학 (실시간 고속 신호 수집 및 0-Alloc 서보): 피에조 광학 지연 스테이지의 고속 왕복 주사선에서 1,000Hz 주기로 스택 메모리만을 사용하여 신호를 디지털 필터링하는 C# 엔진.
2. 핵심 수학적 모델링 및 물리 공식
1) 시간 영역 전송 함수 및 프레넬 복소 전송률 (Fresnel Transfer Function)
두께 $d$인 시편을 통과한 신호 $E_{sam}(\omega)$와 기준 신호 $E_{ref}(\omega)$의 주파수 도메인 복소 전달 함수 $H(\omega)$:
$$H(\omega) = \frac{E_{sam}(\omega)}{E_{ref}(\omega)} = \frac{4 \tilde{n}(\omega)}{(\tilde{n}(\omega) + 1)^2} \exp\left[ -i \frac{(\tilde{n}(\omega) - 1)\omega d}{c} \right] \cdot FP(\omega)$$ $$FP(\omega) = \sum_{k=0}^{\infty} \left[ \left(\frac{\tilde{n}(\omega) - 1}{\tilde{n}(\omega) + 1}\right)^2 \exp\left( -2i \frac{\tilde{n}(\omega)\omega d}{c} \right) \right]^k \text{ (패브리-페로 다중 반사)}$$2) 실수 굴절률 $n(\omega)$ 및 소광 계수 $\kappa(\omega)$ 해석해
전달 함수 크기 $\rho(\omega) = |H(\omega)|$ 및 위상 각 $\phi(\omega) = \angle H(\omega)$로부터 추출되는 광학 상수:
$$n(\omega) = 1 - \frac{c \phi(\omega)}{\omega d}$$ $$\kappa(\omega) = -\frac{c}{\omega d} \ln\left[ \frac{(n(\omega) + 1)^2}{4 n(\omega)} \rho(\omega) \right], \quad \alpha(\omega) = \frac{2\omega \kappa(\omega)}{c} \text{ (흡수 계수)}$$3) 비행 시간(Time-of-Flight) 기반 내부 결함 깊이 측정식
기준 표면 반사 펄스와 내부 박리 결함 계면 반사 펄스 사이의 시간차 $\Delta t_{delay}$에 따른 결함 깊이 $z_{defect}$:
$$z_{defect} = \frac{c \Delta t_{delay}}{2 n_g}, \quad n_g = n(\omega) + \omega \frac{dn}{d\omega} \text{ (군굴절률)}$$3. 1,000Hz 0-Alloc C# THz-TDS 비파괴 결함 진단 서보 엔진
피에조 광지연기(ODL)로부터 1,000Hz 주기로 유입되는 128-포인트 시간 영역 펄스 파형을 수집하여 피크 비행시간 및 에너지 흡수율을 스택 메모리 상에서 무할당으로 연산하고 결함 위치를 출력하는 C# 엔진입니다.
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace ZeliDesk.Stem.ThzInspection
{
/// <summary>
/// THz 시역학 펄스 파형 데이터 (스택 할당 0-Alloc)
/// </summary>
[StructLayout(LayoutKind.Sequential, Pack = 8)]
public readonly struct ThzWaveformSpan
{
public readonly double PeakAmplitude;
public readonly double TimeToPeakPs;
public readonly double TotalPulseEnergy;
public readonly double SignalToNoiseRatio;
public ThzWaveformSpan(double peak, double timePs, double energy, double snr)
{
PeakAmplitude = peak;
TimeToPeakPs = timePs;
TotalPulseEnergy = energy;
SignalToNoiseRatio = snr;
}
}
/// <summary>
/// 비파괴 검사 결함 판정 결과
/// </summary>
public ref struct DefectAnalysisResult
{
public bool DefectDetected;
public double DefectDepthMm;
public double ExtinctionCoefficient;
public double OpticalDensity;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public DefectAnalysisResult(bool detected, double depthMm, double kappa, double od)
{
DefectDetected = detected;
DefectDepthMm = depthMm;
ExtinctionCoefficient = kappa;
OpticalDensity = od;
}
}
/// <summary>
/// 1,000Hz 무할당 THz-TDS 복합재 결함 진단 서보 엔진
/// </summary>
public ref struct ThzTdsInspectionEngine
{
private const double LightSpeedMmPerPs = 0.299792458; // mm/ps
private const double MatrixRefractiveIndex = 1.85; // CFRP 수지 모재 굴절률
private const double BaselineRefPeak = 1.0; // 공기 기준 피크 진폭
private double _filteredEnergyLoss;
private double _referenceTimePs;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CalibrateReference(double refTimePs)
{
_referenceTimePs = refTimePs;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void ExecuteDiagnosticCycle(
in ThzWaveformSpan measuredSample,
double sampleThicknessMm,
out DefectAnalysisResult result,
out double estimatedRefractiveIndex)
{
// 1. 비행 시간차(Time-of-Flight)를 통한 매질 굴절률 계산
double deltaTPs = measuredSample.TimeToPeakPs - _referenceTimePs;
estimatedRefractiveIndex = 1.0 + (LightSpeedMmPerPs * deltaTPs) / Math.Max(sampleThicknessMm, 0.01);
// 2. 투과 신호 진폭 감쇄로부터 소광 계수(kappa) 및 광학 밀도(OD) 계산
double transmissionRatio = Math.Clamp(measuredSample.PeakAmplitude / BaselineRefPeak, 1e-6, 1.0);
double opticalDensity = -Math.Log10(transmissionRatio);
double centerFrequencyTHz = 1.0; // 1 THz
double omega = 2.0 * Math.PI * centerFrequencyTHz * 1e12;
double cMmPerS = LightSpeedMmPerPs * 1e12; // mm/s
double kappa = (-cMmPerS / (omega * sampleThicknessMm)) * Math.Log(transmissionRatio);
// 3. 결함(공극/박리) 판정: 에어갭 형성 시 국소 반사 시간차 및 비정상 에너지 손실 감지
double expectedDeltaT = (estimatedRefractiveIndex - 1.0) * sampleThicknessMm / LightSpeedMmPerPs;
double anomalyPs = Math.Abs(deltaTPs - expectedDeltaT);
bool defect = false;
double defectDepthMm = 0.0;
if (anomalyPs > 0.4 || opticalDensity > 1.8) // 시간 지연 오차 0.4ps 초과 또는 고감쇠
{
defect = true;
// 에어갭 계면 비행시간차로부터 깊이 역산
defectDepthMm = (deltaTPs * LightSpeedMmPerPs) / (2.0 * MatrixRefractiveIndex);
defectDepthMm = Math.Clamp(defectDepthMm, 0.0, sampleThicknessMm);
}
result = new DefectAnalysisResult(defect, defectDepthMm, kappa, opticalDensity);
}
}
}
4. 방통대 우호성 교수 랩실 연구 지도 및 직무연수 활용 가이드
- 초·중·고 과학교사 직무연수: 전자기파의 투과성과 진동수 대역별 특성(전파, 테라헤르츠, 가시광선, X선)을 비교하고, 방사선 피폭 없이 물체 내부를 보는 차세대 전자기 센서의 물리적 원리를 수업 지도안으로 구성할 수 있습니다.
- 물리-수학 융합 탐구: 파동의 비행 시간(Time-of-Flight)과 굴절률 공식($v = c/n$)을 삼각함수 위상 지연 수식과 결합하여, 교과서 속 물리학 이론이 첨단 스텔스기 비파괴 검사에 적용되는 사례를 실습할 수 있습니다.
- 국방 무인기 외피 및 스텔스 복합재 검사: 무인 스텔스 전투기 및 복합재 함정의 레이더 흡수 물질(RAM) 코팅 박리 및 내부 균열을 정비 현장에서 1,000Hz 실시간으로 탐지하는 국방 AI 교과서 비파괴 검사 모듈로 활용 가능합니다.