Compactlogix PID bias/feedforward

I appreciate all the suggestions, however the system is installed and running with PID instructions and I'm not looking to change to PIDE. I just want to improve the overshoot issue. I thought using the .bias would be the way to go since this feels like exactly what feedforward is mean to do. Maybe putting the loops in manual, setting the output, and putting it back in auto is easier but seems like a clunky solution.

I'd like the bias to reduce the % output when the event is triggered but I'd rather not add the %output back in when it is turned off. So if we're running along at 75% output and then we stop feeding parts I want to immediately reduce the output instead of waiting on the PID loop to respond. So if I move a -75% into the bias the furnace will undershoot a little and then eventually get back on control. So maybe without the load of the parts, the loops might settle out at 40% output. Now if I remove the bias it all gets added back into the output so now I'm at 100% (my testing indicates it really is at 115% output as this seems to add windup) and I'm probably going to overshoot again.
 
... if I remove the bias it all gets added back into the output so now I'm at 100% (my testing indicates it really is at 115% output as this seems to add windup) and I'm probably going to overshoot again.


Not if you remove the bias gradually, e.g. multiply it by 0.999 once every 10s or so, and the PID will gradually shed its compensatory windup.

Of course, compared to that (gradually reducing bias), switching into manual and back does not seem so clunky.

Applying the offset to the integral accumulation (PID_instance.DATA[0]) would be more direct, and not suffer from the potential resolution* problem.

But Peter is right, simply changing bias is clunky to begin with. If the process has some measure of load (feedrate), the PID can control a parameter that is combined with that feedrate to set the actual output.

* These are real values, so the .BIAS term will never overflow, at least not in our lifetime. There could be resolution problems, if .BIAS became a few orders of magnitude bigger than the CV.

The original question was that, if the bias was incremented "hundreds or thousands of times can it cause a problem?" Bias and CV and Integral accumulation are all 32-bit REAL values: 1 bit for sign; 8 bits for exponent; 24 bits for mantissa; cf. here. Overflow is not an issue; mantissa is where the problem would be. Assuming the bias is of the same order of magnitude as the CV, 1k bias additions drops 10 bits from the mantissa; 10k additions drops 13 bits. That leaves 11 bits, or less than a tenth of a percent, of output resolution, which is probably as good as or better than the output element.
 
It looks like using the integrator (Data[0]) is going to work like I want it to.

When the event occurs I fire a one shot and calculate the total of (Desired CV - Actual CV + PID.DATA[0]) and move that into the PID.DATA[0]. This allows the PID control to stay in auto and essentially has bumpless transfer from the new CV point. Then when the one shot goes away there isn't any shift up of the CV like I was getting with the .BIAS function.

Thanks everyone.
 

Similar Topics

Hi We are looking to replace the temp control system on our main oven. we currently run a eurotherm 2416 PID Controller with a single TC but are...
Replies
7
Views
3,113
When I tried to use the autotune feature, my CompactLogix complained that the input was not stable enough prior to the step change. I had to tune...
Replies
0
Views
1,916
Hi guys, I have a Project with PID block, but When I config Parameters, only Ki effect to system, others are not... I don't know how to control...
Replies
2
Views
2,511
Hello there! This is my first time posting a question here... on PID instruction for CompactLogix controller so I am giving it a try... Please...
Replies
3
Views
2,549
I am using a AB CompactLogix L33ER CPU. How many PID instructions will this processor support?
Replies
2
Views
1,407
Back
Top Bottom