Course syllabus


SSY281 Model predictive control lp3 VT21 (7.5 hp)
Link to the syllabus on Studieportalen: Study plan

The course is offered by the department of Electrical Engineering. 

Contact details

Examiner and lecturer: Nikolce Murgovski,, EDIT-huset room 5408 (available by appointment)

Course assistant: Rémi Lacombe,, room 5340 (available by appointment)

Teaching assistants: Masoud Bahraini,, room 5320 (available on Zoom during the supervision sessions)
Muhammad Faris, (available on Zoom during the supervision sessions)
The teaching assistant will be available for consulting according to the course schedule. Please use this to straighten out your questions on problems, assignments etc.

Department exam office: Madeleine Persson,, room 3342

Student representatives

Comments and suggestions for improving student learning in this course may be discussed with the student representatives. They will compile all suggestions in an anonymous report and we will discuss them during the mid-term course evaluation meeting. The meeting will take place on Tuesday, February 9, 11:45. 

Alfred Hazard 
Subramanya Mallappa 
Nathaly Sanchez Chan 
Pramod Sivaramakrishnan 
Ahmad Wahba 

Telegram channel

With the current situation where we spend ample time working and studying remotely, it is more important than ever to find alternative ways to socialize. For this reasons, students have opened a telegram channel where you can meet, discuss, exchange ideas.... 

To join the channel, either follow the link:, or search in the app for "Chalmers - MPC".



Basic control courses focus on single-input, single-output linear systems. The control design techniques covered, typically PID control, still represent the dominant industrial state-of-the-art in many areas. A second course in control (e.g. the course Linear control system design) usually involves state-space techniques and LQ/LQG design, which makes it possible to systematically work with multi-input, multi-output systems. Model predictive control (MPC) is a related design technique, which is also based on optimisation ideas, but with some important features that have contributed to the increased popularity of the method. The most prominent one is the possibility to include constraints on control inputs and/or states already at the design stage. In fact, it is one of the few control design techniques that offer this feature. A consequence of this is that the method has attracted a lot of interest in recent years.

Course purpose

The purpose of this course is to give an introduction to model predictive control (MPC), a control system design technique that has gained increased popularity in a number of application areas during recent years. Important reasons for this are the ability to treat multi-input, multi-output systems in a systematic way, and the possibility to include constraints on states and control inputs in the design in a very explicit way. The intention with the course is to cover the mathematical foundations as well as implementation issues, and to give hands-on experience from computer simulations.


Model predictive control was originally developed and applied in process industry, particularly in petrochemical industry. Several factors contributed to this early development: the inherent multi-variable character of the processes, the importance of being able to respect constraints on quality and safety related variables, and the slow time scale of the processes. The latter opened up the possibility to perform significantly more computations at each sampling interval than needed in conventional, PID based control, even with the computer technology available at that time. With the dramatically larger computational resources of today, MPC is feasible even in fast, time-critical control systems like vehicle stability control. A significant increase in the application base for MPC is expected in the years to come.


A basic course in automatic control and familiarity with state space techniques and discrete time models (as taught in e.g. the course Linear control system design). Some familiarity with Matlab is assumed; if you need to refresh the basic skills, refer to Matworks' Getting Started with Matlab.


For a tentative schedule, please see the Calendar or Course summary below. 
Scheduled events can also be seen in TimeEdit.

Course literature

J.B. Rawlings, D.Q. Mayne, M.M. Diehl: Model Predictive Control, Theory, Computation, and Design, 2nd edition. ISBN 978-0-9759377-3-0, Nob Hill Publishing 2018 (available online at

Model Predictive Control - Lecture Notes

Supplementary literature and reading tips.


Course structure

The course is organised around lectures, problem-solving sessions, home assignments, micro-homeworks, and last but not least, independent student work.


The lectures, 2*2 hours per week, aim to motivate and introduce the topics covered by the texts. The lectures will be structured somewhat differently to the course textbooks, and also include additional material. Therefore, lecture notes complementing the textbook are available. The lecture notes include slide material.

Due to the transition to distance learning, the course will be offered online, via Zoom. The following Zoom meeting will be used for all lectures:, Password: 765413.

Lecture 1: Introduction to MPC and course overview
Material: Lecture notes.pdf: Section 1; Slides: Lecture1.pdf; Video:

Lecture 2: Review and preliminaries from linear state-space techniques
Material: Lecture notes.pdf: Section 2; Slides: Lecture2.pdf; Video:

Lecture 3: Unconstrained receding horizon control
Material: Lecture notes.pdf: Section 3; Slides: Lecture3.pdf; Video:

Lecture 4: Constrained receding horizon control
Material: Lecture notes.pdf: Section 4; Slides: Lecture4.pdf; Video:

Lecture 5: MPC practice – setpoints, disturbances and observers
Material: Lecture notes.pdf: Section 5; Slides: Lecture5.pdf; Video:

Lecture 6: The Kalman filter and moving horizon estimation
Material: Lecture notes.pdf: Section 6; Slides: Lecture6.pdf; Video:

Lecture 7: Optimisation basics and convexity
Material: Lecture notes.pdf: Section 7; Slides: Lecture7.pdf; Video:

Lecture 8: Solving quadratic programs
Material: Lecture notes.pdf: Section 8; Slides: Lecture8.pdf; Video:

Lecture 9: Feasibility
Material: Lecture notes.pdf: Section 9; Slides: Lecture9.pdf; Video:

Lecture 10: Stability
Material: Lecture notes.pdf: Section 10; Slides: Lecture10.pdf; Video:

Lecture 11: MPC practice – implementation and tuning
Material: Lecture notes.pdf: Section 11; Slides: Lecture11.pdf; Video:

Lecture 12: Explicit control laws for constrained linear systems
Material: Lecture notes.pdf: Section 12; Slides: Lecture12.pdf; Video:

Lecture 13: Guest lecture + alternative formulations of MPC
Material: Lecture notes.pdf: Section 13

Lecture 14: Beyond linear MPC
Material: Lecture notes.pdf: Section 14; Slides: Lecture14.pdf; Video:

Lecture 15: Reserve

Lecture 16: Reserve


Problem solving sessions

During the problem sessions, normally two hours per week, the teaching assistant will introduce selected problems as well as computational tools, answer questions etc. It is advised that you prepare for the sessions to gain as much as possible from them. Please note the scheduled consulting hours.

The following Zoom meeting will be used for all the problem solving sessions:,  Password: 491104 

Session 1: Receding horizon control
Material: Slides: PSS1_slides.pdf; Video:


Session 2: State estimation
Notes: PSS2_notes.pdf; Video:


Session 3: Optimisation
Notes: PSS3_notes.pdf; Video:


Session 4: Optimisation/Stability
Notes: PSS4_notes.pdf;  Video:


Session 5: Multi-Parametric Toolbox, part 1: reachable and invariant sets
Material: Slides: PSS5_slides.pdf; Video:


Session 6: Multi-Parametric Toolbox, part 2: MPC with feasibility guarantees
Slides: PSS6_slides.pdf; Video:


Session 7: Reserve


Supervision sessions

Supervision sessions are scheduled roughly twice 2*2 hours every week. The teaching assistant will be available for answering questions. 

The following Zoom meeting will be used for all supervision sessions: 

In order to use the supervision time effectively, students who require supervision will need to sign up by writing their name at the end of the following list 

Following the queue, students will be assigned in breakout rooms where consultation will be provided by the TAs. If it is someones' turn according to the list, and that student is not on Zoom, the student would be assumed as served.


Changes made since the last occasion

  • The course content has been adjusted for online teaching.
  • The micro-assignments have been transformed into online quizzes. 
  • The home assignments have been changed since last year.
  • The problem solving sessions have been revised to be better aligned with the home assignments.


Learning objectives

After completion of this course, you should be able to:

  • Understand and explain the basic principles of model predictive control, its pros and cons, and the challenges met in implementation and applications.
  • Correctly state, in mathematical form, MPC formulations based on descriptions of control problems expressed in application terms.
  • Describe and construct MPC controllers based on a linear model, quadratic costs and linear constraints.
  • Describe basic properties of MPC controllers and analyze algorithmic details on very simple examples.
  • Understand and explain basic properties of the optimization problem as an ingredient of MPC, in particular concepts like linear, quadratic and convex optimization, optimality conditions, and feasibility.
  • Use software tools for analysis and synthesis of MPC controllers.




There are 13 compulsory micro-assignments to be handed in before every lecture. 

  • The micro-assignments are pursued individually by every student.
  • They are designed in the the form of quizzes, to be completed online.
  • Each micro-assignment gives maximum of 2 points.
  • At least 18 points are needed in order to pass the course.
  • Each micro-assignment has a hard deadline, the day before the lecture it is referring to.

Home assignments

There are seven compulsory, individual home assignments in the course, and one optional. The assignments essentially comprise the examination in this course and determine the final grade. Hence, it is important to comply with the following rules and instructions:
  • The assignments are pursued individually by every student.
  • The findings, answers and solutions of each assignment are presented in a short, written report, and a testing code is submitted according to the guidelines given in each assignment.
  • The report should provide clear answers to the questions, including your motivations, explanations, observations from simulations etc., concisely written. Figures included in the report should have legends, and axes should be labelled. 
  • Since the assignments are part of the examination in the course, plagiarism is of course not allowed (an automatic check is performed via URKUND). If we observe that this happens anyway, it will be reported.
  • The report should be uploaded to Canvas before the deadlineMatlab code (written in the provided template if applicable) is uploaded as separate files. If the deadline is not met, we cannot guarantee that you will be able to complete the assignment during the course.

The following grading scheme for the assignments will be used:

  • Each assignment gives maximum 15 points, except assignment 1 that gives max 10 points. The seven compulsory assignments thus give in total max 100 points. The optional assignment 8 can give additional 15 points. 
  • The total score decides the grade with limits 40/60/80 points for grade 3/4/5, respectively.
  • To ensure enough coverage of the course, a minimum of 5 points is required for each of at least 6 assignments

Each assignment has a deadline. Possible late submissions are handled in the following way:

  • A cumulative "delay budget" of max 5 days is available for each student. Total delay within this limit will not affect the score, but once the limit is reached, assignments submitted late will render 0 points, as will any assignment submitted more than 3 days late. 


Two re-exams will be offered, one in June and another in August. The exams will be conducted in a typical manner, i.e. the maximum period to complete the exam is normally 4 hours. The exam consists of problems that sum up to 30 points. The nominal grading is 12/18/24 for grade 3/4/5, respectively. 

Course summary:

Date Details Due