资源描述:
《高压下空气密度的编程计算.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、高压下空气密度的编程计算 (2010-11-1611:35:13)转载▼ 这几天做输气的大作业,要用到高压下(20MPa)空气的密度值,翻书、上网找了半天也没有结果,最多压力就到2.5MPa,于是乎,我痛苦地决定,自己动手,丰衣足食!~ 利用课上讲过的PR方程改进式PRSV2,虽然用BWRS方程解会更精确但没有氧气的有关数据。。。C语言编程源代码:#include#include#include#defineR8.3143#definee10e-6void main(){start:dou
2、blex[2]={0.21,0.79}; doubleTc[2]={154.77,126.2}; doublePc[2]={5090000.0,3400000.0}; doublew[2]={0.02128,0.03726}; doublek[2]={0.0},k0[2]={0.0},k1[2]={0.01512,0.01996},k2[2]={-0.009,0.3162},k3[2]={0.49,0.535}; double
3、a[3]={0.0},ac[3]={0.0},alpha[2]={0.0},b[3]={0.0},Tr[2]={0.0}; doubleP=0.0,T=0.0; doublev[50]={0.0},F[50]={0.0}; inti=0,j=0; charchoice='y'; printf("输入系统压力值(单位kPa):"); scanf("%lf",&P); printf("输入系统温度(单位K):"); scanf("%lf",&T); for(i=0;i<=1;
4、i++) { Tr[i]=T/Tc[i]; ac[i]=0.45724*pow(R,2)*pow(Tc[i],2)/Pc[i]; b[i]=0.0778*R*Tc[i]/Pc[i]; b[2]+=b[i]; k0[i]=0.378893+1.4897153*w[i]-0.17131748*pow(w[i],2)+0.0196544*pow(w[i],3); k[i]=k0[i]+(k1[i]+k2[i]*(k3[i]-Tr[i])*(1.0-sqrt(Tr[i])))
5、*(1.0+sqrt(Tr[i]))*(0.7-Tr[i]); alpha[i]=pow((1.0+k[i]*(1.0-sqrt(Tr[i]))),2); a[i]=ac[i]*alpha[i]; } for(i=0;i<=1;i++) { for(j=0;j<=1;j++) a[2]=x[i]*x[j]*sqrt(a[i])*sqrt(a[j]); } v[0]=0.0; F[0]=R*T/(-b[2])+a[2]/pow(b[2],2);
6、 v[1]=R*T/P; for(i=1,j=1;;i++,j++) { F[i]=R*T/(v[i]-b[2])-a[2]/(v[i]*(v[i]+b[2])+b[2]*(v[i]-b[2]))-P; v[i+1]=(v[i-1]*F[i]-v[i]*F[i-1])/(F[i]-F[i-1]); if((fabs(v[i+1]-v[i])<=e)) break; } printf("%.0lfkPa、%.2lfK下,空气密度:%.4
7、lfkg/m3",P,T,1/v[i]*28.84); printf("是否继续?(y/n)"); scanf("%c",&choice); if(tolower(choice)=='y') gotostart;}程序运行截图:(看起来还是能用滴,随便找个编译器,把上面的代码复制进去运行就OK了,虽然没啥技术含量,精度也不算太高,但还是希望能帮到像我当初一样苦苦寻找高压下空气密度数据的盆友们~) 这几天因为课程需要编了很多程序,有的运行的很顺利,有的卡了我好几天,你觉得哪儿都对,但就是得不到想要的
8、结果,让你恨不得把电脑砸了,但是自己的东西肯定心疼,想砸又不忍心,真纠结,这是我这段时间明白的第一件事——对“纠结”这个词有了更加深刻的感性认识。