Pump pressure control loop with flow limiting

RonJohn

Lifetime Supporting Member
Join Date
Jul 2013
Location
NE Ohio
Posts
535
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 to control a well water pump. Now, along with maintaining constant pressure, I'm tasked with decreasing pump speed should the flow rate go above X gpm.

I've not done this exact thing before but I see two possible solutions. One would be to create a master/slave PID arrangement where flow above X gpm would decrease the pressure PID setpoint until flow goes below X. The other would be to keep the flow & pressure PID loops separate and make the pump command the sum of the CVs.

What's the preferred method for handling this scenario?

PLC: 1769-L16ER-BB1B, V21 firmware
FVD: PowerFlex753, 25hp HD w/ 20-750-ENTR comm card.

Thanks in advance.
 
Simple, just have two independent PID blocks for your flow and pressure control, compare the outputs of the two (easy if they're both ranged 0 to 100%), and then select the lowest output and move that to your output channel.
 
I also would recommend two PID loops.

In Siemens you can limit your PID output, I would use the output from the flow PID to limit the pressure PID.

In essence you are comparing the outputs and only using the lowest of the two as stated above.
 
There's always another option, isn't there?

Thanks much for the feedback, folks. Manipulating the output upper limit (.MAXO) in the PID instruction would be a sweet trick! (Note to self: Make sure .MAXO > .MINO)

Peter, could you elaborate on modifying the .MAXO value without a second PID? I'm not sure what else would work without a "bumpy" response.

RonJohn
 
If you have a centrifugal pump and variations in your discharge head then you may need to add one more wrinkle to your logic. If the head varies flow vs. speed on a centrifugal isn't fixed. You may need to add a test, and if he flow i higher than the max then decrease the max output.
 
Thanks gentlemen for the insight. I don't have any pump info, but it's safe to say I'm dealing with a centrifugal pump.

Tom, I'll check to see if there are variations in the head. I appreciate the "heads up".

When performing the original loop tuning, we saw flows in the 100-200 gpm range as various tests were performed. My flow limiter will be set for 300 gpm, which should only be reached if there's a major leak or somebody opened the wrong valve.

It may be that I'm overthinking this and should simply setup an algorithm to reduce the .MAXO proportional to the flow - 300 gpm whenever flow > 300. If .MAXO = .MINO, I'll shut off the pump and trigger an alarm. This would be a good start; I can always add more complexity later if needed.

On a side note, I found another thread Tom & Peter both contributed to which mentioned a fast update time needed for pressure loops. I'll stick that in my back pocket for the next time I head to the well. Love this website!!!
 
agree with rate
g.png
 
I often have the opposite task, controlling the flow, with limit in pressure (mostly because of old pipes).

I usually do it by having one PID (actually I don't even often implement it, I use the frequency drive's original one) and switch what reference/feedback pair I forward to it.
(if pressure to high, goto pressure mode, if flow reaches setpoint, go back to flow mode)

It works very nice, and is super-simple to implement...


But now I like RET's way maybe even better :)
 
Thought I'd give a quick update...

I did implement Peter's suggestion of modifying .MAXO with an adjustment value which was proportional to flow error whenever flow error was negative. This worked fairly well but the flow always settled out above my flow limit. I added an integral component to this algorithm so the flow settles at the limit just fine now.

I too had considered separate PIDs for flow & pressure, choosing the lower CV for my command. My concern is that 99.999% of the time, the system would control via the pressure loop and this would cause the flow PID to wind up to 100% output. If this was the case, the overshoot could be huge whenever we reached flow limit. I'd love to have time to play with this concept but my "honey do" list grows by the moment. Thanks again for everyone's input.
 
I too had considered separate PIDs for flow & pressure, choosing the lower CV for my command. My concern is that 99.999% of the time, the system would control via the pressure loop and this would cause the flow PID to wind up to 100% output.

That can be solved by preventing the windup. Just add 1% (or .5%) to the pressure PID's output and then write it the .MAXO of the flow PID.
I have done this with great success.
 
That can be solved by preventing the windup. Just add 1% (or .5%) to the pressure PID's output and then write it the .MAXO of the flow PID.
I have done this with great success.
Brilliant! Thanks, Mickey. I hope to get a chance to try that out soon.
 

Similar Topics

I will have to start up frequency controlled pump that has pressure feedback. In the prepared plc program a pi-controller that has a pressure...
Replies
16
Views
4,898
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
3,934
in my program in which i am trying to keep 4 bar as cut off (i.e 2 pumps through direct connectors stops immediately and 1 pump which is...
Replies
2
Views
2,542
Hi, I am new to PLC's and have been tasked with building an MCC panel for a pumphouse supplying water from a dam to a fruit packaging and storage...
Replies
7
Views
5,779
I have a Powerflex 753 and want to control a water pump using the analog input on the main board. I have a current pressure transducer. If I use...
Replies
5
Views
2,004
Back
Top Bottom