Behöver hjälp med Excel och VBA för att lösa hydrauliska beräkningar

Permalänk
Medlem

Behöver hjälp med Excel och VBA för att lösa hydrauliska beräkningar

Hej!

Vet inte om detta är rätt forum men jag testar

Jag räknar på förluster i ledningar och använder mig av Darcy-Weisbach ekvation. Ekvationen används för att räkna fram en friktionsfaktor f, se bilden nedan.

Eftersom friktionsfaktorn f i ekvationen inte går att lösa ut behöver man iterera fram svaret. Det jag har gjort genom att använda mig av Goal Seek i VBA. Den funkar bra men inte i alla lägen. Ibland konvergerar inte lösningen och då krashar beräkningen och då måste jag gissa manuellt så att den ska börja konvergera igenm Skulle vilja att koden löser det själv men är för dåligt på VBA. Tanken är att jag gör en cell med friktionsfaktorn f säg (cell A2). En cell där jag räknar ut vänsterled A3 i Darcys ekvation och en cell där jag räknar ut högerled A4 i Darcys ekvation. Sen gör jag en till cell där jag räknar (Vänsterled-Högerled)^2 i cell A5. Cell A5 kör jag goal seek på genom att ändra A2 (friktionsfaktorn) så att A5 närmar sig noll. Jag hoppas detta är förståeligt vad jag försöker få fram:p VBA-koden ser ut så här:

Private Sub Worksheet_Calculate()
GoalSeek
End Sub

Private Sub GoalSeek()

Application.ScreenUpdating = False

Static isWorking As Boolean

If Round(Range("A5").Value, 4) <> 0 And Not isWorking Then
isWorking = True
Range("A5").GoalSeek Goal:=0, ChangingCell:=Range("A2")
isWorking = False
End If

Application.ScreenUpdating = True

End Sub

Detta är troligtvis inte den bästa lösningen men har ni någon helt annan lösning så kom gärna med förslag

Permalänk
Medlem

Ingen? 😊

Permalänk
Medlem
Skrivet av Lombra:

Ingen? 😊

Jag använde matlab för sånna beräkningar för 20 år sedan, eventuellt se på pyton. Excel og VBA får vi inte ens använda där jag jobbar nu.

Permalänk
Medlem
Skrivet av Saihtam:

Jag använde matlab för sånna beräkningar för 20 år sedan, eventuellt se på pyton. Excel og VBA får vi inte ens använda där jag jobbar nu.

Jaha, jag använder mestadels excel när jag gör mina beräkningar på jobbet (flesta använder det på mitt jobb så att man ska kunna granska arbetet:))

Körde matlab i skolan men inget jag använder nu tyvärr:)

Permalänk
Medlem

Hur noggrannt behöver resultatet vara? Har du testat att minska noggrannheten när du kör goalseek? Alternativt öka antalet iterationer.

+t
Permalänk
Medlem
Skrivet av pine-orange:

Hur noggrann behöver resultatet vara? Har du testat att minska noggrannheten när du kör goalseek? Alternativt öka antalet iterationer.

Inte super noga men goalseek cellen ska närma sig 0.001 iallafall. Men vet inte hur jag programmerar in det i vba eller antalet iterationer

Permalänk
Medlem
Skrivet av Lombra:

Inte super noga men goalseek cellen ska närma sig 0.001 iallafall. Men vet inte hur jag programmerar in det i vba eller antalet iterationer

Det finns under nånstans under File > Options > Formulas.

Permalänk
Medlem
Skrivet av pine-orange:

Det finns under nånstans under File > Options > Formulas.

Tack! ska prova detta