Calcul itératif VBA - Evolution d'une concentration

Fermé
Q_S Messages postés 6 Date d'inscription vendredi 22 janvier 2016 Statut Membre Dernière intervention 12 juin 2017 - 11 juin 2017 à 20:33
Q_S Messages postés 6 Date d'inscription vendredi 22 janvier 2016 Statut Membre Dernière intervention 12 juin 2017 - 12 juin 2017 à 01:39
Bonjour,

Je me permets de solliciter votre aide car cela fait très longtemps que je n’ai plus utilisé vba et je ne sais plus du tout m’en sortir.

Je travaille actuellement sur un problème sur un système d’épuration.
J’ai sur mon circuit principal qui contient une masse Mc = 25 t d’eau, un système de purification P qui épure à un débit Qp = 2 t/h.

Chaque jour, j’ai le matériau de mon circuit qui relâche par exemple 0,15g de fer, soit 0,006 ppm à t=0.
Pour simplifier l’approche calculatoire, je considère que ce relâchement a lieu ponctuellement à 0h00 chaque jour et que mon système de purification fonctionne 24h/24h.
Mon équation d’épuration est la suivante :

C_i =C_0i *exp(-(1-(1/pi))*(Qp/Mc)*t)

Où C_i est ma concentration de mon polluant (fer) à l’instant t et C_0i ma concentration initiale à t=0 (0h00 chaque jour).

Je souhaite connaître au bout de 365j à combien s’élèvera la concentration dans mon circuit. Je pense cela se fait assez facilement sur VBA avec une double boucle for mais je ne sais plus faire.
Cela revient, avec un modèle simplifié chaque jour à avoir : C0i + 1 = C0i (0,006 ppm) + C (23h59) du j-1

Je ne sais pas si je suis très clair. En gros j’épure chaque jours pendant 24h, il me restera toujours un talon de fer que j’additionne de jour en jour. Ma concentration C_0i à minuit de jour en jour sera donc de plus en plus importante.

Merci par avance pour votre aide.

2 réponses

yg_be Messages postés 20763 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 décembre 2022 1 270
11 juin 2017 à 21:01
bonsoir,
je n'ai pas compris pourquoi une double boucle plutôt qu'une simple boucle sur les 365 jours
dim CI as double
dimp QP as double, MC as double, pi as double
dim j as long
dim T as double
' initialisation des variables
for j = 1 to 365
    CI=CI + 0.15 'calculer le relachement
    CI =CI *exp(-(1-(1/pi))*(Qp/Mc)*t)
next j
0
Q_S Messages postés 6 Date d'inscription vendredi 22 janvier 2016 Statut Membre Dernière intervention 12 juin 2017
12 juin 2017 à 01:39
Bonsoir,

Oui effectivement ! Je vais essayer cela. Merci beaucoup !
0