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

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

by 깊은대학 2023. 12. 19.

다음과 같은 선형 시스템이 있다.

 

(1)x˙=A(t)x+B(t)u

 

이 시스템의 초기 시간 t0 와 초기 상태변수 x(t0) 는 주어졌다고 가정한다. 또한 최종 시간 tf 도 주어졌다고 가정한다. 하지만 최종 상태변수에 관한 제약조건이 없다고 가정한다.

이 시스템의 목적함수도 다음과 같이 고정된 시간 구간 [t0, tf] 에서 이차함수로 주어졌다고 하자.

 

(2)J=12xT(tf)Sfx(tf)+12t0tf(xTQ(t)x+uTR(t)u) dt

 

여기서 Sf0, Q(t)0, R(t)>0 이다. 이와 같은 최적제어 문제는 목적함수를 최소화하면서 시스템의 최종 상태변수가 정해지지 않고 계산되도록 요구하는 것이므로 최종자유상태 LQR (free-final-state linear quadratic regulator) 문제라고 한다.

이 문제를 풀기 위해 먼저 해밀토니안 (Hamiltonian) 함수를 정의한다.

 

(3)H=12(xTQx+uTRu)+λT(Ax+Bu)

 

여기서 λ 는 라그랑지 곱수이다.

최적제어의 필요조건을 정리한 표에 의하면 다음과 같이 상태변수와 코스테이트(costate) 미분 방정식을 얻을 수 있다.

 

(4)x˙=Hλ=Ax+Bu(5)λ˙=Hx=Qx+ATλ

 

 

상태변수와 코스테이트 미분 방정식을 풀기 위해서는 경계조건이 필요하다. 여기서는 초기 시간과 초기 상태변수, 그리고 최종 시간이 정해졌으므로 dt0=0, dx(t0)=0, dtf=0 이 된다. 따라서 표의 경계조건에 의하면,

 

(6)Sfx(tf)λ(tf)=0

 

을 얻을 수 있다. 정정조건 (stationary condition)은 다음과 같다.

 

(7)0=Hu=BTλ+Ru

 

 

 

식 (7)에 의하면 최적제어 입력은 다음과 같이 계산할 수 있다.

 

(8)u(t)=R1BTλ(t)

 

식 (8)을 (4)에 대입하면 식 (5)와 함께 다음과 같이 2개의 결합 미분 방정식을 얻을 수 있다.

 

(9)[x˙λ˙]=[ABR1BTQAT][xλ]

 

식 (9)를 해밀토니안 시스템이라고 한다. 식 (9)에 의하면 해밀토니안 시스템은 초기값 x(t0) 와 최종값 λ(tf)  주어진 2점 경계값 문제 (two-point boundary value problem)이다.

 

 

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

식 (6)은 최종 시간 tf 에서만 적용되지만, 모든 시간 구간 [t0, tf] 에서도 적용된다고 가정한다. 즉,

 

(10)λ(t)=S(t)x(t)

 

만약 식 (10)을 만족하는 S(t) 를 구할 수 있다면 이러한 가정은 유효할 것이다. 식 (10)을 미분하고 식 (5)와 비교하면 다음과 같다.

 

(11)λ˙=S˙x+Sx˙=QxATλ

 

식 (4)와 (8)을 식 (11)에 대입하고 정리하면 다음과 같다.

 

(12)S˙x=S(Ax+Bu)+Qx+ATλ=(SASBR1BTS+Q+ATS)x

 

위 식은 모든 x 에 대해서 성립해야 하므로, 다음 미분 방정식을 얻을 수 있다.

 

(13)S˙=SA+ATSSBR1BTS+Q,     ttf,     S(tf)=Sf

 

식 (13)은 시간적으로 역방향(backward)으로 풀 수 있는 식이다. 식 (6)을 통해서 식 (10)을 유추해 냈으므로 시간 t=tf 일 때 S(t) 의 경계값은 최종 상태변수의 가중값 행렬인 Sf 가 된다. 따라서 식 (15)에 의해서 식 (10)이 타당한 가정임을 알 수 있다. 식 (13)을 리카티 방정식(Riccati equation)이라고 한다.

Sf 을 이용해서 시간적으로 역순으로 모든 시간에서 S(t) 를 계산하면 식 (8)로 다음과 같이 최적제어를 계산할 수 있다.

 

(14)u(t)=R1BTλ(t)=R1BTS(t)x(t)

 

여기서 LQ 게인 K(t) 를 다음과 같이 정의하면,

 

(15)K(t)=R1BTS(t)

 

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

 

(16)u(t)=K(t)x(t)

 

LQ 게인은 상태변수에 비례하는 제어입력을 산출하는 비례 제어의 이득값이다. 행렬 A, B, Q, R 이 상수행렬이더라도 LQ 게인은 시간의 함수라는데 주의해야 한다.

최적제어를 시스템에 적용하면 다음과 같이 폐회로(closed-loop) 시스템을 얻을 수 있다.

 

(17)x˙=(A+BK)x

 

식 (15)에 의하면 LQ 게인은 상태변수의 궤적과 무관하게 계산할 수 있다. 따라서 최적제어인 식 (16)을 시스템에 직접 적용하기 전에 미리 LQ 게인을 계산해서 저장해 놓을 수 있다. 그런 후 순차적으로 LQ 게인을 꺼내서 식 (17)로 최적 궤적을 계산할 수 있다.

리카티 방정식 (13)은 LQ 게인 K(t) 를 이용하여 표현할 수도 있다.

 

(18)S˙=SA+ATSKTRK+Q,     ttf

 

또한 식 (17)의 폐회로 시스템 행렬로 표현할 수도 있다.

 

(19)S˙=S(A+BK)+(A+BK)TS+KTRK+Q,     ttf

 

정리하면 다음과 같다.

 

시스템 모델:      x˙=A(t)x+B(t)u목적함수:      J=12xT(tf)Sfx(tf)+12t0tf(xTQ(t)x+uTR(t)u) dt,   Sf0, Q0, R>0최적제어:   S˙=SA+ATSSBR1BTS+Q,     ttf,  S(tf)=Sf     K(t)=R1BTS(t)     u(t)=K(t)x(t)

 

 

 

댓글