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, 8:15 - 09:55 a.m in Building 101, HS 026 and Wednesdays, 8:15-09:55 a.m. in Building 101, HS 036. If you cannot attend, you may watch the lecture recordings, see below.

Exercises. The exercise sheets include both pen-and-paper exercises as well as programming exercises using Python. Exercise sheets can be handed in before the lecture on Monday, 8:15 or put into the Mailbox in front of room 00-075 in the ground floor of building 102 before. Programming exercises are handed in via Github Classrooms (more on that below). You have one week to work on the sheet and you might work in groups of at most three students.

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 031, N.N.
  • Group 2: Thursday, 10:00 - 12:00, Building 101, SR 01-009/13, N.N.
  • Group 3: Thursday, 14:00 - 16:00, Building 51, SR R 03 026, 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.


Final Evaluation and Microexams

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  TBD.

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.

Each exercise sheet gives a maximum of 10 points. Three microexams written during some of the lecture slots give a maximum of 10 exercise points each. In order to pass the exercises accompanying the course (Studienleistung), one has to obtain at least 50% of the maximum exercise points in each of the three blocks:

  • Block 1: Exercises 1 - 3 + Microexam 1 (total 40 points) 
  • Block 2: Exercises 4 - 6 + Microexam 2 (total 40 points) 
  • Block 3: Exercises 7 - 10 + Microexam 3 (total 40 points + 10 Bonus Points)

In a microexam, you will have 45 minutes for 20 multiple-choice questions on the lecture and exercises of the respective block. 

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 (tentative)

DateSessionRecordingChapters
Mon, 19.10Introduction LectureRecordingChapter 1.0 - 1.2
Wed, 21.10LectureRecordingChapter 2.0 - 2.3.1
Mon, 26.10Linear Algebra TutorialRecording 
Wed, 28.10LectureRecordingChapter 2.3.2 - 2.4
Mon, 02.11Statistics TutorialRecording 
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,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.12Microexam 2 (8:15-9:00)Recording 
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.01LectureRecording 
Mon, 18.01LectureRecording 
Wed, 20.01LectureRecording
 
 
Mon, 25.01LectureRecordingSummary Chapters 1 - 4
Wed, 27.01Microexam 3, (8:30 - 9:15), lecture afterwardsRecordingSummary Chapter 5
Mon, 01.02LectureRecordingSummary Chapters 6 - 8
Wed, 03.02Lecture  
Mon, 08.02Lecture  
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

 

SheetGH Classroom LinkDeadline
Sheet 0: IntroductionClick to accept Exercise 0tba
Sheet 1: Resistance Estimation ExampleClick to accept Exercise 1...
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...
   

 

PLEASE PUT ALL OF YOUR GROUP'S MATRICULATION NUMBERS ON YOUR HAND IN SOLUTIONS!

Github Classroom To distribute, collect and grade your coding exercises, we utilise Github Classroom. This service provides, for your exercise team, a Github repository for each exercise. If you have never worked with Git before, here we have linked a tutorial.

To use Github Classroom, every students need a Github account. If you don't have one, or don't want use your private one, feel free to create a fake account just for this course. To identify your coding score with you immatriculation number, please register both your immatriculation number and your Github profile with us here. OTHERWISE YOU WILL NOT GET POINTS FOR YOUR CODING EXERCISES.

The exercise workflow looks as follows:

  1. Accept the exercise for your team above.
  2. Clone the exercises locally onto your computer.
  3. Work on the exercise, by executing the scripts
  4. Check your solutions by running

     pytest

    in the console.

  5. Commit & push your solutions
  6. The same tests (with slightly different input data) are rerun on the server.

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)