6.6 모델 예측 제어(Model Predictive Control)
모델 예측 제어(Model Predictive Control, MPC)는 시스템의 동역학 모델을 이용하여 유한 예측 구간(prediction horizon)에 걸친 미래 거동을 예측하고, 비용 함수(cost function)를 최소화하는 최적 제어 입력 시퀀스를 반복적으로 산출하는 최적 제어 기법이다. MPC는 구속 조건(constraints)을 명시적으로 처리할 수 있으며, 다변수(multivariable) 시스템에 자연스럽게 적용 가능하다는 장점으로 인하여, 자율주행 제어 분야에서 핵심적인 제어 기법으로 자리잡고 있다. 본 절에서는 MPC의 기본 원리, 수학적 정식화, 자율주행에서의 적용, 그리고 실시간 구현의 과제를 기술한다.
1. MPC의 기본 원리
MPC의 동작 원리는 다음과 같은 반복적 절차로 구성된다.
- 상태 측정: 현재 시각 t에서 시스템의 상태 \mathbf{x}(t)를 측정 또는 추정한다.
- 미래 예측: 시스템의 동역학 모델을 이용하여 현재 시각부터 예측 구간 N 스텝까지의 미래 상태를 예측한다.
- 최적화: 비용 함수를 최소화하면서 구속 조건을 만족하는 최적 제어 입력 시퀀스 \{u_0^*, u_1^*, \ldots, u_{N-1}^*\}를 산출한다.
- 적용: 최적 제어 시퀀스의 첫 번째 원소 u_0^*만을 실제 시스템에 적용한다.
- 반복: 다음 시각 t + T_s에서 1단계부터 반복한다.
이와 같이 최적화를 매 제어 주기마다 반복하는 전략을 이동 구간(receding horizon) 또는 후퇴 구간(receding horizon) 전략이라 한다. 최적 시퀀스의 첫 번째 원소만을 적용하고 나머지를 버리는 이유는, 다음 시각에서 갱신된 상태 정보를 반영하여 새로운 최적화를 수행함으로써 모델 오차와 외란에 대한 폐루프 피드백 효과를 확보하기 위함이다.
2. 수학적 정식화
2.1 이산 시간 시스템 모델
MPC는 이산 시간(discrete-time) 시스템 모델을 기반으로 정식화된다. 일반적인 비선형 시스템의 이산 시간 모델은 다음과 같다.
\mathbf{x}_{k+1} = f(\mathbf{x}_k, \mathbf{u}_k)
여기서 \mathbf{x}_k \in \mathbb{R}^n은 시각 k에서의 상태 벡터, \mathbf{u}_k \in \mathbb{R}^m은 제어 입력 벡터, f(\cdot)는 시스템의 상태 전이 함수이다.
2.2 최적화 문제
MPC의 핵심은 매 제어 주기에서 다음과 같은 유한 구간 최적 제어 문제(finite-horizon optimal control problem)를 푸는 것이다.
\min_{\mathbf{u}_0, \ldots, \mathbf{u}_{N-1}} J = \sum_{k=0}^{N-1} \left[ \ell(\mathbf{x}_k, \mathbf{u}_k) \right] + V_f(\mathbf{x}_N)
\text{subject to:}
\mathbf{x}_{k+1} = f(\mathbf{x}_k, \mathbf{u}_k), \quad k = 0, 1, \ldots, N-1
\mathbf{x}_0 = \mathbf{x}(t) \quad \text{(초기 조건)}
\mathbf{x}_k \in \mathcal{X}, \quad k = 1, \ldots, N
\mathbf{u}_k \in \mathcal{U}, \quad k = 0, \ldots, N-1
여기서 각 항의 의미는 다음과 같다.
| 기호 | 명칭 | 설명 |
|---|---|---|
| J | 비용 함수(Cost Function) | 최소화 대상이 되는 목적 함수 |
| \ell(\mathbf{x}_k, \mathbf{u}_k) | 단계 비용(Stage Cost) | 각 시각에서의 상태 오차와 제어 입력에 대한 비용 |
| V_f(\mathbf{x}_N) | 종단 비용(Terminal Cost) | 예측 구간 끝에서의 상태에 대한 비용 |
| N | 예측 구간 길이(Prediction Horizon) | 미래를 예측하는 시간 스텝 수 |
| \mathcal{X} | 상태 구속 집합(State Constraint Set) | 상태 변수의 허용 범위 |
| \mathcal{U} | 입력 구속 집합(Input Constraint Set) | 제어 입력의 허용 범위 |
2.3 이차 비용 함수
자율주행 제어에서 가장 일반적으로 사용되는 비용 함수의 형태는 이차(quadratic) 비용 함수이다.
\ell(\mathbf{x}_k, \mathbf{u}_k) = (\mathbf{x}_k - \mathbf{x}_k^{ref})^T Q (\mathbf{x}_k - \mathbf{x}_k^{ref}) + \mathbf{u}_k^T R \, \mathbf{u}_k + \Delta \mathbf{u}_k^T S \, \Delta \mathbf{u}_k
여기서 각 가중 행렬의 역할은 다음과 같다.
- Q (상태 가중 행렬): 참조 상태와의 오차에 대한 가중치이다. 대각 원소를 조정하여 각 상태 변수(횡방향 오차, 방향각 오차, 속도 오차 등)의 상대적 중요도를 설정한다.
- R (입력 가중 행렬): 제어 입력의 크기에 대한 가중치이다. 큰 값을 설정하면 제어 입력이 억제되어 에너지 효율과 구동기 보호에 유리하다.
- S (입력 변화율 가중 행렬): 제어 입력의 변화율 \Delta \mathbf{u}_k = \mathbf{u}_k - \mathbf{u}_{k-1}에 대한 가중치이다. 이 항은 제어 입력의 급격한 변화를 억제하여 승차감과 구동기 수명을 향상시킨다.
3. 선형 MPC와 비선형 MPC
3.1 선형 MPC(Linear MPC)
시스템 모델이 선형인 경우, 즉 \mathbf{x}_{k+1} = A \mathbf{x}_k + B \mathbf{u}_k이고 비용 함수가 이차 형태인 경우, MPC의 최적화 문제는 이차 계획법(Quadratic Programming, QP) 문제로 귀착된다. QP 문제는 볼록(convex) 최적화에 해당하므로 전역 최적해(global optimum)가 보장되며, 효율적인 수치 알고리즘(예: 능동 집합법(active set method), 내점법(interior point method))에 의하여 실시간으로 풀 수 있다.
자율주행에서 선형 MPC를 적용하기 위해서는 비선형 차량 모델을 현재 동작점(operating point)에서 선형화(linearization)해야 한다. 선형화는 일반적으로 1차 테일러 전개(Taylor expansion)를 통해 수행된다.
\mathbf{x}_{k+1} \approx f(\bar{\mathbf{x}}_k, \bar{\mathbf{u}}_k) + A_k (\mathbf{x}_k - \bar{\mathbf{x}}_k) + B_k (\mathbf{u}_k - \bar{\mathbf{u}}_k)
여기서 A_k = \frac{\partial f}{\partial \mathbf{x}} \bigg|_{\bar{\mathbf{x}}_k, \bar{\mathbf{u}}_k}, B_k = \frac{\partial f}{\partial \mathbf{u}} \bigg|_{\bar{\mathbf{x}}_k, \bar{\mathbf{u}}_k}이다.
3.2 비선형 MPC(Nonlinear MPC)
비선형 MPC(NMPC)는 차량의 비선형 동역학 모델을 직접 사용하여 최적화를 수행한다. NMPC에서의 최적화 문제는 비볼록(nonconvex) 비선형 계획법(Nonlinear Programming, NLP) 문제에 해당하며, 순차 이차 계획법(Sequential Quadratic Programming, SQP)이나 내점법(Interior Point Method) 등의 수치 최적화 기법으로 풀어야 한다.
NMPC는 선형 MPC에 비하여 다음과 같은 장점을 가진다.
- 차량의 비선형 동역학을 정확히 반영하므로 고속 주행이나 한계 주행 조건에서의 성능이 우수하다.
- 타이어의 비선형 횡력 특성(Pacejka 모델 등)을 직접 포함할 수 있다.
그러나 NMPC는 전역 최적해의 보장이 없으며(지역 최적해에 수렴할 수 있음), 선형 MPC에 비하여 연산 비용이 높다는 한계가 있다.
4. 자율주행에서의 MPC 적용
4.1 횡방향 MPC
횡방향 MPC의 상태 벡터와 제어 입력은 일반적으로 다음과 같이 정의된다.
\mathbf{x} = [e_{lat}, \; \dot{e}_{lat}, \; e_{\psi}, \; \dot{e}_{\psi}]^T, \quad \mathbf{u} = [\delta]
구속 조건은 다음과 같이 설정된다.
\delta_{\min} \leq \delta_k \leq \delta_{\max}
\lvert \Delta \delta_k \rvert \leq \Delta \delta_{\max}
여기서 \delta_{\min}, \delta_{\max}는 최대 조향각 한계, \Delta \delta_{\max}는 조향 속도 한계이다.
4.2 종방향 MPC
종방향 MPC의 상태 벡터와 제어 입력은 다음과 같다.
\mathbf{x} = [s, \; v_x]^T, \quad \mathbf{u} = [a_x]
여기서 s는 경로 상의 위치, v_x는 종방향 속도, a_x는 종방향 가속도이다. 구속 조건은 다음과 같다.
a_{\min} \leq a_k \leq a_{\max}
\lvert j_k \rvert = \lvert \Delta a_k / T_s \rvert \leq j_{\max}
0 \leq v_k \leq v_{\max}
여기서 a_{\min}, a_{\max}는 최대 감속 및 가속 한계, j_{\max}는 최대 저크 한계이다.
4.3 통합 MPC
종방향 제어와 횡방향 제어를 단일 MPC 문제로 통합하면, 두 제어 축 사이의 결합(coupling) 효과를 고려할 수 있다. 예를 들어, 급격한 곡선 구간에서는 감속이 필요하며, 이러한 종횡방향 간의 상호 의존성을 통합 MPC에서 자연스럽게 처리할 수 있다.
통합 MPC의 상태 벡터는 종방향과 횡방향의 상태를 모두 포함한다.
\mathbf{x} = [e_{lat}, \; e_{\psi}, \; v_x, \; \dot{\psi}, \; \ldots]^T, \quad \mathbf{u} = [\delta, \; a_x]^T
5. MPC의 설계 파라미터
MPC의 성능에 영향을 미치는 주요 설계 파라미터는 다음과 같다.
| 파라미터 | 영향 |
|---|---|
| 예측 구간 N | 길수록 미래 정보 활용 증가, 연산 비용 증가 |
| 제어 구간 N_c (\leq N) | N_c 이후 제어 입력 고정, 연산 비용 감소 |
| 샘플링 주기 T_s | 짧을수록 정밀도 향상, 연산 부하 증가 |
| 가중 행렬 Q, R, S | 추종 성능과 제어 평활도 간의 균형 결정 |
예측 구간 N과 샘플링 주기 T_s의 곱인 예측 시간(prediction time) T_p = N \cdot T_s는 차량의 응답 시간과 경로의 곡률 변화 주기를 고려하여 설정해야 한다. 일반적으로 자율주행에서 T_p는 1~3초 범위에서 설정된다.
6. 실시간 구현의 과제
MPC의 가장 큰 실무적 과제는 매 제어 주기마다 최적화 문제를 실시간으로 풀어야 한다는 것이다. 자율주행에서 제어 주기는 일반적으로 10~50 ms이며, 이 시간 내에 최적화가 완료되어야 한다.
실시간 MPC 구현을 위한 주요 기법은 다음과 같다.
- 따뜻한 시작(Warm Start): 이전 시각의 최적해를 다음 시각 최적화의 초기 추정값으로 사용하여 수렴 속도를 향상시킨다.
- 제어 구간 축소(Control Horizon Reduction): 제어 구간 N_c를 예측 구간 N보다 짧게 설정하여 결정 변수(decision variable)의 수를 줄인다.
- 선형화 기반 근사: 비선형 모델을 매 시각 선형화하여 QP 문제로 변환함으로써 연산 효율을 확보한다.
- 코드 생성(Code Generation): ACADOS(Verschueren et al., 2021), FORCES Pro 등의 도구를 활용하여 특정 문제 구조에 최적화된 C 코드를 자동 생성한다.
- GPU 병렬 연산: 다수의 최적화 문제를 GPU에서 병렬로 해결하는 기법이 연구되고 있다.
7. MPC와 다른 제어 기법의 비교
| 특성 | PID | LQR | MPC |
|---|---|---|---|
| 구속 조건 처리 | 불가 | 불가 | 가능 |
| 미래 경로 정보 활용 | 불가 | 불가 | 가능 |
| 비선형 동역학 반영 | 불가 | 제한적 (선형화) | 가능 (NMPC) |
| 다변수 시스템 | 제한적 | 가능 | 가능 |
| 연산 비용 | 낮음 | 낮음 | 높음 |
| 구현 복잡도 | 낮음 | 중간 | 높음 |
| 파라미터 튜닝 | 직관적 | 체계적 (Q, R) | 체계적 (Q, R, N, …) |
참고문헌
- Rawlings, J. B., Mayne, D. Q., & Diehl, M. (2017). Model Predictive Control: Theory, Computation, and Design (2nd ed.). Nob Hill Publishing.
- Borrelli, F., Bemporad, A., & Morari, M. (2017). Predictive Control for Linear and Hybrid Systems. Cambridge University Press.
- Verschueren, R., Frison, G., Kouzoupis, D., Frey, J., van Duijkeren, N., Zanelli, A., … & Diehl, M. (2021). acados — A Modular Open-Source Framework for Fast Embedded Optimal Control. Mathematical Programming Computation, 14, 147–183.
- Falcone, P., Borrelli, F., Asgari, J., Tseng, H. E., & Hrovat, D. (2007). Predictive Active Steering Control for Autonomous Vehicle Systems. IEEE Transactions on Control Systems Technology, 15(3), 566–580.
버전: 2026-04-11 v1.0