以梦为马,不负韶华

搜索
查看: 6286|回复: 1
收起左侧

东东(完)

[复制链接]
发表于 2010-4-19 15:30:29 显示全部楼层 |阅读模式
按照上述思路在matlab和C#中进行了实际操作,下面就用计算结果检验一下(由于c#中的未完成  故全部用matlab中的程序运行)。
1、泡点检验:
   甲烷、乙烷、丙烷组成的三元系统检验
  随便捏一个组成和压力  对比程序求出的泡点和hysys求出的泡点(压力   5000Kpa  组成:甲烷 :0.7,乙烷:0.2,丙烷: 0.1)
  wz=[ 4599000 190.564 0.0115478 0.7;
     4872000  305.32  0.099493 0.2;
     4248000  369.83 0.15229 0.1];
Kij=[0 -0.0026 0.014;
     -0.0026 0 0.0011;
     0.014 0.0011  0];
p=5000000;
[Bt,yi,Ki]=findBT(p,wz,Kij)

其中  findBT函数是根据上述思路编的。wz是物质临界压力、临界温度、偏心因子、在系统中的摩尔组成形成的二维矩阵Kij是二元交互系数形成的矩阵,p是压力:5000Kpa。函数返回泡点温度(Bt)、与泡点温度对应的气相组成(yi),以及相平衡常数。计算结果如下:
>> paodian
Bt =
  213.5819

yi =
    0.9294
    0.0601
    0.0105

Ki =
    1.3278
    0.3004
    0.1047
>>
hysys计算截图:
组成: 1.jpg

计算结果: 2.jpg

hysys算出的泡点温度为:213.3  程序算出的为213.58,结果可以接受。
在甲烷、乙烷、丙烷、氮气组成的体系中,在很宽的范围内验证,结果和hysys的差别不超过2℃。

沙发进行PT闪蒸的验证。
 楼主| 发表于 2010-4-19 15:45:49 显示全部楼层
这次加入氮气 程序如下:
wz=[ 4599000 190.564 0.0115478 0.5;
     4872000  305.32  0.099493 0.2;
     4248000  369.83 0.15229 0.1;
     3394000  126.2  0.04  0.2];
Kij=[0 -0.0026 0.014  0.0311;
     -0.0026 0 0.0011  0.0515;
     0.014 0.0011  0  0.0852;
     0.0311  0.0515  0.0852 0];
p=4000000;t=200;
[e,xi,yi,ki]=PTFlash(p,t,wz,Kij)

和上楼一样,只是PTFlash是根据前述思路编的函数,函数返回 气化率(e)、平衡时气象(yi)和液相(xi)组成及平衡时各组分的平衡常数。计算结果如下:

>> test
e =
    0.4905

xi =
    0.4059
    0.3462
    0.1915
    0.0564

yi =
    0.5977
    0.0481
    0.0050
    0.3492

ki =
    1.4732
    0.1391
    0.0259
    6.1922
>>


同样条件下hysys计算截图:
1.jpg

2.jpg

3.jpg

4.jpg


从气化率、相平衡常数,及平衡时气液相组成看,结果那是相当的符合。
看来教课书上的东西还有实际作用。

下一楼通过编的计算泡点的函数,利用matlab画图的功能  做出甲烷的饱和蒸汽压曲线。





 楼主| 发表于 2010-4-19 16:36:56 显示全部楼层
单质的泡点和露点及为温度及为其在某个压力下的饱和温度,根据这个思路,由于编findBT函数时考虑的通用性,所以一个单质也可以计算,给出一串压力,求出一串泡点,以泡点温度为横坐标,压力为纵坐标,就可作出甲烷的饱和蒸汽压线
程序如下:
wz=[4599000 190.564 0.0115478 1];
Kij=[0];
p=100000:200000:4100000
for i=1:21
    t(i)=findBT(p(i),wz,Kij);
end
t
plot(t,p);

结果如下
>> jiawantu

p =

  Columns 1 through 8

      100000      300000      500000      700000      900000     1100000     1300000     1500000

  Columns 9 through 16

     1700000     1900000     2100000     2300000     2500000     2700000     2900000     3100000

  Columns 17 through 21

     3300000     3500000     3700000     3900000     4100000


t =

  Columns 1 through 10

  111.4158  126.6213  135.2480  141.5965  146.7320  151.1098  154.9105  158.3410  161.4625  164.3049

  Columns 11 through 20

  166.9501  169.4155  171.7609  173.9843  176.0362  178.0204  179.9426  181.7324  183.4698  185.1472

  Column 21

  186.7626

>>

matlab画出的图如下:
777.jpg

横坐标为温度   K
纵坐标为压力  pa


连个向量画图,在matlab里太简单了。
 楼主| 发表于 2010-4-19 16:49:32 显示全部楼层
小小的收获:
1、虽然这些东西很幼稚,但通过亲身实践,终于知道了数值计算的复杂。看来没有数学的发展,今天的化工计算就不可想象有多复杂。
2、终于浅显知道了hysys物流框里下面的条条从黄到绿的变化过程中,开发人员用了多少心血。
3、文献里介绍的方法有局限,比如按照书上的方法  就算自己根据理解加一些制约手段,但很多点上很难收敛于正确数值。这一点就很棘手,加上很多设备放在一起模拟,贯续法、EO法等很陌生很可怕的数学方面的东西,模拟软件卖那么多钱还真是有道理地。
4、个人觉得hysys做的比Aspen plus好。
5、写文献的人太不负责任,一个状态方程,抄都要抄错,真是误导人。
6、学校里的日子,白混了。

评分

参与人数 1韶华币 +100 收起 理由
Horse + 100

查看全部评分

发表于 2010-4-19 17:00:51 显示全部楼层
我回复过的,但是没看懂过
 楼主| 发表于 2010-4-19 17:03:54 显示全部楼层
饱和蒸汽压总看得懂呀
晕你
发表于 2010-4-19 20:03:28 显示全部楼层
饱和蒸汽压倒是懂啊,,编程的这一块都是不懂得
发表于 2011-3-20 14:46:36 显示全部楼层
建议楼主把完整的程序给出一下,呵呵  仅仅是建议
发表于 2011-11-20 15:10:35 显示全部楼层
完整的matlab 程序有吗 可以传上来嘛 谢谢啦
发表于 1970-1-1 08:00:00 显示全部楼层
感谢版主的资料
回复 支持 反对

使用道具 举报

发表于 1970-1-1 08:00:00 显示全部楼层
楼主威武,受教
回复 支持 反对

使用道具 举报

发表于 1970-1-1 08:00:00 显示全部楼层
强大,不懂编程的路过
回复 支持 反对

使用道具 举报

懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-1-1 18:11

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表