随着国内外电力技术的发展,燃气轮机以及燃气蒸汽联合循环发电机组的容量和效率已远高于一般燃煤发电机组。而且由于燃气动力设备具有环境污染少、调峰能力强等优点,使得燃气轮机在发电设备中的占有率不断提高。国外近几年来燃气轮机及其联合循环机组的制造和运行得到的很大的发展,我国已有近百家国内发电厂采用及其联合循环机组发电。因此燃气轮机在互联电网发电中的实际应用和控制技术的研究交会得到越来越多的重视。
在实际应用中,用户的用电需求变化是非常快的,尤其是大型电气设备启停时对电网的冲击比较大,为了及时满足用户的用电需求,电网要求发电机组具有较快的负荷响应速度。但由于燃煤发电机组固有的特点,其负荷响应速度是不尽人意的,它远远跟不上用电负荷变化。好在电网日益壮大,缓和了这对矛盾,而提高燃煤发电机组负荷响应速度,及时满足用户的用电需求,保证电网安全和稳定运行仍然是我们努力的方向。
紫金桥实时数据库在电力行业中已经有广泛的应用,在国内外也完成过若干工程项目。在此,我们讨论用紫金桥实现一种电力行业数学算法的实现。根据省调发给电厂的指令,机组实际负荷,负荷达到限值的时间,以及连锁条件,计算出负荷发生变化率。
二、核心算法
参数含义
D: 省调发给电厂全厂指令
d: 机组实际负荷
D1-D2:省调下发指令的跳变
d1-d2:机组实际负荷的上升阶段
横轴为时间轴。
如图
说明:当D1变化值大于3(|D2-D1|>3)时,T1、d1、D1、D2有效;
当|D2-d2|小于3(|D2-D1|>3)时,T2、d2有效;
当(T2-T1)大于5分钟,则变化率为零;
则变化率=|(d2-d1)/(T2-T1)|;
绝对值代表可能往下变化
每天由于省调下发指令的变化,会产生若干个变化率K。
要记录每天产生K的时间,以及K的值,存储到实时数据库的历史文件中。然后在根据时间条件做各种查询。
三、实现方法
在紫金桥实时数据库的点组态中建点:
tag_SP 表示省调下发值
tag_PV 表示机组实际负荷
根据要求,当D1变化值大于3时,T1、d1、D1、D2才有效
数据库-值改变(tag_SP.PV)脚本中,编写脚本。
if abs(tag_SP.PV - tag_SP.LASTPV) > 3 then
nSta.PV = 1;
tag_T1.PV = $SYSTEM.LongTime; //T1
tag_d1.PV = tag_PV.PV; //d1
tag_D1_SP.PV = tag_SP.LASTPV; //D1
tag_D2_SP.PV = tag_SP.PV; //D2
else
tag_K.PV = 0;
endif
当tag_SP的此次采集值(tag_SP.PV)与上次采集值(tag_SP.LASTPV)的差的绝对值大于3时,记录下T1、d1、D1、D2的值。即:
保存当前的系统时间tag_T1.PV($SYSTEM.LongTime)………………………… T1
保存当前时刻的tag_d1.PV(tag_PV.PV)…………………………………………d1
保存前一刻省调下发值tag_D1_SP.PV(tag_SP.LASTPV)……………………… D1
保存跳变后省调下发值tag_D2_SP.PV(tag_SP.PV)…………………………… D2
而当tag_SP的此次采集值与上次采集值的差的绝对值不大于3时,认为变化率为0(即tag_K.PV = 0)
数据库-值改变(tag_PV.PV)脚本中,编写脚本。
int nTm;
int nMil;
if nSta.PV == 1 then
if abs(tag_D2_SP.PV - tag_PV.PV) < 3 then
nSta.PV = 2;
tag_d2.PV = tag_PV.PV; //d2
tag_T2.PV = $SYSTEM.LongTime; //T2
nTm = tag_T2.PV;
nMil = 0;
endif
endif
if nSta.PV == 2 then
if tag_T2 - tag_T1 > 60 * 5 then
tag_K.PV = 0;
else
tag_K.PV = abs((tag_d2.PV - tag_d1.PV.PV)/( tag_T1.PV - nTm));
InsertHisDataEx("tag_K_HIS.PV",tag_K.PV,nTm,nMil); //K
InsertHisDataEx("tag_D2_HIS.PV",tag_D2_SP.PV,nTm,nMil); //D2
InsertHisDataEx("tag_d2_HIS.PV",tag_T2.PV nTm,nMil); //d2
InsertHisDataEx("tag_D1_HIS.PV",tag_D1_SP.PV,nTm,nMil); //D1
InsertHisDataEx("tag_d1_HIS.PV",tag_d1.PV,nTm,nMil); //d1
InsertHisDataStr("tag_T2_HIS.DESC",StrTime(nTm,0),nTm,nMil); //T2
InsertHisDataStr("tag_T1_HIS.DESC",StrTime tag_T1.PV,0),nTm,nMil); //T1
endif
nSta.PV = 0;
endif
nSta.PV为中间步骤控制点,它有三种状态,说明如下:
1、正常情况下nSta.PV=0;
2、省调下发值绝对值改变超过3时nSta.PV=1;
3、nSta.PV=1并且D2与实际负荷(tag_PV.PV)的差的绝对值小于3时nSta.PV=2;保存T2,d2。
4、nSta.PV=2并且T2与T1的差大于5分钟时,变化率K=0,如果T2与T1的差小于5分钟,则根据公式|(d2-d1)/(T2-T1)|可计算出K。然后把nSta.PV复位为0。
这样在产生K的时刻保存了K,T1,D1,d1,T2,D2,d2,这些点在点组态时都设置为变化保存。然后根据自定义时间条件做以查询。例图:
四、综述
通过以上分析和组态,把复杂的数学算法结合紫金桥实时数据库完美的结合到一起。完成了逻辑判断,数学计算,存储数据,查询历史,报表等多个功能,而只编写了若干行脚本,和一些简单的组态。在电力行业的技术细节实现中,极大的降低了工程实施人员的技术门槛。简单,稳定,可靠的把敏感参数保存到历史库中,为更复杂的算法实现提供了可能。
共0条 [查看全部] 网友评论