Skip to content
Snippets Groups Projects
Name Last commit Last update
course
pkg/env
.gitignore
README.md
cimpa_procedure.md

CIMPA

Geometric and numerical methods in optimal control II

We present in this course the indirect simple shooting method based on the Pontryagin Maximum Principle (PMP) to solve a smooth optimal control problem. By smooth, we mean that the maximization condition of the PMP gives a control law in feedback form (i.e. with respect to the state and the costate) at least continuously differentiable. We use the nutopy package to solve the optimal control problem by simple shooting.

When the control law in feedback form is discontinuous, in the indirect context, we need to implement a multiple shooting method. We will give a brief introduction to the multiple shooting method during the computer session on a simple example.

Lecture

Lecture: The indirect simple shooting method (lecture notebook, lecture notes)

To get the lecture, you can either click on the first link or follow the procedure given below to download all the course, that is the lecture with the exercices.

Exercices

To do the exercices, please follow the procedure given below.

FAQ

References

Procedure to get the course and do the exercices

Remark. For the students of the CIMPA school, follow the procedure given here: CIMPA procedure.

In the following, ROOT is a variable standing for the root directory where the course repository will be stored. For example,

export ROOT=${HOME}/cimpa

The lecture and exercices are given in the form of python notebooks. To download all the course you can download all the files clicking on the links given above or use the git command (git). To clone the git repository and get the course:

cd $ROOT
git clone https://gitlab.irit.fr/toc/cimpa/gnmoc.git

The course uses python packages (see pkg/env directory). All theses packages may be installed in a conda environment for ease of use. If you do not have the conda command, please install miniconda or conda (conda is longer to install than miniconda). Then, create the cimpa conda environment:

cd $ROOT/gnmoc
conda env create -f pkg/env/cimpa-<YOUR_OS>.yaml

Where <YOUR_OS> must be replaced by linux, mac or windows, according to the platform used.

Activate the cimpa conda environment to get access to all the packages:

conda activate cimpa

Run jupyterlab and access to the lecture (in subdirectory course/lecture) and exercices (in subdirectory course/exercices):

jupyter-lab

Revoming the environment

You can remove the cimpa environment doing:

conda activate base
conda env remove --name cimpa