天然气压缩因子计算的仿真和实施
2021-09-18吕秦杨惠德
吕秦,杨惠德
(四川染料厂,重庆 401256)
关键字:标准;天然气;压缩因子;密度;Octave软件;IEC 61131-3
1 为什么要对液化天然气压缩因子计算进行仿真
根据ISO 12213-2国际标准,我国对天然气压缩因子的计算颁布了相应的国家标准,即GB/T 17747.2[1]。该标准等效采用ISO国际标准,但删除了国际标准中附录F的有关程序实现部分。经与国际标准的程序对照,可以发现,国家标准中的(B.6)公式中累加项前的系数为1,而对照国际标准ISO 12213-2:2009[2]附录F的程序,其系数为2,因此,有必要确定其系数实际值,即需要对天然气压缩因子的计算进行仿真,确定其系数值。
国际标准ISO 12213-2附录F提供了Fortran编程语言的程序,但目前大多数科学计算都采用MATLAB实现。由于美国对我国有关单位使用MATLAB的限制,因此,需要有对应的仿真软件用于对天然气压缩因子计算进行仿真。为此,本文采用Octave软件进行天然气压缩因子的计算仿真。Octave软件是开源软件,其源于MATLAB。为检验其可替代性,本文将MATLAB程序和Octave程序进行了比较,实际结果显示,大多数MATLAB的语言可直接用于Octave程序,其主要区别是MATLAB程序中,一些关键字可用缩写,而Octave程序中,虽然可以使用,但会提示警告。例如,fonts关键字,在Octave程序中应列出全称fontsize。此外,MATLAB程序中的for…end循环语句,在Octave程序中应表示为for…endfor等。而且程序执行速度也比MATLAB的程序执行要慢些。
2 天然气压缩因子计算的仿真
根据国际标准附录F提供的Fortran程序编写了Octave程序,该程序采用友好的用户界面,可根据天然气的压力和温度以及各组分的体积百分比,计算该工况下天然气的压缩因子和密度。图1是采用标准提供的1#样气组分和有关温度和压力,计算天然气压缩因子和密度的显示画面。
图1中,天然气入口温度为-3.15℃,入口绝压为6 MPa,采用标准1#样气的组分值,见图中各组分值。计算结果是该工况下天然气的压缩因子是0.840 5。该计算采用(B.6)公式的累加项前的系数是2。
图1 仿真计算天然气压缩因子的显示画面Fig.1 Simulation calculation of display screen of compressibility factor of LNG
表1列出标准所提供样气和规定温度下的压缩因子和仿真计算结果的比较。样气的组分见国家标准的表C.1。
表1中的比较结果,第一行数据是标准所提供的压缩因子数据。第二行数据是(B.6)公式的累加项前的系数是2的仿真结果及与标准数据的相对误差。第三行是(B.6)公式的累加项前的系数是1的结果及与标准数据的相对误差。可以看到,除了样气4、5和6的部分仿真数据,第三行的数值优于第二行外,其他情况下,其与标准数据的误差都要更大。说明国际标准和国家标准中(B.6)公式的累加项前的系数拟应是2,它与国际标准中附录F提供的程序是一致的。
表1 标准样气和规定温度下的压缩因子和仿真计算结果的比较Tab.1 Comparison of compression factor and simulation results between standard sample gas and specified temperature
(续表1)
3 天然气压缩因子计算的实施
在DCS系统中,天然气压缩因子的计算采用专门的计算模块,例如,Emerson公司的Delta V集散控制系统中有AGA-SI模块。其内部除了有压缩因子计算的AGA-8算法外,还包括AGA-7(涡轮流量计)算法和AGA-3(孔板流量计)算法。其结构框图见图2。
图2 Emerson公司的AGA-SI模块的内部结构图Fig.2 The internal structure diagram of AGA-SI module of Emerson Company
采用涡轮流量计时,不采用AGA-8算法,采用差压式流量计时,需采用AGA-8算法和AGA-3算法。因此,实际应用时主要用于标准孔板等差压式流量计测量天然气的流量。采用AGA-8算法,需要购买SI模块,这将增加成本。为解决实际应用,可采用DCS的有关算法自行搭建。例如,采用DCS提供的符合IEC 61131-3标准的功能块图编程语言实现AGA-8算法[3]。
与Octave软件仿真编程程序的不同点是,DCS的程序充分利用IEC 61131-3编程语言中功能块编程语言的迭代功能,即它先设置密度的初值,然后计算对应的压缩因子,再计算出该工况下的密度。然后,以该密度值作为下一次迭代的初值,并进行下次压缩因子的计算等,直到两者相等。而Octave软件采用牛顿求根法。即在给定区间内,如果区间内两个函数值之积小于零(表示它们是异号),则区间被缩小,直到区间缩小到规定的范围,则该值就是函数的根[4]。
图3显示某天然气处理厂的压缩因子和密度计算的显示画面。图中,温度为常温,压力为常压,其输入是两个AI的输出,其中,一个是天然气温度变送器信号经AI模块的输出,它作为t1输入。另一个是绝对压力变送器信号经AI模块的输出,它作为p1输入。
图3 用IEC61131-3编程语言编写的天然气计算程序和结果显示Fig.3 LNG calculation program written in IEC61131-3 programming language and the results show
当用于标准孔板计算天然气流量时,本程序的输出(天然气压缩因子和密度)将作为流量计算的输入,与常规的差压式流量计计算方法相同,此处不多述。
图3显示的天然气压缩因子Z1和密度rum1的值与Octave程序的结果是一致的。该厂的实验测试数据是:压缩因子0.998 64(图3显示值0.997 57,相对误差-0.107%),密度0.041 627(图3显示值0.041 672,相对误差0.108%)。
同样,如果(B.6)公式中的累加项系数用1时,计算结果为:压缩因子是0.975 73,密度是0.041 672。
4 结论
根据仿真结果,本文认为,虽然标准中(B.6)公式的累加项前系数采用1仍可满足应用要求,但采用2更为合适。仿真结果也显示,随天然气组分中甲烷含量的增加,采用系数2的结果具有较高精度。目前,由于国家标准将附录F删除,读者根据(B.6)公式只能采用系数1。因此,建议国家标准再版时进行修改。
为降低成本,可以用功能块图编程语言编写天然气压缩因子计算程序,其实施方法简单。此外,采用功能块图编程语言实现的迭代方法可简化程序,不需要购买SI模块,降低了成本。