PID控制的基本原理(PLC实现)(共13页).doc

上传人:飞****2 文档编号:13993413 上传时间:2022-05-02 格式:DOC 页数:13 大小:383KB
返回 下载 相关 举报
PID控制的基本原理(PLC实现)(共13页).doc_第1页
第1页 / 共13页
PID控制的基本原理(PLC实现)(共13页).doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《PID控制的基本原理(PLC实现)(共13页).doc》由会员分享,可在线阅读,更多相关《PID控制的基本原理(PLC实现)(共13页).doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上关于PID控制一、 PID控制的结构在工程实际中,应用最为广泛的调节器控制规律为比例积分微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近60年的历史了,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制主要和可靠的技术工具。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它设计技术难以使用,系统的控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象或不能通过有效的测量手段来获得系统的参数的时候,便最适合用PID控制技术。 PID控制包含比例、积分、微分

2、三部分,实际中也有PI和PD控制器。PID控制器就是根据系统的误差利用比例积分微分计算出控制量,图1.1中给出了一个PID控制的结构图:图 1.1 PID控制的结构图控制器输出和控制器输入(误差)之间的关系在时域中可用公式(1.1)表示如下: (1.1)公式中,表示误差,也是控制器的输入,是控制器的输出, 、与分别为比例系数、 积分时间常数及微分时间常数。(1.1)式又可表示为: (1.2)公式中,和分别为和的拉氏变换,、分别为控制器的比例、积分、微分系数。 1.1 比例(P)控制 比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(S

3、teady-state error)。 1.2 积分(I)控制 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。 对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取关于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。 因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。 1.3 微分(D)控制 在微分

4、控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性的组件(环节)和(或)有滞后(delay)的组件,使力图克服误差的作用,其变化总是落后于误差的变化。解决的办法是使克服误差的作用的变化要有些“超前”,即在误差接近零时,克服误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使克服误差的控制作用等于零,甚至为负值,从而避免了被控量的严重地冲过头。

5、所以对有较大惯性和(或)滞后的被控对象,比例+微分(PD)的控制器能改善系统在调节过程中的动态特性。 二、如何实现PID控制在一些系统中,需要进行PID控制,如一些板卡采集系统,甚至在一些DCS和PLC的系统中有时要扩充系统的PID控制回路,而由于系统硬件和回路的限制需要在计算机上增加PID控制回路。在e尔系统中,实时数据库提供了PID控制点可以满足PID控制的需要。进入到实时数据库组态,新建点时选择PID控制点。e尔提供的PID控制可以提供理想微分、微分先行、实际微分等多种控制方式。进行PID控制时,可以把PID的PV连接在实际的测量值上,OP连接在PID实际的输出值上。这样,在实时数据库运

6、行时,就可以自动对其进行PID控制。2.1 PID参数的调整在PID参数进行整定时如果能够有理论的方法确定PID参数当然是最理想的方法,但是在实际的应用中,更多的是通过凑试法来确定PID的参数。增大比例系数P一般将加快系统的响应,在有静差的情况下有利于减小静差,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏。增大积分时间I有利于减小超调,减小振荡,使系统的稳定性增加,但是系统静差消除时间变长。增大微分时间D有利于加快系统的响应速度,使系统超调量减小,稳定性增加,但系统对扰动的抑制能力减弱。在凑试时,可参考以上参数对系统控制过程的影响趋势,对参数调整实行先比例、后积分,再微分

7、的整定步骤。首先整定比例部分。将比例参数由小变大,并观察相应的系统响应,直至得到反应快、超调小的响应曲线。如果系统没有静差或静差已经小到允许范围内,并且对响应曲线已经满意,则只需要比例调节器即可。如果在比例调节的基础上系统的静差不能满足设计要求,则必须加入积分环节。在整定时先将积分时间设定到一个比较大的值,然后将已经调节好的比例系数略为缩小(一般缩小为原值的0.8),然后减小积分时间,使得系统在保持良好动态性能的情况下,静差得到消除。在此过程中,可根据系统的响应曲线的好坏反复改变比例系数和积分时间,以期得到满意的控制过程和整定参数。如果在上述调整过程中对系统的动态过程反复调整还不能得到满意的结

8、果,则可以加入微分环节。首先把微分时间D设置为0,在上述基础上逐渐增加微分时间,同时相应的改变比例系数和积分时间,逐步凑试,直至得到满意的调节效果。2.2 PID控制回路的运行在PID控制回路投入运行时,首先可以把它设置在手动状态下,这时设定值会自动跟踪测量值,当系统达到一个相对稳定的状态后,再把它切换到自动状态下,这样可以避免系统频繁动作而导致系统不稳定。2.3 复杂回路的控制2.3.1 前馈控制系统通常的反馈控制系统中,对干扰造成一定后果,才能反馈过来产生抑制干扰的控制作用,因而产生滞后控制的不良后果。为了克服这种滞后的不良控制,用计算机接受干扰信号后,在还没有产生后果之前插入一个前馈控制

9、作用,使其刚好在干扰点上完全抵消干扰对控制变量的影响,因而又得名为扰动补偿控制。在e尔的控制系统中,可以把前馈控制计算的结果作为PID控制的输出补偿量OCV,并采用加补偿,这样就形成了一个前馈控制系统了。2.3.2 纯延迟补偿控制在实际的控制过程中,由于执行机构和测量装置的延迟,系统有可能是一个纯滞后过程,如对于温度的控制其延迟时间可能多达10多分钟。这种滞后性质常引起被控对象产生超调或振荡,造成系统不容易达到稳定过程。因此,可以在控制过程中并联一个补偿环节,用来补偿被控制对象中的滞后部分,这样可以使系统快速达到稳定过程。纯滞后控制系统是把滞后补偿的结果作为PID控制器的输入补偿量ICV,并作

10、为输入补偿的减补偿。这样就构成了一个纯滞后的SMITH预测控制回路。三、PID 指令 在运用PLC对系统进行PID控制时,需要运用PID指令完成PID控制功能。下面的内容介绍了S7200系列PLC的指令系统及其实现控制算法的实例。3.1 PID 回路指令PID 回路指令运用以回路表中的输入和组态信息进行 PID 运算。使 ENO = 0 的错误条件是:SM1.1 (溢出),SM4.3 (运行时间) ,0006 (间接寻址)。该指令影响下列特殊存储器标志位:SM1.1 (溢出)输入输出操 作 数数据类型TBLVBBYTELOOP常数 (0 到 7)BYTEPID 回路指令 (包含比例积分微分回路

11、) 是用来进行 PID 运算。但是,可以进行这种 PID 运算的前提条件是逻辑堆栈栈顶 (TOS) 值必须为1。该指令有两个操作数:TABLE 和 LOOP。 其中,TABLE 是回路表的起始地址;LOOP 是回路号可以是 0 到 7 的整数。在程序中最多可以用8条PID指令。如果两个或两个以上的 PID 指令用了同一个回路号,那么即使这些指令的回路表不同,这些 PID 运算之间也会相互干涉,产生不可预料的结果。回路表包含 9 个参数,用来控制和监视 PID 运算。这些参数分别是过程变量当前值 (PVn) ,过程变量前值 (PVn-1), 给定值 (SPn), 输出值 (Mn), 增益 (Kc

12、), 采样时间 (Ts), 积分时间 (TI), 微分时间 (TD) 和积分项前值 (MX)。为了让 PID 运算以预想的采样频率工作,PID 指令必须用在定时发生的中断程序中,或者用在主程序中被定时器所控制以一定频率执行。采样时间必须通过回路表输入到 PID 运算中。3.2 使用 STEP 7-Micro/WIN 32 中的 PID 向导STEP 7Micro/WIN 32 提供了 PID 向导指导你定义一个闭环控制过程的 PID 算法。选择菜单命令ToolsInstruction Wizard ,然后从指令向导窗口中选择 PID 指令。3.3 PID 算法PID 控制器调节输出,保证偏差

13、(e) 为零,使系统达到稳定状态,偏差 (e) 是给定值 (SP) 和过程变量 (PV) 的差。PID 控制的原理基于下面的算式:输出 M (t) 是比例项积分项和微分项的函数。其中M(t) PID 回路的输出是时间的函数Kc PID 回路的增益e PID 回路的偏差 (给定值与过程变量之差)Minitial PID 回路输出的初始值为了能让数字计算机处理这个控制算式,连续算式必须离散化为周期采样偏差算式,才能用来计算输出值数字。计算机处理的算式如下:其中Mn 在第 n 采样时刻PID 回路输出的计算值Kc PID 回路增益en 在第 n 采样时刻的偏差值en 1 在第 n-1 采样时刻的偏差

14、值 (偏差前项)KI 积分项的比例常数Minitial PID 回路输出的初值KD 微分项的比例常数从这个公式可以看出,积分项是从第 1 个采样周期到当前采样周期所有误差项的函数,微分项是当前采样和前一次采样的函数,比例项仅是当前采样的函数。在数字计算机中,不保存所有的误差项,其实也不必要。由于计算机从第一次采样开始,每有一个偏差采样值必须计算一次输出值,只需要保存偏差前值和积分项前值。利用计算机处理的重复性,可以化简以上算式为:其中Mn 在第 n 采样时刻PID 回路输出的计算值Kc PID 回_路增益en 在第 n 采样时刻的偏差值en 1 在第 n-1 采样时刻的偏差值 (偏差前项)KI

15、 积分项的比例常数MX 积分项前值KD 微分项的比例常数CPU实际使用以上简化算式的改进形式计算 PID 输出。这个改进型算式是:其中Mn 第 n 采样时刻的计算值MPn 第 n 采样时刻的比例项值Min 第 n 采样时刻的积分项值MDn 第 n 采样时刻的微分项值3.4 比例项比例项 MP 是增益 (Kc) 和偏差 (e) 的乘积。其中 Kc 决定输出对偏差的灵敏度,偏差 (e) 是给定值(SP) 与过程变量值 (PV) 之差。CPU 执行的求比例项算式是:MPn = Kc * (SPn - PVn)其中MPn 第 n 采样时刻比例项的值Kc 增益SPn 第 n 采样时刻的给定值PVn 第

16、n 采样时刻的过程变量值积分项积分项值 MI 与偏差和成正比CPU 执行的求积分项算式是MIn =Kc * TS / TI * (SPn - PVn) + MX其中:Min 第 n 采样时刻的积分项值Kc 增益TS 采样时间间隔TI 积分时间SPn 第 n 采样时刻的给定值PVn 第 n 采样时刻的过程变量值MX 第 n-1 采样时刻的积分项 (积分项前值) (也称积分和或偏置)积分和 (MX) 是所有积分项前值之和。在每次计算出 MIn 之后,都要用 MIn 去更新 mx 。其中 MIn可以被调整或限定。 MX 的初值通常在第一次计算输出以前被设置为Minitial (初值)。 积分项还包括

17、其他几个常数:增益 (Kc), 采样时间间隔 (TS) 和积分时间 (TI)。 其中采样时间是重新计算输出的时间间隔,而积分时间控制积分项在整个输出结果中影响的大小。3.5 微分项微分项值 MD 与偏差的变化成正比。其计算等式为:MDn = KC * TD / TS * (SPn - PVn) - (SPn - 1 - PVn - 1)为了避免给定值变化的微分作用而引起的跳变, 假定给定值不变(SPn=SPn-1)。 这样,可以用过程变量的变化替代偏差的变化,计算算式可改进为:MDn = KC * TD / TS * (SPn - PVn - SPn + PVn - 1)或MDn = KC *

18、 TD / TS * (PVn - 1 - PVn)其中:MDn 第 n 采样时刻的微分项值Kc 回路增益Ts 回路采样时间TD 微分时间SPn 第 n 采样时刻的给定值SPn 1 第 n-1 采样时刻的给定值PVn 第 n 采样时刻的过程变量值PVn 1 第 n-1 采样时刻的过程变量值为了下一次计算微分项值, 必须保存过程变量,而不是偏差在第一采样时刻,初始化为 PVn -1=PVn3.6 回路控制类型的选择在许多控制系统中, 只需要一种或二种回路控制类型。例如只需要比例回路或者比例积分回路。通过设置常量参数,可先选中想要的回路控制类型。如果不想要积分回路,可以把积分时间设为无穷大。即使没

19、有积分作用,积分项还是不为零,因为有初值MX。如果不想要微分回路, 可以把微分时间置为零。如果不想要比例回路, 但需要积分或积分微分回路,可以把增益设为 0.0, 系统会在计算积分项和微分项时,把增益当作 1.0 看待。3.7 回路输入的转换和标准化每个 PID 回路有两个输入量,给定值 (SP) 和过程变量 (PV)。给定值通常是一个固定的值,比如是设定的汽车速度。过程变量是与 PID 回路输出有关,可以衡量输出对控制系统作用的大小。在汽车速度控制系统中,过程变量可以是测速仪的输入 (衡量车轮转速高低)。给定值和过程变量都可能是现实世界的值, 它们的大小、范围和工程单位都可能不一样。PID

20、指令在对这些量进行运算以前,必须把他们转换成标准的浮点型实数。转换的第一步是把 16 位整数值转成浮点型实数值。下面的指令序列提供了实现这种转换的方法:XORD AC0, AC0 /清空累加器MOVW AIW0, AC0 /把待变换的模拟量存入累加器LDW= AC0, 0 /如果模拟量为正JMP 0 /则直接转成实数NOT /否则ORD 16#FFFF0000, AC0 /先对 AC0 中值进行符号扩展LBL 0DTR AC0, AC0 /把 32 位整数转成实数转换的下一步是把实数值进一步标准化为 0.01.0 之间的实数。下面的算式可以用来标准化给定值或过程变量:RNorm = (RRaw

21、 / Span) + Offset)其中:RNorm 标准化的实数值Rraw 没有标准化的实数值或原值Offset 单极性为 0.0 双极性为 0.5Span 值域大小, 可能最大值减去可能最小值单极性为 32,000 (典型值)双极性为 64,000 (典型值)下面的指令把双极性实数标准化为 0.01.0 之间的实数。通常用在第一步转换之后:/R 64000.0, AC0 /累加器中的标准化值+R 0.5, AC0 /加上偏置使其落在 0.0 1.0 之间MOVR AC0, VD100 /标准化的值存入回路表3.8 回路输出值转换成刻度整数值回路输出值一般是控制变量, 比如, 在汽车速度控制

22、中,可以是油阀开度的设置。同时,输出是0.01.0 之间的标准化了的实数值,在回路输出驱动模拟输出之前,必须把回路输出转换成相应的16 位整数。这一过程,是给定值或过程变量的标准化转换的反过程。该过程的第一步把回路输出转换成相应的实数值,公式如下:RScal = (M n - Offset) * Span其中:Rscal 回路输出的刻度实数值Mn 回路输出的标准化实数值Offset 单极性为 0.0 双极性为 0.5Span 值域大小可能最大值减去可能最小值单极性为 32,000 (典型值)双极性为 64,000 (典型值)这一过程可以用下面的指令序列完成:MOVR VD108,AC0 /把回

23、路输出值移入累加器R 0.5,AC0 /仅双极性有此句*R 64000.0,AC0 /在累加器中得到刻度值下一步是把回路输出的刻度转换成 16 位整数,可通过下面的指令序列来完成:ROUND AC0 AC0 /把实数转换为 32 位整数MOVW AC0, AQW0 /把16 位整数写入模拟输出寄存器3.9 正作用或反作用回路如果增益为正, 那么该回路为正作用回路。如果增益为负,那么是反作用回路。对于增益为零的积分或微分控制来说,如果指定积分时间、微分时间为正,就是正作用回路;指定为负值,则是反作用回路。3.10 变量和范围过程变量和给定值是 PID 运算的输入值,因此在回路表中,这些值只能被回

24、路指令读而不能改写。输出变量是由 PID 运算产生的,所以在每一次 PID 运算完成之后,需更新回路表中的输出值,输出值被限定在 0.01.0 之间。当 PID 指令从手动方式转变到自动方式时,回路表中的输出值可以用来初始化输出值。如果使用积分控制, 积分项前值要根据 PID 运算结果更新。这个更新了的值用作下一次 PID 运算的输入,当输出值超过范围 (大于 1.0 或小于 0.0), 那么积分项前值必须根据下列公式进行调整:MX = 1.0 - (MPn + MDn) 当计算输出 Mn 1.0或MX = - (MPn + MDn) 当计算输出 Mn 0.0其中MX 经过调整了的积分和 (积

25、分项前值)MPn 第 n 采样时刻的比例项值MDn 第n 采样时刻的微分项值Mn 第 n 采样时刻的输出值这样调整积分前值, 一旦输出回到范围后,可以提高系统的响应性能。而且积分项前值也要限制在0.01.0 之间,然后在每次 PID 运算结束之后,把积分项前值写入回路表,以备在下次 PID 运算中使用。用户可以在执行 PID 指令以前修改回路表中积分项前值。在实际运用中,这样做的目的是找到由于积分项前值引起的问题。手工调整积分项前值时,必须小心谨慎,还应保证写入的值在 0.01.0 之间。回路表中的给定值与过程变量的差值 ( ) 是用于 PID 运算中的差分运算,用户最好不要去修改此值。3.1

26、1 控制方式S7200 的 PID 回路没有设置控制方式,只要 PID 块有效,就可以执行 PID 运算。在这种意义上说,PID 运算存在一种“自动”运行方式。当 PID 运算不被执行时,我们称之为“手动”方式。同计数器指令相似, PID 指令有一个使能位。当该使能位检测到一个信号的正跳变 (从0到 1), PID指令执行一系列的动作,使 PID 指令从手动方式无扰动地切换到自动方式。为了达到无扰动切换,在转变到自动控制前,必须用手动方式把当前输出值填入回路表中的 Mn 栏。PID 指令对回路表中的值进行下列动作,以保证当使能位正跳变出现时,从手动方式无扰动切换到自动方式:l 置给定值 (SP

27、n) 过程变量 (PVn)l 置过量变量前值 (PVn-1) 过程变量现值 (PVn)l 置积分项前值 (MX) 输出值 (Mn)PID 使能位的默认值是1, 在 CPU 启动或从 STOP 方式转到 RUN 方式时建立。CPU 进入 RUN 方式后首次使 PID 块有效,没有检测到使能位的正跳变,那么就没有无扰动切换的动作。3.12 报警与特殊操作PID 指令是执行 PID 运算的简单而功能强大的指令。如果其他过程需要对回路变量进行报警等特殊操作,那么可以用 CPU 支持的基本指令实现这些特殊操作功能。3.13 出错条件如果指令指定的回路表起始地址以及回路号操作数超出范围, 那么在编译期间,

28、CPU 令产生编译错误 (范围错误), 从而编译失败。PID 指令不检查回路表中的值是否在范围之内,所以必须小心操作以保证过程变量和设定值不超界。PID 指令不检查回路表中的值是否超界,你必须保证过程变量和设定值 (以及偏置和前一次过程变量) 必须在 0.0 到 1.0 之间。如果 PID 计算的算术运算发生错误,那么特殊存储器标志位 SM1.1 (溢出或非法值) 会被置 1, 并且中止 PID 指令的执行。 (要想消除这种错误,单靠改变回路表中的输出值是不够的,正确的方法是在下一次执行 PID 运算之前,改变引起算术运算错误的输入值,而不是更新输出值)。3.14 回路表36 个字节的回路表的

29、格式如表 9-19 所示表 9-19 回路表格式3.15 PID 指令编程举例在本例中, 有一水箱需要维持一定的水位,该水箱里的水以变化的速度流出。这就需要有一个水泵以不同的速度给水箱供水,以维持水位不变,这样才能使水箱不断水。本系统的给定值是水箱满水位的 75% 时的水位,过程变量由漂浮在水面的水位测量仪给出。输出值是进水泵的速度,可以从允许最大值的 0% 变到 100%。给定值可以预先设定后直接输入到回路表中, 过程变量值是来自水位表的单极性模拟量,回路输出值也是一个单极性模拟量,用来控制进水泵速度。这两个模拟量的范围是 0.01.0, 分辨率为1/32000 (标准化)。在本系统中, 只

30、使用比例和积分控制,其回路增益和时间常数可以通过工程计算初步确定。但还需要进一步调整以达到最优控制效果。初步确定的增益和时间常数为:KC是 0.25TS 是 0.1 秒TI 是 30 分钟系统启动时, 关闭出水口,用手动控制进水泵速度,使水位达到满水位的 75% ,然后打开出水口,同时水泵控制从手动方式切换到自动方式。这种切换由一个输入的数字量控制,描述如下:I0.0 位控制手动到自动的切换, 0 代表手动;1 代表自动。当工作在手动控制方式下, 可以把水泵速度 (0.01.0 之间的实数) 写到 VD108 (VD108 是回路表中保存输出的寄存器)。图 9-28 是本控制实例的程序图9-28 PID 回路控制实例图 9-28 PID 回路控制实例 (续)图9-28 PID回路控制实例 (续)专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁