| 查看: 903 | 回复: 5 | ||
[求助]
VB入门解惑 已有1人参与
|
|
刚开始学习VB,还不太熟悉,帮我看个题,谢啦~就是在主函数里面调用UNIFAC模型,不知道在哪里调试! Option Explicit Private Sub Command1_Click() Dim NG As Integer, NC As Integer, T As Single, XC() As Variant, RK() As Variant, QK() As Variant, A() As Single, V() As Single NG = 4 NC = 2 T = 298 XC = Array(0.1, 0.9) RK = Array(0.9011, 0.6744, 0.1, 2.8266) QK = Array(0.848, 0.54, 1.2, 2.472) A(1, 1) = 0 A(1, 2) = 0 A(1, 3) = 986.5 A(1, 4) = 526.5 A(2, 1) = 0 A(2, 2) = 0 A(2, 3) = 986.5 A(2, 4) = 526.5 A(3, 1) = 156.4 A(3, 2) = 156.4 A(3, 3) = 0 A(3, 4) = -202.1 A(4, 1) = 50.49 A(4, 2) = 50.49 A(4, 3) = -25.87 A(4, 4) = 0 V(1, 1) = 1 V(1, 2) = 1 V(1, 3) = 1 V(1, 4) = 0 V(2, 1) = 0 V(2, 2) = 0 V(2, 3) = 0 V(2, 4) = 1 Call UNIFAC End Sub Sub UNIFAC(NG As Integer, NC As Integer, T As Single, XC() As Single, RK() As Single, QK() As Single, A() As Single, V() As Single, GAMMA() As Single) 'This program calculates liquid phase activity coefficients using UNIFAC method 'NC--number of components in the mixture 'NG-number of functional group in the mixture 'QK(k)-the area parameter of functional group 'RK(k)-the volume parameter of functional group 'A(k,m)-the interactional parameter of functional group 'V(i,k)-the number of "'k" functional group in the "i" components 'T-system temperature,K 'XC(i)-mol fraction of "i" components 'GAMMA(i)--activity coefficients of "i" components Dim i As Integer, K As Integer, M As Integer, n As Integer Dim SUM1 As Single, SUM2 As Single, SUM3 As Single, SUM4 As Single Dim Q(10) As Single, R(10) As Single, THETA1(10) As Single, THETA2(10, 10) As Single, PHI(10, 10) As Single SUM1 = 0 SUM2 = 0 SUM3 = 0 For i = 1 To NC Q(i) = 0 R(i) = 0 For K = 1 To NG Q(i) = Q(i) + V(i, K) * QK(K) R(i) = R(i) + V(i, K) * RK(K) Next K SUM1 = SUM1 + XC(i) * (5 * (R(i) - Q(i)) - R(i) + 1) '计算SUM(x(i)*l(i)) SUM2 = SUM2 + XC(i) * Q(i) SUM3 = SUM3 + XC(i) * R(i) Next i For i = 1 To NC GAMMA(i) = Log(R(i) / SUM3) + 5 * Q(i) * Log(Q(i) * SUM3 / R(i) / SUM2) GAMMA(i) = Exp(GAMMA(i) + 5 * (R(i) - Q(i)) - R(i) + 1 - R(i) * SUM1 / SUM3) Next i SUM1 = 0 For i = 1 To NC SUM2 = 0 SUM3 = 0 For K = 1 To NG SUM2 = SUM2 + V(i, K) * XC(i) SUM3 = SUM3 + V(i, K) Next K SUM1 = SUM1 + SUM2 SUM4 = 0 For K = 1 To NG THETA2(i, K) = V(i, K) / SUM3 SUM4 = SUM4 + QK(K) * THETA2(i, K) Next K For K = 1 To NG THETA2(i, K) = QK(K) * THETA2(i, K) / SUM4 Next K Next i SUM2 = 0 For K = 1 To NG SUM3 = 0 For i = 1 To NC SUM3 = SUM3 + V(i, K) * XC(i) Next i THETA1(K) = SUM3 / SUM1 SUM2 = SUM2 + QK(K) * THETA1(K) Next K For K = 1 To NG THETA1(K) = QK(K) * THETA1(K) / SUM2 For M = 1 To NG PHI(K, M) = Exp(-A(K, M) / T) Next M Next K For K = 1 To NG SUM1 = 0 SUM2 = 0 For M = 1 To NG SUM1 = SUM1 + THETA1(M) * PHI(M, K) SUM3 = 0 For n = 1 To NG SUM3 = SUM3 + THETA1(n) * PHI(n, M) Next n SUM2 = SUM2 + THETA1(M) * PHI(K, M) / SUM3 Next M Q(K) = QK(K) * (1 - Log(SUM1) - SUM2) Next K For i = 1 To NC SUM4 = 0 For K = 1 To NG SUM1 = 0 SUM2 = 0 For M = 1 To NG SUM1 = SUM1 + THETA2(i, M) * PHI(M, K) SUM3 = 0 For n = 1 To NG SUM3 = SUM3 + THETA2(i, n) * PHI(n, M) Next n SUM2 = SUM2 + THETA2(i, M) * PHI(K, M) / SUM3 Next M SUM4 = SUM4 + V(i, K) * (Q(K) - QK(K) * (1 - Log(SUM1) - SUM2)) Next K GAMMA(i) = GAMMA(i) * Exp(SUM4) Next i End Sub End Sub |
» 猜你喜欢
关于水星近日点进动成因的质疑 与实证分析
已经有9人回复
婚姻里的赢家
已经有6人回复
航天502所 高瑛珂博士 婚内征婚 欺骗女性开房
已经有31人回复
祈祷自己至少3A2B上会啊!
已经有7人回复
你们遇到过吗
已经有4人回复
山东省优青 青B通知了????
已经有3人回复
biowhb
银虫 (正式写手)
- 应助: 5 (幼儿园)
- 金币: 620.7
- 散金: 24
- 帖子: 396
- 在线: 103.4小时
- 虫号: 2353280
- 注册: 2013-03-17
- 性别: GG
- 专业: 微生物遗传育种学

2楼2014-06-03 10:11:03
3楼2014-06-03 10:18:04
biowhb
银虫 (正式写手)
- 应助: 5 (幼儿园)
- 金币: 620.7
- 散金: 24
- 帖子: 396
- 在线: 103.4小时
- 虫号: 2353280
- 注册: 2013-03-17
- 性别: GG
- 专业: 微生物遗传育种学

4楼2014-06-03 14:25:57
5楼2014-06-03 21:05:51
deephill
铁杆木虫 (职业作家)
- 应助: 59 (初中生)
- 金币: 5262.3
- 散金: 100
- 红花: 16
- 帖子: 4425
- 在线: 425小时
- 虫号: 305318
- 注册: 2006-12-09
- 性别: GG
- 专业: 微量元素地球化学
6楼2014-06-09 09:29:12











回复此楼