Grundlagen der Mess- und Regelungstechnik
Measurement and Control Systems
Regelungstechnik und Systemdynamik
This repository contains interactive Julia notebooks for the lectures 'Grundlagen der Mess- und Regelungstechnik', 'Measurement and Control Systems', and 'Regelungstechnik und Systemdynamik', offered by the Institute of Measurement and Control Systems at Karlsruhe Institute of Technology.
The environment setup is managed by a separated base repository, to not require binder to build a new container with every change in a notebook.
The notebooks are Jupyter notebooks. You can find more information on how to navigate and use them here.
You can find the notebooks for the lectures in the corresponding branches:
- gmrt branch: 'Grundlagen der Mess- und Regelungstechnik'
- mcs branch: 'Measurement and Control Systems'
- rtsys branch: 'Regelungstechnik und Systemdynamik'
You can choose to run the notebooks online using binder or locally on your machine.
Using binder allows to run the notebooks online without having to set up anything on your computer.
It can take some time until the environment is loaded, depending on how frequently this repository is used (the more it is used, the better is the availability). Just click on the launch binder
icon for your lecture at the top of the document and wait until the environment is loaded.
Running the code on your local machine gives you more flexibility, and you don't have to wait until binder is ready to execute your code. The following instructions work for Ubuntu systems. On other operating systems, you might have to adapt them.
- Install Julia >= 1.7
- Using juliaup
- Alternatively download from https://julialang.org/downloads/
- Install Juypter lab
pip3 install jupyterlab python3 -m pip install --upgrade webio_jupyter_extension
- You can also skip this step, then
IJulia.jl
will install a Jupyter kernel viaConda.jl
during instantiation of the Julia environment. In this case you still need to add theConda.jl
package and install the webio jupyter extension as described here.
- You can also skip this step, then
- Clone git repositories
- Replace <BRANCH_NAME> with the branch corresponding to your lecture, i.e. gmrt, mcs, or rtsys
git clone https://github.com/KIT-MRT/control_systems_lecture_base.git cd control_systems_lecture_base git clone https://github.com/KIT-MRT/control_systems_lecture_content.git cd control_systems_lecture_content git checkout <BRANCH_NAME> # gmrt, mcs, or rtsys
- Instantiate the Julia environment
julia --project=@. -e 'using Pkg; Pkg.instantiate(); Pkg.precompile()'
- From the
control_systems_lecture_content
folder run Jupyter labjulia --project=@. -e 'using IJulia; jupyterlab(dir=".")'
If you encounter any problems, please open a corresponding issue on github.
- The interactive output plots are not updated when using the sliders.
- This is most likely an issue with WebIO.jl, which can have problems if metadata of old WebIO elements is still present in the cell output. To resolve this, switch from jupyter lab to the old jupyter notebook view (e.g. by editing the URL: 'lab'->'tree') and clear the output of all cells (maybe additionally do it in jupyter lab). Then restart the kernel and run the cells again.
- How can I generate the binder links?
- Basic binder links: https://mybinder.org/
- nbgitpuller links for separated environment and content repositories: https://jupyterhub.github.io/nbgitpuller/link?tab=binder
- Why are there separate environment and content repositories?
Unless otherwise stated, this repository is distributed under the 3-Clause BSD License, see LICENSE.