基于Arduino的风机转速信号模拟装置设计
2021-08-07方建文赖永林胡仁涛
方建文,赖永林,胡仁涛,李 冰
(1.大唐云南发电有限公司新能源分公司,云南 昆明 650000;2.华北电力大学 自动化系,河北 保定 071000)
随着石油、天然气及煤炭等可开采量日益衰减,其价格也在不断攀升,同时传统能源的使用带来的气候变化也逐渐威胁到人类自身的生存与发展。风力发电机组控制系统是整个风力发电机组的大脑,是机组安全可靠运行和实现最佳运行的保证。风电机组维护是风电企业的重要组成工作,如何通过风机定检和反事故措施落实确保风机的安全运行是每个风电企业生产管理者需要重点思考的问题。
在风力发电系统中旋转设备较多,针对旋转设备的速度反馈主要采用接近式传感器和增量式编码器[1],如变桨与偏航系统的电机转速反馈、转子轴的转速反馈、发电机轴端速度反馈、滑环处的转速反馈等。在对风电机组检修或故障维修时,需要采集旋转部件的转速来对风机设备机器控制系统进行测试,但根据《风力发电厂运行规程》[2]、《风机检修维护管理规定》,“风电机组维护检修时,必须使风电机组处于停机状态”,因此在对风机停机检修时,所有设备均处于停止状态,无法直接读取旋转部件速度信号。
本文通过对风电机组速度反馈传感器工作原理进行分析,设计了基于Arduino单片机的风机转速模拟装置,利用单片机定时器设计实现产生脉冲输出信号,通过薄板式电感产生涡流信号激励接近式传感器工作,通过串口触摸屏实现对转速的控制,实现风电机组在停机状态下输出风机旋转部件转速信号的模拟。
1 风机风轮转速信号采集工作原理
本文以维斯塔斯V80-1800风机风轮超速保护系统转速信号采集为例。V80-1800风机超速保护系统采用一个VOG(Vestas Overspeed Guard,VOG)模块,通过采集接近式传感器的输出信号频率作为判断风机是否超速的依据。当VOG模块在单位时间内接收到的信号频率超过设置的保护值时,串联在安全链上的继电器断开,触发风机急停保护装置,避免风机因为超速发生安全事故[3]。维斯塔斯超速保护系统原理图如图1所示。
图1 维斯塔斯超速保护系统原理图
V80-1800风机的VOG传感器采用的是瑞士Carlo Gavazzi公司生产的型号为EI3010 PP电感式接近开关,可以在不与目标物实际接触的情况下检测靠近传感器的金属目标物。EI3010 PP电感式接近开关的内部结构如图2所示。
图2 电感式接近开关内部结构图
电感式接近开关是一种利用电涡流效应感知物体的传感器,当金属物体处于一个交变的磁场中,在金属内部会产生交变的电涡流,该涡流又会反作用于产生它的磁场这样一种物理效应。利用这一原理,以高频振荡器中的电感线圈作为检测元件,当被测金属物体接近电感线圈时产生了涡流效应,引起振荡器振幅或频率的变化,从而达到检测目的。电感式接近开关采用轴向安装,风机的风轮锁定盘上均匀开有24个孔,当风机工作时,锁定盘扫过电感式接近开关,当非开孔位置位于接近开关前端时,由于金属材料内产生的涡流效应,电感式接近开关LC振荡器振荡减弱,而当开孔位置位于接近开关前端时,LC振荡器振荡频率不变。当非开孔位置与开孔位置依次转过接近开关前端时,接近开关输出端输出经过变换处理后的二进制开关信号,VOG控制器通过计算二进制开关信号的频率从而计算出风机转速。电感式接近开关进行风机速度检测时安装位置如图3所示。
图3 电感式接近开关安装位置图
2 硬件系统设计
风机转速信号模拟装置硬件系统结构图如图4所示。
图4 风机转速信号模拟装置硬件系统结构图
系统采用Arduino UNO作为控制主板,Arduino UNO是基于ATmega328P的Arduino开发板[4]。它有14个数字输入/输出引脚(其中6个可用于PWM输出)、6个模拟输入引脚,1个16MHz的晶体振荡器,1个USB接口,ATmega328有32KB Flash存储空间(其中0.5KB被用于存储bootloader),2KB的SRAM和1KB的EEPROM,可通过Arduino IDE对Arduino UNO编程,具有良好的拓展性,可实现各种不同应用的二次开发。
EEPROM采用24C02器件用于存放本次所选择风机型号并作为下次开机时的默认风机型号。由于风场大部分风机型号相同,因此每次检测时风机型号如与上次检测相同,则不必每次都重新进行风机型号选择,减少工作人员操作的工作量。
电子开关采用CD4052差分4通道数字控制模拟开关,其具有低导通阻抗和很低的截止漏电流。用于接收单片机发来的脉冲控制信号为薄片型PCB电感提供激励电流。
由于接近式传感器与风轮转盘之间间隙很小,因此设计了薄片型PCB电感接收电子开关控制信号,产生脉冲涡流模拟转子转盘转动时对转速传感器的激励。薄片型PCB电感采用印刷电路板双面螺旋设计,中间通过通孔相连。薄片型PCB电感周围设置了7个微型柱状磁铁,用于进行检测时吸附在转盘表面。如图5所示。
图5 薄片型PCB电感
串口触摸屏采用广州大彩光电科技有限公司F系列4.3寸电容触摸屏,分辨率为800*480,具有65K色、16位RGB,内置矢量字体、边缘抗锯齿处理,支持JPEG、PNG(半透/全透)压缩,支持任意大小图片存储,通信方式为RS232/TTL电平,拥有按钮、文本、下拉菜单、进度条、滑块、仪表、动画、二维码、曲线、数据记录等各种组态控件,内置虚拟数字、字符键盘,支持中英文输入法,易于开发与应用。系统部分界面如图6所示。
图6 系统界面(部分)
3 软件系统设计
3.1 脉冲信号产生设计
通过利用Arduino单片机的定时器中断,实现控制IO端口输出不同频率的脉冲信号。Arduino UNO接收串口触摸屏送来的不同转速参数计算中断时长并对定时器初始值进行设置,在不同的中断服务周期控制IO端口输出相应的电平信号,IO端口控制电子开关的通断实现薄片型PCB电感输出转速涡流信号[3]。
Arduino UNO有三个定时器,本文采用Timer1定时器实现模拟正交脉冲信号频率的控制,Timer1为16位定时器,最大计数器值65535。Arduino UNO时钟以16MHz运行,计数器的一个刻度值表示1/16,000,000秒(~63ns),当计数器达到其最大值时产生溢出中断。通过对时钟频率进行分频处理,控制定时计数器的增量速度以满足不同频率控制需求。
为了方便用户使用,Arduino提供了Timer1库函数TimerOne.zip,用户使用时直接调用库函数进行对Timer1进行初始化即可,其初始化和启动中断服务部分代码如下:
Timer1.initialize(init_value);//初始化Timer1定时器,设置中断时长,us
Timer1.attachInterrupt(orthogonal);//启动中断服务函数orthogonal()
3.2 Arduino与串口触摸屏通信设计
Arduino UNO有一个全双工串口,通过引脚0(RX)和1(TX)与串口触摸屏进行数据传输,波特率最高可达115200,接收串口触摸屏发来的控制参数、转速及控制命令等,实现对输出脉冲信号频率的控制。
大彩公司串口触摸屏一条完整的指令帧格式(不带CRC校验)为:
?
当指令参数大于一个字节时,高字节在前、低字节在后,指令最大长度为1024字节(包含帧头和帧尾)。
Arduino UNO通过串口接收到触摸屏发来的参数及控制信息,并对数据进行解析,提取出设置参数、转控制命令等信息,实现对定时器初始值设置、转速脉冲信号输出的控制。Arduino UNO串口通信过程如图7所示。
图7 单片机串口通信过程
4 实验结果与分析
为了验证风机转速信号模拟装置的有效性与实用性,对该装置在实验室进行了实验验证。通过将薄片式电感放置于接近式传感器前端,通过控制界面选择相应型号的风机进行转速模拟,启动模拟装置产生脉冲信号,薄片式电感激励接近式传感器,输出不同方波频率时的输出信号如图8所示。
图8 不同输出频率时接近式开关输出波形
由图8可知,接近式传感器接收到的涡流信号与风机转盘旋转时激励接近式传感器信号一致,通过触摸屏改变转速时,接近式传感器输出信号频率与风机旋转时接近式传感器所发出的信号频率一致。测试结果表明,所设计的风机转速模拟装置可有效实现在风机停机状态下模拟风机转动时对接近式传感器的激励,实现风机停机状态下产生转速模拟信号。该装置目前已在大唐集团多个风场投入使用,应用效果良好,有效提高了风机停机检修时的工作效率。