## Skiba W'bal
{
## get CP / allow tweaking
CPP <- config(cp);
## calculate power above cp to use below
TT <- POWER > CPP ? POWER-CPP : 0;
## dave waterworths reformulation to iteration
II <- II + (exp(SECS / W'bal_TAU) * TT);
wpbal <- config(w') - (exp((-1) * (SECS / W'bal_TAU)) * II);
# we want kJ not Joules
wpbal / 1000;
}
## Froncioni W'bal with R
{
## initialise
CPP <- config(cp);
RR <- 0.5; ## between 0.6 and 0.8 seems about right (?)
if (SECS <= 1) { wp <- config(w'); }
## compute
if (POWER < CPP) {
wp <- wp + (RR * (config(w')-wp) / config(w') * (CPP - POWER));
} else {
wp <- wp + (CPP - POWER);
}
## scale to kJ
wp/1000;
}
Fantastic work Mark. I haven't had a chance yet to test it out (in writing mode at present), but what I can re-iterate from a conceptual point of view is that solving for tau should be treated the same as performance testing for CP and W'. It makes no sense to compute an individualised tau value when you're fatigued or tired or sick or whatever. You need to be in performance ready shape (same goes for CP testing itself of course). Secondly, when conducting maximal efforts in training, I think it is beneficial to continue the max effort until you definitely note that power is falling despite maintence of max effort. Ideally you would let power drop to about CP, but I think as long as you're within about 50 W or so the margin or error will be low and accounted for by solving for W'bal = 500 J.correct me if I'm wrong, but the solver constrains CP and W' to the values set under athlete properties right?
So the solver really helps to explore the relationship between the parameters and exhaustion. One key point- it solves for W'=500J, since this is typically where exhaustion occurs (not zero).
Time from start of 3 AOT test = 85 (19) sec.