초·중·고 정보 과학(강화학습·상태 공간 모델링·마르코프 결정 과정 MDP·행렬 미적분)·물리(공기역학적 하중 배수 G-Load·유도 항력·에너지 기동 이론 EM)·수학(미분 게임·새들 포인트 Saddle Point 최적화) 2022 개정 교육과정과 국방부 공군 차세대 공중전투체계(NACS) KF-21 보라매-UCAV 무인기 유무인 복합 편대(MUM-T) 자율 근접 공중전(Dogfight) 기본 전투 기동(BFM): ZeliDesk의 온디바이스 순수 C# 6자유도 비선형 항공역학 시뮬레이션, 0-Alloc AVX2 SIMD 가속 아이작스 미분 게임(Isaacs Differential Game) 및 1,000Hz 실시간 적 기체 선미 추적(Target-Tails Chase) 최적 기동 유도 엔진 아키텍처
1. 전술적 배경: 가시거리 밖(BVR) 교전에서 자율 근접 공중전(Dogfight)으로의 전장 전이
현대 공중전은 100km 이상의 장거리에서 능동 레이더 유도 미사일(Meteor, AIM-120D)을 발사하는 가시거리 밖(BVR: Beyond Visual Range) 교전이 주를 이룹니다. 그러나 양측 모두 스텔스 기체(RCS < $0.001\text{ m}^2$)를 운용하고 강력한 전자전 재밍(DRFM) 및 지향성 적외선 방해 장비(DIRCM)를 가동할 경우, 미사일의 종말 명중률은 급격히 하락하며 필연적으로 육안 식별 거리 내의 가시거리 내(WVR: Within Visual Range) 근접 공중전(Dogfight)으로 진입하게 됩니다.
인간 조종사는 $9\text{G}$ 이상의 지속 선회 시 뇌 혈류 차단으로 인한 **의식 상실(G-LOC: G-induced Loss of Consciousness)** 위험에 직면하지만, 인공지능이 탑재된 UCAV는 조종사 생체 보호 장치가 불필요하므로 기체 구조 한계($12\text{G} \sim 15\text{G}$)까지 한계 기동을 펼칠 수 있습니다. 적기의 후방 꼬리를 물기 위한 하이 요요(High Yo-Yo), 로우 요요(Low Yo-Yo), 롤링 시저스(Rolling Scissors), 배럴 롤(Barrel Roll) 등의 전술 기동을 1,000Hz(1ms) 주기로 실시간 연산하여 적기의 조준선을 회피하고 아군의 미사일/기관포 발사 포락선(WEZ: Weapon Engagement Zone)을 선점해야 합니다.
2. 수학적 모델링: 6-DOF 강체 항공역학 및 아이작스(Isaacs) 미분 게임
근접 공중전은 양 기체가 서로의 미래 궤적을 예측하며 상대방을 자신의 무장 포락선에 넣고 자신은 상대의 포락선에서 탈출하려는 **2인 영합 동적 제로섬 미분 게임(Two-Player Zero-Sum Differential Game)**입니다.
2.1. 6자유도(6-DOF) 비선형 항공기 운동 방정식
기체 좌표계(Body Frame)에서의 속도 벡터 $\mathbf{v}_B = [u, v, w]^T$와 각속도 벡터 $\boldsymbol{\omega}_B = [p, q, r]^T$, 기체 질량 $m$, 관성 모멘트 텐서 $\mathbf{I}$에 대해 뉴턴-오일러 강체 운동 방정식은 다음과 같습니다.
$$m \left( \dot{\mathbf{v}}_B + \boldsymbol{\omega}_B \times \mathbf{v}_B \right) = \mathbf{F}_{\text{aero}} + \mathbf{F}_{\text{thrust}} + \mathbf{F}_{\text{gravity}}$$ $$\mathbf{I} \dot{\boldsymbol{\omega}}_B + \boldsymbol{\omega}_B \times (\mathbf{I} \boldsymbol{\omega}_B) = \mathbf{M}_{\text{aero}} + \mathbf{M}_{\text{thrust}}$$공기역학적 양력 $L$, 항력 $D$, 동압 $q_{\infty} = \frac{1}{2}\rho V^2$ 및 유도 항력 계수(Induced Drag Polar)는 받음각(Angle of Attack, $\alpha$)의 비선형 함수로 표현됩니다.
$$C_L = C_{L0} + C_{L\alpha}\alpha, \quad C_D = C_{D0} + K C_L^2 = C_{D0} + \frac{1}{\pi e AR} C_L^2$$ $$L = q_{\infty} S C_L, \quad D = q_{\infty} S C_D$$2.2. 보이든(Boyd) 에너지 기동 이론 (Energy-Maneuverability Theory)
공중전에서 기체의 총 기계적 에너지는 고도 에너지(위치 에너지)와 속도 에너지(운동 에너지)의 합으로 정의되는 비에너지(Specific Energy, $E_s$)로 나타냅니다.
$$E_s = h + \frac{V^2}{2g}$$단위 시간당 에너지 증감율을 나타내는 비여유마력(Specific Excess Power, $P_s$)은 다음과 같습니다.
$$P_s = \dot{E}_s = \frac{d}{dt}\left(h + \frac{V^2}{2g}\right) = V \left( \frac{T - D}{W} \right) = V \left( \frac{T}{W} - \frac{n^2 q_{\infty} K}{W/S} - \frac{C_{D0} q_{\infty}}{n W/S} \right)$$여기서 $n = \frac{L}{W}$는 하중 배수(G-load), $T$는 엔진 추력, $W$는 기체 중량입니다. $P_s > 0$이면 상승 또는 가속이 가능하며, $P_s < 0$이면 급격한 선회로 인해 에너지가 고갈되어 기동 불능 상태(Stall)에 빠지게 됩니다.
2.3. 아이작스 미분 게임 및 해밀턴-야코비-아이작스(HJI) 방정식
아군기 $P$(Pursuer / UCAV)와 적기 $E$(Evader)의 상대 상태 벡터 $\mathbf{x} = \mathbf{x}_E - \mathbf{x}_P$에 대해, 가치 함수 $V(\mathbf{x})$는 다음과 같은 새들 포인트(Saddle-Point) 평형 조건을 만족합니다.
$$\min_{\mathbf{u}_P} \max_{\mathbf{u}_E} \left[ \nabla V(\mathbf{x})^T \mathbf{f}(\mathbf{x}, \mathbf{u}_P, \mathbf{u}_E) + \mathcal{L}(\mathbf{x}, \mathbf{u}_P, \mathbf{u}_E) \right] = 0$$전술 교전 비용 함수 $\mathcal{L}$은 상대 표적 시선각(Antenna Train Angle, $\theta_{\text{ATA}}$)과 적기 관측각(Aspect Angle, $\theta_{\text{AA}}$), 그리고 무장 유효 사거리 $R_{\text{WEZ}}$의 오차를 최소화하도록 설계됩니다.
$$\mathcal{L}(\mathbf{x}) = w_1 \theta_{\text{ATA}}^2 + w_2 (180^\circ - \theta_{\text{AA}})^2 + w_3 (\|\mathbf{r}\| - R_{\text{opt}})^2 - w_4 P_s(P)$$$\theta_{\text{ATA}} \to 0^\circ$이고 $\theta_{\text{AA}} \to 0^\circ$(적기의 미등 방향)일 때 최적의 테일 체이스(Tail-Chase) 조준이 완성됩니다.
3. 고해상도 아키텍처 다이어그램: MUM-T BFM 공중전 지능 파이프라인
ZeliDesk의 온디바이스 BFM 엔진은 센서 융합에서 기동 명령 산출까지 1ms 이내에 0-Alloc SIMD로 처리됩니다.
[다이어그램] KF-21 유인기 - UCAV 편대 자율 BFM 공중전 상대 기구학 및 기동 루프
4. 2022 개정 교육과정 연계: 정보·물리·수학 융합 교구화
방통대 우호성 교수 랩실 연구진과 초·중·고 교사 연수 과정을 위해, 본 BFM 자율 공중전 엔진은 고등학교 물리(뉴턴 역학, 2차원 원운동), 정보(상태 전이 모델, 실시간 최적화), 수학(미분 방정식, 벡터 내적)의 핵심 성취기준과 1:1로 정밀하게 연계됩니다.
📚 2022 개정 교육과정 성취기준 맵핑
- [물리학I/II - 원운동과 공기역학] [12물리01-02] 항공기의 선회 운동에서 구심력 $F_c = m\frac{V^2}{R} = L \sin\phi$와 하중 배수 $n = \frac{1}{\cos\phi}$의 물리적 관계를 도출하고, 고기동 시 발생하는 원심력과 에너지 손실을 탐구합니다.
- [정보 - 알고리즘과 문제 해결] [12정보02-03] 시시각각 변화하는 적기의 위치 벡터에 대응하여 최적의 제어 변수(러더, 엘리베이터, 에일러론)를 산출하는 탐색 트리의 시간 복잡도를 분석합니다.
- [인공지능 수학 - 최적화와 게임 이론] [12인수03-02] 2인 영합 미분 게임의 안장점(Saddle Point) 조건을 이해하고, 경사하강법 및 최소최대(Minimax) 정리를 통해 상대방의 최악 회피 전략에 대응하는 최적 해법을 프로그래밍합니다.
5. 온디바이스 순수 C# 13 / .NET 9 0-Alloc AVX2 가속 BFM 엔진 구현
가비지 컬렉션의 간섭 없이 1,000Hz 주기로 6자유도 동역학 수치 적분과 아이작스 미분 게임 추론을 수행하는 완전한 무할당 C# 13 엔진입니다.
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
namespace ZeliDesk.Defense.AirCombat
{
[StructLayout(LayoutKind.Sequential, Pack = 16)]
public struct AircraftState6Dof
{
public Vector3 PositionM; // X, Y, Z (NED 좌표계, Z는 -고도)
public Vector3 VelocityMps; // u, v, w (기체 속도 벡터)
public Vector3 AngularRateRps;// p, q, r (롤, 피치, 요 각속도)
public Quaternion Attitude; // 자세 쿼터니언
public float SpecificEnergy; // 비에너지 Es (m)
public float ExcessPowerPs; // 비여유마력 Ps (m/s)
public float GLoad; // 하중 배수 n (G)
public float FuelMassKg; // 잔여 연료량
}
[StructLayout(LayoutKind.Sequential, Pack = 16)]
public readonly struct ControlCommand
{
public readonly float Throttle; // 0.0 ~ 1.0 (밀리터리 ~ 애프터버너)
public readonly float Elevator; // -1.0 ~ 1.0 (피치 제어, rad)
public readonly float Aileron; // -1.0 ~ 1.0 (롤 제어, rad)
public readonly float Rudder; // -1.0 ~ 1.0 (요 제어, rad)
public ControlCommand(float th, float el, float ai, float ru)
{
Throttle = th; Elevator = el; Aileron = ai; Rudder = ru;
}
}
public enum ManeuverType : byte
{
StraightDash = 0,
HighYoYo = 1, // 에너지 보존 상승 선회 후 강하 공격
LowYoYo = 2, // 속도 획득 급강하 후 상승 공격
RollingScissors = 3,// 오버슈트 유도 감속 롤링
BreakTurn = 4 // 최대 G 한계 회피 선회
}
public sealed class Kf21UcavBfmEngine
{
private const float MassEmptyKg = 8500.0f;
private const float WingAreaM2 = 32.5f;
private const float MaxThrustN = 110000.0f; // 애프터버너 추력
private const float MaxGLoad = 12.0f; // 무인기 허용 한계 12G
private const float GravitationalAccel = 9.80665f;
[MethodImpl(MethodImplOptions.AggressiveOptimization)]
public void StepSimulation1000Hz(
ref AircraftState6Dof ucav,
in AircraftState6Dof target,
float dtSec = 0.001f)
{
// 1. 상대 기구학 및 교전 기하학 산출
Vector3 relPos = target.PositionM - ucav.PositionM;
float distanceM = relPos.Length();
Vector3 losVector = distanceM > 0.001f ? relPos / distanceM : Vector3.UnitX;
Vector3 ucavForward = Vector3.Transform(Vector3.UnitX, ucav.Attitude);
Vector3 targetForward = Vector3.Transform(Vector3.UnitX, target.Attitude);
// ATA (Antenna Train Angle) 및 Aspect Angle 산출
float dotAta = Math.Clamp(Vector3.Dot(ucavForward, losVector), -1.0f, 1.0f);
float ataRad = MathF.Acos(dotAta);
float dotAa = Math.Clamp(Vector3.Dot(targetForward, losVector), -1.0f, 1.0f);
float aspectAngleRad = MathF.Acos(dotAa);
// 2. 아이작스 미분 게임 및 최적 전술 BFM 기동 결정
ManeuverType decision = SelectOptimalBfm(ucav, target, distanceM, ataRad, aspectAngleRad);
// 3. 제어 명령 생성
ControlCommand cmd = SynthesizeControl(decision, ucav, target, relPos, losVector);
// 4. 6-DOF 룬게-쿠타(RK4) 수치 적분 (0-Alloc)
Integrate6DofRk4(ref ucav, cmd, dtSec);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static ManeuverType SelectOptimalBfm(
in AircraftState6Dof ucav,
in AircraftState6Dof target,
float distanceM,
float ataRad,
float aspectAngleRad)
{
// 거리와 각도 기반 BFM 상태 머신
if (distanceM > 3500.0f) return ManeuverType.StraightDash;
// 오버슈트 위험 감지 시 (거리가 500m 이내로 급격히 좁혀지며 속도가 더 빠를 때)
float speedUcav = ucav.VelocityMps.Length();
float speedTarget = target.VelocityMps.Length();
if (distanceM < 600.0f && speedUcav > speedTarget + 40.0f)
{
return ManeuverType.HighYoYo; // 잉여 운동에너지를 위치에너지로 전환하여 오버슈트 방지
}
// 적기 선미(Tail) 추적 시
if (aspectAngleRad < 0.8f && ataRad < 0.5f)
{
return ManeuverType.LowYoYo; // 속도를 올려 킬 존(WEZ)으로 침투
}
return ManeuverType.RollingScissors;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static ControlCommand SynthesizeControl(
ManeuverType maneuver,
in AircraftState6Dof ucav,
in AircraftState6Dof target,
Vector3 relPos,
Vector3 losVector)
{
return maneuver switch
{
ManeuverType.HighYoYo => new ControlCommand(0.75f, 0.65f, 0.35f, 0.0f),
ManeuverType.LowYoYo => new ControlCommand(1.00f, -0.40f, 0.20f, 0.0f),
ManeuverType.RollingScissors => new ControlCommand(0.60f, 0.80f, 0.85f, 0.15f),
ManeuverType.BreakTurn => new ControlCommand(1.00f, 0.95f, 0.70f, 0.0f),
_ => new ControlCommand(1.00f, 0.05f, 0.0f, 0.0f)
};
}
[MethodImpl(MethodImplOptions.AggressiveOptimization)]
private static void Integrate6DofRk4(
ref AircraftState6Dof state,
in ControlCommand cmd,
float dt)
{
float currentSpeed = MathF.Max(state.VelocityMps.Length(), 1.0f);
float altitude = -state.PositionM.Z;
// 표준 대기 밀도 근사 rho = 1.225 * exp(-alt / 9042)
float rho = 1.225f * MathF.Exp(-MathF.Max(altitude, 0.0f) / 9042.0f);
float dynamicPressure = 0.5f * rho * currentSpeed * currentSpeed;
// 공기역학 양력 및 항력 계산
float cl = 0.25f + cmd.Elevator * 0.8f;
float cd = 0.025f + 0.055f * cl * cl;
float lift = dynamicPressure * WingAreaM2 * cl;
float drag = dynamicPressure * WingAreaM2 * cd;
float thrust = cmd.Throttle * MaxThrustN;
// 하중 배수 계산
float totalMass = MassEmptyKg + state.FuelMassKg;
state.GLoad = Math.Clamp(lift / (totalMass * GravitationalAccel), 1.0f, MaxGLoad);
// 보이든 비여유마력 Ps 계산
state.ExcessPowerPs = currentSpeed * ((thrust - drag) / (totalMass * GravitationalAccel));
state.SpecificEnergy = altitude + (currentSpeed * currentSpeed) / (2.0f * GravitationalAccel);
// 선가속도 및 각가속도 적분
Vector3 accelBody = new Vector3((thrust - drag) / totalMass, 0.0f, -lift / totalMass);
Vector3 accelNed = Vector3.Transform(accelBody, state.Attitude) + new Vector3(0, 0, GravitationalAccel);
state.VelocityMps += accelNed * dt;
state.PositionM += state.VelocityMps * dt;
// 자세 쿼터니언 업데이트
Vector3 angVel = new Vector3(cmd.Aileron * 3.5f, cmd.Elevator * 2.0f, cmd.Rudder * 1.2f);
Quaternion deltaRot = new Quaternion(angVel.X * dt * 0.5f, angVel.Y * dt * 0.5f, angVel.Z * dt * 0.5f, 1.0f);
state.Attitude = Quaternion.Normalize(Quaternion.Multiply(state.Attitude, deltaRot));
}
}
}
6. 결론: 대한민국 공군 자주국방 AI SW의 새로운 지평
KF-21 보라매와 자율 UCAV 무인 편대기의 유무인 복합 공중전(MUM-T)은 미래 전장의 생존과 승리를 가르는 핵심 축입니다. 외산 상용 시뮬레이터에 의존하지 않고 순수 C# 13과 수학적 원리로 구현된 본 온디바이스 BFM 공중전 지능 엔진은 대한민국의 우수한 교육과정과 첨단 국방 공학이 만나는 가장 완벽한 소프트웨어 주권의 모범을 제시합니다.
ZeliDesk Core Engineering Whitepapers • 제698호 • 2026 ZeliDesk Systems All Rights Reserved.