The user defines the initial position, velocity, and spin of the tennis ball. The units are pounds, feet, seconds. The tennis court coordinates are:
x - ground, perpendicular to net
y - ground, parallel to net
z - height above ground
The path taken depends on 3 forces:
1) gravity (constant 32 ft/s^2 in -z direction
2) drag (proportional to v^2 and in -v-hat direction
3) lift (proportional to cross product of spin and velocity)
The proportionality constant of the drag force is proportional to the atmosphere density, the cross-sectional area of the ball, the coefficient of drag, and the inverse of mass:
k_D = C_D*rho_atmosphere*area/(2*mass)
Spin of the ball causes it to lift. The constant has similar form:
k_L = C_L*rho_atmosphere*area/(2*mass)
Spin will increase the margin of error when serving. A top-spin (+y-component) creates a downward force causing the ball to drop and allowing the server to hit the ball at a greater initial angle. Backspin is created by setting the y-component to a negative value. Propagation is via a Runge-Kutta-Fehlberg method of order 4/5.
The model flags conditions: ball moves out of court, ball hits net, or ball bounces. The bounce is modeled with a restitution parameter and, if there is spin, a grip parameter to modify the velocities based on slipping during contact with the ground.
Useful for analyzing video of tennis games to reverse-engineer initial conditions of a serve, for game simulations, and for what if questions such as "How sensitive is the final position to the initial serve position, velocity, and spin?" "What would tennis look like on Mars?" "How does atmospheric density affect tennis serves?"
Based on a model described in:
Danby, J. M. A. (1997) Computer Modeling: From Sports to Spaceflight ... From Order To Chaos, Willmann-Bell, Inc., Richmond, VA., p. 159.
Meg Noah (2023). Model a Tennis Serve Ball Flight (https://www.mathworks.com/matlabcentral/fileexchange/70324-model-a-tennis-serve-ball-flight), MATLAB Central File Exchange. 取得済み .
プラットフォームの互換性Windows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!