APP下载

基于TOP 平台的开放式算法容器设计与开发

2020-07-11孙坚栋

浙江电力 2020年6期
关键词:线程组态控制算法

苏 烨,李 阔,丁 宁,,董 泽,孙坚栋

(1.国网浙江省电力有限公司电力科学研究院,杭州 310014;2.华北电力大学 河北省发电过程仿真与优化控制技术创新中心,河北 保定 071003;3.杭州意能电力技术有限公司,杭州 310012)

0 引言

随着经济高速发展,我国在发电技术领域取得了长足进步,大容量、高参数超(超)临界机组逐渐成为主力发电机组[1]。但该类机组的许多被控对象具有多变量、非线性、强耦合、大滞后的动态特性,采用传统PID(比例-积分-微分)控制无法取得理想的控制效果[2]。另一方面,燃煤发电带来了能源短缺和环境污染等问题[3],为此,政府极力推进“节能减排”政策,促使火电企业提高机组运行效率、降低污染物排放。

基于上述原因,在发电自动化方面,火电企业应该积极采用先进控制技术,以提高机组控制性能,促进“节能减排”目标的实现。火电机组一般采用DCS(分散控制系统),控制策略以PID 算法为主。由于DCS 系统不含建模、寻优等高级算法模块,其固有的控制模块和控制算法功能简单,无法利用基本控制模块组态生成先进控制算法逻辑,因此,该系统已不能满足发电厂对控制性能与时俱进的要求。

现阶段,一些发电厂在重要控制回路中利用外挂系统实现先进控制功能[4-6]。该类外挂系统一般以串口方式与DCS 系统进行数据通信,服务器(控制器)获得DCS 数据后,调用先进控制模块计算控制量,并将结果传输至DCS 系统。外挂先进控制系统存在以下缺点: 串口通信传输速度慢,当数据量较大时,控制周期较长,影响控制性能;可能因通信异常导致系统无法投运;外挂系统不具备灵活的组态功能,一些简单的中间环节也需要使用脚本语言编程实现。此外,外挂系统的先进控制算法由供应商封装在软件中,用户不能对其进行算法调整,更不可能用其开发和应用自定义先进控制算法。

由于DCS 和外挂先进控制系统具有封闭性,当用户需要添加新功能模块时,必须将算法说明文档提交至系统供应商,由其开发人员编程实现。但供应商很少愿意提供这类技术支持,而且将算法文档公开不利于保护用户的知识产权。具有二次开发功能的软件系统,如PI 实时数据库、百度地图、微信等[7-9],通过API(应用程序接口)函数,为第三方开发提供支持。控制系统应该借鉴这类软件系统的做法,通过开放式算法容器,使用户可以基于标准的统一接口,开发第三方算法功能模块,用于控制逻辑组态和执行。

目前,在控制系统开放式算法容器方面的研究成果较少。文献[10]基于简化的CORBA 协议设计了一种开放式算法仿真平台,该平台由环境模块、算法模块和设备模块组成,对于控制算法开发、调试、运行和维护非常有益。文献[11]设计了一种先进控制接口平台,通过公开的访问接口,使各种语言编写的先进控制算法模块能够与该平台实现数据交互。文献[12]采用ABB Symphony DCS 提供的semAPI 协议及INICI12 通信组件,开发了第三方接口,但该接口软件仅用于DCS数据采集和转发。

本文介绍了一种基于TOP(电站热工优化控制平台)的开放式算法容器的实现和仿真应用,用户可以将自定义先进控制算法模块嵌入至算法容器,并通过TOP 平台组态软件,将该算法应用于过程控制。

1 TOP 平台简介

TOP 是自主研发的发电厂先进控制优化系统。该平台集成了DCS 系统的实时控制技术和优化系统的先进控制技术,不仅可以实现常规DCS系统的组态、控制、画面操作、曲线查询等功能,同时还具备模型辨识、预测控制、鲁棒控制等先进控制功能[13-14]。

目前,TOP 平台已经在浙江省内10 多台300 MW 以上机组的协调控制、汽温控制、SCR(选择性催化还原技术)脱硝控制等系统中得到应用,在一定程度上提升了这些机组的经济性和安全性。除了用于大型火电机组重要回路的先进控制,TOP 平台也在向综合能源服务领域拓展应用,在发挥常规DCS 系统作用的同时,还可用于实现能量管理系统这一综合能源核心模块的功能。

由于发电厂对控制性能要求越来越高,控制算法迭代较快,但老版TOP 平台不支持算法容器功能,导致软件维护工作量极大。为了满足用户对各种先进控制算法的需求,同时节省软件维护费用和时间,新开发的升级版TOP 平台支持算法容器功能,用户可以将自己编写的高级控制算法模块放置于算法容器中,依托TOP 平台执行。

2 开放式算法容器设计与实现

2.1 算法容器的基本原理

基于TOP 平台的开放式算法容器是一种可装载自定义算法的容器,使用户可以在TOP 环境中执行第三方开发的控制算法。与其他内置模块一样,用户可以在组态软件调用自定义算法容器,生成控制逻辑,编译后在下位软件运行。如图1 所示,开放式高级算法容器实现继承自与TOP 内置模块相同的基类,具有与固有模块相同的强制、保持等功能,因此可以带给用户良好的使用体验。

图1 高级算法容器在类层次中的位置

TOP 算法容器具有以下特征: 首先是易操作性,用户不需要对高级算法原理有深入了解,只需要利用组态软件里设置中间参数便可调用;其次是实时性,高级算法容器与其他内置算法模块相同,支持上、下位实时数据交互功能,包括下位运行高级算法并将运算结果实时广播、上位在线命令下发等操作。

2.2 自定义算法编程语言

TOP 平台开放式算法容器支持2 种编程语言编写的自定义高级算法,分别为C/C++和Python。其中,C/C++语言编程生成的代码具有执行速度快的优点,如果算法中含有大量循环计算或数据访问操作,利用C/C++语言编程实现并行计算,可以充分发挥CPU(中央处理器)多级流水线优势,提高执行速度。此外,C/C++语言可以直接调用寄存器和高速缓存,减少内存访问次数,使高级算法代码的时间局部性和空间局部性提高。Python 语言可以利用强大的第三方库编写高级算法,具有开发速度快、效率高等优点,但生成的代码执行速度相对较慢。用户可根据实际情况,选择合适的自定义算法编程语言。

2.3 算法容器实现

为了实现算法容器功能,TOP 平台开发采用多线程编程模式,为控制逻辑中各模块的实时运算创建专门的计算线程。该线程从上位工程师站下发的组态文件中读取控制逻辑包含的所有模块的类型、参数,并根据模块间的输入/输出连接关系,实时计算得到各模块的运算结果。

下位软件通过2 个通信线程与上位软件进行数据交互。广播SAMA 线程用于将运算线程的计算结果广播至控制网络,该线程使用UDP 协议进行数据交互。上位命令线程用于接收上位控制命令,包括上位软件发送的控制命令字,控制模块可调参数,设置强制、保持操作指令等,该线程使用TCP 协议进行数据交互。同样,为了接收下位软件的广播数据,上位软件需要开启接收下位广播线程,并在控制策略软件中启动2 个与下位通信的线程,分别用于接收模块输出参数和模块中间参数。

利用定时器、互斥锁等方式实现线程唤醒与挂起,解决多个线程同时访问同一个资源时出现的竞争,确保运算实时性。TOP 平台下位软件运行于Linux 嵌入式操作系统上,该系统提供了比Windows 系统强大、精确的POSIX 时钟,精度达到纳秒级。定时器配合互斥锁共同使用,使不同线程可以有序访问同一个资源,有效地解决了线程同步与线程异步问题。在完成每个控制周期运算后,线程被挂起,不再占用CPU 时间,可以降低系统负荷。

自定义算法由上位机导入,算法信息存储于STL 标准库容器中。控制策略组态程序启动后,依次读取存放在TOP 系统全局变量路径中的文件,根据文件中存储的信息,将自定义算法初始化装载至高级算法向量中。在编译时,控制策略组态程序根据各模块之间的连接关系,以及各模块的优先级,对控制逻辑中所有模块进行排序。嵌入于算法容器的自定义算法与内置算法模块执行统一的排序,最后将编译过的包括排序信息在内组态文件保存至下装文件目录。

与自定义算法相关的二进制代码以FTP 或文件复制方式发送到下位机。下位程序将自定义算法代码映射至共享库内存映射区域,通过执行相应的二进制代码,进行自定义算法模块的实时运算。控制逻辑下装后,TOP 平台下位程序根据组态逻辑包含的模块运算顺序、模块间连接关系信息,以及算法容器中包含的自定义算法代码,执行控制逻辑计算。

2.4 自定义算法封装和载入

用户在编写自定义算法模块时,需要设定统一的接口参数,包括模块名称,输入/输出模拟量个数、输入/输出数字量个数、可调模拟量参数、可调数字量参数、中间参数等模块属性,图2 显示了DMC(动态矩阵控制)控制算法容器的属性对话框。

图2 高级算法容器属性框

用户按上述接口属性,封装生成自定义算法后,将与该算法关联的代码文件拷贝至TOP 平台上位软件全局变量路径下的自定义算法目录,并通过控制逻辑组态软件载入,加载至该软件主界面左侧的模块树。算法模块加载后,用户便可在控制逻辑组态时调用。

3 DMC 算法封装与仿真测试

由于TOP 平台高级算法容器支持C/C++和Python 语言编程,理论上可以封装任意算法,例如对于各种改进PID 算法、预测控制算法等,可利用C/C++或Python 语言编写代码,经过编译封装后,根据图2 所示的对话框操作,将其加载至控制逻辑组态软件使用。下文以动态矩阵算法为例,讲述算法封装以及仿真测试结果。

3.1 DMC 算法简介

DMC 是一种应用广泛的模型预测控制算法,由Culter 等于1980 年提出[15]。其由预测模型、滚动优化和反馈校正等组成,可用于解决有约束、多输入/多输出的控制问题。它采用工程上易于测取的被控对象的单位阶跃响应来描述系统的动态特性,算法简单,鲁棒性强,适用于有纯迟延、开环渐进稳定的线性系统。

由于发电厂被控对象大多具有时变性,近年来,多模型动态矩阵控制逐渐受到关注,与单模型动态矩阵控制一样,包括预测模型、滚动优化、反馈校正3 个要素。多模型动态矩阵控制可以分为加权多模型动态矩阵控制(包括控制器加权和模型加权)和切换多模型动态矩阵控制(包括控制器切换和模型切换)。

3.2 DMC 算法封装

根据图2 所示的对话框设置DMC 控制算法容器属性,并编写DMC 算法,将其封装到高级算法容器中。在控制策略组态软件中该DMC 算法容器如图3 所示,各输入/输出引脚信息如表1所示。

图3 DMC 算法容器

表1 DMC 算法容器引脚信息

该DMC 算法容器的可调参数包括过程变量PV、设定值SP、量程上下限、跟踪方式、控制器参数和采样周期等。用户在控制逻辑组态软件中双击DMC 算法模块后,便可进行参数设置。

3.3 算法仿真测试

在复杂生产系统中,如电力、化工、炼油等,被控对象大多具有大迟延、大惯性、非线性的动态特性,其数学模型可用一阶或“多阶惯性+纯迟延传递函数”表示。例如,某600 MW 火电机组在500 MW 负荷工况时,燃烧器摆角开度与再热蒸汽温度的关系模型,其传递函数如表2 所示[16]。

对于上述被控对象,文献[17]利用经验PID整定公式,计算得到PID 控制的比例带为16.67,积分时间为499.6。如图4 所示,在TOP 平台控制策略组态软件中,分别搭建DMC 控制器和PID控制器,与再热蒸汽温度对象模型组成闭环控制回路。在仿真测试时,在温度设定值上输入单位阶跃信号,得到仿真曲线如图5 和图6 所示。图中实线为DMC 控制曲线,虚线为PID 控制曲线,点线为设定值曲线。

表2 被控对象传递函数

图4 DMC 算法仿真测试控制回路结构

图5 DMC 控制和PID 控制的输出曲线

图6 DMC 控制和PID 控制的控制量曲线

由图5 可知,与PID 控制相比,DMC 控制具有响应速度快、上升时间短、超调量小等优点。由图6 控制量对比曲线可知,DMC 控制调节非常迅速,如果模型比较准确,可以获得较好的控制品质。

4 结语

随着我国“节能减排”政策深入落实,对自动控制性能的要求不断提高,在电力、化工、炼油等复杂生产过程中,一些重要回路必须采用包括预测控制、模糊控制、鲁棒控制、自适应控制等先进控制算法。利用开放式高级算法容器,用户可根据需要,封装各种自定义高级算法,既使用户有机会直接参与高级算法的开发和应用,又降低了控制系统维护工作量。

基于TOP 平台的开放式高级算法容器是一种可扩展的算法接口,用户使用C/C++和Python语言编写的符合接口标准的自定义高级算法均可嵌入至该算法容器,并在TOP 平台组态软件中直接使用,生成控制逻辑。鉴于TOP 平台开放式高级算法容器克服了常规DCS 和外挂先进控制系统不支持用户自定义算法的问题,因此具有很高的工程实用和推广价值,也加强了TOP 平台在发电厂自动控制和综合能源服务领域的竞争力。

猜你喜欢

线程组态控制算法
浅谈力控ForceControl V7.2组态软件在自动化控制工程中的应用
基于模型预测控制算法的智能密度控制系统在选煤厂的应用
实时操作系统mbedOS 互斥量调度机制剖析
基于C#线程实验探究
基于PLC及组态技术的恒温控制系统开发探讨
基于国产化环境的线程池模型研究与实现
Rh XIII—Cd XVI 离子4s24p3—4s4p4 能级与跃迁的理论计算*
组态软件技术现状与发展
高精度位置跟踪自适应增益调度滑模控制算法
基于航迹差和航向差的航迹自动控制算法