当前位置: 首页 > 计算模拟 >求助高手:1stopt软件拟合三元体系的NRTL 方程,为什么一运行软件就死?

求助高手:1stopt软件拟合三元体系的NRTL 方程,为什么一运行软件就死?

作者 zxw1982
来源: 小木虫 750 15 举报帖子
+关注

我用1stopt软件计算三元体系的NRTL 方程参数,不知道为什么每次一运行计算,软件就无响应。
求助高手给看看,是哪里出了问题?
非常感谢!

Title "NRTL Model";
Parameters g12,g13,g21,g23,g31,g32;
Variable T,x1,y;
Constant R=8.314;
Constant a=0.3;
ConstStr x2=0.1*(1-x1);
ConstStr x3=0.9*(1-x1);
ConstStr G12=exp(-a*t12);
ConstStr G13=exp(-a*t13);
ConstStr G21=exp(-a*t21);
ConstStr G23=exp(-a*t23);
ConstStr G31=exp(-a*t31);
ConstStr G32=exp(-a*t32);
ConstStr t12=g12/(R*T);
ConstStr t13=g13/(R*T);
ConstStr t21=g21/(R*T);
ConstStr t23=g23/(R*T);
ConstStr t31=g31/(R*T);
ConstStr t32=g32/(R*T);
Function y=exp((G21*x2+G31*x3)*(t21*G21*x2+t31*G31*x3)/(x1+x2*G21+x3*G31)^2+(t13*G13*x3*x3+G13*G23*x2*x3*(t13-t23))/(x3+x1*G13+x2*G23)^2+(t12*G12*x2*x2+G12*G32*x2*x3*(t12-t32))/(x2+x1*G12+x3*G32)^2);
Data;
//T,x1,y=
293.15        0.0418        3.8504
298.15        0.052        3.5225
303.15        0.0644        3.2231
308.15        0.0792        2.9579
313.15        0.0986        2.6711
318.15        0.1196        2.4667
323.15        0.1468        2.2432
328.15        0.1792        2.0443
333.15        0.2205        1.8423
338.15        0.2708        1.6584
343.15        0.3334        1.4849@月只蓝@beefly 返回小木虫查看更多

今日热帖
  • 精华评论
  • 月只蓝

    代码格式、公式书写应该都没问题,应该是1stOpt版本问题了。

  • zxw1982

    引用回帖:
    2楼: Originally posted by 月只蓝 at 2016-04-18 11:53:49
    代码格式、公式书写应该都没问题,应该是1stOpt版本问题了。

    我怎么检查也搞不明白是什么问题,换成Wilson方程,也是拟合六个参数,就能运行。很奇怪

  • lipenggg

    Title "NRTL Model";
    Parameters g12,g13,g21,g23,g31,g32;
    Variable T,x1,y;
    Constant R=8.314;
    Constant a=0.3;
    ConstStr x2=0.1*(1-x1);
    ConstStr x3=0.9*(1-x1);
    ConstStr t12=g12/(R*T);
    ConstStr t13=g13/(R*T);
    ConstStr t21=g21/(R*T);
    ConstStr t23=g23/(R*T);
    ConstStr t31=g31/(R*T);
    ConstStr t32=g32/(R*T);
    Function y=exp((exp(-a*t21)*x2+exp(-a*t31)*x3)*(t21*exp(-a*t21)*x2+t31*exp(-a*t31)*x3)/(x1+x2*exp(-a*t21)+x3*exp(-a*t31))^2
               +(t13*exp(-a*t13)*x3*x3+exp(-a*t13)*exp(-a*t23)*x2*x3*(t13-t23))
               /(x3+x1*exp(-a*t13)+x2*exp(-a*t23))^2+(t12*exp(-a*t12)*x2*x2+exp(-a*t12)*exp(-a*t32)*x2*x3*(t12-t32))/(x2+x1*exp(-a*t12)+x3*exp(-a*t32))^2);
    Data;
    //T,x1,y=
    293.15        0.0418        3.8504
    298.15        0.0520        3.5225
    303.15        0.0644        3.2231
    308.15        0.0792        2.9579
    313.15        0.0986        2.6711
    318.15        0.1196        2.4667
    323.15        0.1468        2.2432
    328.15        0.1792        2.0443
    333.15        0.2205        1.8423
    338.15        0.2708        1.6584
    343.15        0.3334        1.4849

  • lipenggg

    Gxx和txx有点像循环,将Gxx带入公式就可以运行。
    "NRTL Model"

    迭代数: 57
    计算用时(时:分:秒:微秒): 00:00:34:778
    优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
    计算结束原因: 达到收敛判断标准
    均方差(RMSE): 0.00562784682002697
    残差平方和(SSE): 0.000348399258126565
    相关系数(R): 0.999971252921243
    相关系数之平方(R^2): 0.99994250666888
    决定系数(DC): 0.999942482492335
    卡方系数(Chi-Square): 6.69010417634671E-5
    F统计(F-Statistic): 156530.894709368

    参数        最佳估算
    ----------        -------------
    g12                3006.09966005237
    g13                129.553350585897
    g21                -3684.92515292263
    g23                2.28772252829897
    g31                5836.85272493941
    g32                40922.3158718221

    ====== 结果输出 =====

    No        实测值y        计算值y
    1        3.8504        3.8504756
    2        3.5225        3.5228717
    3        3.2231        3.2225105
    4        2.9579        2.9501120
    5        2.6711        2.6865438
    6        2.4667        2.4625225
    7        2.2432        2.2424896
    8        2.0443        2.0396803
    9        1.8423        1.8418459
    10        1.6584        1.6583433
    11        1.4849        1.4879393

  • 月只蓝

    小写g12和大写G12是一个参数吗,还是不同的参数?
    须注意1stOpt是不区分字母的大小写的。
    如果是同一个参数,改成如下,即可运行:
    Parameters g12,g13,g21,g23,g31,g32;
    Variable T,x1,y;
    Constant R=8.314;
    Constant a=0.3;
    ConstStr x2=0.1*(1-x1);
    ConstStr x3=0.9*(1-x1);

    ConstStr t12=g12/(R*T);
    ConstStr t13=g13/(R*T);
    ConstStr t21=g21/(R*T);
    ConstStr t23=g23/(R*T);
    ConstStr t31=g31/(R*T);
    ConstStr t32=g32/(R*T);
    Function y=exp((G21*x2+G31*x3)*(t21*G21*x2+t31*G31*x3)/(x1+x2*G21+x3*G31)^2+(t13*G13*x3*x3+G13*G23*x2*x3*(t13-t23))/(x3+x1*G13+x2*G23)^2+(t12*G12*x2*x2+G12*G32*x2*x3*(t12-t32))/(x2+x1*G12+x3*G32)^2);
    Data;
    //T,x1,y=
    293.15        0.0418        3.8504
    298.15        0.052        3.5225
    303.15        0.0644        3.2231
    308.15        0.0792        2.9579
    313.15        0.0986        2.6711
    318.15        0.1196        2.4667
    323.15        0.1468        2.2432
    328.15        0.1792        2.0443
    333.15        0.2205        1.8423
    338.15        0.2708        1.6584
    343.15        0.3334        1.4849

    此时计算结果:
    相关系数(R): 0.999976628442786
    相关系数之平方(R^2): 0.999953257431802
    决定系数(DC): 0.999953257381529
    卡方系数(Chi-Square): 5.37442244394238E-5
    F统计(F-Statistic): 192534.977511446

    参数        最佳估算
    ----------        -------------
    g12                -221394.823719256
    g13                10692.2673284175
    g21                -337.136660727573
    g23                10533.6794712838
    g31                -338.589449050954
    g32                -253770.053103296


    如果小写g12和大写G12是不同的参数,那按四楼那样改,

  • 月只蓝

    我在2楼中回复说“代码格式书写没有问题”,现在看来不是的,原代码在变量的大小写书写区分上存在问题的。

  • 月只蓝

    如变量不区分大小写,还有更好的结果,决定系数可达5个“9”:
    相关系数(R): 0.999996633225546
    相关系数之平方(R^2): 0.999993266462426
    决定系数(DC): 0.999993266385066
    卡方系数(Chi-Square): 8.55335536774635E-6
    F统计(F-Statistic): 1336584.12088942

    参数        最佳估算
    ----------        -------------
    g12                776.942748582934
    g13                -415.294727118021
    g21                -0.118066444579496
    g23                -2966.48681543665
    g31                -0.118070641087448
    g32                47.1205980648154

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓