1 概述
近年来Microsoft Office中Excel的功能越来越强大。Excel中的VBA(Visual Basic for Application)是Microsoft公司长期追求的目标,使可编程应用软件得到完美的实现,它作为一种通用的宏语言可被所有的Microsoft可编程应用软件所共享[1]。在工程技术领域特别是发电厂运行中,电厂的运行人员需要知道当前运行的燃气-蒸汽联合循环的实时性能参数,可以借助于Excel VBA的强大功能来编程实现。
为了对所编程序的对象,有一个初步的了解,可以看燃气-蒸汽联合循环机组的运行系统简图,如下图1所示。
图1燃气-蒸汽联合循环发电方案
注:1—压气机;2—燃烧室; 3—燃气透平; 4—余热锅炉; 5—蒸汽透平; 6—发电机; 7—凝汽器;8—给水泵。
空气进入压气机里面经过压缩机之后成为高压空气,在燃烧室中吸收大量热量,然后再燃气透平中膨胀做功。做完功的燃气进入余热锅炉中放热加热水蒸汽,水蒸汽吸收热量之后在蒸汽透平中膨胀做功带动发电机发电。在蒸汽透平中膨胀做功后的蒸汽在冷凝器中冷凝成水然后继续在余热锅炉中吸热。本文采用美国ASME PTC47整体煤气化联合循环电站性能试验规程的规定中提供的算法进行编程,在该算法中不考虑修正的影响。
2 程序编制
2.1 编程环境
新建一个Microsoft Excel 2010文档。打开该文档,另存为“Excel启用宏的工作薄”,并将文档名称修改为“燃气-蒸汽联合循环性能计算”,如下图2所示。
图2 启用宏的工作薄
在打开的Excel文档中,按“Alt+F11”即进入VBA编程环境。
2.2 代码及窗体
在打开的编程环境中,插入窗体,如图3所示。
图3 插入窗体
在新建的窗体上编辑各控件,编辑好后的窗体如下图4所示。
图4 窗体
图4中各个文字框的名称可以直接设置为对应的变量名。如燃料温度的文字框可以在文字框的属性窗口中把名称直接设置成变量名Tf。设置的方式可以见图5中所示。
图5 属性窗口设置变量名
设置好这些东西之后,就可以在“开始计算”的按钮下输入程序代码了。输入程序代码的方式是在“开始计算”的按钮上双击鼠标左键。双击鼠标左键之后,这个按钮的事件函数弹出。“开始计算”按钮的事件函数如下:
Private Sub 开始计算_Click()
End Sub
在这个函数中,我们输入代码之后,完整的事件函数如下。
Private Sub 开始计算_Click()
'1压气机计算
Dim ra, rg, rp, Rpa, Rpg, nm, Cpa, Ta As Double
ra = 1.4
rg = 1.33
nm = 0.99
rp = P2 / P1 '(1)
T2 = T1 * (1 + (rp ^ ((ra - 1) / ra) - 1) / nc) '(3)
Rpa = (rp ^ ((ra - 1) / ra) - 1) / nc
Rpg = (1 - (1 / (rp ^ ((rg - 1) / rg))))
Ta = (T1 + T2) / 2
Cpa = 1.02
Wc = Cpa * T1 * Rpa / nm
'2燃烧室计算
Dim mf, Cpg As Double
Cpg = 1.8083 - 0.0023127 * TIT + 0.000004045 * TIT * TIT - 0.0000000017363 * TIT * TIT * TIT
mf = ma * (Cpg * TIT - Cpa * T1 * (1 + Rpg)) / (LHV + Cpf * Tf - Cpg * TIT)
f = mf / ma
sita = TIT / T1
'3燃气透平计算
Dim T3, T4, Wt, WGnet, P, SFC, Qadd, nth, HR As Double
T3 = TIT
T4 = T3 * (1 - nt * Rpg)
Wt = Cpg * TIT * nt * Rpg / nm
WGnet = Wt - Wc
P = ma * WGnet
Debug.Print "P="; P
SFC = 3600 * f / WGnet
Qadd = f * LHV
nth = WGnet / Qadd
HR = 3600 / nth
Debug.Print "HR="; HR
'4 蒸汽轮机计算
Dim Qav, ms, Wst As Double
Dim Tg1, Tg4 As Double
Dim h1f As Double
Dim mg As Double
Tg1 = T4
Tg4 = 393.15
h1f = 0.985
mg = ma + mf
Qav = mg * Cpg * (Tg1 - Tg4) * h1f
ms = Qav / (hsh - hw1)
Wst = ms * (hsh - hn)
'5 总参数
W = P + Wst
Debug.Print "W"; W
nall = (P + Wst) / (LHV * mf)
Debug.Print "nall="; nall
HRt = 3600 / nall
Debug.Print "HRt="
End Sub
该段程序代码中,如果用来注释的文字可以在文字前加“’”,注意这个单引号是英文的单引号,不是中文中的单引号,例如“'5 总参数”所示。另外程序中的 “Debug. Print “nall=”; nall”是在立即窗口中显示变量nall的值。在立即窗口中显示的变量并不影响窗体的正常显示。
“Dim ra, rg, rp, Rpa, Rpg, nm, Cpa, Ta As Double”这句代码的意思是定义双精度变量ra, rg, rp,Rpa, Rpg, nm, Cpa 和Ta。在VBA中可以一次定义多个变量。
最后,应该注意的是:在VBA中每句代码的结束不需要增加标点符号,在VBA中不能像在VC++中那样每句代码结束都要加英语中分号。
3 程序计算结果
编制好程序之后,就可以运行程序了。在运行程序时可以选择“逐句读”、“运行到光标处”和“运行子过程/用户窗体”等几个选项。选择“逐句读”时可以按“F8”键,每按一次键程序运行一行。如果选择“运行到光标处”可以按“Ctrl+F8”键,这样就会运行到光标处。如果选择“运行子过程/用户窗体”可以按“F5”键,这样可以一次运行完所有程序代码,但是这样就发现不了程序中存在的错误了。选择“逐句读”的方式可以很快发现程序中的所有错误。
在修改完所有的程序错误之后,就可以选择“运行子过程/用户窗体”直接运行程序了。运行完的程序如下图6所示:
图6 计算结果
图6中窗体中黑色文本框中的变量均是要输入的变量,蓝色文本框中的数据是计算出来的结果。在输入所有输入变量的具体数值之后,点击“开始计算”按钮,则可以计算出结果了。在输入数据时要注意和文本框后的变量单位相匹配。
这样在编写完了联合循环的性能计算程序之后,就可以随时随地在自己的电脑上计算燃气-蒸汽联合循环发电机组的性能参数了。
4 结束语
VBA程序因为其方便易用特点,在工程技术领域里面得到了越来越多的应用。在燃气-蒸汽联合循环这种新型的发电领域也得到了应用。为了了解燃气-蒸汽联合循环的实时性能参数,可以通过Excel编写这样的计算程序。编写了这样的计算程序之后就可以随时随地了解当前机组的运行情况,从而及时针对机组的运行偏差提出解决措施。
参考文献:
[1] 魏汪洋等编著,从零开始学Excel VBA/[M] 北京:电子工业出版社,2011,2 P18-20.
[2] ASME PTC 47-2006 整体煤气化联合循环电站性能试验规程[S],广东电网公司电力科学研究院&华北电力大学 译 北京:中国电力出版社,P33-P35