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

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

by 깊은대학 2023. 9. 16.

중력장에서 비행체 또는 미사일의 운동 방정식은 다음과 같이 주어진다.

 

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

 

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

 

 

제어의 목적은 시간 t0 에서 출발지를 출발하여 최소의 에너지를 사용하여 시간 tf 에 목적지에 비행체를 도착시키는 것이다. 이 제어 목적을 실현시키기 위하여 최소화해야 할 비용함수와 제약조건은 다음과 같다.

 

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

 

식 (1)~(3)으로 주어지는 최적제어 문제는 위성이나 적 비행체의 요격, 달 또는 지구로의 정밀 착륙, 지상 목표물의 타격 임무 등에 적용될 수 있는 유도법칙 설계 문제이기도 하다.

 

 

식 (1)에서 중력 가속도는 일반적으로 위치의 함수이지만 여기서는 해석적인 해를 유도하기 위하여 상수벡터로 가정하겠다. 즉, g(r)=g. 이 경우 식 (1), (3)은 다음과 같이 상태변수 방정식으로 표현할 수 있다.

 

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

여기서

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

 

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

먼저 해밀토니안(Hamiltonian) 함수를 정의한다.

 

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

 

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

 

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

 

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

 

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

 

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

 

(8)0=Ha=BTλ+a

 

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

 

(9)a(t)=BTλ(t)=BTeAT(tft)λ(tf)

 

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

 

(10)x˙=Ax+B(gBTeAT(tft)λ(tf))

 

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

 

(11)x(t)=eA(tt0)x(t0)+t0teA(tτ) dτ Bg     t0teA(tτ)BBTeAT(tfτ) dτ λ(tf)

 

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

 

(12)x(tf)=eA(tft0)x(t0)+t0tfeA(tfτ) dτ Bg     t0tfeA(tfτ)BBTeAT(tfτ) dτ λ(tf)

 

이 값이 x(tf)=xf 가 되도록 λ(tf) 를 계산해야 한다. 여기서 G(t) 를 다음과 같이 정의하면,

 

(13)G(t)=ttfeA(tfτ)BBTeAT(tfτ) dτ

 

λ(tf) 를 다음과 같이 계산할 수 있다.

 

(14)λ(tf)=G1(t0)(xft0tfeA(tfτ)dτBgeA(tft0)x(t0))

 

마지막으로 식 (14)를 식 (9)에 대입하면 최적제어는

 

(15)a(t)=BTeAT(tft)G1(t0)(xft0tfeA(tfτ)dτBgeA(tft0)x(t0))

 

이 된다. 이 최적제어는 현재의 상태변수와 무관하고 상태변수의 초기값 x(t0) 와 최종값 xf 에만 영향을 받으므로 오픈루프(open-loop) 제어이다. 따라서 만약 어떤 이유로 시스템이 교란(perturbed)된다면 최종값에 도달하지 못할 수도 있다. 따라서 최적제어가 초기 상태변수 x(t0) 대신에 현재의 상태변수 x(t) 의 함수가 되도록 식을 조금 변형해 보자.

 

 

식 (12)는 시간 t0 에서 상태변수 x(t0) 가 주어졌을 때 x(tf) 를 계산하는 식이다. 이 식은 임의의 시간 t0tf 에서 상태변수 x(t0) 가 주어졌을 때에도 모두 성립하는 식이기 때문에, 시간 ttf 에서 상태변수 x(t) 가 주어졌을 때에도 성립해야 한다.

 

(16)x(tf)=eA(tft)x(t)+ttfeA(tfτ) dτ Bg     ttfeA(tfτ)BBTeAT(tfτ) dτ λ(tf)

 

따라서 식 (14)는 다음과 같이 수정된다.

 

(17)λ(tf)=G1(t)(xfttfeA(tfτ)dτBgeA(tft)x(t))

 

최적제어도 식 (18)과 같이 수정되므로 최적제어는 이제 최종 상태변수와 함께 현재의 상태변수 x(t) 의 피드백 제어가 된다.

 

(18)a(t)=BTeAT(tft)G1(t)(xfttfeA(tfτ)dτBgeA(tft)x(t))

 

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

 

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

 

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

 

(20)G(t)=ttfeA(tfτ)BBTeAT(tfτ) dτ=ttf[I(tfτ)I0I][0I][0I][I0(tfτ)II] dτ=ttf[(tfτ)2I(tfτ)I(tfτ)II] dτ=[(tfτ)33I(tfτ)22I(tfτ)22IτI]ttf=[tgo33Itgo22Itgo22ItgoI]

 

여기서 tgo=tft 는 잔여시간(time-to-go)을 나타낸다. G(t) 의 역행렬은 다음과 같다.

 

(21)G1(t)=12tgo4[tgoItgo22Itgo22Itgo33I]=[12tgo3I6tgo2I6tgo2I4tgoI]

 

식 (19)와 (21)을 이용하면 식 (18)의 구성 부분을 다음과 같이 계산할 수 있다.

 

(22)BTeAT(tft)G1(t)=[6tgo2I2tgoI](23)ttfeA(tfτ) dτ Bg=[tgo22gtgog](24)xfttfeA(tfτ) dτBgeA(tft)x(t)       =[rftgo22gr(t)tgov(t)vftgogv(t)]

 

식 (22), (23), (24)를 식 (18)에 대입하면 최적제어는 다음과 같다.

 

(25)a(t)=6tgo2rf3g6tgo2r(t)6tgov(t)     2tgovf+2g+2tgov(t)=6tgo2(rf(r(t)+tgov(t)+12tto2g))     2tgo(vf(v(t)+tgog))=6tgo2ZEM2tgoZEV

 

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

 

(26)ZEM=rf(r(t)+tgov(t)+12tto2g)ZEV=vf(v(t)+tgog)

 

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

식 (25)를 최종 속도가 설정된 경우의 최적 피드백 유도법칙(optimal feedback guidance law)이라고 한다. 최적 피드백 유도법칙은 최종 시간이 설정되어 있으므로 미리 결정된 시간에 요격을 달성하는 데 필요한 가속도 명령을 계산한다.

최종 속도벡터 vf 에 대해서는 랑데부나 요격 등의 임무 조건에 따라 벡터의 방향과 크기가 요구조건으로 제시될 수 있다.

 

 

대부분의 종말 유도 단계에서는 중력 가속도를 상수라고 가정할 수 있지만 중력 가속도를 위치의 함수로 모델링해야 하는 경우도 있을 수 있다. 예를 들면 임무 비행시간 동안 비행체 또는 미사일의 운동에 상당한 고도 변화를 수반하는 경우를 들 수 있겠다. 이러한 경우에 제어 가속도가 중력 가속도를 직접적으로 보상할 수 있다는 가정하에 식 (25)의 최적 유도법칙을 수정할 수 있다. 즉, 식 (1)의 제어 가속도를 다음과 같이 분할한다면,

 

(27)a=a1g(r)

 

동일한 유도 방법을 통하여 식 (25)를 다음과 같이 수정할 수 있다.

 

(28)a(t)=6tgo2(rf(r(t)+tgov(t)))2tgo(vfv(t))g(r)

 

식 (1)의 운동 방정식은 또한 일정한 속도로 비행하는 목표물과의 상대 운동 방정식과 형태가 동일하므로 식 (25)와 (27)의 유도법칙은 고정된 목적지 뿐만 아니라 일정한 속도로 비행하는 목표물을 요격하는 데도 사용할 수 있다. 그림은 미사일과 적 항공기간의 기하학적인 관계를 보여준다. {i} 는 관성좌표계를 나타내며, rm,rT 는 각각 미사일과 적 항공기의 위치벡터이고, vm,vT 는 각각 미사일과 적 항공기의 속도벡터이다. am 은 미사일의 가속도 명령(command)이다. r=rTrm, v=vTvm 은 각각 미사일과 적 항공기간의 상대 거리벡터와 상대 속도벡터이다.

 

 

그러면 다음과 같은 운동 방정식이 성립한다.

 

(29)r˙=vv˙=gam

 

식 (29)와 (1)의 차이는 가속도 벡터의 부호가 서로 반대라는 것 밖에 없다.

 

 

댓글