Pontryagin's minimum principle

From Wikipedia, the free encyclopedia

Pontryagin's minimum principle is used in optimal control theory to find the best possible control for taking a dynamic system from one state to another, especially in the presence of constraints for the state or input controls. It was formulated by the Russian mathematician Lev Semenovich Pontryagin and his students.

The principle states informally that the Hamiltonian must be minimized over \mathcal{U}, the set of all permissible controls. If u^*\in \mathcal{U} is the optimal control for the problem, then the principle states that:

H(x^*(t),u^*(t),\lambda^*(t),t) \leq H(x^*(t),u(t),\lambda^*(t),t), \quad \forall u \in \mathcal{U}, \quad t \in [t_0, t_f]

where x^*\in C^1[t_0,t_f] is the optimal state trajectory and \lambda^* \in BV[t_0,t_f] is the optimal costate trajectory. The result was first successfully applied into minimum time problems where the input control is constrained, but can also be useful in studying state-constrained problems.

Special conditions for the Hamiltonian can also be derived. When the final time tf is fixed and the Hamiltonian does not depend explicitly on time (\frac{\partial H}{\partial t} \equiv 0), then:

H(x^*(t),u^*(t),\lambda^*(t)) \equiv constant

and if the final time is free, then:

H(x^*(t),u^*(t),\lambda^*(t)) \equiv 0.

The result is sometimes also known as Pontryagin's maximum principle.

Source: D.E. Kirk. Optimal Control Theory, An Introduction. Prentice Hall, 1970.

[edit] Maximizing H

Being x the state of the system with input u, statisfying the following equation:

\dot{x}=f(x,u) \qquad x(0)=x_0 \quad t \in [0,T] \quad u(t) \in \mathcal{U}

One wishes to determine the function u, defined in [0,T], which maximizes the cost function J:

J(u)=\Psi(x(T))+\int^T_0 L(x,u) dt

In the optimal state trajectory, x * , u * and λ must verify the following conditions:

-\dot{\lambda'}(t)=\lambda'(t)f_x(x^*,u^*)+L_x(x^*,u^*)

\lambda'(T)=\Psi_x(x)|_{x=x(T)} \,

For each t, the Hamiltonian H defined by:

H(\lambda,x,u)=\lambda'(t)f(x,u)+L(x,u) \,

is maximized for the optimal value of u(t).

Here, the following notation is used:

\Psi_x(x)|_{x=x(T)}=\begin{bmatrix} \frac{\partial \Psi(x)}{\partial x_1} |_{x=x(T)} & \cdots & \frac{\partial \Psi(x)}{\partial x_n} |_{x=x(T)} \end{bmatrix}

L_x(x,u)=\begin{bmatrix} \frac{\partial L}{\partial x_1} & \cdots & \frac{\partial L}{\partial x_n} \end{bmatrix}

f_x(x,u)=\begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_n}{\partial x_1} & \ldots & \frac{\partial f_n}{\partial x_n} \end{bmatrix}

If one wishes to minimize the cost instead of maximizing, the cost function should be multiplied by − 1.