Notebook UI and reusable control/runtime components for the Temperature Control Lab.
Project description
tclab_jupyter
A jupyter based application and library to explore different control techniques of a simple temperature plant.
Overview
This code was written to showcase an Arduino based Temperature Control Lab (https://apmonitor.com/pdc/index.php/Main/ArduinoTemperatureControl) for a Lecture on Advanced Control Techniques.
The TCLab system is built with two temperature sensors and two heaters. A Matlab or Python interface is provided to read the temperature data from the board and control the heaters power output. A library was created with two entry points, one that aims to control the Arduino System (HardwareNotebookApp) and another one replacing the Arduino interface with a simulator (SimulationNotebookApp), so the app can be used without the real hardware, as a demonstration.
This project implements four different control techniques (Manual, On-Off, PID and MPC) so the user can test and visualize the differences between them.
There is also a configurations window that presents some parameters that can be adjusted for the whole simulation or for each control technique.
The interface was build using ipywidgets and bqplot. The dynamic plant simulation is done using scipy odeint function, whilst the MPC is implemented using the gekko library. For more information regarding the MPC options refer to the gekko documentation (https://gekko.readthedocs.io/en/latest/).
Dependencies
- numpy
- scipy
- ipywidgets (https://github.com/jupyter-widgets/ipywidgets)
- bqplot==0.11.9 (https://github.com/bloomberg/bqplot)
- gekko (https://github.com/BYU-PRISM/GEKKO)
- tclab (only for the control_arduino.py)
Install
pip install tclab_jupyter
Usage
Import the module and create an object as shown below.
from tclab_jupyter.ui.notebook import SimulationNotebookApp
demo = SimulationNotebookApp()
To open the main window, call the app function.
demo.app()
To open the configurations window, call the config function.
demo.config()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tclab_jupyter-0.1.0.tar.gz.
File metadata
- Download URL: tclab_jupyter-0.1.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3325e924466b666f1cb7bc04cebfdd3b5b70919178e482df88904792a068b4ef
|
|
| MD5 |
ed1540a0601ba0f7269454acff2ff2c5
|
|
| BLAKE2b-256 |
98ad0300831924db591f835d2b252eba309e5d849725953668d7e78220d139c2
|
File details
Details for the file tclab_jupyter-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tclab_jupyter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af4df9081578b62f70b8d60d2ca3bec7f5658f1ea2749194c53f412662193840
|
|
| MD5 |
34467d8cc12898075f102710d1811a84
|
|
| BLAKE2b-256 |
9e5c97aafd936ccc9c51f0836e1eaa32657950bf21088b39b6aa3a42e7577e75
|