AEGLOSLAB 무인항공과 첨단항공모빌리티

제2부 비행제어·항공전자·감시

2.15 비행 로봇 제어 심화: 미분 평탄성·SE(3) 기하 제어·INDI·모델 예측 제어

2.15.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자

2.2는 호버 근처에서 설계한 캐스케이드 PID로 멀티콥터를 세웠다. 대부분의 기체는 그것으로 충분하다. 그러나 기체를 한계까지 몰거나, 크게 기울이거나, 모르는 외란 속에서 정확히 날려야 할 때 캐스케이드는 네 가지 질문에 답하지 못한다. 이 궤적을 이 기체로 날 수 있는가. 큰 각도에서 자세 오차를 어떻게 재는가. 모형이 틀리면 어떻게 하는가. 한계에 닿기 전에 미리 피할 수 있는가. 이 장은 2.2.7이 표 한 장으로 다룬 고급 제어를 이어받아, 네 질문에 답하는 네 도구를 유도와 계산으로 펼친다.

배우는 것:

  • 미분 평탄성 — 위치와 요(기수 방향)의 궤적과 그 미분만으로 추력·자세·각속도·토크가 대수적으로 나온다는 결과와, 그것이 "궤적 검사가 곧 제어 가능성 검사"가 되는 이유.
  • SE(3) 기하 제어 — 오일러각 대신 회전 행렬 위에서 오차를 정의하는 제어 법칙, 큰 각도에서의 차이, "거의 전역적" 수렴의 뜻과 그 한계.
  • INDI(증분 비선형 동적 역변환) — 공력 모형 대신 측정한 각가속도를 사용하는 구조, 외란에 강한 이유, 그리고 지연에 약한 이유.
  • 비선형 모델 예측 제어(NMPC) — 제약을 예측 구간 안에서 미리 보는 구조, 탑재 연산 부담, 사용할 만한 조건.
  • 같은 기체로 끝까지 계산한 비교 — 2.1의 2 kg 쿼드 기준 모델로 8자 궤적의 실현 가능성, 세 제어기의 추종 오차, 큰 각도 회복, INDI 대 PID의 외란 응답.
  • 고정익·하이브리드 VTOL로의 확장 한계와 인증에서 이 도구들이 만나는 벽.

선수 지식: 멀티콥터의 운동 방정식과 믹서 행렬은 1.7.3, 자세 표현(오일러각·회전 행렬·쿼터니언)은 2.1.3.2, 2 kg 쿼드 기준 모델은 2.1.5다. 캐스케이드 구조·지연·제어 할당은 2.2.3~2.2.6, 고급 제어의 개관은 2.2.7이다. 최소 스냅 다항식의 한 구간 해는 7.2.7.1에 있다. 제어 이론 일반(리아푸노프 안정성·MPC 일반론)은 자매서 controleng(CE), 로봇 제어 일반은 자매서 robotics의 제12부(제어)·제14부(공중 로봇)가 맡는다. 이 장은 비행 로봇에 고유한 부분만 깊게 작성한다.

특히 중요한 독자: 제어·자율 비행 엔지니어는 전체를 읽는다. 인증 담당자는 2.15.5.3(거의 전역적 수렴의 뜻), 2.15.7.2(INDI의 지연 민감도), 2.15.8(MPC의 연산·수렴 보증), 2.15.13을 본다. 사업·정책 담당자는 2.15.2의 그림, 2.15.10의 트레이드오프, 2.15.11의 비교표만 읽어도 된다.

기준 시점과 정직성. 이 장은 2026년 10월을 기준으로 작성한 기술 장이며 집필에 사용한 지식은 2026년 중반까지다. 수치 예시는 2.1.5의 2 kg 쿼드 기준 모델(가상 기체: 질량 2.0 kg, 관성 $I_{xx}=I_{yy}=0.0143$·$I_{zz}=0.0272$ kg·m², 로터당 최대 추력 9.81 N, 모터 지연 30 ms)에 이 장이 제어기 이득을 가정으로 더한 것이다. 이득은 설명용이고 어떤 제품의 값도 아니다. 계산은 표준 라이브러리 math만 사용한 파이썬(mil-uam/fig-src/2.15-calc.py, 6자유도 적분 0.25 ms·제어 400 Hz)으로 돌렸다. 논문이 보고한 수치는 (논문 보고)로 적고 이 장의 계산과 섞지 않는다. 제조사·정부가 밝힌 제원은 (공개 주장치), 확인하지 못한 사실은 (확인 필요)로 표시했다.

2.15.2 개념·직관 — 캐스케이드가 답하지 않는 네 가지 질문

캐스케이드는 호버 근처의 선형 모형 위에서 설계한 구조다. 속도 제어기는 $\ddot x\approx g\theta$로 가속도를 기울기로 바꾸고(2.2.3), 각 루프는 바로 안쪽 루프가 명령을 순식간에 따른다고 가정한다. 이 가정이 맞는 동안은 단순함이 곧 강점이다. 가정이 깨지는 곳이 넷이고, 이 장의 네 도구가 하나씩 맡는다.

캐스케이드의 가정깨지는 상황이 장의 도구바꾸는 층
기준은 위치뿐이고 나머지는 오차가 만든다빠른 궤적에서 안쪽 루프가 늘 뒤처진다미분 평탄성(앞먹임)기준
작은 각도에서 기울기는 가속도에 비례한다기울기 40° 이상, 뒤집힘, 피치 90° 근처SE(3) 기하 제어위치·자세
모형은 대략 맞고 적분기가 나머지를 지운다큰 외란·탑재 변화·손상INDI각속도·토크
포화는 할당기가 사후에 처리한다한계 근처를 오래 나는 기동비선형 MPC위치에서 토크까지
① 캐스케이드 (2.2) ② 평탄성 + SE(3) ③ INDI 안쪽 루프 ④ 비선형 MPC 기준 위치· 속도 자세 각속도· 토크 위치 기준 위치 P 속도 PI 작은 각 사상 자세 P 각속도 PID 위치·요와 미분 4차까지 힘 벡터 오차 → 추력 방향 회전 행렬 오차 + 앞먹임 토크 앞먹임 (각가속도) ①이나 ②의 기준 ①이나 ②의 바깥 루프 각가속도 목표 ν 증분 역변환 측정 각가속도 기준 궤적 (예측 구간) N단계 예측 최적화 모형·제약 (추력·기울기· 로터 한계) 매 주기 다시 제어 할당(믹서의 역·우선순위, 2.2.6) → 모터 4개 파란 테두리: ①과 다른 층 · 회색: 다른 구조의 층을 그대로 사용한다
네 제어 구조가 바꾸는 층 — ②는 기준을 미분 4차까지 사용하고 자세 오차를 회전 행렬 위에서 정의하며, ③은 각속도·토크 층을 모형 대신 측정 각가속도로 닫고, ④는 위치에서 토크까지를 제약이 있는 최적화 하나로 묶는다. 실제 구현은 ②+③, ④+③처럼 병용하는 경우가 많다

그림에서 읽을 것은 네 도구가 경쟁 관계가 아니라는 점이다. 평탄성은 기준을, SE(3)는 오차의 정의를, INDI는 안쪽 루프를, MPC는 여러 층을 묶는 방식을 바꾼다. 그래서 실제 연구 기체는 "평탄성 앞먹임 + SE(3) + INDI" 또는 "NMPC + INDI"처럼 병용한다(2.15.8의 비교 연구가 그 예다).

세 축은 이 도구들을 다르게 원한다. 군용 드론은 FPV·요격 드론처럼 기체 한계까지 사용하는 기동(10.8·11.11)과 손상·탑재 변화 속의 강건성을 원한다. 민간 UAS는 대부분 기울기 한계 안에서 날지만 점검 근접 비행과 강풍 속 정지, 배송 탑재 변화에서 외란 강건성이 값을 낸다. AAM은 승객의 승차감 때문에 기동이 완만하다. 대신 같은 계보의 동적 역변환이 유인기 비행제어(FBW)에 사용되어 온 이력이 있고, 제어 법칙 전체가 인증 대상이라 연산·수렴·센서 의존을 입증할 수 있느냐가 선택을 결정한다(2.3·15.6).

2.15.3 미분 평탄성 — 위치와 요에서 모든 입력이 나온다

2.15.3.1 정의와 유도

결론부터: 멀티콥터는 위치 세 성분과 요각, 모두 네 값의 궤적만 정하면 나머지 상태와 입력이 전부 정해진다. 적분이나 미분방정식을 풀 필요 없이 그 네 값과 유한 차수 미분의 대수식으로 나온다. 이런 출력을 평탄 출력(flat output), 이런 계를 미분 평탄(differentially flat)하다고 한다(Fliess 외, 1995). 쿼드로터에 대해서는 Mellinger·Kumar(2011)가 이 성질을 보이고 궤적 생성과 제어에 사용했다.

유도는 1.7.3의 병진 방정식에서 시작한다. 좌표는 NED(아래가 $+z$)이고 $\mathbf b_1,\mathbf b_2,\mathbf b_3$는 회전 행렬 $R$의 세 열, 곧 기체의 앞·오른쪽·아래 축이다.

$$m\ddot{\mathbf p}=mg\,\mathbf e_3-T\,\mathbf b_3\quad\Rightarrow\quad T=m\bigl\lVert g\,\mathbf e_3-\ddot{\mathbf p}\bigr\rVert,\qquad \mathbf b_3=\frac{g\,\mathbf e_3-\ddot{\mathbf p}}{\lVert g\,\mathbf e_3-\ddot{\mathbf p}\rVert}$$

가속도가 추력의 크기와 방향을 정한다. 남은 자유도는 $\mathbf b_3$ 둘레의 회전 하나이고, 그것을 요각 $\psi$가 정한다.

$$\mathbf x_c=(\cos\psi,\ \sin\psi,\ 0)^{\mathsf T},\qquad \mathbf b_2=\frac{\mathbf b_3\times\mathbf x_c}{\lVert\mathbf b_3\times\mathbf x_c\rVert},\qquad \mathbf b_1=\mathbf b_2\times\mathbf b_3,\qquad R=[\,\mathbf b_1\ \mathbf b_2\ \mathbf b_3\,]$$

한 번 미분하면 저크 $\mathbf j=\dddot{\mathbf p}$가 각속도를 정한다. $\dot R=R[\boldsymbol\omega]_\times$에서 $\dot{\mathbf b}_3=\omega_y\mathbf b_1-\omega_x\mathbf b_2$이므로 위 식을 미분해 세 축에 투영하면 다음이 나온다.

$$\dot T=-m\,\mathbf j\cdot\mathbf b_3,\qquad \omega_x=\frac{m\,\mathbf j\cdot\mathbf b_2}{T},\qquad \omega_y=-\frac{m\,\mathbf j\cdot\mathbf b_1}{T},\qquad \omega_z=\dot{\mathbf b}_1\cdot\mathbf b_2$$

한 번 더 미분하면 스냅 $\mathbf s=\ddddot{\mathbf p}$와 $\ddot\psi$가 각가속도 $\dot{\boldsymbol\omega}$를 정하고, 오일러 방정식이 토크를, 믹서의 역(1.7.3)이 로터 네 개의 추력을 준다.

$$\boldsymbol\tau=J\dot{\boldsymbol\omega}+\boldsymbol\omega\times J\boldsymbol\omega,\qquad \mathbf f=M^{-1}\,[\,T,\ \tau_x,\ \tau_y,\ \tau_z\,]^{\mathsf T}$$

기호뜻단위
$\mathbf p$, $\ddot{\mathbf p}$, $\mathbf j$, $\mathbf s$위치, 가속도, 저크(3차 미분), 스냅(4차 미분)m, m/s², m/s³, m/s⁴
$\psi$요각(평탄 출력의 네 번째 성분)rad
$T$, $\mathbf b_3$총추력, 기체 아래 축(추력은 $-\mathbf b_3$ 방향)N, 무차원
$R=[\mathbf b_1\ \mathbf b_2\ \mathbf b_3]$기체에서 NED로의 회전 행렬무차원
$\boldsymbol\omega$, $\dot{\boldsymbol\omega}$몸체 각속도, 각가속도rad/s, rad/s²
$J$, $\boldsymbol\tau$, $\mathbf f$, $M$관성 행렬, 토크, 로터 추력, 믹서 행렬kg·m², N·m, N, —

2.15.3.2 함의 — 궤적 검사가 곧 제어 가능성 검사다

평탄성의 첫째 함의는 미분의 차수와 부품 한계가 일대일로 대응한다는 점이다. 7.2.7.1이 "가속도는 기울기에, 저크는 각속도에, 스냅은 토크에" 대응한다고 한 말을 식으로 정확히 한 것이 위 유도다.

미분 차수평탄성이 정하는 것한계를 주는 것더 볼 곳
0 위치경로지오펜스·장애물2.6·7.2
1 속도항력, 인지 거리감지 거리, 항력7.1.4
2 가속도총추력 $T$, 기울기추력 대 무게비, 기울기 한계1.7.7
3 저크롤·피치 각속도, 추력 변화율자이로 측정 범위, 모터 응답2.2.5
4 스냅각가속도, 토크, 로터 추력 차로터 추력 한계, 요 권한2.2.6

그래서 궤적을 만든 뒤 평탄 사상으로 로터 추력을 계산하면 그 궤적을 이 기체가 날 수 있는지 비행 전에 안다. 날 수 없으면 시간을 늘려 다시 만든다. 이 반복이 7.12의 시간 배분이다. 궤적이 스냅까지 연속이어야 토크가 튀지 않는다는 요구가 최소 스냅(7차 다항식)의 근거이기도 하다.

둘째 함의는 앞먹임이다. 평탄 사상은 기준 궤적에서 기준 자세·각속도·각가속도·추력을 미리 준다. 제어기는 그 위에 오차만 바로잡으면 된다. 캐스케이드가 "오차가 생겨야 움직이는" 구조라면 평탄성 앞먹임은 "필요한 입력을 먼저 넣고 남은 오차를 고치는" 구조다. 2.15.6의 시뮬레이션에서 이 차이가 추종 오차를 4~7배 줄인다.

2.15.3.3 특이점과 모형의 한계

평탄 사상이 깨지는 곳이 셋 있다.

  • 자유 낙하($T=0$). $\ddot{\mathbf p}=g\mathbf e_3$이면 $\mathbf b_3$를 정할 수 없고 각속도 식의 분모가 0이 된다. 추력이 0에 가까운 급하강 궤적은 피하거나 따로 다룬다(Faessler 외의 기술 보고서가 처리 방법을 다룬다).
  • 요 정의의 특이점. $\mathbf b_3$가 $\mathbf x_c$와 나란해지면(기체가 90° 숙여 앞축이 수직이 되는 자세) $\mathbf b_2$가 정의되지 않는다. 공중제비 같은 기동은 기준 방향을 바꿔 정의한다.
  • 모형 밖의 힘. 위 유도는 추력 외의 공기력이 없다고 둔다. 고속에서 커지는 로터 항력(속도에 비례하는 항력)을 넣어도 위치와 요가 여전히 평탄 출력이라는 결과가 있다(Faessler·Franchi·Scaramuzza, IEEE RA-L 3(2), 2018). 그 모형으로 앞먹임을 계산하면 항력을 모르는 외란으로 두는 방식보다 추종 오차가 크게 준다고 보고됐다 (논문 보고).

모터 지연까지 넣으면 한 차수가 더 필요하다. 1차 지연 $\tau_m$을 거쳐 원하는 로터 추력을 내려면 명령에 $\tau_m\dot{\mathbf f}$를 더해야 하고, 그 값은 위치의 5차 미분에 달려 있다. 30 ms 지연의 기체에서 이 항을 버리는 근사가 2.15.6의 잔여 오차 일부를 만든다.

2.15.4 워크스루 — 이 8자 궤적은 이 기체로 날 수 있는가

같은 기체로 평탄성 검사를 끝까지 해 본다. 궤적은 수평면의 8자(레미니스케이트)다. 고도와 요는 고정한다.

$$x(t)=A\sin\omega t,\qquad y(t)=\tfrac{A}{2}\sin 2\omega t,\qquad z=\text{일정},\qquad \psi=0,\qquad \omega=\frac{2\pi}{T_{\mathrm{lap}}}$$

가정값근거
기체2.0 kg, $I=\mathrm{diag}(0.0143,\ 0.0143,\ 0.0272)$ kg·m²2.1.5
믹서$a=0.1414$ m, $\kappa=0.016$ m, 쿼드 X1.7.3
로터 추력 범위0~9.81 N(총 39.24 N, 추력 대 무게비 2)2.2.6
궤적진폭 $A=4$ m, 한 바퀴 $T_{\mathrm{lap}}$ = 6·5·4.5·4 s가정
계산해석식으로 미분, 각속도는 해석식과 수치 미분을 대조2.15-calc.py

먼저 한 순간을 손으로 따라가 본다. 한 바퀴 5 s의 $t=1.25$ s에서 가속도는 $(-6.32,\ 0,\ 0)$ m/s², 저크는 $(0,\ 31.75,\ 0)$ m/s³이다. 추력은 $T=2.0\times\sqrt{9.81^2+6.32^2}=23.34$ N, 기울기는 $\arctan(6.32/9.81)=32.8°$다. $\mathbf b_2=(0,1,0)$이므로 롤 각속도는 $\omega_x=2.0\times31.75/23.34=2.72$ rad/s다. 수치 미분값과 $10^{-7}$ rad/s 안에서 맞는다. 같은 순간 요축 각속도도 1.75 rad/s가 나온다. 요각을 고정해도 기울어진 기체가 롤하면 몸체 요축은 돈다. 로터 추력은 5.59·6.08·5.59·6.08 N이다.

한 바퀴 전체를 훑은 결과는 다음과 같다.

한 바퀴최대 속도최대 가속도최대 기울기최대 총추력롤·피치 각속도 최대요축 각속도 최대요 토크 최대로터 추력 범위판정
6 s5.9 m/s9.3 m/s²43.5°27.1 N1.93 rad/s0.77 rad/s0.04 N·m4.5~7.1 N가능
5 s7.1 m/s13.4 m/s²53.8°33.3 N3.34 rad/s1.75 rad/s0.15 N·m3.8~8.9 N가능
4.5 s7.9 m/s16.6 m/s²59.4°38.5 N4.58 rad/s2.76 rad/s0.29 N·m2.0~11.8 N불가(로터 상한)
4 s8.9 m/s21.0 m/s²64.9°46.3 N6.52 rad/s4.48 rad/s0.64 N·m−2.6~18.3 N불가(총추력)
0.00 0.25 0.50 0.75 1.00 4 8 12 16 20 한 바퀴 안의 위치 t/Tlap 가장 큰 로터 추력 [N] 호버 4.9 N 빨간 점선: 로터 한계 9.81 N 한 바퀴 6 s(최대 7.1 N) 한 바퀴 5 s(최대 8.9 N) 한 바퀴 4.5 s(최대 11.8 N) 한 바퀴 4 s(최대 18.3 N)
평탄성으로 계산한 8자 궤적의 가장 큰 로터 추력(진폭 4 m, 요 고정) — 한 바퀴를 6 s에서 4.5 s로 줄이면 총추력은 한계 안(38.5 N, 최대 39.2 N)인데도 요 토크 몫이 더해진 로터 하나가 9.81 N을 넘는다. 이 검사가 궤적 생성의 시간 배분(7.12)으로 돌아간다

읽을 것은 셋이다. 첫째, 총추력만 보면 이 궤적은 한 바퀴 4.44 s까지 가능하다. 그러나 평탄 사상으로 로터 하나하나를 보면 4.80 s가 한계다. 4.5 s에서 총추력은 한계의 98 %(38.5 N)로 아직 안이지만 로터 하나가 11.8 N을 요구한다. 둘째, 그 차이를 만드는 것은 요 토크다. 요 토크 몫을 빼고 세면 한계가 4.48 s로 내려간다. 요는 가장 약한 축이고(2.2.6의 버짓 부등식에서 요 0.1 N·m는 롤 0.88 N·m의 값을 치른다), 요각 고정이라는 선택이 이 비용을 만든다. 평탄 출력의 네 번째 성분인 요각은 자유롭게 고를 수 있으므로, 요 궤적을 바꿔 몸체 요축 회전을 줄이는 것도 궤적 설계의 일부다. 셋째, 이 검사는 비행 전에, 연산 몇 밀리초로 끝난다. 실제 기체에서는 여기에 제어 여유(외란·오차를 고칠 몫, 흔히 추력의 10~20 %를 남긴다 (경험 범위))를 더 남긴다.

2.15.5 SE(3) 기하 제어 — 회전 행렬 위에서 오차를 잰다

2.15.5.1 오일러각 캐스케이드가 큰 각도에서 틀리는 곳

교과서형 캐스케이드는 세 군데에서 작은 각도를 가정한다. ① 가속도를 기울기로 바꿀 때 $\ddot x\approx-g\theta$, $\ddot y\approx g\phi$의 선형 사상을 사용한다(NED에서 앞으로 가속하려면 머리를 숙인다). 기울기 50°에서 필요한 가속도 11.7 m/s²를 이 사상에 넣으면 68° 기울기 명령이 나온다. ② 자세 오차를 오일러각의 차로 잰다. 피치 ±90°에서 특이점이 있고(2.1.3.2), 같은 자세를 다른 오일러각 세 값으로 나타낼 수 있어 오차가 엉뚱하게 커진다. ③ 오일러각 오차를 그대로 몸체 각속도 명령으로 사용한다. 기울어진 자세에서는 오일러각 변화율과 몸체 각속도가 다르다.

현대 오토파일럿은 이미 이 가운데 일부를 고쳤다. 2.2.3이 적었듯 자세 루프는 쿼터니언 오차로 계산하고, 오픈소스 오토파일럿의 위치 제어도 추력 벡터에서 자세 목표를 구하는 비선형 사상을 사용한다 (공개 개발 문서 기준, 판에 따라 다르다 — 확인 필요). SE(3) 기하 제어는 이 고침들을 하나의 좌표 없는 정식화로 묶고 안정성 증명을 붙인 것이다.

2.15.5.2 제어 법칙

Lee·Leok·McClamroch(2010)의 제어기는 위치와 자세를 한 번에, 좌표 없이 정의한다. 이 책의 NED 규약(1.7.3)과 같은 부호로 나타내면 다음과 같다. $\mathbf e_x=\mathbf p-\mathbf p_d$, $\mathbf e_v=\mathbf v-\mathbf v_d$다.

$$\mathbf A=-k_x\mathbf e_x-k_v\mathbf e_v-mg\,\mathbf e_3+m\ddot{\mathbf p}_d,\qquad \mathbf b_{3d}=-\frac{\mathbf A}{\lVert\mathbf A\rVert},\qquad T=-\mathbf A\cdot R\,\mathbf e_3$$

$$\mathbf e_R=\tfrac12\bigl(R_d^{\mathsf T}R-R^{\mathsf T}R_d\bigr)^{\vee},\qquad \mathbf e_\omega=\boldsymbol\omega-R^{\mathsf T}R_d\,\boldsymbol\omega_d$$

$$\boldsymbol\tau=-k_R\,\mathbf e_R-k_\omega\,\mathbf e_\omega+\boldsymbol\omega\times J\boldsymbol\omega-J\bigl([\boldsymbol\omega]_\times R^{\mathsf T}R_d\boldsymbol\omega_d-R^{\mathsf T}R_d\dot{\boldsymbol\omega}_d\bigr)$$

식이 하는 일은 문장으로 넷이다. ① 위치 오차에서 원하는 힘 벡터 $-\mathbf A$를 만들고 그 방향을 원하는 아래 축 $\mathbf b_{3d}$로 삼는다. 작은 각 근사가 없다. ② 추력은 원하는 힘을 현재 아래 축에 투영한 값이다. 기체가 엉뚱하게 기울어 있으면 투영이 작아져 잘못된 방향으로 세게 밀지 않는다. ③ 자세 오차 $\mathbf e_R$은 회전 행렬 두 개의 차에서 나온다. 특이점이 없고, 회전 오차각이 $\vartheta$이면 크기가 $\sin\vartheta$다. ④ 마지막 항은 기준 각속도·각가속도의 앞먹임이다. $\boldsymbol\omega_d$와 $\dot{\boldsymbol\omega}_d$를 평탄성(2.15.3)에서 가져오면 두 절의 결과가 하나로 합쳐진다. $(\cdot)^\vee$는 반대칭 행렬에서 벡터를 꺼내는 연산이다.

2.15.5.3 "거의 전역적"의 뜻

어떤 연속 되먹임도 모든 초기 자세에서 하나의 자세로 수렴시킬 수 없다. 회전 전체의 공간(SO(3))은 위상적으로 그런 제어를 허락하지 않는다는 정리가 있다(Bhat·Bernstein, Systems & Control Letters 39, 2000). 그래서 Lee 외의 결과도 "거의" 전역적이다. 자세 오차 함수 $\Psi=\tfrac12\operatorname{tr}(I-R_d^{\mathsf T}R)=1-\cos\vartheta$가 2보다 작은 곳, 곧 회전 오차 180° 미만에서 (초기 각속도 오차가 충분히 작다는 조건과 함께) 지수적으로 수렴한다. 그리고 측도가 0인 초기 상태 집합(180° 뒤집힌 평형으로 끌려가는 상태들)을 빼면 거의 모든 초기 상태에서 수렴한다는 뜻이다(증명은 논문, 여기서는 요지만).

공학적 함의는 180° 근처에서 복원 토크가 약하다는 점이다. $\lVert\mathbf e_R\rVert=\sin\vartheta$라서 170°에서 0.17, 179°에서 0.02로 줄어든다. 실무 구현이 쿼터니언 오차 $2\,\mathrm{sign}(q_w)\,\mathbf q_v$(크기 $2\sin(\vartheta/2)$, 180°에서 최대)를 사용하는 이유다. 대신 쿼터니언 오차는 정확히 180°에서 부호가 튀는 불연속을 갖는다. 잡음이 그 근처에서 명령을 좌우로 흔들 수 있어, 이력(히스테리시스)을 둔 하이브리드 제어로 전역 수렴과 강건성을 함께 얻는 연구가 있다(Mayhew·Sanfelice·Teel, IEEE TAC, 2011). 위상의 제약은 사라지지 않는다. 어디에 숨길지를 고르는 것이다.

2.15.6 시뮬레이션 — 8자 추종과 큰 각도 회복

같은 기체·같은 할당기·같은 등가 이득으로 제어기만 바꿔 6자유도 시뮬레이션을 돌렸다.

항목값
기체·모터2.15.4와 같다. 모터 1차 지연 30 ms, 로터 0~9.81 N
제어 할당2.2.6의 우선순위(요를 먼저 줄이고, 다음에 총추력을 옮기고, 마지막에 롤·피치를 줄인다)
위치 이득$k_x/m=4$ s⁻², $k_v/m=3.6$ s⁻¹(고유 2 rad/s, 감쇠 0.9), 세 제어기 모두 기준 가속도 앞먹임
자세·각속도 이득자세 6 s⁻¹(2.2), 각속도 25 s⁻¹ → SE(3)는 $k_R/J=150$ s⁻², $k_\omega/J=25$ s⁻¹로 같은 등가 이득
외란몸체 항력 $\tfrac12\rho C_DA\lVert\mathbf v\rVert\mathbf v$, $C_DA=0.05$ m²(1.7.7.3). 제어기는 모른다
적분0.25 ms, 제어 400 Hz, 회전은 지수 사상으로 적분

8자 궤적(진폭 4 m)의 추종 결과다. "선형화 캐스케이드"는 작은 각 사상과 오일러각 오차, "캐스케이드+비선형 사상"은 기울기 명령만 정확한 추력 벡터 사상으로 바꾼 것이다.

한 바퀴(최대 기울기)선형화 캐스케이드캐스케이드 + 비선형 사상SE(3)SE(3) + 평탄성 앞먹임
8 s(28°) RMS·최대0.15·0.21 m0.14·0.21 m0.15·0.21 m0.03·0.06 m
6 s(44°)0.32·0.46 m0.29·0.41 m0.30·0.43 m0.05·0.08 m
5 s(54°)0.68·0.91 m0.50·0.76 m0.46·0.65 m0.06·0.10 m
5 s에서 할당이 명령을 줄인 제어 주기 비율61 %54 %64 %0 %
0 5 10 15 0.0 0.4 0.8 1.2 시간 [s] 위치 오차 [m] 선형화 캐스케이드(오일러각) — RMS 0.68 m SE(3) 기하 제어 — RMS 0.46 m SE(3) + 평탄성 앞먹임 — RMS 0.06 m
8자 궤적 추종의 위치 오차(진폭 4 m, 한 바퀴 5 s, 최대 가속도 13.4 m/s²·기울기 54°) — 앞먹임 없는 두 제어기는 로터 포화에 자주 걸리며 0.5~0.9 m 뒤처지고, 평탄성으로 구한 각속도·각가속도를 앞먹임한 SE(3) 제어는 0.1 m 안에 머문다. RMS는 둘째·셋째 바퀴. 2 kg 쿼드 기준 모델, 몸체 항력은 제어기가 모르는 외란

큰 각도에서 놓아 준 뒤 제자리로 돌아오는 회복도 계산했다. 칸의 값은 "회전 오차가 10° 아래로 들어와 머무는 시간 · 고도 손실 · 누적 회전각"이다.

초기 자세선형화 캐스케이드(오일러각 오차)SE(3)(회전 행렬 오차)SE(3)(쿼터니언 오차)
피치 100°(머리가 수직을 넘음)1.44 s · 0.6 m · 360°1.00 s · 0.7 m · 156°0.90 s · 0.5 m · 151°
롤 120°0.73 s · 0.5 m · 204°1.11 s · 1.1 m · 179°0.96 s · 0.7 m · 175°
롤 170°0.74 s · 1.0 m · 247°2.64 s · 4.7 m · 221°1.08 s · 1.3 m · 224°
롤 179°1.12 s · 1.1 m · 256°2.04 s · 11.9 m · 197°1.10 s · 1.4 m · 231°

읽을 것은 넷이다.

  1. 기울기 30°대까지는 오차 정의가 거의 상관없다. 8 s 바퀴에서 세 제어기의 RMS가 0.14~0.15 m로 같다. 기하 제어는 마법이 아니다.
  2. 가장 큰 이득은 평탄성 앞먹임이다. 같은 SE(3)에 기준 각속도·각가속도를 넣으면 오차가 4~7배 준다. 앞먹임이 없는 제어기는 오차가 쌓인 뒤 큰 수정 명령을 내므로 5 s 바퀴에서 제어 주기의 절반 이상이 할당 포화에 걸린다. 앞먹임이 있으면 한 번도 걸리지 않는다. 앞먹임은 정확도뿐 아니라 여유도 산다.
  3. 기울기 50°를 넘으면 사상과 오차 정의가 달라진다. 5 s 바퀴에서 비선형 사상이 RMS를 0.68에서 0.50 m로, SE(3)가 0.46 m로 줄인다. 피치 100°에서 오일러각 제어기는 같은 자세를 "롤 180°·피치 80°·요 180°"로 읽어 롤과 요를 반 바퀴씩 돌리며 360°를 돈다. 최단 회전은 100°다.
  4. 회전 행렬 오차는 180° 근처에서 느리다. 롤 170°·179°에서 2초 넘게 걸리고 179°에서는 11.9 m를 잃는다. 2.15.5.3의 $\sin\vartheta$ 그대로다. 같은 경우 쿼터니언 오차는 1.1 s 안에 돈다. 오일러각 오차가 뒤집힘에서 빠른 것은 이 축(롤)에서 오차가 각도에 비례하기 때문이며, 피치 90° 근처에서는 그 장점이 사라진다.

평탄성 앞먹임 제어기에 남은 오차 0.06 m는 대부분 제어기가 모르는 몸체 항력이다. 같은 계산에서 항력을 빼면 RMS 0.025 m로 준다. 이 몫을 모형에 넣는 방법(로터 항력 평탄성, 2.15.3.3)과 측정으로 지우는 방법(INDI, 다음 절)이 있다.

2.15.7 INDI — 모형 대신 측정을 사용한다

2.15.7.1 유도와 필요한 것

결론부터: INDI는 "지금 실제로 나온 각가속도"를 재서, 원하는 각가속도와의 차만큼만 토크를 더한다. 공기력·외란·모형 오차가 무엇이든 이미 측정값에 들어 있으므로 모형으로 계산할 필요가 없다. 회전 방정식에 모르는 외부 토크 $\boldsymbol\tau_{\mathrm{ext}}$를 넣고 한 표본 전($\cdot_0$) 근처에서 1차 전개한다.

$$J\dot{\boldsymbol\omega}=\boldsymbol\tau+\boldsymbol\tau_{\mathrm{ext}}(\mathbf x)-\boldsymbol\omega\times J\boldsymbol\omega\quad\Rightarrow\quad J\bigl(\dot{\boldsymbol\omega}-\dot{\boldsymbol\omega}_0\bigr)\approx\boldsymbol\tau-\boldsymbol\tau_0$$

$\boldsymbol\tau_{\mathrm{ext}}$와 자이로 항은 한 표본(2.5 ms) 동안 거의 변하지 않으므로 빠진다. 원하는 각가속도를 가상 제어 $\boldsymbol\nu$라 하면 2.2.7의 식이 나온다.

$$\boldsymbol\tau_{\mathrm{cmd}}=\boldsymbol\tau_0+J\bigl(\boldsymbol\nu-\dot{\boldsymbol\omega}_0\bigr),\qquad \boldsymbol\nu=K_\omega(\boldsymbol\omega_c-\boldsymbol\omega)+\dot{\boldsymbol\omega}_{\mathrm{ff}}$$

모형에서 남는 것은 제어 효과($J$, 실제 구현에서는 로터 명령이 각가속도로 가는 행렬 $G$) 하나다. 로터마다 명령을 직접 계산하는 형태는 $\Delta\mathbf u=G^{+}(\boldsymbol\nu-\dot{\boldsymbol\omega}_0)$이고, $G$를 비행 중 추정하는 적응형도 있다(Smeur·Chu·de Croon, JGCD, 2016, doi:10.2514/1.G001490). 대가는 측정 요구다.

필요한 것왜실무의 어려움
각가속도 $\dot{\boldsymbol\omega}_0$증분의 기준자이로를 미분하면 잡음·진동이 커진다 → 저역통과 필터가 지연을 만든다
현재 토크 $\boldsymbol\tau_0$증분을 더할 바탕로터 회전수 되먹임(전자 변속기(ESC) 회전수 보고)이 이상적. 없으면 작동기 모형으로 추정
두 값의 시각 맞춤$\dot{\boldsymbol\omega}_0$과 $\boldsymbol\tau_0$가 같은 순간의 값이어야 차가 외란을 뜻한다같은 필터를 두 신호에 걸고, 모르는 지연(버스·ESC)을 줄인다
제어 효과 $G$증분의 크기탑재·배터리 전압·공기 밀도에 따라 변한다

오픈소스 Paparazzi UAV는 다중 로터용 INDI 자세 제어 모듈을 공개 문서와 함께 제공한다 (공개 문서 기준, 판에 따라 다르다).

2.15.7.2 계산 — 외란·모형 오차·지연

2.2의 피치 축 모형(자이로 저역통과 80 Hz, 제어 400 Hz, 연산 1표본·ESC 1 ms 지연, 모터 지연 30 ms)에서 2.2의 PID와 INDI를 견줬다. 두 제어기 모두 바깥에 자세 P(6 s⁻¹)를 두고, INDI의 $K_\omega$는 PID 비례 이득과 같은 29.4 s⁻¹로 맞췄다. INDI의 각가속도는 2차 저역통과(기본 20 Hz)를 거친 자이로의 차분이고, $\boldsymbol\tau_0$는 명령으로 돌린 작동기 모형을 같은 필터에 통과시켰다. 외란 0.5 N·m는 무게중심이 2.5 cm 어긋난 것과 같다(19.62 N × 0.0255 m).

조건PID(2.2 기준)INDI
자세 10° 계단: 오버슈트, 2 % 정착0 %, 0.71 s0 %, 0.55 s
외란 0.5 N·m 계단: 최대 자세 이탈, 0.2° 안 복귀7.4°, 1.56 s3.3°, 0.37 s
실제 관성 2배(무거운 탑재): 계단 오버슈트, 외란 이탈9.8 %, 8.4°5.9 %, 3.4°
실제 관성 0.5배: 계단 오버슈트, 외란 이탈0 %, 6.4°0 %, 3.3°
회전 1P 진동 0.1 rad/s(107.2 Hz)가 자이로에 실릴 때 토크 명령 RMS0.083 N·m0.012 N·m

INDI만의 민감도는 따로 모았다.

INDI 변형외란 최대 이탈복귀계단 오버슈트진동 토크 RMS
기준(필터 20 Hz, 모형 정확)3.3°0.37 s0 %0.012 N·m
필터 8 Hz4.6°0.54 s0 %0.014 N·m
필터 40 Hz2.7°0.37 s0 %0.023 N·m
모형 관성 0.5배(과소)6.8°1.40 s5.9 %—
모형 관성 0.7배4.8°0.65 s0.1 %—
모형 관성 2배(과대)1.6°0.36 s0 %—
모형 관성 3배4.5° 지속 진동못 함8.9 %—
모형이 모르는 지연 +5 ms3.8°0.49 s0.1 %—
모형이 모르는 지연 +10 ms6.6° 지속 진동못 함36 %—
같은 +10 ms를 작동기 모형에 넣음5.1°0.89 s2.0 %—
모형이 모르는 지연 +15 ms19° 지속 진동못 함105 %—
$\boldsymbol\tau_0$에 필터 생략2.5°0.37 s0 %—

읽을 것은 넷이다.

  1. 외란 억제가 INDI의 존재 이유다. 같은 외란에서 자세 이탈이 7.4°에서 3.3°로, 복귀가 1.56 s에서 0.37 s로 준다. PID는 적분기가 외란을 천천히 배워야 하지만 INDI는 다음 표본에서 측정 각가속도로 외란을 본다. 2.15.6의 항력 같은 외력이 이 층에서 지워진다.
  2. 제어 효과 오차에는 너그럽다. 모형 관성이 0.7~2배 범위면 계단 응답에 오버슈트가 생기지 않고 외란 이탈도 1.6~4.8°에 머문다. 과소 추정(0.5배)과 3배 과대 추정에서 나빠진다. 과대 추정 쪽이 조금 더 너그럽다. 관성이 2배가 된 실제 기체에서 PID 오버슈트는 9.8 %, INDI는 5.9 %다.
  3. INDI의 약점은 지연이다. 모형이 모르는 지연 10 ms에서 지속 진동, 15 ms에서 사실상 불안정이 된다. 같은 지연에서 PID 자세 계단은 거의 변하지 않는다(2.2.5의 분리비가 흡수한다). 지연을 작동기 모형에 넣으면 상당 부분 회복된다. INDI의 성능은 "지연을 아는가"에 달려 있다. ESC 버스·회전수 보고·필터의 시각을 맞추는 일이 곧 제어 설계다(2.1.11의 시각 동기, 2.10.3.3의 자료 신선도).
  4. 필터는 외란 응답과 진동의 교환이다. 20 Hz에서 40 Hz로 올리면 이탈이 3.3°에서 2.7°로 줄지만 진동 토크가 1.9배 는다. 이 모형에서 $\boldsymbol\tau_0$의 필터를 빼도 나빠지지 않았다. 문헌은 측정과 작동기 신호의 지연을 맞추는 문제를 INDI의 주된 과제로 꼽는데(Smeur 외, 2016), 이 단순 모형에서 그 문제는 필터 모양보다 모르는 순수 지연으로 드러났다.

공개 실험 결과도 같은 방향이다. Tal·Karaman(IEEE TCST 29(3), 2021)은 평탄성 앞먹임과 INDI를 묶어 1 kg급 쿼드가 최대 8.2 m/s·2 g의 궤적을 RMS 약 4 cm로 따랐다고 보고했다 (논문 보고). Sun 외(IEEE T-RO 38(6), 2022)는 실제 비행에서 INDI 안쪽 루프를 빼면 위치 오차가 NMPC에서 364 % 넘게, 평탄성 제어에서 705 % 넘게 커졌다고 보고했다 (논문 보고). 대형기 쪽에서는 TU Delft와 DLR이 인증된 FBW를 갖춘 Cessna Citation II 시험기에 INDI 제어 법칙을 비행 시험했고, 저자들은 이것을 CS-25 인증 항공기에서의 첫 INDI 비행 시연이라고 밝혔다(Grondman 외, AIAA SciTech 2018) (논문 보고).

2.15.8 모델 예측 제어 — 한계를 미리 본다

결론부터: MPC는 매 제어 주기마다 "앞으로 $N$단계 동안 모형과 제약을 만족하며 비용이 가장 작은 입력열"을 풀고, 그 첫 입력만 사용한 뒤 다음 주기에 다시 푼다. 캐스케이드와 할당기가 포화를 사후에 처리한다면 MPC는 포화를 예측 구간 안에서 미리 보고 피한다.

$$\min_{\mathbf u_0,\dots,\mathbf u_{N-1}}\ \sum_{k=0}^{N-1}\Bigl(\lVert\mathbf x_k-\mathbf x_k^{\mathrm{ref}}\rVert_Q^2+\lVert\mathbf u_k-\mathbf u_k^{\mathrm{ref}}\rVert_{W}^2\Bigr)+\lVert\mathbf x_N-\mathbf x_N^{\mathrm{ref}}\rVert_P^2$$

$$\text{제약:}\quad \mathbf x_{k+1}=\mathbf f_d(\mathbf x_k,\mathbf u_k),\qquad \mathbf x_0=\hat{\mathbf x},\qquad \mathbf u_{\min}\le\mathbf u_k\le\mathbf u_{\max},\qquad \mathbf g(\mathbf x_k)\le\mathbf 0$$

$Q$·$W$·$P$는 상태·입력·끝 상태의 가중 행렬, $\mathbf f_d$는 이산화한 비선형 모형, $\hat{\mathbf x}$는 현재 추정 상태, $\mathbf g$는 기울기·속도·장애물 같은 상태 제약이다. 모형이 비선형이면 비선형 계획 문제가 되고, 실시간 구현은 보통 실시간 반복(RTI) 방식으로 매 주기 순차 이차계획(SQP)을 한 번만 돌린다. 기준 $\mathbf x^{\mathrm{ref}}$와 $\mathbf u^{\mathrm{ref}}$는 평탄성(2.15.3)이 준다.

멀티콥터 NMPC의 설계 선택은 셋이다. ① 모형의 깊이. 위치·속도·쿼터니언(상태 10개)에 총추력과 각속도를 입력으로 두고 안쪽 각속도 루프(PID나 INDI)에 넘기는 방식과, 각속도까지 상태에 넣고 로터 추력을 직접 내는 방식이 있다. ② 예측 구간. 1초 안팎이 흔하다. ③ 풀이기. 코드 생성형 도구(ACADO·acados 같은 공개 도구)와 이차계획 풀이기를 사용한다. 연산 규모를 어림하면 다음과 같다.

모형상태 수입력 수단계 $N$결정 변수리카티 1회 규모(곱셈·덧셈)감도 계산 규모
위치·속도·쿼터니언, 각속도 입력10420290약 5.5만약 22만
각속도까지 상태, 로터 추력 입력13420353약 10만약 35만
같은 모형, 예측 구간 2배13440693약 20만약 71만

어림은 리카티 재귀 $N(n_x+n_u)^3$과 RK4 감도 계산(단계 넷, 식 하나에 연산 약 20회 가정)이며 상수 인자를 무시했다. 한 반복에 $10^5$~$10^6$회, 100 Hz면 초당 $10^7$~$10^8$회다. 비행 제어용 마이크로컨트롤러에는 큰 몫이고, 임무 컴퓨터(2.9.3.3)에는 작은 몫이다 (추정). 문제는 평균 연산량보다 최악 실행 시간과 수렴이다. 풀이기가 마감 안에 수렴하지 못하면 무엇을 내보낼지 정해 두어야 한다(2.10.4의 스케줄 가능성, 7.8의 대체 제어기).

공개 비교 연구가 사용할 자리를 보여 준다. Sun 외(2022)는 0.75 kg 쿼드로 최대 약 20 m/s·5 g의 궤적에서 NMPC와 평탄성 기반 제어(DFBC)를 견줬다 (논문 보고).

항목논문 보고(Sun 외, IEEE T-RO 38(6), 2022)
NMPC 설정$N=20$, 간격 50 ms(예측 구간 1 s), RTI 방식 SQP, ACADO와 qpOASES
실행 주기(Jetson TX2)NMPC 100 Hz, DFBC 300 Hz
동역학적으로 불가능한 기준(시뮬레이션)위치 RMSE NMPC 0.40 m, DFBC 0.77 m
질량 30 % 증가, INDI 없음(시뮬레이션)추락 비율 NMPC 10.7 %, DFBC 0 %
지연 50 ms, INDI 있음(시뮬레이션)추락 비율 NMPC 68.0 %, DFBC 6.7 %
실제 비행, INDI·항력 모형 추가두 방법 모두 추종 오차가 78 % 넘게 감소

NMPC는 기준이 기체 한계를 넘을 때 강하고, 지연과 큰 외란에 약하다. 평탄성 제어는 실현 가능한 기준을 받으면 NMPC와 비슷한 정확도를 훨씬 적은 연산으로 낸다. 그래서 질문은 "기준을 누가 실현 가능하게 만드는가"로 바뀐다. 궤적 생성기가 평탄성 검사로 실현 가능성을 보장하면(7.12) 단순한 추종기로 충분하고, 기준이 거칠게 들어오면(사람 입력·인지 지연·급한 재계획) 제약을 아는 추종기가 값을 낸다. 시간 최적 경주로처럼 한계 위를 계속 나는 경우의 윤곽 추종형 MPC는 7.12가, 학습 정책과의 비교는 7.7.6이 다룬다. 제약을 만족하는 다른 길인 안전 필터(제어 장벽 함수)는 7.8.4.3에 있다. MPC의 일반 이론(안정성 조건·종단 집합)은 controleng으로 넘긴다.

2.15.9 고정익·하이브리드 VTOL로 넓히면

같은 네 도구가 고정익과 하이브리드 VTOL에서는 범위가 좁아진다. 이유는 하나다. 멀티콥터는 힘이 추력 하나뿐이지만, 날개가 있으면 힘이 받음각·옆미끄럼·속도에 따라 변한다.

  • 평탄성. 고정익은 협조 선회·단순 공력 모형 같은 가정 아래에서만 평탄 출력을 정할 수 있고, 실속 근처나 큰 옆미끄럼에서는 가정이 깨진다 (일반론, 개별 정식화는 확인 필요). 테일시터(1.12)는 단순화한 φ-이론 공력 모형으로 평탄 변환을 만들고 INDI로 모형 오차를 메워, 옆으로 나는 비협조 비행까지 따른 연구가 있다(Tal·Karaman, arXiv:2207.13218, 2022) (논문 보고). 수직 속도가 큰 구간에서는 그 변환을 사용할 수 없다는 후속 지적도 있다(Ntouros·Smeur, arXiv:2607.11651, 2026) (프리프린트, 확인 필요).
  • 기하 제어. 회전 행렬 위의 자세 오차는 강체면 어디에나 사용한다. 다만 원하는 힘을 추력 방향 하나로 만들 수 없으므로 "힘 벡터에서 자세를 구하는" 단계가 공력 모형을 필요로 한다.
  • INDI·동적 역변환. 고정익에서 가장 오래 사용된 갈래다. 모형 기반 동적 역변환(NDI)은 X-35·X-38에 적용되었고 F-35에서 양산 비행제어에 사용된다고 IEEE 제어시스템학회의 기술 영향 요약이 소개한다 (2차 출처). 증분형(INDI)은 공력 모형 의존을 줄여 천이 비행처럼 모형이 불확실한 영역에 끌리는 이유가 된다. 테일시터에 INDI를 사용한 공개 연구도 있다(Smeur 외, arXiv:1802.00714) (게재지 확인 필요).
  • MPC. 고정익은 에너지(속도·고도)의 교환을 예측 구간 안에서 다룰 수 있다는 점에서 TECS(2.2.9)의 확장으로 볼 수 있다. 천이 비행의 일정 계획에 MPC를 사용하는 연구가 있으나 인증 기체에 사용된 공개 사례는 확인하지 못했다 (확인 필요).

결합형 하이브리드 VTOL의 천이(2.3.5)는 리프트 로터와 조종면의 효과가 속도에 따라 교차하는 구간이다. 이 구간에서 증분형 제어가 제어 효과 $G$의 변화만 추정하면 되는 구조라는 점이 매력이지만, 그 $G$를 비행 영역 전체에서 입증하는 일은 남는다.

2.15.10 설계 트레이드오프 — 어느 층을 바꿀 것인가

선택지는 셋이고 서로 배타적이지 않다.

① 캐스케이드를 두고 평탄성 앞먹임과 기하 오차만 더한다. 근거는 2.15.6이다. 앞먹임 하나가 오차를 4~7배 줄이고 포화를 없앴다. 회전 행렬·쿼터니언 오차는 연산 비용이 거의 없다. 바뀌는 것은 궤적 생성기가 저크·스냅까지 매끄러운 기준을 넘겨야 한다는 요구다(7.12). 이해관계자는 기존 오토파일럿을 사용하는 민간 UAS와 대부분의 연구 기체다.

② 안쪽 루프를 INDI로 바꾼다. 근거는 외란 억제와 제어 효과 오차에 대한 너그러움이다(2.15.7.2). 탑재가 바뀌는 배송·공중 작업(2.4)과 손상 허용이 필요한 군용에 선호된다. 대가는 회전수 되먹임 같은 센서 요구와 지연 관리다. 모르는 지연 10 ms가 지속 진동을 만든다.

③ 위에 NMPC를 추가한다. 근거는 제약을 미리 보는 능력이다. 경주·요격처럼 한계 위를 계속 나는 임무에 맞는다. 대가는 임무 컴퓨터, 최악 실행 시간, 수렴 실패 시의 대체 경로다.

견해: 이 장의 계산과 공개 비교 연구를 놓고 보면 순서는 ① → ② → ③이 합리적이라고 본다. 근거는 셋이다. 첫째, 가장 큰 개선(앞먹임)이 가장 싸다. 둘째, INDI는 외란과 모형 오차를 같은 층에서 지우므로 위층 설계를 단순하게 만든다. Sun 외(2022)에서 NMPC와 평탄성 제어의 차이보다 INDI 유무의 차이가 컸다. 셋째, NMPC의 이점은 기준이 실현 불가능할 때 두드러지는데, 그 상황은 궤적 생성 단계의 평탄성 검사로 상당 부분 막을 수 있다. 반대 입장도 있다. 인지 지연과 급한 재계획이 일상인 고속 자율 비행에서는 기준을 늘 실현 가능하게 만들 수 없으므로 제약을 아는 추종기가 기본이어야 한다는 주장이다. 인증 측면의 비교(어느 쪽이 입증하기 쉬운가)는 공개된 인증 사례가 없어 정량적 결론을 내릴 수 없다.

2.15.11 세 축 비교

항목군용 드론민간 UASAAM
지배적 요구한계 기동, 손상·탑재 변화 강건성바람 속 정확도, 탑재 변화, 비용승차감, 고장 시 안전, 제어 법칙 인증
평탄성·앞먹임고기동 궤적 추종의 기본 도구오프보드 컴퓨터가 위치·속도·가속도 목표를 넘기는 방식으로 일부 용도비행 절차 궤적의 실현 가능성 검사(15.12)
자세 오차 정의큰 각도·뒤집힘 회복 필요기울기 한계 안 운용이 대부분기울기 작음, 영역 보호가 우선
INDI·동적 역변환손상 허용, 소모성 기체의 낮은 식별 비용탑재 변화(배송·살포)유인기 FBW의 동적 역변환 계보, 센서 다중화 요구(2.5)
MPC임무 컴퓨터 탑재 연구·시험연구, 일부 고성능 제품 (확인 필요)최악 실행 시간·수렴 입증이 걸림돌
입증 틀군 감항(12.3)운용 위험 기반(17.17), 한국 안전성 인증(18.3)형식증명·소프트웨어 보증(8.8·20.9)

2.15.12 관련 규격·프로토콜

문서발행무엇을 정하나상세
RTCA DO-178CRTCA비행 소프트웨어 개발 보증, 이득·한계 같은 파라미터 데이터 항목8.8
RTCA DO-331RTCADO-178C의 모델 기반 개발·검증 보충서. 제어 법칙을 모델로 설계하고 코드를 생성할 때8.8·20.9
SAE ARP4754BSAE시스템 개발 과정. 제어 법칙을 시스템 요구로 도출8.2
ASTM F3269-21ASTM복잡한 기능(학습·최적화 제어기)을 런타임 보증으로 감싸는 구조7.8
MAVLink 공통 메시지(SET_POSITION_TARGET_LOCAL_NED·SET_ATTITUDE_TARGET)MAVLink오프보드 컴퓨터가 위치·속도·가속도 목표나 자세·각속도·추력 목표를 보낸다. 앞먹임과 MPC 출력의 통로 (필드 구성은 판 확인 필요)9.5
DroneCAN·Cyphal의 ESC 상태 메시지오픈 프로토콜회전수 보고 — INDI의 작동기 되먹임9.4
EASA SC-VTOLEASAeVTOL의 비행 특성·비행제어계 요건(특별조건)17.14

제어 알고리즘 자체를 정하는 공개 표준은 없다. 규격이 정하는 것은 제어 법칙을 어떻게 개발·검증·관리하느냐의 틀이다. 비선형·증분형·최적화 제어의 안정 여유를 무엇으로 입증할지는 인증기준 합의(20.5)의 몫으로 남아 있다.

2.15.13 관련 규제·인증 요구와의 연결

  • 안정 여유의 입증 방법이 바뀐다. 캐스케이드는 루프별 위상·이득 여유를 숫자로 보인다(2.2.5). 기하 제어는 리아푸노프 증명이 있지만 모터 지연·표본화·포화를 넣으면 증명의 가정이 깨진다. INDI는 지연 민감도를, NMPC는 수렴과 최악 실행 시간을 따로 입증해야 한다(20.6).
  • 센서 의존이 고장 모드를 만든다. INDI는 각가속도 측정과 회전수 보고에 기대므로, 그 신호의 고장이 곧 제어 고장이다. 고장 탐지와 대체 법칙(캐스케이드로의 강등)이 설계에 들어간다(2.5).
  • 최적화 제어는 감싸서 사용한다. 마감 안에 풀리지 않는 경우와 실현 불가능한 문제를 만났을 때의 동작을 정하고, 검증된 단순 제어기로 넘기는 런타임 보증 구조가 현실적 경로다(7.8).
  • 모델 기반 개발. 제어 법칙을 모델로 설계·코드 생성하면 DO-331의 틀에서 모델 자체가 검증 대상이 된다(8.8·20.9).
  • 설정과 적응. 적응형 INDI가 비행 중 바꾸는 제어 효과 추정치는 "비행 중 변하는 파라미터"다. 학습 기반 기능과 함께 보증 논의의 대상이 된다(20.10·2.2.11).
  • 소형 UAS. 대부분의 법규는 제어 구조를 직접 규정하지 않고 운용 조건과 안전성 인증 시험으로 본다(18.3). 고기동 기체도 같은 틀이다.

2.15.14 함정과 한계

오해실제더 볼 곳
"SE(3) 기하 제어로 바꾸면 추종이 좋아진다"기울기 30°대에서는 오차 정의가 거의 상관없다. 큰 개선은 앞먹임에서 온다2.15.6
"거의 전역적이면 어디서든 빨리 돌아온다"회전 행렬 오차는 180° 근처에서 $\sin\vartheta$로 약해진다. 롤 179°에서 11.9 m를 잃었다2.15.5.3
"총추력이 한계 안이면 궤적은 가능하다"로터 하나가 요 토크 몫으로 넘칠 수 있다. 4.5 s 바퀴에서 총추력 98 %인데 로터 11.8 N2.15.4
"요각을 고정하면 요 제어는 할 일이 없다"기울어진 채 롤하면 몸체 요축이 돈다. 요 토크가 호버 기준 요 권한(0.31 N·m)의 95 %까지 간다2.15.4
"INDI는 모형이 필요 없다"제어 효과와 지연은 알아야 한다. 모르는 지연 10 ms에서 지속 진동2.15.7.2
"INDI는 자이로를 미분하니 잡음이 크다"필터에 달렸다. 20 Hz 필터에서 진동 토크는 PID보다 작았다. 대가는 외란 응답의 지연2.15.7.2
"MPC가 가장 정확하다"실현 가능한 기준에서는 평탄성 제어와 비슷하고, 지연에 훨씬 약하다(논문 보고)2.15.8
"평탄성은 고정익에도 그대로 사용한다"날개 공력이 상태에 따라 변해 가정 아래에서만 성립한다2.15.9

한계도 밝힌다. 이 장의 시뮬레이션은 강체·1차 모터 지연·몸체 항력만 넣었다. 로터 항력과 플래핑, 지면 효과, 배터리 전압에 따른 추력 변화, 센서 잡음(진동 사례 하나 외), 추정기 지연은 넣지 않았다. 제어기 이득은 세 제어기를 같은 등가 이득으로 맞춘 한 점의 비교이며, 각 방식을 따로 최적화한 결과가 아니다. INDI 계산은 피치 축 하나이고 축 사이 결합과 로터별 포화를 보지 않았다. NMPC는 직접 구현해 돌리지 않고 규모만 어림했으며 성능 비교는 논문 보고에 기댔다. 미해결 문제는 비선형·증분형·최적화 제어의 안정 여유를 인증에서 무엇으로 입증할 것인가, 그리고 지연이 큰 대형 로터 기체(1.7.6)에서 INDI가 어디까지 성립하는가다.

2.15.15 체크포인트·연구 질문

체크포인트

  1. 멀티콥터의 평탄 출력 네 개를 말하고, 가속도·저크·스냅이 각각 무엇을 정하는지 식으로 보여라.
  2. 2.15.4의 8자 궤적에서 총추력으로 본 한계(4.44 s)와 로터 추력으로 본 한계(4.80 s)가 다른 이유를 설명하라.
  3. SE(3) 제어에서 추력을 "원하는 힘을 현재 아래 축에 투영한 값"으로 두는 이유는 무엇인가?
  4. "거의 전역적"이 뜻하는 것과, 회전 행렬 오차와 쿼터니언 오차가 180° 근처에서 다르게 행동하는 이유를 말하라.
  5. INDI가 외란을 PID보다 빨리 지우는 이유와, 모르는 지연에 약한 이유를 같은 식으로 설명하라.
  6. NMPC가 평탄성 제어보다 유리한 조건과 불리한 조건을 각각 하나씩 들어라.

연구 질문(25.7에 모은다)

  1. 기하 제어의 안정성 증명에 모터 지연·표본화·로터 포화를 넣으면 보장되는 수렴 영역은 얼마나 줄어드는가? 그 영역을 인증의 안정 여유로 사용할 수 있는가?
  2. INDI의 지연 민감도를 회전수 보고·시각 동기 설계로 얼마나 줄일 수 있는가? 대형 로터 기체(모터 지연 100 ms 이상)에서 증분형 제어가 성립하는 조건은 무엇인가?
  3. NMPC의 수렴 실패와 마감 초과를 런타임 보증(7.8)으로 감쌀 때, 전환 빈도와 성능 손실의 교환은 어떻게 정량화하는가?
  4. 요 궤적을 평탄 출력으로 최적화하면(몸체 요축 회전 최소화) 같은 기체의 실현 가능한 기동 영역이 얼마나 넓어지는가?

1차 출처(이 장)

  • Fliess, M.; Lévine, J.; Martin, P.; Rouchon, P., "Flatness and defect of non-linear systems: introductory theory and examples", International Journal of Control, 1995.
  • Mellinger, D.; Kumar, V., "Minimum Snap Trajectory Generation and Control for Quadrotors", ICRA, 2011.
  • Lee, T.; Leok, M.; McClamroch, N. H., "Geometric Tracking Control of a Quadrotor UAV on SE(3)", 49th IEEE Conference on Decision and Control, 2010.
  • Bhat, S. P.; Bernstein, D. S., "A topological obstruction to continuous global stabilization of rotational motion and the unwinding phenomenon", Systems & Control Letters 39, 2000.
  • Mayhew, C. G.; Sanfelice, R. G.; Teel, A. R., "Quaternion-Based Hybrid Control for Robust Global Attitude Tracking", IEEE Transactions on Automatic Control, 2011.
  • Faessler, M.; Franchi, A.; Scaramuzza, D., "Differential Flatness of Quadrotor Dynamics Subject to Rotor Drag for Accurate Tracking of High-Speed Trajectories", IEEE Robotics and Automation Letters 3(2), 2018.
  • Smeur, E. J. J.; Chu, Q.; de Croon, G. C. H. E., "Adaptive Incremental Nonlinear Dynamic Inversion for Attitude Control of Micro Air Vehicles", Journal of Guidance, Control, and Dynamics, 2016, doi:10.2514/1.G001490.
  • Tal, E.; Karaman, S., "Accurate Tracking of Aggressive Quadrotor Trajectories Using Incremental Nonlinear Dynamic Inversion and Differential Flatness", IEEE Transactions on Control Systems Technology 29(3), 2021.
  • Sun, S.; Romero, A.; Foehn, P.; Kaufmann, E.; Scaramuzza, D., "A Comparative Study of Nonlinear MPC and Differential-Flatness-Based Control for Quadrotor Agile Flight", IEEE Transactions on Robotics 38(6), 2022.
  • Grondman, F.; Looye, G.; Kuchar, R. O.; Chu, Q. P.; van Kampen, E.-J., "Design and Flight Testing of Incremental Nonlinear Dynamic Inversion-based Control Laws for a Passenger Aircraft", AIAA SciTech Forum, 2018.
  • Tal, E.; Karaman, S., "Global Incremental Flight Control for Agile Maneuvering of a Tailsitter Flying Wing", arXiv:2207.13218, 2022.
  • Paparazzi UAV 문서, stabilization_indi 모듈 — 공개 문서이며 판에 따라 다르다.

다음 장: 7.12(민첩 비행 궤적: 최소 스냅 다항식·안전 비행 통로·시간 최적·실시간 재계획)는 이 장의 평탄성 검사를 궤적 생성 쪽에서 사용한다. 경유점 여러 개를 잇는 최소 스냅 궤적을 이차계획으로 풀고, 시간 배분을 바꿔 로터 한계를 맞추며, 장애물 사이의 안전 비행 통로와 시간 최적 궤적, 미지 공간에서의 실시간 재계획까지 간다.