// Baseball calculations
//
// Alan Eliasen, eliasen@mindspring.com
//
// The rules of Major League Baseball, section 1.09 states:
// "The ball shall be a sphere formed by yarn wound around a small core of
// cork, rubber or similar material, covered with two stripes of white
// horsehide or cowhide, tightly stitched together. It shall weigh not less
// than five nor more than 5 1/4 ounces avoirdupois and measure not less than
// nine nor more than 9 1/4 inches in circumference."
//
// http://mlb.mlb.com/NASApp/mlb/mlb/baseball_basics/mlb_basics_objectives.jsp
circ = 9.25 in
mass = 5.25 oz
circ = new interval[9, 9 + 1/4] inches
mass = new interval[5, 5 + 1/4] ounces
radius[circ] := circ/(2 pi)
volume[radius] := 4/3 pi radius^3
density[mass, volume] := mass / volume
vol = volume[radius[circ]]
println["The volume is " + formatSig[vol,"in^3",5]]
dens = density[mass, vol]
println["The density is " + formatSig[dens,"g/cm^3",3]]
x[v0, alpha, h0 = 1 meter, hw = 10 feet, g=gravity] :=
{
v0 cos[alpha] tw[v0, alpha, h0, hw, g]@1
}
// Drag force on a baseball. See:
//
// http://farside.ph.utexas.edu/teaching/329/lectures/node42.html#fcd
// http://webusers.npl.illinois.edu/~a-nathan/pob/ppt/SABR36_June06.ppt
//
// It's unclear what the units are of these equations, though!
// For the
F[v] :=
{
vd = 35 m/s
delta = 5 m/s
return 0.0039 m^-1 + 0.0058 m^-1 / (1 + e^((v-vd)/delta))
}
// Reynolds number of a sphere.
// See: http://baseball.physics.illinois.edu/KensrudThesis.pdf , eq. 2.3
// viscosity is *kinematic* viscosity of air.
ReynoldsNumber[velocity is velocity, diameter is length, viscosity is kinematic_viscosity] := velocity * diameter / viscosity
/* This is the drag coefficient for a MLB baseball, non-rotating.
See: http://baseball.physics.illinois.edu/KensrudThesis.pdf ,
Fig. 4.37.
This probably needs to only go up to about 120 mph, as that
appears to be an upper limit for batted ball exit velocity
according to the PitchFX database:
http://baseballsavant.com/pitchfx_search.php
*/
Cd[velocity] :=
{
if velocity < 91.82 mph
return -0.0033 velocity/mph + 0.5883
else
return -7e-5 velocity/mph + 0.2917
}