24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 846  |  回复: 5

yuyi2009

铜虫 (小有名气)

[求助] 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
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

biowhb

银虫 (正式写手)

不知道楼主想要表达什么?你要调试什么啊?你这个算法一大堆,说白了,这个算法是通用的算法,本身应该没什么问题,一步调用也不会有什么问题。
生物技术-基因工程制药
2楼2014-06-03 10:11:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yuyi2009

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by biowhb at 2014-06-03 10:11:03
不知道楼主想要表达什么?你要调试什么啊?你这个算法一大堆,说白了,这个算法是通用的算法,本身应该没什么问题,一步调用也不会有什么问题。

好吧!可能我没有说清楚,下面的算法应该没问题。就是我不知道怎么调用是对的,因为运行出错了,谢谢!
3楼2014-06-03 10:18:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

biowhb

银虫 (正式写手)

引用回帖:
3楼: Originally posted by yuyi2009 at 2014-06-03 10:18:04
好吧!可能我没有说清楚,下面的算法应该没问题。就是我不知道怎么调用是对的,因为运行出错了,谢谢!...

出错,就把错误代码写出来,并且标记一下,出错在哪一行
生物技术-基因工程制药
4楼2014-06-03 14:25:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yuyi2009

铜虫 (小有名气)

引用回帖:
4楼: Originally posted by biowhb at 2014-06-03 14:25:57
出错,就把错误代码写出来,并且标记一下,出错在哪一行...

第一行就错了,参数不对~麻烦调试一下!
5楼2014-06-03 21:05:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

deephill

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
yuyi2009: 金币+20, 有帮助 2014-07-09 11:04:34
Option Explicit  语句表示,后面出现的变量都必须先定义才能使用。
对待要求不是太严格的程序或新手,这一句话不要就好了。
6楼2014-06-09 09:29:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yuyi2009 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085701环境工程,267求调剂 +15 minht 2026-03-26 15/750 2026-03-28 09:03 by laoshidan
[考研] 一志愿中南大学化学0703总分337求调剂 +4 niko- 2026-03-27 4/200 2026-03-28 07:26 by fungyao
[考研] 0856材料化工调剂 总分330 +10 zhubinhao 2026-03-27 10/500 2026-03-28 03:34 by fmesaito
[考研] 275求调剂 +10 Micky11223 2026-03-25 13/650 2026-03-27 22:42 by Micky11223
[考研] 一志愿南师大0703化学 275求调剂 +4 Ripcord上岸 2026-03-27 4/200 2026-03-27 17:00 by zhyzzh
[考研] 085600,材料与化工321分,求调剂 +9 大馋小子 2026-03-27 9/450 2026-03-27 14:30 by mmm just
[考研] 314求调剂 +3 溪云珂 2026-03-26 3/150 2026-03-27 11:20 by sanrepian
[考研] 一志愿郑大085600,310分求调剂 +5 李潇可 2026-03-26 5/250 2026-03-27 11:14 by 不吃魚的貓
[硕博家园] 招收生物学/细胞生物学调剂 +3 IceGuo 2026-03-26 4/200 2026-03-27 05:35 by user003
[考研] 机械学硕310分,数一英一,一志愿211本科双非找调剂信息 +3 @357 2026-03-25 3/150 2026-03-26 16:34 by by.MENG
[考研] 289求调剂 +17 硕星赴 2026-03-23 17/850 2026-03-26 16:18 by 不吃魚的貓
[考研] 一志愿天津大学339材料与化工求调剂 +3 江往卖鱼 2026-03-26 3/150 2026-03-26 09:42 by 王小欠i
[考研] 各位老师您好:本人初试372分 +5 jj涌77 2026-03-25 6/300 2026-03-25 14:15 by mapenggao
[考研] 0854人工智能方向招收调剂 +4 章小鱼567 2026-03-24 4/200 2026-03-25 13:29 by 2177681040
[考研] 求调剂 +3 李李不服输 2026-03-25 3/150 2026-03-25 13:03 by cmz0325
[考博] 26申博自荐 +3 whh869393 2026-03-24 3/150 2026-03-24 09:55 by 21018060
[考研] 269求调剂 +4 我想读研11 2026-03-23 4/200 2026-03-23 21:25 by pswait
[考研] 求老师收我 +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
[考研] 280分求调剂 一志愿085802 +4 PUMPT 2026-03-22 7/350 2026-03-22 22:13 by 星空星月
[考研] 求调剂一志愿海大,0703化学学硕304分,有大创项目,四级已过 +6 幸运哩哩 2026-03-22 10/500 2026-03-22 20:10 by edmund7
信息提示
请填处理意见