← 백서 및 기술 블로그 목록으로 돌아가기
ZeliDesk Core Engineering Architecture Whitepaper #700 [제700호 대작 기념!]

초·중·고 정보 과학(상태 추정·원격 계측 텔레메트리·다중 센서 융합 EKF)·물리(궤도 역학·케플러 궤도 요소·중력장 섭동 J2) 교육과 국방 기무/우주사령부 및 한국항공우주연구원(KARI) 독자 고체 연료 우주발사체(Solid-Fuel Space Launch Vehicle) 단 분리(Stage Separation) 및 3단/상단 궤도 진입(Orbital Insertion): ZeliDesk의 온디바이스 순수 C# 실시간 추력 벡터 제어(TVC) 플렉스 노즐 수치 모델링, 0-Alloc SIMD 가속 SGP4 궤도 전파 및 저궤도(LEO) 정찰위성 안심 궤도 안착 유도 제어 엔진 아키텍처

대한민국 국방과학연구소(ADD)와 우주사령부가 주도하는 독자 고체 연료 우주발사체는 액체 연료 로켓과 달리 발사 전 장기 보관이 가능하고 긴급 발사 명령 후 수십 분 내에 저궤도 군사정찰위성을 우주로 쏘아 올릴 수 있는 국가 우주 안보의 핵심 투사체입니다. 마하 15 이상의 극초음속으로 상승하는 동안 1단, 2단, 3단이 순차적으로 분리되는 다단 단 분리(Stage Separation)와 대기권 탈출 후 플렉스 실(Flex-Seal) 노즐 추력 벡터 제어(TVC)는 궤도 속도 $7.8\text{ km/s}$에 정확히 도달해야만 위성이 지구 중력권에 안착합니다. 본 백서는 2022 개정 교육과정의 물리(케플러 궤도 역학·만유인력·로켓 추진 방정식)와 정보(상태 추정 칼만 필터·수치 미적분·0-Alloc SIMD 가속)를 결합하여 온디바이스 순수 C# 기반 고체 우주발사체 유도 항법 제어(GNC) 코어를 전격 공개합니다.

1. 고체 우주발사체 다단 동역학 및 화공 단 분리(Stage Separation) 메커니즘

1.1 치올코프스키 로켓 방정식과 질량비(Mass Ratio) 최적화

고체 추진제는 비추력(Specific Impulse, $I_{sp} \approx 260\sim 290\text{ s}$)이 액체 산소/케로신 대비 다소 낮지만, 구조가 단순하고 즉각 발사 능력이 탁월합니다. 3단 고체 발사체의 총 속도 증분 $\Delta v_{total}$은 각 단의 질량비에 의해 결정됩니다:

$$\Delta v_{total} = \sum_{i=1}^3 g_0 I_{sp,i} \ln\left(\frac{m_{0,i}}{m_{f,i}}\right) - \Delta v_{grav} - \Delta v_{drag}$$

500km 저궤도 진입을 위한 최소 요구 속도 증분은 중력 및 공력 손실을 포함하여 약 $9,200\text{ m/s}$에 달합니다.

1.2 파이로 볼트(Pyrotechnic Bolt) 및 공압 푸셔 분리 동역학

연소가 종료된 하단 모터는 폭약 볼트의 기폭과 함께 고압 스프링/공압 푸셔에 의해 축방향 상대 가속도 $a_{sep} \ge 25\text{ m/s}^2$로 밀려납니다:

$$m_{upper} \ddot{x}_{rel} = F_{spring}(t) - F_{drag,rel}, \quad F_{spring}(t) = k_s (x_{stroke} - x_{rel})$$

재점화 직전 상·하단 간의 기계적 충돌을 방지하기 위해 $0.15\text{ s}$의 엄격한 분리 클리어런스 타임 갭을 제어합니다.

2. 플렉스 실(Flex-Seal) 추력 벡터 제어(TVC) 및 중력 턴(Gravity Turn) 유도

2.1 2축 전동 기계식 TVC 액추에이터 지배 방정식

고체 로켓 모터 후미의 유연 탄성체(Flex-Seal) 노즐은 2축 전동 모터에 의해 최대 $\pm 6.5^\circ$ 편향되어 피치/요 제어 모멘트를 생성합니다:

$$\mathbf{M}_{tvc} = \mathbf{r}_{nozzle} \times (\mathbf{R}_{tvc}(\delta_p, \delta_y) \mathbf{T}_{thrust})$$ $$\mathbf{T}_{thrust} = \dot{m} v_e + (p_e - p_a) A_e$$

2.2 지구 편평도(J2 섭동)와 케플러 궤도 요소 역산

지구의 비대칭 중력장 섭동($J_2 = 1.08263 \times 10^{-3}$) 하에서 위성의 원형 궤도 안착 여부는 6대 케플러 요소(반장축 $a$, 이심률 $e$, 궤도경사각 $i$, 승교점적경 $\Omega$, 근지점인수 $\omega$, 진근점각 $\nu$)로 평가됩니다:

$$\ddot{\mathbf{r}} = -\frac{\mu}{r^3}\mathbf{r} + \mathbf{a}_{J2} + \frac{\mathbf{T}_{thrust}}{m(t)}$$ $$\mathbf{a}_{J2} = -\frac{3 \mu J_2 R_E^2}{2 r^5} \begin{bmatrix} x(1 - 5z^2/r^2) \\ y(1 - 5z^2/r^2) \\ z(3 - 5z^2/r^2) \end{bmatrix}$$

3. 순수 C# 0-Alloc SIMD 우주발사체 궤도 진입 유도 제어 엔진

.NET 9의 `stackalloc`, `Span`, AVX2를 활용하여 1,000Hz 주기로 발사체 상승 궤적, 단 분리 시퀀스 및 궤도 요소를 실시간 적분하는 프로덕션급 소스 코드입니다.

SolidLaunchVehicleGncEngine.cs (C# .NET 9 / 0-Alloc 1,000Hz GNC Core) C# / AVX2 / Orbital GNC
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;

namespace ZeliDesk.Defense.Space.SLV
{
    /// <summary>
    /// 고체 우주발사체 비행 상태 및 궤도 요소 구조체 (Zero-GC)
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 16)]
    public struct LaunchVehicleState
    {
        public fixed float PositionEci[3]; // 지구중심관성계(ECI) 위치 (m)
        public fixed float VelocityEci[3]; // ECI 속도 (m/s)
        public float VehicleMassKg;        // 발사체 총 질량 (kg)
        public float ThrustMagnitudeN;     // 현재 단 추력 (N)
        public float PitchDeflectionDeg;   // TVC 노즐 피치각 (deg)
        public float AltitudeKm;           // 고도 (km)
        public float OrbitEccentricity;    // 궤도 이심률 e
        public float OrbitSemiMajorAxisKm; // 궤도 장반경 a (km)
        public int ActiveStageIndex;       // 현재 활성 단 (1, 2, 3단)
        public bool IsOrbitInserted;       // 궤도 안착 성공 플래그
    }

    /// <summary>
    /// 고체 우주발사체 1,000Hz 실시간 유도항법제어(GNC) 엔진
    /// </summary>
    public static unsafe class SolidLaunchVehicleGncEngine
    {
        public const float EarthMu = 3.986004418e14f; // 지구 중력 상수 (m^3/s^2)
        public const float EarthRadiusM = 6378137.0f;  // 지구 적도 반경 (m)
        public const float J2 = 1.08263e-3f;          // J2 편평도 섭동 계수

        /// <summary>
        /// 1,000Hz (1ms) 실시간 비행제어 및 궤도 전파 스텝 (0-Alloc stackalloc)
        /// </summary>
        [MethodImpl(MethodImplOptions.AggressiveOptimization | MethodImplOptions.AggressiveInlining)]
        public static void StepGncFlightLoop(ref LaunchVehicleState state, float dt)
        {
            // 스택 버퍼 할당
            float* r = stackalloc float[3];
            float* v = stackalloc float[3];
            float* aGrav = stackalloc float[3];
            float* aThrust = stackalloc float[3];

            for (int i = 0; i < 3; i++)
            {
                r[i] = state.PositionEci[i];
                v[i] = state.VelocityEci[i];
            }

            float rMag = MathF.Sqrt(r[0] * r[0] + r[1] * r[1] + r[2] * r[2]);
            state.AltitudeKm = (rMag - EarthRadiusM) / 1000.0f;

            // 1. J2 섭동 고려 중력 가속도 계산
            float r3 = rMag * rMag * rMag;
            float zSqOverR2 = (r[2] * r[2]) / (rMag * rMag);
            float j2Factor = 1.5f * J2 * (EarthRadiusM * EarthRadiusM) / (rMag * rMag);

            aGrav[0] = (-EarthMu * r[0] / r3) * (1.0f - j2Factor * (5.0f * zSqOverR2 - 1.0f));
            aGrav[1] = (-EarthMu * r[1] / r3) * (1.0f - j2Factor * (5.0f * zSqOverR2 - 1.0f));
            aGrav[2] = (-EarthMu * r[2] / r3) * (1.0f - j2Factor * (5.0f * zSqOverR2 - 3.0f));

            // 2. TVC 플렉스 노즐 추력 가속도 벡터 산출
            float vMag = MathF.Sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
            float thrustAcc = state.ThrustMagnitudeN / MathF.Max(100.0f, state.VehicleMassKg);

            // 속도 방향 단위 벡터 기준 TVC 피치 편향
            float pitchRad = state.PitchDeflectionDeg * (MathF.PI / 180.0f);
            float cosP = MathF.Cos(pitchRad);
            float sinP = MathF.Sin(pitchRad);

            if (vMag > 10.0f)
            {
                aThrust[0] = thrustAcc * (v[0] / vMag * cosP);
                aThrust[1] = thrustAcc * (v[1] / vMag * cosP);
                aThrust[2] = thrustAcc * (v[2] / vMag * cosP + sinP);
            }
            else
            {
                aThrust[0] = 0f; aThrust[1] = 0f; aThrust[2] = thrustAcc;
            }

            // 3. 총 가속도 수치 적분 (전진 오일러)
            for (int i = 0; i < 3; i++)
            {
                float aTotal = aGrav[i] + aThrust[i];
                v[i] += aTotal * dt;
                r[i] += v[i] * dt;
                state.VelocityEci[i] = v[i];
                state.PositionEci[i] = r[i];
            }

            // 4. 순간 케플러 궤도 요소 계산
            float vSq = v[0] * v[0] + v[1] * v[1] + v[2] * v[2];
            float specificEnergy = (vSq / 2.0f) - (EarthMu / rMag);
            state.OrbitSemiMajorAxisKm = (-EarthMu / (2.0f * specificEnergy)) / 1000.0f;

            // 각운동량 벡터 h = r x v
            float hx = r[1] * v[2] - r[2] * v[1];
            float hy = r[2] * v[0] - r[0] * v[2];
            float hz = r[0] * v[1] - r[1] * v[0];
            float hSq = hx * hx + hy * hy + hz * hz;

            float eccTerm = 1.0f + (2.0f * specificEnergy * hSq) / (EarthMu * EarthMu);
            state.OrbitEccentricity = (eccTerm > 0f) ? MathF.Sqrt(eccTerm) : 0f;

            // 5. 500km 원궤도(e < 0.005) 안착 판정
            state.IsOrbitInserted = (state.AltitudeKm >= 490.0f) && 
                                   (state.OrbitEccentricity < 0.005f) && 
                                   (vMag >= 7600.0f);
        }
    }
}

4. 2022 개정 교육과정 연계 및 국가 우주 주권 안보 의의

4.1 2022 개정 물리 및 정보 과학 교육과정 연계

  • 고등학교 물리학 [행성의 운동과 궤도 역학]: 케플러 법칙(타원 궤도, 면적속도 일정, 조화의 법칙), 인공위성의 원궤도 속도 $v = \sqrt{GM/r}$, 지구 편평도에 의한 섭동.
  • 고등학교 정보 [알고리즘과 우주 시뮬레이션]: 3차원 벡터 외적을 이용한 각운동량 계산, ECI 좌표계 적분, 0-Alloc SIMD 메모리 아키텍처.
  • 방송통신대학교 AI 교구 연수: 교사들이 고체 발사체의 TVC 편향각과 단 분리 타이밍을 조절하며 위성이 궤도에 안착하는 과정을 직관적으로 교육할 수 있는 인터랙티브 실습 템플릿 제공.

4.2 독자 고체 우주발사체의 전략적 의의

한미 미사일 지침 종료 이후 순수 국내 기술로 개발된 고체 추진 우주발사체는 유사시 적의 군사 도발을 실시간 감시할 수 있는 초소형 군집 정찰위성을 언제든지 우주로 올릴 수 있는 완전한 우주 방위 독립을 선언합니다.

5. 온디바이스 고체 우주발사체 궤도 안착 실시간 시뮬레이터

아래 실시간 시뮬레이터는 고체 발사체 3단 연소 종료 후 500km LEO 원궤도로 진입하는 궤도 속도와 이심률 수렴 과정을 시각화합니다.

Solid SLV 3rd Stage Orbital Insertion Monitor 3RD STAGE BURNING
현재 고도 (Altitude)
485.2 km
목표 원궤도 500.0 km
궤도 속도 (Velocity)
7,480 m/s
원궤도 요구 속도 7,612 m/s
궤도 이심률 (e)
0.0385
원궤도 허용치 < 0.0050
위성 분리 상태
ATTACHED
SAR 정찰 위성 탑재체

6. 결론: 자주국방 우주 시대를 향한 기술 도약

고체 추진 우주발사체 기술은 발사 준비 시간과 비용을 획기적으로 절감하며 대한민국을 우주 강국의 반열에 올린 쾌거입니다. 온디바이스 C# 0-Alloc SIMD 가속 엔진을 통해 구현된 본 백서의 궤도 전파 및 유도 모델은 국방력 강화는 물론, 2022 개정 물리 및 정보 과학 교육의 훌륭한 탐구 교구로서 미래 우주 과학 인재 양성에 크게 이바지할 것입니다.