APP下载

基于组态王和Matlab的大风预警系统

2014-03-10刘年霖彭佑多

自动化与仪表 2014年4期
关键词:组态王预警系统卡尔曼滤波

刘年霖,彭佑多

(湖南科技大学 机械设备健康维护省重点实验室,湘潭 411201)

极端天气下的大风对安装在露天的碟式太阳能发电系统的危害很大:一是可能会引起太阳能发电系统的严重变形,甚至损坏性倒塌;二是大风会使网架变形,进而引起集热镜损坏[2]。为了避免以上危害的发生,需要设计一种合理、有效的预警系统来实现对大风风速的提前预测,使碟式太阳能发电系统中的聚光器在大风来到前调整到最佳角度,以最少迎风受力面躲避大风,从而保证碟式太阳能发电系统的安全。

目前,国内外大风预警系统所用预警策略可根据其采用的原理不同分为时间点预警、空间点预警和预警值预警。时间点预警方法可借助计算机实现整个建模和预测的过程,实用性强,但存在对突发大风预测精度不高的问题;空间点预警该方法操作实现简单,只需构建软件系统,然后利用气象部门已有的硬件系统,实现大风预警,但是该方法预测精度不高,尤其对太阳能电站周围的风速变化情况无法准确反映出来;预警值预警能很好实现渐变风速和突变大风的预警,但是增加了操作过程的麻烦程度,也缩短了预警时间。

根据太阳能电站的实际情况,大风预警系统采取以时间点预警为主,以预警值预警为辅的预警策略。既充分发挥时间点预警策略的优势特点,又利用预警值预警来弥补时间点预警对于突变大风预测带来的预测误差。

1 大风预警系统的组成

1.1 大风预警系统的性能要求

为了满足监控中心的指挥需要,对大风预警系统的性能提出如下要求:

(1)预测精度方面:风速的超前一步预测平均相对误差MAPE≤10%。

(2)实时性方面:预测模型输出结果的时间延时不超过超前预测时间的10%。

(3)模型计算方面:在保证预测精度的前提下,所建模型尽量简单,建模计算量小,同时完成建模后能够得到模型的具体方程。

1.2 大风预警系统的工作原理

碟式太阳能电站对日跟踪系统采用双轴驱动控制方案,双轴驱动系统设计有确定的伺服电机、驱动机构及控制器硬件系统。因此,本文所述大风预警系统只需在双轴驱动系统的基础上增加风速传感器和上位机。其工作原理为:风速传感器将采集到风速数据输入到运动控制器,运动控制器将风速数据以动画形式呈现于上位机,上位机根据采集到的大量历史风速数据运用预测数学算法实现对大风风速的提前预测,同时上位机利用组态王软件实现对实时进行风速预警值监控,当预测得到的风速值大于8级风的风速值时或者预警风速短时间内持续大于7级风的风速值时,上位机命令运动控制器向伺服驱动器发出一定的脉冲数和脉冲频率,以驱动方位角伺服电机停止动作,高度角伺服电机快速使聚光器到达水平位置,以最少迎风受力面等待大风的到来。大风预警控制系统结构如图1所示。

图1 大风预警控制系统结构Fig.1 Gale warning and control system structure

1.3 风速预测算法的选择

目前,风速预测算法[10]有很多种,时间序列法凭借其原理简单、建模方便而运用最为广泛,但它却存在预测精度低和预测延时的不足。卡尔曼滤波法能根据最新测量数据修正模型参数,获得较高的预测精度,同时弥补了预测延时的问题,而利用卡尔曼滤波法实现预测的前提是根据预测对象推导出卡尔曼滤波法对应的状态方程和测量方程,考虑到时间序列法的建模优势,可利用时间序列法的模型参数推导出卡尔曼滤波法的状态方程和测量方程,以此来实现对风速的超前预测。

2 大风预警系统的硬件结构

大风预警系统主要由风速采集装置、双轴驱动机构和上位机组成。风速采集部分主要由风速传感器、PLC和PLC配套的模拟量输入模块组成。风速传感器与模拟量输入模块连接,系统由PLC接收经模拟量输入模块转化后得到的风速信号,获取风速值,PLC根据上位机的要求,控制双轴驱动机构。双轴驱动机构主要由伺服驱动器、伺服电机、高度角运动装置和方位角运动装置组成。伺服驱动器接收PLC的输出脉冲,根据输出脉冲的个数和脉冲频率来控制伺服电机的转动角度和转速,从而通过伺服电机来驱动高度角运动装置和方位角运动装置调整聚光器的位置。Matlab软件和组态王软件组成上位机系统,Matlab根据采集到的风速数据运用数学预测算法得到预测风速值,运用DDE通信技术将预测风速值传给组态王,组态王根据实时监控的风速情况和接收到的预测风速值情况,控制PLC实现需要的操作。根据大风预警系统的控制功能要求,系统需要开关量输入点4个,开关量输出点4个。

大风预警系统的硬件接线图如图2所示,风速传感器有红、黄、绿三根线,红线为风速传感器的电源线,与DC24V+连接;黄线为信号输出线,输出4~20mA的电流信号,接A/D转换模块的V+,同时必须将A/D转换模块上的V+和I+接口并联起来,绿线则同时与DC24V-和VI-相连。伺服驱动器10号引脚ServoEn为伺服使能端子,与外接24 V电源的负极相连,当它为ON时,伺服驱动器工作;为OFF时,伺服驱动器停止工作。18号引脚VCCCOM与外接24V电源的正极相连,用来驱动输入端子的光电耦合器。32号引脚PulseInv+和33号引脚PulseInv-为脉冲信号输入端,接收PLC输出的脉冲数,实现对伺服交流电机转动角度的控制。34号引脚SingInv+和35号引脚SingInv-为方向信号输入端,接收方向信号,实现对伺服交流电机转动方向的控制。

图2 大风预警系统硬件接线图Fig.2 Hardware w iring diagram of the gale warning system

3 大风预警系统的软件设计

3.1 组态王程序

首先,运行组态王软件,新建一个名为“基于组态王和Matlab大风预警系统”的工程,并设为当前工程;进入工程浏览界面,在组态王中定义与所用PLC相对应的逻辑设备,根据“设备配置向导”完成;完成后,点击左侧目录树中的“COM1”,选择波特率为9600、数据位为7、校验方式为偶校验、停止位为1、通信方式为RS422。其次,需要构造数据库,在左侧的目录树中,选择“数据词典”,点击新建;按照I/O分配表新建对应的变量,运行组态王时就可以从PLC上采集到这些数据。最后,在组态王开发系统中,利用其提供的图库和各种控件完成画面的设计,通过与数据词典中各变量连接,完成了组态王的程序设计[3-5]。设计的主画面如图3所示。

图3 组态王监控主界面Fig.3 Main interface of Kingview

3.2 Matlab程序

Matlab程序设计包括卡尔曼滤波法算法程序设计、Matlab与组态王通信程序设计和基于Matlab的GUI大风预警界面设计。

(1)由于很难得到风速与气温、气象等风速影响因素之间的函数关系方程来推导出卡尔曼滤波法对应的状态方程和测量方程,为了解决这个问题,通过研究发现可以利用时间序列法的模型参数来推导卡尔曼滤波法对应的状态方程和测量方程。时间序列法的求参过程包括风速序列的非平稳性检验与预处理、自相关函数与偏相关函数的计算、根据AIC准则定阶和运用矩估计实现模型参数的确立等诸多工作,根据求得的模型参数就能推导出卡尔曼滤波法的状态方程和测量方程,从而实现对风速的超前预测。以上这些工作均可通过Matlab编程来实现。

(2)Matlab软件与组态王软件间的数据通信是采用DDE来实现。在Windows环境下,DDE是不同程序之间共享数据的一个协议。DDE对话发生在客户应用程序和服务器应用程序之间,数据交换双方互做服务器和客户。此程序需要实现将采集的风速数据送入组态王进行动态显示,并送到Matlab进行复杂的运算处理,将运算得到的结果返回组态王以显示。

在组态王中DDE的建立步骤如下:工程浏览器-系统-设备-DDE-新建-设备配置向导-指导连接对象名Matlab-服务程序名Matlab-话题名tagname-标准的Windows项目交换。设备新建完成后需要在数据词典中定义允许DDE访问的I/O变量,且变量与PLC存储区关联,这些变量用于与Matlab进行数据交换,并在完成画面制作后对画面和变量间进行关联[6]。

Matlab的DDE客户函数有7个,它们完全可以满足组态王软件不断将采集到的数据送到Matlab程序中,Matlab计算完成后将结果返回主程序的任务。在使用过程中发现,由于需要的风速历史数据比较大,自己实时从组态王传输给Matlab程序比较耗费时间,且在传输过程中Matlab无法进行其他操作,因此,这里改用一种更为简单和方便的数据交换方式,即组态王将历史风速数据以Excel文件导入到Matlab中,Matlab将计算后的结果通过DDE传入到组态王进行显示[7-9]。

(3)根据前文完成的卡尔曼滤波算法程序设计和Matlab与组态王通信程序设计,同时为了更直观、更方便的实现人机化操作,使用Matlab中的GUI工具箱完成了大风预测操作界面的设计。大风预测操作界面如图4和图5所示[1]。

图4 风速数据预处理界面Fig.4 W ind speed data preprocessing interface

图5 风速预测结果显示界面Fig.5 Wind speed forecasting results disp lay interface

通过组态王软件采集250个实测风速数据(每分钟采样1点,相隔5个数据进行平均化处理),前200个数据用于预测模型的建立,后50个数据用于验证模型的准确度和对系统性能进行分析。从图5中可以看出预测曲线能体现风速变化趋势,拟合风速基本接近实测风速,算得其平均相对误差为3.54%,预测精度较高,满足预测精度要求,具有实用价值。同时按下“数据传入组态王”按钮,预测数据将传入组态王中显示,并自动与设定的8级风速值比较,实现大风的预警,整个预警过程大约花费时间为10 s,远远小于30 s的最大允许值。同时为了得到预测模型的具体方程,利用了时间序列分析法的模型参数来推导卡尔曼滤波法对应的状态方程和测量方程,由于时间序列分析法的求参过程相对容易,因此,整个模型计算难度不大,计算量小,可通过Matlab软件编程实现,使其具有很好的工程实用性。

4 结语

本文将Matlab强大的数学计算能力和组态王强大的人机界面和通信功能有效结合起来,设计了一种以PLC为核心的大风预警系统。根据大风预警系统的性能要求,完成了硬件结构和软件的设计,针对风速进行超前预测,该系统具有通用性、实用性和可扩展性的特点,可以根据现场的情况,实现稳定、有效的通信。

[1] 陈垚光,毛涛涛,王正林,等.精通MATLAB GUI设计[M].北京:电子工业出版社,2011.

[2] 刘年霖,彭佑多,王旻辉,等.大功率碟式太阳能电站大风预警系统设计与研究[J].机械工程与自动化,2013(3):126-128.

[3] 徐建国,钟伟明,童旻,等.基于Matlab7.0和组态王的先进过程控制算法实测平台[J].仪器仪表学报,2006,27(6):542-544.

[4] 胡大斌,胡锦晖,吴峰.基于组态王与MATLAB的监控软件实现[J].武汉理工大学学报:交通科学与工程版,2005,29(2):234-237.

[5] 朱培逸,王引佳,高珏,等.基于PLC和组态王的水果品质分级系统设计[J].农机化研究,2013(10):103-106.

[6] 郑华,吕伟珍.基于组态王和Matlab的双容水箱液位控制[J].中国农机化,2012(2):155-157.

[7] 崔红,庞中华,刘军.基于组态王6.0和MATLAB的实时监控系统[J].青岛科技大学学报,2005,26(2):173-176.

[8] 黄卫华,方康玲,章政.基于组态王和MATLAB的温度监控系统[J].武汉科技大学学报:自然科学版,2006,29(5):490-492.

[9] 陈艳红,付海鸿,赵媛媛,等.基于Matlab与Excel的实验数据自动处理[J].计算机工程,2007,33(23):279-280.

[10]潘迪夫,刘辉,李燕飞.风电场风速短期多步预测改进算法[J].中国电机工程学报,2008,28(26):87-91. ■

猜你喜欢

组态王预警系统卡尔曼滤波
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
民用飞机机载跑道入侵预警系统仿真验证
一种基于CNN迁移学习的井下烟、火智能感知预警系统
基于ZigBee与GPRS的输电杆塔倾斜监测预警系统
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于有色噪声的改进卡尔曼滤波方法
桥、隧安全防范声光预警系统
基于组态王软件和泓格PIO-D64 板卡的流水灯控制
液压系统电气控制虚拟实验系统的开发