2022 개정 교육과정 연계 온디바이스 신재생에너지·열역학 STEM 시리즈 #85

유기 랭킨 사이클(ORC) 증발기 과열도 및 핀-튜브 열교환 서보 엔진

중저온 지열수 열원 R245fa 액적 터빈 유입(Liquid Slug) 방지 및 0-Alloc C# 팽창 밸브 PID 루프

핵심 연구 개요 및 교과 연계

화산 지대가 아닌 비화산성 한반도에서도 활용 가능한 중저온($100^\circ ext{C} \sim 150^\circ ext{C}$) 심부 지열 에너지를 전력으로 변환하는 표준 기술은 물 대신 저비점 유기 유체(R245fa, 비점 $15.3^\circ ext{C}$)를 작동 유체로 쓰는 유기 랭킨 사이클(Organic Rankine Cycle, ORC)입니다. 증발기 출구에서 기화되지 않은 미세 액적이 고속 팽창 터빈에 충돌하면 날개가 파손(Liquid Slugging Erosion)되므로, 터빈 입구 증기의 과열도(Degree of Superheat, $\Delta T_{sh} = T_{vap} - T_{sat}(P_{evap})$)를 지열수 유량 변동에도 항상 일정하게 유지하는 정밀 밸브 서보 제어가 발전 플랜트의 생명선입니다.

본 백서는 2022 개정 지구과학 II (지온 경사율과 지열 에너지의 원리, 신재생 에너지의 특성), 화학 II (기체의 증기압 곡선, 상변화 엔탈피와 엑서지 효율), 미적분 (대수평균온도차 LMTD 및 $\epsilon$-NTU 열교환 비선형 미분), 그리고 정보 (C# 13 0-Alloc 스택 연산)를 통합하여, 전자식 팽창 밸브(EEV) 스텝을 마이크로초 단위로 가변하는 온디바이스 ORC 서보 엔진을 구축합니다.

1. $\epsilon$-NTU 열교환 역학 및 앙투안(Antoine) 증기압 관계식

증발기 내 지열수와 R245fa 유기 냉매 간의 열전달률 $\dot{Q}$는 대수평균온도차(LMTD)로 표현됩니다:

$$\dot{Q} = U A \Delta T_{lm} = U A rac{(T_{geo, in} - T_{ref, out}) - (T_{geo, out} - T_{ref, in})}{\ln\left( rac{T_{geo, in} - T_{ref, out}}{T_{geo, out} - T_{ref, in}} ight)}$$

증발 압력 $P_{evap}$에 따른 포화 온도 $T_{sat}$는 앙투안(Antoine) 증기압 방정식으로 정식화됩니다:

$$\log_{10} P_{sat}(T) = A - rac{B}{T + C} \quad \Longrightarrow \quad T_{sat}(P) = rac{B}{A - \log_{10} P} - C$$

터빈 입구 온도 $T_{in}$과 포화 온도 $T_{sat}$의 차이인 유효 과열도 $\Delta T_{sh} = T_{in} - T_{sat}(P_{evap})$를 목표 안전 여유치($+5.0 ext{ K}$)로 수렴시킵니다.

2. 0-Alloc C# 스택 기반 전자식 팽창 밸브(EEV) 서보

압력 트랜스미터와 고정밀 RTD 온도 센서 신호로부터 과열도를 실시간 추정하고 EEV 스테퍼 모터 스텝을 지령하는 ref struct 아키텍처입니다.

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.GeothermalEnergy
{
    public readonly ref struct OrcTelemetry
    {
        public readonly double EvaporatorPressureBar;
        public readonly double TurbineInletTempC;
        public readonly double GeothermalWaterFlowKgS;
        public readonly double GeothermalInletTempC;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public OrcTelemetry(double pBar, double tIn, double flow, double tGeo)
        {
            EvaporatorPressureBar = pBar;
            TurbineInletTempC = tIn;
            GeothermalWaterFlowKgS = flow;
            GeothermalInletTempC = tGeo;
        }
    }

    public ref struct OrcSuperheatServo
    {
        private const double TargetSuperheatK = 5.0; // 5K 안전 과열도
        private double _accumulatedShError;
        private double _prevShError;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public OrcSuperheatServo(double dummy)
        {
            _accumulatedShError = 0.0;
            _prevShError = 0.0;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public double StepServo(in OrcTelemetry telem, double dt, out int eevStepCommand, out double thermalEfficiencyPercent)
        {
            // 1. R245fa 앙투안 식 기반 포화 온도 Tsat 계산 (Bar -> kPa)
            double pKpa = telem.EvaporatorPressureBar * 100.0;
            double logP = Math.Log10(pKpa);
            // Antoine 상수 (R245fa): A = 6.845, B = 1045.2, C = 236.8
            double tSatC = (1045.2 / (6.845 - logP)) - 236.8;

            // 2. 현재 과열도 산출 및 오차 추종
            double currentSuperheat = telem.TurbineInletTempC - tSatC;
            double shError = currentSuperheat - TargetSuperheatK;
            _accumulatedShError += shError * dt;
            double dSh = (shError - _prevShError) / dt;
            _prevShError = shError;

            // 3. EEV(전자식 팽창 밸브) 스테퍼 모터 지령 (과열도 높으면 밸브 열어 냉매 유량 증대)
            double kp = 45.0;
            double ki = 6.0;
            double kd = 3.5;
            double stepAdjust = kp * shError + ki * _accumulatedShError + kd * dSh;

            eevStepCommand = (int)Math.Clamp(250.0 + stepAdjust, 50.0, 480.0); // 0~500 풀스텝

            // 4. 카르노 기준 ORC 사이클 열효율 추정
            double tHotK = telem.TurbineInletTempC + 273.15;
            double tColdK = 25.0 + 273.15; // 25도 냉각탑 응축
            thermalEfficiencyPercent = (1.0 - (tColdK / tHotK)) * 0.55 * 100.0; // 내부 엑서지 효율 55%

            return currentSuperheat;
        }
    }
}

3. 시뮬레이션 및 친환경에너지 교구 검증

지열수 공급 온도 $125^\circ ext{C}$, 유량 $\pm 20\%$ 급변 외란 조건 시험 결과:

지구과학 II/화학 II 지도 교사 및 지열발전 연구원을 위한 제언

지구과학 II의 '지열 에너지' 단원과 화학 II의 '상변화와 증기압'을 결합하여, 땅속 열이 어떻게 전기에너지로 변환되는지 그 핵심 열역학 서보 제어 과정을 C# 코드로 생생하게 시각화할 수 있습니다.