rslogix 5000 PIDE tunning

matatata

Member
Join Date
Aug 2017
Location
Croatia
Posts
32
Hello


im using PIDE in rslogix 5000 - mode is DEPENDENT. im using it to control the temperature, via burners.


im having some problems with adjusting P,I,D, parameters. Temperature im working currently is around 900(setpoint), when i have a set of tubes coming in, making the whole thing cooler, temperature goes to 870 or something, while this is going on, output of PID is maximum and its a good thing, but, when the tubes are leaving and the temperature starts to raise, from 870 to 880 to 890 and finally 900 the output of the PID is not going down, its still maximum when the temperature is 899(1 to setpoint), temperature is raising relatively fast(10 degrees in 20 seconds), and because of that i have overshot. i've been trying to change derivative factor to see what will happen but output is doing jumps like -5 +3 -2 +1, its not smooth. is there a way to make it go down smoothly while temperature is rising?



around 890 for it to be 90%, 891 87% or something like that?


current factors are



DEPENDENT MODE - P = 5, I = 0.08333, D = 0.03333
 
#1 Start (and probably leave) D at zero.
#2 You are probably winding up and saturating the I term. While I use the PIDE, I think it tries to be too much in many cases. I shortcut integral windup by wiring the WindupHi out to one of the integral hold inputs, and WindupLo to the other. I don't have the software here, so I can't tell you exactly. You might be able to set I to zero, and play with P until you have a regular oscillation around the setpoint, then slowly increase I.
 
Based on the process description, Integral action is dominating the controller output as you re-approach set point after a tube-loading disturbance. In that scenario, as the process approaches 900, the delta error is negative (affecting P action in PIDE), but absolute error is positive (affecting I action in PIDE), and that will keep the controller output from coming down without Derivative action. Once the PV overshoots, you should see the output decrease because the I term is working in the direction you want.

Within the scope of unaltered PIDE, your choices are to: (1) accept the overshoot with current PI tuning, (2) reduce your Integral gain (currently 0.083 min or 5 sec/repeat) for overall sluggish response, or (3) work with the Derivative get rate action to decrease output as you approach set point. As you see, the problem with derivative is that a noisy temperature signal will cause it to jump around with undesired effect on the control output.

There are other approaches involving ad-hoc logic around the PIDE, or other control strategies altogether. It may be best to just start with reducing the Integral action (smaller I value with dependent gains and/or smaller P value), if it is OK to take longer to return to set point in order to avoid overshoot.
 
Im trying to adjust it and its incredible to me that a regulator would give 95% output even if the difference is 1 degree. By decreasing of I factor, did you mean actually to increase Ki? Because if i put 1/60 as I factor, regulator's response is super fast...
 
Im trying to adjust it and its incredible to me that a regulator would give 95% output even if the difference is 1 degree. By decreasing of I factor, did you mean actually to increase Ki? Because if i put 1/60 as I factor, regulator's response is super fast...
Hi, first thing. If you have I think Professional Edition of RSLogix, you will have access to the autotune function of the PIDE.

It takes a bit of practice, but essentially it does a test step change expecting a step result in PV. It should put you in a ballpark for your P,I, and D parameters.

Secondly, the PIDE can be configured in such a way to limit out outputs so that you do not get 95% output if you feel it is not necessary.
 
...By decreasing of I factor, did you mean actually to increase Ki? Because if i put 1/60 as I factor, regulator's response is super fast...

Yes you are correct, that was an error in my previous post. When the dependent I factor is specified in time per repeat, as it is with Allen-Bradley PID (minutes per repeat), then a larger value results in less integral action.

It can be thought of this way: an I factor in minutes/repeat is: "how much time between repeating the proportional action." This would be like having a P-only controller and specifiying how often you switch from auto-to-manual-to-auto, in order to reset the control action.

The other common way to specify a dependent integral factor is the inverse, typically called reset rate in repeats per time. In this case a larger value is results in more integral action.

In this thermal application, 5 seconds seems like a fast repeat period because a general recommendation is to start with a dependent repeat period approximately near the first order time constant or closed-loop period. And as you found out, going to 1 second probably made the situation worse.

If I read the original post correctly, the response to adding tubes to the furnace is good, when you have to increase the temperature due to the disturbance. But the problem is when the tube exit the furnace, it takes too long to respond to that loss of mass, and the temperature overshoots.

In this situation the process response may be asymmetric, in that it takes much longer to cool the furnace for a given output change (burner adjustment) than it does to heat the furnace. This would be expected if it is very well insulated and there is no way to shed off unwanted heat. In this case, aggressive tuning for heating will be sluggish for cooling, where the process gain is much lower.

Something that might work here is feedforward on cooling if you know when the thermal load is leaving the furnace. You could bump the output down by a set amount in order to avoid waiting for the loop to respond normally.
 
Yes you are correct, that was an error in my previous post. When the dependent I factor is specified in time per repeat, as it is with Allen-Bradley PID (minutes per repeat), then a larger value results in less integral action.

It can be thought of this way: an I factor in minutes/repeat is: "how much time between repeating the proportional action." This would be like having a P-only controller and specifiying how often you switch from auto-to-manual-to-auto, in order to reset the control action.

The other common way to specify a dependent integral factor is the inverse, typically called reset rate in repeats per time. In this case a larger value is results in more integral action.

In this thermal application, 5 seconds seems like a fast repeat period because a general recommendation is to start with a dependent repeat period approximately near the first order time constant or closed-loop period. And as you found out, going to 1 second probably made the situation worse.

If I read the original post correctly, the response to adding tubes to the furnace is good, when you have to increase the temperature due to the disturbance. But the problem is when the tube exit the furnace, it takes too long to respond to that loss of mass, and the temperature overshoots.

In this situation the process response may be asymmetric, in that it takes much longer to cool the furnace for a given output change (burner adjustment) than it does to heat the furnace. This would be expected if it is very well insulated and there is no way to shed off unwanted heat. In this case, aggressive tuning for heating will be sluggish for cooling, where the process gain is much lower.

Something that might work here is feedforward on cooling if you know when the thermal load is leaving the furnace. You could bump the output down by a set amount in order to avoid waiting for the loop to respond normally.


you got my description correctly, when the cold tubes are going in temperature will fall and regulators output will be high and will act accordingly, but as the pipes get warmer and inertion from burners is there the output should go down.



my understanding is that derivative factor should be really helpful here, when the temperature is going down - it helps to raise output, when the temperature is going up, it helps to lower the output. i feel like it jumps too much and its not smooth. i was thinking about increasing the significance of derivative while decreasing significance of integral



i've never used autotune and since we are in production i dont know what can go wrong. also in my system i can limit the maximum of pid output but that isnt a problem, i want it to go down slowly as i reach my setpoint.
 
Your instinct is correct in that derivative action will help avoid overshoot with P and I gains that result in a fast heating rate for your process. But it does have consequences such as noise sensitivity and adds another primary tuning variable. One option to help address the noise is the "DSmoothing" PIDE parameter, which will filter the PV going into the derivative (rate) calculation (assuming PVEDerivative is also turned on). Derivative smoothing is recommended, especially for a temperature input coming from a thermocouple or RTD. You can also filter the input going into the PIDE (e.g., at the analog module), but this can add unwanted lag, and becomes counter-productive when too much.

I have not used the PIDE auto-tune in RS-Logix, though I am familiar with the product Rockwell licensed for this function. One comment is that you want to make sure your process is as stable as possible while the Auto-tune routine is running. For example, do not load tubes during auto-tuning. That will cause the routine to model the disturbance and result in a poor process model and resulting gains. You only want the process response to change as a result of the controller output changes made by the auto-tuner. Under good conditions you should get "good" results from the auto-tuner. They might not be completely satisfying, but probably safe, and a good place to start adjusting from.
 
Your instinct is correct in that derivative action will help avoid overshoot with P and I gains that result in a fast heating rate for your process. But it does have consequences such as noise sensitivity and adds another primary tuning variable. One option to help address the noise is the "DSmoothing" PIDE parameter, which will filter the PV going into the derivative (rate) calculation (assuming PVEDerivative is also turned on). Derivative smoothing is recommended, especially for a temperature input coming from a thermocouple or RTD. You can also filter the input going into the PIDE (e.g., at the analog module), but this can add unwanted lag, and becomes counter-productive when too much.


I raised derivative factor quiet high and turned on Dsmoothing and tbh. i got what i wanted, while raising the temperature, from 880 to 900, when it reached 890, output of the regulator was going down smoothly, which is the exact thing i needed, problem is, after it overshot the setpoint for few degrees, while it was going down(on its own / because of pipes) output of the regulator was going rapidly up, no matter the cause of temperature drop(i mean in speed, because on its on it takes 8 minute while it took it 3 minutes to drop same amount of degrees with pipes).
 
I increased D factor very high and lowered influence of I factor a bit and i actually got what i wanted... BUT, then i realized its pretty much impossible to do what i imagined, because of when pipes would leave the zone, temperature from burners will hit and overshot will happen either way. atleast i tried :/
 
Last edited:
In reading the process descriptions in these posts, it sounds as though cold tubes entering the heating zone creates a negative disturbance, cooling the temperature sensor by about 30 degrees. You have tuned to the PIDE feedback loop to get measured temperature back to set point while the tubes are in the heating zone. Then, when the tubes leave the zone, temperature increases above set point (overshoots).

This suggests that the tubes themselves do not reach the set point temperature, and while in the zone they are absorbing heat from the burners. Therefore, when they leave the zone there is too much heat output, and the measured temperature goes up.

If you are only relying on temperature feedback, the PIDE will need a rising temperature above set point to reduce controller output from both the P and I terms. With feedback only, you need to have this positive deviation (overshoot) to reduce output. And it is expected that a decreasing temperature above set point can result in an increasing output when the P action is larger than the I action. You will also get D action if the rate is changing.

If your control system can predict when the tubes are about to leave the heating zone, it may be possible to avoid the undesired overshoot, while maintaining the rapid temperature recovery when tubes enter the zone. One option is to use the feedforward (FF) feature of the PIDE to inject negative control action at the appropriate time (i.e., some time before the feedback signal responds to the loss of thermal load). A simple FF model based on number and/or size of tubes could be used to predict how much CV reduction is required to avoid overshoot. You would use other information in the PLC, such as related to moving the tubes through the zone, to determine the best time to trigger the feedforward action.
 
Last edited:

Similar Topics

Greetings ... someone sent me a request for some student handsouts that I developed ... turns out that I had this hosted on my business website...
Replies
0
Views
109
While troubleshooting control issues due to windup, it would be helpful to be able to view the error term due specifically to the error term in...
Replies
5
Views
1,876
Hi all, Having some issues setting up a PIDE Cascade control loop. Have been trying to go through the Wp008 doc but there's probably something...
Replies
9
Views
5,501
I have an application that I was wondering if these function blocks could help me out. I work at a hydro-dam (less than 4 MWatts), and we control...
Replies
5
Views
2,570
Hello Guys, Please i have setup a PIDE to control flow, the PV is flow and the CVeu is to control VSD speed. I have included an autotune. The PV...
Replies
11
Views
4,177
Back
Top Bottom