Aller au contenu
Plongeur.com - Le site de la plongée sous marine

Messages recommandés

Posté(e)
il est donc préférable de recalculer par exemple à tous les x secondes

Il est plus simple de recalculer tous les x secondes.

 

Ce qu'on peut faire est de recalculer uniquement si la vitesse a changée par plus d y mètre/seconde ou si plus de x seconds a passé :

 

double v0;

double p0;

double t0;

 

while(true) {

double p1 = getPressure();

double t1 = getTime();

double v1 = (p1-p0)/(t1-t0);

 

if(abs(v1-v0)>y || t1-t0 > x) {

// run schreiner

 

p0 = p1;

t0 = t1;

v0=v1;

}

}

Posté(e)
que veux-tu dire par intervalle donné?

Par exemple une vitesse de descente constante pendant une durée de 10 secondes. Au lieu de faire un calcul itératif par seconde ce qui fait 10 calculs successifs et une approximation en "marche d'escalier"; un seul calcul est nécessaire durant cet intervalle en suivant la linéarité du déplacement. Maintenant rien n'empeche d'extraire des éléments suivant des intervalles de temps aussi petits que désirés ... Dans les ordinateurs actuels pour les calculs de gaz dissouts, que ce soit Buhlman ou autres c'est bien l'équation globale de Shreiner qui est utilisée.

Posté(e)

Il n'y a pas de limite d'accélération toléré par les équations (et on est très loin des limites physiologiques).

 

La durée des périodes est choisie pour minimiser des différences entre le comportement réel du plongeur et le modèle. En utilisant Schreiner, tu modélise les déplacements par des périodes d'accélération = 0.

 

Si tu réfléchies sur les comportements possibles (quelle est l'accélération possible sous l'eau et pour quelle durée?) puis tu calcules une poignée de cas extrêmes prenant en compte les constants de temps de l'ordre de cinq minutes, tu vas tomber sur une période minimale d'échantillonnage.

 

Après, tu vas être obligé de te poser les questions sur les définitions de la NDL et DTR avant de pouvoir les calculer. Des questions fort intéressant avec des réponses largement discutables :)

  • 2 mois après...
Posté(e)
double time0 = getTime();

double pressure0 = getPressure();

double Pt = initial tissue saturation

double Pa0 = alveolar gas pressure at pressure0

 

while(true) {

double time1 = getTime();

double pressure1 = getPressure();

 

double dt = time1 - time0;

double pa1 = alveolar gas pressure at pressure1

 

double R = (Pa1 - Pa0)/dt;

Pt = pa0 + R [ dt - (1/k) ] - [ pa0 - Pt - R/k ] * e ^ (-k*dt)

 

time0=time1;

pressure0=pressure1;

pa0 = pa1;

 

sleep(1);

}

 

 

pour dt, faudrait pas oublier de convertir ça en minutes

Posté(e)

Très intéressant tout ça... J'avais en tête de programmer un truc un jour, pour le plaisir... Je bookmarke donc ce sujet !

 

(pitêt qu'un jour je serai moins feignasse et que je le ferai vraiment ce bout de code :froglol: )

Posté(e)
double time0 = getTime();

double pressure0 = getPressure();

double Pt = initial tissue saturation

double Pa0 = alveolar gas pressure at pressure0

 

while(true) {

double time1 = getTime();

double pressure1 = getPressure();

 

double dt = time1 - time0;

double pa1 = alveolar gas pressure at pressure1

 

double R = (Pa1 - Pa0)/dt;

Pt = pa0 + R [ dt - (1/k) ] - [ pa0 - Pt - R/k ] * e ^ (-k*dt)

 

time0=time1;

pressure0=pressure1;

pa0 = pa1;

 

sleep(1);

}

et comment sort-on du {trou} ? ;)

Invité Invité
Posté(e)
et comment sort-on du {trou} ? ;)

D'un point de vue physiologique et mathématique on ne sort pas de la boucle - le calcul de la saturation doit se faire en continue et en permanence.

 

D'un point de vue "génie informatique", on appuie sur "off".

 

Maintenant que j'y pense, c'est une question assez intéressante et pas sans intérêt pour les calculs de décompression. je dirais que le bouton "off" ne sert qu'à couper l'écran et qu'on ne quitte jamais la boucle.

Invité Invité
Posté(e)

Plus de saturation par rapport à quoi ? Pour avoir les valeurs initiales des tensions d'azote dans les tissus, il faut continuer à calculer la saturation selon la pression ambiante atmosphérique.

 

Par contre, sorti de l'eau il n y a plus besoin de calculer le profile et la durée de remontée, ce qui est de loin le plus intensif en temps UC et donc couteux en energie.

Posté(e)
Plus de saturation par rapport à quoi ? Pour avoir les valeurs initiales des tensions d'azote dans les tissus, il faut continuer à calculer la saturation selon la pression ambiante atmosphérique.

 

Par contre, sorti de l'eau il n y a plus besoin de calculer le profile et la durée de remontée, ce qui est de loin le plus intensif en temps UC et donc couteux en energie.

 

 

plutôt une désaturation

Posté(e)
D'ailleurs pour sortir du trou y a pas paliers ?

Parce que dans l'algo pas de trace ?

c'est un autre débat.

une boucle paralléle qui prend en compte les saturations et calcule les paliers selon la méthode choisie

 

si ça vous amuse, vous pouvez récupérer le code-source de l'OSTC.

vous aurez la quasi-totale.

Invité Invité
Posté(e)
plutôt une désaturation

Pas forcement, non. Les variations de pression hors de l'eau sont très certainement moins importants et moins rapides mais il n'y a pas vraiment moyen de les connaître sauf de les mesurer plus en moins en continu. Si on est plus en plongée, il n y a pas besoin de calculer les tensions d'azote en dynamique : il suffit d'échantillonner à une fréquence réduite et de garder les variations de pression ambiante en mémoire. Les tensions de départ de la simulation peuvent être calculés au moment de la mise en marche.

 

L'alternatif serait de démarrer la simulation avec l'hypothèse des tissus saturés à la pression atmosphérique ambiante.

Posté(e)
c'est un autre débat.

une boucle paralléle qui prend en compte les saturations et calcule les paliers selon la méthode choisie

 

si ça vous amuse, vous pouvez récupérer le code-source de l'OSTC.

vous aurez la quasi-totale.

 

 

aucunement besoin de faire une autre boucle pour ça...

 

le hic du ostc, c'est que c'est majoritairement de l'assembleur et malgré qu'il y est beaucoup de commentaire, c'est trop lié au soc choisie....

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Bonjour,

 

logo.png.c7536bd9e68359a8804d246d311256bd.png

 

L'ensemble des services de Plongeur.com sont gratuits et c'est grâce à la publicité que vous pouvez en profiter. Or il semble que vous utilisiez un bloqueur de publicité.

Si vous aimez le site et que vous voulez pouvoir en profiter longtemps, merci de désactiver votre bloqueur de publicités lorsque vous naviguer sur Plongeur.com.