2022 개정 교육과정 연계 온디바이스 소형핵융합·고에너지밀도플라스마 STEM 시리즈 #56

전단 유동 안정화 Z-핀치 플라스마 서보 엔진

축방향 속도 구배($dv_z/dr$)를 이용한 $m=0$ 소시지 및 $m=1$ 킨크 MHD 모드 억제 및 0-Alloc C# 동축 가스 제어 루프

핵심 연구 개요 및 교과 연계

거대한 초전도 자기장 코일 없이 고전류 펄스($\sim 500\text{ kA}$)만으로 플라스마를 압축하는 가장 간결한 핵융합 개념은 Z-핀치(Z-Pinch)입니다. 축방향으로 흐르는 방전 전류 $I_z$가 자체 방위각 자기장 $B_\theta$를 생성하여 강력한 로렌츠 힘($\mathbf{j} \times \mathbf{B}$)으로 플라스마 기둥을 자기적으로 가둠합니다. 그러나 고전적 Z-핀치는 수 나노초 만에 기둥이 잘록해지는 $m=0$ 소시지(Sausage) 모드와 기둥이 휘어지는 $m=1$ 킨크(Kink) 모드의 파멸적 거시 불안정성으로 붕괴합니다. 혁신적인 해법은 중심부와 외곽의 축방향 속도차를 유도하는 전단 유동(Sheared Flow)을 인가하여 불안정성 소용돌이를 전단력으로 찢어 안정화하는 것입니다.

본 백서는 2022 개정 물리학 II (자기장 내 전류가 받는 로렌츠 전자기력, 유체의 베르누이 및 전단 점성 법칙), 미적분 (이상 자기유체역학(Ideal MHD) 에너지 원리와 비선형 섭동 고유치 미분방정식), 그리고 정보 (C# 13 0-Alloc 스택 연산)를 결합하여, 레이저 간섭계와 광학 자기 프로브(B-dot) 신호로부터 플라스마 기둥의 전단 파라미터를 1,000Hz로 감시하고 동축 가스 밸브를 제어하는 온디바이스 Z-핀치 안정화 서보 엔진을 설계합니다.

1. Z-핀치 베넷(Bennett) 평형 및 슘라크(Shumlak) 전단 유동 안정화 수리 모델

반경 $a$인 플라스마 기둥의 기체 압력 구배와 로렌츠 수축력의 정역학 평형은 베넷 공식으로 기술됩니다:

$$\mu_0 I^2 = 8 \pi N k_B (T_e + T_i)$$

여기서 $N$은 단위 길이당 입자 수입니다. 슘라크-로카(Shumlak-Rocca) 이론에 따르면, 반경 방향 축 유속 구배(Shear Rate $dv_z/dr$)가 알펜 속도 $v_A = B_\theta / \sqrt{\mu_0 \rho}$에 대해 다음 임계 전단 조건을 만족할 때 $m=0, 1$ 모든 파수 $k$의 MHD 섭동이 완전 억제됩니다:

$$s_{shear} = \frac{dv_z}{dr} \ge 0.1 \cdot k v_A$$

전단 안정화 파라미터 $\chi_{shear} = \frac{a}{v_A} \frac{dv_z}{dr}$가 임계값($\chi_{crit} \approx 0.1$) 이상으로 유지되면 플라스마가 붕괴하지 않고 마이크로초 이상 장시간 지속되어 열핵융합 중성자($2.45\text{ MeV}$)를 안정 방출합니다.

2. 0-Alloc C# 스택 기반 전단 유동 Z-핀치 서보

B-dot 자속 루프와 간섭계 전자 밀도 프로파일로부터 전단율을 역산하고 다중 동축 가스 밸브 펄스를 제어하는 ref struct 엔진입니다.

using System;
using System.Runtime.CompilerServices;

namespace ZeliDesk.Stem.CompactFusion
{
    public readonly ref struct ZPinchTelemetry
    {
        public readonly double TotalCurrentKiloAmps;
        public readonly double PinchRadiusMm;
        public readonly double CoreAxialVelocityKmPerSec;
        public readonly double OuterSheathVelocityKmPerSec;
        public readonly double BdotFluteAmplitudeTesla;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public ZPinchTelemetry(double iKa, double rMm, double vCore, double vOuter, double bdotT)
        {
            TotalCurrentKiloAmps = iKa;
            PinchRadiusMm = rMm;
            CoreAxialVelocityKmPerSec = vCore;
            OuterSheathVelocityKmPerSec = vOuter;
            BdotFluteAmplitudeTesla = bdotT;
        }
    }

    public readonly ref struct ZPinchControlResult
    {
        public readonly double VelocityShearRateSecInv;
        public readonly double ShearedFlowStabilityParameter;
        public readonly double OuterGasValveTrimDutyPercent;
        public readonly bool IsMhdStabilized;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public ZPinchControlResult(double shearRate, double stabParam, double valveDuty, bool stabilized)
        {
            VelocityShearRateSecInv = shearRate;
            ShearedFlowStabilityParameter = stabParam;
            OuterGasValveTrimDutyPercent = valveDuty;
            IsMhdStabilized = stabilized;
        }
    }

    public ref struct ShearedFlowZPinchServo
    {
        private const double AlfvenVelocityKmPerSec = 150.0;
        private readonly double _criticalStabilityThreshold;
        private readonly double _kpValve;

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public ShearedFlowZPinchServo(double critThreshold, double kp)
        {
            _criticalStabilityThreshold = critThreshold;
            _kpValve = kp;
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        public ZPinchControlResult Step(in ZPinchTelemetry telemetry)
        {
            // 1. 반경 방향 속도 구배(전단율) 계산: dvz/dr = |v_core - v_outer| / radius
            double deltaV = Math.Abs(telemetry.CoreAxialVelocityKmPerSec - telemetry.OuterSheathVelocityKmPerSec);
            double radiusM = Math.Max(0.5, telemetry.PinchRadiusMm) * 1e-3;
            double shearRateSecInv = (deltaV * 1e3) / radiusM;

            // 2. 무차원 전단 안정화 파라미터 Chi = (a / vA) * (dvz/dr)
            double chi = (radiusM / (AlfvenVelocityKmPerSec * 1e3)) * shearRateSecInv;

            // 3. 플루트/킨크 불안정성 진동 억제 판별
            bool bdotQuiet = telemetry.BdotFluteAmplitudeTesla < 0.05;
            bool isStabilized = (chi >= _criticalStabilityThreshold) && bdotQuiet;

            // 4. 외곽 동축 가스 밸브 듀티비 연산 (전단 부족 시 외곽 유속 제어를 위한 가스 펄스 인가)
            double chiDeficit = Math.Max(0.0, _criticalStabilityThreshold - chi);
            double valveDuty = Math.Clamp(10.0 + _kpValve * chiDeficit * 100.0, 0.0, 100.0);

            return new ZPinchControlResult(shearRateSecInv, chi, valveDuty, isStabilized);
        }
    }
}

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

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

  • 물리학 II [전자기력과 플라스마]: 평행 도선에 흐르는 같은 방향의 전류가 서로 끌어당기듯 플라스마 기둥이 자체 자기장에 의해 수축하는 Z-핀치 원리 학습.
  • 물리학 II [파동과 전단 운동]: 태풍이나 소용돌이가 속도 차이에 의해 흩어지듯 플라스마의 위험한 뒤틀림을 속도 구배로 다스리는 유체역학적 안정화 탐구.
  • 정보 [임베디드 플라스마 계측 프로그래밍]: 나노초 펄스 방전 신호를 고속으로 수치 처리하여 다음 펄스의 가스 밸브 분사를 결정하는 펄스 파워 제어 코드 구현.