I want to shoot a projectile fast.
That has been my main aim for years: to track the speed of a projectile that I shot, and calculate a speed of over 100mph. Unfortunately, as I live in the UK, I cannot do this with gunpowder, and using butane or gaseous propellant still counts as a firearm after the projectiles start reaching certain speeds.
For a while, I was stuck, until I realised air cannons weren't legally registered as firearms. I have always wanted to make an air cannon, but every attempt I made ended with the same result - failing to form a perfect seal. The issue was that a small leak would always be present, and at higher pressures of around 30psi, the rate of air leaking out of the bottle was equal to the rate of air entering the bottle through my pump, leading to a maximum pressure that I couldn't circumvent without expensive gaskets and O-rings.
However, with my newfound access to a 3d printer and 3d modelling skills, I can make custom parts. This avoids the need for seals and joints that I would've otherwise had to make with low tolerances and shabby materials.
Firstly, I found the thread dimensions and schematics for soda bottles in the UK. I decided on soda bottles as they have a maximum pressure rating of almost 150psi, which is more than enough for my goals.
This gave me the cruicial information that the diameter of the bottle neck was 27.4mm, and the thread pitch was 2.7mm. I 3D modelled a tube that would screw snugly onto the threads of a soda bottle neck, with the same threads as the cap. There is a ridge at the end here, to allow a burst disc to be fitted so that it is pressed tightly in place between said ridge and the end of the neck of the bottle
I then converged this section down to a diameter more suitable for the barrel of the cannon, which would be made of 15mm PVC, with an external diameter of 22.1mm. This would have two holes in it, opposite eachother, to allow a screw to go through that would secure the barrel in place.
This is the other part that completes the assembly. The smooth section is where the PVC pipe is glued, with markings to designate where nails can be drilled into to secure the PVC barrel even more, akin to the previous iteration. The threads on the back of this are designed to coincide with the larger threads in the previous part, with a flat rear profile to ensure that the burst disc is squeezed tightly in place.
An example of this dreaded phenomenon is shown below:
Moving up the part, we can see that the 'lid' is now tapered up in a conical shape. This allows the part to be printed without supports running through it, maximising the amount of air flow that can rush behind the projectile in a unit time, effectively increasing efficiency by lowering the drag coefficient of the inside of the cap.
The whole part, in section view, looks like this:And everything in tapered at 45 degrees, even the little ridge visible in the left tube. This design is an incredibly simplified version of the first. The PVC tube is pushed into the top of the tube on the left, and stopped by the ridge. A burst disc is placed under it, and the right tube is screwed tightly onto a bottle, which is pumped up. This pressure is transferred to the left tube via a triangular exhaust hole that links both chambers together. It is shaped this way, like everything else, to avoid supports being used in the print. Note that the hole in the top of the cone on the right is to thread a Schrader bike valve, to provide the pressure.The final part looks like this, with the dark blue shape simply being a reinforcement, as simulations showed that the intersection between the two pipes had the highest stresses:
After 3d printing, drilling, and installing the valve with the suitable O-rings, I had this:
The two holes on either side of the PVC holder are there so that a bolt can be threaded through the PVC pipe aswell, to stop it popping out under high pressure. With a PVC tube cut to length and with two corresponding holes drilled through, I was left with this:
Finally, with the bottle screwed in:
This is a CAD simulation of what an ideal projectile would look like being fired from this air cannon:
After this was assembled, I coded a Python Script to estimate the muzzle velocity, and find the optimal barrel length for it:
You can use this version interactively right here on your browser - click the triangular 'Run' button, then input the data the program asks you for. Here are some good default values that are realistic for this air cannon:
Enter mass of projectile in grams 12 Enter drag coefficient of projectile 1.4 Enter radius of projectile in mm 7.6 Enter density of fluid in kg/m³ 1.2 Enter pressure of bottle in PSI 60 Enter length of barrel in metres 1 Enter atmospheric pressure in PSI 14 Enter volume of bottle in litres 0.5 Enter abiatic exapansion constant 1.4 Enter barrel friction constant 0.7 Enter time step in ms 1 Enter accuracy of output in decimal places 3 Enter baseline multiplier 1.23
The script attempts to generate a realistic muzzle velocity by having many inputted factors that are all used to draw a graph of the velocity of the projectile as it moves down the barrel.
The graph above is for a cannon with roughly the same parameters as the one I am building:All inputs are first converted to SI base units so that the calculations can take place:
This is the slo motion footage of the first test run. I used one layer of packaging tape, and used a marble wrapped in cellophane tape to make it seal perfectly with the pipe. I used an online software called Tracker Online to determine the speed of the marble. My bottle was used as a measurement device - as I knew the distance between the 7PM and 9PM markings, I would know the distance the marble travelled, then knowing the frame rate of the video, I can calculate the speed of the projectile.
The tracking software gave me a speed of 22m/s . By inputting the data of the test shot, my software gave me this result:
The simulated and experimental values did not line up at all, with a 60.7% percentage error! This showed that the software needed tuning to match this specific air cannon's geometry. There are many factors I did not account for, such as flow rate due to the constriction in the nozzle, the expanding volume of the bottle as its filled, the leakage of air around the projectile and many others. Luckily, these all scale linearly, so I could replace all these factors with a multipler 'k', and find its value experimentally.
I did this with another test run:
And this time got a great matchup between the mathematical model, and the practical true result, with a multiplier value of 1.36:
Both results here give a value of around 35m/s as the muzzle velocity, with a percentage error now of only 3%.
The reason for this model's creation is optimisation. In this scenario, we are presented with a certain bottle pressure, volume, projectile, etc. We can see that the highest velocity is achieved 0.11 metres down the barrel, before the speed drops off quickly due to friction. Therefore, for this specific cannon, a barrel of 0.11 metres in length would give the best results.
After building up some confidence in the design, I used 2 layers of packaging tape as the burst disc, so that it could build up more pressure. I also redesigned the way the burst disc was held. The current system was to crudely put tape on the end of the barrel and shove it into the 3D print. This worked 20% of the time, with the other 80% consisting of the barrel not making a good seal, or the tape breaking due to the stresses of pushing the barrel in so hard - I also managed to pull my wrist trying to push the barrel into the hole with tape around it; overall, it wasn't as professional as it could've been.
Many other air cannons use the sandwich design, where two metal plates have the burst disc in between them and squeeze down on it to create a seal. I cannot metal 3D print, since the facilities cost an insane amount, and I wanted to keep the budget of this project under 8 million pounds. This meant I needed to use existing metal pieces.
I pushed one washer into the PVC holder until the ridge, then placed the O-ring on top of it. For the burst disc, I wrapped packaging tape around the other washer and pushed it against the O-ring. I then pushed the PVC pipe in as hard as possible to get a perfect seal, even at 80psi.
This mathematical estimate of 49.8 m/s lines up extremely well with the experimental value of 48.7 m/s, so I know that the model is tuned well for this use scenario (the percentage error for those who are interested is now 2%). Next, I went about finding the optimal barrel length and found it to be 0.862 metres from the mathematical model, giving a velocity of 59 m/s at the muzzle.
When testing with higher pressures, however, I got very different numbers. For an 80psi run in the same conditions, my barrel would have to be 106cm long. For a 70psi run, it would have to be 97cm long. I chose an arbitrary middle ground of 100cm, as my cheap bike pump maxed out at 79 psi when I was practically jumping on the handle.
A barrel of length any longer would be impractical; it would have to be completely straight in order to not have thinner and thicker areas, which would increase the overall friction inside the barrel.
Finally, after installing the correct-length barrel, I got this run (the video was edited this way to make the projectile clearer):
After using the tracking software, I got a speed of 58m/s, which lines up with the 59m/s mathematical estimate with an accuracy of 98.3%. This concludes this project, as I could finally break the 100mph milestone with a large margin. The total cost for this project is calculated below, but I plan to make an even stronger cannon to try and break 300mph next time. Until then, please check out my other projects. Thank you for reading this far!
Project Costs:
- 3D printer filament: 87p
- Sprite Bottle: £1.00
- Shrader Valve: 50p
- O-rings: 5p
- Through-bolt: 10p
- 2 Metal plate washers: 10p
- Packaging tape used: 30p
Total: £2.92
Extra costs - these represent the costs of everything else used to make this project; they are definitely not indicative of the cost of this project, but it can be useful to know what you will need outside of the raw materials to make something:
Other Costs:
- Bike pump: £7
- 3D printer: £50 (used)
- O-ring set: £1
- Shrader Valve pack: £2.40
- 3D filament roll: £9.40
- Bolt set: £2.40
- Washer set: £4.50
- Packaging tape: £2.10
- Wood glue for shrapnel shield: £5.50
- Super Glue: £1.10
Total: £85.40
The 3D software used is Onshape.