Unable to Control Level PID output

Hello, 

I have a level controller PID and its doing this:

Why when I set the PID Parameter STRUCTURE to PID Action on Error or PI Action on Error, D Action on PV  , and MODE to auto, the output does not control the setpoint? The output swings from 15 to 45% (because I have low and high output limits of 15 and 45%).

However when I set PID Parameter STRUCTURE to P Action on Error, D Action on PV , AUTO the loop controls setpoint.

I would like to set the structure to PI Action on Error, D Action on PV, but when I do, output drops to 15%.

Anyone help would be great. 

http://i.imgur.com/7Prj6Ai.png tuning parameters 

http://i.imgur.com/nSdOUaR.png loop when in PI Action on Error, D Action on PV

Below is picture of working in  P Action on Error, D Action on PV ok, but I want to use PI Action on Error, D Action on PV because this is level control.

10 Replies

  • You’ve got a tuning issue, I think.  The Reset value of 1.5 seconds means that the Integral term is applying itself vigorously – every 1.5 seconds it repeats whatever the Proportional component is calling for.  That will quickly drive the output to the limits.  When you turn the Integral off (“P Action on Error, D Action on PV) then the integral action is not applied.  The solution is to re-tune your loop.
     
  • In reply to Steve Elves:

    Thank you Steve,

    This is helpful to know. This makes sense. If reset was higher, it would slowly decrease and not just jump to low and high  limits. Do I need to set the structure back to PID Action on Error and then retune the loop?

  • That’s what I would do, for sure.  If you are going to use an Autotuner, make sure that you set it for an integrating process as this is a level loop.
     
    Good luck!
     
  • I agree with Steve. I have to ask, why do you want D action? Levels are often noisy due to surface harmonics and noise is troublesome for derivative action. Lambda tuning is the most effective method I have ever seen for tuning levels. You set lambda, the closed loop time constant, based on how much level swing you can tolerate. If you want to minimize variability of the Outflow (assuming that is what the loop is manipulating) you will have to accept slower recovery of level after a disturbance. But that is not a bad thing. You are attenuating the variability of the flow moving downstream by accepting some variability of the level and as long as the level stays within limits, it shouldn't matter. In a surge tank, lambda can be quite large. In a vessel that requires tight control of level, lambda will be shorter. In the most challenging cases, such as boiler steam drum level, feed forward may be used with the level controller only providing feedback trim.
  • Hi Lou:
     
    I think if you look at the attachments to the original question, the value of the D tuning parameter was set to zero (in other words, no derivative action).  The structure mentions D on PV, but if the tuning value is zero there is no effect. 
    Your recommendation for lambda tuning is spot on.  It’s difficult for us to be more helpful than this without knowing a lot more about the particular process!
     
    Steve
     
  • Hello,

    The PD controller will maintain the behavior at the bias but it will be incapable of maintain it if a disturbance hit the process or a set point change is introduce. You should use a PI and start with small rate ( a large taui in the PID formula) and small controller gain (kc). In general, a large kc or a small taxi will increase the oscillations of the output. So, I agree that the problem is the tuning. I would start by using half of the gain you have in the picture. If you still see undesired oscillation levels, use half of the gain again until you see a logic level of oscillation.

    I hope this help too.

  • In reply to Lou Heavner:

    Thank you Lou for responding. 

    This control level loop will often (maybe once or twice a month) experience be needed to control at multiple set-points (60% 65%,77%, 80%, 84%, etc.) depending on production needs. Also at times, the product in the tank will be different at times. 

    Yes, I do not need D action. I will use Tune with Insight On Demand system, and set to PI control. I will set the structure to PI Action on Error, D Action on PV 

    Currently the tuning is stable with the attached results, but PV and SP has a bit of offset. 

  • I understand that the rate parameter has to be different than zero to have a PI. Right now you have a P-only, which shows always an off set (at set point different than the bias).

  • In reply to Carlos Velazquez:

    Thanks Carlos,

    We have a few level loops set for PI and the D is at 0. Yes, I am changing to PI.

    Thanks

  • In reply to DCS Newbie:

    As has been mentioned, the problem appears to be that the integral action (Reset) is much too fast (1.5 seconds).  The reason it is stable with  the "P action on Error and D on PV" is that the integral action is turned off.  As Lou Heaver suggests, you should use Lambda tuning for this "integrating process" of the level.  Try a Reset time of 600 seconds (or larger) to slow down the integral action.  The structure you desire to use will work fine.   For more information on Lambda tuning for integrating processes, see this article in ISA Intech magazine  "Loop tuning basics: Integrating processes" -   https://www.isa.org/intech/201604basics/
    Hope this helps!
    James