Home Downloads License About
OCPbasic and IPbasic

OCPbasic


OCPbasic is an optimizer for solving optimal control problems. OCPbasic is using a direct discretization method for state-constrained optimal control problems and an interior-point method for solving the corresponding nonlinear optimazation problem. The optimizer uses structure exploitation in the fully discretized, state constrained optimal control problem for solving the linear equation systems of the interior-point method.

Optimal Control Problem (OCP):

Find the states \(y : [t_0 , t_f] \rightarrow \mathbb{R}^{n_y}\), the parameter vector \(p \in \mathbb{R}^{n_p}\) and the controls \(u : [t_0 , t_f] \rightarrow \mathbb{R}^{n_u}\), such that $$\begin{align*} \varphi(y(t_0), y(t_f), p) \end{align*}$$ is minimal, subject to the nonlinear constraints $$\begin{align*} y'(t) &= F(t, y(t), u(t), p) && \\ \psi_{\min} &\leq \psi(y(t_0), y(t_f), p) \leq \psi_{\max}&& \\ v_{\min} &\leq v(t, y(t), u(t), p) \leq v_{\max} && \end{align*}$$ with \(t \in \left[t_0, t_f\right]\) and the box conditions $$\begin{align*} y_{\min} &\leq y(t) \leq y_{\max}&& t \in \left[t_0, t_f\right]\\ u_{\min} &\leq u(t) \leq u_{\max}&& t \in \left[t_0, t_f\right]\\ p_{\min} &\leq p \leq p_{\max}\text{.}&& \end{align*}$$ Herein, the functions $$\begin{align*} \varphi&: \mathbb{R}^{n_y} \times \mathbb{R}^{n_y} \times \mathbb{R}^{n_p} \rightarrow \mathbb{R} \\ F&: \left[t_0, t_f\right] \times \mathbb{R}^{n_y} \times \mathbb{R}^{n_u} \times \mathbb{R}^{n_p} \rightarrow \mathbb{R}^{n_y} \\ \psi&: \mathbb{R}^{n_y} \times \mathbb{R}^{n_y} \times \mathbb{R}^{n_p} \rightarrow \mathbb{R}^{n_\psi} \\ v&: \left[t_0, t_f\right] \times \mathbb{R}^{n_y} \times \mathbb{R}^{n_u} \times \mathbb{R}^{n_p} \rightarrow \mathbb{R}^{n_v} \text{.} \end{align*}$$ are user-defined functions.

For more information about OCPbasic get the usermanual OCPbasicUserMan.pdf


IPbasic


IPbasic is a basic implementation of an interior-point-method for optimizing nonlinear optimazation problems. It is using a sparse matrix layout defined by the software package lapack_wrapper. IPbasic is the nonlinear optimizer used by OCPbasic. Therefore it is designed for the use of self defined linear solvers.

Nonlinear Optimazation Problem (NLP):

Find the vector \(x \in \mathbb{R}^n\) to minimize $$\begin{align*} f(x) \end{align*}$$ subject to the nonlinear constraints $$\begin{align*} h(x) &= 0 \\ g(x) &\leq 0 \end{align*}$$ with \(f: \mathbb{R}^n \rightarrow \mathbb{R}\), \(h: \mathbb{R}^n \rightarrow \mathbb{R}^p\) and \(g: \mathbb{R}^n \rightarrow \mathbb{R}^q\).

For more information about IPbasic get the usermanual IPbasicUserMan.pdf


lapack_wrapper

An efficient wrapper for lapack and blas into c++, developed by Enrico Bertolazzi.

Find the original library at https://github.com/ebertolazzi/LapackWrapper.


The library lapack_wrapper used by OCPbasic and IPbasic as an interface to commen linear algebra packages.

Package: BLAS LAPACK
BLAS / LAPACK
OpenBLAS
Intel Math Kernel Library (MKL)
ATLAS ~ ~
Accelerate - Apple Developer ~ ~