Numerical Optimal Control

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.

The course covers the following topics: Introduction to Dynamic Systems and Optimization - Rehearsal of Numerical Optimization - Rehearsal of Parameter Estimation - Discrete Time Optimal Control - Dynamic Programming - Continuous Time Optimal Control - Numerical Simulation Methods - Hamilton-Jacobi-Bellmann Equation - Pontryagin and the Indirect Approach - Direct Optimal Control - Differential Algebraic Equations - Periodic Optimal Control - Real-Time Optimization for Model Predictive Control.

The lecture (6 ECTS) is accompanied by intensive weekly computer exercises (based on MATLAB) and a project in the last third of the semester. The project (3 ECTS), which is obligatory for students of mathematics but optional for students of engineering, consists in the formulation and implementation of a self-chosen optimal control problem and numerical solution method, resulting in documented computer code, a project report, and a public presentation. It is strongly recommended to participate in both lecture and project. 

Lecturer: Prof. Dr. Moritz Diehl
Lecture rooms and times: Monday and Wednesday, 14:00 -16:00, HS II, Albertstrasse 23b
Assignments: Tuesday 16:00 - 18:00, Georges-Koehler-Allee 074, 00 019 MST-Pool 101, SR 01-009/13 (Exercise room changed! See announcements below)

Tutors: Andrea Zanelli (andrea.zanelli(at), Dimitris Kouzoupis, Dang Doan
Question and answer session: Tuesday, 14:00-16:00, Georges-Koehler-Allee 102-01


1) Manuscript of Numerical Optimal Control by M. Diehl and S. Gros (last update 17.05.2017)
2) Biegler, L. T., Nonlinear Programming, SIAM, 2010
3) Betts, J., Practical Methods for Optimal Control and Estimation Using Nonlinear Programming, SIAM, 2010


Lecture 1 - Introduction (Not recorded)
Lecture 2 - Chapter 1.2 Continuous time Systems to Chapter 2.1 Local Convergence Rates
Lecture 3 - Chapter 2.2 Local Contraction to Chapter 2.5 Globalization
Lecture 4 - Chapter 3 Nonlinear Optimization to Chapter 3.2 First Order Optimality Conditions 
--note: in Lecture 4 the microphone's battery died at the end of the lecture, so the last 10 minutes are mute.

Lecture 5 - Chapter 3.3 Second Order Optimality Conditions to Chapter 4.1 Equality Constraint Optimization
Lecture 6 - Chapter 3.3 Second Order Optimality Conditions (recall) to Chapter 4.2 Local Convergence of Newton-Type Methods 
Lecture 7 - Chapter 4.3 Inequality Constrained Optimization to Chapter 4.4 Globalisation Strategies
Lecture 8 - Chapter 5 Derivatives to Chapter 5.4 Algorithmic Differentiation Software
Lecture 9 - Chapter 7 Discrete Optimal Control to Chapter 7.3 Sparsity Structure
Lecture 10 - Chapter 7.3 Sparsity Structure
Lecture 11 - Chapter 8 Dynamic Programming to Chapter 8.3 Infinite Horizon Problems
Lecture 12 - Chapter 8.3 Infinite Horizon Problems to Chapter 8.8 A Discrete Time Minimum Principle
Lecture 13 - Chapter 8.9 Differential Dynamic Programming
Lecture 14 - Chapter 9 Continuous Time Optimal Control to Chapter 10.2 Implicit Integration
Lecture 15 - Chapter 10.2 Implicit Integration  to end Chapter 10
Lecture 16 - Talk by Michael Neunert and Chapter 11 Hamilton Jacobi Bellman Equation
Lecture 17 - Chapter 12 Pontryagin and the Indirect Approach
Lecture 18 - Chapter 13 Direct Approaches
Lecture 19 - Chapter 15 Model Predictive Control
Lecture 20 - Chapter 16 Parametric Nonlinear Optimization


12.7.2017 - No lectures on July 12 and July 17, 2017 - (unsupervised project work can take place in this time)

25.04.2017 - Due to the high number of participants the room for exercise sessions has been changed to Georges-Koehler-Allee 101, SR 01-009/13.

17.06.2017 - There will be no lectures on Monday 19.06 and Wednesday 21.06. However, the exercise session will take place regularly on Tuesday 20.06 at 16:00. The exercise sheet will be uploaded to this page on Monday 19.06 at 14:00. 

21.07.2017 - Project deadline postponed to August 17.

24.07.2017 - Since this is the first time that the course is taught, there are no past exams available. However, the following two past exams from different courses contain some questions that might be similar to the one that will be asked:

Notice that the scope and topics covered in the two courses are different than for the present course. 

25.07.2017 - Since the problem with project enrollment through HiSinOne seems to persist for many people, the following course code has to be provided to the Prüfungsamt in order to be able to register:

Numerical Optimal Control - Project | 11LE50Pro-5250 |  Lehrveranstaltung

21.08.2017 - Project presentations scheduled on Friday 25.08.2017 at 14:00 in room  01-012, Georges-Köhler-Allee 102.

13.09.2017 - Final Exam: the information provided in Exercise 0 still holds (in particular, it is indeed possible to use four A4 pages of notes).

21.09.2017 - Final Exam (cont'd): for those of you who have not found this information in HISinOne, the exam will take place on September 22 at 14:00 in room HS 00 026 µ - SAAL (Georges-Köhler-Allee 101, 79110 Freiburg)



Links of interest: