基于广义PID的随机早期检测算法的AQM系统和方法转让专利

申请号 : CN201410729812.X

文献号 : CN104486248B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 秦立庆周井泉

申请人 : 南京邮电大学

摘要 :

本发明公开了基于广义PID的随机早期检测算法的AQM系统和方法,该系统包括BP神经网络模块、广义PID控制模块和随机早期检测模块;BP神经网络通过自身的学习,可以找到某一最优控制规律下的参数。广义PID控制模块对调整好的自身参数做比例、积分、微分运算并将不同网络负载下队列长度稳定在对应的固定值,随机早期检测模块获取该固定值作为最大丢弃概率,经自身调节产生一个适用于当前负载的丢弃概率,被控对象依据该丢弃概率做出相应反应,使路由器中的队列长度能稳定到一个预期值。以此来达到提高网络资源的利用率,降低网络的平均时延的目的。

权利要求 :

1.一种基于广义PID的随机早期检测算法的AQM系统,其特征在于:所述系统包括BP神经网络模块、广义PID控制模块和随机早期检测算法模块;

BP神经网络模块的功能是:其一,能够高度逼近任意两个不同维数空间的非线性映射,若该神经网络的输入单元数为m,输出元数为n,则在m维欧式空间中有一个有界子集A,存在着一个到n维欧式空间的一个有界子集F(A)的映射;其二,神经网络具有自我学习的功能,它通过输入层、隐含层、输出层之间的相互权连在某种算法下动态地进行误差修正,直到得到理想结果;

广义PID控制模块的功能是:比例部分产生与偏差成正比的输出信号,能够消除偏差;

积分部分产生与偏差的积分值成正比的输出信号,能够消除系统的静态误差;微分部分产生与偏差的变化率成正比的输出信号;二阶微分部分增加了该控制模块的能够调量,能加快控制器的调节速率,缩短过渡过程时间,减少超调;

随机早期检测算法模块的功能是:对到达的数据包计算平均队列长度,在区分用户优先级的同时再利用广义PID模块的输出量计算出不同的丢弃概率以丢弃不同等级用户的数据包;

在PID的基础上,对PID控制规律公式增加高阶导数项,并通过化简得到广义PID的一般形式,提出了广义PID的概念,该模块完成以下功能包括:a:采样得到输入信号q0(t)与系统的输出信号qa,T(t),计算该时刻系统的偏差值:e(t)=q0(t)-qa,T(t);

b:对偏差量e(t)进行比例、积分、微分的运算;

c:根据在经典PID控制规律基础上引入的二阶导数项的控制算法公式,亦即广义PID控制算法: 得到RED算法的所需最大丢弃概率Pmax;

d:根据学习算法进行神经网络学习,在线调整输入层加权系数w1ij(k)和隐含层加权系数w2li(k),从而实现PID控制参数的自适应调整。

2.如权利要求1所述的一种基于广义PID的随机早期检测算法的AQM系统,其特征在于,所述系统将对被控对象模块进行实际控制;为更好的节省硬件资源,降低运算复杂度,所述模块采用一个ARM嵌入式路由器作为实验和运行平台。

3.如权利要求1所述的一种基于广义PID的随机早期检测算法的AQM系统,其特征在于,所述系统是结合BP神经网络,利用控制理论中的广义PID控制器,根据网络负载状况动态调整RED算法的最大丢弃概率值,从而使系统自适应地调节自身参数。

4.如权利要求1所述的一种基于广义PID的随机早期检测算法的AQM系统,其特征在于,所述BP神经网络模块是一种有隐含层的多层前馈网络,有M个输入节点,Q个隐含层节点,3个输出节点;所述输入节点对应系统的运行状态,输出节点分别对应PID控制器的3个可调参数kp、ki、kd。

5.如权利要求4所述的一种基于广义PID的随机早期检测算法的AQM系统,其特征在于,所述BP神经网络模块所完成的功能为:a:确定BP神经网络的结构及初始化某些参数,即对输入层节点数M和隐含层节点数Q的确定,设定神经网络的学习速率和惯性系数,同时给出输入层加权系数的初值和隐含层加权系数的初值;

b:据梯度下降法通过前向网络及后向误差反馈两个过程不断进行自身的学习、调整加权系数,直到输出对应于某种最优控制规律下的PID控制器三个参数kp、ki、kd。

6.如权利要求1所述的一种基于广义PID的随机早期检测算法的AQM系统,其特征在于,所述随机早期检测模块包括:读取路由器缓冲区的数据包队列长度,即:记为q,利用平均指数加权算法,即:权值记为wq,计算出数据包的平均队列长度,即:记为Q;如果平均队列长度小于最小门限minth则该数据包直接进入队列;如果平均队列长度大于最大门限maxth则直接丢弃;如果在设定的门限,即:最小门限记为minth,最大门限记为maxth之内,再利用平均队列长度和最大丢弃概率(记为pmax)计算出丢弃概率p;最后利用p来控制数据包是否被丢弃,从而控制瞬时队列长度避免拥塞发生。

7.一种基于广义PID的随机早期检测算法的AQM系统的实现方法,其特征在于,所述方法包括如下步骤:步骤1:BP神经网络采集系统某时刻的输入量,通过自身的学习、加权系数调整,使kp、ki、kd三个控制参数稳定在某种最优控制规律下,输出作为PID控制器的控制参数;

步骤2:PID控制器采样得到输入信号q0(t)与系统的输出信号qa,T(t),计算该时刻系统的偏差值:e(t)=q0(t)-qa,T(t);

步骤3:对偏差量e(t)进行比例、积分、微分的运算;

步骤4:根据广义PID控制算法: 得到

RED算法所需的最大丢弃概率pmax;

步骤5:分组到达时,计算队列中总体分组的平均队长Q[t+1]=(1-wq)×Q[t]+wq×q[t+

1],其中Q[t]为t时刻的平均队列长度,Q[t+1]为t+1时刻平均队列长度,q[t+1]为t+1时刻的瞬时队列长度,wq为权值系数(∈[0,1]);

步骤6:当Q

说明书 :

基于广义PID的随机早期检测算法的AQM系统和方法

技术领域

[0001] 本发明涉及一种AQM系统,特别涉及一种基于广义PID的随机早期检测算法的AQM系统。

背景技术

[0002] 主动队列管理(即:AQM)的一个重要目标是对网络拥塞进行早期的检测,向系统发出控制拥塞的指示,以便路由器中的队列长度能稳定到一个预期值。这种稳定可以提高网络资源的利用率,降低网络平均时延。AQM的主要算法随机早期检测算法,在IP和异步传输模式(即:ATM)路由器中已经得到了广泛的应用,并且取得了一定的效果。但由于随机早期检测算法(即:RED算法)参数设置的问题一直没有得到很好的解决,网络负载的变化容易引起AQM系统的不稳定,因此其性能受到了很大的影响。从RED的工作机理来看,其性能受负载影响的主要原因在于:不同的负载下需要不同的最大丢弃概率才能使队列长度稳定在一个固定值,而在事先不能预知的情况下,只能把最大丢弃概率配置为一个特定值。这将导致在不同的负载下队列会稳定在不同的值,甚至会出现不稳定的情况。基于广义PID的随机早期检测算法利用控制理论中的广义PID控制器根据网络负载状况动态调整RED算法的最大丢弃概率,从而使AQM系统自适应地调节自身参数来改善控制性能。而本发明能够很好地解决上面的问题。

发明内容

[0003] 本发明目的在于提供一种基于广义PID的随机早期检测算法的AQM系统,该系统结合BP神经网络,利用控制理论中的广义PID控制器根据网络负载状况动态调整RED算法的最大丢弃概率,使AQM系统自适应地调节自身参数来改善控制性能,该系统解决了RED算法参数不能实时设置,网络负载的变化容易引起AQM系统不稳定的问题。
[0004] 本发明解决其技术问题所采取的技术方案是:一种基于广义PID的随机早期检测算法的AQM系统,该系统包括BP神经网络模块、广义PID控制模块和随机早期检测模块。
[0005] BP神经网络模块的功能是:其一,能够高度逼近任意两个不同维数空间的非线性映射,若该神经网络的输入单元数为m,输出元数为n,则在m维欧式空间中有一个有界子集A,存在着一个到n维欧式空间的一个有界子集F(A)的映射;其二,神经网络具有自我学习的功能,它通过输入层、隐含层、输出层之间的相互权连在某种算法下动态地进行误差修正,直到得到理想结果;
[0006] 广义PID控制模块的功能是:比例部分产生与偏差成正比的输出信号,能够消除偏差;积分部分产生与偏差的积分值成正比的输出信号,能够消除系统的静态误差;微分部分产生与偏差的变化率成正比的输出信号;二阶微分部分增加了该控制模块的能够调量,能加快控制器的调节速率,缩短过渡过程时间,减少超调;
[0007] 随机早期检测算法模块的功能是:对到达的数据包计算平均队列长度,在区分用户优先级的同时再利用广义PID模块的输出量计算出不同的丢弃概率以丢弃不同等级用户的数据包;
[0008] 本发明的系统是结合BP神经网络,利用控制理论中的广义PID控制器,根据网络负载状况动态调整RED算法的最大丢弃概率值,从而使系统自适应地调节自身参数。
[0009] 本发明的BP神经网络模块是一种有隐含层的多层前馈网络,有M个输入节点,Q个隐含层节点,3个输出节点;所述输入节点对应系统的运行状态,输出节点分别对应PID控制器的3个可调参数kp、ki、kd。
[0010] 本发明的BP神经网络模块所完成的功能为:
[0011] a:确定BP神经网络的结构及初始化某些参数,即对输入层节点数M和隐含层节点数Q的确定,设定神经网络的学习速率和惯性系数,同时给出输入层加权系数的初值和隐含层加权系数的初值;
[0012] b:据梯度下降法通过前向网络及后向误差反馈两个过程不断进行自身的学习、调整加权系数,直到输出对应于某种最优控制规律下的PID控制器三个参数kp、ki、kd。
[0013] 本发明在PID的基础上,对PID控制规律公式增加高阶导数项,并通过化简得到广义PID的一般形式,提出了广义PID的概念,该模块主要完成以下功能:
[0014] a:采样得到输入信号q0(t)与系统的输出信号qa,T(t),计算该时刻系统的偏差值:e(t)=q0(t)-qa,T(t);
[0015] b:对偏差量e(t)进行比例、积分、微分的运算;
[0016] c:根据在经典PID控制规律基础上引入的二阶导数项的控制算法公式,亦即广义PID控制算法: 得到RED算法的所需最大丢弃概率Pmax;
[0017] d:根据学习算法进行神经网络学习,在线调整输入层加权系数w1ij(k)和隐含层加权系数w2li(k),从而实现PID控制参数的自适应调整。
[0018] 本发明的随机早期检测模块包括:读取路由器缓冲区的数据包队列长度,即:记为q,利用平均指数加权算法,即:权值记为wq,计算出数据包的平均队列长度,即:记为Q;如果平均队列长度小于最小门限minth则该数据包直接进入队列;如果平均队列长度大于最大门限maxth则直接丢弃;如果在设定的门限,即:最小门限记为minth,最大门限记为maxth之内,再利用平均队列长度和最大丢弃概率(记为pmax)计算出丢弃概率p;最后利用p来控制数据包是否被丢弃,从而控制瞬时队列长度避免拥塞发生。
[0019] 本发明还提供了一种基于广义PID的随机早期检测算法的AQM系统的实现方法,该方法包括如下步骤:
[0020] 步骤1:BP神经网络采集系统某时刻的输入量,通过自身的学习、加权系数调整,使kp、ki、kd三个控制参数稳定在某种最优控制规律下,输出作为PID控制器的控制参数;
[0021] 步骤2:PID控制器采样得到输入信号q0(t)与系统的输出信号qa,T(t),计算该时刻系统的偏差值:e(t)=q0(t)-qa,T(t);
[0022] 步骤3:对偏差量e(t)进行比例、积分、微分的运算;
[0023] 步骤4:根据广义PID控制算法: 得到RED算法所需的最大丢弃概率pmax;
[0024] 步骤5:分组到达时,计算队列中总体分组的平均队长Q[t+1]=(1-wq)×Q[t]+wq×q[t+1],其中Q[t]为t时刻的平均队列长度,Q[t+1]为t+1时刻平均队列长度,q[t+1]为t+1时刻的瞬时队列长度,wq为权值系数(∈[0,1]);
[0025] 步骤6:当Q
[0026] 有益效果:
[0027] 1、本发明能够自适应地调节kp、ki、kd参数,获得RED算法所需要的最大丢弃概率pmax,使该算法满足网络的动态性能。
[0028] 2、本发明通过设置队列的最小最大门限值minth和maxth,来保证整个队列分组队长的稳定和较高的吞吐量。

附图说明

[0029] 图1为基于广义PID的随机早期检测算法的AQM系统的整体流程框图。
[0030] 图2为本发明中涉及的BP神经网络示意图。
[0031] 图3为本发明中提出的广义PID控制算法原理框图。
[0032] 图4为RED算法中丢包概率和分组关系折线图。

具体实施方式

[0033] 下面结合说明书附图对本发明创造作进一步说明。
[0034] 如图1所示,一种基于广义PID的随机早期检测算法的AQM系统的流程框图,设计了该系统的实施过程,该系统包括BP神经网络模块、广义PID控制器模块、随机早期检测算法模块。
[0035] BP神经网络模块的功能是:其一,能够高度逼近任意两个不同维数空间的非线性映射,若该神经网络的输入单元数为m,输出元数为n,则在m维欧式空间中有一个有界子集A,存在着一个到n维欧式空间的一个有界子集F(A)的映射;其二,神经网络具有自我学习的功能,它通过输入层、隐含层、输出层之间的相互权连在某种算法下动态地进行误差修正,直到得到理想结果;
[0036] 广义PID控制模块的功能是:比例部分产生与偏差成正比的输出信号,能够消除偏差;积分部分产生与偏差的积分值成正比的输出信号,能够消除系统的静态误差;微分部分产生与偏差的变化率成正比的输出信号;二阶微分部分增加了该控制模块的能够调量,能加快控制器的调节速率,缩短过渡过程时间,减少超调;
[0037] 随机早期检测算法模块的功能是:对到达的数据包计算平均队列长度,在区分用户优先级的同时再利用广义PID模块的输出量计算出不同的丢弃概率以丢弃不同等级用户的数据包;
[0038] 本发明将以被控对象模块作为实验对象,该模块采用一个ARM嵌入式路由器作为实验与运行系统,有效降低了运行复杂度,节省了硬件系统资源。
[0039] 本发明结合BP神经网络利用控制理论中的广义PID控制器根据网络负载状况动态调整PID控制器的三个参数kp、ki、kd,从而使AQM系统自适应地调节自身参数来改善丢包性能,最后计算出RED算法所需的最大丢弃概率,对到达的分组进行拥塞控制。
[0040] 下面详细介绍本发明系统各个模块的功能及其实施过程。
[0041] 一、BP神经网络模块
[0042] 如图2所示,本发明采用的BP神经网络是一种有隐含层的多层前馈网络,有M个输入节点,Q个隐含层节点,3个输出节点;输入节点对应系统的运行状态,输出节点分别对应PID控制器的3个可调参数kp、ki、kd,所完成的功能为:
[0043] a:确定BP神经网络的结构及初始化某些参数,即对输入层节点数M和隐含层节点数Q的确定,设定神经网络的学习速率和惯性系数,同时给出输入层加权系数的初值和隐含层加权系数的初值;
[0044] b:它根据梯度下降法通过前向网络及后向误差反馈两个过程不断进行自身的学习、调整加权系数,直到输出对应于某种最优控制规律下的PID控制器三个参数kp、ki、kd。
[0045] 二、广义PID控制器模块
[0046] 如图3所示,广义PID控制模块包括:
[0047] a:采样得到输入信号q0(t)与系统的输出信号qa,T(t),计算该时刻系统的偏差值:e(t)=q0(t)-qa,T(t);
[0048] b:对偏差量e(t)进行比例、积分、微分的运算;
[0049] c:根据 得到RED算法的最大丢弃概率pmax。
[0050] 三、随机早期检测模块,该模块的功能包括:
[0051] a:通过定时地读取路由器缓冲区数据包的队列长度,利用平均指数加权算法计算出队列中数据包的的平均队长:Q[t+1]=(1-wq)×Q[t]+wq×q[t+1],其中Q[t]为t时刻的平均队列长度,Q[t+1]为t+1时刻平均队列长度,q[t+1]为t+1时刻的瞬时队列长度,wq为权值系数(∈[0,1]);
[0052] b:利用pmax与读取缓冲得到的平均队列Q进行运算得到丢弃概率,p=0(0≤Q
[0053] c:结束。