Process Control Project

The objective of the process control project is to control or optimize a system that is chosen by a student group of 3. The project can either be entirely simulation based or else involve a physical measurement and actuator (preferred) such as provided by a micro-controller (e.g. Arduino) or micro-processor (e.g. Raspberry Pi). The project must involve a sensor, actuator, and controller. The project is open-ended by design to allow students to pursue topics from a research group or personal or professional interest.

Consider technical as well as non-technical issues related to the project. Non-technical issues may include safety, public health, and welfare in addition to global, cultural, social, environmental, and economic factors. The purpose of the project is to achieve higher levels of learning (see Bloom's Taxonomy figure by Rawia Inaim, Kwantlen Polytechnic University) by evaluating and analyzing with principles of dynamics and control to create something new.

The project report is a 5 minute presentation and a 2 page document that gives details of the project and approach to implement an automation strategy.

  • Introduction with a statement of the problem and objective of the project
  • Derivation of the mathematical simulation of the physical system
  • Details on the sensor, actuator, and controller
  • Simulations or measurements of closed loop performance
  • Conclusions and future opportunities

Below is a playlist of prior student projects. These projects project reports can be used as seed ideas but should be extended beyond what is previously presented.

Students groups are welcome to find existing simulation models online such as from a library of dynamic models or collect data from an automobile. The process control project ideas are selected by the group and should be approved by the instructor or teaching assistant.

Project Proposal

  1. Identify something that you would like to control that is related to a dynamic system, preferably in engineering.
  2. Draw a diagram of the system with all parameters and variables labeled.
  3. List articles (2-3) that give related results or locate authors that have worked in this area.
  4. List factors that cannot change that influence the dynamic outcome (constants / parameters).
  5. List a factor that can change to influence the dynamic result as an actuator. Can this factor be adjusted by the controller?
  6. What is the controlled variable? Is it important that the controlled variable remain within a range or at a particular set point? Does the set point change over time?
  7. List equations that describe the dynamic response such as equations of motion, mass balance, energy balance, etc.
  8. List factors that may influence the success of the project. Where are the uncertainties and how will these uncertain factors be addressed?
  9. What is the timeline for the project and the anticipated final product for this project?

Project Progress Report #1

The first project progress report should include a description of the input to output dynamic relationships. This should include the constants, parameters, variables, and equations of the dynamic system. This project progress report should show open-loop simulation results or the measurement response due to a disturbance or actuator change. The report should also give an update on the project timeline and discuss any factors that were identified in the project proposal relating to uncertainties. This progress report should also include a discussion of the relevant articles that were identified in the project proposal. The progress report should be the draft section of the final report that includes an introduction, literature review, and model description.

Project Progress Report #2

The second project progress report should include a discussion and results related to dynamic data (simulated or actual). Include a sensitivity analysis to show the steady state and dynamic relationships between the actuator and the controlled variable. Show estimation of FOPDT, SOPDT, or higher order representations of the systems that will be useful for PID tuning. If the project does not include physical measurements, include appropriate levels of simulated measurement noise. The progress report should be a draft section of the final report that includes model estimation discussion.

Project Progress Report #3

The third project progress report should include a discussion and results related to closed-loop control. Include a sensitivity analysis to show the steady state and dynamic relationships between the manipulated variables and the controlled variables. Show simulated control and optimization results that achieve the best performance. The progress report should be a draft section of the final report that includes closed-loop control discussion. Besides standard methods learned in the class (PID, feedforward, cascade control), discuss alternative approaches for control (either hardware or software approaches). Discuss how you learned about these alternative approaches such as citing references or other sources.

Project Report

The project report is a compilation of the three individual progress reports and any additional content such as stability analysis, tuning, feedforward, or other control methods to improve performance.

The project report may include the following elements:

  1. Title, authors
  2. Abstract
  3. Introduction / Literature review
  4. Theory / Methods / Physics-based modeling
  5. Simulation results or Hardware Description
  6. Model fitting results
  7. Control tuning / Stability analysis
  8. Discussion
  9. Conclusions / Future work
  10. References

The recommended page length is 2 although individual reports may be longer based on the scope of the project and number of team members involved. Discuss the following non-technical design considerations for your proposed control or optimization solution.

  1. Public Health
  2. Public Safety
  3. Public Welfare
  4. Global Factors
  5. Cultural Factors
  6. Social Factors
  7. Environmental Factors
  8. Economic Factors

Include a paragraph in this section about the learning strategies did you used to acquire and apply the knowledge needed for your project.

The Research & Writing Center (3340 HBLL) is a free resource where trained consultants provide assistance on assignments. Schedule an appointment to receive writing help at all stages of the research and writing process.

Project Presentation

The project presentation is a 5 minute video of your project. It includes the same elements as the final report but in a condensed and graphical format. Many group choose to do a screencast to record a computer desktop with audio. Instructions for creating a screencast and uploading the video to YouTube are shown below. Post the video to YouTube and include a link in the project report.

ABET Outcomes

ABET Outcome 1 (Assessed with Project Parts 1-2 Reports): Students will be able to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.

ABET Outcome 2 (Assessed with Project Final Report): Students will be able to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.

ABET Outcome 7 (Assessed with Project Part 3 Report): Students will be able to acquire and apply new knowledge as needed, using appropriate learning strategies.

Instrumentation Help

Instrumentation and Control Course at Notre Dame

Analog and digital pins on the Arduino support reading and writing values to add a sensor or actuator. The firmware that is pre-loaded (tclab.ino) on the Temperature Control Lab is specific to that lab with 2 heaters, 2 temperature sensors, and 1 LED. A different firmware called Standard Firmata can be loaded onto the Arduino to allow the pyFirmata (Python) package to read from or write to any of the pins. This may be useful if you are adding additional sensors, an actuator, or want to modify the pin connections.

import time
# pip install pyfirmata
from pyfirmata import Arduino, util

# for MacOS or Linux
# install CH340G driver from
#board = Arduino('/dev/cu.wchusbserial1420')

# for Windows
board = Arduino('COM3')

# Start iterator
iterator = util.Iterator(board)

# TMP36 Temperature Sensor Calibration
def TMP36(Tv):
    return (Tv*5000.0-500.0)/10.0

# Read voltage (0-5 V) as (0-1)
Tv1 = board.get_pin('a:0:i')
Tv2 = board.get_pin('a:2:i')  

# Setup Temperature functions
def T1():
    return TMP36(

def T2():
    return TMP36(

# Setup Heater functions with PWM
H1 = board.get_pin('d:3:p')
H2 = board.get_pin('d:5:p')


# Print Temperature 1
print('Temperature 1: ' + str(T1()))
print('Temperature 2: ' + str(T2()))

# Turn on heaters
print('Heater 1: 90% and Heater 2: 20%')

# Wait
print('Sleep for 25 seconds')

# Print Temperatures 1 and 2
print('Temperature 1: ' + str(T1()))
print('Temperature 2: ' + str(T2()))

# Turn off heaters


Other Python packages facilitate prototyping development on an Arduino. Arduino-Python3 Command API is another standard interface like pyFirmata to load a standard firmware with a Python library to access the pins. A different method is to use uFlash to build a HEX file and flash it to the Arduino firmware to run micro-Python directly on the Arduino. This is different than pyFirmata and Arduino-Python3 packages that run Python on an external computer and communicate over the serial USB connection. The uFlash package allows Python to run directly on the Arduino with no external computer connection.