본문 바로가기

Autonomous Driving

[AD] MPC(Model Predictive Control)란 무엇일까? (1)

728x90

Author: Joonhee Lim
Date: 2022/08/13


0. Motivation

자율주행 제어 방법에 대해서 조사하다가 최적화를 이용하여 제어하는 방법 중 MPC에 관심이 생겨 정리해보게 되었다.

다양한 고전 방식의 제어를 먼저 공부한다면 최근 기법이 나오게 된 배경을 이해할 수 있을 것 같아 떨린다.

 

출처:

https://sunggoo.tistory.com/65?category=979705 

https://sunggoo.tistory.com/66?category=979705

https://sunggoo.tistory.com/67?category=979705

 

다음 블로그를 참고하여 작성하였다.

 

MPC 란? (Model Predictive Control) 3. Prediction of state and output

참고: 제어조교님 유투브 강의 영상 MPC는 Optimal Control의 한 방법인데 로보틱스의 planning및 제어에 많이 활용되고 있다. MPC를 사용하면 로봇의 속도 및 가속력과 같은 dynamics와 주변 환경 조건을 c

sunggoo.tistory.com


1. Model Predictive Control이란 뭘까

MPC는 현재 Step의 x(k)와 u(k)를 통해 x(k+1)을 예측해야하기 때문에 시스템 Dynamics 모델링이 필요하다.

학부 시절 자동제어 때 많이 보던 State Space Equation과 닮아있다.

하지만 해당 식을 이해해보면 이산 시간의 모델이라는 것을 알 수 있고

 

1. 현재 차량의 상태 x(k)와 현재의 입력 u(k)를 통해 미래의 상태 x(k+1)를 예측한다.

2. k+5까지 예측하기로 설정하였다면 입력 u(k), u(k+1) ... u(k+4)을 계획하고 k+5까지의 상태들을 예측한다.

3. 예측한 x(k+1)와 k+1에서의 실제 출력을 비교하여 최적화시킨 다음 적절한 입력을 계획한다.

3. 다시 한번 x(k+2)를 예측하고 결국 미리 정해둔 미래까지의 상태 x(k+5)를 예측하고 그 때까지 필요한 입력 u(k), u(k+3)...등을 계획하는 것이다.

즉, x(k)까지만을 보고 계획한 제어 명령 u(k+1), u(k+2) ... u(k+5) 은 실제 출력과 비교되며 매 step마다 최적화되어 수정된 제어 명령이 출력된다.

2. 실제 MPC는 어떻게 되는거냐고!

위에서는 MPC를 이해가 가기 쉽게 정리한 버전이며 실제 MPC의 모델은 다음과 같다.

k step에서의 상태 변화량과 입력 변화량을 이용하여 식이 구성되어 있고

상태 변수 x(k)는 다음과 같이 상태변수 x의 변화량과 출력값으로 구성되어 있다.


결국 우리는 자율주행에서의 MPC를 공부하고 있는 것이기에 Planning을 이용하여 설명하도록 하겠다.

 

$N_p$개의 점들로 구성된 reference trajectory가 있을 때 이를 Tracking할 수 있도록 design하는 $N_c$개의 제어 입력을 구하는 것이다. 

 

즉, 우리는 $N_c$개의 Control Input이 필요하다.

 

또한 state들을 예측하기 위해 다음과 같은 수식을 이용하며

미래 출력을 예측하기 위해 C만 곱해주면 된다.

이를 Matrix form으로 정리하면 다음과 같다.

즉 현재 State와 원하는 Reference 출력을 이용하여 $N_c$개의 입력을 계획할 수 있고 $N_p$개의 출력을 예측할 수 있다.

 

글이 너무 길어질 것 같아 몇 편으로 나누어 제작하도록 하겠다.

반응형