No License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Temperature Control of a Water Tank

3.2 | 15 ratings Rate this file 20 Downloads (last 30 days) File Size: 11.6 KB File ID: #4440 Version: 1.0
image thumbnail

Temperature Control of a Water Tank



03 Feb 2004 (Updated )

Uses P, PI and PID control to raise water tank temperature to 80°C.

| Watch this File

File Information

We would like to rise water temperature with a heater. Oulet temperature must be equal to the set point temperature (80°C). Proportional (P), Proportional-Integral (PI) and Proportional-Integral-Derivative (PID) control are used and the respective results are compared. Inlet water temperature is equal to 20°C. Water flow is equal to 10 m3/hr. Tank volume is equal to 100 m3. Water density and heat capacity are 1 Kg/m3 and 4.19 KJ/(Kg °C). The heater and the temperature measurement device have a first order delay with a time constant equal to respectively TauQ and TauSens. Initial heat input and tank temperature are equal to 2500 KJ/hr and 20°C. This problem is solved using Berkeley-Madonna in Chemical Engineering Dynamics by J. Ingham et al. (second edition, Wiley-VCH, 2000). The solution using MatLab is present in this page. Sensor temperature lags slightly behind tank temperature. P control gives a small characteristic offset, PI control shows oscillations and PID control gives best control with no offset and quickly damped oscillations.

A similar program using Mathematica 6.0 is available at the following link:

Please also visit an earlier version using Mathematica 5.0 available at the Wolfram Library Archive:

Required Products MATLAB Compiler
MATLAB release MATLAB 6.0 (R12)
Other requirements Windows
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (17)
29 Apr 2015 avinash acharya

08 May 2013 Masoud Ghanbari

17 Aug 2008 iwan 68=996

very good example for me as an undergraduate student

15 Aug 2007 Nguyen Tu Cuong

To study

Comment only
01 Aug 2007 Nguyen Tu Cuong

16 Jul 2007 Bouzid montasser

22 Mar 2007 Mauricio Torres

07 Oct 2006 Abdelkrim Merzougui

merci pour votre travail

27 May 2006 Michael Peters

This script does offer no help to student's. Sorry.

09 May 2006 Rolando fred

hey, I'm a student from the university of cape town and i have to agree with John D'Errico, this script does offer no help to student's

04 Feb 2006 Juan Perez

Cuidado, contiene errores.

28 Jan 2006 Andres Weston

The PID contain an error. I also agree with Le about the derivative term of the PID. It is not right, because you need the derivative or trend of the error, not to subtract just the states. That can be easily corrected. Other minor thing is that the control action is not written in the conventional way.

26 Jan 2006 John D'Errico

These scripts offer no enhancement to the use of matlab. They contain no documentation. There are no inputs, no outputs except for simple plots. If these scripts are to be of any value to a student, they should attempt to teach their topic. These fail miserably in that task. If the plots that result are of any value at all, then they belong on a private website maintained by the author.

23 Mar 2005 Se Le

Dear Houssam,
I don't think that the third term of your PID (the differential) must be proportionnal to (x(1)-x(3)). Basically, the differential term is proportional to the error's variation, so propostionnal to d(error)/dt . If you want to discretize, it gives[(TRset-x(3)_t ) - (TRset -x(3)_t-1)]/timestep.

Comment only
27 Jan 2005 vicente zuñiga

please help me, I would like to know more about your topic, how can I contact you?

This topic is very interesting for me because I am finishing my college.

Please write me.


please help me, I would like to know more about your topic, how can I contact you?

thanks a lot

13 Nov 2004 antoni pascual

25 Jul 2007

added link to the Wolfram demonstration project

Contact us