24小时热门版块排行榜    

查看: 995  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 YLHlRHNwYkce 2026-09-02 8/400 2026-09-03 20:40 by jyNB2vrbdUpR
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 uFOAtb1CDngh 2026-09-02 9/450 2026-09-03 20:20 by jyNB2vrbdUpR
[考博] 找导师 +7 yuanjiabao 2026-08-29 8/400 2026-09-03 20:15 by yinnelly
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 ero8OE6tv9cu 2026-09-02 5/250 2026-09-03 20:09 by jyNB2vrbdUpR
[基金申请] 面上没中,邀请各位路过的虫友分析一下分数 +3 jackleilei 2026-09-03 3/150 2026-09-03 19:13 by god_tian
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 YLHlRHNwYkce 2026-09-02 8/400 2026-09-03 18:50 by jyNB2vrbdUpR
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 YLHlRHNwYkce 2026-09-02 11/550 2026-09-03 18:42 by jyNB2vrbdUpR
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 rFEsUBKXRll0 2026-09-02 6/300 2026-09-03 16:49 by T0rGB46095mJ
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 ero8OE6tv9cu 2026-09-02 5/250 2026-09-03 16:38 by T0rGB46095mJ
[找工作] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 ero8OE6tv9cu 2026-09-02 8/400 2026-09-03 16:38 by T0rGB46095mJ
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 ero8OE6tv9cu 2026-09-02 10/500 2026-09-03 16:27 by T0rGB46095mJ
[基金申请] 国社科又开始会评了,不知道这次命运如何 +10 雨打竹帘 2026-08-30 14/700 2026-09-03 13:17 by qsd10086
[基金申请] 科研人应该花精力去思考如何解决问题,而不是去凝练问题 +7 瞬息宇宙 2026-09-01 14/700 2026-09-02 17:33 by ma0526
[基金申请] 要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够 +9 瞬息宇宙 2026-08-31 17/850 2026-09-02 14:04 by anjeeshine
[基金申请] 面上函评意见出来了,像什么等级? 20+4 Tsingking1 2026-08-27 17/850 2026-09-01 19:51 by 超级无敌华子
[论文投稿] 小白求助 投论文要求的highlights应该如何写 5+3 l1963982152 2026-08-29 4/200 2026-09-01 09:04 by 北京莱茵编辑
[基金申请] 面上意见出来了 +12 黄鸟于飞Chao 2026-08-29 23/1150 2026-08-31 18:57 by 黄鸟于飞Chao
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 11/550 2026-08-30 07:57 by gouxfjh
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
信息提示
请填处理意见