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