PID loop question

Tom W

Member
Join Date
Jul 2005
Location
tennessee
Posts
5
Thanks in advance to all who read this.

The PID I am looking at controls the injection of ozone into the water just before it goes into our filling machine.

Observations about original PID setpoints and the operation of the machine:
1. There is approximately 30 seconds between the time the PID calls for the generation of ozone and the sensor sees a change in ozone levels.
2. The flow of water in gallons per minute has an effect on the amount of the scaled error.
3. The ozone readings ranged from 0.015 PPM to 0.125 PPM.

Original PID setpoints are as follows:
1. P = 0.9
2. I = 0.3
3. D = 0
4. Loop update = 0.07
5. Max output CV% = 9


I have worked with the PID and made the following settings:
1. P = 0.9
2. I = 0.2
3. D = 1.50 (I set this high to try to make the PID respond sooner)
4. Loop update = 0.07
5. Set point before scale is 0.035 PPM.
6. I vary the max output based on the following flow amounts:
a. Flow less than 10 GPM, 0% max output
b. Flow between 11 to 50 GPM, 7% max output
c. Flow between 51 to 140 GPM, 8% max output
d. Flow greater than 141 GPM, 9% max output
If I can get my PID to be more steady, varying the max output may not be necessary.

I have included an image of my PID setup screen and an image of a trend of the current PID settings:
1. Red line is water flow in GPM.
2. Green line is ozone level in intermediate tank.
3. Blue line is ozone level in supply line that feeds the intermediate tank.
4. Pink line is percent output from PID to ozone generator.

It appears that the output from the PID is occasionally staying on longer than necessary. I think this may be due to integral windup, but I could be wrong. Also, I just noticed that my feed forward bias is set at 15000, this may be a mistake that is adding to my strange readings.
I hope I have included enough information and I appreciate any advice you could give.

Thanks,
Tom W.

pid setup.jpg pid trend.jpg
 
30 seconds from injection to reaction might be too long for PID control.

You could try and slow it down by adding x10 to the output 90 instead of 9.. that would make alot more incriments per error
 
A slow oscillation around the setpoint, as you appear to have, is usually due to too much integral action. Try reducing it (longer Ti on most PID controllers).

You are correct that derivative action can speed up the response for a rapidly changing setpoint. Otherwise, derivative tends to slow down the control action and avoid overshooting the setpoint. It also makes the output erratic to signal noise in the setpoint or controlled variable. Most loops don't use derivative and it is usually seen in temperature control.

A 30 sec dead-time makes control much harder since a feedback controller is "flying blind". The best bang would come from adding a "bias predictor". This is an equation outside the PID controller that calculates what output you need, given the operating conditions. Of course, it requires enough instrumentation (flow rate or pressure drop, temperature, ...) to know the operating condition. You must plot output required vs input conditions to fit an equation. The equation feeds to the PID loop a pre-calculated bias (.BIAS in ControlLogix). This is termed "feed-forward control". If perfect, such "open-loop" control can be sufficient, but in practice one still needs feedback trim since you don't have enough instruments to know the exact conditions and plants vary. Integral action just adds to the bias you command. If you check "no reset windup", the integral will continue from the existing output when the PID becomes active again. Of course, the details vary w/ PLC and they aren't all clear in how they implement PID.
 
Also note, that Ti in AB is Minutes per repeat, not repeats per minute, therefore less is more. You are adding I every 12 seconds, which is faster than your reaction rate.
 
Why use PID at all? Watch the operators control the process in manual, emulate it in logic, make the timing and movement increments adjustable, and watch the system operate a while. PID is over used, and fuzzy logic is, in my opinion, a bandaid on a failed algorithm.
 

Similar Topics

Good morning guys, I have a machine that fills bags of prepared food at a variable speed, and a machine that checks the weight of the bag. What...
Replies
23
Views
6,817
Hi all I've just been fiddling around with the PID loop in an S7 313C , using the Function block CONT_C FB41. My question is should I be calling...
Replies
15
Views
7,768
Hi guys, I have one question about PID loop. I am doing system that controls flow of water and it consists of flow meter (has output 4-20mA)...
Replies
13
Views
10,466
Hello, I am attempting to tune a PID loop on a process. The process involves a valve with electronic actuator that has quite a high deadband...
Replies
10
Views
2,170
We have a PID loop at the plant that measures our drum outlet temp. It adjusts a damper to control the temp within the set point. We have a...
Replies
8
Views
1,416
Back
Top Bottom