사거리 최대화와 같은 최적화 문제의 해법은 크게 나뉘어 직접법(Direct method)과 간접법(Indirect method)의 두 가지 방식으로
연구되어 왔다. 직접법은 상태변수와 제어변수를 매개변수로 이산화하여 최적화 문제를 비선형 프로그램(Non-Linear Programming) 문제로
변환하는 접근방식으로, 구속조건을 다루기 용이한 구조이기 때문에 넓은 범위의 최적화문제에 적용되어왔다. 한편, 간접법을 이용한 최적화문제의 해법은
기본적으로 폰트랴긴의 최대값 원칙(Pontryagin’s Maximum Principle)에 의거하여 해밀터니안 경계치 문제(Hamiltonian
Boundary Value Problem)를 푸는 것으로 귀결되며, 해의 정확도가 높으며 1차 미분의 필요조건만 만족하면 해를 구할 수 있는 장점이
있다. 단, 최적화 변수의 초기값이 최적해와 너무 다르게 설정될 경우 최적화 알고리듬이 발산하기 쉽다는 것이 간접법의 단점이다. 그러나 이 연구에서
해결하고자 하는 문제의 최적화 변수는 양력계수, 조종날개 전개시각, 탄착시각이며 양력계수의 초기값은 트림점의 제한값 부근으로, 조종날개 전개 시각의
초기값은 탄도 정점 부근 도달 시각으로 각각 부여하는 것으로 위에서 언급한 간접법의 단점을 극복할 수 있다. 따라서 이 연구에서는 간접법을 근간으로
한 최적 유도 기법을 사용하여 사거리 최대화를 위한 최적화 문제를 해결하였다.
3.1 최적화 문제의 정의
2장에 기술한 것과 같이 지능화 탄약의 운동방정식은 2가지로 표현되며, 이는 사거리 최적화를 수행하기 위해 다점 경계치문제(Multi-Point Boundary
Value Problem)를 풀어야 한다는 것을 의미한다. 그러나 식 (7)과 같이 조종날개 전개 전의 운동방정식 f1은 입력 uL에 의존하지 않기 때문에, 온전히 초기 상태변수와 시간의 함수(단, 시간에 대해 non-explicit)이다. 따라서 조종날개 전개 직전과 직후의
상태변수에 대하여 최적화 문제의 경계조건을 조종날개 전개시각 ti에 대하여 정의하면, 조종날개 전개 후의 운동방정식 f2의 관점으로 최적화 문제를 다음과 같은 Mayer 형태로 기술할 수 있다.
여기서, $t _ { 0 } = 0$ 은 포발사 시각이며, $t _ { i }$는 조종날개의 전개시각, $t _ { f }$는 탄착시각으로 $t _
{ i }$, $t _ { f }$는 $U _ { L }$과 같은 최적화 변수에 해당한다. 이 문제에서는, 시각 $t _ { i }$에서의 경계조건으로서
$f _ { i }$에 관한 시간의 함수로 부가함으로써 다점 경계치 문제를 2점 경계치문제로 간주할 수 있다는 점에 주목하자. 그런데 입력변수 $u
_ { L }$에 공력학적인 한계를 고려하여 부등식 구속조건 $\left| u _ { L } \right| \leqq u _ { L \max }$을
부가해야 한다. 이러한 경우, 폰트랴긴의 최대값 원칙의 접근방식을 사용할 수도 있으나, 부등식 구속조건을 $u _ { L }$에 대한 새로운 입력
$u _ { d }$를 정의하여 다음과 같은 등식 구속조건으로 변환하는 방법을 사용할 경우 $u _ { L }$값에 따른 경우의 수를 고려하지 않아도
되며, 최적화 프로그래밍의 범용성을 높일 수 있다(16).
이때, $u = \left[ u _ { L } , u _ { d } \right] ^ { \top }$로 정의하였고, $u _ { Lmax } $는
조종날개 전개 시 탄약의 속도를 고려하였을 때 마하수 $M (v,h)$에 무관한 상수로 결정하였다. 따라서 운동방정식의 입력에 대한 구속조건 (10)은 상태변수와 무관계한 오로지 입력 $u$만의 함수이다.
결론적으로 목적함수 $J$에 대하여 입력에 대한 구속조건 $C(u)$, 경계조건 $\chi \left( x _ { i } \right)$, $\psi
\left( x _ { f } \right)$, 그리고 운동방정식 $\dot { x } = f _ { 2 }$를 병합하여 수정된 목적함수 $\overline
{ J }$는 다음과 같이 표현할 수 있다.
단, $H = \lambda ^ { \top } f _ { 2 } + \mu ^ { \top } C$
여기서 $\mathcal { V }$, $\eta$, $\mu$, $\lambda$는 라그랑쥬 미정계수이며, $\mathcal { V }$는 스칼라
상수, $\eta$는 (4x1)차원 벡터 상수, $\mu$, $\lambda$는 시간에 대한 (4x1)차원 벡터함수이다.
3.2 사거리 최대화 문제의 수치적 해법
(8)과 같이 표현된 지능화 탄약의 운동방정식은 비선형 시스템이기 때문에 (9)로 표현된 최적화 문제의 해를 해석적으로 구하기가 어려우므로, 이 연구에서는 수치적 해법을 이용하여 최적화를 수행한다. 수치 알고리듬으로서, 최적해까지의
수렴속도는 빠르지 않으나 수학적으로 적용이 용이한 steepest descent법을 적용하였다(17).
(11)과 같이 정의된 수정된 목적함수에 대하여, 각 변수들의 미소변화량에 대한 $\overline { J }$의 미소변화량은 다음과 같이 표현된다.
단, 위 식에서 $\mathcal { V }$, $\eta$, $\mu$, $\lambda$와 같은 라그랑쥬 미정계수의 미소변화량의 계수는 과 동일하기
때문에 생략하였다. $\overline { J }$가 최소점이 되는 필요조건은 (12)의 미소변화량의 계수가 0이 되는 것이므로, 최적화를 위한 해석적 필요조건은 경계조건 및 구속조건 (9), (10)을 포함하여 다음과 같이 나타낼 수 있다.
그런데 수치적으로 문제를 풀 경우, 최적화하여야 할 변수는 $u$, $t _ { i }$, $t _ { f }$이므로 (14)의 좌변은 $\overline { J }$를 최대화하는, $u$, $t _ { i }$, $t _ { f }$에 대한 steepest ascent에
해당한다. 따라서 (12)를 만족시키기 위하여 ((14)를 $\delta u$, $\delta t _ { i }$, $\delta t _ { f }$를 다음과 같이 정의하여 대체한다.
단, $\alpha _ { u }$, $\alpha _ { t _ { i } }$, $\alpha _ { t _ { f } }$는 충분히 작은 상수이다.
(15)와 같이 $u$, $t _ { i }$, $t _ { f }$의 값이 변동하였을 때 $\overline { J }$의 값이 가장 급격하게 감소하는
방향의 기울기를 $\delta u$, $\delta t _ { i }$, $\delta t _ { f }$에 대입함으로써 극소점(해)을 찾을 수 있다.
다음으로 라그랑쥬 미정계수를 구하기 위하여 $u$, $t _ { i }$, $t _ { f }$에 대한 구속조건 및 경계조건의 미소변화량에 대한 식을
표현하면 다음과 같다.
(15)를 (16)에 대입한 후 (13)과 연계하면 라그랑쥬 미정계수는 다음과 같이 나타낼 수 있다.
단, $\lambda _ { \nu _ { 1 } } = \Phi _ { \lambda } [ 0,0,0,1 ] ^ { \top }$, $\lambda
_ { \nu _ { 2 } } = \Phi _ { \lambda } [ 0,0,-1,0 ] ^ { \top }$, $\Phi _ { \lambda
} = \Phi _ { \lambda } \left( t ^ { - } , t _ { f } \right)$는 역시간 $t ^ { - }$에 대한
$\lambda$의 천이행렬(transition matrix),
$\mu _ { \nu _ { 1 } } = - \frac { \left( \frac { \partial C } { \partial u } \right)
\left( \frac { \partial f } { \partial u } \right) ^ { \top } \lambda _ { \nu _ {
1 } } \nu } { \left( \frac { \partial C } { \partial u } \right) \left( \frac { \partial
C } { \partial u } \right) ^ { \top } }$, $\mu _ { \nu _ { 2 } } = \frac { - \frac
{ d C } { \alpha _ { u } } - \left( \frac { \partial C } { \partial u } \right) \left(
\frac { \partial f } { \partial u } \right) ^ { \top } \lambda _ { \nu _ { 2 } } }
{ \left( \frac { \partial C } { \partial u } \right) \left( \frac { \partial C } {
\partial u } \right) ^ { \top } }$
여기까지 정의한 수식을 이용하여 최적화 해를 구하는 알고리듬은 다음과 같으며, 이를 그림. 2와 같은 순서도로 도식화하였다.
그림. 2. 최적화 알고리듬의 순서도
Fig. 2. The flow chart of the optimization algorithm
(a) 적당한 입력 $u$, $t _ { i }$, $t _ { f }$를 정한다.
(b) 운동방정식 로 시간방향으로 상태량을 구한 뒤, (13)을 이용하여 역시간 방향으로 $\lambda$의 천이행렬 $\Phi _ { \lambda }$를 구한다.
(c) 라그랑쥬 미정계수 $\nu$, $\mu$, $\lambda$, $\eta$를 차례대로 계산한다.
(d) (15)에 의하여 $\alpha _ { u }$, $\alpha _ { t _ { i } }$, $\alpha _ { t _ { f } }$를 변화시키며
$u \leftarrow u + \delta u$, $t _ { i } \leftarrow t _ { i } + \delta t _ { i }$,
$t _ { f } \leftarrow t _ { f } + \delta t _ { f }$와 같이 갱신하여 (9)의 $J$를 최소로 하는 $u ^ { * }$, $t _ { i } ^ { * }$, $t _ { f } ^ { * }$를 찾는다(직선탐색).
(e) 충분히 작은 크기의 $\epsilon _ { J }$에 대하여 $| d \overline { J } | < \epsilon _ { J }$,
$\psi \left( x _ { f } \right) = 0$의 조건을 동시에 만족하면 알고리듬을 종료하고, 만족하지 못하면 $u \leftarrow
u ^ { * }$, $t _ { i } \leftarrow t _ { i } ^ { * }$, $t _ { f } \leftarrow t _ {
f } ^ { * }$와 같이 갱신하고 (b)로 돌아가서 알고리듬을 반복한다.