2022 개정 교육과정 연계 온디바이스 우주날씨·국가인프라전력망 STEM 시리즈 #50

지자기 유도 전류(GIC) 변압기 포화 억제 서보 엔진

패러데이 유도 기전력 준직류(Quasi-DC)에 의한 변압기 철심 반주기 포화 및 0-Alloc C# 중성점 차단 제어 루프

핵심 연구 개요 및 교과 연계

태양 플레어 및 코로나 질량 방출(CME)로 인한 거대 지자기 폭풍(Geomagnetic Storm)은 지구 자기장을 급격히 압축·요동시켜 대지 내부에 강력한 지전기장($\mathbf{E}_{geo}$)을 형성합니다. 이 패러데이 전자기 유도에 의해 초고압(765kV/345kV) 송전선로와 변전소 접지망을 통해 흐르는 준직류 성분을 지자기 유도 전류(GIC, Geomagnetically Induced Current)라 부릅니다. 수십~수백 암페어의 GIC가 대형 변압기 중성점으로 유입되면 철심의 반주기 직류 자기 포화(Half-cycle Saturation)가 발생하여, 여자 전류가 수십 배 폭증하고 권선 과열 및 극심한 고조파 왜곡으로 광역 블랙아웃을 초래합니다.

본 백서는 2022 개정 지구과학 II (태양 활동의 주기성과 우주 날씨, 지구 자기장과 자기권계면 요동), 물리학 II (패러데이 전자기 유도 법칙, 자성체의 자기 이력 곡선(B-H Curve)과 자기 포화), 미적분 (맥스웰 방정식 지전기장 편미분 및 푸리에 고조파 고속 변환), 그리고 정보 (C# 13 0-Alloc 스택 연산)를 결합하여, 변압기 중성점 직류 홀 센서와 무효전력 요동을 1,000Hz로 감시하고 중성점 직렬 저항/차단 스위치를 작동시키는 온디바이스 국가 그리드 GIC 방호 서보 엔진을 완성합니다.

1. 지전기장 패러데이 유도 및 변압기 철심 반주기 포화 수리 모델

지표면에서 측정되는 자기장 변화율 $\frac{d\mathbf{B}}{dt}$에 의해 유도되는 수평 지전기장 $\mathbf{E}(t)$는 대지 표면 임피던스 $Z(\omega)$와의 평면파 합성곱으로 표현됩니다:

$$E_x(\omega) = \frac{Z(\omega)}{\mu_0} B_y(\omega), \quad E_y(\omega) = -\frac{Z(\omega)}{\mu_0} B_x(\omega)$$

송전선 길이 $L$, 대지 저항을 포함한 폐루프 저항 $R_{loop}$를 통해 유입되는 중성점 전류 $I_{GIC}$는 선적분으로 주어집니다:

$$I_{GIC} = \frac{V_{ind}}{R_{loop}} = \frac{1}{R_{loop}} \int_A^B \mathbf{E} \cdot d\mathbf{l}$$

철심의 총 자속 밀도 $B(t)$는 교류 정현파 자속에 직류 바이어스 자속 $B_{dc} \propto I_{GIC}$가 중첩되어 포화 자속 밀도 $B_{sat} \approx 2.0\text{ T}$를 초과합니다:

$$B(t) = B_{ac} \sin(\omega t) + B_{dc} \implies B_{peak} > B_{sat}$$

포화 구간에서는 철심의 차분 투자율이 진공 수준으로 급락($\mu_r \rightarrow 1$)하여 대량의 누설 자속이 탱크 벽면으로 흘러 와전류 열손실과 짝수차 고조파(2차, 4차)가 폭증하므로, 서보 루프는 고조파 비율을 감지하여 5ms 이내에 차단기를 작동시킵니다.

2. 0-Alloc C# 스택 기반 전력망 GIC 포화 차단 서보

변압기 중성점 직류 전류 센서 및 전압 THD 신호로부터 철심 포화를 감지하고 중성점 감쇄 저항을 스위칭하는 ref struct 엔진입니다.

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.PowerGridDefense
{
    public readonly ref struct TransformerGicTelemetry
    {
        public readonly double NeutralDcCurrentAmps;
        public readonly double ReactivePowerMvarDemand;
        public readonly double TotalHarmonicDistortionPercent;
        public readonly double SecondHarmonicRatioPercent;
        public readonly double TankVibrationMmPerSec;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public TransformerGicTelemetry(double idc, double mvar, double thd, double h2Ratio, double vib)
        {
            NeutralDcCurrentAmps = idc;
            ReactivePowerMvarDemand = mvar;
            TotalHarmonicDistortionPercent = thd;
            SecondHarmonicRatioPercent = h2Ratio;
            TankVibrationMmPerSec = vib;
        }
    }

    public readonly ref struct GicMitigationResult
    {
        public readonly double EstimatedCoreSaturationPercent;
        public readonly double NeutralGroundResistanceOhms;
        public readonly bool TriggerCapacitiveBlocking;
        public readonly bool IsGridIntegritySafe;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public GicMitigationResult(double satPct, double rNeutral, double block, bool safe)
        {
            EstimatedCoreSaturationPercent = satPct;
            NeutralGroundResistanceOhms = rNeutral;
            TriggerCapacitiveBlocking = block;
            IsGridIntegritySafe = safe;
        }
    }

    public ref struct TransformerGicProtectionServo
    {
        private const double CriticalDcCurrentThresholdAmps = 25.0; // 25A 초과 시 포화 위험
        private readonly double _ratedCapacityMva;
        private double _accumulatedSaturationSec;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public TransformerGicProtectionServo(double ratedMva)
        {
            _ratedCapacityMva = ratedMva;
            _accumulatedSaturationSec = 0.0;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public GicMitigationResult Step(in TransformerGicTelemetry telemetry, double dt)
        {
            // 1. 직류 전류 및 2차 고조파 결합 철심 포화도(%) 추정
            double dcComponent = Math.Abs(telemetry.NeutralDcCurrentAmps);
            double satRatio = (dcComponent / CriticalDcCurrentThresholdAmps) * 0.7 + (telemetry.SecondHarmonicRatioPercent / 15.0) * 0.3;
            double saturationPercent = Math.Clamp(satRatio * 100.0, 0.0, 150.0);

            // 2. 포화 지속 시간 누적
            if (saturationPercent > 80.0)
            {
                _accumulatedSaturationSec += dt;
            }
            else
            {
                _accumulatedSaturationSec = Math.Max(0.0, _accumulatedSaturationSec - dt);
            }

            // 3. 중성점 커패시터 차단(Capacitive Blocking) 트리거 판별
            bool triggerBlock = (dcComponent > 40.0) || (_accumulatedSaturationSec > 2.0) || (telemetry.TotalHarmonicDistortionPercent > 8.0);

            // 4. 가변 중성점 접지 저항 (NER) 제어 (평상시 0.1옴 접지 -> 위기 시 10.0옴 저항 투입)
            double targetResistance = triggerBlock ? 10.0 : (saturationPercent > 50.0 ? 2.5 : 0.1);

            bool isSafe = !triggerBlock && saturationPercent < 70.0;

            return new GicMitigationResult(saturationPercent, targetResistance, triggerBlock, isSafe);
        }
    }
}

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

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

  • 지구과학 II [태양 활동과 우주 환경]: 태양 표면의 폭발 현상이 1억 5천만 km 떨어진 지구의 전력망에 수억 원대 피해를 주는 우주 날씨 재난 전파 경로 학습.
  • 물리학 II [전자기 유도와 변압기]: 교류 전용 변압기에 직류 전류가 유입될 때 자기 이력 곡선이 한쪽으로 쏠려 발생하는 철심 포화와 과열 메커니즘 탐구.
  • 정보 [국가 기반 시설 제어 알고리즘]: 전력 센서의 고조파 왜곡률과 직류 전류를 실시간 모니터링하여 설비 파괴를 막는 임베디드 계통 보호 시스템 제작.