공군 우주작전포대 위성 편대비행 및 2022 개정 공학교육 연구 요약 (Executive Summary)
대한민국 공군 우주작전대대가 운용하는 초소형 군집 정찰위성 체계는 고도 500km 저궤도(LEO)에서 수십 기의 위성이 수십 미터에서 수 킬로미터의 정밀 간격을 유지하는 위성 편대비행(Satellite Formation Flying)을 통해 가상 초대구경 합성개구레이더(InSAR) 및 입체 전자광학 관측을 수행합니다.
기준 위성(Chief)을 중심으로 추종 위성(Deputy)의 3차원 상대 궤적을 제어할 때, 지심 원운동 궤도 좌표계(LVLH: Local-Vertical/Local-Horizontal)에서 작용하는 차동 중력경도(Differential Gravity Gradient), 코리올리 힘(Coriolis Force), 지구 비대칭 편평도($J_2$ 섭동), 그리고 희박 대기 항력 차이로 인해 편대 간격이 지속적으로 발산합니다. 위성의 제한된 추진제(Cold Gas/전기추진 $\Delta V$)를 절약하면서 폐곡선 투영 원형 궤도(PCO: Projected Circular Orbit)를 안정적으로 유지하기 위해서는 힐-클로헤시-윌트셔(HCW: Hill-Clohessy-Wiltshire) 선형 미분방정식과 LQR 최적 펄스 추력기(Thruster) 제어가 1,000Hz 주기로 무할당 실행되어야 합니다.
본 교재는 방통대 우호성 교수 랩실의 중·고교 교사 직무연수(2022 개정 물리 만유인력과 케플러 법칙, 회전 좌표계 코리올리 가속도, 지구과학 고도 500km 우주 환경과 지구 타원체 편평도 J2 섭동, 수학 3차원 연립 미분방정식 해석해 유도, 정보 1,000Hz 실시간 0-Alloc 임베디드 궤도전파기 연계 교육)와 국방부 AI 교과서 연구단, 천재교육 AIDT 실무진을 위한 공인 기준 백서입니다.
제1장: 힐-클로헤시-윌트셔(HCW) 3차원 상대 운동방정식 수학적 모델
기준 위성의 원궤도 반경을 $r_0$, 궤도 각속도를 $\omega = \sqrt{\mu / r_0^3}$라 하고, LVLH 좌표계에서 $x$를 반경 방향(Radial), $y$를 궤도 진행 방향(In-Track), $z$를 궤도면 수직 방향(Cross-Track)이라 할 때의 HCW 상대 운동방정식은 다음과 같습니다:
HCW 3차원 상대 운동 미분방정식 및 해석적 자유 비행 해
$$\ddot{x} - 2\omega \dot{y} - 3\omega^2 x = f_x + \Delta a_{J2, x}$$ $$\ddot{y} + 2\omega \dot{x} = f_y + \Delta a_{ ext{drag}, y}$$ $$\ddot{z} + \omega^2 z = f_z + \Delta a_{J2, z}$$폐곡선 투영 원형 궤도(PCO) 표류 방지 무편류 조건($\dot{y}_{ ext{drift}} = 0$):
$$\dot{y}_0 = -2\omega x_0 \implies x(t) = rac{ ho_0}{2} \sin(\omega t + lpha), \quad y(t) = ho_0 \cos(\omega t + lpha), \quad z(t) = ho_0 \sin(\omega t + lpha)$$초기 속도 조건 $\dot{y}_0 = -2\omega x_0$를 만족하지 않으면 시간 $t$에 비례하여 진행 방향으로 영구 표류(In-Track Secular Drift)하므로, 펄스 추력기를 통한 정밀 초기화 및 보정이 필수적입니다.
제2장: 지구 편평도(J2) 차동 중력 섭동 및 LQR 최적 추력 분배
지구 적도 팽출로 인한 $J_2 = 1.08263 imes 10^{-3}$ 차동 가속도와 최적 $\Delta V$ 소비 LQR 궤환 제어 법칙은 다음과 같습니다:
J2 차동 가속도 및 상태 궤환 추력 제어 수식
$$\Delta \mathbf{a}_{J2} = egin{bmatrix} -rac{3 \mu J_2 R_e^2}{2 r_0^4} (1 - 3\sin^2 i \sin^2 u) x \ 0 \ -rac{3 \mu J_2 R_e^2}{2 r_0^4} (3\sin^2 i \cos^2 u - 1) z \end{bmatrix}$$ $$\mathbf{u}(t) = -\mathbf{K}_{ ext{lqr}} (\mathbf{x}_{ ext{rel}} - \mathbf{x}_{ ext{des}})$$상대 상태 벡터 $\mathbf{x}_{ ext{rel}} = [x, y, z, \dot{x}, \dot{y}, \dot{z}]^T$에 대한 LQR 최적 이득 행렬 $\mathbf{K}_{ ext{lqr}}$을 적용하여, 연간 $\Delta V$ 소비량을 $15\, ext{m/s}$ 이내로 최소화합니다.
제3장: 1,000Hz 0-Alloc C# 군집위성 상대궤도 제어 엔진 아키텍처
1ms 실시간 루프에서 HCW 상태전이행렬을 전파하고 냉가스 추력기 온-오프 펄스를 GC 힙 할당 없이 산출하는 순수 C# 코어입니다:
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
namespace ZeliDesk.Space.Constellation
{
/// <summary>
/// 추종 위성 3차원 상대 상태 벡터 (0-Alloc stack-only)
/// </summary>
public readonly struct RelativeOrbitState
{
public readonly Vector3 RelativePosM; // 상대 위치 [x(반경), y(진행), z(수직)] (m)
public readonly Vector3 RelativeVelMps; // 상대 속도 [x_dot, y_dot, z_dot] (m/s)
public readonly float TrueAnomalyRad; // 궤도 진근점이각 u (rad)
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public RelativeOrbitState(Vector3 pos, Vector3 vel, float anomaly)
{
RelativePosM = pos;
RelativeVelMps = vel;
TrueAnomalyRad = anomaly;
}
}
/// <summary>
/// 추력기 펄스 명령 출력 구조체
/// </summary>
public readonly struct ThrusterPulseCommand
{
public readonly Vector3 PulseForceN; // 3축 제어력 [Fx, Fy, Fz] (N)
public readonly float DeltaVMps; // 1ms 펄스 소모 Delta-V (m/s)
public readonly bool IsPulseActive; // 추력기 분사 활성화 여부
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public ThrusterPulseCommand(Vector3 force, float dv, bool active)
{
PulseForceN = force;
DeltaVMps = dv;
IsPulseActive = active;
}
}
/// <summary>
/// 공군 초소형 정찰위성 1,000Hz 0-Alloc HCW 상대궤도 제어 코어
/// </summary>
public ref struct SpaceConstellationHcwEngine
{
// 고도 500km LEO 궤도 상수
public const float EarthMu = 3.986004418e14f; // 지구 중력상수 (m^3/s^2)
public const float OrbitRadiusM = 6871000.0f; // 6,371km + 500km
public const float SatelliteMassKg = 25.0f; // 초소형 위성 질량 25kg
public const float MaxThrusterForceN = 0.050f; // 냉가스 마이크로 추력기 50mN
public const float DeadbandDistanceM = 0.50f; // 불감대 반경 0.5m
/// <summary>
/// 1,000Hz 결정론적 HCW 상대궤도 오차 감시 및 LQR 펄스 추력 산출
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ThrusterPulseCommand EvaluateRelativeOrbitControl(
in RelativeOrbitState current,
in Vector3 desiredPosM,
float orbitOmegaRadPerSec)
{
// 1. 목표 투영 원형 궤도(PCO) 대비 3차원 상대 위치 오차 계산
Vector3 posErr = current.RelativePosM - desiredPosM;
float errDist = posErr.Length();
// 2. 불감대(Deadband) 검사: 허용 오차 내에서는 추진제 절약을 위해 분사 억제
if (errDist <= DeadbandDistanceM)
{
return new ThrusterPulseCommand(Vector3.Zero, 0f, false);
}
// 3. PCO 무표류 목표 속도 조건 산출
// x_dot_des = (omega/2) * y_des, y_dot_des = -2 * omega * x_des
float vxDes = 0.5f * orbitOmegaRadPerSec * desiredPosM.Y;
float vyDes = -2.0f * orbitOmegaRadPerSec * desiredPosM.X;
float vzDes = orbitOmegaRadPerSec * desiredPosM.Z;
Vector3 desiredVel = new Vector3(vxDes, vyDes, vzDes);
Vector3 velErr = current.RelativeVelMps - desiredVel;
// 4. LQR 기반 3차원 궤환 복원 가속도 산출
// Kp = 0.008, Kd = 0.12
float axCmd = -(0.008f * posErr.X) - (0.12f * velErr.X);
float ayCmd = -(0.006f * posErr.Y) - (0.15f * velErr.Y);
float azCmd = -(0.008f * posErr.Z) - (0.12f * velErr.Z);
// 5. 위성 질량 곱 및 추력기 포화 리미터 매핑
float fx = Math.Clamp(axCmd * SatelliteMassKg, -MaxThrusterForceN, MaxThrusterForceN);
float fy = Math.Clamp(ayCmd * SatelliteMassKg, -MaxThrusterForceN, MaxThrusterForceN);
float fz = Math.Clamp(azCmd * SatelliteMassKg, -MaxThrusterForceN, MaxThrusterForceN);
Vector3 pulseForce = new Vector3(fx, fy, fz);
float totalForce = pulseForce.Length();
float dv = (totalForce / SatelliteMassKg) * 0.001f; // 1ms 펄스 속도 증분
return new ThrusterPulseCommand(pulseForce, dv, totalForce > 0.001f);
}
}
}
제4장: 2022 개정 교육과정 연계 교과 융합 지도안 (교사용 가이드)
교과목별 성취기준 및 공학 연계 탐구 가이드
| 교과목 | 2022 개정 성취기준 코드 | 핵심 탐구 주제 및 시뮬레이션 실습 |
|---|---|---|
| 물리 | [12물리Ⅰ01-02] [12물리Ⅱ01-01] |
뉴턴 만유인력 법칙과 케플러 제3법칙 궤도 각속도 $\omega = \sqrt{\mu/r^3}$. 회전 기준계(LVLH)에서의 원심력과 코리올리 힘 평형. |
| 지구과학 | [12지구Ⅰ02-01] [12지구Ⅱ01-02] |
인공위성의 저궤도 비행 환경과 지구 타원체 편평도에 따른 비대칭 중력장 $J_2$ 섭동 및 희박 대기 저항력 차이 분석. |
| 수학 | [12미적02-03] [12기하02-01] |
3차원 선형 연립 미분방정식(HCW 방정식)의 고유치 해석과 특수해(폐곡선 투영 원형 궤도 조건 $\dot{y}_0 = -2\omega x_0$) 유도. |
| 정보 | [12정보03-02] [12인공지능02-02] |
불감대(Deadband)를 고려한 LQR 최적 추력 분배 알고리즘을 1ms 내에 무할당 연산하는 1,000Hz 0-Alloc C# 실시간 우주 임베디드 코어 구현. |