Isomorphic (Customer) asked a question.

Productivity PID for 3 water pumps, how to switch pid to 1 pump only while the other runs at 100%

I'm trying to control 3 water pumps with a setpoint pressure of 400 psi. I want to call pumps 2 and 3 online only when the setpoint pressure of 400 can't be obtained via the first pump running at full. So i would need PID to be working on pump 1 first, once it's running at 100 % if the pressure falls below say 380 psi , I would need to lock pump 1 at 60 hz full on and then switch PID to bring up pump 2 as much as pid needs, this process would repeat , so pump 1 is on full , pump 2 is on full and if pressure set point drops to 380 with pumps 1 and 2 running at all full pumps 1 and 2 would get locked in at 100 % and pid would then transfer to bring up pump 3.... process would reverse as set point pressure of 400 is obtained and if pid on pump 3 hits minimum speed it shuts off and transfer pid back to pump 2 etc.... anyone have any examples of the ladder to achieve something like this? any pointers thanks in advance


  • PouchesInc (Customer)

    I would create a bit that is enabled by the PID being at the setpoint. Many ways to do this, such as setpoint = process value, or a rate of change <= some value showing that output is stable, etc..

    Use this output bit to turn a timer on of 5-10 seconds. As long as the PID is at the setpoint and stable for the timer's time, then you know you are good. Have that timer set another bit called "pump 1 stable" or something. Once that bit is on, use a rung that says if pressure is less than 380, turn off the bit the enables the pump 1 PID loop and turn on a bit that sets pump 1 to a static 60hz, and enabled PID loop2.

    Use the same sort of logic as the first one to then go into PID 3. Write some reverse logic for shutting it all down and resetting back down to only 1 pump on and using PID.

    Expand Post
  • JohnnyB (Customer)

    I'm assuming you are using VFD's to control the pump speed. Pressure is resistance to flow. When one pump is running at maximum speed and is unable to maintain the pressure setpoint it means that the pump is now flow limited. Bringing the next pump online would make up the required flow, and now both pumps would be running at a reduced speed to maintain the pressure. As the flow demand increases and the two pumps are at maximum speed and unable to maintain the pressure, bringing the third pump online would again make up the flow required. I suggest to just let the PID loops modulate the speed of each pump as required to maintain the 400 psi setpoint, no matter how many pumps are running. You just need a method of determining when to start/stop the other pumps. You could use motor RPM or Hz feedback from the VFD's for determining when to command the system to start/stop the other pumps.

     

    We used to have a central hydraulic system. It provided 1800 psi hydraulics to a production floor full of plastic injection molding machines. The hydraulic power unit consisted of three 60 GPM servo controlled variable volume pumps and one 100 GPM fixed displacement pump. The variable volume pumps were assigned primary, secondary, and tertiary priority based on pump hours to keep the run hours on the pumps balanced.

    The system did not use a pressure transducer to provide feedback for maintaining the 1800 psi pressure setpoint. It used a 25 gallon piston accumulator that was charged with nitrogen to 1800 psi with the piston "centered". The accumulator had an LVDT through the piston that provided a 4-20ma signal to the pump servo cards and to the PLC for monitoring. As hydraulic flow to the molding machines ebbed and flowed the piston in the accumulator would rise and fall. The variable volume pumps swashplates tracked the piston to keep it "centered". The hydraulic system maintained 1800 +/- 10 psi with anywhere from none, to one, to thirty plus molding machines running.

    The PLC monitored a feedback signal from each of the variable volume pumps swashplate angle. When the system was started the primary pump would come online. As more and more molding machines were started the flow demand would increase. When the primary pumps swashplate got to 75% stroke for a period of time the secondary pump would come online. With the two variable volume pumps swashplates running at 75% the system would start the fixed displacement pump. The tertiary pump would be brought online last if there were enough molding machines running to require that much flow. The pumps would be taken offline in the reverse order if the swashplate angles dropped below 25% for a period of time.

    Expand Post
  • Isomorphic (Customer)

    yes all 3 pumps are on gs4 drives. I'm worried that if all 3 pumps are being controlled by PID there will be too many oscillations as they are all fighting each other, hence wanting to only one pump at a time being actively controlled by pid to control the pump that currently has "'headroom" for the current demand

    • JohnnyB (Customer)

      We never experienced the pumps fighting each in our hydraulic system. All three pumps followed the same command signal from the LVDT. Each servo card was tuned the same, i.e. non were more "aggressive" than the other. The power unit was downstairs in our Co-Gen plant 150 feet away from the molding floor so the tuning was not required to be too "snappy". The main accumulator and a few other bladder types in the system absorbed the instantaneous flow hits. As the molding machines cycled and the hydraulics ebbed and flowed, the pumps tracked with each other smooth as butter.

       

      Based off of my experience with that system, I would just tune the PID's of GS4 drives "the same" and let them do their thing. I would also suggest putting a surge tank in your system to help dampen what the pressure transducer sees.

      Expand Post
      • Durallymax (Customer)

        A hydraulic system can be quite different from water systems as it is positive displacement while many water systems are centrifugal. In a system with multiple centrifugal pumps you need to avoid a situation where the pumps are just running max speed and moving no water, but the pressure SP is met.

         

        OP did not describe the mechanical layout, but if this system is using centrifugal pumps and they are manifolded in parallel with check valves, there are still several control algorithms that can be used. Pump curves need to be accounted for to determine min and max speeds the pumps can operate at. From there, establish set points and time delays for bringing on additional pumps. If VFD is at max speed and another pump is needed, you'll want to step the VFD down while bringing the other pump online to minimize the shock (not a big deal with small pumps, but again, that info wasn't given). You can do this by manipulating the VFD SP through a routine then bringing things back to the desired SP for a smoother transition. Demand based scheduling gets more involved when mixing pump sizes, but we have no idea if these are 1hp pumps or 2,000HP pumps(well I guess we know they're not 2000HP if on a GS4).

         

        If these are manifolded centrifugal with no check valves, they'll need to run the same speed.

         

        All guesses without knowing the mechanicals though.

        Expand Post
  • OkiePC (Customer)

    If all three of these pumps are centrifugal pumps of the same size and feed into the same header, it has been my experience that the best results are when running them all at the same speed. One PID loop, output to all three pumps. Start with one pump, if setpoint isn't reached at max speed, after a reasonable delay, add another pump. If setpoint is achieved and pumps are at a minimum speed, drop one pump. You can limit the accel rate a bit with drive parameters to keep from overshooting when additional pumps are added if the running pump(s) are at the upper limit and pressure setpoint is not met.

     

    Running multiple pumps at different speeds into the same header usually means one pump is doing all the work and the other(s) are just spinning water which can lead to cavitation if left that way long enough.

    Expand Post