彭年仔
(上海石油天然气有限公司天然气处理厂,上海201304)
在工业生产过程中,孔板节流装置的设计计算常由计算机完成。对直径比的迭代计算是确定流出系数的重要设计内容。由于迭代运算花费大量时间,加上迭代初值常影响其收敛性,因而难于对节流装置进行计算和检验。仪表车间常有备用的PLC,根据标准IEC61131-3规定的反馈变量,其求值过程完全满足方程的迭代运算要求。因此,可采用符合IEC61131-3标准的编程软件,离线计算方程的根,实现直径比的迭代运算。
节流装置计算公式如下:
式中:qm——单位时间内流过节流装置的流体质量流量,kg/s;d——工况条件下一次装置节流孔直径,m;β——直径比,指节流孔直径与管道内径之比;Δp——差压,Pa;ρ——流体密度,kg/m3;ε——流体可膨胀性系数;C——流出系数。
根据GB/T 2624.2—2006的有关公式[1],孔板节流装置的流出系数可按下式计算:
当管道直径D<71.12mm(2.8in)时,加下列项计算:
由于C与β,Re,取压方式及流体类型等因数有关,因而常用式(2)描述。而β又与qm,Δp,C,流体物性(密度ρ)有关,常用式(1)描述。此外,Re与qm,D,流体黏度μ等有关,常用下式描述:
因此,节流装置不能直接计算求解,需用迭代计算法求解。文献[2]给出了计算机计算程序的框图。
根据IEC61131-3标准[3],反馈路径是指一个网络的输出参数值返回到同一网络中作为输入参数时的连接路径,相应的变量称为反馈变量。反馈变量的求值规则如下:
a)当第一次网络求值时,使用反馈变量的初始值。它可以是该数据类型的约定初始值;用户在变量初始化时规定的初始值;或当具有掉电保持属性的反馈变量在掉电前的数值。
b)随后,反馈变量的值根据反馈信号确定,即用反馈变量的新值作为该网络的输入值。
由此可见,PLC编程语言中的反馈变量具有迭代运算功能。其第一次初始值就是迭代初值,以后将用新的计算结果作为下一次迭代值。
对非理想气体,用一个计算压缩系数Z的示例进行说明。用Z描述其偏离程度,其中R表示气体常数。即:
用维里方程拟合:
图1 压缩因子计算程序
统计力学指出,第二维里系数B反映两个气体分子间的相互作用对气体p-V-T关系的影响。第三维里系数C反映三个气体分子间的相互作用对气体p-V-T关系的影响等。用功能块编程语言编写的程序如图1所示。
图1中,MUL,DIV,ADD——乘、除和加函数;T——温度,℃;V——体积,cm3;根据上述工程单位,气体常数R=83.14。B和C是维里系数。根据文献[4]的数据,对异丙醇,B=-388.0(cm3·mol-1),C=-26 000.0(cm6·mol-2)。计算200℃,1MPa异丙醇的压缩系数时,可将数据作为变量初始值输入,并下载和运行。
运行后的结果用在线显示方式显示,如图2所示。
图2 压缩因子计算程序的运行结果
由于PLC程序不断进行迭代运算,其运行结果可保证反馈变量的一致,而且结果比文献[4]的结果精度更高。程序中,V是反馈变量。需注意,第一次迭代时,V要设初始值,而系统约定初始值是0.0,这就造成除以零的错误。为此,应采用用户设置的V初始值。此外,B和C的数据类型是实数,输入时,应分别是-388.0和-26 000.0。
运算结果表明,在约定温度和压力下,异丙醇的压缩因子是0.886 615 81。
示例说明反馈变量的使用方法,它利用PLC的顺序扫描机制,将迭代过程完整结合在运行过程中。
为进行节流装置计算,先编写三个用户功能块。其中,Re_cal功能块用于根据式(3)计算雷诺数;C_cal功能块用于根据式(2)计算流出系数,它需调用Re_cal功能块计算雷诺数;beta_cal功能块用于根据已知的C,qm,Δp,ρ和式(1)确定β。
为组成同一网络下的反馈变量,建立如图3所示的ggg功能块。
图3 具有反馈变量的节流装置计算功能块ggg
图3中,β是反馈变量,用于通过迭代确定直径比。主程序flow_cal是Re_cal功能块与ggg功能块的组合,具有通用性,程序中采用变量,而不采用实际数据。以文献[2]的数据为例,只需要将有关变量的初始值用实际数据键入,并下载到PLC的模拟仿真器,就可进行运算。图4显示程序运行结果。
图4 节流装置计算程序Flow_cal的运行结果
图4中,各功能块的后缀_1是对应功能块的实例名。例如,C_cal_1是C_cal功能块的实例名,用于调用该功能块子程序,其余类推。
程序运行输入初始值数据:qm=111.111kg/s;D=0.233 580 69m;μ=0.000 124Pa·s;Δp=160 000Pa;ρ=850.908 2kg/m3;β=0.3(可键入任意非零数值)。
运行结果:流出系数C=0.602 361 26,β= 0.502 414 17,与文献[2]结果吻合。
如果程序增加可膨胀性系数eps功能块,可用于气体流体节流装置的计算。需注意,该项与β,p2/p1及气体等熵指数κ有关,因而也应包含在计算反馈变量直径比的同一网络内。
PLC标准编程语言可采用反馈变量组成网络,能够用于各类迭代运算过程的求解。例如,方程求解、迭代求整数的开方值(小型PLC只有整数运算功能,不能使用SQRT函数,但需求差压的开方值)等,下面是整数开方的实例。
某系统采用小型PLC对流量进行测量。为降低存储容量,该PLC的AI模块采用整数数据类型,即差压变送器输出的4~20mA对应于PLC的0~16 000。由于标准编程语言只有实数开方的SQ RT函数,整数开方可采用下式进行迭代计算:
式中:x——需开方的整数;y——开方后的整数。由于PLC对应的量程是0~16 000。因此,x需乘以16 000。
图5是整数开方计算的Sqrt_cal程序。其中,OU T是来自AI模块的整数,它与差压变送器的输出成正比,取值0~16 000。TT是经开方后的输出整数值。该程序在线运行,并直接给出开方后的整数数值。
利用反馈变量进行迭代运算是PLC的一项重要功能。它可离线计算也可在线计算,既可用于科学计算,也可在实际中应用于工业生产过程。
图5 整数开方计算Sqrt_cal的功能块图程序
如果对上述节流装置计算程序中的C_cal功能块改为编写喷嘴或文丘利等节流装置的有关计算程序(可用结构化文本编程语言编写),就可用于计算喷嘴或文丘利等节流装置的流出系数,并确定其直径比。
由于PLC程序运算速度快,是迭代运算的理想计算工具。科维软件(KW software)、3S等软件公司开发的PLC软件可离线运算,并直接在模拟仿真器上实现,使上述计算变得极为容易和方便。
[1] 中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会.GB/T 2624.2用安装在圆形截面管道中的差压装置测量满管流体流量 第2部分:孔板[S].北京:标准出版社,2006.
[2] 孙淮清,王建中.流量测量节流装置设计手册[M].北京:化学工业出版社,2005.
[3] 彭瑜,何衍庆.IEC61131-3编程语言及应用基础[M].北京:机械工业出版社,2009.
[4] SMITH J M,VAN N H C,ABBOTT M M.Introduction to Chemical Engineering Thermodynamics[M].7ed.刘洪来,译.北京:化学工业出版社,2008.
[5] 廖常初.PLC编程及应用[M].北京:机械工业出版社,2002.
[6] 彭瑜.工控编程语言国际标准IEC61131-3及其影响[J].国内外机电一体化技术,2006(04):53-61.
[7] 何衍庆,何乙平,王朋.常用PLC应用手册[M].北京:电子工业出版社,2008.
[8] 何衍庆,黎冰,黄海燕.可编程控制器编程语言及应用[M].北京:电子工业出版社,2006.
[9] 殷兴光.PLC应用与实践[M].西安:西北工业大学出版社,2009.
[10] 孙同景.PLC原理及工程应用[M].北京:机械工业出版社,2008.