24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 847  |  回复: 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的回帖

yuyi2009

铜虫 (小有名气)

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

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

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 311求调剂 +3 希望上岸阿小杨 2026-03-23 3/150 2026-03-28 07:57 by 热情沙漠
[考研] 291求调剂 +13 hhhhxn.. 2026-03-23 19/950 2026-03-28 04:12 by fmesaito
[考研] 一志愿上海理工能源动力(085800)310分求调剂 +3 zhangmingc 2026-03-27 4/200 2026-03-27 19:01 by 给你你注意休息
[考研] 266求调剂 +11 阳阳哇塞 2026-03-27 12/600 2026-03-27 17:56 by yu221
[考研] 材料与化工085600,总分304,本科有两篇sci参与,求调剂 +10 幸运的酱酱 2026-03-22 12/600 2026-03-27 16:08 by muchong357
[考研] 材料与化工(0856)304求B区调剂 +7 邱gl 2026-03-27 7/350 2026-03-27 15:27 by Joe率
[考研] 348求调剂 +4 小懒虫不懒了 2026-03-27 5/250 2026-03-27 12:47 by 果果妈咪
[考研] 334求调剂 +3 雨清天晴 2026-03-21 3/150 2026-03-27 11:30 by 不吃魚的貓
[考研] 314求调剂 +3 溪云珂 2026-03-26 3/150 2026-03-27 11:20 by sanrepian
[论文投稿] Journal of Mechanical Science and Technology +3 Russ_ss 2026-03-25 5/250 2026-03-27 10:49 by 陆小果画大饼
[考研] 325求调剂 +5 李嘉图·S·路 2026-03-23 5/250 2026-03-27 00:42 by wxiongid
[考研] 321求调剂 +5 材料cailiao 2026-03-21 5/250 2026-03-26 20:41 by fmesaito
[考研] 一志愿211 初试270分 求调剂 +6 谷雨上岸 2026-03-23 7/350 2026-03-26 18:55 by 不吃魚的貓
[考研] 材料考研求调剂 +3 Dendel 2026-03-23 6/300 2026-03-26 17:51 by fmesaito
[考研] 297求调剂 +6 田洪有 2026-03-26 6/300 2026-03-26 15:55 by 不吃魚的貓
[考研] 384求调剂 +3 子系博 2026-03-22 6/300 2026-03-23 21:45 by 子系博
[考研] 328求调剂 +4 LHHL66 2026-03-23 4/200 2026-03-23 14:55 by lbsjt
[考研] 315分,诚求调剂,材料与化工085600 +3 13756423260 2026-03-22 3/150 2026-03-22 20:11 by edmund7
[考研] 求调剂 +4 要好好无聊 2026-03-21 4/200 2026-03-21 18:57 by 学员8dgXkO
[考研] 求调剂 +3 .m.. 2026-03-21 4/200 2026-03-21 16:25 by barlinike
信息提示
请填处理意见