| 查看: 798 | 回复: 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 |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有8人回复
最失望的一年
已经有17人回复
为什么nbs上溴 没有产物点出现呢
已经有6人回复
求推荐博导
已经有4人回复
存款400万可以在学校里躺平吗
已经有34人回复
求助一下有机合成大神
已经有4人回复
求推荐英文EI期刊
已经有5人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
疑惑?
已经有5人回复
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













回复此楼