黄东生,黄海军,陈庆松
(1.广西百色银海发电有限责任公司,广西 百色 533615;2.华电云南发电有限公司,云南 昆明 650228)
电力现货市场[1-3]转入正式运行后,发电厂的有功调整愈发频繁多变,原人工下令的模式不再适应,依据发电计划曲线自动下令的方式悄然间成为了主流。由于应用时间不长,多数的技术研究都针对计划曲线的编制[4-7]、下令[8-9]、接收[10-11]等环节开展,而后续的运行监视环节研究较少。
在实际工作中,准备不充分、功能不完备、测试不全面等因素客观存在,电力市场的运行难免存在一些不安全、不稳定的因素。同时,由于计算机监控系统厂商普遍使用C/C++开发通信程序,使用C++或Java开发界面程序,封装性强、保密性好,导致了运用过程中的异常难以检测,加上后期组态维护需要配置数据库、修改程序等产生调度影响的复杂操作,不再具备及时修改的条件。因此,曲线接收虽然无异常,但程序及参数的不足引起的漏监视、漏控制的现象偶有发生,甚至可能触发一些严重的电力调度问题。综上,必须进一步研究和完善计划曲线应用过程中的参数检测、异常诊断以及报警等功能。
首先需要获取计划曲线及系统的相关数据。
南网总调采用IEC60870-5-104规约中的ASDU 137号报文[8]下发有功计划曲线和电压上下限曲线,每条曲线包含0:00-23:55时间段内每5 min为间隔的288个时刻中的各个拐点的计划值[12]。
以J集控中心的曲线报文为例:
报文中每个拐点由3个时间字节+2个计划值字节组成。计划值字节为归一化值;时间字节由曲线起始地址叠加时间序号来表示,公式为:
式中:hn、mn为第n(1≤n<289)个拐点的小时、分钟值,And为曲线第n个拐点的十进制地址、Ah为曲线的十六进制起始地址,hex2dec为十六进制转换为十进制的函数。
根据公式1和104报文规则,可知第1个拐点为 44 69 00 22 01,其时间为0:05(44 69 00)、计划值为290 MW(22 01)。
拐点n后的数据保持不变,直到拐点n+1的前一个时刻x,该时刻到拐点n+1间的计划值拟合公式为:
式中:Pn、Pn+1为前后两个拐点的计划值,Px是[5n-5,5n)时段内第x min的理论值(0≤x<5)。
曲线的日期对应于最后的7个字节,为CP56Time2a 格式(见图1),如00 00 00 00 f5 03 15(2021/03/21),可用于校验曲线有无误用等。
图1 CP56Time2a数据帧格式示意图
上述数据通过bash、Python或者batch脚本语言来获取,在不破坏系统安全性、稳定性的情况下,形成“嵌入式”报警程序。当然,南自、南瑞、中水科等主流的计算机监控系统均支持用子程序来获取上述数据或有关的字符串;同样可以使用脚本语言来截取字符串、转换数据类型等,使得报警程序的开发和应用更为高效。
通常,厂站调度通信服务器负责信息接收和预处理,然后发送给各个服务器;主机完成逻辑运算等处理后,将报警推送至操作员站(见图2,括号中数文字表示冗余网络或机器的标识)。
本方案在运算机上使用脚本语言编程,进行数据的分析、判断、报警等,并将新的信息广播至操作员站,最终实现发电警报功能。
在常规报警的基础上,增加控制模式、控制权限的判别,精确识别模式变换、负荷波动等电力现货市场中的异常,降低了报警量,为运行监视提供有效的技术支撑。
图2 电力生产通信网络结构示意图
2.2.1 控制模式的识别
南网总调的控制状态信息格式为:“3+功率控制模式码+功率调节模式码”,见表1、表2:
表1 常见功率控制模式一览表
表2 功率调节方式一览表
实际的控制状态多达35种,如果逐一进行判别,那么编程的复杂度明显过高。通过脚本语言的字符处理函数可以快速甄别模式,大大减少了if或case的层级,提高运算速度。同时,针对电力管理的重点,可对电力市场的相关模式进行重点监控,能够充分释放运行人员的监屏压力。
2.2.2 控制机构的识别
发电警报的实时性、必要性需要考虑控制权所有者。特别是在电力市场下,指令变化快,处理时限短,自动化要求明显提高。通过及时识别控制权的变化,结合控制权考虑报警的频次,有助于运行人员快速响应电力市场要求。
当曲线模式投入时,判断曲线有无正常下发。
超时报警:判断有无正常下发,判断时间翻转是否正确。
新接收提醒:接收到新曲线后进行提醒。
数值越限报警:根据机组的运行工况精准调整有功上下限,并判断数值有无越限。
数据变化报警:如果前后两个周期间数值有变化,那么弹出报警。
数据变化过大报警:如果前后两个周期数值偏差过大,且机组没有在调整过程中,那么推送报警;以便运行人员及时开停机。
偏差报警计算条件:计算给定和实发的差值,如果差值大于全厂调节死区,那么进入判断。
单周期差值过大报警:如果单个运算周期内差值过大,那么报警。
多周期偏差过大报警:如果连续3个周期都偏差过大,那么推送一级报警。
累积变化量过大报警:机组通常在40 s左右完成功率调整,如果30 s累积变化量过大,那么推送一级报警。
报警程序中,首先通过脚本语言获得计划曲线相关数据后,进行分析、统计,构建报警模型(逻辑设计见图3),然后通过SSH启动操作员站的语音报警,达成发电报警的目的。
图3 算法逻辑简图
上述语音文件通过离线TTS引擎合成,而SSH远程播音可以使用play等工具,如图4:
图4 语音报警的广播演示
脚本语言不光可以实现“嵌入式”的报警程序,同样可以与现有的计算机监控系统进行交互。
调用系统子程序,可以对实时数据库的测点进行读、写操作,实现数据交互效果。见图5:
图5 数据动态监测和文本报警演示
文本报警:在数据交互的基础上,改变已有的或新增的开关量测点当前值,从而借助计算机监控系统自身的简报功能进行文本报警。
语音报警:调用系统已有的语音程序,直接进行语音广播(无须SSH远程调用),从而启用系统的语音报警。
脚本程序独立地根据曲线报警模型进行报警,并写入一个实时测点p1去触发计算机监控系统的内部报警;同时,定期检测该测点p1有无复位,如果复位,那么同步复位(终止)循环报警程序。
计算机监控系统内部,由于测点p1被脚本程序置位,因此点亮p1光字牌,直至人工操作复位为止。由此,两个程序通过一个实时测点(p1)就实现了内外部之间的操作交互,见图6。
图6 报警程序与系统程序的交互逻辑示意
发电报警程序的开发应用,提高了电力现货市场下设备的运行管理水平。该程序部署在云南省某大型水电流域集控中心,使用已近一年,解决了原有设备系统中计划跳变、计划突变等无法检测的问题,提高了设备状态监测能力,为准确、及时、高效地按照电力现货市场需求提前完成机组开停机提供了技术支撑;特别是数据的交互设计功能,大大增强了夜间防止漏监视、漏调整的能力,保障了供电的稳定性。
采用“嵌入式”脚本的方式进行设备系统的功能扩展开发,不会改变原有系统的稳定性和安全性,具有较强的实用意义;非设备厂商的技术人员参照上述方法,也可以基于已有的设备系统进行二次开发,提高了发电运行经验的快速落地,弥补了厂商系统的不足,亦有助于提高所在单位的发电运行水平。