TransWikia.com

How to learn PID Control?

Electrical Engineering Asked on December 12, 2021

I want to learn PID (Proportional–Integral–Derivative) control mainly for temperature.

I would like to learn preferably through an easy project to do.

Could you please recommend something which would take a few weeks to learn?

Edit: I want to control the temperature of a water tank. The heating is done by a resistor.

6 Answers

There is a great PID simulation app that you can use to practice tuning PID loops and see the live feedback. It's made by PIDexplained.com and available on the Microsoft store.

PIDexplained.com also has a great write-up on the math behind a PID loop.

Answered by user258317 on December 12, 2021

Just adding my 2 cents worth to the good responses already.

The practical use of PID for temperature control often has non-linear behaviors if the temeprature error detection is limited (op amp gain saturates output) and power available to control the temperature is fixed.

Consider an on-off controller. The system will have latency from the time when heat is applied and a change in temperature is detected. Which no PID loop, this latency creates an unstable loop oscillating and if there is any hystereis, the power cycles with noise (On-Off-On) However a very high gain ( such as a comparator ) results in a small residual temperature error. The latency affects the cycle time and overshoot.

If there was an external disturbance such as a tank lamp which may add significant heat, thne the heater regulator must respond as soon as a temperature rise is detected from the lamp heat. If your Lamp swith is not part of the PID loop , then it cannot "anticipate" the effect ( derivative feedback gain) Obviously, if the lamps generate too much heat then the temperature cannot be regulated and will exceed the setpoint.

Your heat control with PID control may have to have an inoput for Lamp switch state and output control to regulate the light power as a secondary source of heat, again if too much.

Defining your requirements for absolute control error, % overshoot and response time are some design inputs needed to optimize your PID loop. Equally important is defining your system disturbances and including them in your control system for input and output. eg. Lamp heat power and choice of sensor(s) and location.

Aside experience.

My 1st experience using a waterheater was during the water-bed era of the 70's when I was a student, I designed my own temp-controller using a thermistor, control circuit and a zero-crossing triac switch to the heater. I started with comparator control and found an unusual response from jumping in bed. So I added proportional control using unfiltered noise on the sensor to give me proportional "missing cycles" when the ZCS triac was ON near threshold. I could regulate the temperature within 0.1'C The response was softer but the result was the same.

I found the biggest error was in the location and tiny changes in water pressure on the sensor. ( I was tiny then, only 185 lbs but on a 2000 lb water bed <10% change in water pressure was tiny )

Thermal resistance between the sensor and the waterbed created a tiny offset error depending on the water pressure against the sensor. In your water tank scenario, the sensor error could be the effected by the size of tank and distance between sensor and heater or sensor and furthest surface of the water or the rate water flow or bubbles between the sensor and heater.

In my case whenever I jumped into bed the thermal resistance dropped slightly from added pressure and the power light would glow dimmer for a minute or two until a temperature dropped a tenth of a degree or to match the apparent temperature rise from additional weight and pressure of the waterbed against the thermostat.

(Lesson learnt. Do not neglect sources of distrurbances and their effects on Control System error)

Answered by Tony Stewart EE75 on December 12, 2021

Besides the obvious temperature control application, here is a beautiful project that required PID control. Make yourself a line-following bot: http://elm-chan.org/works/ltc/report.html

Answered by Christopher Biggs on December 12, 2021

A nice PID simulator is available for Scilab.

Answered by Leon Heller on December 12, 2021

Controlling temperature (it depends upon your medium) isn't terribly hard. That was my first project when I started. Pardon me, if I repeat things you already know.

I assume you already have a way of controlling the system (ie, a heater or cooler unit), and a way of getting feedback from the system (a temperature sensor like a thermistor or something). You'll need both to implement a PID loop, which is a type of closed loop control. All you really need to do after that is write a bit of software to send control commands, read feedback, and make decisions upon that feedback.

I'd start out by reading PID without a PhD. It's the article I used when I first had to regulate temperature in a science experiment. It provides some easy-to-understand pictures, and nice sample code (a basic loop that you can tweak only needs 30 lines) that explains how to control your 'plant' - in this case, the thing you want to control the temperature of.

The gist of PID - Proportional-Integral-Differential - control is to use instantaneous, past, and predicted future performance (respectively) of the system to determine how to control a system at a given point in time to reach a specified set point. In many cases, you'll have to tune the algorithm's gain factors to get the desired performance you need - how quickly the temperature will rise, how much you want to avoid overshoot, etc. You might even find you don't need the differential or even integral control to get where you want to be!

Answered by J. Polfer on December 12, 2021

Yes. Get a thermistor and a resistor. Pick a resistance that can pull a decently large current (>100mA).

Use thermal paste between them and tape them together with tape. Hook the thermistor circuit to a microcontroller through ADC. Use a transistor to control the resistor and control this with a PWM.

Develop a PID that allows you to control temp with a dial and practice making a PID that overshoots and rings the temperature. Make it over-damped and take forever to reach temp, and try to get it critically damped and get to the temp at max speed.

Let me know if more detail would help.

After you get this done reduce their thermal conductance, try adding a stage that will delay the temperature propagation and try to get it to control well.

This can also be done with an LED and a photo-transistor.

Answered by Kortuk on December 12, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP