So, i wrote some months ago a simple script to predict what i'm capable of in STA, DNF and DYN, using some inputs
Like lung volume, my swimming pose cross section, drag and swimming efficiency.
I only wrote this script for my personal use, and i had no plans to make it into a public use app.
what's interesting is that from this script, there is a correlation between STA time and DNF/DYN time
There are many problems with the assumptions tho, bc i didn't account for the anaerobic cycle, the script assumes some values i taken from scientific litterature about muscle's efficiency, swimming efficiencies from bifins, monofins, and no-fins.
but so far I'm satisfied with the results for STA/DNF, but not so with the predicted DYN, (mb because my monofins are the straight ones used for fin swimming and arn't the inclined foot-pockets used for professional DYN and thus they are less efficient than the value from litterature)
the whole thing is a work in progress and isn't yet finished, but i thought about sharing is, maybe it will pick people's interest in this, and maybe someone else more competent can
make a more accurate and better code xD.
here is the script:
Like lung volume, my swimming pose cross section, drag and swimming efficiency.
I only wrote this script for my personal use, and i had no plans to make it into a public use app.
what's interesting is that from this script, there is a correlation between STA time and DNF/DYN time
There are many problems with the assumptions tho, bc i didn't account for the anaerobic cycle, the script assumes some values i taken from scientific litterature about muscle's efficiency, swimming efficiencies from bifins, monofins, and no-fins.
but so far I'm satisfied with the results for STA/DNF, but not so with the predicted DYN, (mb because my monofins are the straight ones used for fin swimming and arn't the inclined foot-pockets used for professional DYN and thus they are less efficient than the value from litterature)
Code:
total lungO2=1170.0000 mL
total VO2=2450.0000 mL
usable VO2=816.6666 mL bc of rule of thirds usable is 2/3, but to keep it safe i use 1.5/3
vo2min=300
e=17074.0486J=4.0833kcal
emin=104.5350J=1.5000kcal/min
v=0m/s;t=163.3333s;d=0m;dragf=0N;work=0J:0Kcal/min
v=.10m/s;t=162.9713s;d=16.2971m;dragf=.2091N;work=.2322J:.0033Kcal/min
v=.20m/s;t=160.4797s;d=32.0959m;dragf=.8365N;work=1.8588J:.0266Kcal/min
v=.30m/s;t=154.0863s;d=46.2258m;dragf=1.8821N;work=6.2733J:.0900Kcal/min
v=.40m/s;t=142.9914s;d=57.1965m;dragf=3.3460N;work=14.8711J:.2133Kcal/min
v=.50m/s;t=127.8184s;d=63.9092m;dragf=5.2282N;work=29.0455J:.4167Kcal/min
v=.60m/s;t=110.3501s;d=66.2100m;dragf=7.5287N;work=50.1911J:.7202Kcal/min
v=.70m/s;t=92.6748s;d=64.8723m;dragf=10.2474N;work=79.7011J:1.1436Kcal/min
v=.80m/s;t=76.3918s;d=61.1134m;dragf=13.3843N;work=118.9711J:1.7071Kcal/min
v=.90m/s;t=62.3301s;d=56.0970m;dragf=16.9395N;work=169.3944J:2.4306Kcal/min
v=1.00m/s;t=50.6796s;d=50.6796m;dragf=20.9130N;work=232.3666J:3.3342Kcal/min
v=1.10m/s;t=41.2601s;d=45.3861m;dragf=25.3048N;work=309.2800J:4.4379Kcal/min
v=1.20m/s;t=33.7388s;d=40.4865m;dragf=30.1148N;work=401.5300J:5.7616Kcal/min
v=1.30m/s;t=27.7606s;d=36.0887m;dragf=35.3430N;work=510.5100J:7.3254Kcal/min
v=1.40m/s;t=23.0061s;d=32.2085m;dragf=40.9896N;work=637.6155J:9.1493Kcal/min
the whole thing is a work in progress and isn't yet finished, but i thought about sharing is, maybe it will pick people's interest in this, and maybe someone else more competent can
make a more accurate and better code xD.
here is the script:
Bash:
#!/bin/bash
# written by Abdelkader Derdar
dt=0.1;d=0;v=$1;cd=$2;m=72;s=0.04;d=16;eff=0.09;cd=0.38 #eff=0.04 for DNF, 0.09 for bifins, 0.11 for monofins
#if [ "$v" == "" -o "$cd" == "" ];then echo "args: v cd";exit 1;fi
TLC=5.85
lungvo2=$(echo "scale=4;$TLC*1000/5"|bc -l);
#lungvo2=0
totvo2=$(echo "scale=4;($lungvo2+880+100+240+60)"|bc -l) #2/3 is bc of rule of 3rds to avoid getting in the last risky 3rd, shallow blackout
vo2=$(echo "scale=4;$totvo2/2*2/3"|bc -l) #2/3 is bc of rule of 3rds to avoid getting in the last risky 3rd, shallow blackout
vo2min=252 #some study mentionned that waking at rest vo2min=0.3L, but this value fits better with BMR/24
vo2min=300
echo "total lungO2=$lungvo2 mL"
echo "total VO2=$totvo2 mL"
echo "usable VO2=$vo2 mL bc of rule of thirds usable is 2/3, but to keep it safe i use 1.5/3"
echo "vo2min=$vo2min"
e=$(echo "scale=4;e=$vo2*5*4.1814;e"|bc -l);
emin=$(echo "scale=4;emin=$vo2min*5*4.1814/60;emin"|bc -l);
echo "e=$e""J=$(echo "scale=4;$e/4181.4"|bc -l)kcal"
echo "emin=$emin""J=$(echo "scale=4;$emin*60/4181.4"|bc -l)kcal/min"
for((i=0;i<15;i++));do
v=$(echo "scale=2;$i/10"|bc -l)
dragf=$(echo "scale=4;cd=$cd;v=$v;dragf=997*v^2*cd*0.1104/2;dragf"|bc -l);
work=$(echo "scale=4;v=$v;w=$dragf*v/$eff;w"|bc -l);
t=$(echo "scale=4;v=$v;t=$e/($work+$emin);t"|bc -l);
#t=$(echo "scale=4;eff=$eff;d=$d;cd=$cd;vo2min=252;vo2=(1610+880+100+240+60)*0.5*2/3;e=vo2*5*4.1814;emin=vo2min*5*4.1814/60;v=0.$i;dragf=997*v^2*cd*0.1104/2;t=e/(dragf*v/eff+emin);t"|bc -l);
echo "v="$v"m/s;t="$t"s;d="$(echo "scale=4;$v*$t"|bc -l)"m;dragf="$dragf"N;work="$work"J:$(echo "scale=4;$work*60/4181.4"|bc -l)Kcal/min";
done