proportional hydraulic valves control with arduino

in the last couple of days I read many treads about PWM, but it is not quite clear to me if one can control (PWM) hydraulic valves with Arduino.
Depending on the calve type, they might require to operate on different frequency and also most need dead band adjustment.

Has anyone done that successfully with Aduino?

If Googling "PWM Arduino hydraulic " didnt turn up and results, I guess its probably not been done before

But technically I can't see any issues about doing this.

I'm not sure if the normal PWM outputs will operate slow enough for what you need e.g. around 1Hz or lower etc, however at those sorts of speeds, its easy to generate PWM in code

The next issue is the amount of current and voltage needed to drive the hydraulic valves. What sort of input voltage and current do these require?

I suspect they don't use 5V TTL signals at 40mA, you'd need to drive them via a power FET, using a separate power supply for that side of the circuit e.g. the power side.

rogerClark,
the way I see the challenge is that I need to be able to modify PWM frequency between 20 and 200Hz depending on the valve used. Let's say small trim-pot that could be used for that ajustment... It will be nice to be able to adjust that.
From what I read about changing the PWM frequency on Arduino, i understood that it goes to specific preset frequencies, depending on the divider used to modify the timers. So if i need 55Hz i might not be able to get that. Or maybe I understood that wrong.

The voltage for the valves could be 12VDC or 24VDC, with current consumption up to 1A, but this should be easy to deal with by using few extra parts...

I've not tried it, but this library claims to be able to do PWM in the range you want

"The library allows for a frequency range from 1Hz - 2MHz on 16 bit timers and 31Hz - 2 MHz on 8 bit timers"

https://code.google.com/p/arduino-pwm-frequency-library/downloads/detail?name=Arduino%20PWM%20Frequency%20Library%20v_05.zip&can=2&q=

Unless you're using a valve that has a fancy PWM signal input and requires a specific frequency you're probably on the wrong path. PWM is a duty cycle; the ratio of time that the signal is high vs. low. The granularity of the switching on/off (the PWM frequency) is not likely to be an important factor and the Arduino's default ~500Hz should be fine.

I am afraid you are not correct with the last statement about the frequency. All proportional valves that are controlled with PWM (the other tpe is controlled by current) require very specific frequency. it has something to do with the mass of the shuttle controlled by the coils. that shuttle serves as a pilot and hydraulic pressure actually moves the main valve shuttle. It is in a way electro-hydraulic amplifier.

The proper etiquette would be to properly describe your problem before criticizing the answers you receive. A link to the valve you're using would be appropriate.

Hi, the frequency of the PWM is important, as seamaster says the valves that are in a PWM system are specifically designed for this purpose and the mass and speed, thus energy required has a lot to do with how they perform, especially at low duty cycles.

I had to design a very quick(design time) and dirty PWM system for a hydraulic arm and had to make the PWM frequency adjustable to find the point of best performance of the valves.
This was an analog system using TL594 and BTS621 as the output device.

I might have a play with the library too, and see what it can do.

Tom......... :slight_smile:

Just want to shine some light on the Proportional hydraulic valve control. The spool, the moving part inside the valve, have a tendency to stick to the valve body when left stationary. This is mainly due to seals applying a pressure to the sealing surface and press the oil away. The result is the seals stick to the spool. The best comparison I can come up with is when walking on ice. As long as the shoes do have a grip you have fairly good control but when the shoes start sliding the heat generated under the feet lubricate the ice and you have no control. When applying a frequency we make the spool shiver slightly, hence we maintain the oil film in the sealing.

For ordinary projects the PWM used to control the amperage is a easy way to maintain the lubrication, providing the frequency is suitable for the job. The frequency needed will be between 50 and 400Hz but most commonly used valves is in the range between 100 to 200Hz. There are many factors impacting the selection of frequency but the easiest way, and maybe most important factor is the inertia of the spool. A large, heavy spool need lower frequency than a lighter spool. Again, this is simplified.

Form advanced control of proportional valves much higher frequencies may be used. The software is then programmed to give a "burst", a fairly hard command to change the position of the spool. This should theoretically ensure the spool is moved when we change the command but leave the spool stationary when the command is frozen. The idea behind this is that is should reduce wear tot eh seals. Frankly, I have never seen a valve worn out due to the 200Hz frequency, on the other hand I find the simple 200Hz more responsive.

A proportional valve also need to move the spool a given distance before start to open up and the oil flows. This is called I-min. In the other end of the scale is the current needed to fully open a valve, regardless of how much current you apply the valve is fully open at the I-max value. Compared with a car, the wire from the accelerator pedal have some slack. With lot of slack you have little control as you need to press down and wait to see if anything happens. With no response, you give some more command and see if anything happens. Finally, you get annoyed and give too much command. You need to calibrate your I-min value.
When overtaking you need the wire set in a way enable the engine to reach 100% power. If too tight, you reach 100% power long before the petal have traveled to the end. You then need to set your I-max.

All this might seems like details but when the hydraulic system is a part of a closed loop using a PID controller this is the difference between success and failure.

As I am new to Arduino/Genuino I would be very happy if anyone here could guide me to a example that enable me to set the Frequency in the range 50 to 400Hz using a constant where the value is in Hz. At the same time, we need a constant for I-min and I-max. As we do not have the ability to measure the amperage this constant could be just a none intrinsic value.

Hi,

Some proportional drivers/plc programs provide a parameter called DITHER, it applies a low percentage of modulation on the duty of the PWM to effectively shake the spool loose.
It is very useful in slow start movements.

Tom.... :slight_smile:

Hi, PWM control of proportional hydraulic valves is possible, however, like ppl said there are other issues to solve, like dither, frequency, voltage drop or fluctuation, cut-off, damping and so on. I have trying on these issues for some time and got some way but, results are not satisfactory as industrial controller so far. Keeping current constant with pwm seems very hard. Also industrial controllers does this job with PID controller so you need to set up a pid controller to keep the current desired rate.

It is more logical for me to use a low cost industrial controller and control it by arduino. This is also safer way than complete arduino solution.

Regards.