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

최적유도법칙 (Optimal Guidance Law): 최종 속도 미설정

by 깊은대학 2023. 9. 17.

이전 포스트(https://pasus.tistory.com/293)와 유사한 문제를 풀어본다. 차이점은 최종 시간에서 속도벡터에 관한 제약조건이 없는 경우이다. 편의상 운동 방정식을 다시 쓴다.

 

(1)r˙=vv˙=g(r)+a

 

여기서 rv 는 각각 관성좌표계에 대한 위치벡터와 속도벡터를 나타낸다. a 는 제어 가속도, g(r) 은 비행체 또는 미사일에 작용하는 중력 가속도로서 위치의 함수이다.

비용함수와 제약조건은 다음과 같다.

 

(2)J=12t0tfaTa dt(3)  r(t0)=r0,    r(tf)=rf  v(t0)=v0

 

랑데부가 아닌 요격 임무의 경우에는 최종 속도에 관한 제약조건을 두지 않는 경우가 대부분으로서 식 (3)과 같이 최종 속도는 자유(free)로 둔다.

 

 

식 (1)과 (2), (3)으로 주어지는 최적제어 문제는 예제(https://pasus.tistory.com/257, https://pasus.tistory.com/260)에서 풀었던 최종상태가 부분적으로 설정된 LQR 문제와 거의 동일하지만, 여기서 다시 자세히 풀어보도록 한다.

 

 

이전 포스트와 마찬가지로 식 (1)에서 중력 가속도를 상수벡터로 가정하겠다. 그러면 식 (1), (3)은 다음과 같이 상태변수 방정식으로 표현할 수 있다.

 

(4)x˙=Ax+B(a+g)

여기서

A=[0I00],    B=[0I]x=[rv],    x(t0)=[r0v0]

 

이다. 최종 상태변수의 제약조건은 다음과 같다.

 

(5)Cx(tf)=rfC=[I0]

 

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

 

(6)H=12(aTa)+λT(Ax+B(a+g))

 

그러면 다음과 같이 상태변수와 코스테이트(costate) 미분 방정식을 얻을 수 있다.

 

(7)x˙=Hλ=Ax+B(a+g)(8)λ˙=Hx=ATλ

 

코스테이트 미분 방정식은 상태변수와 독립이므로 다음과 같이 쉽게 해를 구할 수 있다.

 

(9)λ(t)=eAT(tft)λ(tf)

 

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

 

(10)CTνλ(tf)=0

 

를 얻을 수 있다. 여기서 ν 는 라그랑지 곱수이다. 식 (10)을 (9)에 대입하면,

 

(11)λ(t)=eAT(tft)CTν

 

이 된다. 정정조건(stationary condition)은 다음과 같다.

 

(12)0=Ha=BTλ+a

 

따라서 최적제어는 식 (12)와 (11)로부터 다음과 같이 계산할 수 있다.

 

(13)a(t)=BTλ(t)=BTeAT(tft)CTν

 

식 (13)을 식 (7)에 대입하면 상태변수 미분 방정식은 다음과 같이 된다.

 

(14)x˙=Ax+B(gBTeAT(tft)CTν)

 

위 식을 풀면 x(t) 를 다음과 같이 계산할 수 있다.

 

(15)x(t)=eA(tt0)x(t0)+t0teA(tτ) dτ Bg       t0teA(tτ)BBTeAT(tfτ) dτ CTν

 

위 식에 의하면 t=tf 에서 r(tf) 를 다음과 같이 구할 수 있다.

 

(16)r(tf)=CeA(tft0)x(t0)+Ct0tfeA(tfτ) dτ Bg       Ct0tfeA(tfτ)BBTeAT(tfτ) dτ CTν

 

식 (16)는 시간 t0 에서 상태변수 x(t0) 가 주어졌을 때 r(tf) 를 계산하는 식이다. 이 식은 임의의 시간 ttf 에서 상태변수 x(t) 가 주어졌을 때에도 성립해야 한다. 따라서 식 (16)은 다음과 같이 수정할 수 있다.

 

(17)r(tf)=CeA(tft)x(t)+CttfeA(tfτ) dτ Bg       CttfeA(tfτ)BBTeAT(tfτ) dτ CTν

 

이제 이 값이 r(tf)=rf 가 되도록 ν 를 계산해야 한다. 여기서 P(t) 를 다음과 같이 정의하면,

 

(18)P(t)=CttfeA(tfτ)BBTeAT(tfτ) dτ CT

 

ν 를 다음과 같이 계산할 수 있다.

 

(19)ν=P1(t)(rfCttfeA(tfτ) dτ BgCeA(tft)x(t))

 

여기서 만약 P1(t) 이 존재하지 않는다면 이 최적제어 문제는 해가 존재하지 않는다.

 

 

이제 식 (19)를 식 (13)에 대입하면 최종적으로 최적제어를 계산할 수 있다.

 

(20)a(t)=BTeAT(tft)CTP1(t)(rfCttfeA(tfτ) dτ BgCeA(tft)x(t))

 

이제 식 (20)을 구성하는 행렬을 차례로 계산해 보자. 먼저 행렬지수함수는 다음과 같이 계산된다.

 

(21)eA(tft)=I+A(tft)=[I(tft)I0I]

 

행렬 P(t) 는 정의와 식 (18)에 의해서 다음과 같이 계산된다.

 

(22)P(t)=tgo33I

 

여기서 tgo=tft 는 잔여시간(time-to-go)을 나타낸다. 식 (21)과 (22)를 이용하면 식 (20)의 구성 부분을 다음과 같이 계산할 수 있다.

 

(23)BTeAT(tft)CTP1(t)=3tgo3I(24)CttfeA(tfτ) dτ Bg=tgo22g(25)rfCttfeA(tfτ) dτ BgCeA(tft)x(t)       =rftgo22gr(t)tgov(t)

 

식 (23)~(25)를 식 (20)에 대입하면 최적제어는 다음과 같다.

 

(26)a(t)=3tgo2(rf(r(t)+tgov(t)))32g=3tgo2(rf(r(t)+tgov(t)+tgo22g))=3tgo2ZEM

 

여기서 ZEM(Zero-Effort-Miss)는 다음과 같이 정의된다.

 

(27)ZEM=rf(r(t)+tgov(t)+tgo22g)

 

정의에 의하면 ZEM는 현재 시간 t 에서 임무 종료 시간 tf 까지 제어 가속도가 0 일 때, 즉 zero-effort 일 때 임무 종료 시에 예측되는 거리 오차를 뜻한다.

식 (26)을 최종 속도가 설정되지 않은 경우의 최적 피드백 유도법칙(optimal feedback guidance law)이라고 한다.

이제, 식 (26)을 식 (15)에 대입하면 다음과 같이 된다.

 

(28)x(tf)=eA(tft)x(t)+ttfeA(tfτ) dτ Bg       ttfeA(tfτ)BBTeAT(tfτ) dτ CTν=[ItgoI0I]x(t)+[tgo22gtgog]       +[tgo33Itgo22Itgo22ItgoI][I0]3tgo3I(rftgo22gr(t)tgov(t))

 

위 식으로부터 최종 시간에서 위치벡터와 속도벡터를 구하면 다음과 같다.

 

(29)r(tf)=r(t)+tgov(t)+tgo22g+(rftgo22gr(t)tgov(t))=rf(30)v(tf)=v(t)+tgog+32tgo(rftgo22gr(t)tgov(t))=32tgo(rfr(t))12v(t)+14tgog

 

계산에서 보듯이 식 (26)으로 주어지는 최적제어를 사용하면 r(tf)=rf 를 만족한다.

식 (26) 대신에 식 (31)의 제어를 사용하면 어떨까. 직관적으로는 식 (31)도 타당할 것 같다.

 

(31)a(t)=3tgo2(rf(r(t)+tgov(t)))g

 

이 경우는 현재 시간 t 에서 예상되는 최종 위치벡터는 다음과 같이 계산된다.

 

(32)r(tf)=r(t)+tgov(t)+tgo22g+(rftgo23gr(t)tgov(t))=rf+tgo26g

 

최종 임무 시간에 접근함에 따라 tgo0 이 되므로 이 경우도 점근적으로 r(tf)=rf 이 된다.