| 查看: 949 | 回复: 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 |
» 猜你喜欢
自然基金已经彻底沦为学术资源的交换工具
已经有30人回复
全人类对于AI的整体认知,尚且停留在幼儿园启蒙阶段
已经有7人回复
周末思考-婚姻长久底色
已经有12人回复
27考博求助
已经有4人回复
深圳大学材料学院“智能分子材料团队”招聘博士后
已经有4人回复
面上的水很深
已经有32人回复
国社科通讯评审
已经有8人回复
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











回复此楼