Prof. Dr. Moritz Diehl - email@example.com
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, 10:00 to 12:00. The sessions will be dedicated to either Q&A with Prof. Diehl or exercises with the teaching assistants. This course has 6 ECTS credits. For more information please contact Florian Messerer or Andrea Zanelli.
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 assistants. We may also discuss solutions of previous sheets if there is demand. You can work in groups of two. Solutions to the exercise sheets have to be handed in via e-mail to firstname.lastname@example.org until the start of the next Q&A session. Note that because of the biweekly rhythm it will usually be two exercise sheets at the same time. You will also have to indicate which of the exercises you successfully finished. We will not examine every solution of every student. Note however that we will do extensive random probing. Indicating a task as solved when this is not true will result in 0 points for the whole sheet. Also note the guidelines for handing in stated below. You will need at least 50% of the total points in order to be eligible for the exam.
Final Evaluation: The final exam is a written closed book exam. Only pencil, paper, a calculator and four single A4 pages of self-chosen formulas are allowed. For engineering students the final grade of the course (6 ECTS) is based solely on the final exam. Students from the faculty of mathematics need to pass the written exam (ungraded) in order to take a graded oral exam.
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 and participants can work either individually or in groups of two people.
Guidelines for handing in exercises
For handing in the exercises via e-mail, please adhere to the following guidelines:
- You can hand in in groups of two.
- One file which is your main document. It contains your name(s) and a clear indication for every task whether you solved it. A simple format such as .txt suffices. Claiming tasks as solved when this is not true will result in 0 points for the whole sheet.
- If there are questions requiring an explicit answer statement (instead of only code) please add them to the main document. Anwers hidden in comments in the middle of the code will be ignored.
- Hand in all of the relevant code files. It should be possible to run them to see all results. It should not be necessary to un(comment) lines for proper functioning. If there are several similar, but conflicting versions (e.g. different constraints), please hand them in as separate files.
- If you received helper functions as part of the exercise, please also hand them in. This makes it easier to run your files since everything is contained in one folder already.
- Do not copy each other's code. This will result in 0 points for the sheet for all participating parties!
- Lecture recordings from summer semester 2017
- Manuscript of Numerical Optimal Control by S. Gros and M. Diehl (Draft)
- Biegler, L. T., Nonlinear Programming, SIAM, 2010
- Betts, J., Practical Methods for Optimal Control and Estimation Using Nonlinear Programming, SIAM, 2010
- Rawlings, J. B., Mayne D. Q., Diehl, M., Model Predictive Control, 2nd Edition, Nobhill Publishing, 2017 (free PDF here)
- Sample exams
|Guest talk (at TF)
|Deadline Ex1 at 10am
|all info see here
|ex2.pdf, ex2.zip, ex3.pdf, ex3.zip
|Q&A (R119, Ernst-Zemelo-Str. 1)
|Deadline Ex2, Ex3 at 10am
|course content up to and including Chapter 5
|ex4.pdf ex4.zip ex5.pdf
|Deadline Ex4, Ex5 at 10am
|course content up to and including Chapter 8.8 (without Chap. 6)
|Projects / Guest Talk (at TF)
|SR102-02-12 (Engineering Faculty)
|10:15 - 10:55 project discussions (with Prof. Diehl) / 11:00 Guest Talk
|Q&A (without Prof. Diehl) Exercise session
|ex6.pdf ex6.zip ex7.pdf ex7.zip
|course content up to and including Chapter 12
|Exercise session / project work
|Deadline Ex6, Ex7 at 10am
|Q&A / project discussions
|Deadline Ex8, Ex9 at 10am
|course content up to and including Chapter 16 (without Chap. 14, 17)
|Exercise / Guest Talk (at TF)
|ex10.pdf | SR103-02-14 (TF)
|10:00 - 10:55 exercise session / 11:00 Guest Talk
|Deadline projects, Ex10 at 10am
Please find the guidelines for the optional 3ECTS project 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.