Power (equine or otherwise) has the units of work per unit time.  The first
thing to do, therefore, is calculate the amount of work the engine does in one
stroke.  Work is force times distance (technically, an integral is required but
this isn't a physics lesson).

Let:

P = steam pressure (psi)
D = piston diameter (in)
A1 = piston area (in^2)
pi = 3.14159...
F = force (lbf)

Then:

A1 = (pi/4) * D^2(in^2)

And:

F = P * A1(lbf)

During the expansion stroke, this force operates over a distance equal to the:

S = stroke (ft)

(Note to the technical:  That's not strictly true.  The pressure in the
cylinder changes a bit during the expansion stroke.  However, to model that
requires a lot more math including some dreaded calculus.  Remember, the title

So, the work done during one stroke is:

W = F * S = S * P * A1(ft-lbf)

Power is work per unit time.  Assume that the engine is running at SPM strokes
per minute.  Then:

Power = W * SPM = SPM * S * P * A1(ft-lbf/min)

Watt defined one horsepower to be 33,000 ft-lbf/min.  So:

HP1 = Power / 33000

HP1 = SPM * S * P * A1 / 33000

is the horsepower.

So far we've assumed that the engine is single acting, i.e., powered on only
one side of the piston.  If it's double acting we can compute the power
obtained from steam acting on the other side of the piston (HP2) and add it to
HP1 to get the total engine power.

The mathematics for doing this is essentially identical to the above with the
exception of the calculation of the area of the piston.  The area of the
connecting rod has to be subtracted from the piston area to get the effective
area on which the steam acts.

Let:

d = diameter of connecting rod (in)

Then the effective piston area on the connecting rod side is:

A2 = A1 - (pi/4) * d^2(in^2)

And the horsepower developed from that side is:

HP2 = SPM * S * P * A2 / 33000

Finally, the total horsepower for the (double acting) engine is:

HP = HP1 + HP2

Marv Klotz