Controlling without a PID

nicksmick

Member
Join Date
Feb 2015
Location
Dallas TX
Posts
12
I was reading a thread about how to do some involved things with a PID and didn't want to hijack that thread, so here we go...

I control a lot of stuff without a PID. Using compute statements. The simplest example for controlling a temperature would be...

Compare temp to setpoint, if low, steam valve output gets incremented by 1. If temp is high, steam valve output gets decremented by 1. Do this every second or two.

Better control would be... valve output = valve output + (setpoint - actual temp) Thus a large offset in temperature results in a large change in the output. A small offset results in a small change.

Example - Setpoint is 200, actual temp is 190. Valve output would change by 10%. OR - Setpoint is 200, actual temp is 199. Valve output would change by 1.

Most common I use... valve output = valve output + ((setpoint - actual temp) * multiplier). Usually the multiplier is 0.1 or so. It depends on how you scale inputs and outputs. The multiplier makes up for that.

Example - If setpoint temp is 200, and actual temp is 150, I probably don't want to change my steam valve output by 50, from 25% open to 75% open. So I would use a multiplier of 0.1, to compute a change of 5 (from 25% to 30% open). or perhaps a multiplier of 0.01 to compute a change of 0.5 (from 25% open to 25.5% open.)

I find I can accurately control things with this in a lot of situations. I have examples where I have two compute statements, one for increasing temperature, another for lowering, each with different multipliers.

I'd enjoy hearing your thoughts on this.
 
I was reading a thread about how to do some involved things with a PID and didn't want to hijack that thread, so here we go...

I control a lot of stuff without a PID. Using compute statements. The simplest example for controlling a temperature would be...

Compare temp to setpoint, if low, steam valve output gets incremented by 1. If temp is high, steam valve output gets decremented by 1. Do this every second or two.
This is similar to floating control



Better control would be... valve output = valve output + (setpoint - actual temp) Thus a large offset in temperature results in a large change in the output. A small offset results in a small change.
Is a small change smaller that one? You need a gain. Then it would be like floating control.



Example - Setpoint is 200, actual temp is 190. Valve output would change by 10%. OR - Setpoint is 200, actual temp is 199. Valve output would change by 1.
[/qoute]
Yes, but this is an integrator only control. It has been done before.



Most common I use... valve output = valve output + ((setpoint - actual temp) * multiplier). Usually the multiplier is 0.1 or so. It depends on how you scale inputs and outputs. The multiplier makes up for that.
So you do have a gain. Your gains are not modified by the same time. In other words a 0.1 gain is twice as effective if the update rate is every second versus every two seconds.


Example - If setpoint temp is 200, and actual temp is 150, I probably don't want to change my steam valve output by 50, from 25% open to 75% open. So I would use a multiplier of 0.1, to compute a change of 5 (from 25% to 30% open). or perhaps a multiplier of 0.01 to compute a change of 0.5 (from 25% open to 25.5% open.)
Yes we get it.



I find I can accurately control things with this in a lot of situations. I have examples where I have two compute statements, one for increasing temperature, another for lowering, each with different multipliers.

I'd enjoy hearing your thoughts on this.
It has been done before... better.
 
You are, in essence, designing your own PID controller. You would have to do the field work/trial and error to determine gain and time etc. If it's a "one of" , your efforts will be worthwhile. If you have a PLC that has a PID function AND you have multiple applications, it would make sense to use the PLC version so that others may more easily follow and understand.
 

Similar Topics

I was reading a thread about how to do some involved things with a PID and didn't want to hijack that thread, so here we go... I control a lot of...
Replies
1
Views
925
Afternoon all, I'm working on setting up a large excel recipe table for porting updates through the Linx Gateway RTD/DDE function into my recipe...
Replies
2
Views
115
Compactlogix controller, program has 28 conveyors that use TON's to start the conveyors. The TT sounds a warning horn during start and the DN...
Replies
10
Views
493
I'm a Manufacturing Engineer with limited PLC experience and I am doing some research for our Controls Department. Does anyone have experience...
Replies
4
Views
181
Good Evening , I should know more about Solid State Relays . I have a system with 8) 120 vac Vibrators . These Solid State Relays have...
Replies
24
Views
2,065
Back
Top Bottom