Family of functions that serve a purpose of finding optimal sprint or force-velocity profile
optimal_FV
finds "optimal" F0
and V0
where time at distance is
minimized, while keeping the power the same
optimal_MSS_MAC
finds "optimal" MSS
and MAS
where time at distance is
minimized, while keeping the Pmax
the same
Usage
optimal_FV(
distance,
F0,
V0,
bodymass = 75,
inertia = 0,
resistance = 0,
method = "max",
...
)
optimal_MSS_MAC(distance, MSS, MAC)
Arguments
- distance
Numeric vector
- F0, V0
Numeric vectors. FV profile parameters
- bodymass
Body mass in kg
- inertia
External inertia in kg (for example a weight vest, or a sled). Not included in the air resistance calculation
- resistance
External horizontal resistance in Newtons (for example tether device or a sled friction resistance)
- method
Method to be utilized. Options are "peak" and "max" (default)
- ...
Arguments passed on to
get_air_resistance
velocity
Instantaneous running velocity in meters per second (m/s)
bodyheight
In meters (m). Default is 1.75m
barometric_pressure
In Torrs. Default is 760Torrs
air_temperature
In Celzius (C). Default is 25C
wind_velocity
In meters per second (m/s). Use negative number as head wind, and positive number as back wind. Default is 0m/s (no wind)
- MSS, MAC
Numeric vectors. Model parameters
Value
optimal_FV
returns s data frame with the following columns
- F0
Original F0
- V0
Original F0
- bodymass
Bodymass
- inertia
Inertia
- resistance
Resistance
- Pmax
Maximal power estimated using F0 * V0 / 4
- Pmax_rel
Relative maximal power
- slope
FV profile slope
- distance
Distance
- time
Time to cover distance
- Ppeak
Peak power estimated quantitatively
- Ppeak_rel
Relative peak power
- Ppeak_dist
Distance at which peak power is manifested
- Ppeak_time
Time at which peak power is manifested
- F0_optim
Optimal F0
- F0_coef
Ratio between F0_optim an F0
- V0_optim
Optimal V0
- V0_coef
Ratio between V0_optim an V0
- Pmax_optim
Optimal maximal power estimated F0_optim * V0_optim / 4
- Pmax_rel_optim
Optimal relative maximal power
- slope_optim
Optimal FV profile slope
- profile_imb
Percent ratio between slope and optimal slope
- time_optim
Time to cover distance when profile is optimal
- time_gain
Difference in time to cover distance between time_optimal and time
- Ppeak_optim
Optimal peak power estimated quantitatively
- Ppeak_rel_optim
Optimal relative peak power
- Ppeak_dist_optim
Distance at which optimal peak power is manifested
- Ppeak_time_optim
Time at which optimal peak power is manifested
optimal_MSS_MAC
returns a data frame with the following columns
- MSS
Original MSS
- MAC
Original MAC
- Pmax_rel
Relative maximal power estimated using MSS * MAC / 4
- slope
Sprint profile slope
- distance
Distance
- time
Time to cover distance
- MSS_optim
Optimal MSS
- MSS_coef
Ratio between MSS_optim an MSS
- MAC_optim
Optimal MAC
- MAC_coef
Ratio between MAC_optim an MAC
- Pmax_rel_optim
Optimal relative maximal power estimated using MSS_optim * MAC_optim / 4
- slope_optim
Optimal sprint profile slope
- profile_imb
Percent ratio between slope and optimal slope
- time_optim
Time to cover distance when profile is optimal
- time_gain
Difference in time to cover distance between time_optimal and time
References
Samozino P, Peyrot N, Edouard P, Nagahara R, Jimenez‐Reyes P, Vanwanseele B, Morin J. 2022. Optimal mechanical force-velocity profile for sprint acceleration performance. Scandinavian Journal of Medicine & Science in Sports 32:559–575. DOI: 10.1111/sms.14097.
Examples
MSS <- 10
MAC <- 8
bodymass <- 75
fv <- create_FVP(MSS, MAC, bodymass)
dist <- seq(5, 40, by = 5)
opt_MSS_MAC_profile <- optimal_MSS_MAC(
distance = dist,
MSS,
MAC
)[["profile_imb"]]
opt_FV_profile <- optimal_FV(
distance = dist,
fv$F0,
fv$V0,
fv$bodymass
)[["profile_imb"]]
opt_FV_profile_peak <- optimal_FV(
distance = dist,
fv$F0,
fv$V0,
fv$bodymass,
method = "peak"
)[["profile_imb"]]
plot(x = dist, y = opt_MSS_MAC_profile, type = "l", ylab = "Profile imbalance")
lines(x = dist, y = opt_FV_profile, type = "l", col = "blue")
lines(x = dist, y = opt_FV_profile_peak, type = "l", col = "red")
abline(h = 100, col = "gray", lty = 2)