Pressure control with flow limiting

DairyBoy

Member
Join Date
Jun 2007
Location
UK
Posts
393
I have an application that requires control of the pressure in a pumped line but with flow rate limiting. The pump is inverter-controlled and the PLC is an AB compactlogix L33ER. I have achieved this before in a Siemens plc but with limited stability during flow limiting.


I suspect that I am reinventing the wheel, but my method is to set up two PID blocks; one to control the pressure to a setpoint and the second (configured PV-SP, with its own setpoint) to monitor the flow rate. The output of the flow-sensing PID function is then subtracted from the output of the pressure PID function and the result is the speed value to the inverter.


The pressure loop output is sent to the inverter unaffected by the subtraction until the flow rate approaches the flow limit setpoint, at which point the flow PID output starts to rise, reducing the output value to the inverter via the subtract function.


I'd prefer to pre-scale and send the F PID o/p directly to the P PID output limit tag but it doesn't appear to be accessible and in any case, I'm sure there's a more orthodox method already built-in, so I'd be happy to be enlightened.


Thanks.
 
Use two PI blocks and use low select. This shouldn't be too hard if the low select is implemented correctly
That makes sense. What are some things to consider, or common mistakes one might make when doing the low select? Or is it as simple as just picking whichever output is lower?
 
That makes sense. What are some things to consider, or common mistakes one might make when doing the low select? Or is it as simple as just picking whichever output is lower?
The problem lies with the implementation.
If only proportional gains are used, this is easy.
The problem lies in how to limit the integrators from winding up.
Limiting the integrator output is the tricky part. There must be some information transferred between the PI blocks to limit the control output.
The problem is that in this case there should be only one integrator but since there are two PI blocks there are two. There must be some way for the two PI blocks to limit both integrator terms.
 
Hello Dairy,

can you try something like shown in attachment. You could use one PI controller but you would need to adjust the gain from flow limiting.
Tho whole idea is that pressure PI controller works without any limitation when Flow rate is below limit. When this limit is reached, then additional control deviation is present that will reduce error (SP-PV) and thus reduce CO.

This solution works with one PI controller and use deadband zone. Maybe it worth a shot.

Pressure_flow_limit.jpg
 
I am surprised that none of the Rockwell fans have jumped in to tell us how to do a low select.

If you are going to roll your own then try this. There are two control loops 0 and 1
Error0 = SP0 - PV0
Error1 = SP1 - PV1
Out_Int = Out_int + min(Ki0*error0, Ki1*error1)
Out_Pro = min(Kp0*error0, Kp1*error1)
Output = max(min(Out_Int + Out_Pro,100),-100) // Limit output to +/- 100%

A normal PID block does not know what the other PID blocks are doing. This is a problem since to do a proper low select there should be just one block with two sets of inputs.

Somebody make an AOI.

Someone that is really good would take into account that some systems have negative gains or the orientation is not always that a positive output always increases position or force.
For instance, a hydraulic cylinder may increase the force when retracting instead of extending.
What if the force limiting is bi-directional? In other words, the controller tries to hold a position but a force that hold force is limited in either direction to make the system compliant.
 
Last edited:
Have two control loops for Pressure and Flow.

Use the Pressure Loop output to control the MaxO of the Flow Loop. Set the integration value of the Flow Loop to Zero if the Output of Flow Loop held by MaxO (except at higher values).
 
Set the integration value of the Flow Loop to Zero if the Output of Flow Loop held by MaxO (except at higher values).
That can result in discontinuous changes in the output. The total from the flow loop may not be less than the pressure loop and the flow loop is again limiting.
It is best not to change the integrator contribution to the output abruptly.
 
The block to use in AB is the ESEL block. Build 2 loops, tie the CV from them to the ESEL inputs and the ESEL output to the 4/20 output you are controlling. I am generally controlling flow with a pressure override in this situation. If pressure is above setpoint, the valve will begin to close below what the flow loop is trying to do through the low select block. Problem is if you don't have a flow recycle path to recirculate to, you are just going to dead head your pumps or go down on hi pressure. ps. I find this easier to configure using FBD.
 

Similar Topics

Hello all, I am new to pid loops and control. I was wondering how to control a system with two process variables. This is a water system with a...
Replies
7
Views
2,012
Hi, Just got a specification from a customer that said: "The outlet flow to be controlled by: - A combined flow rate/outlet pressure for all...
Replies
12
Views
4,052
I have a PID loop I would like to produce a mathematical model for. I may not have paid enough attention in the Control Systems lectures a few...
Replies
1
Views
2,122
Good day all. I just installed a basic pressure control loop the other day. It's in a stand alone CompactLogix that serves no other purpose than...
Replies
14
Views
6,547
Hello all, I'm looking for a bit of advice/help with the above problem. I'm looking at a fuel gas line with two valves (different flow ratings)...
Replies
4
Views
4,500
Back
Top Bottom