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

[Continuous-Time] 최적제어 문제

by 세인트 워터멜론 2022. 12. 13.

최적제어(optimal control)문제는 여러 가지 물리적인 제약조건을 만족하면서 어떤 성능지표(performance index) 또는 목적함수(objective function)를 최적화하도록 동적 시스템(dynamic system)의 제어변수(control variable)을 결정하는 문제이다.

 

 

제약조건(constraints)은 동적 시스템의 동역학과 함께 시스템 제어변수 및 상태변수의 경로 제약조건(path constraints), 상태변수의 초기값(initial value) 및 최종값(final value)에 관한 제약조건(constraint on the initial and final states)을 모두 포함한다. 목적함수는 설계자가 의도한대로 시스템을 움직이면서 의도한 성능을 발휘할 수 있도록, 상태변수와 제어변수에 관한 비용함수(cost function)로 주어지는 것이 일반적이다. 비용함수를 최소화하는 것이 목적함수를 최적화하는 것이다. 최적제어 문제를 수학식으로 표현하면 다음과 같다. 우선 시스템의 동역학은 다음과 같이 미분방정식으로 표현된다.

 

\[ \dot{\mathbf{x}}(t)= \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t), t) \tag{1} \]

 

여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\) 는 상태변수 벡터, \(\mathbf{u}(t) \in \mathbb{R}^p\) 는 제어변수 벡터이고 \(t\) 는 연속시간(continuous-time)을 의미한다. 제어변수가 최소화해야 할 목적함수는 다음과 같이 주어진다.

 

\[ J= \phi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f ) + \int_{t_0}^{t_f} g(\mathbf{x}(t), \mathbf{u}(t), t) \ dt \tag{2} \]

 

여기서 \(t_0\) 는 초기시간(initial time), \(t_f\) 는 최종시간(final time)이며, \(g(\mathbf{x}(t), \mathbf{u}(t), t)\) 는 운행비용(running cost), \(\phi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f )\) 는 초기시간과 최종시간에서의 비용이다. 목적함수는 제어 설계자가 의도한 대로 시스템이 반응하도록 정해진다. 초기 및 최종 상태변수 제약조건은 상태변수의 초기값과 최종값의 함수로서 다음과 같이 부등식으로 주어진다.

 

\[ \psi_{min} \le \psi (\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f ) \le \psi_{max} \tag{3} \]

 

여기서 \(\psi \in \mathbb{R}^m\) 로서 구성 성분이 \(m\) 개인 벡터이며 부등식은 벡터를 구성하는 각 성분의 부등식으로 해석한다. 경로 제약조건(path constraint)은 상태변수와 제어변수의 함수로서 시스템의 경로에 가해지는 제약조건을 다음과 같이 부등식으로 나타낸다.

 

\[ \mathbf{c}_{min} \le \mathbf{c}( \mathbf{x}(t), \mathbf{u}(t), t) \le \mathbf{c}_{max} \tag{4} \]

 

최적제어 문제는 동역학, 상태변수 제약조건, 경로 제약조건을 만족하면서 목적함수를 최소화시키는 제어변수 \(\mathbf{u}(t), \ t \in [t_0, t_f]\) 를 구하는 것이다.

일반 최적제어 문제는 해석적으로 접근하기가 곤란하므로, 문제를 조금 단순화시켜 보도록 한다. 일반 최적제어 문제에서 경로 제약조건을 없애고, 초기상태 및 최종 상태변수 제약조건을 등식 방정식으로 바꾼다. 그러면 최적제어 문제는 다음과 같이 단순화된다. 물론 단순화됐다고 해서 문제를 해석적으로 쉽게 풀 수 있다는 것은 아니다.

 

\[ \begin{align} & \min J = \phi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f ) + \int_{t_0}^{t_f} g(\mathbf{x}(t), \mathbf{u}(t), t) \ dt \tag{5} \\ \\ & \mbox{subject to: } \ \dot{\mathbf{x}}(t)= \mathbf{f}(\mathbf{x}(t), \mathbf{u}(t), t) \\ \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \psi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f ) = 0 \end{align} \]

 

식 (5)에 상태변수의 초기값과 최종값에 대한 함수가 \(\phi\) 와 \(\psi \) 등 두 개가 있는데, \(\phi\) 는 스칼라 함수로서 목적함수의 일부이므로 그 값을 작게 만드는 게 목적이 되는 것이고,\(\psi\) 는 벡터함수로서 제약조건이므로 반드시 \(0\) 으로 만들어야 한다는 점에서 차이가 있다.

최적제어 문제를 풀기 위하여 라그랑지 곱수(Lagrange multiplier)를 도입하여 동역학식과 제약조건을 목적함수에 포함시킨다. 라그랑지 곱수 \(\lambda (t) \in \mathbb{R}^n\) 는 동역학 식에, \(\nu \in \mathbb{R}^m\) 는 제약조건에 연결시키면, 목적함수를 다음과 같이 비제약(unconstrained) 목적함수로 바꿀 수 있다.

 

\[ \begin{align} \tilde{J} &= \phi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f ) + \nu^T \psi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f ) \tag{6} \\ \\ & \ \ + \int_{t_0}^{t_f} \left[ g(\mathbf{x}(t), \mathbf{u}(t), t) +\lambda^T (t)\{ \mathbf{f}( \mathbf{x}(t), \mathbf{u}(t), t)- \dot{\mathbf{x}} \} \right] \ dt \end{align} \]

 

해밀토니안(Hamiltonian) 함수를 다음과 같이 정의하면,

 

\[ H(\mathbf{x}, \mathbf{u}, \lambda, t)= g(\mathbf{x}, \mathbf{u}, t) + \lambda^T \mathbf{f}( \mathbf{x}, \mathbf{u}, t) \tag{7} \]

 

목적함수 \(\tilde{J}\) 는 다음과 같이 된다.

 

\[ \begin{align} \tilde{J} &= \phi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f ) + \nu^T \psi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f ) \tag{8} \\ \\ & \ \ + \int_{t_0}^{t_f} \left[ H( \mathbf{x}, \mathbf{u}, \lambda, t) -\lambda^T \dot{\mathbf{x}} \right] \ dt \end{align} \]

 

 

 

먼저, 비제약 목적함수 \(\tilde{J}\) 를 구성하는 모든 변수 \(\mathbf{x}, \mathbf{u}, \lambda, \nu, \dot{\mathbf{x}}, t\) 의 증분(increment)에 따른 목적함수의 일차(first-order) 증분 \(d\tilde{J}\) 를 구해보도록 한다.

 

\[ \begin{align} d\tilde{J} &= \left( \frac{\partial \phi }{ \partial \mathbf{x}} + \left( \frac{\partial \psi }{ \partial \mathbf{x}} \right) ^T \nu \right) _{t_0}^T d \mathbf{x}(t_0 )+ \left( \frac{\partial \phi }{ \partial t} + \left( \frac{\partial \psi }{ \partial t} \right) ^T \nu \right) _{t_0}^T d t_0 \tag{9} \\ \\ & \ \ \ + \left( \frac{\partial \phi }{ \partial \mathbf{x}} + \left( \frac{\partial \psi }{ \partial \mathbf{x}} \right) ^T \nu \right) _{t_f}^T d \mathbf{x}(t_f )+ \left( \frac{\partial \phi }{ \partial t} + \left( \frac{\partial \psi }{ \partial t} \right) ^T \nu \right) _{t_f}^T d t_f \\ \\ & \ \ \ + \psi^T d \nu +(H- \lambda^T \dot{\mathbf{x}} )_{t_f } dt_f-(H-\lambda ^T \dot{\mathbf{x}})_{t_0 } dt_0 \\ \\ & \ \ \ + \int_{t_0}^{t_f} \left[ \left( \frac{\partial H}{\partial \mathbf{x}} \right)^T \delta \mathbf{x} +\left( \frac{\partial H}{\partial \mathbf{u}} \right)^T \delta \mathbf{u} - \lambda^T \delta \dot{\mathbf{x}}+\left( \frac{\partial H}{\partial \lambda}-\dot{\mathbf{x}} \right)^T \delta \lambda \right] \ dt \end{align} \]

 

위 식에서 \(\delta \dot{\mathbf{x}}\) 을 부분적분법을 이용하여 다음과 같이 바꾼다.

 

\[ \begin{align} -\int_{t_0}^{t_f} \lambda^T \delta \dot{\mathbf{x}} \ dt &= - \lambda^T (t_f ) \delta \mathbf{x}(t_f ) + \lambda^T (t_0 ) \delta \mathbf{x}(t_0 ) \tag{10} \\ \\ & \ \ \ \ \ +\int_{t_0}^{t_f} \dot{\lambda}^T \delta \mathbf{x} \ dt \end{align} \]

 

여기서 변분(variation) \(\delta \mathbf{x}(t_f )\) 와 미분(differential) \(d \mathbf{x}(t_f )\), 그리고 \(\delta \mathbf{x}(t_0 )\) 와 \(d\mathbf{x}(t_0 )\) 는 서로 다르며 다음과 같은 관계식을 갖는다는 점에 주의해야 한다.

 

\[ \begin{align} & d \mathbf{x}(t_0 ) = \delta \mathbf{x}(t_0 )+ \dot{\mathbf{x}}(t_0 )dt_0 \tag{11} \\ \\ & d \mathbf{x}(t_f ) = \delta \mathbf{x}(t_f )+ \dot{\mathbf{x}}(t_f )dt_f \end{align} \]

 

 

식 (10)을 (9)에 대입하면 다음과 같다.

 

\[ \begin{align} d\tilde{J} &= \left( \frac{\partial \phi }{ \partial \mathbf{x}} + \left( \frac{\partial \psi }{ \partial \mathbf{x}} \right) ^T \nu +\lambda \right) _{t_0}^T d \mathbf{x}(t_0 ) + \left( \frac{\partial \phi }{ \partial t} + \left( \frac{\partial \psi }{ \partial t} \right) ^T \nu - \lambda^T \dot{\mathbf{x}} \right) _{t_0}^T d t_0 \tag{12} \\ \\ & \ \ \ + \left( \frac{\partial \phi }{ \partial \mathbf{x}} + \left( \frac{\partial \psi }{ \partial \mathbf{x}} \right) ^T \nu -\lambda \right) _{t_f}^T d \mathbf{x}(t_f )+ \left( \frac{\partial \phi }{ \partial t} + \left( \frac{\partial \psi }{ \partial t} \right) ^T \nu + \lambda^T \dot{\mathbf{x}} \right) _{t_f}^T d t_f \\ \\ & \ \ \ + \psi^T d \nu +(H-\lambda ^T \dot{\mathbf{x}} )_{t_f} dt_f -(H-\lambda^T \dot{\mathbf{x}} )_{t_0} dt_0 \\ \\ & \ \ \ + \int_{t_0}^{t_f} \left[ \left( \frac{\partial H}{\partial \mathbf{x}} +\dot{\lambda} \right)^T \delta \mathbf{x} +\left( \frac{\partial H}{\partial \mathbf{u}} \right)^T \delta \mathbf{u} +\left( \frac{\partial H}{\partial \lambda}-\dot{\mathbf{x}} \right)^T \delta \lambda \right] \ dt \end{align} \]

 

정리하면 위 식은 다음과 같이 된다.

 

\[ \begin{align} d\tilde{J} &= \left( \frac{\partial \phi }{ \partial \mathbf{x}} + \left( \frac{\partial \psi }{ \partial \mathbf{x}} \right) ^T \nu +\lambda \right) _{t_0}^T d \mathbf{x}(t_0 ) + \left( \frac{\partial \phi }{ \partial t} + \left( \frac{\partial \psi }{ \partial t} \right) ^T \nu -H \right) _{t_0}^T d t_0 \tag{13} \\ \\ & \ \ \ + \left( \frac{\partial \phi }{ \partial \mathbf{x}} + \left( \frac{\partial \psi }{ \partial \mathbf{x}} \right) ^T \nu -\lambda \right) _{t_f}^T d \mathbf{x}(t_f )+ \left( \frac{\partial \phi }{ \partial t} + \left( \frac{\partial \psi }{ \partial t} \right) ^T \nu +H \right) _{t_f}^T d t_f \\ \\ & \ \ \ + \psi^T d \nu \\ \\ & \ \ \ + \int_{t_0}^{t_f} \left[ \left( \frac{\partial H}{\partial \mathbf{x}} +\dot{\lambda} \right)^T \delta \mathbf{x} +\left( \frac{\partial H}{\partial \mathbf{u}} \right)^T \delta \mathbf{u} +\left( \frac{\partial H}{\partial \lambda}-\dot{\mathbf{x}} \right)^T \delta \lambda \right] \ dt \end{align} \]

 

라그랑지(Lagrange) 이론에 의하면 비제약 목적함수 \(\tilde{J}\) 가 최소일 때, 본래 목적함수 \(J\) 가 최소가 된다. 따라서 본래 목적함수 \(J\) 가 최소가 되기 위한 필요조건은 \(d\tilde{j}=0\) 이므로, 위 식에서 각 변수 증분의 계수를 \(0\) 으로 놓으면 최적제어의 필요조건(necessary condition)을 얻을 수 있다. 위 식의 적분항에서 최적 조건을 구하면,

 

\[ \begin{align} \dot{\mathbf{x}} &= \frac{\partial H}{\partial \lambda} = \mathbf{f}(\mathbf{x}, \mathbf{u}, t) \tag{14} \\ \\ -\dot{\lambda} &= \frac{\partial H}{\partial \mathbf{x}} = \left( \frac{\partial \mathbf{f}}{\partial \mathbf{x}} \right) ^T \lambda + \frac{\partial g}{\partial \mathbf{x}} \tag{15} \\ \\ 0 &= \frac{\partial H}{\partial \mathbf{u}} = \left( \frac{\partial \mathbf{f}}{\partial \mathbf{u}} \right) ^T \lambda + \frac{\partial g}{\partial \mathbf{u}} \tag{16} \end{align} \]

 

이 된다. 식(14)는 시스템의 동역학인 상태변수 미분방정식이고, 식(15)는 라그랑지 곱수의 미분방정식으로서 코스테이트(costate) 방정식이라고 한다. 식(16)은 정정조건(stationary condition)이라고 한다. 이 식으로부터 최적 제어변수를 계산할 수 있다.

 

 

초기 및 최종 상태변수 제약조건은 식 (13)의 다섯 번째 항으로부터 구할 수 있다.

 

\[ \psi(\mathbf{x}(t_0 ), \mathbf{x}(t_f ), t_0, t_f )=0 \tag{17} \]

 

초기시간과 최종시간에서 경계조건(boundary condition)은 식 (13)의 첫 번째에서 네 번째 항까지로 부터 구할 수 있다.

 

\[ \begin{align} & \left( \frac{\partial \phi }{ \partial \mathbf{x}} + \left( \frac{\partial \psi }{ \partial \mathbf{x}} \right) ^T \nu +\lambda \right) _{t_0}^T d \mathbf{x}(t_0 ) + \left( \frac{\partial \phi }{ \partial t} + \left( \frac{\partial \psi }{ \partial t} \right) ^T \nu -H \right) _{t_0}^T d t_0 = 0 \tag{18} \\ \\ & \left( \frac{\partial \phi }{ \partial \mathbf{x}} + \left( \frac{\partial \psi }{ \partial \mathbf{x}} \right) ^T \nu -\lambda \right) _{t_f}^T d \mathbf{x}(t_f )+ \left( \frac{\partial \phi }{ \partial t} + \left( \frac{\partial \psi }{ \partial t} \right) ^T \nu +H \right) _{t_f}^T d t_f =0 \tag{19} \end{align} \]

 

경계조건은 초기시간과 최종시간이 설정된(fixed) 값으로 주어지는지 아닌지, 그리고 초기 및 최종 상태변수가 설정된 값으로 주어지는지 아닌지에 따라 다양하게 적용할 수 있다. 만약 최종시간이 미리 설정된 값으로 주어진다면 위 식에서 \(dt_f=0\) 이 된다. 만약 상태변수의 최종값이 설정된 값이 아니고 계산해야 되는 값(free state)이라면 \(d \mathbf{x}(t_f )\ne 0\) 으로 놓는다.

해밀토니안(Hamiltonian)의 미분은 다음과 같이 된다.

 

\[ \frac{dH(\mathbf{x}, \mathbf{u}, \lambda ,t)}{dt} = \frac{\partial H}{\partial t}+ \left( \frac{\partial H}{\partial \mathbf{x}} \right)^T \dot{\mathbf{x}}+ \left( \frac{\partial H}{\partial \mathbf{u}} \right)^T \dot{\mathbf{u}}+\left( \frac{\partial H}{\partial \lambda} \right)^T \dot{\lambda} \tag{20} \]

 

식 (14), (15), (16)에 의하면 위 식은

 

\[ \begin{align} \frac{dH(\mathbf{x}, \mathbf{u}, \lambda ,t)}{dt} &= \frac{\partial H}{\partial t}+ \left( \frac{\partial H}{\partial \mathbf{x}} \right)^T \mathbf{f}+ \mathbf{f}^T \dot{\lambda} \tag{21} \\ \\ &= \frac{\partial H}{\partial t}+ \left( \frac{\partial H}{\partial \mathbf{x}} +\dot{\lambda} \right)^T \mathbf{f} \\ \\ &=\frac{\partial H}{\partial t} \end{align} \]

 

이 된다. 만약 식 (5)에서 \(\mathbf{f}\) 와 \(g\) 가 명시적으로 시간의 함수가 아니라면, 즉

 

\[ \begin{align} & \mathbf{f}(\mathbf{x}, \mathbf{u},t) = \mathbf{f}(\mathbf{x}, \mathbf{u}) \\ \\ & g(\mathbf{x}, \mathbf{u},t)=g(\mathbf{x}, \mathbf{u}) \end{align} \]

 

이라면 해밀토니안도 명시적으로 시간의 함수가 아니므로 식 (20)은 다음과 같이 된다.

 

\[ \frac{dH}{dt} = \frac{\partial H}{\partial t} = 0 \tag{22} \]

 

따라서 해밀토니안을 최적 궤적 \( ( \mathbf{x}^* (t), \mathbf{u}^* (t))\) 상에서 계산하면 상수(constant)가 됨을 알 수 있다.

지금까지 목적함수가 최소가 되기 위한 필요조건을 구했는데, 목적함수가 최소가 되기 위해서는 목적함수의 이차(second-order) 증분이 \(0\) 보다 커야 한다는, 즉, \(d^2 J \gt 0\) 이라는 충분조건(sufficient condition)이 더 필요하다. 이차 증분을 계산하는 과정이 좀 복잡한데, 결론적으로 충분조건은 다음과 같이 해밀토니안의 헤시안(Hessian)이 정정행렬(positive definite matrix)이 되어야 한다는 것으로 귀결된다. 즉,

 

\[ \frac{\partial }{\partial \mathbf{u}} \left( \frac{\partial H}{\partial \mathbf{u}} \right) \gt 0 \tag{23} \]

 

이다. 만약 제어변수가 어떤 허용된 제어변수 집합에 속해있다는 제약조건이 있다면, 즉 \(\mathbf{u} \in \mathcal{U}\) 라면, 최적 제어변수를 정정조건 \(\partial H/\partial \mathbf{u}=0\) 으로 구할 수가 없다. 폰트리아진(Pontryagin)은 이런 경우에 정정조건만 아래와 같이 보다 일반적인 조건으로 바꾸면 된다는 것을 증명하였다.

 

\[ \mathbf{u}^* (t)=\arg \min_{\mathbf{u} \in \mathcal{U}} H(\mathbf{x}^* (t), \mathbf{u}, \lambda^* (t), t) \tag{24} \]

 

여기서 위첨자 \(^*\) 는 최적값을 의미하고 \(\mathcal{U}\) 는 허용된 제어변수의 집합이다. 위 식을 폰트리아진의 최소원리(Pontryagin's minimum principle)라고 한다.

폰트리아진의 최소원리에 의하면, 최적 제어변수는 상태변수와 코스테이트의 최적값에 대해서 해밀토니안을 최소화시키는 제어변수 집합중의 한 원소가 된다. 폰트리아진의 최소원리는 다음과 같이 표현할 수도 있다.

 

\[ H(\mathbf{x}^*, \mathbf{u}^*, \lambda^*, t) \le H(\mathbf{x}^*, \mathbf{u}, \lambda^*, t) , \ \ \ \mathbf{u}\in \mathcal{U} \tag{25} \]

 

여기서 위 식은 \( H(\mathbf{x}^*, \mathbf{u}^*, \lambda^*, t) \le H(\mathbf{x}, \mathbf{u}, \lambda, t) \) 를 의미하는 것이 아니라는 점에 주의해야 한다. 폰트리아진의 최소원리는 정정조건(stationary condition) 보다 더 일반적인 조건이기 때문에 제어변수에 제약이 없는 경우에도 물론 적용할 수 있다. 허용된 제어변수의 집합을 무한대로 확장시키면 되기 때문이다. 또한 폰트리아진의 최소원리는 해밀토니안을 최소값으로 만드는 제어변수를 구하는 것이기 때문에, 해밀토니안의 헤시안(Hessian)이 정정행렬(positive-definite matrix)이 되어야 한다는 충분조건도 포함하고 있다.

일반적으로 간단한 문제의 경우에도 최적제어 해는 계산하기가 매우 어려우며 오픈-루프 제어(open-loop control) 형태로 산출된다.

 

 

댓글