基于epa的pid功能块的设计及实现

上传人:第*** 文档编号:30643825 上传时间:2018-01-31 格式:DOC 页数:5 大小:301KB
返回 下载 相关 举报
基于epa的pid功能块的设计及实现_第1页
第1页 / 共5页
基于epa的pid功能块的设计及实现_第2页
第2页 / 共5页
基于epa的pid功能块的设计及实现_第3页
第3页 / 共5页
基于epa的pid功能块的设计及实现_第4页
第4页 / 共5页
基于epa的pid功能块的设计及实现_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于epa的pid功能块的设计及实现》由会员分享,可在线阅读,更多相关《基于epa的pid功能块的设计及实现(5页珍藏版)》请在金锄头文库上搜索。

1、基于 EPA 的 PID 功能块的设计及实现摘要:本文介绍了EPA功能块基本模型及功能块的几种基本数据机构;并且描述了PID功能块在单片机上的设计方案及PID功能块模态转换与PID 功能块过程控制算法几个主要函数的具体实现,并通过组态软件验证了PID的过程控制算法。关键字:EPA标准 ; EPA功能块规范 ; PID功能块; 组态 The Realization And Design Of PID Function Block Based On EPA Abstract: this text introduce the model of the EPA function block and s

2、everal kinds database including in EPA function block; moreover it expatiates the design of PID function block and PID mode-exchange function and PID process-control arithmetics achievement in details. At last ,we test the PIDs arithmetic through configuration software.Keywords: EPA Protocol ; EPA F

3、unction Block Criterion ; PID Function Block ;Configuration 1 引言功能块不是EPA标准的独创,它是在工业控制领域编程发展过程中产生的,并在1995年形成IEC TC65标准。国家863 计划EPA 项目组参照IEC 61499、IEC 61804两个国际标准制订了EPA 功能块规范 ,该规范主要定义了基本的功能块,包括功能块特征描述及用于功能块参数定义的数据类型、基本参数定义。EPA的体系结构参照ISO/OSI开放系统互连模型(ISO 7498 )的第一、二、三、四和七层,并在第七层之上增加第八层(即用户层) ,共构成六层结构的通信

4、模型,功能块则是用户层的主要内容,用户直接使用功能块构筑自己的控制系统。2 功能块的定义及体系模型功能块是一个软件功能单元,由输入、输出、内含参数以及对这些参数进行操作的算法组成,用一个功能块位号或者一个序号来唯一标识。功能块的参数定义了输入、输出和运行时所使用的数据。这些参数在整个网络上可观察的、可访问的。功能块是系统中原子级的元素,是不可再分割的基本元素,存在于一个包含可执行算法的实体内。功能块具有输入参数、输出参数和内含参数,同时具有用于输入和输出事件或数据的外部接口:事件输入端口、事件输出端口、数据输入端口以及数据输出端口。其基本模型如图1: 执行控制(隐藏)算 法(隐 藏)内部 数据

5、(隐 藏)事 件 输入输入参数事件输 入 端口 事件输出端口事件输出数 据 输入 端 口 数据输 出端口输出参数图 1 功能块的基本模型3 功能块数据结构EPA设备内基本的功能块包括:资源块,技术块,功能块,报警块。每种功能块都包含不同的数据结构。以下介绍了功能块中主要的几种数据结构:块数据结构EPA_Block Structure序号 元素名 读写属性 数据类型 字节长度1 Block Tag 读写 VisibleString 322 XDDL Id 只读 Usigned32 43 Block Type 只读 Usigned32 44 XDDL Revision 只读 Usigned16 2

6、5 Profile 只读 Usigned16 26 Profile Revision 只读 Usigned16 27 Execution Time 读写 Usigned32 48 Period of Execution 读写 Usigned32 49 Number of Parameter 只读 Usigned16 210 Next block to Execute 读写 Usigned16 2模态数据结构 EPA_Mode Structure序号 元素名 读写属性 数据类型 字节长度1 Target 读写 Bit String 12 Actual 只读 Bit String 13 Permi

7、tted 读写 Bit String 14 Normal 读写 Bit String 1输入/输出模拟量数据结构 EPA_Floatpoint Structure序号 元素名 读写属性 数据类型 字节长度1 Status 读写 Usigned8 12 Value 读写 Float 4量程转换数据结构 EPA_Scaling Structure序号 元素名 读写属性 数据类型 字节长度1 EU_100% 读写 Float 42 EU_0% 读写 Float 43 Units Index 读写 Usigned16 24 Decimal Point 读写 Integer8 14PID 功能块PID

8、在自动控制系统中应用广泛,特别在工业现场中能实现比较关键的控制功能。所以 PID 功能块也是功能块块库中的最重要的功能块。PID 功能块示意图如图 2:P I DP I D 功 能 块 信 号 处 理 功 能P I D 控制算法报警检测P I D 功 能 块 管 理 功 能模态转 换输出输入图 2 PID 功能块示意图PID功能块包括14个必备参数和34个可选参数,用户还可添加自定义的参数,其参数的索引依据所使用的实际参数个数依次进行分配。PID控制算法:根据PID参数的设置,及输入的值来决定输出。PID 算法是对PV与SP 的偏差进行比例、积分和微分运算,得到的控制量经过输出选择、输出量程转

9、换和输出限制后,由OUT 输出。该算法的整定参数分别为比例增益GAIN、积分时间RESET 和微分时间RATE。 PID模态:PID功能块支持的模态有O/S、Man 、Auto、IMan。如表1 所示:表1 PID功能块的模态模态 说明O/S PID 功能块不再执行它的功能计算IMan 初始化手动Man 操作员直接写入 PID 功能块的 OUT 参数Auto PID 功能块根据所有算法(量程,滤波,状态以及模态计算,限制检测)处理来自变送器的值(PV)以下是PID 功能块的模态转换描述:1 目标模态为O/S时,实际模态切换到O/S。2 目标模态为Man时,如果 BKCAL_IN的状态为GOOD

10、 实际模态切换到 Man,否则实际模态为IMan。3 目标模态为Auto时,如果IN的状态为GOOD 并且BKCAL_IN的状态也为GOOD 实际模态切换到Auto,否则实际模态为IMan。41 PID功能块的设计在单片机上设计PID时可以申明一个结构体用于定义每个参数(如表2):然后用这个结构体定义一些PID对象实体。 (如 EPA_PID_FUNCTION_BLOCK *pidfb;)表2 PID功能块参数typedef struct _EPA_PID_FUNCTION_BLOCK_ EPA_BLOCK BLOCK; /功能块对象参数EPA_MODE BLOCK_MODE; /功能块的模态

11、参数 EPA_FLOATPOINT PV; /过程变量 EPA_FLOATPOINT SP; /设定点 EPA_FLOATPOINT OUT; /输出 EPA_SCALING PV_SCALE; /过程变量量程 EPA_SCALING OUT_SCALE; /输出值量程 EPA_FLOATPOINT IN; /输入EPA_FLOATPOINT CAS_IN; /串级输入 float GAIN; /增益 float RESET; /积分时间常数float RATE; /微分时间常数EPA_FLOATPOINT BKCAL_IN; /回算输入 EPA_FLOATPOINT BKCAL_OUT; /

12、回算输出 EPA_PID_FUNCTION_BLOCK; PID功能块的功能则通过一些函数实现。如函数PID_MODESTATETRN() ,它用于转换PID功能块模态,从而使PID处于不同状态。正常情况, PID处于Auto模态。其设计如表3:表3 PID功能块的模态转换函数接下来我们定义一个非常重要的函数PID_Progress() ,它运行 PID功能块的控制算法,该算法是根据PID典型公式Eu (K )=P*e (K)+I*(e (k)+e (k-1)+e (k-2)+e (k-3)+.+e (k-n) )+D*(e (k)-e (k-1))转换得。该算法是为了保证受控量与 PID中的

13、设定值SP 相等,如果不等会将反馈回来受控量进行调节,直至调节至和SP相等。其 Auto模态下,PID算法设计如表4:表4 PID 功能块算法void PID_Progress (EPA_PID_FUNCTION_BLOCK * pPIDFB) double error1 = 0; /当前误差static double sumerror=0; /误差和static double error3=0; /上次误差static double error2=0;pPIDFB-PV.Value=pPIDFB-IN.Value*(PV_SCALE- EU_100%-PV_SCALE- EU_0%)/100

14、; /IN 的值通过量程转换赋给 PVif (pPIDFB-SP.Value-pPIDFB-PV.Value=0.1) | |( pPIDFB-SP.Value-pPIDFB-PV.ValueSP.Value - pPIDFB-PV.Value;sumerror+=error1; /误差累加error3=error2; /将上次误差给 error3error2=error1; /将本次误差给 error1EU= pPIDFB-GAIN*error1+pPIDFB-RESET*sumerror+pPIDFB-RATE*(error2-error3);/根据公 Eu(K)=P*e (K)+I*(e (k)+e (k-1)+e (k-2) +.+e (k-n) )+D*(e (k)-e (k-1)) pPIDFB-OUT.Value = pPIDFB-IN.Value+EU; /调整输出与输入的误差pPIDFB-OUT.Status=pPIDFB-SP.Status; /设置值的状态除以上两个主要函数外,我们还有InitPID()用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号