模糊神经元自适应PID控制AQM算法

2010-08-24 06:11孙金生
关键词:队列控制算法增益

孙金生 李 彬

(南京理工大学自动化学院,南京 210094)

PID控制是一种应用广泛的控制方式,其算法简便,结构简单,可靠性高.在受控对象结构和参数已知的情况下,利用该方法能够获得令人满意的控制效果.但对于一些过程复杂、参数时变、非线性强的动态系统而言,PID控制则难以获得满意的控制效果.此外,PID控制的参数往往是固定的,不易实时在线自调整,使其应用在一定程度上受到了限制.近年来,神经网络控制在控制领域获得了很大的发展,单神经元作为神经网络的基本单位,具有自学习和自适应的能力.将其与PID控制结合起来,可构成单神经元自适应PID控制器,该算法简单,结构易实现,稳定性和鲁棒性较好.

近年来,主动队列管理算法(active queue management,AQM)已成为网络拥塞控制问题研究的热点之一.专家学者们相继提出了 RED[1],ARED[2],BLUE[3],REM[4],PI[5],PID[6],PD-Controller[7],RaQ[8]等AQM算法.为了使AQM算法能够更好地适应网络环境的变化,基于单神经元自适应PID控制原理,文献[9]提出了一种自适应神经元PID主动队列管理算法;文献[10]提出了一种改进的单神经元自适应PID控制算法.这2种算法的性能较好,但单神经元PID控制算法的神经元增益参数K比较敏感,其区值对单神经元PID控制算法的性能会产生很大的影响,且其初值仅在初始时设定,不具备实时在线自调整的功能.

为了提高单神经元PID控制算法的性能,本文引入了T-S模糊模型,设计了一种基于T-S模糊模型的单神经元自适应PID主动队列管理算法(single neuron adaptive PID algorithm based on T-S fuzzy model,TS-SNAPID),以实现K值的在线调整.

1 单神经元自适应PID控制算法原理

1.1 差分式PID控制算法

在AQM算法中,常规的PID算法表达式为

相应的离散式PID表达式为

将式(2)转化为差分式PID算法,其表达式为

式中,u(k)为控制量;e(k)为k时刻的输入误差,且e(k)=q(k)-qref,其中q(k)为k时刻的队列长队,qref为期望队列长度.

1.2 单神经元控制系统模型

单神经元控制器的输入输出数学模型为[11]

式中,K为单神经元的比例增益,且K>0;xi(k)为单神经元的输入;ωi(k)为对应于xi(k)的加权系数;u(k)为单神经元的输出.

由式(4)可知,单神经元是一个多输入单输出的非线性信息处理单元.在AQM算法中,利用单神经元可实现自适应PID控制,结构框图如图1所示.图中,qref为期望队列长度;q(k)为当前实时队列长度;p为计算出的丢弃概率.转换器的输入反映了被控状态变量和队列期望的状态.输入状态变量的取值为

图1 单神经元自适应PID控制框图

将式(4)改写为AQM算法中计算丢弃概率的差分形式PID控制,即

1.3 单神经元控制学习算法及收敛性

单神经元控制算法是单神经元控制器的核心[11],反映了算法本身的学习能力,其主要作用是调节加权系数ωi(k)的值.该算法的表达式为

式中,ηi为学习速率,且ηi>0;Vi(k)为随过程递减的学习信号;c为常数,且0≤c<1.

在现有的学习算法中,根据学习信号的不同,可将学习算法分为3种:无监督Hebb学习算法、有监督Delta学习算法以及有监督Hebb学习算法[12].为了适应控制的要求,考虑到加权系数ωi(k)与单神经元的输入、输出以及输出偏差有关,本文采用有监督Hebb学习算法来调节加权系数ωi(k),其表达式为

式中,z(k)为输出误差信号,且z(k)=e(k);u(k)为单神经元的输出,即丢弃概率.

由此可知,最终学习算法的表达式为

下面,证明学习算法的收敛性[9].

由式(11)可得

设存在函数 Fi(ωi(k),xi(k),u(k),z(k)),对 ωi(k)求偏微分可得

将式(13)代入到式(12)中,从而得到

式(14)表明,加权系数ωi(k)的修正是沿着Fi相对于ωi(k)的负梯度方向进行的,并且可以用随机逼近理论加以证明.当常数c取值充分小时,采取有监督Hebb学习算法,可以使ωi(k)收敛到某一稳定值,使其与期望值的偏差达到允许的范围内.

1.4 单神经元自适应PID控制算法

单神经元PID控制器的自适应、自调整功能是通过调整状态变量xi(k)的加权系数ωi(k)来实现的.为了保证学习算法的收敛性和鲁棒性,需要对有监督Hebb的学习算法进行规范化处理,同时取c=0,则单神经元自适应PID控制算法的表达式为

式中,ηI,ηP,ηD分别为积分(I)、比例(P)、微分(D)的学习速率.

2 模糊增益自调整单神经元自适应PID控制算法

2.1 增益自调整的T-S模糊模型

单神经元的比例增益K在系统中是最敏感的.当K值较大时,系统的响应速度较快,但此时会引起系统过大的超调,甚至会使系统变得不稳定;当K值较小时,系统响应变慢,快速性变差.因此,K值的选择对系统的性能具有很大的影响作用,且在单神经元自适应PID算法中,K值仅在初始时设定,不具备实时在线自调整的功能.基于此,为使单神经元自适应PID算法具有增益K在线调整功能,引入了T-S模糊调整的思想,提出了一种基于T-S模糊模型的增益自调整的单神经元自适应PID算法(TS-SNAPID).

T-S模糊模型是由 Takagi和 Surgeon[13]于1985年提出的一种非线性建模方法.该模型由一组IF-THEN模糊规则语句组成,其规则前件采用模糊量形式,后件则采用精确量线性集结的方式.对于单一规则,T-S模型表现为局部区域的一个线性映射,随着规则的增加,实现了全局上的非线性映射[14].对于某一条规则,其一般形式为

式中,x1(t),x2(t)为T-S规则前件中的状态变量;(j=1,2,…,n)为模糊子集;l为规则条数;z为精确量输出.

对式(20)进行单点模糊化、乘积推理和加权平均反模糊化处理,最终得到T-S模糊模型的输出为

式中,Ωij(xj(t))为xj(t)在模糊子集中的隶属度函数.

利用T-S模糊模型,可实现单神经元自适应PID控制,结构框图如图2所示.

图2 T-S模糊模型的单神经元自适应PID控制框图

2.2 调整增益K的T-S模糊规则

在本文算法中,增益K的自调整功能是通过引入T-S模糊模型来实现的,T-S模糊模型的后件输出为增益K.

考虑到系统在响应初期,为了提高系统的响应速度,K值应取大些;当系统进入稳态后,为了保证系统超调不大,K值应取小些.

将误差e(k)作为T-S模糊规则前件,其模糊论域分为3个模糊子集,即正(P),零(Z),负(N),模糊子集的隶属度函数采用高斯型,规则如下:

隶属度函数取为

3 仿真与分析

为了验证TS-SNAPID算法的性能,利用网络仿真软件NS2[15]进行了仿真研究.仿真拓扑图如图3所示.图中,路由器B,C之间为瓶颈链路,其链路容量为15 Mbit/s,其余链路容量为100 Mbit/s.主动队列管理算法TS-SNAPID设置在路由器B上,所有的TCP连接均为持久性的FTP业务源.所有TCP的源端和接收端与路由器之间的队列管理算法都采用队尾丢弃(Drop-tail)算法,且假设拥有足够大的缓冲区.在没有特殊说明的情况下,传输时延均为60 ms,路由器最大缓冲队列长度为800个数据包,期望目标队列长度为400个数据包,初始队列长度为0个数据包,采样频率ω为170次/s,仿真时间100 s.为便于与文献[10]中改进的单神经元自适应PID控制(SNAPID)算法进行比较,主要控制参数设置与文献[10]一致,即单神经元比例增益 K=1.2 ×10-5,加权系数初值分别为 ωP=2.583 92 ×10-6,ωI=2.982 90 ×10-6,ωD=3.507 35 ×10-8,学习速率分别为 ηP=8 ×10-5,ηI=1 ×10-6,ηD=1 ×10-7.

图3 网络仿真拓扑结构图

3.1 固定负载时的仿真实验

在本次仿真中,主要考察TS-SNAPID算法在TCP连接数目不同时的适应能力.TCP连接个数分别为200和800时,TS-SNAPID和改进的SNAPID算法的队列长度变化情况如图4所示.

图4 TCP连接个数不同时的仿真结果

从图4可以看出,与改进的SNAPID算法相比,随着TCP数目的增加,TS-SNAPID算法表现出了很好的动态性能,能将队列长度迅速稳定在期望值附近,队列波动较小,稳定性好,具有很好的适应能力.

3.2 期望队列长度不同时的仿真实验

在本次仿真中,主要考察TS-SNAPID算法在期望队列长度不同时的适应能力.TCP连接个数为500,期望队列长度分别为300和500个数据包,此时,TS-SNAPID和改进的SNAPID算法队列长度的变化情况如图5所示.

图5 期望队列长度不同时的仿真结果

从图5可以看出,与SNAPID算法相比,TS-SNAPID算法在不同的期望队列长度下都能迅速地将队列收敛到期望值附近,且实时队列波动较小,表明该算法性能优于SNAPID算法.

3.3 变负载情况下的仿真实验

在本次仿真中,主要考虑TS-SNAPID算法在以下2种情况下的适应能力:① 负载固定间隔增加;②负载随机间隔增加.在负载固定间隔增加的情况下,200个TCP连接同时在0时刻启动,之后每隔20 s又有150个TCP连接同时启动,直到800个TCP全部启动,仿真结果如图6(a)所示.在负载随机间隔增加的情况下,200个TCP连接同时在0时刻启动,之后在0~100 s内,600个TCP随机启动,仿真结果如图6(c)所示.

图6 负载波动时队列长度仿真结果

从图6中可以看出,与改进的SNAPID算法相比,TS-SNAPID算法能够将队列迅速地稳定在期望值附近,且误差以及队列波动较小,表现出了良好的动态性能.

3.4 与其他算法的性能比较

在本次仿真中,将TS-SNAPID算法与改进的SNAPID算法、REM算法、PI算法进行性能比较.仿真环境参数配置如下:各算法的网络拓扑图均相同(见图3),各种AQM算法设置在路由器B上,瓶颈链路容量为15 Mbit/s,其他链路容量为100 Mbit/s,TCP连接数目为500,传输时延RTPT为60 ms,期望队列长度为400个数据包,仿真时间设为100 s.各种算法的主要控制参数为:在PI算法中,a=1.822×10-5,b=1.816 ×10-5,采用频率为 170 次/s;在 REM 算法中,γ =0.001,φ =1.001,α =1.0.其他参数采用 NS2默认的参数设置.各算法的队列长度变化情况如图7所示.

图7 不同算法比较的仿真结果

从图7可以看出,与改进的SNAPID算法、REM算法、PI算法相比,TS-SNAPID算法能将队列长度迅速收敛于期望值附近,队列波动较小,性能上优于其他主动队列管理算法.

为了比较以上几种AQM算法的稳态性能,计算了仿真过程中后50 s内几种算法队列长度的均值和均方差,结果见表1.

表1 几种主动队列管理算法的性能比较

从表1可以看出,TS-SNAPID算法的队列长度均值最接近于队列长度期望值,并且其均方差最小,说明TS-SNAPID算法的性能优于其他3种主动队列管理算法.

4 结语

本文针对现有单神经元PID控制算法无法实现单神经元中比例增益自调整的问题,引入了T-S模糊模型,设计了一种基于T-S模糊模型的单神经元自适应PID控制算法,该算法具有比例增益自调整功能.仿真结果表明,与单神经元自适应PID控制算法相比,本文算法的收敛速度更快,能够迅速地将队列长度收敛到期望值附近,稳定性较好,能够适应不同仿真环境的变化,性能上优于前者.且与改进的SNAPID、REM、PI算法相比,TS-SNAPID算法的性能更优.

References)

[1] Floyd S,Jacobson V.Random early detection gateways for congestion avoidance[J].IEEE/ACM Transactions on networking,1993,1(4):397-413.

[2] Floyd S,Gummadi R,Shenker S.Adaptive RED:an algorithm for increasing the robustness of RED′s active queue management[EB/OL].(2008-11-1)[2010-2-12].http://www.icir.org/floyd/red.html.

[3] Feng W,Kandlur D,Saha D,et al.The blue active queue management algorithms[J].IEEE/ACM Transactions on Networking,2002,10(4):513-52.

[4] Athuraliya S,Low S H.REM:active queue management[J].IEEE Network,2001,15(3):48-53.

[5]Hollot C,Misra V,Towsley D.On designing improved controllers for AQM routers supporting TCP flow [C]//Proceeding the 2001 INFOCOM.Anchorage,AK,USA,2001:1726-1734.

[6]任丰原,王福豹,任勇,等.主动队列管理中的PID控制器[J].电子与信息学报,2003,25(1):94-99.Ren Fengyuan,Wang Fubao,Ren Yong,et al.PID controller for active queue management[J].Journal of Electronic and Information,2003,25(1):94-99.(in Chinese)

[7] Sun J,Chen G,Ko K T,et al.PD-controller:a new active queue management scheme[C]//Proceedings the IEEE Gloecom.San Francisco,CA,USA,2003:3103-3107.

[8] Sun J,Zukerman M.RaQ:a robust active queue management scheme based on rate and queue length[J].Computer Communication,2007,30(8):1731-1741.

[9] Sun J,Chen J,Wang Z.Adaptive neuron PID:a new active queue management algorithm [C]//Proceedings of the 6th World Congress on Intelligent Control and Automation.Dalian,2006:6308-6312.

[10]胡勇,李训铭,高莉莎.基于NS2的改进队列管理算法及其实现[J].电力自动化设备,2008,28(1):90-93.Hu Yong,Li Xunming,Gao Lisha.Improved queue management algorithm based on NS2 and its implementation [J].Electronic Power Automation Equipment,2008,28(1):90-93.(in Chinese)

[11]张世韬,杨风,郝骞.单神经元PID控制器研究及仿真[J].机械工程与自动化,2009,39(3):69-70.Zhang Shitao,Yang Feng,Hao Qian.Research and simulation of single neuron PID controller[J].Mechanic Engineering and Automation,2009,39(3):69-70.(in Chinese)

[12]于雷,何小阳,刘涛.一种增益自适应的单神经元PID控制器[J].湖南工业大学学报,2007,21(5):45-47.Yu Lei,He Xiaoyang,Liu Tao.A single neural PID controller with gain self-adaptive[J].Journal of Hunan University of Technology,2007,21(5):45-47.(in Chinese)

[13] Takagi T,Surgeon M.Fuzzy identification of systems and its application to modeling and control[J].IEEE Transactions on Systems,Man,and Cybernetics,1985,15(1):116-132.

[14]周耿烈,彭远芳,董红生.基于T-S模型的自适应模糊PID控制器的设计[J].工业仪表与自动化装置,2007,40(2):22-25.Zhou Genglie,Peng Yuanfang,Dong Hongsheng.The design of a fuzzy self-adaptive PID controller based on the T-S Model[J].Industrial Automation Instrument and Device,2007,40(2):22-25.(in Chinese)

[15] The NS simulator and the documentation[EB/OL].(2009-05-18)[2010-04-20].http://www.isi.edu/nsnam/ns/.

猜你喜欢
队列控制算法增益
基于增益调度与光滑切换的倾转旋翼机最优控制
队列里的小秘密
基于多队列切换的SDN拥塞控制*
基于单片机的程控增益放大器设计
在队列里
基于Multisim10和AD603的程控增益放大器仿真研究
基于ARM+FPGA的模块化同步控制算法研究
丰田加速驶入自动驾驶队列
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
滑模控制算法在在线式大功率UPS高频整流器中的应用