1. 개요
해양 유무인복합체계(MUM-T)에서 함정 탑재 수직이착륙(VTOL) 무인정찰기 및 중형 헬리콥터가 악천후 해상(Sea State 5, 파고 3~4m)에서 안전하게 착함하는 것은 해군 항공작전의 최고난도 과제입니다. 격렬한 파도에 의해 함정 헬리데크가 상하 수직(Heave), 횡요(Roll), 종요(Pitch)로 불규칙하게 진동할 때, 착함 순간 기체가 전복되거나 갑판에 격돌할 위험이 극도로 높습니다. 이를 방지하기 위해 기체 하부에서 와이어를 사출하여 함정 중앙의 래피드 시큐어링 베어(RAST) 장치에 결속한 후, 함상 윈치가 케이블 장력을 능동 조절하여 기체를 갑판 중앙으로 강제 견인하는 홀다운(Haul-Down & Rapid Securing) 시스템이 운용됩니다. 그러나 파도 주기에 맞춰 케이블의 느슨해짐(Slack)과 과도 장력에 의한 파단을 1밀리초 단위로 방어해야 합니다. 본 고에서는 함정 운동 예측 칼만 필터와 비선형 가변 장력 임피던스 제어를 10,000Hz 주기로 연산하는 0-Alloc C# 엔진을 구현합니다.
2. 수학적 모델링 및 지배 방정식
해상 파도에 의해 유도되는 함정 헬리데크의 6자유도 운동 중 수직 변위 \(z_{deck}(t)\)와 기체 고도 \(z_{uav}(t)\) 사이의 케이블 상대 신장량 \(\Delta L(t)\)은 다음과 같습니다:
탄성 계수 \(E\), 단면적 \(A_{cab}\), 구조 감쇠 \(c_{cab}\)를 갖는 테더 케이블의 장력 \(T_{cable}(t)\) 동역학 방정식은 슬랙(\(\Delta L \le 0\)) 시 장력이 0이 되는 비대칭 비선형성을 갖습니다:
유압/전동 윈치 드럼 관성 \(J_w\), 모터 구동 토크 \(\tau_w\), 케이블 반경 \(R_w\)에 대한 윈치 회전 운동 방정식은 다음과 같습니다:
목표 착함 장력 \(T_{ref}\)을 유지하며 슬랙 방지 항력을 보장하는 비선형 능동 임피던스 제어 토크 법칙은 다음과 같습니다:
3. 실시간 C# 서보 제어기 구현
다음은 로드셀 케이블 장력과 함정 운동 센서를 10,000Hz로 판독하여 윈치 모터 토크를 무할당으로 산출하는 C# 서보 엔진 구현체입니다:
using System;
using System.Runtime.CompilerServices;
namespace ZeliDesk.Core.NavalAviation
{
public ref struct DroneHaulDownTensionServo
{
private readonly double _dt;
private readonly double _winchRadiusM;
private readonly double _targetTensionN; // 예: 12000 N (약 1.2톤)
private readonly double _maxSafeTensionN; // 25000 N
private readonly double _minAntiSlackTensionN; // 1500 N
// 상태 변수
private double _measuredTensionN;
private double _filteredTensionN;
private double _winchTorqueCmdNm;
private double _cableSpeedMPerS;
// 제어 이득
private readonly double _kpTension;
private readonly double _kdSpeed;
public DroneHaulDownTensionServo(
double dt,
double winchRadiusM,
double targetTensionN,
double maxSafeTensionN,
double kpTension,
double kdSpeed)
{
_dt = dt;
_winchRadiusM = winchRadiusM; // 약 0.15 m
_targetTensionN = targetTensionN;
_maxSafeTensionN = maxSafeTensionN;
_minAntiSlackTensionN = 1500.0;
_kpTension = kpTension;
_kdSpeed = kdSpeed;
_measuredTensionN = targetTensionN;
_filteredTensionN = targetTensionN;
_winchTorqueCmdNm = 0.0;
_cableSpeedMPerS = 0.0;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public double ComputeWinchTorque(
double loadCellTensionN,
double uavVerticalVelocityMs,
double deckHeaveVelocityMs,
out double netCableTensionN,
out bool isSlackCondition)
{
_measuredTensionN = loadCellTensionN;
// 1. 장력 신호 1차 저역통과 필터링
_filteredTensionN = 0.90 * _filteredTensionN + 0.10 * _measuredTensionN;
netCableTensionN = _filteredTensionN;
// 2. 상대 수직 속도 계산 (갑판이 상승하면 와이어가 느슨해짐)
double relativeSpeed = uavVerticalVelocityMs - deckHeaveVelocityMs;
_cableSpeedMPerS = relativeSpeed;
// 3. 슬랙(느슨해짐) 위험 판별
isSlackCondition = _filteredTensionN < _minAntiSlackTensionN;
// 4. 비선형 능동 임피던스 제어 토크 산출
double tensionError = _targetTensionN - _filteredTensionN;
// 기본 피드포워드 토크: Tau_ff = R_w * T_ref
double tauFeedforward = _winchRadiusM * _targetTensionN;
// 피드백 보정 토크
double tauFeedback = _kpTension * tensionError - _kdSpeed * _cableSpeedMPerS;
// 슬랙 방지 고속 권취(High-speed Retrieval) 추가 토크
double tauAntiSlack = 0.0;
if (isSlackCondition)
{
tauAntiSlack = 850.0; // 강제 권취 가속 토크
}
// 과장력 차단 릴리프 보호
if (_filteredTensionN > _maxSafeTensionN)
{
tauFeedback -= 1200.0; // 강제 풀림 모드
}
_winchTorqueCmdNm = tauFeedforward + tauFeedback + tauAntiSlack;
_winchTorqueCmdNm = Math.Clamp(_winchTorqueCmdNm, -500.0, 3500.0); // 윈치 토크 한계
return _winchTorqueCmdNm;
}
public readonly double CurrentTension => _filteredTensionN;
public readonly double WinchTorqueCommand => _winchTorqueCmdNm;
}
}
4. 교육 및 국방 현장 적용 방안
방통대 및 초중고 해양제어·로봇역학 직무연수
파도에 요동치는 부유체와 공중 비행체의 상대 기구학, 단방향 인장만 전달하는 테더 케이블의 비선형 동역학을 가상 함상 착함 시뮬레이터로 학습. 슬랙 방지와 과장력 완화의 능동 임피던스 제어 원리를 체득합니다.
해군 구축함 및 상륙함 무인기 함상 운용 체계
야간 악천후 및 거친 파도 속에서도 고가의 대잠·정찰 무인기가 헬리데크에 100% 안전하게 착함 계류되도록 보장하여, 함정의 24시간 연속 광역 감시 작전 가용성을 결정적으로 높입니다.