# PID algorithm for constant temperature controller.

Hello.

Im looking for help to write the coorect PID algorithm for heating controller.

For start in attachment Im sending You the graph. If someone of You can help I could send some more informations.

Best regards,
Greg.

#### Attachments

• 34.3 KB Views: 375

Any idea?

jim hardy
Gold Member
Dearly Missed
Just what do you mean by
coorect PID algorithm
?

One PID algorithm is
Controller output = proportional gain P X error + integral gain I X ∫(error) + derivative gain D X d(error)/dt

Svein
The one thing you need to remember when trying to regulate a heating controller is the time lag through whatever you are trying to regulate. This lag can easily run into hours.

jim hardy
Gold Member
Dearly Missed
Slope of temperature curve during that first on-cycle should give a clue about process thermal capacity, and maybe that time lag mentioned by svein..

I know the formula for PID. But If You have seen my first drawing You should see that We are regulating the time when the relay is ON. We all supposed to regulate the time when the relay is OFF. Is it possible to make it by one formula or I will have to make two formula with time: first when the relay is ON second when the relay is OFF and make a loop.

Best regards,
Greg

#### Attachments

• 32.8 KB Views: 363
jim hardy
Gold Member
Dearly Missed
We are regulating the time when the relay is ON. We all supposed to regulate the time when the relay is OFF.
I'm not sure i understand that statement.
ONtime is (1-OFFtime).

You're mixing linear control with" on-off control" here, sometimes that's called "Bang-Bang control"
and the math of that is another world. I won't go there myself
From a quick search:
Here's a paper...
http://dimacs.rutgers.edu/Workshops/AIMS/slides/SLafrica4.pdf

and a couple references
http://en.wikipedia.org/wiki/Bang–bang_control
http://cds.linear.com/docs/en/datasheet/1041fa.pdf
http://liberzon.csl.illinois.edu/teaching/cvoc/node86.html

Your best bet is to keep your on-off intervals short compared to the process time constants and treat it as linear
or insert a PWM at your controller output.