Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 VBA itérations

Nicolas17

XLDnaute Nouveau
Bonjour,

Encore une fois, j'aurai besoin d'aide pour un calcul (ci-joint).

Quand je lance le code, cela mouline indéfiniment.

Vs = 5, g=9.81, h = 4.5, Ac = 202.5, alphas = 1.26, Bb = 36 et alpha = 26, Am = 34.2.

Merci d'avance !

Nicolas
 

Pièces jointes

  • equation.JPG
    37 KB · Affichages: 31
  • VBA delta h.txt
    1.1 KB · Affichages: 7
Solution
dans Variation je pense qu'il y a une erreur de parenthèse.
Mais même rectifié, pour les inputs du post #1, je trouve un Deltah de -0.4m.
Cependant (si j'ai bien compris) DeltaH est le niveau par rapport à l'origine. Donc s'agissant d'un abaissement il serait normal que DeltaH soit négatif. Non ?

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nicolas,
Pas encore compris pourquoi, mais peut être que cela vous aidera à avancer.
Nous serons deux.
While Abs(Y - w) > 0.01 est impossible car Abs(Y - w) =57.6687486 et ne bouge pas.
Rajouter deux lignes de code pour suivre la convergence dans la feuille :
VB:
    While Abs(Y - w) > 0.01
        Range("A1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        [A1] = Abs(Y - w)            ' rajoute la convergence en colonne A pour essayer de comprendre'
        w = barrage(Bb, h, Am)
        Y = variation(Ac, AlphaS, Vs) ', Bb, h, Am)
    Wend
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je ne comprend pas pourquoi vous faites un test de convergence car :
1- w = barrage(Bb, h, Am) est constant =57.5919
2-Y = variation(Ac, AlphaS, Vs) est constant =-0.07676

D'autre part vous donnez Alpha=26, hors un angle s'exprime en radians donc compris entre +/-2Pi.
J'ai modifié le code pour tracer aussi W et Y :
VB:
    While Abs(Y - w) > 0.01
        Range("A1:C1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        [A1] = Abs(Y - w)
        w = barrage(Bb, h, Am)  ' Cte
        [B1] = w
        Y = variation(Ac, AlphaS, Vs) ', Bb, h, Am)
        [C1] = Y
    Wend
 

Nicolas17

XLDnaute Nouveau
Bonjour,

J'ai modifié le programme. Il marche mais je trouve des valeurs négatives...

L'abaissement du plan d'eau deltah doit être positif normalement. Un idée Sylvanu ?
 

Pièces jointes

  • VBA delta h.txt
    1.1 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Aucune idée.
Cependant, je réitère, le VBA (et XL) ne travaille qu'avec des angles en radians.
Alpha étant un angle il m'étonnerait que 26 soit exprimé en radians.
Généralement on exprime un angle en radian entre +/-2 pi.
26 radians feraient 1489°.
Peut être une piste.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
dans Variation je pense qu'il y a une erreur de parenthèse.
Mais même rectifié, pour les inputs du post #1, je trouve un Deltah de -0.4m.
Cependant (si j'ai bien compris) DeltaH est le niveau par rapport à l'origine. Donc s'agissant d'un abaissement il serait normal que DeltaH soit négatif. Non ?
 

Pièces jointes

  • Classeur1.xlsm
    13.5 KB · Affichages: 2

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…