注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 PID控制算法  

2010-04-17 22:31:59|  分类: PID算法 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

针对大惯性工业对象,设计了一种新的自适应调节器控制算法并应用于工业温度控制系统中。实验结果表明,利用人工智能算法与PID自适应算法的有机结合,可以使温度控制曲线在不同的阶段平滑过渡,使系统控制过程达到最优。

    由于PID调节器规律简单、运行可靠、易于实现等特点,PID控制器仍是目前工业生产过程控制系统中应用最广泛的一类控制器。然而,随着工业过程对控制性能要求的不断提高,传统的PID算法已不能完全满足生产实际的要求。为此不少学者在现代控制理论的基础上建立了一些新的控制算法[1,2]PID参数的自动整定方法[3],但许多算法在工程应用过程中比较复杂,特别对于多段温度控制系统,在升降温过程中会出现振荡等现象。为此,将常规PID控制器与自校正算法相结合并利用人工智能系统使其在系统状态变化的每一时刻自动调节PID参数,让控制过程时刻处于最优状态是每个编程人员都力争实现的。为了达到这种目的,笔者利用改进的Z-N算法与人工智能结合,完成PID参数的初始值设定,利用测量误差改变调节器步长的方法实现PID参数的自动整定,在大型加热炉的多段温度曲线控制中取得了非常满意的效果。

1利用Z-N算法获得PID参数的初始值
    Ziegler Nichols方法(简称Z-N算法)是基于简单的被控过程的Niquist曲线的临界点计算PID参数初值的方法。它采用的整定准则是要求系统的暂态过程衰减率为0.75,其最大优点是计算方法简单,使用方便。但实际过程中,许多工业对象对自动控制系统的要求各不相同,生产过程的暂态衰减率不同于0 75。因此,本文采用修正的Z-N整定方法,即利用4∶1的衰减比性能准则获得PID参数的初始值。
    给系统施加一阶跃输入U(可取U为40%功率),由于温度控制系统有一S形响应曲线,可以利用一阶延时系统进行近似:
    U(s)/T(s)=Ke-τs/(1+Ts)

    假如温度达到50%和75%时所用的时间分别为:t1、t2,如图1—1。则根据Z-N调谐器调谐准则:
PID控制算法 - 易拉罐bb - 易拉罐的博客


PID控制算法 - 易拉罐bb - 易拉罐的博客

    利用这种方法可以方便地得到PID参数中的比例系数Kp、积分时间常数Ti和微分时间常数Td的初始值。
2自校正PID调节器的调
节原理
常规PID调节器[4]经离散化处理后的动态方程可表示为(增量法):
PID控制算法 - 易拉罐bb - 易拉罐的博客

    式中,T为温度控制周期,在微机自动温控系统中,通常T在2~5 s。由式(2—2)可以看出,只需确定T、P、Ti及T d,A′、B′、C′均为常数。
    如果将上述各参数代入式(2—1),即可实现常规的PID控制。但在实际运行过程中,由于系统各种参数并不是恒定不便的。因此,为了使系统始终运行在最佳状态,运行过程中必须实时调整P、Ti及Td参数。从式(2—2)可以看出,A′、B′及C′相互依赖相互影响,实时调整A′、B′及C′参数,也能使系统达到最优。设:
PID控制算法 - 易拉罐bb - 易拉罐的博客

    在实际控制过程中只要根据系统的误差实时地调整参数U(t)、V(t)及W(t)的值,就能够使控制过程达到最优。

3自校正PID调节器的设计

    (2—3)给出了自校正PID调节器的控制算法。在炉温微机自动控制过程中,为了编程方便以及加速PID在线整定速度,采用变步长的参量叠加的处理方法更为有效。
    首先将采样值与给定值的误差的绝对值分成若干个区间(笔者在实际温度自动控制过程中将其分为5个区间),例如,16℃<|Xn|≤20℃,12℃<|Xn|≤16℃,8℃<|Xn|≤12℃,5℃<|Xn|≤8℃,2℃<|Xn|≤5℃,在不同的温度区间使用不同的步长
PID控制算法 - 易拉罐bb - 易拉罐的博客
PID控制算法 - 易拉罐bb - 易拉罐的博客

    式中α为绝对值等于1的系数。k为与误差有关的量,即参数整定的步长。k值从理论上可自由确定,但实际上根据笔者实验表明,k值取0.5~2.0较为合适。
(3—1)中,首先将采样值与实际值进行比较,确定|Xn
|所在的区间,然后,按照不同的区间采用不同的计算公式。对于整个控制过程,计算机程序的实现如下:
    当|Xn|≥25℃时,取U(t)=0,V(t)=0,W(t)=0,当|Xn
|≥20℃时:取U(t)=k,V(t)=k,W(t)=k,并按比例算法进行控制。
    当|Xn|进入设定的区段后,按式(3—1)加入自校正PID运算程序(即U(t)、V(t)、W(t)的初值为0)。程序的步骤为:

    ①首先将U(t)与V(t)固定,调整W(t)
    由于温度信号的变化滞后较大,PID参数的调整周期应比采样周期大一些。具体的整定时间间隔应根据炉子的滞后时间决定(笔者使用的炉子由通电到温度信号响应大约为5 s,因此,笔者选用的整定时间间隔为10 s)。在第一次调W(t)时,取α=1W(t)=W(t)+[WTBZ]αk/2 n(n为|Xn|所在区段),然后进行PID运算。在以后每次调整W(t)时,则首先应计算|Xn-1|-|Xn,若差值小于0,说明所加步长的方向错误,此时,取α=-1,重新计算。若差值大于0,说明所加步长方向正确,αk/2 n仍取前次调整时的值进行计算。这个过程一直进行到|Xn-1|-|Xn| 又一次小于0,则转入调整下一个参数。即固定W(t)与U(t)调整V(t)。
    ②视W(t)与U(t)为常量,V(t)为变量

PID控制算法 - 易拉罐bb - 易拉罐的博客

    调整V(t)的过程与调整W(t)的过程基本类似,仍然是先取α=1,计算V(t)=V(t)+αk/2 n,从第二次调整V(t)开始,就必须计算|Xn-1|-|Xn|,以判断所加步长的方向是否正确。如果正确就继续,否则取α=-1,由式(3—1)和式(2—3)计算反馈控制量的增量,直到|Xn-1|-|Xn|第二次小于0,然后再固定V(t)与W(t)调整U(t)。
    ③视V(t)与W(t)为常量,U(t)为变量
    这个过程同调整V(t)与W(t)的方法类似。当这个过程完成后再重新回到W(t)过程,完成一个调整周期。
    上述过程循环进行,直到|Xn-1|-|Xn|小于定标误差。一旦系统误差大于定标误差便开始调整,这样,系统将一直工作于最优状态。系统达到定标误差后,将调整后的PID参数存盘(对于PC控制系统)或EEPROM(对于单片机控制系统),当下一次开机运行时,系统将会很快稳定在最优状态。

4利用人工智能减小振荡

    对于许多多段温度控制系统,当温度达到给定值时,温度曲线总会产生振荡现象。为此,笔者采用了智能判断的方法对振荡进行了抑制,收到了良好的效果。利用人工智能抑制振荡的方法如下:在升温阶段,当-30℃<|Xn-1|-Xn|<-5℃时,让系统按曲线升温。升温速率可根据系统的滞后情况设定为1~5℃。同时系统按照曲线升温阶段的自校PID控制算法进行控制,只是控制量为升温速率。当|Xn-1|-Xn|<-5℃时,将速度升温的PID参数值定为恒温控制时的PID参数初值。根据实验发现,采用这种控制方法总能使系统达到最佳控制效果,系统没有超调,并且PID参数的整定在速率升温结束后的几分钟内就能达到稳定。
5分析讨论

    已经分析了PID参数的自动在线整定算法。但对编程来说仍较复杂。事实上,A′、B′及C′ 3个参数相互依赖,相互影响,在过程达到最优时,A′、B′、C′ 3个参数并不是惟一的,因此,在实际控制过程中,可以只改变A′、B′、C′3个参数中的任意两个参数就能使系统达到最优。图5—1为固定参数C′,利用计算机自动在线整定A′和B′所得到的实际炉温控制曲线。其中恒温温度为1800℃的曲线是在100kW的真空炉中测得(100kW干式变压器,源极控制,发热体为石墨),恒温温度为500℃的曲线是在实验电阻炉中测得,两种温度控制曲线均达到了±1℃的控温精度,并且没有超调。
6结论

    利用温升阶跃曲线,按照4∶1的衰减比,使用改进的Z-N算法,可获得PID参数中的比例系数KP、积分时间常数Ti和微分时间常数T d的初始值,并通过计算获得A′、B′、C′的初值。
    将自校正PID算法用于工业加热的自动温度控制系统,可以使控制系统一直处于最优状态。增量式PID的算法方程为:
PID控制算法 - 易拉罐bb - 易拉罐的博客
其中,U(t),V(t),W(t)可根据不同的温度区段,由系统自动整定获得。在实际使用中可以只改变U(t)、V(t)、W(t)中任意两个参数,而固定另一个参数,也能达到最优控制的效果
    当实际温度距标定温度30℃时,人工设定一升温速率并利用PID参数自整定算法进行控制,可以使升温曲线平稳地过渡到恒温阶段。这样,进入恒温阶段后,PID参数可以更快速地达到最优。

 

 

http://www.chuandong.com/cdbbs/2008-6/13/086130B879A800.html

  评论这张
 
阅读(463)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017