본문 바로가기

Autonomous Driving

[AD] MPC(Model Predictive Control) VS LQR(Linear Quadratic Regulator)

728x90

Author: Joonhee Lim
Date: 2022/08/14

출처: https://www.quora.com/Whats-the-difference-between-constrained-LQR-and-MPC


앞에서 MPC와 LQR에 대한 정리를 진행하였다. 하지만 그래서 둘이 뭐가 다르고 언제 어떻게 쓰는건데?

 

에 대한 대답은 명시되어 있지 않았다. 그래서 여기에 쓸 거임


0. General Optimal Control

일반적인 최적제어의 목적이다. Optimal Control은 그저 Cost Function을 최소화시킬 수 있는 입력 u를 찾는 것을 목적으로 한다. General한 Optimal Control은 선형 시스템이라는 제한이 붙지 않는다.

1. Linear Quadratic Regulator

LQR은 선형 시스템이라는 조건과 Cost Function이 Quadratic form으로 이루어져 있는 최적제어인 것이다.

여기서 Q는 좋지 않은 성능에 대한 가중치이고 R은 입력의 크기에 대한 가중치이다.

 

Low Error를 원하면 Q를 키우고 입력 cost가 줄어야 한다면 R을 키우는 셈이다.

2. Model Predictive Control

 

MPC는 선형 시스템이라는 조건이 붙지 않고 u라는 제어 입력과 현재 State x를 이용하여 미래의 State와 제어입력을 예측 및 계획하고 출력 y가 Reference Spot에 가까이 잘 계획되었는지 피드백하고 다시 입력을 계획한다.


3. 그래서 차이가 뭐라는 거야

LQR과 MPC의 차이점을 명료하게 정리해보도록 하겠다.

 

LQR

1. Linear System -> 비선형 문제 해결 불가능

2. real time 최적화가 아니다.(fixed time window) -> 전체 시간 범위에 대해 동일한 솔루션을 사용(Offline)

3. Cost Function 설정 방식이 다르다.

4. 연산량이 비교적 적다. -> 성능이 더 안 나옴

 

MPC

1. Linear/Nonlinear -> 비선형 문제 해결 가능

2. real time으로 계속 최적화한다.(receding time window) -> 매 time step마다 새로운 솔루션을 사용(Online)

3. Cost Function 설정 방식이 다르다.

4. 연산량이 비교적 많다. -> 성능이 더 잘 나옴

 

근데 결국 LQR이나 MPC나 실제 Output과 원하는 출력 사이의 Error를 줄이는데 목적을 두고, 이를 위해 약간의 다른 형태의 목적 함수를 사용하는 것뿐이지 근본은 같은 것 같다. 하지만 실시간으로 현재 State와 Input을 통해 최적화를 반복 진행하는 MPC가 역시 조금 더 강력해보이긴 한다.

반응형