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

[Continuous-Time] 최적제어 예제

by 깊은대학 2022. 12. 14.

간단한 최적제어 문제를 풀어보고자 한다. 최적제어 문제는 최종시간이 설정된(fixed) 값으로 주어지는지 아닌지, 그리고 최종 상태변수가 설정된 값으로 주어지는지 아닌지에 따라 다양하게 분류할 수 있다. 대개의 경우 초기시간과 상태변수 초기값은 설정된 값으로 주어진다.

 

 

먼저 최종시간과 최종 상태변수가 모두 주어진 경우다. 연속시간 비선형 시스템의 최적제어의 필요조건을 정리한 다음 표에 의하면, 이 경우 경계조건은 자동으로 만족된다.

 

 

일정한 속력 V 로 움직이는 비행체가 있다. 제어 목적은 비행체가 출발지에서 출발하여 비행 시간 tf 가 경과한 후 목적지에 최소의 에너지를 사용하여 도착시키는 것이다. 그림에 비행체와 목적지, 출발지간의 기하하적인 관계가 나와 있다.

 

 

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

 

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

 

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

 

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

 

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

 

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

 

최적제어 문제의 기호에 맞게 초기 및 최종 상태변수 제약조건을 다시 써보자.

 

(4)ψ1=y(0)=0ψ2=θ(0)θ0=0ψ3=y(tf)=0ψ4=θ(tf)θf=0

 

해밀토니안(Hamiltonian) 함수는 다음과 같이 정의된다.

 

(5)H=12a2+λ1Vθ+λ2aV

 

그러면 코스테이트 방정식과 정정조건(stationary condition)을 다음과 같이 얻을 수 있다.

 

(6)λ˙1=Hy=0λ˙2=Hθ=λ1V0=Ha=a+λ2V

 

위 식으로부터 코스테이트와 최적 제어변수를 계산하면 다음과 같다.

 

(7)λ1=c1λ2=c1Vt+c2a=λ2V=c1tc2V

 

여기서 c1, c2 는 미지의 상수이다. 위 식을 시스템 운동 방정식에 대입하면 상태변수를 다음과 같이 계산할 수 있다.

 

(8)θ˙=aV=c1Vtc2V2θ(t)=c12Vt2c2V2t+c3(9)y˙=Vθ=c12t2c2Vt+c3Vy(t)=c16t3c22Vt2+c3Vt+c4

 

이제 미지수 c1, c2, c3, c4 를 구하면 된다.

 

 

식 (4)의 제약조건 식을 이용하면 4개의 미지수를 구할 수 있다.

 

(10)y(0)=0=c4θ(0)=θ0=c3y(tf)=0=c16tf3c22Vtf2+θ0Vtfθ(tf)=θf=c12Vtf2c2V2tf+θ0

 

c1, c2 는 다음과 같이 계산된다.

 

(11)c1=6V(θ0+θf)tf2c2=2V2(2θ0+θf)tf

 

따라서 최적 가속도 명령은 다음과 같다.

 

(12)a(t)=c1tc2V=6V(θ0+θf)tf2t2V(2θ0+θf)tf

 

식 (8)과 (9)에 의해 최적 경로는 다음과 같이 계산된다.

 

(13)y(t)=V(θ0+θf)tf2t3V(2θ0+θf)tft2+θ0Vtθ(t)=3(θ0+θf)tf2t22(2θ0+θf)tft+θ0

 

최적 목적함수 값은 다음과 같다.

 

(14)J(θ0,θf)=120tfa2(t) dt=2V2tf(θ02+θ0θf+θf2)

 

이번에는 최종 상태변수의 일부만 주어진 경우 최적제어를 구해보자. 위 예제에서 최종시간에서 y(tf) 은 주어지지만 θ(tf) 에 관한 제약조건은 없다면 어떻게 될까.

 

 

식 (3)을 수정한다.

 

(15)J=120tfa2(t) dt  y(0)=0, θ(0)=θ0  y(tf)=0

 

초기 및 최종 상태변수 제약조건도 다음과 같이 수정된다.

 

(16)ψ1=y(0)=0ψ2=θ(0)θ0=0ψ3=y(tf)=0

 

해밀토니안 함수는 식 (5)와 동일하다.

 

(17)H=12a2+λ1Vθ+λ2aV

 

따라서 코스테이트 방정식과 정정조건(stationary condition)도 동일하다.

 

(18)λ˙1=Hy=0λ˙2=Hθ=λ1V0=Ha=a+λ2V

 

코스테이트와 최적 제어변수도 같다.

 

(19)λ1=c1λ2=c1Vt+c2a=λ2V=c1tc2V

 

시스템 운동 방정식에 대입하여 계산한 상태변수도 식 (8), (9)와 동일하다.

 

(20)y(t)=c16t3c22Vt2+c3Vt+c4θ(t)=c12Vt2c2V2t+c3

 

여기서 c1, c2, c3, c4 는 미지의 상수이다. 이 미지수를 계산하려면 식 4개가 필요하다. 하지만 식 (4)와 달리 식 (16)으로 주어지는 제약조건은 3개로서 1개가 부족하다.

 

 

최종시간 t=tf 에서의 경계조건에 의하면 y(tf) 는 정해지고 θ(tf) 는 계산해야 하므로, dtf=0, dy(tf)=0, dθ(tf)0 이다. 따라서 표에 있는 경계조건 식에 의하면

 

(21)((ψx)Tνλ)tfTdx(tf)=0λ2(tf) dθ(tf)=0    λ2(tf)=0

 

가 된다. 따라서 미지수를 풀 수 있는 식이 하나가 더 추가되었다.

일단 식 (16)의 초기 제약을 식 (20)에 대입하면 상태변수 초기값을 위 식에 대입하면 다음과 같이 2개의 미지수를 계산할 수 있다.

 

(22)y(0)=0=c4θ(0)=θ0=c3

 

식 (21)과 (19)로부터 미지수 c2 는 다음과 같이 계산된다.

 

(23)λ2(tf)=0=c1Vtf+c2  c2=c1Vtf

 

식 (16)의 최종 제약 식에 의하면

 

(24)y(tf)=0=c16tf3c22Vtf2+θ0Vtf=c13tf3+θ0Vtf  c1=3θ0Vtf2

 

이 되고, 이를 식 (23)에 대입하면

 

(25)c2=3θ0V2tf

 

가 된다. 따라서 최적 가속도 명령은 다음과 같다.

 

(26)a(t)=c1tc2V=3θ0Vtf2t3θ0Vtf

 

최적 경로는 다음과 같다.

 

(27)y(t)=θ0V2tf2t33θ0V2tft2+θ0Vtθ(t)=3θ02tf2t23θ0tft+θ0

 

최종 시간에서 최적 비행 방향각은 다음과 같다.

 

(28)θ(tf)=θ02

 

이 값은 초기시간과 최종시간에서 비행각이 θ0θf 로 설정되었을 때 계산된 최적 목적함수 값인 식 (14)에서 J(θ0,θf) 에서 θf 에 대한 최소값을 구한 것과 같다. 즉,

 

J(θ0,θf)θf=0=θ0+2θf    θf=θ02

 

최적 목적함수 값은 다음과 같다.

 

(29)J(θ0)=120tfa2(t) dt=3θ02V22tf

 

 

 

댓글