The purpose of this project was to create an algorithm to improve firearm aiming. In order to do so, a simulation of exterior ballistics – the bullet’s behavior between the firearm muzzle and the target – was created in MATLAB. The simulation of bullet trajectory included consideration of three forces: gravity, air drag, and Coriolis ‘force’. An overall equation of motion for the bullet in flight, comprising the effects of the aforementioned forces, was constructed using formulae and theory given in R. L. McCoy’s Modern Exterior Ballistics. For the project, a reference frame was defined based on firearm muzzle and target positions, and an aim vector described by two angles was defined to describe the direction of the firearm’s barrel. The simulations of bullet trajectory take into account eleven parameters: the two aim angles, initial bullet speed (commonly referred to as muzzle velocity), 3-D Cartesian components of wind velocity, air density, bullet diameter, bullet mass, latitude of the firing area, and azimuth of fire (a quantified compass direction of fire).
The user inputs target position, muzzle position, and estimated environmental parameters to the system. Then, an aim vector would be calculated to hit the target under estimated conditions. Because the eleven trajectory parameters likely cannot all be precisely known, this solution will have some error. In real life, the system would use feedback from real shots of a firearm to correct for this error. For this project, a real-world proxy simulation was created that had built-in random error and variations in the parameters. The correction algorithm uses the error data from all previous shots to calculate adjustments to the original aim vector, so that each successive shot becomes more accurate. The system was tested with specifications of a common rifle platform, with estimated parameters and variations for a location in Tempe, AZ (since data for an urban area is readily available compared to a point in the wilderness). Results from this testing revealed that the system can “hit” a 2-meter-radius circular target in under 30 shots. When the errors and variations in parameters were halved for the real-world stand-in simulation, the system could “hit” a circular target with 0.55 meter radius in less than 25 shots. After analysis, it was found that the corrected aim angles converged on values, suggesting that the correction algorithm functions as intended (taking into account all past shots). Generally, it was found that any reduction of the means and standard deviations of parameter error improved the ability of the system to hit smaller targets, or hit the same target with less shots.