📄 jk.frm
字号:
End
Begin VB.TextBox Text23
Height = 375
Index = 0
Left = 2520
TabIndex = 27
Text = "Text23"
Top = 360
Width = 2175
End
Begin VB.Label Label23
Caption = "分子流模型"
Height = 375
Index = 1
Left = 480
TabIndex = 33
Top = 1680
Width = 1455
End
Begin VB.Label Label22
Caption = "过渡流模型"
Height = 375
Index = 1
Left = 480
TabIndex = 32
Top = 1080
Width = 1455
End
Begin VB.Label Label21
Caption = "粘滞流模型"
Height = 375
Index = 1
Left = 480
TabIndex = 31
Top = 480
Width = 1455
End
End
Begin VB.CommandButton Command1
Caption = "计算"
Height = 375
Left = 8280
TabIndex = 25
Top = 1680
Width = 975
End
Begin VB.TextBox txt5
Height = 270
Left = 2880
TabIndex = 24
Text = "0.1"
Top = 2160
Width = 1455
End
Begin VB.TextBox txt7
Height = 270
Index = 1
Left = 2880
TabIndex = 23
Text = "0.18"
Top = 3240
Width = 1455
End
Begin VB.TextBox txt8
Height = 270
Index = 1
Left = 2880
TabIndex = 22
Text = "0.07"
Top = 3600
Width = 1455
End
Begin VB.TextBox txt1
Height = 270
Left = 2880
TabIndex = 3
Text = "84.88"
Top = 360
Width = 1455
End
Begin VB.TextBox txt2
Height = 270
Left = 2880
TabIndex = 2
Text = "250"
Top = 720
Width = 1455
End
Begin VB.TextBox txt3
Height = 270
Left = 2880
TabIndex = 1
Text = "84.78"
Top = 1200
Width = 1455
End
Begin VB.Label Label17
Caption = "轴固定端(电机端)与泵体端盖间的间隙"
Height = 615
Index = 1
Left = 0
TabIndex = 21
Top = 3600
Width = 2295
End
Begin VB.Label Label16
Caption = "轴活动端(齿轮端)转子侧面与泵壁端盖间的间隙"
Height = 495
Index = 1
Left = 0
TabIndex = 20
Top = 3120
Width = 2415
End
Begin VB.Label Label15
Caption = "转子与转子间的间隙"
Height = 255
Index = 1
Left = 0
TabIndex = 19
Top = 2760
Width = 1935
End
Begin VB.Label Label14
Caption = "转子与泵壁之间特征间隙 "
Height = 255
Index = 1
Left = 0
TabIndex = 18
Top = 2160
Width = 2655
End
Begin VB.Label Label2
Caption = "壁的内圆半径"
Height = 255
Left = 120
TabIndex = 7
Top = 360
Width = 1095
End
Begin VB.Label Label3
Caption = "转子厚度"
Height = 255
Left = 120
TabIndex = 6
Top = 720
Width = 1095
End
Begin VB.Label Label4
Caption = "叶轮中心距"
Height = 255
Left = 120
TabIndex = 5
Top = 1080
Width = 1095
End
Begin VB.Label Label6
Caption = "叶峰半径"
Height = 255
Left = 120
TabIndex = 4
Top = 1560
Width = 1095
End
End
Begin VB.Label Label1
Caption = "渐开线型型转子的间隙泄漏量"
BeginProperty Font
Name = "楷体_GB2312"
Size = 15.75
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000C0&
Height = 615
Index = 0
Left = 2880
TabIndex = 8
Top = 0
Width = 5295
End
End
Attribute VB_Name = "jk"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Const pi = 3.1415926
'全局变量
Dim rm As Double, b As Double, a As Double, p2 As Double, p1 As Double, R0 As Double, nn As Double
'***************************************************************************************************************
'***************************************转子顶部与壁的泄漏模型**************************************************
'****************************************************************************************************************
Private Sub Command1_Click()
'p()为迭代过程中的p,Q()为迭代过程中的流量Q,x()为迭代过程中的x
Dim p(1 To 10000) As Double, Q(1 To 10000) As Double, x(1 To 10000) As Double, QQ As Double, alpha As Double, alphj As Double
rm = Val(Text1.Text) '壁的内圆半径
b = Val(Text2.Text) '转子厚度
a = 0.5 * Val(Text3.Text) '叶轮中心距
r = Val(Text4.Text) '叶峰半径
nn = Val(Text5.Text) '粘滞系数
p1 = Val(Text6.Text) '初始压强P1
p2 = Val(Text7.Text) '出口压强p2
'num = Val(Text8.Text) '迭代步数
n = Val(Text10.Text) '转速:角速度
R0 = 4 * r / pi
'*************************************粘滞流状态QQ********************************************************************
alphp = Atn(-(4 * r / (pi * a)) / (-(4 * r / (pi * a)) ^ 2 + 1) ^ 0.5) + 2 * Atn(1) '节圆压力角
temp = 1 / (1 + (Tan(alphp) - pi / 2) ^ 2) ^ 0.5
alphj = Atn(-temp / (-temp ^ 2 + 1)) + 2 * Atn(1) '终点压力角
h = 2 * R0 * Tan(alphj) / num '迭代步长
'ReDim p(1 To num), Q(1 To num), x(1 To num)
p(1) = p1
Q(1) = 0
x(1) = -R0 * Tan(alphj)
'开始迭代计算
For i = 1 To num - 1
t1 = b * ((rm ^ 2 - x(i) ^ 2) ^ 0.5 - (r ^ 2 - x(i) ^ 2) ^ 0.5 - a) / 2
t2 = ((rm ^ 2 - x(i) ^ 2) ^ 0.5 - (r ^ 2 - x(i) ^ 2) ^ 0.5 - a) ^ 2 / (6 * nn)
t3 = 2 * pi * n * ((r ^ 2 - x(i) ^ 2) ^ 0.5 + a) / 60
k1 = (Q(i) / (t1 * p(i)) - t3) / t2
t12 = b * ((rm ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 - (r ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 - a) / 2
t22 = ((rm ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 - (r ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 - a) ^ 2 / (6 * nn)
t32 = 2 * pi * n * ((r ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 + a) / 60
k2 = (Q(i) / (t12 * (p(i) + 0.5 * h * k1)) - t32) / t22
k3 = (Q(i) / (t12 * (p(i) + 0.5 * h * k2)) - t32) / t22
t13 = b * ((rm ^ 2 - (x(i) + h) ^ 2) ^ 0.5 - (r ^ 2 - (x(i) + h) ^ 2) ^ 0.5 - a) / 2
t23 = ((rm ^ 2 - (x(i) + h) ^ 2) ^ 0.5 - (r ^ 2 - (x(i) + h) ^ 2) ^ 0.5 - a) ^ 2 / (6 * nn)
t33 = 2 * pi * n * ((r ^ 2 - (x(i) + h) ^ 2) ^ 0.5 + a) / 60
k4 = (Q(i) / (t12 * (p(i) + h * k3)) - t32) / t22
p(i + 1) = p(i) + h * (k1 + 2 * k2 + 2 * k3 + k4) / 6
x(i + 1) = x(i) + h
Q(i + 1) = t1 * p(i + 1) * (t2 * k1 + t3)
Next
'输出流量Q
QQ = t1 * p2 * (t2 * k1 + t3)
Text9.Text = QQ
'****************************************************************************************************************
'********************************************过渡流状态Q*************************************************************************
k = 1.38 * 10 ^ (-23)
xgma = 3 * 10 ^ (-10)
nu = 28 '气体摩尔质量取28
t = Val(Text11.Text) '温度
'kk为修正系数
kk = 3 * (1 + r) * (r * Log(r + (1 + r ^ 2) ^ 0.5) + r ^ 2 * Log((1 + (1 + r ^ 2) ^ 0.5) / r) + (1 + r ^ 3 - (1 + r ^ 2) ^ (3 / 2)) / 3) / (8 * r ^ 2)
'开始迭代计算
For i = 1 To num - 1
'求K1
hx = (rm ^ 2 - x(i) ^ 2) ^ 0.5 - (r ^ 2 - x(i) ^ 2) ^ 0.5 - a 'x处的管道高度h(x)
vx = 2 * pi * n * ((r ^ 2 - x(i) ^ 2) ^ 0.5 + a) / 60 '速度分量v(x)
tx1 = Exp(-12 * k * t / (1.414 * xgma ^ 2 * p(i) * hx))
tx2 = (8 / 3) * kk * (2 / 0.97 - 1) * (2 * 8.31 * t / (pi * nu)) ^ 0.5 * (b ^ 2 * hx ^ 2 / (b + hx)) * (1 - tx1)
k1 = (Q(i) + vx * b * hx + tx1 * p(i)) / ((b * hx * tx1 * p(i) / 6 * nn) - tx2)
'求K2
hx = (rm ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 - (r ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 - a 'x处的管道高度h(x)
vx = 2 * pi * n * ((r ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 + a) / 60 '速度分量v(x)
tx1 = Exp(-12 * k * t / (1.414 * xgma ^ 2 * (p(i) + 0.5 * h * k1) * hx))
tx2 = (8 / 3) * kk * (2 / 0.97 - 1) * (2 * 8.31 * t / (pi * nu)) ^ 0.5 * (b ^ 2 * hx ^ 2 / (b + hx)) * (1 - tx1)
k2 = (Q(i) + vx * b * hx + tx1 * (p(i) + 0.5 * h * k1)) / ((b * hx * tx1 * (p(i) + 0.5 * h * k1) / 6 * nn) - tx2)
'求K3
hx = (rm ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 - (r ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 - a 'x处的管道高度h(x)
vx = 2 * pi * n * ((r ^ 2 - (x(i) + 0.5 * h) ^ 2) ^ 0.5 + a) / 60 '速度分量v(x)
tx1 = Exp(-12 * k * t / (1.414 * xgma ^ 2 * (p(i) + 0.5 * h * k2) * hx))
tx2 = (8 / 3) * kk * (2 / 0.97 - 1) * (2 * 8.31 * t / (pi * nu)) ^ 0.5 * (b ^ 2 * hx ^ 2 / (b + hx)) * (1 - tx1)
k3 = (Q(i) + vx * b * hx + tx1 * (p(i) + 0.5 * h * k2)) / ((b * hx * tx1 * (p(i) + 0.5 * h * k2) / 6 * nn) - tx2)
'求K4
hx = (rm ^ 2 - (x(i) + h) ^ 2) ^ 0.5 - (r ^ 2 - (x(i) + h) ^ 2) ^ 0.5 - a 'x处的管道高度h(x)
vx = 2 * pi * n * ((r ^ 2 - (x(i) + h) ^ 2) ^ 0.5 + a) / 60 '速度分量v(x)
tx1 = Exp(-12 * k * t / (1.414 * xgma ^ 2 * (p(i) + h * k3) * hx))
tx2 = (8 / 3) * kk * (2 / 0.97 - 1) * (2 * 8.31 * t / (pi * nu)) ^ 0.5 * (b ^ 2 * hx ^ 2 / (b + hx)) * (1 - tx1)
k3 = (Q(i) + vx * b * hx + tx1 * (p(i) + k3)) / ((b * hx * tx1 * (p(i) + h * k3) / 6 * nn) - tx2)
'求p(i+1)
p(i + 1) = p(i) + h * (k1 + 2 * k2 + 2 * k3 + k4) / 6
x(i + 1) = x(i) + h
'求Q(i+1)
Q(i + 1) = (b * hx * tx1 / (6 * nn)) * p(i + 1) * k1 - vx * b * hx * tx1 * p(i + 1) - tx2 * p(i + 1)
Next
'输出流量Q
QQ = (b * hx * tx1 / (6 * nn)) * p2 * k1 - vx * b * hx * tx1 * p2 - tx2 * p2
Text12.Text = QQ
'*********************************************************************************************************************
End Sub
Private Sub Command4_Click()
End Sub
Private Sub Command5_Click()
End Sub
Private Sub Command2_Click()
End Sub
Private Sub Command7_Click()
End Sub
Private Sub Command3_Click(Index As Integer)
kk = (Val(txt1.Text) / 84.88 + Val(txt2) / 250 + Val(txt3.Text) / 24.78 + Val(txt4) / 25.03 + Val(txt5) / 0.1 + Val(txt6) / 0.14 + Val(txt7(1)) / 0.18 _
+ Val(txt8(1)) / 0.07 + Val(txt10) / 3000 + Val(txt12) / 500) / 10
p1 = Val(txt11.Text) / 5
q2 = kk * (-0.000000006352 * p1 ^ 2 + 0.00002239 * p1 + 67.02)
txt19(1) = q2
txt20(1) = q2 * 1.2
txt21(1) = q2 * 0.89
End Sub
Private Sub Command6_Click()
kk = (Val(txt1.Text) / 84.88 + Val(txt2) / 250 + Val(txt3.Text) / 24.78 + Val(txt4) / 25.03 + Val(txt5) / 0.1 + Val(txt6) / 0.14 + Val(txt7(1)) / 0.18 _
+ Val(txt8(1)) / 0.07 + Val(txt10) / 3000 + Val(txt12) / 500) / 10
p1 = Val(txt11.Text) / 5
q2 = kk * (-0.00000003801 * p1 ^ 2 + 0.00382 * p1)
txt16 = q2
txt17 = q2 * 1.2
txt18 = q2 * 0.89
End Sub
Private Sub Command8_Click()
kk = (Val(txt1.Text) / 84.88 + Val(txt2) / 250 + Val(txt3.Text) / 24.78 + Val(txt4) / 25.03 + Val(txt5) / 0.1 + Val(txt6) / 0.14 + Val(txt7(1)) / 0.18 _
+ Val(txt8(1)) / 0.07 + Val(txt10) / 3000 + Val(txt12) / 500) / 10
p1 = Val(txt11.Text) / 5
q1 = kk * (-0.000000009294 * p1 ^ 2 + 8.956 * 0.001 * p1)
txt13(1) = q1
txt14(1) = q1 * 0.99
txt15 = q1 * 1.11
End Sub
'***************************************************************************************************************
'***************************************************************************************************************
'****************************************************************************************************************
Private Sub Form_Load()
'Text1.Text = 200
'Text2.Text = 50
'Text3.Text = 140
'Text4.Text = 45
'Text5.Text = 0.8
'Text6.Text = 1000
'Text7.Text = 500
'Text8.Text = ""
'Text9.Text = ""
'Text10.Text = 1000
'Text11.Text = ""
'Text12.Text = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
mainfrm.Show
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -