Temperature Control

This lab is an application of feedback control on a benchtop temperature control device. Complete instructions are available below in the temperature control lab description. The lab can be run from Windows, MacOS, Linux platforms. Several programming languages can be used including Java, Matlab, or Python. Instructions are provided for Windows and Linux platforms. The simplest way to use the lab is to boot from a LiveUSB drive included with the lab equipment.


Restore LiveUSB Image to run Ubuntu Linux from USB drive


Instructions for Python and Java on Windows or MacOS (alternative method)

The open-source Arduino environment makes it easy to write code and upload it to the i/o board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing, avr-gcc, and other open source software.

Building the Arduino Temperature Control Module

Note: The instructional video is using a slightly larger breadboard to illustrate the wiring on the Arduino board. A smaller breadboard for the lab exercise is actually attached to the top of the Arduino board.


Temperature Model Derivation


Running the Arduino Temperature Control Module (Linux LiveUSB)

Running the Lab - All Steps

  1. Download the "image" of Linux, Ubuntu, and all files you will need. To download these files, click on Download LiveUSB Image Files (1.6 GB).
  2. "Restore" the image to a flash drive. Open folder "usbit". Open "USB Image Tool". Select the Flash drive on the left and click "Restore". Then, select the file "Arduino Image." This may take about 5 minutes. You need to do this to the otherwise blank flash drive provided with the kit.
  3. Boot Ubuntu on your laptop. Restart your computer. While the computer is booting, press the appropriate key as displayed during startup to enter a "boot options" or "boot setup" (every computer is a little different). Then choose to boot the computer from the flash drive. After booting, choose "Try Ubuntu." In "Try Ubuntu" mode, the Linux operating system is run entirely from the USB drive instead of the computer's built-in hard drive.
  4. Upload code to the Arduino. You should see the Ubuntu desktop in front of you. Open "1 - Arduino." Then, double click on "arduino" and select "run" not "run in terminal." Then, click on "File " and the top of the new window and open Arduinojavacode/ArduinoJavaCode.ino. Then click "Upload."
  5. Gain Control of the arduino. Open "2 - Processing" on the desktop. Then open "processing" and select "run." Then open "Desktop/3 - PID_Controller/PID_Controller/PID_Controller.pde." Then click "run." You should then be seeing the controller output and temperature measurement of your arduino being graphed in real time.
  6. Systems Check. Many groups have been having trouble at this point. Check the wiring of your Arduino. Your resistor should be 1000 Ohms. Also, be sure you have plugged the power into the correct port. Many groups have this wrong.
  7. Manual Control Steps and Automatic Control Setpoint changes. To get the Arduino to respond, you will need to change one of the appropriate boxes and then immediately click "Send to Arduino." Do not hit enter. Then, toggle the control from manual to control and back, or visa versa. If this is confusing, watch the video or talk to a TA. Do step tests in manual control. You can later enter controller constants, put the Arudino in automatic control, and see how it responds to set point changes.

Students have an opportunity to use this lab throughout the semester to learn principles of system dynamics and control. In particular, this lab reinforces:

  • The difference between manual and automatic control
  • Step tests to generate dynamic data
  • Fitting dynamic data to build a simple First Order Plus Deadtime (FOPDT) model
  • Obtaining parameters for a PID control from standard tuning rules
  • Tuning the PID controller to improve performance
  • Stability analysis
  • Dynamic modeling with first principles
  • Dynamic data reconciliation
  • Model Predictive Control

The three important elements for a control loop are the measurement device (thermistor), an actuator (voltage), and capability to perform computerized control (USB interface). Watch the video above to receive instructions on how to build and operate the device.


Other process control labs for this course may include measurement and control of pressure, level, temperature, concentration, etc. Below is a list of other optional lab activities and instructions.


comments powered by Disqus