|
Option Explicit
Dim ca(1000), cacm(1000), wf(1000), xfc(1000), xpc(1000), temp(1000), tempp(1000), delt As Double
Dim xf(1000), xaf(1000), xff(1000), tf(1000), bf(1000), nf As Double
Dim xp(1000), xpp(1000), tp(1000), bp(1000), np As Double
Dim c, mn, pf, pp As Double
Dim i, j As Integer
Dim wf1(1000), wf2(1000) As Double
Dim wp1(1000), wp2(1000) As Double
Dim xfc1(1000), xfc2(1000), tf1(1000) As Double
Dim xpc1(1000), xpc2(1000), tp1(1000) As Double
Dim cool, coolp As Double
Dim k, l As Integer
Dim deltxf(1000), sumf(1000) As Double
Dim deltxp(1000), sump(1000) As Double
Dim pf1, pf2(1000), pf3, pf4, dr0, dr, ae3, strain As Double
Dim pp1, pp2(1000), pp3, pp4, ae1 As Double
Dim pwf(1000) As Double
Dim pwp(1000) As Double
Dim cau(1000) As Double
Dim tpe As Double
Dim temperature As Double
Dim tem As Double
Dim delt1 As Double
'
Private Sub cmdSave_Click()
Dim lp As Integer
Open "F:\毕业设计\Phase Fraction Program\result.txt" For Output Access Write As #100
Print #100, "Step" & vbTab & vbTab & "Xf" & vbTab & vbTab & "Temp" & vbCrLf
For lp = 1 To i - 1
Print #100, lp & vbTab & vbTab & xf(lp) & vbTab & vbTab & temp(lp) & vbCrLf
' Write #100, vbCrLf
Next lp
Print #100, vbCrLf
Print #100, vbCrLf
Print #100, "Step" & vbTab & vbTab & "Xp" & vbTab & vbTab & "Tempp" & vbCrLf
For lp = 1 To k - 1
Print #100, lp & vbTab & vbTab & xp(lp) & vbTab & vbTab & tempp(lp) & vbCrLf
Next lp
Close #100
End Sub
Private Sub Command1_Click()
c = 0.12 '0.07 0.36
mn = 0.5 ''0-1.3
pf = 7.86
pp = 7.81
nf = 0.89
np = 0.99
delt = 1
tf(0) = 0
tp(0) = 0
cool = 15 ''''''(884 - 600) / 25 ''''11.36 ''''1-17.9
sumf(0) = 0
sump(0) = 0
strain = 0.06 ''0
dr0 = 15 '''''3.5-23
pf3 = 67
pf4 = 1.9
dr = dr0 / (1 + 0.5 * strain)
pf1 = 2 / (dr * (c + (mn / 6)))
pp1 = 13 / dr
pp3 = 47
pp4 = 2.2
pf2(0) = 0
pp2(0) = 0
delt1 = 10 ^ (-3)
ae1 = 727
coolp = 5
ae3 = 904.7899 - 374.25945 * c + 195.43806 * c * c
tpe = 682.71 - 156.07 * c - 6.6809 * mn - 9 * (cool ^ 0.12) '''
'''Calculation of ferrite fraction
For i = 1 To 100
'''' pf2(i) = ae3 - 215 + (28.15 / (dr ^ 0.02)) - 0.0007 * c
pf2(i) = ae3 - 215 + (28.15 / (dr ^ 0.02)) - 0.0007 * c
temperature = 874.087 + 407.67788 * c - 3724.46472 * c * c + 8293.05941 * c * c * c - 6277.1172 * c * c * c * c - 22.56 * (cool ^ 0.27)
temp(i) = temperature - (i - 1) * cool * delt
tem = temp(i - 1)
j = i
''''' pwf(i) = Abs((temp(i) - pf2(i - 1)) / pf3) ^ pf4 '''''''''''
pwf(i) = ((temp(i) - pf2(i - 1)) / pf3) ^ pf4
bf(i) = pf1 * Exp(-pwf(i))
xf(i) = 1 - Exp((-bf(i)) * ((delt + tf(i - 1)) ^ nf))
cacm(i) = -0.29729 + (4.57757 / 10000) * temp(i) + (1.37432 / 1000000) * temp(i) * temp(i)
cau(i) = (c - xf(i) * ca(i)) / (1 - xf(i))
If cacm(i) < cau(i) Then
Exit For
End If
ca(i) = 0.04628 + (1.27515 / 100000) * temp(i) - (1.695367 / 100000000) * temp(i) * temp(i)
wf1(i) = cacm(i) - c
wf2(i) = cacm(i) - ca(i)
wf(i) = wf1(i) / wf2(i)
xfc1(i) = wf(i) / pf
xfc2(i) = (1 - wf(i)) / pp
xfc(i) = xfc1(i) / (xfc1(i) + xfc2(i))
'''''''''''''''
temp(i + 1) = temperature - ((i + 1) - 1) * cool * delt
'''pwf(i + 1) = Abs((temp(i + 1) - pf2(i)) / pf3) ^ pf4 ''''''''
pwf(i + 1) = ((temp(i + 1) - pf2(i)) / pf3) ^ pf4
bf(i + 1) = pf1 * Exp(-pwf(i + 1))
ca(i + 1) = 0.04628 + (1.27515 / 100000) * temp(i + 1) - (1.695367 / 100000000) * temp(i + 1) * temp(i + 1)
cacm(i + 1) = -0.29729 + (4.57757 / 10000) * temp(i + 1) + (1.37432 / 1000000) * temp(i + 1) * temp(i + 1)
wf1(i + 1) = cacm(i + 1) - c
wf2(i + 1) = cacm(i + 1) - ca(i + 1)
wf(i + 1) = wf1(i + 1) / wf2(i + 1)
xfc1(i + 1) = wf(i + 1) / pf
xfc2(i + 1) = (1 - wf(i + 1)) / pp
xfc(i + 1) = xfc1(i + 1) / (xfc1(i + 1) + xfc2(i + 1))
xff(i) = (xfc(i) / xfc(i + 1)) * xf(i)
tf1(i) = Log(1 / (1 - xff(i)))
tf(i) = ((tf1(i)) / bf(i + 1)) ^ (1 / nf)
deltxf(i) = xf(i) - xf(i - 1)
sumf(i) = deltxf(i) + sumf(i - 1)
Next i
Text1.Text = Str(j)
Text2.Text = Str(sumf(i - 1))
Text3.Text = Str(tem)
'''Calculation of pearlite fraction
For k = 1 To 100
pp2(k) = ae1 - 175 + (27.8 / (dr ^ 0.02)) - 22 * c
If Abs(cool - coolp) < 4.5 Then
cool = coolp - (cool - coolp) / 4.5
End If
tempp(k) = tem - (k - 1) * cool * delt
l = k
pwp(k) = ((tempp(k) - pp2(k - 1)) / pp3) ^ pp4 ''''''''''''
bp(k) = pp1 * Exp(-pwp(k))
xp(k) = 1 - Exp((-bp(k)) * ((delt + tp(k - 1)) ^ np))
If tempp(k) < tpe Then
Exit For
End If
ca(k) = 0.04628 + (1.27515 / 100000) * temp(k) - (1.695367 / 100000000) * temp(k) * temp(k)
cacm(k) = -0.29729 + (4.57757 / 10000) * temp(k) + (1.37432 / 1000000) * temp(k) * temp(k)
wp1(k) = cacm(k) - c
wp2(k) = cacm(k) - ca(k)
pwp(k) = wp1(k) / wp2(k)
xpc1(k) = pwp(k) / pf
xpc2(k) = (1 - pwp(k)) / pp
xpc(k) = xpc1(k) / (xpc1(k) + xpc2(k))
'''''''''''''''
tempp(k + 1) = tem - ((k + 1) - 1) * cool * delt
pwp(k + 1) = ((tempp(k + 1) - pp2(k)) / pp3) ^ pp4 '''''''''''''''
bp(k + 1) = pp1 * Exp(-pwp(k + 1))
ca(k + 1) = 0.04628 + (1.27515 / 100000) * temp(k + 1) - (1.695367 / 100000000) * temp(k + 1) * temp(k + 1)
cacm(i + 1) = -0.29729 + (4.57757 / 10000) * temp(i + 1) + (1.37432 / 1000000) * temp(i + 1) * temp(i + 1)
wp1(k + 1) = cacm(k + 1) - c
wp2(k + 1) = cacm(k + 1) - ca(k + 1)
pwp(k + 1) = wp1(k + 1) / wp2(k + 1)
xpc1(k + 1) = pwp(k + 1) / pf
xpc2(k + 1) = (1 - pwp(k + 1)) / pp
xpc(k + 1) = xpc1(k + 1) / (xpc1(k + 1) + xpc2(k + 1))
xpp(k) = ((1 - xpc(k)) / (1 - xpc(k + 1))) * xp(k)
tp1(k) = Log(1 / (1 - (xpp(k))))
tp(k) = ((tp1(k)) / bp(k + 1)) ^ (1 / np)
deltxp(k) = xp(k) - xp(k - 1)
sump(k) = deltxp(k) + sump(k - 1)
Next k
Text4.Text = Str(l)
Text5.Text = Str(sump(k - 1))
Text6.Text = Str(tempp(l))
Text7.Text = Str(1 - sumf(j - 1) - sump(l - 1))
End Sub
Private Sub Command2_Click()
End
End Sub
---------------------------------------------------------------------------------------
以上就是程序
急切盼望哪位高手能看出程序中用的所有公式!!!!
若有高手请联系QQ:258145361 |
评分
-
查看全部评分
|