Initial Condition of Costate equation of Minimum Time Problem (Optimal Control)

dynamic programmingdynamical systemsoptimal control

Consider $$\dot{x}=\begin{bmatrix}0.1 & 1\\ 0 & 0.1\end{bmatrix}x+\begin{bmatrix}0\\1\end{bmatrix}u$$
with $x(0)=[1 \ \ \ \ 1]'$ and $x(T)=[0 \ \ \ \ 0]'$. Consider the minimum-time problem with fixed final state and free final time $$J(0) = \int_0^T 1 dt$$

To solve this problem,

  1. Hamiltonian: $$H=1+\lambda_1(0.1x_1+x_2)+\lambda_2(0.1x_2+u)$$
  2. Find costate equations: $$\begin{cases}-\dot{\lambda}_1=\frac{\partial H}{\partial x_1}=0.1\lambda_1 \\ -\dot{\lambda}_2=\frac{\partial H}{\partial x_2}=\lambda_1+0.1\lambda_2 \end{cases}$$
  3. Solve costate equations
    $$\begin{cases} \lambda_1(t)=C e^{-0.1(T-t)} \\ \lambda_2(t)=(C_1-Ct) e^{-0.1(T-t)} \end{cases}$$

My question is how to find the initial condition of costate equation?

Thanks!

Best Answer

Because the entire end state is given you need to solve for the initial conditions of the co-states such that it results in $x(T)=\begin{bmatrix}0 & 0\end{bmatrix}^\top$. Your system is linear and might have an algebraic solution, however those don't exist in general for nonlinear systems and one would have to use method like the shooting method.

Your current problem formulation is, I assume, not complete and it should also include constraints on $u$. Namely the "optimal" input $u^*$ can be found by solving

$$ u^* = \arg \min_u H(x,u,\lambda). $$

For example if the input is constraint by $|u|<1$ your problem has the solution

$$ u^* = -\text{sgn}(\lambda_2). $$

Using $u=u^*$ on the system yields a given trajectory for a given initial condition for the co-states. Every initial condition for the co-states will drive the system the to the corresponding end state, while minimizing the cost function. However, only one initial condition for the co-states will yield the desired end state.

Related Question