28.6.2.1.1. 피치(Pitch)와 스로틀(Throttle)을 고도(Altitude) 및 대기속도(Airspeed)로 매핑하는 역학적 종속성

28.6.2.1.1. 피치(Pitch)와 스로틀(Throttle)을 고도(Altitude) 및 대기속도(Airspeed)로 매핑하는 역학적 종속성

PX4-Autopilot의 고정익 제어 모듈(Fixed-wing Position Control)이 의존하는 TECS(Total Energy Control System) 알고리즘은 항공 우주 공학의 가장 아름다운 제어 모델 중 하나로 평가받는다. 조종기 스틱에서 뿜어져 나오는 피치(Pitch)와 스로틀(Throttle) 명령은 기하학적인 직관을 넘어, 기체의 위치 에너지(Potential Energy)와 운동 에너지(Kinetic Energy)를 실시간으로 환전(Exchange)하는 행위로 수학적으로 맵핑된다.

본 절에서는 TECS 내부에서 고도와 대기속도라는 목표(Setpoint)가 어떠한 역학적 매트릭스를 거쳐 최종적으로 승강타(Elevator)와 모터(Motor) 출력으로 변환되는지, 그 결합(Coupled) 종속성의 핵심 공식을 해부한다.


1. 에너지 상태량(Energy State)의 정의

비행기가 공중에 떠 있다는 것은 두 가지 형태의 저장된 에너지를 보유하고 있음을 의미한다.
TECS는 비행기의 질량(m)을 제외한 ‘비에너지(Specific Energy, 단위 질량당 에너지)’ 개념을 도입하여 수식을 단순화한다.

  1. 비위치 에너지 (Specific Potential Energy, E_P): 기체의 높이에 비례함.
    E_P = g \cdot h
    (여기서 g는 중력가속도, h는 기압계/GPS 기반 고도)
  2. 비운동 에너지 (Specific Kinetic Energy, E_K): 기체의 대기속도(Airspeed)의 제곱에 비례함.
    E_K = \frac{1}{2} v^2
    (여기서 v는 피토관(Pitot Tube) 등에서 측정한 대기속도)

이 두 에너지의 합이 총 비에너지(Specific Total Energy, E_T) 이다.
E_T = E_P + E_K

1.1 에너지 균형(Energy Balance)의 정의

총 에너지와 별개로, 현재 기체가 가진 에너지가 고도에 쏠려 있는지 속도에 쏠려 있는지를 판별하기 위해 에너지 밸런스(E_B) 라는 가상 지표를 하나 더 둔다.
E_B = E_P - E_K


2. 오차 연산 및 제어기 맵핑 (The Mapping Matrix)

상위 모듈(Mission 모드 조종자 등)이 목표 고도(h_{sp})와 목표 대기속도(v_{sp})를 내려보내면, TECS는 현재 상태와 목표 상태 간의 총 에너지 오차(E_{T_{err}})에너지 밸런스 오차(E_{B_{err}}) 를 계산해낸다.

이 두 가지 오차 변수는 PX4 내부의 PI 제어기(Proportional-Integral Controller)를 통과한 후, 고정익 제어의 양대 산맥인 스로틀과 피치 승강타 명령으로 크로스 매핑(Cross-mapping)된다.

2.1 스로틀 제어 루프 (에너지 주입/소모)

“총 에너지가 부족하면 엔진을 켜고, 남으면 끈다.”
스로틀 제어기(\delta_{throttle})는 순수하게 총 에너지 오차(E_{T_{err}})에 의해서만 구동되는 단방향 종속성을 띤다.

\delta_{throttle} = K_{T\_P} \cdot E_{T_{err}} + K_{T\_I} \cdot \int E_{T_{err}} dt + Throttle_{trim}

만약 고도를 높이면서 동시에 속도도 높여야 한다면 총 에너지 오차는 극도로 양수(+) 팽창하며, TECS는 즉시 스로틀을 100% 한계치까지 개방하여 배터리의 화학 에너지를 기체의 물리 에너지로 펌핑(Pumping)하기 시작한다.

2.2 피치 제어 루프 (에너지 환전기)

“에너지를 고도로 몰아줄 것인가, 속도로 몰아줄 것인가.”
승강타를 움직여 기체의 피치(pitch_sp)를 바꾸는 행위는 배터리를 소모하지 않는다. 그저 기체를 위로 향하게 하여 속력을 잃으면서 고도를 얻거나, 아래로 내리꽂아 반대 효과를 만들 뿐이다. 따라서 피치 제어기(\theta_{sp})는 에너지 밸런스 오차(E_{B_{err}})에 정비례하여 구동된다.

\theta_{sp} = K_{P\_P} \cdot E_{B_{err}} + K_{P\_I} \cdot \int E_{B_{err}} dt + Pitch_{trim}

만약 100m 상공에서 50m로 하강해야 하는데(고도 잉여), 속도는 일정하게 유지하고 싶다면 어떻게 될까?
TECS는 곧바로 피치를 내려(Pitch Down) 중력 위치 에너지를 운동 에너지로 가속 변환시키려 할 것이다. 하지만 이렇게 되면 속도가 너무 빨라지게 되므로 총 에너지가 잉여 상태에 빠진다. 따라서 스로틀 제어기가 알아서 반응하여 아이들(Idle) 상태로 꺼짐으로써 엔진 대신 중력의 힘을 빌려 목표 상태에 도달하는 유기적인 융합(Coupling)을 이루어낸다.


3. 대기속도 센서 (Airspeed Sensor) 부재 시의 퇴화(Degradation) 분기

이 완벽한 결합 역학의 치명적인 아킬레스건은 대기속도 센서(Pitot Tube) 고장이다. GPS 지상 속도(Ground Speed)로는 맞바람과 뒷바람의 공기 역학적 운동 에너지를 절대로 측정할 수 없기 때문이다.

PX4의 TECS 모듈은 airspeed_valid == false 플래그가 뜨는 순간, 아름다웠던 결합 제어 시스템을 포기하고 원시적인 무결합(Decoupled) 고도-피치 제어 모드 로 퇴화(Fallback)한다.

  • \text{에너지 밸런스 연산 포기} \rightarrow \text{오직 목표 고도 오차} (h_{err}) \text{만으로 피치를 직접 당김.}
  • \text{속도 연산 포기} \rightarrow \text{기체가 위로 향할 때(피치 업) 임의로 스로틀을 더 주는(Throttle Nudging) 1차원 게인 함수 사용.}

이 모터스케일 맵핑 상태에서는 상승 시 맞바람이 심하면 실속(Stall)에 빠질 확률이 매우 높아진다. 따라서 ArduPilot과 대조적으로, PX4의 TECS는 대기속도 센서에 대한 의존도가 코드 전반에 걸쳐 훨씬 강력하게 하드코딩(Hard-coding)되어 있다. 이는 고정익 비행에서 에너지 보존 법칙을 철저히 신봉하는 설계 철학의 결과이다.