Numerical Optimal Control (online)

Prof. Dr. Moritz Diehl -

The course’s aim is to give an introduction into numerical methods for the solution of optimal control problems in science and engineering. The focus is on both discrete time and continuous time optimal control in continuous state spaces. It is intended for a mixed audience of students from mathematics, engineering and computer science. This semester, Numerical Optimal Control is offered as a semi-online course.

Structure of the course

The course relies heavily on self-study based on the lecture videos, course manuscript and exercise sheets that were created in the Summer Semester 2017. Nonetheless we will meet every Friday, 14:00 to 16:00. The sessions will be dedicated to either Q&A with Prof. Diehl or exercises with the teaching assistant. This course has 6 ECTS credits. It is possible to do a project to get an additional 3 ECTS, i.e., a total of 9 ECTS for course+project.  For more information please contact Florian Messerer.

Exercises: The exercises are mainly computer based. Individual laptops with MATLAB and CasADi installed are required. Please note that the reserved room is not a computer pool. The exercises will be distributed beforehand. You can then prepare yourselves for the exercise session, where you can work on the exercises and get help and feedback from the teaching assistant. We may also discuss solutions of previous sheets if there is demand.

Final Evaluation: The final exam is a written closed book exam. Only pencil, paper, a calculator and two A4 sheets (4 pages) of self-chosen content are allowed (handwritten).

Projects: The optional project (3 ECTS) consists in the formulation and implementation of a self-chosen problem of Numerical Optimal Control, resulting in documented computer code, a project report, and a public presentation. Project work starts in the last third of the semester.


A calendar with the course dates will be added here.


Matlab and CasADi installation

MATLAB is an environment for numerical computing based on a proprietary language that allows one to easily manipulate matrices and visualize data which will be very helpful in prototyping the algorithms presented during the lectures of this course. The University of Freiburg offers a free-of-cost license to students and staff which can be obtained following the instructions here. In order to be able to complete the exercises of this course, you will need a working installation of MATLAB. Follow the instructions at the provided link in order to install the software package.
CasADi is a symbolic framework for algorithmic differentiation and numerical optimization. In order to install CasADi, follow the instructions here. Download the binaries for your platform and, after having extracted them, add their location to MATLAB's path. To test your installation run the simple example described at the provided link. If successful, save the path by executing the command savepath. In this way, the location of the binaries will be known even after restarting MATLAB.