최적 제어

편집 역사 토론
최적설계 수치해석 시뮬레이션 마지막 수정: 2026-07-29 04:09:44

1. 개요[편집]

최적 제어(optimal control)는 동역학 제약 x˙=f(x,u,t)\dot{x} = f(x,u,t)를 지키면서 주어진 성능지표(performance index)를 최소화하는 입력 신호 u(t)u(t)를 찾는 문제이자, 그것을 다루는 이론 체계다. 변수를 하나의 벡터가 아니라 시간의 함수 전체로 잡는다는 점에서 보통의 볼록 최적화와 결이 다르다 — 미지수가 무한차원이다.

표준형은 이렇게 생겼다.

J=ϕ(x(tf),tf)+t0tfL(x(t),u(t),t)dtJ = \phi\big(x(t_f), t_f\big) + \int_{t_0}^{t_f} L\big(x(t), u(t), t\big)\, dt

앞의 ϕ\phi가 종단 비용(Mayer 항), 뒤의 적분이 누적 비용(Lagrange 항)이다. 둘 다 있으면 Bolza 문제라고 부른다. 연료를 아끼는 궤도 전이, 최단 시간 로봇 팔 이송, 최소 항력 비행 경로, 모델 예측 제어가 매 주기 푸는 유한 지평 문제까지 전부 이 틀 안에 들어온다. 제어공학에서 “이 문제 최적으로 풀어와”라는 말은 사실상 이 JJ를 정의해 오라는 뜻이다.1

2. 변분법에서 폰트랴긴까지[편집]

동역학 제약을 라그랑주 승수법으로 붙인다. 승수 λ(t)\lambda(t)수반변수(co-state, adjoint)라 부르고, 증대 비용을 정리하면 해밀토니안

H(x,u,λ,t)=L(x,u,t)+λf(x,u,t)H(x, u, \lambda, t) = L(x,u,t) + \lambda^{\top} f(x,u,t)

이 튀어나온다. 여기에 변분법의 1차 필요조건을 적용하면 세 덩어리가 나온다.

x˙=Hλ,λ˙=Hx,Hu=0\dot{x} = \frac{\partial H}{\partial \lambda}, \qquad \dot{\lambda} = -\frac{\partial H}{\partial x}, \qquad \frac{\partial H}{\partial u} = 0

첫 식은 원래 상태 방정식이고, 둘째가 수반 방정식이다. 수반 방정식은 종단 조건 λ(tf)=ϕ/xtf\lambda(t_f) = \partial\phi/\partial x |_{t_f}에서 시간을 거꾸로 적분한다는 점이 핵심이다. 상태는 앞으로, 수반은 뒤로 — 이 양방향 구조 때문에 최적 제어는 초기값 문제가 아니라 2점 경계값 문제(TPBVP)가 된다. 민감도 해석의 수반법이 쓰는 그 수반변수와 정확히 같은 물건이며, 실제로 λ\lambda는 “그 시각의 상태를 조금 흔들었을 때 비용이 얼마나 변하는가”라는 잠재가격이다.

종단 시각이 자유롭거나 종단 상태에 제약이 걸리면 여기에 횡단조건(transversality condition)이 붙는다. tft_f가 자유면 H(tf)=ϕ/ttfH(t_f) = -\partial\phi/\partial t|_{t_f}가 추가되고, 자율계의 최단시간 문제에서는 이게 HconstH \equiv \text{const}와 결합해 흔히 알려진 H(tf)=0H(t_f) = 0 조건으로 떨어진다.

그런데 H/u=0\partial H/\partial u = 0uu가 아무 제약 없이 실수 전체를 돌아다닐 때만 성립하는 조건이다. 현실의 액추에이터는 uumax|u| \le u_{\max}라는 포화를 갖는다. 이 경우를 정확히 다루는 것이 1956년 러시아 수학자 폰트랴긴(L. S. Pontryagin) 학파의 폰트랴긴 최대 원리(Pontryagin’s maximum principle)다. 미분 조건을 점별 최소화로 갈아 끼운다.

u(t)=argminuUH(x(t),u,λ(t),t)u^{*}(t) = \arg\min_{u \in \mathcal{U}} H\big(x^{*}(t), u, \lambda^{*}(t), t\big)

원문이 최대화 형태로 쓰였을 뿐 부호 규약만 바꾸면 최소 원리와 같은 정리다. 이게 강력한 이유는 무한차원 함수 최적화를 매 시각의 유한차원 최소화로 잘라 주기 때문이다.

3. 뱅뱅 제어와 특이 호[편집]

HHuu에 대해 선형이면 재미있는 일이 벌어진다. H=+σ(t)uH = \cdots + \sigma(t)\,u 꼴에서 계수 σ(t)=H/u\sigma(t) = \partial H/\partial u전환 함수(switching function)라 하는데, 최소화는 σ\sigma의 부호만 보고 결정된다.

u(t)=umaxsign(σ(t))u^{*}(t) = -u_{\max}\,\mathrm{sign}\big(\sigma(t)\big)

즉 입력이 최대와 최소 사이를 순간적으로 왕복한다. 이것이 뱅뱅 제어(bang-bang control)다. 이중 적분기의 최단시간 문제에서 “끝까지 가속하다 정확히 중간에 한 번 뒤집어 끝까지 감속”하는 그 해가 정확히 이 결과이고, 전환은 딱 한 번 일어난다. 최단시간 문제가 항상 뱅뱅이 되는 이유는 시간 최소화가 L1L \equiv 1이라 uu가 오직 ff를 통해서만, 그것도 흔히 선형으로 들어오기 때문이다.

문제는 σ(t)\sigma(t)가 어떤 구간에서 0으로 눌러앉는 경우다. 이 구간에서는 최대 원리가 uu에 대해 아무 정보를 주지 않는다. 이런 구간을 특이 호(singular arc)라 하고, σ\sigmauu가 명시적으로 나타날 때까지 계속 시간 미분해서 제어를 결정한다. 몇 번 미분해야 하는지가 특이 차수이고, 최적성을 위해서는 켈리-콥-무이어 조건이라는 추가 부등식을 만족해야 한다. 고다드 로켓 문제(최대 고도 상승)에서 추력이 최대-특이-0의 세 구간으로 쪼개지는 것이 교과서 사례다.2

4. 동적 계획법과 HJB 방정식[편집]

같은 문제를 완전히 다른 각도에서 볼 수도 있다. 상태 xx, 시각 tt에서 남은 최소 비용을 가치함수 V(x,t)V(x,t)로 두면 벨만의 최적성 원리로부터 해밀턴-야코비-벨만 방정식이 나온다.

Vt=minuU{L(x,u,t)+xVf(x,u,t)},V(x,tf)=ϕ(x,tf)-\frac{\partial V}{\partial t} = \min_{u \in \mathcal{U}} \left\{ L(x,u,t) + \nabla_x V^{\top} f(x,u,t) \right\}, \qquad V(x,t_f) = \phi(x,t_f)

종단 조건에서 시간을 거꾸로 푸는 비선형 1계 편미분방정식이다. 최대 원리와의 관계도 깔끔하다 — λ=xV\lambda = \nabla_x V가 성립한다. 수반변수는 가치함수의 기울기였던 것이다.

HJB의 장점은 닫힌 루프 해를 준다는 것이다. 최대 원리는 특정 초기 상태 하나에 대한 개회로 궤적을 주지만, HJB는 모든 상태에서의 최적 피드백 법칙을 준다. 대가는 잔인하다. 상태 차원 nn에 대해 격자점 수가 지수적으로 늘어나는 차원의 저주다. 격자 100점짜리 3차원 문제가 10610^6인데 6차원이면 101210^{12}가 된다. 동적 계획법 문서에서 다루는 그 저주가 연속시간판에서도 똑같이 작동한다. HJB가 실제로 풀리는 사례는 저차원이거나, 구조가 특별해서 해가 닫힌 형태로 떨어지는 경우다.

그 “구조가 특별한” 대표 사례가 LQR이다. x˙=Ax+Bu\dot x = Ax + Bu, J=(xQx+uRu)dtJ = \int (x^\top Q x + u^\top R u)\,dt처럼 선형 동역학 + 이차 비용이면 V=xPxV = x^\top P x라는 이차형식 가정이 HJB에 대해 닫혀 있어서, 편미분방정식이 행렬 상미분방정식으로 축소된다. 그 결과가 u=R1BPxu^* = -R^{-1}B^\top P x리카티 방정식이며, 자세한 유도와 수치 해법은 해당 문서로 넘긴다. 추정 쪽의 칼만 필터가 같은 방정식의 쌍대라는 것도 거기서 다룬다.

5. 수치 해법 — 간접법과 직접법[편집]

해석해가 나오는 건 LQR 정도고, 나머지는 전부 수치적으로 푼다. 크게 두 학파가 있다.

구분간접법 (indirect)직접법 (direct)
전략최적성 조건을 먼저 세우고 그 방정식을 푼다문제를 먼저 이산화하고 NLP로 푼다
푸는 대상상태-수반 2점 경계값 문제유한차원 비선형계획
정확도높음(조건을 정확히 만족)이산화 격자에 의존
약점수반 초기값 추측에 극도로 민감해의 최적성이 이산화 오차에 묻힘
대표 기법슈팅, 다중 슈팅직접 전사, collocation, 의사스펙트럼

간접법은 최대 원리로 얻은 TPBVP를 푼다. 가장 소박한 것이 슈팅(shooting) — λ(t0)\lambda(t_0)를 찍어서 앞으로 적분하고, 종단 조건이 안 맞으면 뉴턴-랩슨법으로 추측을 고친다. 문제는 수반 방정식이 대개 불안정 방향으로 발산해서, λ(t0)\lambda(t_0)의 소수점 아래 몇 자리가 종단에서 궤도를 태양계 밖으로 보낸다는 것이다. 이걸 완화하려고 구간을 여러 개로 쪼개 각 구간을 짧게 쏘고 이음 조건을 제약으로 거는 것이 다중 슈팅(multiple shooting)이다.

직접법은 아예 순서를 뒤집는다. 시간 구간을 나누고 uu(그리고 흔히 xx도)를 유한개 파라미터로 표현해 큰 비선형계획 문제로 바꾼 뒤, 순차 이차계획법이나 내점법에 던진다. 상태까지 변수로 올리는 것이 직접 전사(direct transcription)이고, 동역학을 각 구간 중점에서의 등식 제약으로 강제하는 것이 collocation(에르미트-심슨이 표준)이다. 의사스펙트럼법은 collocation 점을 가우스-로바토 같은 직교다항식 절점에 놓아, 해가 매끄러우면 오차가 지수적으로 줄어드는 스펙트럴 정확도를 얻는다. 여기서 나오는 KKT 승수가 이산화된 수반변수와 대응한다는 covector mapping 정리 덕분에, 직접법으로 풀고도 최대 원리 조건이 얼마나 만족됐는지 사후 검증할 수 있다.3

현대 실무는 직접법 쪽으로 크게 기울었다. 제약 처리가 쉽고, 초기 추측이 물리적 직관으로 잡히며(수반변수의 초기값에 대한 직관은 아무도 없다), 자동 미분으로 야코비안을 뽑을 수 있기 때문이다.

6. 유한 지평 재계산 — MPC와의 관계[편집]

이론적 최적 제어는 [t0,tf][t_0, t_f] 전체를 한 번 풀고 그 개회로 궤적을 그대로 실행한다. 현실에서는 외란과 모델 오차가 있어서 이런 신뢰는 배신당한다. 모델 예측 제어는 여기에 간단한 처방을 얹는다 — 짧은 예측 지평의 최적 제어 문제를 매 샘플마다 다시 풀고, 그 해의 첫 스텝만 쓰고 버린다. 이 후퇴 지평(receding horizon) 전략이 개회로 최적해를 피드백 제어기로 바꿔 놓는다.

대가는 계산량이다. 제어 주기마다 NLP 하나를 풀어야 하니, 위 직접법의 효율이 곧 제어기의 실현 가능성이 된다. 선형 모델 + 이차 비용 + 선형 제약이면 문제가 이차계획법으로 떨어져서 밀리초 단위로 풀리고, 이것이 MPC가 산업 현장을 장악한 이유다. 안정성 보장은 종단 비용을 리카티 해 PP로, 종단 집합을 불변 집합으로 잡아 무한 지평 비용의 상계를 만드는 방식으로 확보한다 — 유한 지평이 무한 지평의 근사가 되도록 강제하는 셈이다.

7. 관련 문서[편집]

8. Footnotes[편집]

  1. 그리고 대부분의 프로젝트가 여기서 좌초한다. “연료도 아끼고 시간도 짧고 승차감도 좋게”라는 요구는 가중치 세 개를 튜닝하라는 뜻인데, 그 가중치를 정하는 원리적 방법은 없다. 최적 제어가 최적화 문제를 푸는 게 아니라 최적화 문제를 정의하는 문제로 되돌아오는 순간이다.

  2. 고다드 문제가 특히 유명한 이유는 1919년에 제기됐는데 특이 호의 존재가 제대로 규명된 게 1970년대라는 점이다. 중간의 특이 구간은 항력이 추력과 균형을 이루도록 스로틀을 조절하는 구간이고, 물리적으로도 “너무 빨리 올라가면 공기저항으로 손해”라는 직관과 정확히 맞는다.

  3. 이 정리가 없던 시절에는 “직접법 해가 진짜 최적인지 어떻게 아냐”는 심사위원의 질문에 답할 방법이 마땅치 않았다. 지금은 KKT 승수를 뽑아 수반 궤적과 겹쳐 그린 그림 하나로 넘어간다. 그림이 안 겹치면 격자를 늘린다. 늘려도 안 겹치면 특이 호를 의심한다.