Find the Speed Limit of a Piston?


Many of the topics and reasoning that we’re provided here lend a great approach to approximate the rod max speed. However, the best way that you can understand what that speed will actually be is to capture it on camera and approximate the velocity like you’ve done. There are so many assumptions that you have to incorporate in calculations in order to exclude particular variables, which will change things up. I do not advocate that you eliminate them entirely but use them as a comparison. Keep an off-board system that mimics a robot’s pneumatic setup and use it to help you further understand how your new system components will act. That way, you can have both your calculated approach and system approximation to help make your design decisions.


I was hoping that students would do some additional research into this and ask more questions.
In real world terms (FRC robots) air flow is the determining factor in piston response. The valves we use and in particular the 1/4" max ID tubing would not allow a 1 cfm air flow. There is also the drop in stored air pressure as air moves from the tanks through the valves and then into the cylinders. That is to say that the stored pressure will instantly change to something lower. While the pressure regulator will try to continue to supply working pressure, it also has a specific flow rate restriction that slows the movement of the air into the cylinder.
For a brief look behind the curtain, the valves and tubing serve to make pneumatic systems on our robots safer. Large bore and long throw cylinders will take a while to move, giving participants time to move bodily parts out of the way. A 4" bore could potentially exert 753 lbs of force but will not act instantly. Following robot rules it will likely take several seconds fully extend.
My observation is small transmission shifter cylinders will operate in less than a second, while 1" diameter 12" throw cylinders might take more than a second to fully extend. Please keep in mind that the surface area of the piston is much smaller on the side with the piston rod. A 1" cylinder has a surface area of .785 sq. in. without the rod (47 lb force @ 60psi) . A 1/4" rod will remove .049 sq. in. from that making the total .736 sq. in. (44 lb force @ 60 psi).


Quick question about this: You said that the tubing only allows 1 cfm, but the solenoids we consider as “low flow” are listed as 0.22 Cv and 220 L/min, which convert to ~8.1 CFM and ~7.8 CFM, respectively. Why would the valves be designed to allow such high flow rates through if the tubing they connect to does not allow a flow nearly that high?



SMC and Bimba cylinders are not so different from each other. They are available in comparable bores, porting, and construction styles. Just find the nearest ‘close enough’ SMC cylinder to your intended Bimba cylinder and use its data. It will be a reasonable approximation and likely get you the answer fidelity that you need.

Final numbers/performance should ALWAYS be confirmed empirically and the design iterated as needed (this goes for all mechanisms, pneumatic or otherwise).


Is there a way to calculate the speed of the rod as a function of the force it’s moving?

I’m building a 30lb combat robot that is a pneumatic flipper, similar to Bronco for those who have seen the show. Optimizing flow rates through all of the components has proven to be a fun challenge that has definitely kicked my team’s butt to far. We’re at the point where we’re just finding the highest flow rate components that reasonably fit our weight budget.

I’d like to be able to determine the flow rates for each component based off a desired launch velocity. To do this I’ll need to know how the force/back pressure on the cylinder affects the speed of the extension of the rod. Our first thought was to just experiment with some smaller cylinders that we have on hand, but is there any way to figure this out analytically?


Point of clarification. Cv is a constant use to rate the flow through a fitting or valve given certain pressure drop. The standard definition of Cv is the flow of water in GPM with 1 psia & 60 F. Obviously this gets more complicated with air. Cv for air valves is experimentally determined with the results dependent on test conditions and varies with the manufacturer. It really most useful to compare valves than actual calculations. A little simplistic but you can think of it in electrical terms as a series of resistors with Delta P =V and flow=C. As the cylinder pressure increases the Delta P decreases which also decreases the flow. The speed the piston moves is dependent on the pressure at the piston head and the physics of the load. Fpiston=Fload+AccelerationLoad*MassLoad. Enough to make your head hurt. :]

One way to dramatically speed things up is lock the cylinder and precharge it.


FrankJ’s post above this is a sideways answer to your question. Precharging the cylinder partially extended is the best way to achieve the fastest motion. In your situation, what would work well is designing an over-center mechanism that has terrible mechanical advantage for the first part of the stroke, so it’d have to charge up to significant pressure to start lifting your opponent, then would quickly launch them once it started moving into the better mechanical advantage portion of the stroke. Low flow rate would still penalize you, but it’d be a penalty of firing delay/rate of fire, rather than ultimate effectiveness of the flipper.


OK, let’s take this from the start - these results differ from my earlier posts as I’m working now, not remembering what I did over a year ago:

Unless there is some reason not to use a spring, I recommend against locking a cylinder and releasing it to use the stored energy; a spring is more repeatable, and more efficient with the energy. In 2016, our competition boulder launcher used a battery of springs and a gate latch to launch the boulder, and the strings were stretched by a short, stout pneumatic piston which was retracted after the latch was engaged. Leaving out the latch method from here forward…

Caveat: I am not a pneumatic engineer. These are theoretical pneumatic calculations done by an underwater acoustician. YMMV.

To maximize air flow within the recent FRC pneumatics rules (in no particular order):

  • put an air tank on the low side of your regulator, at least as large and preferably two or three times larger than the cylinder(s) you will be driving quickly
  • make the tubing run from the tank to the solenoid valve to the cylinder as short as possible
  • use a high C[sub]v[/sub] solenoid valve, and in particular not one with a fitting smaller than the allowable 1/8" NPT
  • pre-exhaust the opposite chamber of the cylinder(s), and provide as much exhaust space as you can; when we experimented, we did not put a fitting on the top side of the cylinder, leaving a 1/4" hole. This may require a spring or gravity return to be practical
  • get the pressure in the tank as close to 60psi as you can without going over
  • have the low-side tank close to the pressure regulator, as it will allow the tank to begin refilling even as it is being emptied

If anyone else has more tricks, please add!

OK, if you’ve done all of that, your system is essentially limited by the C[sub]v[/sub] of your solenoid valve; your effective C[sub]v[/sub] will be slightly smaller due to the rest of the plumbing. The next question is: how much power can we put through that solenoid valve? For purposes of this calculation, I will assume an orifice size of 1/8" and a “coefficient of discharge” of 0.7, which is the default on several on-line calculators. This yields a Cv of 0.326. Cv scales as the square of the orifice size. IIRC, there ARE better C[sub]v[/sub] valves available which use 1/8" NPT threads but have a larger than 1/8" bore for the smallest orifice.

The final question to determine peak power is: what is the pressure in the cylinder as it does the work? This is actually something you will want to design, but it is a function of the weight and inertia of the load as well as the air flow. The work done by a piston is equal to the force times distance, or equivalently, pressure difference times volume. In the general case, you will need to integrate the pressure over the volume, but for this post I shall assume that the pressure difference is fairly stable over the stroke so that the work done is the gauge pressure in the cylinder as it works times the volume of the cylinder.

Power is the rate at which work is done, so it is equal to the pressure times the rate of change of volume. Note that this is not the pressure times the SCFM* rate, because the air in the cylinder is still at a pressure greater than atmospheric. If the (gauge) pressure in the cylinder is essentially zero, the piston will move rather quickly, but the work (and power) will be small because there is no pressure. Likewise, if the gauge pressure in the cylinder is the same as in the holding tank (60psi), the air will flow slowly and the power will again be small (approach zero). This situation is roughly (but not exactly) analogous to the output power of a DC motor being zero both at free speed and at stall speed. The peak power output will be somewhere between these two extremes.

Using an online calculator, I figured the SCFM flow through a 1/8" orifice with C[sub]d[/sub] of 0.7, and calculated the “volume factor,” which is the volume of an SCFM in cubic feet at the pressure indicated, actual cubic feet per minute, and power in psi * cfm, ft-lb/s and Watts using excel:

Pcyl  SCFM    Vfact   cfm     power  Ft#/s  Watts
  0  13.39   1.000   13.39     0.00    0.0    0.0	
  5  13.39   0.746    9.99    49.94  119.9  163.0 
 10  13.35   0.595    7.95    79.47  190.7  259.4 
 15  13.24   0.495    6.55    98.27  235.9  320.8 
 20  13.02   0.424    5.51   110.28  264.7  360.0 
 25  12.68   0.370    4.69   117.35  281.6  383.0 
 30  12.20   0.329    4.01   120.37  288.9  392.9 
 35  11.56   0.296    3.42   119.69  287.3  390.7 
 40  10.72   0.269    2.88   115.25  276.6  376.2 
 45   9.61   0.246    2.37   106.52  255.6  347.7 
 50   8.12   0.227    1.84    92.21  221.3  301.0 
 55   5.92   0.211    1.25    68.67  164.8  224.1 
 60   0.00   0.197    0.00     0.00    0.0    0.0

OK, slight cheat - I ran the online calculator at 30C, but did not account for the temperature in evaluating V[sub]fact[/sub]. Smaller than other stuff I’m ignoring, moving on…

So, the maximum power you can get from a 0.326 C[sub]v[/sub] system at 60psi working pressure is a bit under 400 watts.

For design purposes, the next question is “which side of the power curve do I want to be on”? The answer is that you want to be somwhere such that if you experience an extra load, the system delivers extra power to get you through. This means that you want to be on the LOW pressure side of that 30psi peak. I would design about 15-20 psi - still at 80-90% of the peak power, but where there is extra power if there is a bit of extra load for some reason.

I’ve provided a nominal maximum power. The speed limit will depend on the load. Don’t forget to account for the weight and other back forces (e.g. springs) and the inertia/moment of inertia of your carrier, as well as the load to be launched.

  • SCFM is “standard cubic feet per minute”, which means cubic feet of air at nominal atmospheric conditions. The number of SCFs in an actual cubic foot increases rapidly with pressure and decreases slightly with temperature in the likely FRC range.

There are a lot of pieces of the puzzle in here, but not everything put together. I finally had some time to put them together tonight.

If you adjust bernoulli’s equation you get:

Q = ACdsqrt((2gDp)/ρ)

Q = volumetric flow rate
A = effective area
Cd = Coefficient of discharge
g = gravity
Dp = pressure differential
ρ = density

To determine your pressure differential, you need to know what pressure you’re applying to your system. We’ll say 60 psi. Then you need to know the load on the cylinder. Lets say its 20 pound load on a 3/4" cylinder which equals 45.27 psi.

60 - 45.27 psi = 14.73 psi = Dp

You can use some circuits to determine the effective area of a .125, .25 and .75 diameter. This is an effective area of .000598 in^2.

Assuming a Cd of .7 is a good starting point for sharp edges.

Once you determine the flow rate of that system, you can divide it by the cylinder volume for you extension duration.

If we have a cylinder of .75" in diameter, 3 inches long, a 20 pound load, and 60 psi applied to an effective area of .000598, it will take the cylinder approximately 2.8 seconds to extend.

This is a calculation of a linear system, if you have a camed system, the load changes during extension which changes the differential pressure, which changes the flow rate, which changes the duration…

See the three different scenarios listed:

2.78 1.38 0.35 Time To Extended (sec)

0.750 0.750 0.750 Cylinder Diameter (inches)
3.000 3.000 3.000 Cylinder Length (inches)
0.700 0.700 0.700 Cd (coefficient of discharge)
386.4 386.4 386.4 g (in/sec^2)
0.006 0.006 0.006 ρ (lb/in^3) @ 70F
60.00 60.00 60.00 Regulator Pressure (psi)
20.00 0.00 0.00 Load on cylinder (pounds)
0.125 0.125 0.250 Circuit Diameter 1
0.250 0.250 0.250 Circuit Diameter 2
0.750 0.750 0.750 Circuit Diameter 3

0.808 1.631 6.488 Q (in^3/s)
0.001 0.001 0.002 A0 (effective area)
14.73 60.00 60.000 Pressure Drop (psi)
45.27 0.00 0.000 Loaded pressure (psi)
0.012 0.012 0.049 Area 1
0.049 0.049 0.049 Area 2
0.442 0.442 0.442 Area 3

Not sure if I made that nice to follow, but hopefully this illustrates the different variables and their impacts. As well as how to work through some of the math. I can post the spreadsheet if people want to take another look or use if for a calculator.


Please do!


I added solenoid Cv values to it to remove the ACd calculation for the solenoids.


I think I was using 10CFM and left off the last digit.