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

[Continuous-Time] LQR 예제 : 타격각 제어

by 깊은대학 2023. 4. 22.

일정한 속력 V 로 움직이는 비행체가 있다. 제어 목적은 출발지에서 출발하여 비행 시간 tf 가 경과한 후 목적지에 최소의 에너지를 사용하여 특정한 방향각 θf 로 비행체를 목적지 (xf, yf) 에 도착시키는 것이다. 비행체가 미사일이라면 θf를 타격각(impact angle)이라고 한다.

 

 

아래 그림에 비행체와 목적지, 출발지 간의 기하학적인 관계가 나와 있다.

 

 

비행체의 운동 방정식은 다음과 같다.

 

(1)x˙=Vcosθy˙=Vsinθθ˙=aV

 

여기서 a 는 비행체의 가속도로서 제어변수, θ 는 x-축과 비행체의 속도벡터 사이의 각으로서 비행 방향각을 나타낸다. θ 가 매우 작다고 가정한다면 위 식은 다음과 같이 선형화할 수 있다.

 

(2)x˙Vy˙Vθθ˙=aV

 

위 식에서 첫번째 식은 자명한 식이므로 최적제어 문제의 동역학 식에서 제외하도록 한다. 비용함수와 제약조건은 다음과 같다.

 

(3)J=120tfa2(t) dty(0)=0,  θ(0)=θ0,  y(tf)=yf,  θ(tf)=θf

 

이 문제는 최적제어 예제(https://pasus.tistory.com/232)에서 풀었던 문제와 거의 동일하지만, 이번에는 최종상태가 설정된 간략한 LQR 문제의 해(https://pasus.tistory.com/258)를 이용하여 풀어보도록 한다.

우선 시스템 운동 방정식 (2)를 LQR 문제에 맞게 상태변수 방정식으로 바꾼다.

 

(4)x˙=Ax+Bu

여기서

A=[0V00],  B=[01/V],  u=ax(t)=[yθ],  x(0)=[0θ0],  xf=[yfθf]

 

이다. 그러면 시스템 모델과 제약조건이 식 (4)로 주어지고 비용함수가 식 (3)으로 주어졌을 때 최적제어는 다음과 같이 계산할 수 있다.

 

(5)u(t)=R1BTeAT(tft)G1(t)(xfeA(tft)x(t))

 

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

 

(6)eA(tft)=I+A(tft)=[1V(tft)01]

 

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

 

(7)G(t)=ttfeA(tfτ)BR1BTeAT(tfτ) dτ=ttf[1V(tfτ)01][01/V][01/V][10V(tfτ)1] dτ=[(tfτ)3/3(tfτ)2/2V(tfτ)2/2Vτ/V2]ttf=[tgo3/3tgo2/2Vtgo2/2Vtgo/V2]

 

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

 

(8)G1(t)=12V2tgo4[tgo/V2tgo2/2Vtgo2/2Vtgo3/3]=[12/tgo36V/tgo6V/tgo24V2/tgo]

 

식 (6)과 (8)을 이용하면 식 (5)의 구성 부분을 다음과 같이 계산할 수 있다.

 

(9)BTeAT(tft)G1(t)=[6/tgo22V/tgo](10)xfeA(tft)x(t)=[yfy(t)Vtgoθ(t)θfθ(t)]

 

식 (9)와 (10)을 식 (5)에 대입하면 최적제어는 다음과 같다.

 

(11)a(t)=6tgo2(yfy(t))2Vtgo(2θ(t)+θf)

 

식 (11)은 타격각이 설정된 미사일의 유도법칙으로 응용될 수 있다.

 

 

댓글