第十一章模拟量单元及pid算法_第1页
第十一章模拟量单元及pid算法_第2页
第十一章模拟量单元及pid算法_第3页
第十一章模拟量单元及pid算法_第4页
第十一章模拟量单元及pid算法_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十一章 模拟量单元及PID算法模拟量输入模拟量输入AIAI路路数数4 4模拟量输出路数模拟量输出路数1 1输入信号类别输入信号类别电压或电压或电流电流输出信号类别输出信号类别电压或电流电压或电流输入信号范围输入信号范围0 010V 10V 0 05V5V0 01V1V10V10V5V 5V 0-20ma0-20ma等等输出信号范围输出信号范围10V10V或或0 020ma20ma分辩率分辩率电压电压1212位位 电流电流1111位位数据对齐方式数据对齐方式左对齐左对齐EM235模拟量单元EM235输入、输出接线EM235输入量程、放大倍数选择EM235EM235输入有不同的量程,必须通过拨码

2、开关进行选择。输入有不同的量程,必须通过拨码开关进行选择。拨码开关位置开关表和量程关系表EM235输入和输出数据格式输出数据格式输入数据格式0PIDPID控制器调节输出,保证偏差(控制器调节输出,保证偏差(e e)为零,使系统达到)为零,使系统达到稳定状态,偏差(稳定状态,偏差(e e)是给定值()是给定值(SPSP)和过程变量()和过程变量(PVPV)的差。的差。PIDPID控制的原理基于下面的算式;输出控制的原理基于下面的算式;输出M M(t t)是比)是比例项、积分项和微分项的函数。例项、积分项和微分项的函数。 输出输出= = 比例项比例项+ + 积分项积分项+ + 微分项微分项其中:其

3、中:M M(t t)是)是 PIDPID回路的输出,是时间的函数回路的输出,是时间的函数 K KC C PIDPID回路的增益回路的增益 e e PIDPID回路的偏差(给定值与过程变量之差)回路的偏差(给定值与过程变量之差) Minitial Minitial PIDPID回路输出的初始值回路输出的初始值为了能让数字计算机处理,连续算式必须离散化为周期采样偏差算式为了能让数字计算机处理,连续算式必须离散化为周期采样偏差算式其中:其中: M Mn n在第在第n n个采样时刻,个采样时刻,PIDPID回路输出的计算值回路输出的计算值K KC C PIDPID回路比例增益回路比例增益e en n

4、第第n n个采样时刻的回路偏差值个采样时刻的回路偏差值e en - 1n - 1 上一个采样时刻杜回路偏差上一个采样时刻杜回路偏差e ei i 第第i i个采样时刻的回路偏差值个采样时刻的回路偏差值K KI I 积分项的比例常数积分项的比例常数Minitial Minitial 回路输出的初始值回路输出的初始值K KD D 微分项的比例常数微分项的比例常数从这个公式可以看出,积分项是从第从这个公式可以看出,积分项是从第1 1个采样周期到当前采样周期所个采样周期到当前采样周期所有误差项的函数,微分项是当前采样和前一次采样的函数,比例项仅有误差项的函数,微分项是当前采样和前一次采样的函数,比例项仅

5、是当前采样的函数。在数字计算机中,不保存所有的误差项,实际上是当前采样的函数。在数字计算机中,不保存所有的误差项,实际上也不必要。只需将上一次的误差值和上一次积分项的数值保存即可。也不必要。只需将上一次的误差值和上一次积分项的数值保存即可。由于计算机从第一次采样开始,每有一个偏差采样值必由于计算机从第一次采样开始,每有一个偏差采样值必须计算一次输出值,只需要保存偏差前值和积分项前值。须计算一次输出值,只需要保存偏差前值和积分项前值。简化算式:简化算式: M Mn n = K = KC C * * e en n + K + KI I * * e en n + M + MX X + K + KD

6、D * * (e en n-e-en - 1n - 1) 其中:其中: M Mn n在第在第n n个采样时刻,个采样时刻,PIDPID回路输出的计算值回路输出的计算值K KC C PIDPID回路比例增益回路比例增益e en n 第第n n个采样时刻的回路偏差值个采样时刻的回路偏差值e en - 1n - 1 上一个采样时刻杜回路偏差上一个采样时刻杜回路偏差K KI I 积分项的比例常数积分项的比例常数MXMX积分项前值积分项前值K KD D 微分项的比例常数微分项的比例常数CPUCPU实际使用以上简化算式的改进形式计算实际使用以上简化算式的改进形式计算PIDPID输出。这个改输出。这个改进型

7、算式是:进型算式是: M Mn n = MP = MPn n + MI + MIn n + MD + MDn n 输出输出= = 比例项比例项+ + 积分项积分项+ + 微分项微分项其中:其中: M Mn n 第第n n采样时刻的计算值采样时刻的计算值 MPMPn n 第第n n采样时刻的比例项值采样时刻的比例项值 MIMIn n 第第n n采样时刻的积分项值采样时刻的积分项值 MDMDn n 第第n n采样时刻的微分项值采样时刻的微分项值(1 1)理解)理解PIDPID方程的比例项方程的比例项比例项比例项MPMPn n是增益(是增益(K KC C)和偏差()和偏差(e e)的乘积。其中)的乘

8、积。其中K KC C决定决定输出对偏差的灵敏度,偏差(输出对偏差的灵敏度,偏差(e e)是给定值()是给定值(SPSP)与过程)与过程变量值(变量值(PVPV)之差。)之差。S7-200S7-200解决的求比例项的算式是:解决的求比例项的算式是: MPMPn n = K = KC C * * (SPSPn n PV PVn n)MPMPn n第第n n个采样时刻比例项的值个采样时刻比例项的值K KC C 回路增益回路增益SPSPn n 第第n n采样时刻的给定值采样时刻的给定值PVPVn n 第第n n采样时刻的过程变量值采样时刻的过程变量值(2 2)理解)理解PIDPID方程的积分项方程的积

9、分项积分项(积分项(MIMI)是正比于每次采样的误差的积累值。)是正比于每次采样的误差的积累值。S7-200S7-200解决的求积分项的算式是:解决的求积分项的算式是: MIMIn n = K = KC C * * T TS S / T / TI I * * (SPSPn n - PV - PVn n)+ M+ MX X其中:其中: MIMIn n 第第n n个采样时刻的积分项值个采样时刻的积分项值K KC C 回路增益回路增益T TS S 采样周期采样周期T TI I 积分时间常数积分时间常数SPSPn n 第第n n采样时刻的给定值采样时刻的给定值PVPVn n第第n n采样时刻的过程变量

10、值采样时刻的过程变量值MX MX 第第n - 1n - 1采样时刻的积分项(积分项前值)采样时刻的积分项(积分项前值)(也称积分和或偏置)(也称积分和或偏置)(3 3)理解)理解PIDPID方程的微分项方程的微分项微分项(微分项(MDMD)正比于误差的变化。)正比于误差的变化。S7-200S7-200使用下列算式来求解微分使用下列算式来求解微分项:项: MDMDn n = K = KC C * * T TD D / T / TS S * * (SP (SPn n PV PVn n)-(SP)-(SPn-1n-1 - PV - PVn-1n-1)为了避免给定值变化的微分作用而引起的跳变,假定给定

11、值不变为了避免给定值变化的微分作用而引起的跳变,假定给定值不变(SPSPn n = SP= SPn-1n-1)。这样,可以用过程变量的变化替代偏差的变化,计)。这样,可以用过程变量的变化替代偏差的变化,计算算式可改进为:算算式可改进为: MDMDn n = K = KC C * * T TD D / T / TS S * * (PV (PVn-1n-1 - PV - PVn n ) )其中:其中:MDMDn n第第n n个采样时刻的微分项值个采样时刻的微分项值K KC C 回路增益回路增益T TS S 采样周期采样周期T TD D 微分时间常数微分时间常数SPSPn n 第第n n采样时刻的给

12、定值采样时刻的给定值SPSPn-1n-1 第第n-1n-1采样时刻的给定值采样时刻的给定值PVPVn n 第第n n采样时刻的过程变量值采样时刻的过程变量值PVPVn-1n-1 第第n-1n-1采样时刻的过程变量值采样时刻的过程变量值为了下一次计算微分项值,必须保存过程变量,而不是偏差。在第为了下一次计算微分项值,必须保存过程变量,而不是偏差。在第一采样时刻,初始化为一采样时刻,初始化为PVPVn-1n-1 PVPVn n PIDPID指令指令PIDPID指令以回路表中的输入和组态信息进行指令以回路表中的输入和组态信息进行PIDPID运算。要执行该指令,必须使逻辑栈顶运算。要执行该指令,必须使

13、逻辑栈顶值置为值置为1 1。指令中的指令中的TBLTBL是是PIDPID控制回路的起始地址控制回路的起始地址。LOOPLOOP为控制回路号为控制回路号(为常数,在(为常数,在0 07 7之间)之间)使使ENO=0ENO=0的错误条件:的错误条件: SM1.1SM1.1(溢出)(溢出)H H 00060006(间接寻址)(间接寻址)受影响特殊存储器位受影响特殊存储器位 SM1.1 SM1.1(溢出)(溢出)在程序中最多可以用在程序中最多可以用8 8条条PIDPID指令。如果两个或两个以上的指令。如果两个或两个以上的PIDPID指令用了同一个回路号,那么即使这些指令的回路表指令用了同一个回路号,那

14、么即使这些指令的回路表不同,这些不同,这些PIDPID运算之间也会相互干涉,产生不可预料的运算之间也会相互干涉,产生不可预料的结果。结果。回路表包含回路表包含9 9个参数,用来控制和监视个参数,用来控制和监视PIDPID运算。这些参数运算。这些参数分别是分别是过程变量当前值(过程变量当前值(PVPVn n),过程变量前值(),过程变量前值(PVPVn-1n-1),),给定值(给定值(SPSPn n),输出值(),输出值(M Mn n),增益(),增益(K Kc c),采样时间),采样时间(T Ts s),积分时间),积分时间(T(TI I) ),微分时间(,微分时间(T TD D)和积分项前值

15、)和积分项前值(MXMX)。)。为了让为了让PIDPID运算以预想的采样频率工作,运算以预想的采样频率工作,PIDPID指令必须用在指令必须用在定时发生的中断程序中定时发生的中断程序中,或者用在,或者用在主程序中被定时器所控主程序中被定时器所控制以一定频率执行制以一定频率执行。采样时间必须通过回路表输入到。采样时间必须通过回路表输入到PIDPID运算中。运算中。回路表回路表回路控制类型的选择回路控制类型的选择通过设置常量参数,可以选择需要的回路控制类型。通过设置常量参数,可以选择需要的回路控制类型。如果不想要积分动作(如果不想要积分动作(PIDPID计算中没有计算中没有“I I”),可以把积)

16、,可以把积分时间(复位)置为无穷大分时间(复位)置为无穷大“INFINF”。即使没有积分作用,。即使没有积分作用,积分项还是不为零,因为有初值积分项还是不为零,因为有初值MXMX。如果不想要微分回路,可以把微分时间置为零。如果不想要微分回路,可以把微分时间置为零。如果不想要比例回路,但需要积分或积分微分回路,可把如果不想要比例回路,但需要积分或积分微分回路,可把增益设为增益设为0.00.0,系统会在计算积分项和微分项时,把增益当,系统会在计算积分项和微分项时,把增益当作作1.01.0看待。看待。正作用回路和反作用回路正作用回路和反作用回路如果增益为正,那么该回路为正作用回路。如果增益为负,如果

17、增益为正,那么该回路为正作用回路。如果增益为负,那么是反作用回路。那么是反作用回路。对于增益值为对于增益值为0.00.0的的I I或或IDID控制,如果指定积分时间、微分控制,如果指定积分时间、微分时间为正,就是正作用回路;如果指定为负值,就是反作时间为正,就是正作用回路;如果指定为负值,就是反作用回路用回路控制方式控制方式S7-200S7-200的的PIDPID回路没有设置控制方式,只要回路没有设置控制方式,只要PIDPID块有效,块有效,就可以执行就可以执行PIDPID运算。即运算。即PIDPID运算存在一种运算存在一种“自动自动“运行运行方式。当方式。当PIDPID运算不被执行时,我们称

18、之为运算不被执行时,我们称之为“手动手动”模式。模式。PIDPID指令使能位检测到信号的正跳变(从指令使能位检测到信号的正跳变(从0 0到到1 1),),PIDPID指指令执行一系列动作,使令执行一系列动作,使PIDPID指令从手动方式无扰动地切换指令从手动方式无扰动地切换到自动方式。到自动方式。为了达到无扰动切换,在转变到自动控制前,必须用手为了达到无扰动切换,在转变到自动控制前,必须用手动方式把当前输出值填入回路表中的动方式把当前输出值填入回路表中的M Mn n栏。栏。PIDPID指令对回指令对回路表中的值进行下列动作,以保证当使能位正跳变出现路表中的值进行下列动作,以保证当使能位正跳变出

19、现时,从手动方式无扰动切换到自动方式:时,从手动方式无扰动切换到自动方式: 置给定值(置给定值(SPSPn n)= =过程变量(过程变量(PVPVn n) 置过程变量前值(置过程变量前值(PVPVn-1n-1)= =过程变量现值(过程变量现值(PVPVn n) 置积分项前值(置积分项前值(MXMX)= =输出值(输出值(M Mn n)回路输入的转换及归一化处理回路输入的转换及归一化处理每个每个PIDPID回路具有两个输入量,给定值(回路具有两个输入量,给定值(SPSP)和过程变量)和过程变量(PVPV)。给定值通常是一个固定的值。过程变量是与)。给定值通常是一个固定的值。过程变量是与PIDPI

20、D回路输出有关,可以衡量输出对控制系统作用的大小。回路输出有关,可以衡量输出对控制系统作用的大小。给定值和过程变量都可能是工程实际的值,它们的大小、给定值和过程变量都可能是工程实际的值,它们的大小、范围和工程单位都可能不一样。在范围和工程单位都可能不一样。在PIDPID指令对这些工程实指令对这些工程实际的值进行运算之前,必须把它们转换成标准的浮点型表际的值进行运算之前,必须把它们转换成标准的浮点型表达形式。达形式。转换的第一步是把转换的第一步是把1616位整数值转成浮点型实数值。如:位整数值转成浮点型实数值。如: ITD AIW0ITD AIW0,AC0 /AC0 /将输入值转换为双整数。将输

21、入值转换为双整数。 DTR AC0 DTR AC0, AC0 /AC0 /将将3232位双整数转换为实数。位双整数转换为实数。下一步是将工程实际的值的实数值表达形式转换成下一步是将工程实际的值的实数值表达形式转换成0.01.00.01.0之间的标准化值。下面的算式可以用于标准化给定值或过程之间的标准化值。下面的算式可以用于标准化给定值或过程变量值:变量值: R Rnormnorm = = (R Rrawraw / Span / Span)+ Offset+ Offset其中:其中: R Rnormnorm 工程实际值的归一化值工程实际值的归一化值R Rraw raw 工程实际值的实数值或原值,

22、未归一化处理工程实际值的实数值或原值,未归一化处理Span Span 最大允许值减去最小允许值,通常取最大允许值减去最小允许值,通常取3200032000(对于(对于单极性)和单极性)和6400064000(对于双极性)(对于双极性)Offset Offset 单极性为单极性为0.00.0,双极性为,双极性为0.50.5下面的指令把双极性实数标准化为下面的指令把双极性实数标准化为0.01.00.01.0之间的实数。通之间的实数。通常用在第一步转换之后:常用在第一步转换之后:/R 64000.0, AC0 /R 64000.0, AC0 /累加器中的标准化值累加器中的标准化值+R 0.5, AC

23、0 /+R 0.5, AC0 /加上偏置,使其在加上偏置,使其在0.01.00.01.0之间之间MOVR AC0, VD100 /MOVR AC0, VD100 /标准化的值存入回路表标准化的值存入回路表回路输出值转换成整数值回路输出值转换成整数值回路输出值一般是控制变量,比如,在汽车速度控制回路输出值一般是控制变量,比如,在汽车速度控制中,可以是油阀开度的设置。回路输出是中,可以是油阀开度的设置。回路输出是0.00.0和和1.01.0之之间的一个标准化了的实数值。间的一个标准化了的实数值。在回路输出可以用于驱动模拟输出之前,回路输出必在回路输出可以用于驱动模拟输出之前,回路输出必须转换成一个

24、须转换成一个1616位的标定整数值。这一过程,是给定位的标定整数值。这一过程,是给定值或过程变量的标准化转换的逆过程。值或过程变量的标准化转换的逆过程。第一步是使用下面给出的公式,将回路输出转换成一第一步是使用下面给出的公式,将回路输出转换成一个标定的实数值:个标定的实数值:R Rscal scal = = (M Mn n - Offset - Offset)* * SpanSpan其中:其中: R RScalScal 回路输出的刻度实数值回路输出的刻度实数值 M Mn n 回路输出的标准化实数值回路输出的标准化实数值 Offset Offset 单极性为单极性为0.00.0,双极性为,双极性

25、为0.50.5 Span Span 值域大小,可能的最大值减去可能的最小值域大小,可能的最大值减去可能的最小值值 单极性为单极性为32,00032,000(典型值)双极性为(典型值)双极性为64,00064,000(典型(典型值)值)这一过程可以用下面的指令序列完成:这一过程可以用下面的指令序列完成: MOVR VD108, AC0 /MOVR VD108, AC0 /把回路输出值移入累加器把回路输出值移入累加器 -R 0.5, AC0 /-R 0.5, AC0 /仅双极性有此句仅双极性有此句 * *R 64000.0, AC0 /R 64000.0, AC0 /在累加器中得到刻度值在累加器中

26、得到刻度值下一步是把回路输出的刻度转换成下一步是把回路输出的刻度转换成1616位整数:位整数: ROUND AC0ROUND AC0,AC0 /AC0 /把实数转换为把实数转换为3232位整数位整数 DTI AC0, LW0 /DTI AC0, LW0 /把把3232位整数转换为位整数转换为1616位整数位整数 MOVW LW0MOVW LW0,AQW0 /AQW0 /把把1616位整数写入模拟输出寄存器位整数写入模拟输出寄存器出错条件出错条件如果指令指定的如果指令指定的回路表起始地址回路表起始地址或或PIDPID回路号操作数超出范回路号操作数超出范围围,CPUCPU将产生编译错误(范围错误)

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论