Pneumatic cylinders in unison

We are using two of the exact same air cylinders. When we activate the solenoids, they do not extend at the same speed. We have adjusted the valves many times and can not get any type of consistency or pattern. One time one will be faster and the next time the other will be faster.
Is there any possibility of getting them to extend at the same speed?
We have even tried plumbing them to receive air from different air tanks.

Hook them both up to the same solenoid. This will be half the flow rate at each, but they will extend at the same speed.

Edit: Nice catch @Jon_Stratis. My day after bag day brain fart is fixed

Sorry, my SW skills are pretty lame…


I thought every actuator had to have its own solenoid. I will have to check on that rule. However, as I think about it, that won’t work for us anyway. The cylinders have to retract at separate times:(
They are being used to lift the robot. We bagged it last night with it not working how we want, but we have other cylinders we are going to continue experimenting with.
The resistance is not the same on them either (different weight distribution), so we know that is playing into it. It just does not make sense that we can not get them adjusted correctly. This was one of the first mechanisms we put on the robot and it worked great until we add weight to it.

This is inaccurate. They’ll receive the same amount of pressure as they do now, but half the flow rate, as the solenoid is providing the flow restriction.

The speed they extend is, largely, due to friction and force applied on them. Depending on what you’re using them for, you may be able to overcome that - for example, we have two pistons that actuate our intake up and down. They are mechanically linked together with a rigid structure, which ensures they move together, even if one is applying a little more force than the other at any given point in their movement.

A team I was talking with last weekend was using two pistons to raise their robot to hab lvl 3. Due to an imbalance of weight, this wasn’t working evenly like they wished. While they tried to fix the balance, they were also exploring options for controlling the pistons using PID. By picking a 3-position solenoid with a closed center for each of them, they can essentially stop the cylinder in any given position, letting them cycle between extending and stopped based on sensors in order to get a relatively even lift. However, please be aware that these solenoids may not be designed to relieve when pressure is released! Some do, some don’t. If they don’t, you’ll have to get creative with your plumbing design to ensure all pressure is properly released.

1 Like

Since you posted this… I’ll expand on the end of my last reply. You can see how it would work in this video:

And a partially plumbed solenoid. Pressure would come in from the bottom of the picture., go out to either end of the cylinder at the top. The Y connectors at the top feed back into check valves (only the right side is actually hooked up in the picture) that would release air back into the system. This way when the solenoid is in the closed center position and can’t relieve pressure, pressure can still relieve through the check valve when you open your manual release valve. Depending on your valve, you may or may not need a setup like this.

1 Like

Last year, our robot’s ramps each had 2 cylinders, tee’d symmetrically from one solenoid. Even then, they actuated out of sync, so we added some flow limiters to one side of the branch to give finer adjustment to balance them out.

I posted earlier about this same topic…people advised using flow valves–and they got us halfway there, but the weight distribution on our robot was off, so we still couldn’t get four cylinders to go the same speed even that way.

So we added what we’re calling a 'lift governor".

Each cylinder has a string that it has to pull to extend, attached to a ‘foot’ at the end of each rod.

The four strings all go back to turn the same 1/2 hex rod where all four wind against a constant force spring. So the ‘fastest’ cylinder is slowed to the speed of the slowest by the spring-winding. Our spring is six pounds of force–and that seems to be enough resistance to slow down the fastest cylinders to the speed of the slowest.

Our four cylinders are 1-1/16 dia, so 47 pounds of force each–188 pounds. The constant force spring adds to the total load they pull, but the extra resistance seems effective to keep them going the same speed (with flow valves)

Intend to write this up in a handout for judges. Think it may increase our status for engineering awards. ??

1 Like

It is a genius idea! I do hope you are awarded for it.

1 Like

There are several reasons cylinders may not operate at the same time (See Jon’s post above). For instance, the bearings for the cylinder shaft may not have amount of lubrication, one shaft may be slightly bent, the loads may not be balanced or the length of the tubing may be significantly different lengths. However, the OP talks about adjusting valves and I have to ask what the OP is actually adjusting.
It is also possible that something in the software/CAN interface may be actually be sending signals to the solenoids at different times. Please also be aware that most valves are “air piloted” and require a specific air pressure to move the valve body inside the valve. If there is a restriction feeding one valve or if that valve is operating at slightly lower pressure, it will not behave the same way. If the cylinders are not operating on fixed structures in your robot, (such as lifting the robot against the floor), then the side friction on the cylinders may never be the same causing a variable in the operation. R94 says the outputs of different solenoids may not be plumbed together, it does not prevent having a single solenoid feed two cylinders.

The problem is inherent in having two independent air lifts without feedback - once one of them gets a bit ahead, the weight shifts onto the one which is behind, which becomes even slower. @hrench’s lift governor does some mechanical feedback, @Jon_Stratis mentioned which controlled 3-way valves. Another way to control this would be if you have an actuator which shifts the CoG of your robot so that it loads one or the other of the cylinders more heavily; you would start this in a central position, and move it toward the side which is higher than the other as the climb progresses.

@hrench Our team seems to be having the same issue. I am having a hard time visualizing what you are talking about. Is there a way you can post an image of this mechanism?

I really need to get this written up in a more professional manner, but I made a quick sketch hoping to convey our idea…I hope you can get it from my bad sketch.

The strings are wound around the hex-rod when the cylinders are not extended. When the cylinders extend, they pull the strings and turn the rod against the force of the spring, to wind up the constant tension spring.

if one cylinder is trying to be faster than the rest, it is slowed by the string pulling.

This only worked with flow valves to get the cylinders pretty close…if one cylinder was way-slower than the rest, it could still unbalance the robot.

How do you tension the string so that when a piston rectract it rewraps around the rod? Or do you not worry about it and just let the string hang?

The constant tension spring should wind the shaft back up when the cylinders are retracted.

You pulled on it and extended it with the cylinders…now when you retract the cylinders, it naturally wants to return to its original position. Like a tape measure winding in.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.