P&ID Controller, want valve output to go 0-5% in one jump then control from 5-100%

Hi, I have a cascade loop for dump control on a vessel. Level is the master and flow control for the dump valve is the slave.

The problem I have is the liquids meter does not read very good from 0-100 m3/hr or 0-5% open on the valve. I want to know if there is a way I can setup the controllers so that if the level controller is calling for 0-100 m3/hr flow the flow controller keeps the valve closed, and anything over 100m3/hr the valve will initially open to 5% and then apply P&ID control from there.

Thanks

  • There are multiple ways to do it. I would think a couple of the easiest ways would be to use the tracking feature in the P&ID block or to set the out low limit for the PID block utilizing a condition block.
  • Ditners,
    As Jason Brumfield mentioned, there a several ways to do this. I thought of characterizer blocks in the path from the Level controller output to the slave flow loop setpoint as well as in the path from the slave flow controller output to the AO block to handle the conditions you mentioned. Note that you have to use the "reverse" characterization feature of the characterizer block in the bkcal_out of the downstream block. But, this is kind of mess!

    Note that we have to keep the level controller in automatic during the time the requested flow setpoint is less than 5% so it will continue to control properly (integral will be turned off since slave loop is low limited) and eventually raise the requested slave flow loop SP>5%. Thus, I don't think that Tracking on the slave would allow this since the master LIC Output will be set equal to the actual SP of the flow loop. However, building on Jason's idea for managing the out limits on the slave flow loop, try this:

    Simplified code:

    If (FLOW/PID1/SP<5%) or (FLOW/PID1/OUT <5%) THEN FLOW/PID1/OUT_LO_LIM :=0 AND FLOW/PID1/OUT_HI_LIM :=0;
    If (FLOW/PID1/SP>5%) THEN FLOW/PID1/OUT_LO_LIM :=0 AND FLOW/PID1/OUT_HI_LIM :=0;

    I haven't had time to test this but if you are interested in this method, let me know if you have question and we can dig into the details. Note that any method that interrupts normal PID control will cause a limit cycle of the level and flow when the process is in this region.
    Good luck!
    Jaems
  • Hi Ditner,
    By not a good reading I assume you are getting too much noise between 0-100 m3/hr. James Beall brings up some great points. Instead of going after the output have you considered dealing with the flow measurement noise? You could add this expression in a CALC block of the slave control module:
    IF '^/PID1/OUT.CV' < 5 THEN
    '^/PID1/PV_FTIME.CV' := 10
    ELSE
    '^/PID1/PV_FTIME.CV' := 0
    ENDIF

    The PV_FTIME is a first order filter applied to the input measurement. The 10 is in seconds and places a first order filter on the measurement so that noise greater than 6.0 Hz is attenuated. In other words PV_FTIME acts like a signal average, the higher the number the longer the averaging.

    Sal Salamone

  • In reply to Sal Salamone:

    Sorry Sal I was not very clear in the original post, by not very good reading I should have said the meter cannot read flow at all below 100m3/hr, meter is oversized for the application so noise was not the problem.

    James, I haven't fully tested it yet but your solution is what I believe to be exactly what I am looking for.
    Thanks