PID Control - Duty Assist pump

niallbowie72

Member
Join Date
Dec 2007
Location
Aberdeen
Posts
3
I need to control 3 pumps (Duty, Assist, Standby)

The duty pump will be controlled from a PID loop based on a flow input.

When the PID output reaches a high setpoint, the assist pump should start.

When the PID output reaches a low setpoint, the assist pump should stop.

If the duty or assist pump fails, the standby will be used.

I need to ensure there is a bumpless changeover from 1 pump to 2 pump operation and from 2 pump to 1 pump operation. And the two pumps need to run at the same speed to share the load.

Can anyone offer some advice on how I can program a Siemens S7-315 PLC to provide load sharing of the two pumps and a bumpless changover from 1 to 2 pumps and from 2 to 1 pump.

My first thoughts on the matter were to set the two pumps to half the PID output and slowly ramp them up. Not sure if this is such a good idea??

Thanks in advance
NB
 
niallbowie72 said:
My first thoughts on the matter were to set the two pumps to half the PID output and slowly ramp them up. Not sure if this is such a good idea??
I think you are on the right track only I wouldn't divide the PID output in two. It sounds like one pump can supply 50% of the needed output. I would only have ONE pump in PID control. The assist pump would always be in open loop mode. When the set point goes above 50% ( you may need to start at a lower set point ). I would ramp the assist pump to always be half of that and when the set point goes below 45% I would ramp the assist pump down to 0. The trick is to ramp the assist pump slowly enough so that the duty pump's integrator has time to react otherwise the combination of pumps will always overshoot the set point. Always ramp the assist pump in open loop but never too quickly.

Don't use two PIDs!! They will fight each other.
Don't use one PID to control one or two pumps unless you are going to change the gains when switching between one or two pumps.
 
Thanks Peter
They want to start the assist pump when the duty pump is close to 100%.
They also want to share the load between duty and assist.

I think I will ramp the assist pump up until the 2 speeds are matched then force the assist pump speed to be the same as the duty pump speed.
When the assist speed reaches a low setpoint, ramp the assist pump speed down to zero.

Hopefully this should do the job....
 
What about changing the duty pump on a timed basis, so pump 1 is the main pump for say 24 hours, then pump 2 is the main pump. This would try and even out the load a little. I realise it complicates the programming.


Cheers

Edit: I maybe misread, i thought the pumps had to wear out together.
 
What is the HP of the pumps? Is having two pumps running and splitting the load at decreased power draw by taking advantage of affinity laws worth the effort? 1 HP NO -- 100 HP maybe -- 1000 HP definitely.

Dan Bentler
 
niallbowie72 said:
Thanks Peter
They want to start the assist pump when the duty pump is close to 100%.
OK, you are thinking that each pump can produce 100% flow. I was thinking that each pump produces only 50% of the total flow. That way the PID uses 0 to 100% of total flow for its set point.

I think I will ramp the assist pump up until the 2 speeds are matched then force the assist pump speed to be the same as the duty pump speed.
You only need to ramp the pump in open loop. The other pump in closed loop will ramp down automatically to maintain the total flow set point.


When the assist speed reaches a low setpoint, ramp the assist pump speed down to zero.

Hopefully this should do the job....
That will work.
 
Keep in mind that your plant gain changes when you run two pumps off of the control signal as opposed to one. This may not matter if the control gains for one pump are tuned conservatively. But you may get some oscillation when running with two pumps that you don't get running with one.


Keith
 
I've done this in the past using 2 PID loops, but only 1 is active at a time. Start first pump and allow it's PID loop to ramp to maintain setpoint. If PID output reaches 100% and PV is low for 10 seconds, switch PID to manual and hold at 100%. Start second pump and allow it's loop to control to same setpoint in auto.

Going down, if second loop reaches 0% output and PV is above setpoint for 10 seconds, switch second PID to manual, hold at 0%, stop second pump, and switch first PID back to auto.
 
The way we normally do this is to have 1 PID loop. Run the duty pump until the flow requirement reaches 80% of the duty pump full speed, start the assist pump and ramp its speed up, as you are controlling to flow the PID will ramp down the duty pump. When the pump speeds match then switch the assist pump to the PID speed signal and control both with the PID speed output. Adjust the ramp rate so that the PID can handle the increase in flow.

when flow requirement reduces to 40% ramp down the assist pump the PID will ramp up the duty pump to maintain the flow.
 
I've also read somewhere that there is a control method that synchronizes the VFD1 and VFD2 so that they are using 1PID which is fed into VFD1 and the VFD2 follows the speed of the VFD2..

but i don't know why they do it this way..
 
danieluy said:
I've also read somewhere that there is a control method that synchronizes the VFD1 and VFD2 so that they are using 1PID which is fed into VFD1 and the VFD2 follows the speed of the VFD2..

but i don't know why they do it this way..

This is mostly for conveyor type systems.
 
niallbowie72 said:
Thanks Peter
They want to start the assist pump when the duty pump is close to 100%.
They also want to share the load between duty and assist.

it looks like you will need a ramp generator with analog switching and hysteresis. switching should be at 90% to have some reserve flow control. it will go like this:
0. the speed setpoint of each pump is run through an analog switch and to a ramp generator (10 seconds from 0 to 100 %).
1. pid output is less then 90%: the duty pump setpoint (at the ramp input) is equal to pid value, and the assist pump setpoint (at the ramp input) is 0.
2. pid output is >= 90%, the duty pump setpoint (at the ramp input) is equal to pid value divided by 2, and the assist pump setpoint (at the ramp input) is the same. then the duty will ramp down and the assist will ramp up in a way that the sum of the setpoints (at the ramp output) remains equal to pid value.
3. case 2 should remain until pid output is <= 80% (to avoid too much switching if value oscillates).
 
Peter,

I really like your solution.

I am facing an exactly similar control problem trying to control header pressure using two pumps.

Say P1 = duty pump, P2 = assist pump

As I understand your solution, when the output of the PID reaches 90% (P1 running at 90%), ramp the assist pump to 45% (P2 running at 45%). This will inturn cause the PID output to go down to 45% (P1 almost equals P2). If the PID output now goes below 45% for (say) 20 seconds, ramp the assist pump P2 down to 0% and then P1 would start climbing again.

I am sure this would work great...but to further advance your solution lets say we do this...

When the two pump speeds are equal, we switch the duty and the assist pumps. So when both speeds are at 45%, P2 is switched on to PID control and P1 is ramped down to 0%. When the speeds eventually become equal again, we switch the pumps again.

This seems to be a good strategy to balance out the pump loads. Is there anything I should be careful about with this switching?
 
This seems to be a good strategy to balance out the pump loads. Is there anything I should be careful about with this switching

Be careful with balancing running hours on pumps - they may both need maintenance at the same time, which may be convenient but may not be if your process is continuous.
 
JohnW said:
Be careful with balancing running hours on pumps - they may both need maintenance at the same time, which may be convenient but may not be if your process is continuous.

Right you are. I would always come back with the question "so you want them both to fail at the same time so the whole plant will be down?". No problem.
 

Similar Topics

Hi, I've recently tuned a PID for a level control in a channel application. Everything was functional fine until a new feed pump was added to the...
Replies
10
Views
10,210
I have S7 1512C controler for controlling 48 PID temperature loop, the output is PWM. Please I need the best, most efficient way to write the...
Replies
13
Views
587
Hi all, I'm having trouble solving a problem I've been working on for several months, and thought you might like a stab at it. The machine runs...
Replies
22
Views
920
How can I connect PID Output to a valve. In ladder logic program is there any logic do I want to add between valve and PID? PV=SP What will be the...
Replies
7
Views
407
I am setting up control for Hypochlorite dosing. The easy part is the dosing calculation for flow pacing but I would also like to setup trimming...
Replies
8
Views
942
Back
Top Bottom