做供水工程很多,特意发布一个小工具,用于计算多段管道水头损失用的。代码主要是为了方便大家扩展,可以添加其他计算水损的公式进来。说是不定参数,其实参数大概不能超过20个左右吧,再多就用多个函数相加吧,很容易。[code]'施工预算分院秦工qq504284'自定义 不定数量参数的管道水损计算函数'使用方法:hydro(谢才系数还是海增威廉公式,管段1的流量,管段1的长度,管段1的糙率,管段1的内直径,管段1的局部水损系数,管段2的流量……)
代码主要是为了方便大家扩展,可以添加其他计算水损的公式进来。
说是不定参数,其实参数大概不能超过20个左右吧,再多就用多个函数相加吧,很容易。
[code]'施工预算分院秦工qq504284
'自定义 不定数量参数的管道水损计算函数
'使用方法:hydro(谢才系数还是海增威廉公式,管段1的流量,管段1的长度,管段1的糙率,管段1的内直径,管段1的局部水损系数,管段2的流量……)
'间距L m
'流量Q1 m3/s
'糙率n
'海曾-威廉系数Ch
'圆管直径 D m
'局部水头损失系数 ∑ζ
'面积A m2
'水力半径R m
'流速V1 m/s
'谢才系数C = 1 / E7 * E11^(1 / 6)
'流量模数 K=E10*E12*E11^0.5
'单位长度水头损失 i2=10.67*E6^1.852/E25^1.852/E8^4.87
'使用不定数量的参数
'一般说来,过程调用中的参数个数应等于过程说明的参数个数。可用 ParamArray 关键字指明,
'过程将接受任意个数的参数。于是可以这样来编写计算总和的 Sum 函数:
Dim yita As Integer
Dim Q As Double
Dim L As Double
Dim N As Double
Dim DI As Double
Dim KESI As Double
Dim A As Double
Dim V As Double
Dim R As Double
Dim K As Double
Dim HF As Double
Dim HJ As Double
Dim intSums As Double
Function hydro(ParamArray intNums())
yita = intNums(0)
If yita = 1 Then '采用谢才系数公式,否则为海增威廉公式
For i = 0 To UBound(intNums) - 1 Step 5
Q = intNums(i + 1)
L = intNums(i + 2)
N = intNums(i + 3)
DI = intNums(i + 4)
KESI = intNums(i + 5)
A = 3.1415926 * DI ^ 2 / 4
V = Q / A
R = DI / 4
C = 1 / N * R ^ (1 / 6)
K = A * C * R ^ 0.5
' 沿程水损(含局部水损)
HF = Q ^ 2 / K ^ 2 * L
'局部水损
HJ = KESI * V ^ 2 / 2 / 9.81
hydro = hydro + HF + HJ
Next 'i
Else
End If
' For Each x In intNums
' y = y + x
' Next x
' Sum1 = y
End Function
Private Sub test()
B = hydro(1, 5, 100, 0.012, 2, 5, 2.5, 1000, 0.012, 1.6, 10)
End Sub[/code]