• Welcome to the DeeperBlue.com Forums, the largest online community dedicated to Freediving, Scuba Diving and Spearfishing. To gain full access to the DeeperBlue.com Forums you must register for a free account. As a registered member you will be able to:

    • Join over 44,280+ fellow diving enthusiasts from around the world on this forum
    • Participate in and browse from over 516,210+ posts.
    • Communicate privately with other divers from around the world.
    • Post your own photos or view from 7,441+ user submitted images.
    • All this and much more...

    You can gain access to all this absolutely free when you register for an account, so sign up today!

STA/DNF/DYN simulator

Thread Status: Hello , There was no answer in this thread for more than 60 days.
It can take a long time to get an up-to-date response or contact with relevant users.

zazuge

Member
Jun 30, 2018
64
8
23
42
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)
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
 
DeeperBlue.com - The Worlds Largest Community Dedicated To Freediving, Scuba Diving and Spearfishing

ABOUT US

ISSN 1469-865X | Copyright © 1996 - 2024 deeperblue.net limited.

DeeperBlue.com is the World's Largest Community dedicated to Freediving, Scuba Diving, Ocean Advocacy and Diving Travel.

We've been dedicated to bringing you the freshest news, features and discussions from around the underwater world since 1996.

ADVERT