The crank pin moves on a circle of radius r; the crosshead is forced onto the cylinder axis by a rod of length L. Distance of the crosshead from the crank centre:
x = r cosθ + √(L² − r² sin²θ)Piston travel from the outer dead centre is y = L + r − x. For L >> r this reduces to y ≈ r(1 − cosθ) + r² sin²θ / 2L with error up to r&sup4;/8L³.
Steam is admitted at pressure p₀ until a cut-off fraction of the stroke, then expands adiabatically (p Vγ = const, γ ≈ 1.3 for steam); the opposite side exhausts at back pressure pb.
Wstroke = p₀A·c·S + p₀Vc/(γ−1)·[1 − (Vc/Vend)γ−1] − pbASBy virtual work the crank torque is Q = (ph − pc) A (dy/dθ), and the shaft obeys a Lagrange equation with variable effective inertia Ieff = Ifw + mr(dy/dθ)²:
Ieff θ″ + ½ (dIeff/dθ) θ′² = Q − bθ′The flywheel stores kinetic energy ½Iω² during the power stroke, smoothing the uneven torque; the fluctuation coefficient is Cs = (ωmax − ωmin)/ωmean.
Simplifications: ideal adiabatic steam without condensation or heat loss, instantaneous valve events, no cylinder cushioning, no friction apart from the viscous load, piston rod area ignored. Not a design tool.