Author: Joonhee Lim
Date: 2022/08/23
0. Motivation
이전에 MPC와 LQR에 대해서 간단하게 포스팅한 적이 있었는데 각 알고리즘의 차이와 장단점을 알아보았다. 그 중 LQR은 그 이름처럼 비선형 시스템에는 적용할 수 없다는 단점이 있었는데 이를 해결하기 위해 ILQR이라는 녀석이 있다고 하여 할 수 있으면 간단하게.. 없다면 자세하게 포스팅해보고자 한다.
1. ILQR?
ILQR은 선형 시스템을 푸는 최적제어 방식이 아닌 비선형 시스템을 푸는 제어이기에 다음과 같은 수식을 기반으로 시작된다.
Cost Function은 다음과 같이 작성할 수 있다. 이산 시간에서 만들어진 것이다.
$x_N$은 Final State이며 $x^*$은 목표이다.
이전 LQR과 같이 Q와 $Q_f$는 symmetric positive semi-definite이며 R은 Positive definite이다.
Q는 오차에 가하는 가중치이고 R은 입력의 크기에 가하는 가중치라는 것은 이전 글을 본 모두가 알고 있을 것이다.
해당 알고리즘은 Iterative하며 이 반복을 통해 System Dynamics를 선형화하고 수정된 LQR 문제를 해결함으로써 개선된 입력 u를 생성한다.
먼저 $u_k$와 $x_k$의 편차를 통해 선형화를 진행하면
다음과 같은 수식을 얻을 수 있고
다음과 같은 수식을 이용한다.
$D_x$와 $D_u$는 각각 x와 u에 대한 Jacobian이며 자코비안은 다음과 같다.(Cost Function의 J는 아닌데 헷갈리게 될수도.. 아무튼 아님)
선형화된 모델을 이용하여 Cost Function을 구축하면
다음과 같이 나타난다. 이를 통해 Hamiltonian 함수를 나타내면
$\delta$가 포함된 수식은 Lagrange multiplier이고 라그랑주 승수법이란 제약 조건이 있는 최적화 문제를 풀기 위해 고안한 방법이라고 한다. 제약이 있는 최적화 문제에서 라그랑주 승수항을 더하여 제약된 문제를 제약이 없는 문제로 변경하는 방식이다.
-> 정리하자면 Cost Function을 최적화하기 위해 극소를 만드는 입력 u를 찾아야 되는데 제약 조건이 달려있으므로 제약이 없는 문제로 변경해주기 위해 추가하는 것 같다.
그리고 얻고자하는 δ$u_k$에 대한 해밀턴 함수의 미분값을 0으로 설정하여 얻을 수 있는 Stationary 조건은 다음과 같고
Boundary 조건은 다음과 같다.
δ$u_k$은 다음과 같이 구할 수 있다.
구한 δ$u_k$를 선형화 모델식과 결합시켜주면
다음과 같이 멋진 식을 도출해낼 수 있다.
해밀턴 시스템은 $x_k$와 $u_k$과 관련된 Forcing term에 의해 제어되고 이 Forcing term 때문에 Linear State Feedback 형태로 최적의 제어 법칙을 표현할 수 없다. 그러나, 우리는 δ$u_k$를 Linear State 피드백과 추가 항의 조합으로 표현할 수 있다.
Boundary 조건에 기반하여 다음과 같은 수식을 가정한다.
그 뒤에 위의 가정을 상태 방정식과 비용 방정식으로 대체하고, Matrix inversion lemma를 적용하면 최적의 제어기를 얻을 수 있게 된다.
최종적으로 우리는
δ$u_k$을 얻을 수 있게 된다.
δuk은 세 개의 항으로 구성되어 있다.
1) δ$x_k$에서 Riccati Equation의 Solution에 의존하는 선형 항
2) Auxiliary 차분 방정식에서 파생되는 $v_k$에 의존하는 두 번째 항
3) $u_k$에서 Riccati 방정식의 해법에 의존하는 세 번째 항
최종적으로는 다음과 같은 수식을 통해 수정된 LQR을 푼다.
솔직히 적어놓고도 잘 이해가 가진 않지만 정리해보겠다.
1. 비선형 시스템을 풀 수 있는 LQR이다.
2. 비선형 시스템을 풀기 위해 선형화를 적용하여 δ$u_k$를 구하는데 목적을 두었다.
3. 라그랑주 승소수를 사용하여 제약조건에서의 극소값을 구해냈다.
4. δ$u_k$를 Linear State 피드백과 추가 항의 조합으로 표현하여 풀이해냈다.
5. 너무 복잡해져 정신을 잃을 뻔 했다.
잘 모르는데 정리한 것 자체가 웃기진 하지만 내가 이해해보겠다는 심정으로 정리하였으니 어쩔 수 없다.
다음 학기에 수강하는 최적제어를 듣고 나면 득도할지도 모르니 그 때 가서 수정하겠다.
'Autonomous Driving' 카테고리의 다른 글
[AD] TEB(Timed-Elastic-Bands) 알고리즘 설명 (0) | 2022.08.27 |
---|---|
[AD] DWA(Dynamic Window Approach) 알고리즘 설명 및 개선 과정 (0) | 2022.08.27 |
[AD] MOBIL: General Lane-Changing Model for Car-Following Models에 대한 설명 및 정리 (0) | 2022.08.23 |
[AD] ACC(Adaptive Cruise Control)란 무엇일까? (0) | 2022.08.22 |
[AD] MPC(Model Predictive Control) VS LQR(Linear Quadratic Regulator) (0) | 2022.08.14 |