Modelling and System Identification

From real-world data to mathematical models.

Explore modelling and system identification through the lens of statistics, optimization, and simulation, supported by practical Python exercises.

Language: English Lectures: Monday & Wednesday Time: 08:15–09:55

Prof. Moritz Diehl, Ashwin Karichannavar, Katrin Baumgärtner

Modelling and System Identification (MSI) is concerned with the search for mathematical models for real-life systems. The course is based on statistics, optimization and simulation methods for differential equations. The exercises will be based on pen-and-paper exercises and computer exercises with Python.

Starting from a simple example of estimating electrical resistance using Ohm’s law, the course explores how to extract model parameters from noisy measurements and assess the uncertainty of the results. Building on foundations in statistics and numerical optimization, we explore least-squares, maximum-likelihood and Bayesian methods as foundational pillars for modelling and identifying systems. 

The discussion then extends to recursive estimation and Kalman filtering, showing how a system’s state can be estimated and updated as new measurements are observed. These ideas also underpin many methods in modern machine learning and artificial intelligence, offering a grounded perspective on how models learn from data.

Course language is English and all course communication is via this course homepage.

If you have any questions regarding the exercises/lectures, please send an email to the tutors, syscop.msi@gmail.com


Lectures. The lectures will take place on Mondays and Wednesdays, 8:15 - 09:55 a.m in Building 101, HS 026. If you cannot attend, you may watch the lecture recordings, see below.

Exercises (voluntary). The exercise sheets include both pen-and-paper exercises and programming exercises using Python. Although the exercises are voluntary and are not graded, we strongly recommend working through them regularly in teams of at most three students. You have one week to work on each sheet.

To receive feedback from the tutors, please submit your team’s pen-and-paper and coding solutions by email to syscop.msi@gmail.com. Feedback will only be provided if the solutions were sent before the corresponding deadlines.

Exercise Sessions. During the exercise session, the tutors discuss the exercise solutions. Afterwards there is room for questions on the current exercise sheet.

  • Group 1: Wednesday, 14:00 - 16:00, Building 51, SR 00 034, N.N.
  • Group 2: Thursday, 14:00 - 16:00, Building 51, SR R 03 026, N.N.
  • Group 3: Thursday, 10:00 - 12:00, Building 101, SR 01 009/13, N.N.

Written material. The lecture closely follows the script, which can be found below:

  • Lecture notes on Modelling and System identification: script

If you missed the first lecture, you can pick up a printout of the script in Building 102, in the cupboard in front of room 00 075.

Please note that we do not cover Chapter 8.4. Additional material that covers some of the lecture contents:

  • A script by Johan Schoukens (Vrije Universiteit Brussel, Belgium), which can be found here.
  • The textbook Ljung, L. (1999). System Identification: Theory for the User. Prentice Hall. This book is available in the faculty library.

Ilias Course. We provide a forum where you can discuss your questions with your peers or the tutors.


Studienleistung and Final Evaluation

Please make sure you register for both the MSI Exam and the MSI Studienleistung!

The final grade of the course is based solely on a final written exam at the end of the semester. The final exam is a closed book exam, only pencil, paper, and a calculator, and two handwritten double-sided A4 sheets of self-chosen formulae are allowed. The exam will take place on  22.03.2027 at 14:00.

We also offer a Q&A session a few days before the exam. It will take place on TBD. The exam review will take place on TBD.

Microexams. There will be three 45-minute microexams, worth 20 points each (60 points in total). Each will contain ten multiple-choice questions and a few exercise-based questions. Possible variants of these questions will be marked (*) on the exercise sheets.

Project (mandatory). The micro-project is worth 60 points and must be completed in teams of at most three students (preferably the same teams as in the exercises). Teams may choose a topic from a list of suggested projects (to be announced) or discuss their own ideas with the tutors.

The project will be announced (TBD), and the deadline is 31st January.

Teams may present their project during an exercise session. Please arrange this with the tutors and submit a one- to two-page project description at least one week beforehand. All team members should be ready to explain their work, answer questions, and make requested code changes.

Studienleistung. In order to meet the requirements accompanying the course (Studienleistung), one has to obtain at least 60 of the 120 available points across the three microexams and the project combined:

  • Microexam 1: covers Exercises 1 - 3 (20 points) 
  • Microexam 2: covers Exercises 4 - 6 (20 points) 
  • Microexam 3: covers Exercises 7 - 10 (20 points)
  • Project: Deadline 31st January (60 points)

Passing the Studienleistung is a prerequisite for taking the final written exam. The 6 ECTS credits are awarded upon passing both the Studienleistung and the final written exam. The Studienleistung does not contribute to the final course grade, which is determined solely by the final written exam.

To prepare for the written exam, check out the exams from previous semesters: 2019, 2018, 2015, 2014. (Please note that these exams contain questions on Appendix C of the MSI script, which is not covered in this year's lecture)

Solution video for the 2018 exam


Timetable (updated 19.10.2026)

DateSessionRecordingChapters
Mon, 19.10Introduction LectureRecordingChapter 1.0 - 1.2
Wed, 21.10LectureRecordingChapter 2.0 - 2.3.1
Mon, 26.10Linear Algebra Tutorial, LectureRecording 
Wed, 28.10LectureRecordingChapter 2.3.2 - 2.4
Mon, 02.11Statistics Tutorial, LectureRecording 
Wed, 04.11LectureRecordingChapter 2.4 - 3.1
Mon, 09.11LectureRecordingChapter 3.2 - 4.2
Wed, 11.11LectureRecordingChapter 4.3 - 4.4.1
Mon, 16.11LectureRecordingChapter 4.5 - 4.5.3
Wed, 18.11Lecture

Part 1

Part 2

Chapter 4.5 -4.6

Chapter 4.6 - 4.7

Mon, 23.11,No LectureRecordingChapter 5 - 5.2.2
Wed, 25.11Microexam 1 (8:15 - 9:00), lecture afterwardsRecordingChapter 5.3
Mon, 30.11No LectureRecordingChapter 5.4 - 5.5
Wed, 02.12No LectureRecordingChapter 6 - 6.1.2
Mon, 07.12No LectureRecordingChapter 6.2 - 6.4
Wed, 09.12LectureRecordingChapter 7 - 8.2
Mon, 14.12LectureRecordingChapter 8.2 - 8.5
Wed, 16.12LectureLectureChapter 8.6
Mon, 21.12LectureRecordingChapter 8.7
Wed, 23.12LectureRecording 
Mon, 04.01No Lecture  
Wed, 06.01No Lecture and no exercise sessions in this week  
Mon, 11.01LectureRecording

Proof of C-R-Inequality

(Chapter 5.4.1)

Wed, 13.01Microexam 2 (8:15-9:00) Lecture afterwardsRecording 
Mon, 18.01LectureRecording 
Wed, 20.01LectureRecording
 
 
Mon, 25.01LectureRecordingSummary Chapters 1 - 4
Wed, 27.01LectureRecordingSummary Chapter 5
Mon, 01.02LectureRecordingSummary Chapters 6 - 8
Wed, 03.02Lecture  
Mon, 08.02Microexam 3, (8:30 - 9:15), lecture afterwards  
Wed, 10.02

Summary Lecture + Q&A Session 

Coffee at Syscop Office with Tutors after the lecture (Starting time 8:30)

  
TBDFinal Exam  

 


Tutorials

In the first weeks, there is no mandatory exercise sheet, but if you don't feel too confident about your linear algebra and statistics skills, you might want to check out these tutorials that cover the basics needed for the MSI course.

  1.  Python Tutorial - for more information see the paragraph below
  2.  Linear Algebra Tutorial
  3.  Statistics Tutorial

In the first weeks, we will discuss these tutorial also in the lecture and the exercises.

 


Exercises Sheets

 

Sheetcode filesDeadline
Sheet 0: IntroductionDownload zip26.10
Sheet 1: Resistance Estimation ExampleExercise 1 Github link02.11
Sheet 2: Statistics + Parameter EstimationClick to accept Exercise 2...
Sheet 3: Optimality Conditions and Linear Least SquaresClick to accept Exercise 3 
Sheet 4: Regularized, Ill-Posed and Weighted Linear Least-SquaresClick to accept Exercise 4 
Sheet 5: Maximum Likelihood and MAP Estimation Click to accept Exercise 5 
Sheet 6: Recursive Least SquaresClick to accept Exercise 6 
Sheet 7: Dynamic SystemsClick to accept Exercise 7 
Sheet 8: Nonlinear Least SquaresClick to accept Exercise 8 
Sheet 9: KF + KF IdentificationClick to accept Exercise 9 
Sheet 10: EKFClick to accept Exercise 10...
   

The exercise workflow looks as follows:

  1. Download the exercises.
  2. Work locally locally onto your computer or private git repos.
  3. Check your solutions by running

     pytest

    in the console.

  4. For feedback on the code, email the zip folder.

Python For the programming exercises we use Python. To work on the exercises please make sure to have Python installed on your system.

Python Installation

Here is a short guide on how to set up Python along with the IDE VS Code. If you already have Python installed on your system or want to use another IDE, feel free to skip to bullet 4.

  1. Install Python for your operating system
  2. Install VS Code
  3. Install the Python Extension for VS Code
  4. Install the required python packages:
Python Tutorial Notebooks

For people who do not know Python or want to refresh their knowledge, we provide a series of Jupyter notebooks to give you an introduction to data science programming in python. More resources, such as video tutorials for Python can be found online.

  1. Download and unzip the Tutorial Notebooks into a folder of your choice

  2. Open the folder in VS Code (File -> Open Folder)

  3. Open the first Notebook by going through the file tree (notebooks/1-basics/PY0101EN-1-1-Hello.ipynb)

 

 


2018 Lecture Recordings

datetopicchapters
October 20 - October 22Lecture 1: Introduction + Resistance Estimation1-1.2
October 26 - October 30Lecture 2: Resistance Estimation + Statistic Basics1.2.2-2.3
November 03 - November 05Lecture 3: Random Variables + Statistical Estimators2.3-2.4
October 31 - November 4Lecture 4: Resistance Estimation Revisited2.5-3.1
November 7 - November 11Lecture 5: Optimization Basics + Linear Least Squares3.1-4.2
November 7 - November 11Lecture 6: WLS + Ill-posed Problems4.3-4.4.1
November 14 - November 18Lecture 7: Statistical Analysis of WLS4.5-4.7
November 14 - November 18Lecture 8: Maximum Likelihood Estimation5-5.1.1
November 21 - November 25Lecture 9: MAP Estimation + Recursive LLS5.2-5.3.2
December 5 - December 9Lecture 10: Cramer Rao Bound
(the part on Section 5.4: Cramer Rao Bound starts at 38min)
(Section 5.4.1: Proof of Cramer Rao Bound. Note that the proof is not required for the exam)
5.3-5.4
December 12 - December 22Lecture 11: Practical Solution of NLS5.5.
January 9 - January 13Lecture 12: Dynamic systems (Part1, Part2, Part3) (2,5 hours in total)6.1-6.1.2
January 16 - January 20Lecture 13: Output and Equation Errors (1h)7.1-7.3
January 23 - January 27Lecture 14: State Space Models (0,5h)7.4
January 23 - February 27Lecture 15: RLS + Kalman Filter (1h)9.1-9.3
January 30 - February 3Lecture 16: Extended Kalman Filter (1h)9.5
January 30 - February 3Lecture 17: Moving Horizon Estimation (1,5h)