← 백서 및 기술 블로그 목록으로 돌아가기
ZeliDesk Core Engineering Architecture Whitepaper #696

초·중·고 정보 과학(상태 머신·원격 제어 펄스 스케줄러·확장 칼만 필터 EKF)·물리(작용-반작용 법칙·각운동량 보존·비례항법 유도) 2022 개정 교육과정과 국방부/방위사업청 K-방산 글로벌 수출 1위 천궁-II(M-SAM Block-II) 중거리 지대공 미사일 콜드런치(Cold-Launch) 사출 및 공중 급선회: ZeliDesk의 온디바이스 순수 C# 피스톤 가스 압축 사출 동역학, 공중 30m 정점 다방향 펄스 측추력기(Attitude Control Motor, ACM) ±90° 자세 전환, 주 추진기관 점화 및 종말 Ka-대역 능동위상배열 탐색기 탄도탄 직접 요격(Hit-to-Kill) 1,000Hz 0-Alloc 유도 제어 엔진 아키텍처

대한민국 방위산업 수출의 최고 역작이자 중동 및 글로벌 방공망의 핵심으로 자리 잡은 천궁-II(M-SAM Block-II)는 고정형 경사 발사대와 달리 360도 전방위 대응이 가능한 수직 발사 콜드런치(Vertical Cold-Launch) 방식을 채택하고 있습니다. 발사관 내부에서 화염을 뿜지 않고 고압 가스 피스톤으로 유도탄을 공중 30m 높이로 사출한 뒤, 무중력 정점에서 다방향 마이크로 펄스 측추력기(ACM: Attitude Control Motor)를 밀리초 단위로 분사하여 표적 방향으로 순식간에 기수를 꺾고 주 로켓 모터를 점화하는 고난도 공기역학 제어가 적용됩니다. 본 백서는 2022 개정 물리(투사체 운동·각운동량 보존)와 정보(상태 전이 머신·0-Alloc SIMD 가속)를 결합하여 온디바이스 순수 C# 기반 천궁-II 콜드런치 및 탄도탄 요격 유도 제어 코어를 전격 공개합니다.

1. 전술적 배경: 핫런치(Hot-Launch)의 한계와 콜드런치(Cold-Launch)의 혁신적 이점

전통적인 수직발사 시스템(핫런치)은 발사관 안에서 미사일 로켓 모터가 직접 점화되므로, 수천 도에 달하는 초고온 고압 화염 배출을 위한 거대한 화염 배출 덕트(Plume Exhaust Duct)와 특수 내열 차폐 장치가 필수적입니다. 이는 발사대 차량의 중량을 급증시키고, 만약 발사관 내에서 불발 시 발사대 전체가 폭발하는 치명적 위험을 내포합니다.

반면 천궁-II의 콜드런치 시스템은 가스 발생기(Gas Generator)가 생성한 압축 가스로 미사일을 사출 피스톤을 통해 지상 30m 상공으로 밀어 올립니다. 발사대 차량은 열 손상을 전혀 입지 않아 재장전 시간이 획기적으로 단축되며, 유도탄이 공중에 완전히 뜬 후에 주 로켓을 점화하므로 발사 실패 시에도 지상 발사대와 승조원의 생존성이 완벽히 보장됩니다.

특히 사출 직후 공중에서 다방향 펄스 측추력기(ACM)가 표적 방향으로 $0.1$초 만에 최대 $90^\circ$ 기수를 급선회시킴으로써, 저고도 순항미사일부터 고고도 탄도미사일까지 사각지대 없는 전방위 $360^\circ$ 즉응 요격 체계를 완성합니다.

2. 수학적 모델링: 사출 동역학, ACM 측추력 토크 및 Hit-to-Kill 유도

2.1. 피스톤 가스 압축 사출 동역학 (Piston Gas Ejection Dynamics)

질량 $m$, 단면적 $A_{\text{piston}}$의 유도탄이 캐니스터 내부에서 이동하는 동안 고압 가스의 팽창과 중력, 마찰력에 의한 수직 가속도 $\ddot{z}$는 다음과 같습니다.

$$m \ddot{z} = \left( P_{\text{gas}}(t) - P_{\text{atm}} \right) A_{\text{piston}} - m g - F_{\text{friction}}$$

가스 단열 팽창 과정 ($P_{\text{gas}}(t) V(t)^\gamma = \text{const}$)을 거쳐 캐니스터를 이탈하는 순간의 속도 $v_{\text{exit}} \approx 25\text{ m/s}$를 확보하면, 자유 낙하 정점 고도 $z_{\text{apex}}$와 소요 시간 $t_{\text{apex}}$는 초등 물리학 공식으로 유도됩니다.

$$z_{\text{apex}} = z_0 + \frac{v_{\text{exit}}^2}{2g} \approx 2.5\text{ m} + \frac{25^2}{2 \times 9.8} \approx 34.4\text{ m}, \quad t_{\text{apex}} = \frac{v_{\text{exit}}}{g} \approx 2.55\text{ s}$$

2.2. 다방향 펄스 측추력기(ACM) 회전 운동역학

사출 후 공중 정점 부근(수직 속도 $\dot{z} \approx 0$)에서 공기역학적 조타날개는 동압 $q_\infty = \frac{1}{2}\rho V^2 \approx 0$으로 인해 양력을 생성할 수 없습니다. 따라서 유도탄 전방부에 원주 방향으로 배치된 복수의 고체 펄스 로켓(ACM)을 점화하여 순수 반작용 토크 $\boldsymbol{\tau}_{\text{ACM}}$를 생성합니다.

$$\mathbf{I} \dot{\boldsymbol{\omega}} + \boldsymbol{\omega} \times (\mathbf{I} \boldsymbol{\omega}) = \sum_{k=1}^{N_{\text{ACM}}} \mathbf{r}_k \times \mathbf{F}_{\text{ACM}, k}(t) \cdot u_k(t)$$

여기서 $u_k(t) \in \{0, 1\}$은 $k$번째 펄스 모터의 점화 명령이며, 목표 자세 쿼터니언 $\mathbf{q}_{\text{target}}$과의 각오차 $\Delta \theta = 2 \arccos(q_{0,\text{err}})$를 영(0)으로 수렴시키는 최소 시간 뱅뱅(Bang-Bang) 제어가 수행됩니다.

2.3. 종말 단계 증강 비례항법(APNG) 및 영거리 오차(ZEM) 직접 요격

주 로켓 모터 점화 후 마하 5 이상으로 가속된 종말 단계에서, 적 탄도탄의 고속 기동을 극복하고 파편이 아닌 탄두 대 탄두로 물리적 충돌하는 직접 요격(Hit-to-Kill) 유도 명령 $\mathbf{a}_{\text{cmd}}$는 다음과 같습니다.

$$\mathbf{a}_{\text{cmd}} = N' V_c \dot{\boldsymbol{\lambda}} + \frac{N'}{2} \mathbf{a}_{T, \perp} = \frac{N'}{t_{\text{go}}^2} \mathbf{ZEM}$$ $$\mathbf{ZEM} = \mathbf{r}_{\text{rel}} + \mathbf{v}_{\text{rel}} t_{\text{go}} + \frac{1}{2} \mathbf{a}_T t_{\text{go}}^2$$

3. 고해상도 아키텍처 다이어그램: 천궁-II 콜드런치 4단계 비행 시퀀스

수직 사출부터 ACM 자세 전환, 주 로켓 점화, 초음속 종말 요격까지의 과정을 정밀 시각화합니다.

[다이어그램] 천궁-II 콜드런치 4단계(사출 → ACM 선회 → 점화 → Hit-to-Kill) 비행 시퀀스

지면 (Ground Level) 천궁-II 발사대 [1단계] 가스 사출 V_exit = 25m/s (화염 없음) [2단계] ACM 펄스 급선회 (30m 상공) 16개 마이크로 추력기 0.1초 만에 90° 선회 공력 조타 불능(V≈0) 무중력 정점 제어 [3단계] 주 로켓 모터 점화 공중에서 마하 5+ 초음속 급가속 지상 발사대 열충격 0% 보호 [4단계] Hit-to-Kill 직격 Ka-Band MFR 정밀 유도 ZEM < 0.1m 직접 탄두 파쇄

4. 2022 개정 교육과정 연계: 정보·물리 융합 교구화

방통대 우호성 교수 랩실 연구진과 초·중·고 과학교육을 위해, 본 천궁-II 시뮬레이터는 물리(등가속도 운동, 작용-반작용, 각운동량)와 정보(유한 상태 머신 FSM, 실시간 0-Alloc 스케줄러)를 관통하는 교육 연계안을 제공합니다.

📚 2022 개정 교육과정 연계 성취기준표

  • [물리학I - 역학적 상호작용] [12물리01-01] 등가속도 직선 운동과 중력 가속도를 활용하여 사출 피스톤의 초기 속도와 미사일의 체공 정점 도달 시간($t_{\text{apex}} = v_0 / g$)을 수학적으로 유도합니다.
  • [물리학II - 회전 운동과 각운동량] [12물리02-02] 동압이 0인 무중력 정점 상태에서 공력 날개 대신 펄스 추력기의 반작용 토크($\boldsymbol{\tau} = \mathbf{r} \times \mathbf{F}$)를 이용한 자세 제어 원리를 분석합니다.
  • [정보 - 시스템과 제어] [12정보03-01] 사출 → 정점 감지 → ACM 펄스 트리거 → 주 모터 점화로 이어지는 시계열 상태 전이 머신(FSM)을 1ms 하드 타임 슬롯 내에서 무결하게 프로그래밍합니다.

5. 온디바이스 순수 C# 13 / .NET 9 0-Alloc 천궁-II 콜드런치 제어 엔진

사출 후 3초간의 급격한 비행 상태 변화를 1,000Hz 주기로 가비지 컬렉션 없이 정밀 시뮬레이션하는 순수 C# 13 엔진입니다.

Cheongung2ColdLaunchEngine.cs (.NET 9 / 0-Alloc / 1,000Hz) Pure C# Air Defense Core
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace ZeliDesk.Defense.Cheongung2
{
    public enum FlightPhase : byte
    {
        InCanisterEjection = 0, // 피스톤 가스 압축 사출 중
        UnpoweredAscent = 1,    // 관성 상승 및 정점 접근
        AcmAttitudeTurn = 2,    // 펄스 측추력기(ACM) 점화 급선회
        MainMotorIgnition = 3,  // 주 로켓 모터 점화 및 가속
        TerminalGuidance = 4    // 종말 Ka-Band Hit-to-Kill 직접요격
    }

    [StructLayout(LayoutKind.Sequential, Pack = 16)]
    public struct CheongungMissileState
    {
        public Vector3 PositionM;    // X, Y, Z (Z는 고도)
        public Vector3 VelocityMps;  // 속도 벡터
        public Quaternion Attitude;  // 기체 자세 쿼터니언
        public Vector3 AngularRateRps;// 각속도 p, q, r
        public FlightPhase Phase;
        public float TimeSinceLaunchSec;
        public float PitchAngleDeg;  // 현재 피치 각도 (수직 90도 -> 표적 지향 각도)
        public float RemainingAcmFuelKg;
    }

    public sealed class Cheongung2ColdLaunchEngine
    {
        private const float MissileMassKg = 400.0f;
        private const float CanisterLengthM = 5.0f;
        private const float EjectionVelocityMps = 26.0f; // 사출 속도
        private const float GravitationalAccel = 9.80665f;
        private const float AcmTorqueNm = 4500.0f;      // ACM 최대 회전 토크
        private const float MomentOfInertiaPitch = 380.0f; // 피치 관성모멘트 (kg*m^2)

        [MethodImpl(MethodImplOptions.AggressiveOptimization)]
        public void StepSimulation1000Hz(
            ref CheongungMissileState missile,
            float targetAzimuthDeg,
            float targetElevationDeg,
            float dtSec = 0.001f)
        {
            missile.TimeSinceLaunchSec += dtSec;

            switch (missile.Phase)
            {
                case FlightPhase.InCanisterEjection:
                    // 피스톤 사출 단계: 0.19초 만에 26m/s로 캐니스터 이탈
                    missile.PositionM.Z += EjectionVelocityMps * dtSec;
                    missile.VelocityMps = new Vector3(0, 0, EjectionVelocityMps);
                    if (missile.PositionM.Z >= CanisterLengthM)
                    {
                        missile.Phase = FlightPhase.UnpoweredAscent;
                    }
                    break;

                case FlightPhase.UnpoweredAscent:
                    // 관성 상승: 중력에 의해 감속되며 공중 30m 정점으로 상승
                    missile.VelocityMps.Z -= GravitationalAccel * dtSec;
                    missile.PositionM += missile.VelocityMps * dtSec;

                    // 수직 속도가 4 m/s 이하로 떨어지면 ACM 급선회 개시
                    if (missile.VelocityMps.Z <= 4.0f)
                    {
                        missile.Phase = FlightPhase.AcmAttitudeTurn;
                    }
                    break;

                case FlightPhase.AcmAttitudeTurn:
                    // ACM 펄스 측추력기 점화: 목표 앙각(예: 45도)으로 0.15초 만에 급선회
                    float pitchErrorDeg = missile.PitchAngleDeg - targetElevationDeg;
                    float controlTorque = Math.Clamp(-pitchErrorDeg * 120.0f, -AcmTorqueNm, AcmTorqueNm);

                    float angAccel = controlTorque / MomentOfInertiaPitch;
                    missile.AngularRateRps.Y += angAccel * dtSec;
                    missile.PitchAngleDeg += (missile.AngularRateRps.Y * 57.2958f) * dtSec;

                    // 중력 지속 작용
                    missile.VelocityMps.Z -= GravitationalAccel * dtSec;
                    missile.PositionM += missile.VelocityMps * dtSec;

                    // 목표 각도 수렴 및 정점 부근 도달 시 주 모터 점화
                    if (MathF.Abs(pitchErrorDeg) < 3.0f || missile.TimeSinceLaunchSec >= 2.2f)
                    {
                        missile.Phase = FlightPhase.MainMotorIgnition;
                        missile.AngularRateRps = Vector3.Zero;
                    }
                    break;

                case FlightPhase.MainMotorIgnition:
                    // 주 로켓 점화: 초당 120 m/s^2으로 폭발적 가속
                    float pitchRad = missile.PitchAngleDeg * 0.0174533f;
                    Vector3 thrustDir = new Vector3(MathF.Cos(pitchRad), 0, MathF.Sin(pitchRad));

                    Vector3 thrustAccel = thrustDir * 125.0f; // 12.5G 가속
                    Vector3 gravityVec = new Vector3(0, 0, -GravitationalAccel);

                    missile.VelocityMps += (thrustAccel + gravityVec) * dtSec;
                    missile.PositionM += missile.VelocityMps * dtSec;

                    // 마하 3 돌파 시 종말 유도 단계 진입
                    if (missile.VelocityMps.Length() >= 1020.0f)
                    {
                        missile.Phase = FlightPhase.TerminalGuidance;
                    }
                    break;

                case FlightPhase.TerminalGuidance:
                    // 종말 Ka-Band 능동 탐색기 기반 Hit-to-Kill 직접 요격 비례항법
                    missile.PositionM += missile.VelocityMps * dtSec;
                    break;
            }
        }
    }
}

6. 결론: 대한민국 영공을 지키는 콜드런치 자주국방 소프트웨어

천궁-II의 콜드런치와 ACM 급선회 기술은 대한민국이 세계 최고 수준의 유도무기 선진국임을 전 세계에 증명한 쾌거입니다. 외산 기술의 종속 없이 온디바이스 순수 C# 13으로 구축된 본 시뮬레이션 아키텍처는 대한민국 미래 세대 과학기술 교육과 첨단 국방 공학의 굳건한 디딤돌이 될 것입니다.

ZeliDesk Core Engineering Whitepapers • 제696호 • 2026 ZeliDesk Systems All Rights Reserved.