Smooth Bore Cannon Ballistics


This article models the ballistics of smooth bore cannon firing round shot. Ballistics software currently available is almost entirely devoted to ogive head, cylindrical projectiles. Ballistics tables catering for spherical bullets are only applicable to calibre less than ~1 inch. The smooth bore guns used until the mid 19th century were designed to fire cast-iron round shot, cannonballs, with diameters from 2 to 8 inches, so modelling the performance of such guns requires a return to fundamentals. The muzzle velocity may be calculated from the interior ballistics model originally developed by Benjamin Robins in 1742. The external ballistics of the cannonball can be well modelled given the aerodynamic drag data measured over the intervening centuries. The predictions of the resulting ballistics model are compared to historical muzzle velocity and range data.

Internal Ballistics

The work of Benjamin Robins resulted in the first useful model of the interior ballistics of guns. Robins' formula for muzzle velocity may be expressed as follows;

The force of the gas pressure on the ball accelerating it down the barrel is given by: $$ F(x) = \frac{R P_{atm} A c}{x} \tag{1} $$

where: \(x\) is the distance the ball has moved down the barrel
\(R\) is the initial ratio of hot gas pressure to atmospheric pressure (Robins calculated to be 1000)
\(P_{atm}\) is atmospheric pressure
\(A\) is the cross-sectional area of the ball or bore
\(c\) is the length of the barrel occupied by the powder charge before ignition.

From Newton's 2nd law, the integral of the force over the distance it moves the ball will equal the kinetic energy of the ball.
Hence: $$ \tfrac{1}{2} m v^2 = \int_{c}^{L} F(x) dx \tag{2} $$

where: \(m\) is the mass of the cannonball
\(v\) is muzzle velocity, ie. velocity of ball a distance L down the barrel
\(c\) is the length of the powder charge in the barrel, equal to the initial position of the ball down the barrel
\(L\) is the full length of the barrel.

Rearranging: $$ v^2 = \frac{2 R P_{atm}}{m}\frac{\pi d^2 c}{4} ln(\frac{L}{c}) \tag{3} $$

where: \(d\) = barrel diameter, the bore
\(L\) = full length of the barrel
\(c\) = length of the powder charge, distance to the initial position of the ball.

Given the density of the gunpowder \( \eta \), then the mass of the powder change \(p\) is given by: $$ p = \frac{\pi d^2 c }{4}\eta \tag{4} $$ Substituting this expression for the powder charge into eqn 3, yields: $$ v = \sqrt{\frac{2 R P_{atm}}{m}\frac{p}{\eta} ln(\frac{L}{c})} \tag{5} $$

Atmospheric pressure is 14.7×144×32.2 lbw/ft2 and the density of gun powder is 55 lb/ft3 [2]. The ratio of the initial pressure of exploding powder to atmospheric pressure, \( R \), was measured by Robins to be roughly 1000. Later Hutton's measurements [1, pp79] put this figure between 1500 and 1600. The values are empirical and depend on the quality of the gunpowder and the loss of pressure due to windage. Early 18th century muzzle velocities are better modelled with a value of \( R \) near 1500 and the early 19th century muzzle velocities, with higher quality powder and smaller windage, a value of 1600 is more appropriate.

The original Robins' model may be refined by correcting for the energy required to accelerate the mass of burning powder and gas along the barrel as well as the ball, this effectively increases the mass of the ball by about one third of the weight of the powder charge [2][4].

Hence, the average muzzle velocity of 18th century smooth bore cannon may be expressed, in units of ft/sec by: $$ v = 1928 \sqrt{\frac{p}{m + \tfrac{1}{3}p} ln(\frac{L}{c})} \tag{6} $$ and 19th century guns are better modelled by: $$ v = 1991 \sqrt{\frac{p}{m + \tfrac{1}{3}p} ln(\frac{L}{c})} \tag{7} $$

Muzzle Velocity Source Code

Here is the JavaScript source code to calculate the muzzle velocity given the shot weight and powder charge weight.

// Barrel bore for standard iron shot weights, windage of 25/24 is assumed
var bore = [];
bore[4] = 3.18;
bore[6] = 3.65;
bore[9] = 4.17;
bore[12] = 4.58;
bore[18] = 5.25;
bore[24] = 5.78;
bore[32] = 6.36;
bore[42] = 6.96;

// Muzzle Velocity as function of round shot mass and powder charge
function MuzzleVelocity(m, p) // mass of ball (lb), mass of charge (lb)
  var d = bore[m]/12;   // bore (ft) from table at ./Cannonballs.html
  var eta = 55;         // density of powder (lb/ft^3)
  var rho = 62.4;       // density of water
  var atm = 14.7*32.2*144;    // 14 psi x g atmospheric pressure (lbw/ft^2)
  var R = 1600;         // gunpowder gas pressure ratio to atm
  var L = d*18;         // (18 calibre) length barrel (ft)
  var c = p*4/(Math.PI*d*d*eta);  // length of charge in (ft)

  return Math.sqrt(2*R*atm/eta)*Math.sqrt(p/(m+p/3)*Math.log(L/c));

Comparison with historic muzzle velocity data

Table 1 shows historic measurements of muzzle velocity versus powder charge and round shot weight. These data are compared to the muzzle velocity values predicted by the Robins' model of interior ballistics described above, which are shown in blue. Published values of muzzle velocity are only available for 19th century guns, so the data in Table 1 compares these values with values calculated by eqn 7. The records do not usually state the barrel length, so where unavailable, a value of 18 calibre has been assumed.

Year [Ref] Shot Weight
Barrel Length
Muzzle Velocity
Muzzle Velocity
1860 [3] 6 16 1437 1456
" 12
18 1486 1484
1862 [5] 18 6 " 1720 1684
" 24 8 " 1720 1685
" 32 4.5 " 1250 1315
" 32 6 " 1450 1439
" 32 9 " 1700 1614

Table 1.  Comparison of measured muzzle velocity with Robins' interior ballistics model.

External Ballistics

The ballistic path that a cannonball will follow after leaving the barrel may be expressed by Newton's equations of motion, to which must be added a term for the drag force due to the air's resistance to the motion. The resulting equations may be difficult to solve analytically, but the actual trajectory may be easily calculated by numerical methods. The ballistics software model developed here, uses the equations for aerodynamic drag of spherical projectiles from the Cannonball Aerodynamic Drag page. Given an expression for the drag, and an expression for the muzzle velocity developed above, the equations for the trajectory may be expressed as follows:

Projectile Kinematics

The instantaneous aerodynamic drag force on a projectile travelling at velocity \( v \), is given by the formula: $$ F = \frac{1}{2} C_D \rho A v^2 \tag{1} $$

where: \( C_D \) is the dimensionless drag coefficient,
\( \rho \) is the density of air at sea level,
\( A \) is the cross-sectional area of the object in the direction of motion, and
\( v \) is the instantaneous velocity of the projectile relative to the air.

For a spherical projectile, $$ F_D = \frac{1}{2} \rho C_D(v,d) \frac{\pi d^2}{4} v^2 \tag{2} $$ where \( d \) = diameter of the spherical projectile.

The expression for \( C_D(v,d) \) is given by $$ C_D = SphereDrag(v, d). $$

For high trajectories the force should be corrected for the reduction in density of the air with increasing altitude, \( y \). The dimensionless correction factor is given by: $$ H(y) = e^{-3.158E-05y} \tag{3} $$ where \( y \) is in ft

This drop in density with altitude is only significant for shot fired at very high angles of elevation and may be omitted for sea service cannon where the gun carriage and gun ports restricted elevation to less than ~12°

If the projectile has mass, \( m \), it follows from Newton's 2nd law of motion, \( F = ma \) that the deceleration due to drag is given by $$ a_D = \frac{\pi}{8} \rho H(y) C_D(v,d) \frac{d^2}{m} v^2 \tag{4} $$ Assuming that the air is still, the velocity of the projectile relative to the ground is equal to the velocity relative to the air and the direction of the drag force \( F_D \) is opposite the direction of the bullet velocity \( v \). The \( x \), and \( y \) components of the acceleration are then given by: $$ \begin{aligned} a_x &= -a_D cos(\theta) \\ a_y &= -g -a_D sin(\theta) \end{aligned} $$ where \( \theta \) is the instantaneous angle of the trajectory w.r.t. the horizontal.

From eqn 4, $$ \begin{aligned} a_x &= -\frac{\pi}{8} \rho H(y) C_D(v) \frac{d^2}{m} v^2 cos(\theta)\\ a_y &= -g -\frac{\pi}{8} \rho H(y) C_D(v) \frac{d^2}{m} v^2 sin(\theta) \end{aligned} $$

Now \(v_x cos(\theta) \) and \( v_y sin(\theta) \) are the \( x \) and \( y \) components of the velocity vector \( v \), whose magnitude is \( V \), then: $$ \begin{aligned} a_x &= -\frac{\pi}{8} \rho H(y) C_D(v) \frac{d^2}{m} V v_x\\ a_y &= -g -\frac{\pi}{8} \rho H(y) C_D(v) \frac{d^2}{m} V v_y \end{aligned} $$

Ballistic Trajectory Source Code

Having developed an expression for the acceleration of a projectile throughout its flight, the actual coordinates of its path may be calculated numerically ready for plotting. The values for the shot mass, powder charge and elevation may be user defined. Here is the JavaScript code to generate the trajectory data as a JavaScript array in the format [x0, y0, x1, y1, x2, y2 ... ]:

genTrack = function(dragFn, d, m, u, theta, y0)
  var g = 32.2,            // acceleration due to gravity (9.8 m/s)
      rho = 0.074,         // density of air  (1.225 kg/m^3)
      phi = 3.158E-5,      // atm density scale factor (9.626E-6 /m)
      Cd, decel, H,        // drag coeff, deceleration, altitude factor
      x = 0,               // range
      y = y0 || 7,         // height
      V = u || 1680,       // magnitude of velocity vector
      theta0 = theta || 40,
      vx = V*Math.cos(Math.PI*theta/180.0), // x vel component
      vy = V*Math.sin(Math.PI*theta/180.0),
      ax, ay,              // acceleration components
      dt = 0.02,           // time step size

  trackData = [x/3, y/3];
  while (y>0)    // stop track when bullet hits ground
    Cd = dragFn(V, d);
    H = Math.exp(-phi*y);
    decel = Cd*rho*H*Math.PI*d*d/(m*8);
    ax = -decel*V*vx;
    ay = -g -decel*V*vy;
    vx = vx + ax*dt;
    vy = vy + ay*dt;
    V = Math.sqrt(vx*vx+vy*vy);
    x = x + vx*dt + ax*dt*dt/2;
    y = y + vy*dt + ay*dt*dt/2;
    trackData.push(x/3, y/3);
  return trackData;

Figure 1 shows the effect of different drag models on cannonball trajectory. The blue track was generated with the software listed above. The red track was plotted using the GS ballistic table, scaled for a 5.78" diameter sphere. The GS drag over-estimates the sub-sonic drag for large spheres. The green track is a reference plot which uses constant (Newtonian) drag with \( Cd = 0.47 \). Constant drag model does not take into account the rise in drag near the speed of sound.

Figure 1. Blue track is the trajectory plot of 24 lb cannonball fired with 8 lb charge at 10°.
For comparison: Red track GS drag scaled for 5.78" ball, Green track Newtonian sphere drag (constant Cd=0.47).

Comparison with Historical Range data

Several 19th century text books on gunnery published range records of test firings of guns with different size charges and elevation angles etc.

Table 1 shows the measured and predicted range for various size standard pattern British smooth bore guns firing cast iron round shot.

Shot Mass 42 lb Charge 14 lb Calc'd Muzzle Vel 1684 ft/sec
Elevation (deg) 0 1 2 3 4 5 6 7 8 9 10
Measured Range[4] (yd) 400 1045 1263 1622 1770 1938 2100 2300 2580 2650 2900
Calculated Range (yd) 336 788 1182 1503 1777 2023 2242 2442 2625 2797 2958
Shot Mass 32 lb Charge 10 lb Calc'd Muzzle Vel 1658 ft/sec
Elevation (deg) 0 1 2 3 4 5 6 7 8 9 10
Measured Range[4] (yd) 350 750 1050 1320 1600 2085 2100 2200 2460 2600 2900
Measured Range[5] (yd) 1130 1964 2682
Calculated Range (yd) 328 751 1128 1431 1693 1919 2128 2319 2494 2657 2811
Shot Mass 24 lb Charge 8 lb Calc'd Muzzle Vel 1685 ft/sec
Elevation (deg) 0 1 2 3 4 5 6 7 8 9 10
Measured Range[4] (yd) 297 720 1000 1240 1538 1807 2023 2100 2498 2638 2870
Measured Range[5] (yd) 1100 1854 2600
Calculated Range (yd) 328 750 1105 1399 1645 1865 2064 2242 2411 2566 2711
Shot Mass 12 lb Charge 4 lb Calc'd Muzzle Vel 1685 ft/sec
Elevation (deg) 0 1 2 3 4 5 6 7 8 9 10
Measured Range[4] (yd) 300 700 913 1189 1400 1580 1800
Measured Range[5] (yd) 1000 1520 2330
Calculated Range (yd) 318 698 1013 1271 1492 1686 1857 2429

Table 2.  Comparison of measured and predicted range values. The muzzle velocity used was calculated from the Robins' model based on the charge weight and bore of the gun.

All the measured data shown in the tables above used a charge weight of 1/3 the round shot weight. This was the standard service charge from 1760 onward. Earlier, the service charge was 1/2 the shot weight. The powder was of lesser quality and the windage greater, so ranges achieved would not have been that much greater than the figures above.

Using the software model described, the elevation for maximum range for these guns varied from 39° and 42°. Table 3 shows the predicted maximum range for each size gun. The barrel length is set at 18 calibre, the elevation angle is 40°, the charge is the standard service charge of 1/3 shot weight.

Gun type (lb) 4 6 9 12 18 24 32 42 64
Maximum Range (yd) 3260 3531 3839 4074 4405 4657 4922 5186 5612

Table 3.  Calculated maximum range for the standard pattern guns using the standard service charge weight equal to 1/3 shot weight.


One of the reasons put forward for the international agreement that territorial waters extend 3 nautical miles from the coast, is that 3 nm was the maximum range of shore battery guns. The accuracy of this assertion can be tested using the software. 3 nm is 6076 yards, it is just possible to achieve this range by using a 64 lb gun with a long barrel (21 calibre) fired with a charge of 64 lb of powder (3 times the normal service charge) at an elevation of 41°, even then the gun must be mounted about 300 ft above the water to achieve the 6076 yd range.

1. B. Robins New Principles of Gunnery Ed 2, Lon. 1805
2. J. Muller A Treatise on Artillery, Lon. 1768
3. J. Benton Ordnance and Gunnery, NY. 1862
4. H. Douglas Treatise on Naval Gunnery, Lon. 1829, 1860
5. E. Simpson Treatise on Ordnance & Naval Gunnery, NY. 1862