How to handle endpoint constraints in optimal control problem?

218 Views Asked by At

I am have problems trying to solve a question in my assignment with endpoint constraints on the state, after googling this problem I was unable to find any examples in optimal control theory dealing with endpoint constraints in a clear enough manner. To make my question more general as to not have my assignment solved directly I have reformulated it into the optimal control problem with two states defined below:

\begin{gather} \max \int_0^Tf(u(t))\,dt \nonumber \\ \begin{aligned}[t] &\text{subject to:}\quad x'(t)=y(t),\quad x'(0) = 0 \\ &\phantom{\text{subject to:}\quad} y'(t) = u(t),\quad y'(0) = 0\\ &\phantom{\text{subject to:}\quad}x(T)+y(T) \geq 2 \end{aligned} \end{gather}

My approach:

I started by writing out the Hamiltonian:

$$ H(u(t),x(t),y(t),\lambda_1(t), \lambda_2(t))= f(u(t))+\lambda_1(t)y(t) + \lambda_2(t)u(t)$$

It is at this step that I'm stuck, I understand that it may be necessary to introduce Lagrange multipliers for the endpoint constraint but I don't know how.

If I do it directly I have:

$$ L(u(t),x(t),y(t),\lambda_1(t), \lambda_2(t), l(T))= f(u(t))+\lambda_1(t)y(t) + \lambda_2(t)u(t) + l(T)(x(T)+y(T)-2)$$

and I get a set of equations that are unrelated to each other and can't be solved. How should I deal with the endpoint constraint $x(T)+y(T) \geq2$ in this case?

1

There are 1 best solutions below

0
On

It's possible this approach will lead you to the same issue, but here's something that you might try. Try a change of variables $z = x + y$. This gives you \begin{align} z' &= x' + y' = y + u\\ z(0) &=x'(0) + y'(0) = 0\\ z(T) &=x(T) + y(T) \ge 2 \end{align} and so your optimal control problem can be restated as \begin{gather} \max \int_0^Tf(u(t))\,dt \nonumber \\ \begin{aligned}[t] &\text{subject to:}\quad z'(t) = y + u,\quad z'(0) = 0 \\ &\phantom{\text{subject to:}\quad} y'(t) = u(t),\ \ \quad y'(0) = 0\\ &\phantom{\text{subject to:}\quad}z(T) \geq 2 \end{aligned} \end{gather} Again, you might run into the same issue as before, but at least now your terminal constraint only includes one state variable.