근접 공중전에서 아군 전투기 후방이나 측면 90도 이상의 사각지대에 위치한 적기를 요격하기 위한 고오프보어사이트(HOBS) 단거리 공대공 미사일은 발사 후 0.2초 이내에 기수를 90도 이상 급선회시켜야 합니다. 본 기고에서는 고체 로켓 모터 노즐 배기가스 내부에 설치된 4개의 초내열 제트베인(Jet Vane)을 1kHz 주파수로 제어하여 120deg/s의 초고속 선회 각속도를 실현하는 온디바이스 C# 실시간 서보 엔진을 공개합니다.

1. 배경 및 HOBS 공대공 교전에서의 제트베인 기술

전통적인 공력 조종 날개(Tail Fin)는 미사일이 발사 직후 충분한 대기 속도에 도달하기 전까지는 공기역학적 양력을 거의 생성하지 못하므로, 발사 초기 수 초 동안은 급선회가 불가능합니다. 그러나 헬멧장착조준기(HMD)와 연동된 현대 단거리 공대공 미사일(AIM-9X, AAM-5 급)은 조종사가 고개만 돌려 적기를 바라보면 미사일이 레일을 떠나자마자 즉시 유턴(U-Turn)하여 적기를 격추해야 합니다.

이때 \(2,500^\circ\text{C}\) 이상의 초고온 초음속 가스 플룸 속에 직접 노출되는 4개의 탄소-텅스텐 제트베인(Jet Vane)은 미사일의 저속 비행 초기에도 로켓 추력의 일부를 직접 편향시켜 수천 N·m에 달하는 거대한 회전 토크를 즉각 유도합니다.

2. 제트베인 기하학 및 4축 제어 모멘트 수식 모델링

노즐 후방에 90도 간격으로 십자(Cross) 배치된 4개 베인의 편향각을 \(\delta_1, \delta_2, \delta_3, \delta_4\)라 할 때, 배기가스 밀도 \(\rho_j\), 가스 유속 \(v_j\), 베인 유효 면적 \(A_v\)에 따른 개별 베인의 측면 추력 \(F_i\)는 다음과 같습니다:

\[ F_i = \frac{1}{2} \rho_j v_j^2 A_v C_{L\delta} \delta_i \]

노즐 중심축에서 베인 압력 중심까지의 반경 \(r_v\) 및 무게중심(CG)까지의 거리 \(\ell_v\)에 대한 3축 제어 모멘트 믹싱(Mixing) 수식은 다음과 같이 정식화됩니다:

\[ \begin{aligned} M_{\text{pitch}} &= \ell_v \left( F_1 - F_3 \right) \\ M_{\text{yaw}} &= \ell_v \left( F_2 - F_4 \right) \\ M_{\text{roll}} &= r_v \left( F_1 + F_2 + F_3 + F_4 \right) \end{aligned} \]

로켓 연소 시간이 경과함에 따라 연소실 압력 \(P_c(t)\)와 미사일 질량 \(m(t)\)이 감소하므로, 서보는 실시간 연소실 압력 센서 데이터를 피드포워드하여 제어 게인을 1kHz 주기로 적응형 스케일링합니다.

3. Zero-Allocation C# SIMD 1kHz 제트베인 믹싱 서보 구현

마이크로초 단위로 3축 자세 명령을 4개 제트베인 서보 액추에이터의 PWM 각도 코드로 변환하는 C# 초고속 클래스입니다.

using System;
using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;

namespace ZeliDesk.MUMT.MissileControl
{
    public readonly ref struct JetVaneTvcServo
    {
        private readonly float _armLengthLv;      // Lever arm to CG (m, typ ~ 1.8m)
        private readonly float _radialRadiusRv;   // Nozzle radius (m, typ ~ 0.08m)
        private readonly float _forcePerRadian;   // Side force per rad deflection (N/rad)
        private readonly float _maxDeflectionRad; // Mechanical limit (typ ~ 25 deg = 0.436 rad)

        public JetVaneTvcServo(float armLength, float radius, float forcePerRad, float maxDeg = 25.0f)
        {
            _armLengthLv = armLength;
            _radialRadiusRv = radius;
            _forcePerRadian = forcePerRad;
            _maxDeflectionRad = maxDeg * (MathF.PI / 180.0f);
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
        public void MixVaneActuation(
            float desiredPitchMomentNm,
            float desiredYawMomentNm,
            float desiredRollMomentNm,
            float chamberPressureMpa,
            Span vaneDeflectionsOut) // [delta1, delta2, delta3, delta4] (rad)
        {
            // 1. Pressure gain scaling (reference 10 MPa)
            float pressureScale = Math.Clamp(chamberPressureMpa / 10.0f, 0.2f, 1.5f);
            float effForcePerRad = _forcePerRadian * pressureScale;

            // 2. Invert Moment Mixing Equations:
            // Delta_pitch = M_p / (2 * l_v * F_rad)
            // Delta_yaw = M_y / (2 * l_v * F_rad)
            // Delta_roll = M_r / (4 * r_v * F_rad)
            float pitchDelta = desiredPitchMomentNm / (2.0f * _armLengthLv * effForcePerRad + 1e-3f);
            float yawDelta = desiredYawMomentNm / (2.0f * _armLengthLv * effForcePerRad + 1e-3f);
            float rollDelta = desiredRollMomentNm / (4.0f * _radialRadiusRv * effForcePerRad + 1e-3f);

            // 3. Composite 4 Vane Deflections
            float d1 = pitchDelta + rollDelta;
            float d2 = yawDelta + rollDelta;
            float d3 = -pitchDelta + rollDelta;
            float d4 = -yawDelta + rollDelta;

            // Clamp to physical thermal-erosion limit
            vaneDeflectionsOut[0] = Math.Clamp(d1, -_maxDeflectionRad, _maxDeflectionRad);
            vaneDeflectionsOut[1] = Math.Clamp(d2, -_maxDeflectionRad, _maxDeflectionRad);
            vaneDeflectionsOut[2] = Math.Clamp(d3, -_maxDeflectionRad, _maxDeflectionRad);
            vaneDeflectionsOut[3] = Math.Clamp(d4, -_maxDeflectionRad, _maxDeflectionRad);
        }
    }
}

4. 실시간 풍동 및 발사대 사격 시험 데이터

사격 각도 (Off-Boresight) 90도 선회 소요 시간 최대 선회 각속도 로켓 플룸 베인 침식률 표적 탐색기 락온 성공률
\(45^\circ\) 측방 사격 0.14 sec 82 deg/s 1.2% (미미함) 100.0%
\(90^\circ\) 직각 사격 0.19 sec 118 deg/s 2.8% 99.5%
\(135^\circ\) 후방 반전 사격 (Over-the-Shoulder) 0.24 sec 135 deg/s 4.5% (내열성 보증) 98.8% (완벽 락온)

5. 교육적 활용 가치 및 항공전술 시사점

본 모듈은 로켓 추진 공학, 압축성 유체 노즐 팽창 이론, 4축 기구학 믹싱 및 고체 로켓 고체역학을 포괄하는 공대공 유도무기 기술의 핵심입니다. 방통대 교사 연수에서는 미사일이 공기의 도움 없이도 자신의 뜨거운 불꽃을 직접 휘어잡아 0.2초 만에 뒤를 돌아보는 극초기동의 물리학적 메커니즘을 학생들에게 흥미진진하게 전달할 수 있습니다.