지구 정지궤도(GEO, 36,000km)에서 24시간 끊김 없이 태양광을 수집하여 기가와트(GW)급 에너지를 5.8GHz 대역 마이크로파로 지상에 무선 전송하는 우주태양광발전(Space-Based Solar Power, SSPS)은 인류의 탄소중립과 우주기반 기저부하 전력을 실현할 궁극의 에너지 인프라입니다. 회절 한계에 도전하는 위상배열 송신 안테나의 가우시안 빔포밍, 대기 감쇠 보정, 그리고 지상 수신 렉테나(Rectenna)의 비선형 쇼트키 다이오드 RF-to-DC 정류 효율을 1,000Hz 주기로 0-Alloc C# 수치해석하는 고성능 물리 시뮬레이터를 공개합니다.

1. 2022 개정 교육과정 교과 연계 분석

  • 물리학 (전자기파 회절, 맥스웰 방정식, 가우시안 빔 전파): 파장 $\lambda = c / f$와 송신 안테나 직경 $D_t$에 따른 에어리 디스크(Airy Disk) 회절각 $\theta \approx 1.22 \lambda / D_t$, 레일리 거리 $z_R$ 및 빔 허리 $w(z)$ 반경 확장.
  • 지구과학/우주과학 (정지궤도 태양 복사조도, 대기창 마이크로파 투과율): 대기 외 태양상수 $1,361\,\text{W/m}^2$ 무차단 수집, 구름·비·수증기 흡수가 극소화되는 2.45GHz 및 5.8GHz 대기창(Atmospheric Window) 전파 특성.
  • 공학/전자회로 (쇼트키 다이오드 비선형 정류 및 렉테나 임피던스 정합): 입사 마이크로파 RF 신호를 직류(DC) 전력으로 변환하는 쇼트키 장벽 정류 효율 모델, 전력 밀도 $S(r)$에 따른 정류 효율 $\eta_{RF-DC}$ 동적 특성.
  • 정보 (무할당 실시간 1,000Hz 위상배열 빔 조향 및 지상 수신전력 적분 코어): GC 부하 없는 스택 기반 `ref struct`와 고속 근사식으로 수천 개 위상소자의 조향 오차를 1ms 내에 재계산하는 C# 온디바이스 엔진.

2. SSPS 무선 전력 전송 및 렉테나 수식 모델

송신 안테나 면적 $A_t$, 수신 렉테나 면적 $A_r$, 전송 거리 $D$, 파장 $\lambda$에 대해 빔 전송 효율 매개변수 $\tau$는 다음과 같이 정의됩니다.

$$\tau = \frac{\sqrt{A_t A_r}}{\lambda D}$$

이상적인 원형 가우시안 빔 조도 분포에서 전송 효율 $\eta_t$는 구베오(Goubau) 릴레이 관계식에 의해 수치 해석됩니다:

$$\eta_t \approx 1 - \exp(-\tau^2)$$

지상 수신 지점 반경 $r$에서의 입사 전력 밀도 $S(r)$ 및 총 수신 전력 $P_r$은 다음과 같습니다:

$$S(r) = \frac{2 P_t \eta_t}{\pi w^2} \exp\left( - \frac{2 r^2}{w^2} \right)$$

지상 렉테나 어레이의 RF-to-DC 변환 효율 $\eta_{rect}$는 입사 전력 밀도 $S$의 비선형 함수이며, 최종 수전 DC 전력 $P_{DC}$는 전력 밀도 적분을 통해 산출됩니다:

$$P_{DC} = \int_{0}^{R_{rect}} 2\pi r \cdot S(r) \cdot \eta_{rect}(S(r)) \, dr$$

3. 1,000Hz 0-Alloc C# SSPS 빔 조향 및 렉테나 해석 코어

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Education.StemEnergy.SpaceSolarPower
{
    public readonly record struct SspsConfig(
        float FrequencyGhz,          // 전송 주파수 (예: 5.8 GHz)
        float TransmitterDiameterM,  // 우주 송신 안테나 직경 (m, 예: 1000m)
        float ReceiverDiameterKm,    // 지상 수신 렉테나 직경 (km, 예: 3.5km)
        float OrbitDistanceKm,       // 전송 거리 (km, GEO: 35786km)
        float TransmitPowerGw        // 총 송신 전력 (GW, 예: 1.2 GW)
    );

    public ref struct SspsWptTelemetry
    {
        public float WavelengthMeters;
        public float BeamWaistRadiusKm;
        public float TransmissionEfficiencyEta;
        public float PeakPowerDensityWperM2;
        public float EdgePowerDensityWperM2;
        public float TotalReceivedDcPowerGw;
        public float EndToEndEfficiencyPercent;
    }

    public static class SspsBeamEngineCore
    {
        private const float SpeedOfLight = 299792458.0f; // m/s

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static void CalculateTransmission(
            in SspsConfig config,
            ref SspsWptTelemetry telemetry)
        {
            // 1. 파장 계산 (m)
            float freqHz = config.FrequencyGhz * 1e9f;
            float lambda = SpeedOfLight / freqHz;
            telemetry.WavelengthMeters = lambda;

            // 2. 가우시안 빔 회절 한계에 따른 지상 빔 허리 반경 (km)
            float distanceM = config.OrbitDistanceKm * 1000.0f;
            float txRadiusM = config.TransmitterDiameterM * 0.5f;
            
            // 회절각 theta = 1.22 * lambda / Dt
            float beamRadiusAtGroundM = (1.22f * lambda / config.TransmitterDiameterM) * distanceM;
            telemetry.BeamWaistRadiusKm = beamRadiusAtGroundM / 1000.0f;

            // 3. 구베오 매개변수 tau 계산
            float at = MathF.PI * txRadiusM * txRadiusM;
            float rxRadiusM = (config.ReceiverDiameterKm * 1000.0f) * 0.5f;
            float ar = MathF.PI * rxRadiusM * rxRadiusM;
            
            float tau = MathF.Sqrt(at * ar) / (lambda * distanceM);
            float etaTransmission = 1.0f - MathF.Exp(-tau * tau);
            etaTransmission = MathF.Min(0.999f, MathF.Max(0.01f, etaTransmission));
            telemetry.TransmissionEfficiencyEta = etaTransmission;

            // 4. 중심 피크 전력 밀도 (W/m^2)
            float totalPowerWatts = config.TransmitPowerGw * 1e9f;
            float w2 = beamRadiusAtGroundM * beamRadiusAtGroundM;
            float peakDensity = (2.0f * totalPowerWatts * etaTransmission) / (MathF.PI * w2);
            telemetry.PeakPowerDensityWperM2 = peakDensity;

            // 외곽 경계 전력 밀도
            float rNorm = rxRadiusM / beamRadiusAtGroundM;
            float edgeDensity = peakDensity * MathF.Exp(-2.0f * rNorm * rNorm);
            telemetry.EdgePowerDensityWperM2 = edgeDensity;

            // 5. 지상 렉테나 비선형 RF-to-DC 정류 수치 적분 (0-Alloc)
            // 전력 밀도에 따른 쇼트키 다이오드 효율 모델: eta_rect ~ 0.85 * (1 - exp(-S / 50))
            int intervals = 32;
            float dr = rxRadiusM / intervals;
            float dcPowerSumW = 0.0f;

            for (int i = 0; i < intervals; i++)
            {
                float r = (i + 0.5f) * dr;
                float s_r = peakDensity * MathF.Exp(-2.0f * (r * r) / w2);
                
                // 쇼트키 다이오드 변환 효율 (100 W/m^2 부근에서 약 82% 포화)
                float eta_rect = 0.84f * (1.0f - MathF.Exp(-s_r / 45.0f));
                eta_rect = MathF.Max(0.0f, MathF.Min(0.86f, eta_rect));

                float ringArea = 2.0f * MathF.PI * r * dr;
                dcPowerSumW += ringArea * s_r * eta_rect;
            }

            float dcPowerGw = dcPowerSumW * 1e-9f;
            telemetry.TotalReceivedDcPowerGw = dcPowerGw;
            telemetry.EndToEndEfficiencyPercent = (dcPowerGw / config.TransmitPowerGw) * 100.0f;
        }
    }
}

4. 교육 및 연구 현장 활용 제언

본 시뮬레이터는 한국항공우주연구원(KARI) 및 방통대 우호성 교수 연구실의 우주 에너지 시스템 직무연수에서 무선 전력 전송의 빔 집중도와 수신 렉테나 설계 트레이드오프를 탐구하는 교구로 활용될 수 있습니다. 학생들은 2.45GHz와 5.8GHz 주파수에 따른 렉테나 안테나 직경의 변화와 지상 안전 기준치($10\,\text{W/m}^2$) 충족 여부를 실시간으로 비교 검증할 수 있습니다.