Advanced Temperature Control

This Arduino lab is a hands-on applications of advanced temperature control with two heaters and two temperature sensors. The labs reinforce principles of model development, estimation, and advanced control methods.

The heater power output is adjusted to maintain a desired temperature setpoint. Thermal energy from the heater is transferred by conduction, convection, and radiation to the temperature sensor.

This lab is a resource for model identification, estimation, and advanced control development with full source code examples available in MATLAB and Python.

The lab kit includes:

  • Arduino Uno
  • Temperature control PCB shield
  • USB barrel jack power cable for heaters
  • 5V USB power supply (US plug)
  • USB cable for serial connection to MacOS, Windows, or Linux computer
  • Small cardboard box
Lab Type
Arduino Firmware (can change later)
Other notes (e.g. EU Plug)

Lab Resources

Lab software is available in MATLAB, Python, and Simulink. The GEKKO package is recommended for Python or first-time users without a language preference.

A basic version of this lab is also available. The more basic lab instructions are for tuning a Proportional Integral Derivative (PID) controller with Single Input Single Output (SISO) control.

This advanced control lab is for multivariate control with Multiple Input Multiple Output (MIMO) modeling, estimation, and control.

Lab Instructions

The advanced control lab has three phases including model development, parameter and state estimation, and advanced control. The models developed and tuned in the initial phase are used directly in model predictive control. Model forms are from empirical identification or fundamental energy balance relationships and include single (SISO) and dual heater (MIMO) modules. Relationships may be linear or nonlinear with continuous or discrete variables.

Model Development

Parameter and State Estimation

Model Predictive Control