제6부 심화 주제
6.4 적응 제어 입문
제6부 심화 주제 · 마무리. 강인 제어(6.3)가 고정 제어기로 최악을 대비한다면, 적응 제어는 플랜트가 변할 때 제어기 파라미터를 실시간으로 학습·조정한다. 기준 모델을 따라가게 적응하는 MRAC, 추정 후 재설계하는 자기조정기(STR)를 진입점 위주로. (BK-03대로 개념 중심.)
이 장을 마치면 MRAC·STR의 구조를 설명하고, 적응의 핵심 난제(안정성·충분 여기·미모델링)를 인지하며, 강인 vs 적응의 태도 차이를 구분할 수 있어야 한다.
6.4.1 왜 적응 — 변하면 맞춰 간다
플랜트가 크게·천천히 변하는 경우가 있다: 항공기는 연료를 태우며 질량이 줄고, 로봇은 페이로드가 바뀌며 관성이 변하고, 부품은 마모·노화한다. 고정 제어기로는:
- 강인 제어(6.3): 변동 범위 전체에 통하게 보수적으로 설계 → 안전하나 응답이 느리다.
- 적응 제어: 플랜트가 변하면 제어기를 따라 바꾼다 → 매 순간 그 플랜트에 맞는 성능. 덜 보수적이지만 더 어렵다(안정성).
한 줄 대비: 강인 = "어떻게 변해도 견디도록 미리 설계", 적응 = "변화를 감지하고 적응한다". 둘은 불확실성에 대한 다른 태도다(6.4.6).
6.4.2 두 갈래 — MRAC와 자기조정(STR)
- MRAC(Model Reference Adaptive Control): 원하는 폐루프 거동을 기준 모델로 정해 두고, 플랜트 출력이 기준 모델 출력을 따라가도록 제어기 파라미터를 적응시킨다(6.4.3).
- STR(Self-Tuning Regulator, 자기조정기): 플랜트 파라미터를 온라인 추정(RLS, 1.4)하고, 그 추정값으로 제어기를 재설계(극배치 등)한다(6.4.4).
둘 다 "파라미터를 실시간으로 바꾼다"는 점은 같고, 직접 제어기를 적응(MRAC)하느냐 플랜트를 추정해 간접 재설계(STR)하느냐가 다르다.
6.4.3 MRAC — 기준 모델을 따라가게
추종 오차 e=y−y_m을 줄이도록 제어기 파라미터 $\theta$를 갱신한다. 적응 법칙이 둘:
- MIT 규칙(경사하강): $\dot{\theta} = -\gamma\cdot e\cdot(\partial e/\partial\theta)$ — 오차 제곱 $\tfrac{1}{2}e^2$를 $\theta$로 경사하강. 직관적이나 ⚠️ 안정성 보장이 없다(이득 $\gamma$가 크거나 신호에 따라 발산 가능).
- 리아푸노프 기반: 적응 법칙을 처음부터 $\dot{V}\le0$이 되게 설계한다(6.2의 리아푸노프). $V=\tfrac{1}{2}(e^2 + \tilde{\theta}^2/\gamma)$(추종 오차 + 파라미터 오차) 같은 함수로 안정한 적응을 증명과 함께 얻는다. 실전 MRAC의 표준 해법.
6.4.4 자기조정기 (STR) — 추정 후 제어
- 추정: 입출력 데이터로 플랜트 파라미터 $\hat{\theta}$를 재귀적으로 추정(RLS, 1.4.6).
- 재설계: $\hat{\theta}$를 참값처럼 여겨(확실성 등가, certainty equivalence) 극배치·최소분산 등으로 제어기를 다시 계산.
- 매 스텝 반복 — 플랜트가 변하면 추정이 따라가고 제어기도 갱신.
확실성 등가의 함정: 추정이 틀린 동안에도 그것을 참으로 간주하고 제어한다 → 추정 수렴 전 과도기에 위험할 수 있다(6.4.5).
6.4.5 핵심 난제 — 안정성·충분 여기·미모델링
적응 제어가 어려운 이유. 파라미터를 바꾸는 순간 시스템이 비선형·시변이 되어 표준 선형 도구가 안 통한다.
- 적응 안정성: 적응 루프 자체가 불안정해질 수 있다. 리아푸노프·수동성으로 증명된 적응 법칙을 써야 한다(6.4.3).
- 충분 여기(persistent excitation, 1.4.7): 파라미터가 참값으로 수렴하려면 입력이 충분히 풍부해야 한다. 안 그러면 추종은 되는데 파라미터가 잘못된 값으로 표류(drift)한다 → 잠재 위험.
- 미모델링 동특성의 위험(Rohrs 반례, 1985): 모델에 없는 고주파 동특성 + 적응이 만나면 불안정해질 수 있음이 유명한 반례로 밝혀졌다. 이후 강인 적응(σ-수정·e-수정·데드존·투영 projection)으로 적응을 한정해 표류·폭주를 막는다.
즉 "단순히 적응시키면" 위험하다. 안정한 적응 법칙 + 충분 여기 + 강인화 수정이 함께 있어야 실전에서 안전하다.
6.4.6 적응 vs 강인 — 두 태도, 그리고 절충
| 강인 제어(6.3) | 적응 제어(6.4) | |
|---|---|---|
| 제어기 | 고정 | 실시간 변경 |
| 불확실성 태도 | 최악을 미리 대비 | 변화를 감지하고 적응 |
| 보수성 | 높음(여유 위해 성능 희생) | 낮음(그 순간 최적 지향) |
| 난이도·위험 | 설계 복잡하나 보장 명확 | 안정성 미묘·여기 필요·표류 위험 |
| 적합 | 빠른·작은 불확실성 | 크고 느린 파라미터 변동 |
- 절충: 둘을 합친 강인 적응(robust adaptive)이 실전 대표 기법 — 적응의 유연성 + 강인화로 안전.
- 게인 스케줄링(6.2.6)은 가장 단순한 적응류 — 동작점별 고정 제어기를 보간/전환. 엄밀히 적응은 아니나 변화 대응이라는 취지는 같다.
- 현대: L1 적응 제어(빠른 적응 + 강인성 분리), 적응 + 학습(강화학습 등, 이 책 범위 밖).
6.4.7 개념 코드 — MRAC MIT 규칙 (한 스텝)
# mrac.py — 1차 플랜트 MRAC (MIT 규칙, 개념용)
# 기준 모델 ym, 플랜트 y, 제어기 u = theta * r 라 하자 (가장 단순)
gamma, dt = 1.0, 0.01
theta = 0.0
def mrac_step(r, y, ym, dydtheta): # dydtheta ≈ ∂e/∂θ 의 민감도(근사)
global theta
e = y - ym # 추종 오차
theta += -gamma * e * dydtheta * dt # MIT 규칙: 오차 줄이는 방향 경사하강
u = theta * r # 적응된 제어기
return u, theta
⚠️ MIT 규칙은 직관용이다 — gamma가 크거나 신호가 빈약하면 발산할 수 있다(6.4.5). 실전은 리아푸노프 기반 적응 + 강인화 수정을 쓴다. (개념 예시 — 여러분 환경·플랜트에서 안정성 검증 필요.)
6.4.8 정직 — 미묘하고, 때로 위험하다
- 안정성이 미묘하다: 파라미터 적응이 시스템을 비선형·시변으로 만들어, 잘못 설계하면 발산한다(Rohrs). 증명된 적응 법칙 + 강인화가 필수.
- 충분 여기가 필요: 신호가 빈약하면 파라미터가 표류한다. 그런데 제어가 잘 될수록 신호 변동이 작아져 여기가 줄어드는 역설이 있다.
- 미모델링이 치명적: 고주파 미모델링 + 적응 = 위험. 데드존·투영 등으로 한정해야.
- 이 장은 진입점: 적응 제어는 안정성 증명이 정교한 깊은 분야다. 실무 적용은 신중히, 항상 강인화와 함께, 충분한 시뮬레이션·검증 후에.
6.4.9 정리 — 제6부 마무리
- 적응 제어는 플랜트가 크고 느리게 변할 때 제어기 파라미터를 실시간 조정한다. MRAC(기준 모델 추종 적응)·STR(추정 후 재설계)가 두 갈래(6.4.2~6.4.4).
- 적응 법칙은 직관적 MIT 규칙(불안정 위험)보다 리아푸노프 기반(안정 증명)을 쓴다(6.4.3). 핵심 난제는 안정성·충분 여기·미모델링(Rohrs)이며 강인 적응 수정으로 다룬다(6.4.5).
- 강인 = 고정·최악 대비, 적응 = 변화 추종 — 절충(강인 적응)·게인 스케줄링이 실전 답(6.4.6).
이로써 제6부(심화 주제)를 마친다. MPC(6.1)·비선형(6.2)·강인(6.3)·적응(6.4)으로, 표준 기법의 한계를 넘는 도구들을 진입점 위주로 개관했다. 다음 제7부(7.1~)는 드디어 실전 — 지금까지의 이론을 ROS2 Humble로 실제 로봇에 탑재해 반복 구현·비교한다. 제어 아키텍처(7.1)부터 시작한다.
6.4.10 연습·생각해 볼 것
- 적응 vs 강인. 페이로드가 자주 바뀌는 로봇팔에 강인 제어와 적응 제어를 각각 적용하면 거동이 어떻게 다른가? 어느 쪽이 덜 보수적이고, 어느 쪽이 안정성 위험이 큰가? (6.4.1·6.4.6)
- MRAC 구조. MRAC에서 기준 모델 $M(s)$의 역할은? 추종 오차
e=y−y_m이 0으로 가면 무엇을 달성한 것인가? (6.4.3) - MIT vs 리아푸노프. MIT 규칙의 매력과 위험을 각각 한 줄로. 왜 실전에서는 리아푸노프 기반 적응을 선호하나? (6.4.3)
- 확실성 등가. STR이 추정값을 참으로 여겨 제어기를 설계한다. 추정이 아직 틀린 과도기에 이것이 왜 위험할 수 있나? (6.4.4)
- 충분 여기 역설. 적응이 파라미터를 잘 수렴시키려면 풍부한 신호가 필요한데, 제어가 잘 될수록 신호 변동이 작아진다. 이 역설을 설명하고, 신호가 빈약할 때 파라미터에 무슨 일이 생기나? (6.4.5)
- Rohrs 교훈. 미모델링 고주파 동특성 + 적응이 왜 위험한가? 이를 막는 강인화 수정(예: 투영·데드존)은 무엇을 하나? (6.4.5)
- (생각거리) 게인 스케줄링(6.2.6)을 "가장 단순한 적응"이라 부를 수 있는 이유는? 실제 적응 제어와 무엇이 다른가? 항공기에 어느 쪽이 흔히 쓰이나? (6.4.6)
막히면 "강인=고정·최악 대비, 적응=변화 추종(MRAC 모델추종·STR 추정후재설계), 적응은 안정성·여기·미모델링이 난제, 늘 강인화와 함께"로 돌아가라.