본문 바로가기
Mathamatics/Control Theory

MPC 란? (Model Predictive Control) 1. 기본 컨셉

by 항공학도 2021. 11. 30.

참고: 제어조교님 유투브 강의 영상    

MPC는 Optimal Control의 한 방법인데 로보틱스의 planning및 제어에 많이 활용되고 있다. MPC를 사용하면 로봇의 속도 및 가속력과 같은 dynamics와 주변 환경 조건을 cost function으로 넣어 상황에 맞는 최적화된 제어 명령을 생성할 수 있고 이를 통해 안정적으로 로봇의 자율항법이 가능하다. 아주 오래전부터 해보고 싶었던 분야 인데, 이 글을 작성하면서 공부하고 실제 드론에 탑재해서 실험까지 수행해보고자 한다. 

우선 가장 기초부터 설명하면 MPC는 k-1일때의 상태변수를 가지고 k부터 몇 수 앞 (예를들어 k+5 까지 라고 하면) 까지의 제어 명령을 미리 계획해놓고 제어 명령을 출력 한 후에 현재 (k step)의 상태변수를 feedback 받는다.  이때 제어명령의 출력과 그에 따른 response를 비교해서 평가 하고 이에 따라 cost-function을 update해서 다시 k+1 부터  k+6 까지의 제어입력을 계산하는 방식이다. 즉

계획 -> 평가  -> 계획 -> 평가 -> 계획 -> 평가

를 반복하면서 주어진 constraint를 가지고 최적화된 제어입력을 생성하는 방식이다.

k step에서 예측된 제어 명령

위 그림과 같이 k-1에서의 상태변수를 가지고 k step에서 출력해야할 제어명령을 미리 예측한다. 이제 k step이 되면 그림의 붉은색으로 표시된 제어명령이 출력이되고 이 제어명령과 response를 비교한다. 이를 통해 비교된 결과에 따라 아래그림과 같이 기존의 점선에서 수정된 k+1 step의 제어명령을 출력한다.

다음스텝도 출력과 응답을 비교해서 현재 상태에서 최적화된 k+2 제어명령을 출력한다.

이를 통해 아래그림과 같이 최초에 생성되었던 제어명령 계획과는 다른 각 step에서 최적화된 명령들이 출력 된다.

결국 보게 되면 실제 control input은 각 step별로 예상을 했던 계획들 첫번째 입력이 들어가게 된다. 이러한 concept의 제어 방식을 '지평선을 점차 넓혀나가는 방식' 이라해서 Receding Horizon Control이라고 한다. 여기까지가 MPC의 가장 간단한 개념이다.

댓글