본문 바로가기
유도항법제어/최적제어

[Discrete-Time] 자유최종상태 (Free-final-state) LQR

by 깊은대학 2020. 10. 31.

다음과 같은 선형 시스템에 대해서

 

(1)xt+1=Ftxt+Gtut

 

목적함수가 다음과 같이 2차함수로 주어지는

 

(2)Jt=12xNTSNxN+12t=iN1(xtTQtxt+utTRtut)

 

LQR 문제의 해는 다음과 같다. 여기서는 최종 상태변수에 관한 제약조건이 없다고 가정한다 (https://pasus.tistory.com/38).

 

(3)xt+1=Ftxt+Gtut(4)λt=FtTλt+1+Qtxt(5)0=GtTλt=1+Rtut(6)0=(SNxNλN)TdxN

 

최적제어는 식 (5)로부터 다음과 같이 주어진다.

 

(7) ut=Rt1GtTλt+1

 

시스템의 최종 상태변수가 정해지지 않고 계산되어야 한다면, 즉 자유최종상태(free-final-state) 문제라면 dxN0 이므로 최종 코스테이트(costate)는 시스템의 상태변수와 다음 관계식을 만족한다.

 

(8) λN=SNxN

 

이제, 자유최종상태 LQR 문제를 풀어보자.

 

 

식 (8)은 시간스텝 N 에서만 적용되지만, 모든 시간스텝 itN 에서도 적용된다고 가정한다. 즉,

 

(9)λt=Stxt

 

만약 식 (9)를 만족하는 St 를 구할 수 있다면 이러한 가정은 유효할 것이다. 식 (9)를 식 (7)에 대입하고, 이를 식 (3)에 대입하면 다음식을 얻을 수 있다.

 

(10)xt+1=FtxtGtRt1GtTSt+1xt+1

 

식 (10)을 xt+1 에 관해서 정리하면 다음과 같다.

 

(11)xt+1=(I+GtRt1GtTSt+1)1Ftxt

 

이번에는 식 (9)를 식 (4)에 대입하면 다음식을 얻을 수 있다.

 

(12)Stxt=FtTSt+1xt+1+Qtxt

 

식 (11)을 (12)에 대입하고 정리하면 다음과 같이 된다.

 

(13)Stxt=FtTSt+1(I+GtRt1GtTSt+1)1Ftxt+Qtxt

 

위 식은 모든 xt 에 대해서 성립해야 하므로, 다음식이 얻어진다.

 

(14)St=FtTSt+1(I+GtRt1GtTSt+1)1Ft+Qt

 

행렬 역변환 정리(matrix inversion lemma)에 의하면 식 (14)는 다음 식이 된다.

 

(15)St=FtTSt+1[IGt(Rt+GtTSt+1Gt)1GtTSt+1]Ft+Qt

 

식 (15)는 시간적으로 역방향(backward)으로 풀 수 있는 식이다. 식 (15)의 오른쪽 항은 St+1 를 제외하고는 모두 문제에서 주어진 행렬이므로 St+1 만 알면 St 를 계산할 수 있다. 식 (8)을 통해서 식 (9)를 유추해 냈으므로 시간스텝 t=N 일 때 St 의 경계값은 최종 상태변수의 가중치 행렬인 SN 이 된다. 따라서 식 (15)에 의해서 식 (9)가 타당한 가정임을 알 수 있다. 식 (15)를 리카티 방정식(Riccati equation)이라고 한다.

최종값 SN 을 이용해서 시간적으로 역순으로 모든 시간스텝에서 St 를 계산할 수 있다. 그러면 식 (7)로 다음과 같이 최적제어를 계산할 수 있다.

 

(16)ut=Rt1GtTλt+1=Rt1GtTSt+1xt+1

 

시스템 운동인 식 (3)을 식 (16)에 대입하면,

 

(17)ut=Rt1GtTSt+1(Ftxt+Gtut)

 

가 되고, 이 식을 정리하면 최종적으로 다음 식을 얻을 수 있다.

 

(18)ut=(GtTSt+1Gt+Rt)1GtTSt+1Ftxt

 

여기서 LQ 게인 Kt 를 다음과 같이 정의하면,

 

(19)Kt=(GtTSt+1Gt+Rt)1GtTSt+1Ft

 

최적제어는 다음과 같이 상태변수 피드백 제어의 형태가 된다.

 

(20)ut=Ktxt

 

LQ 게인은 상태변수에 비례하는 제어입력을 산출하는 비례 제어의 이득값이다. 식 (19)에 의하면 LQ 게인은 상태변수의 궤적과 무관하게 계산할 수 있다. 따라서 최적제어인 식 (20)을 시스템에 직접 적용하기 전에 미리 LQ 게인을 계산해서 저장해 놓을 수 있다. 그런 후 순차적으로 LQ 게인을 꺼내서 식 (14)로 최적제어 값을 계산해서 시스템에 인가하면 최적 궤적 시퀀스 {xi,xi+1,,xN} 을 계산해 낼 수 있다.

 

 

요약하면, LQR은 최종 시간에서부터 역방향 시간으로 LQ 게인을 계산하는 역방향 패스(backward pass)와 순방향 시간으로 최적제어를 시스템에 적용하여 궤적을 계산하는 순방향 패스(forward pass)로 구성된다.