PID giving smaller "kick" than expected

Consider the following scenario with a PID block:
• SP=0; PV=0; OUT=0; BAL_TIME=0; OUT_LO_LIM=0; OUT_HI_LIM=100; STRUCTURE=PI action on error, D action on PV; MODE=ROUT; GAIN=2
• The PV and the BKCAL are forced to 0, GoodCascade
• In one scan, switch the PID to RCAS and give it a setpoint of 10
• What I expected to happen in the first scan is that PID/OUT jumps instantly to GAIN*ERROR=20 (and then starts ramping upwards because of the I action)
• What happens instead is that a much smaller “kick” is given, around 8. Do you know why?
Do you know which parameters to look at, what might be limiting the initial kick?

I also tried first putting it in RCAS and only a couple of seconds later giving it the new setpoint, but the initial OUT is still smaller than I expected.

  • Interesting. I don't know why yet, but if you do the same using MAN and AUTO, you get the expected change of 20 on the output. I increased the SP from 0 to 10, with a gain of 2 and the OUT moved 20% and ramped consistently with integral action.

    Andre Dicaire

  • In reply to Andre Dicaire:

    Did some more checking. I found that when transitioning from ROUT to RCAS with RCAS_IN set to a different value than PV, (ie, creating a Setpoint bump) the OUT value will ramp and no proportional action would occur. Once in RCAS, RCAS_IN changes will drive proportional action as expected.

    With the PID loop set to 0 % on PV, SP and OUT, the behavior is a little different, with an in initial bump that is dependent on the value of Reset. I don't know why we see this bump when coming of 0%, but it is not there when the loop is say at 50% (PV, SP and OUT).

    The RCAS_OUT provides the same value and status for synchronizing the upstream block for bumpless transfer, but in my test, I set the RCAS_IN to GOODNonCascade, and did not synchronize the values.

    So I think the intent is that if you transition from ROUT to RCAS and the RCAS_IN is not equal to SP, the PID loop will only act on I, integrating to SP without a bump on the process. If you align the value of RCAS_IN and transition to RCAS, and then bump the RCAS_IN, the proportional Kick occurs as expected. If you are saturated at 0%, there appears to be some kick occurring, influenced by the value of Reset.

    In a running process, I would think it would be undesirable for a mode change to cause a bump in the process. Try some other scenarios off the low limits and see if you see the same as I saw. I would track the current SP using RCAS_OUT so mode transition does not bump the PID OUT.

    Andre Dicaire

  • Istvan,

    The DeltaV PID is designed so that when you make a transition between MAN to AUTO, CAS or RCAS modes with a difference (or a different difference) between SP and PV, it does not give the proportional "kick" regardless of the PID Structure that is chosen. However, if you make a SP change after the PID is in AUTO, CAS or RCAS, it will give the proportional kick if the PID structure chosen applies “P” to error.

    Also, note that the DeltaV PID is implemented as a "positional" algorithm. Thus, the internally calculated “PID/OUT” can be below or above the OUT_LIMITS. It appears that the internally calculated PID OUT was around -12% when you made the 10% SP change. This added 20% (delta error * Gain) to the internal PID OUT which resulted in the external OUT going to about +8%.

    The internal PID OUT (without FFWD) is really P+I+D+Bias. This Bias diminishes to 0 with time constant equal to the RESET time when the PID is in AUTO, CAS or RCAS modes. If you set PV=SP and OUT=0 and then put the loop to MAN, the Bias should be 0. Then repeat your test and you should see the OUT go from 0 to 20%. Let me know the results.

    Hope this helps!
    James
  • In reply to James Beall:

    Thanks James. Your explanation above explains exactly what I observed.

    Andre Dicaire

  • In reply to Andre Dicaire:

    Your welcome! Hope it helped. I am anxious to hear from Istvan as to whether this explained his situation.
  • In reply to James Beall:

    Thanks James.

    Following you explanation I've did a test:
    Setting RESET to 0 will make that Bias diminish to 0 "instantly" so a change from ROUT to RCAS sholud generate a kick on OUT and this was the test result.
  • In reply to gamella:

    can you give us an update on your project? Eager to hear if the proposed solutions in the community were of value to you. Thanks!

    Best Regards,

    Rachelle McWright: Business Development Manager, Dynamic Simulation: U.S. Gulf Coast

  • In reply to Rachelle McWright:

    James, thank you for the explanation. We managed to resolve the issues we had by understanding the behavior.
  • In reply to James Beall:

    James,
    will there be even in MAN/ROUT another internal OUT in the PID? I had expected that all calculations are stopped and reset in MAN.
    What I understand from Istvan was, that the PID was in MAN first and then set to RCAS with a SP of 20 from PV=0
    What about the Alpha and Beta parameter to reduce the P & I calculation of OUT for sudden SP changes and how long are they active?

    In a control mode (AUTO/CAS/RCAS) with a limited OUT, how can I reset the internal OUT beyond the OUT limits to that limit?
    When I use OUT HI/LO Limits for some simple predictive control, I also use the ARW and let it about 0.1% more tighten then the OUT HI/LO Limit to reduce at least the Integral part by 16. I don't want even an internal OUT which need to brought down from somewhere far away of my limits before the OUT move away from the OUT HI/LO Limit. -> Integral Saturation
    Best Regards
    Michael
  • In reply to Michael Krispin:

    Michael,
    Good questions! In Istvan's case, it turns out that he was not in Manual at the start of his test. A previous move of the SP to 0, while in Auto, pushed the "internal OUT" of the PID to -8% resulting in and external OUT of 12% (+20% + (-8%)) when the SP was moved to 10%. You are correct that if you put the PID in MAN or ROUT, in the PID "internal OUT" will track the actual external OUT. Let me explain it this way though It's not exactly the way it is implemented. Think of it as a temporay Bias being added to the PID internal OUT to make the internal OUT match the External OUT. When the PID is put into an automatic model (Auto, Cas or RCAS), the temporary Bias goes to zero in a first order response with a time constant equal to the Reset time. So, when changing modes from Man or ROUT to an automatic mode, there is no bump of the OUT.

    Note that for the DeltaV positional algorithm, when the OUT is at a high or low limit or a downstream block is limited, and the PID is in a control mode and ignoring Derivative action, the Internal OUT = Last Integral Contribution +- Gain*Errror. For stand alone loop, or a master loop without "Dynamic Reset Limit" active, the BACKCAL_IN is essentially the external OUT. The integral action is turned off during any limited condition.

    When the PID is in a control mode (AUTO/CAS/RCAS), it is normal that the internal OUT CAN (but may not) be beyond the OUT limits. This is not integral saturation, it is simply the functionality of a positional PID implementation. In the rare cases where want the OUT to come off the OUT limits more quickly, you can use the ARW feature (as you have mentioned ) or in V12 and later you can use the "Recovery Filter" PIDPlus feature which provides more adjustability of this action. I can send a presentation on the use of the PIDPlus Recover Filter option if you are interested.

    The Alpha is used to determine the amount of first order filter applied to the signal being used for derivative action. The Filter value is Alpha*Rate. It is always active.

    If the PID/Structure chosen is "Two Degrees of Freedom", the Beta and Gamma factors are always active. As shown in Books On Line, these parameters are 0-1 and determine how much of the P and D action respecitvely are applied to the Error. Thus, a Beta less than 1 would lessen the size of the "proportional OUT move" to a SP change.

    Hope this helps!.

    James
  • In reply to James Beall:

    Hi James,
    pfuh, very detailed information. Thanks for that, but I need to read again to understand ;-)
    In principal I think, I was not so wrong in my understanding.
    I have used the PIDPlus / Recovery Filter and saw a positive effect than without.
    But have to be carefully to find a good parameter slowly down from 1
    Unfortunately, there is not really a description how that Recovery works except that the control 'comes out faster out of the socks'.
    Seems that there is some DeltaV secret built into the PID Block ;-) . I would be interested about more information about this parameter.
    I know from competitor PLC a parameter at a PID Block like Reset Integral without knowing exactly the internal function.
    Especially if I used the OUT_HI/LO_LIM from external logic I have seen behavior from the DV PID which let me missed that, when the PID/OUT moved very late in the right direction.
    In some cases to reset the internal values what I thought it came from the Integral saturation, I just set the Slave 1 cycle to Man and then back to CAS. This helped if the Slave Out limits where longer at the limits. You told now that Integral is set to off at any limit. That let me now a bit speechless behind. Up to know I thought it would have to do with an Integral Saturation which were reset in MAN.
    Without going in more details, it might listen a bit strange with such logic on OUT_HI/LO_LIM. But finally it is important what comes out at the end of the total control accuracy. I used this in complex cooling control loop application, where the chemical process in the reactor was far away from linear.
    Thanks and Best Regards,
    Michael