Using Arduino to Control Hydraulic Pump

Hello all,

I am working with a team on converting a diesel engine powered school bus to a hydraulic hybrid. We are using an Arduino
Duemilanove to control the hydraulic system. I am looking for help on how to control our hydraulic pump. The literature
on the pump is in this pdf: Literature | Danfoss PowerSource
Pages 23 and 26 show specifically which pump we're using. The supply voltage is 24 V and two solenoids are used to control
the angle of the swash plate (which controls the flow direction of hydraulic fluid).

The literature for the pump lists pulse width modulation over the control current 225 to 600 mA as the control method.
My question is how to achieve this control smoothly using PWM and the arduino?
Any help would be greatly appreciated.

Sincerely,
HHBP

An Arduino can generate PWM with analogWrite()

However it is only 5V. It can be used to drive a transistor to switch the 24 Volts - consider optocoupling to prevent 24V 'zapping' your arduino. you might check the robotics section for 5 to 24 volt chips/interfaces.

my 2 cents,
Rob

Pages 23 and 26 show specifically which pump we're using. The supply voltage is 24 V and two solenoids are used to control
the angle of the swash plate (which controls the flow direction of hydraulic fluid).

The solnoids can be operated the same as relays, so search the forum for relay. If you want to control the speed of the motor using PWM, you may be able to use a solid state relay.

Thank you for the responses. I am using a 12 V to 24 V converter to power the pump using the automobile power. However, I am still confused on how to perform PWM by "pulsing the duty ratio variable over control range" of 200 mA to 600 mA with a 100Hz rectangle in order to control the solenoids. The Arduino can only output current up to 40 mA I believe so how do I PWM at this higher range?

Thanks,
HHBP

HHBP:
Thank you for the responses. I am using a 12 V to 24 V converter to power the pump using the automobile power. However, I am still confused on how to perform PWM by "pulsing the duty ratio variable over control range" of 200 mA to 600 mA with a 100Hz rectangle in order to control the solenoids. The Arduino can only output current up to 40 mA I believe so how do I PWM at this higher range? Thanks, HHBP

Hmmm.. does the PWM frequency HAVE to be 100Hz?? Or is higher OK?? The built-in Arduno PWM is a lot higher frequency, but if it's truly driving a solenoid that may be OK.. Otherwise you would need to program the Arduino to do the 100Hz PWM.

Do the two "proportional Solenoids" work opposite to each other??

What else does the Arduino need to do at the "same time"??

Arduino can control a higher power transistor so the 600 mA is no problem. Here's a small board with 4 power FETS, with opto-isolation so Arduino really is just driving small LEDs inside the isolators: http://arduino-direct.com/sunshop/index.php?l=product_detail&p=60

But, I don't think we know enough to be sure about a design here. The link you gave does not have the PWM info. Can you point to more details?? I think Eaton thinks you'll use one of their control units. Not that you have to... but you need to know more about stuff like the flow rates with different swash plate positions VS the solenoid currents.

If this bus is going to have passengers on it, this better work really well!

DISCLAIMER: I mentioned stuff from my own Shop...

Terry, here are answers to some of the questions you asked:
-The preferred PWM frequency is 100 Hz, but I believe that anything from 70-200 Hz is acceptable.
-I believe the two solenoids do work opposite to each other.
-The Arduino will be doing alot at the same time because it is our controller for the hydraulic system. It makes decisions on
the operating mode based on pressure and temperature sensor readings from the hydraulic system, and throttle and brake requests from the driver.
Operating modes are changed through the arduino controlling the pump and a transfer case.
-In terms of more PWM details, there is not much else I can find unfortunately, which is one of the reasons I posted in the forums
-I don't know specific numerical relationships between swash plate position, control current, and flow rate. I do know that the greater control current
results in a greater swash plate angle and therefore a greater flow rate.

Thanks for taking the time to help.

OK, only have a minute, but I found some good info on setting the PWM frequency and put it here:

http://arduino-info.wikispaces.com/Arduino-PWM-Frequency

So 125Hz is possible, and that means you don't have to worry about doing it inside your main software...

You have a complex project. What electronics tools, test equipment, expertise is available??

I am actually a senior mechanical engineering student at Georgia Tech. So, the tools, equipment, and expertise that are available
are those of the mechanical engineering department ... which is somewhat substantial.

You are right though, the project is very complex and very challenging at times. The controls aspect is particularly challenging
considering I'm an ME and it is not my area of expertise.

I think you can probably get some help from Eaton.. "Application Engineering" people if you make the right contact...

I could not managed to open specs of pump however, if swashpalte, which is likely, is proportional, i suggest you to use a proportional valve controller, if eaton proportional valves are current driven. You can control it simply with PWM but, you probably and likely may get low and errenous performance since dither and deadband is problem to stasfy. I tried much, however it is very complicated to achive all needs of proportional valve. Ramping and cutoffs may be another problem if you care. As i said, Pump is very complicated and i strongly suggest you to use a proportional controller. There are cheap ones with full functions like 50 USD's. Of course, you can, then, control whole system with an arduino.

Regards.