技术领域:
本发明涉及一种控制工程领域,特别是涉及一种基于蜻蜓算法的pid控制器优化方法。
背景技术:
:
pid控制器是最早提出的反馈控制器之一,因其具有原理简单、易于实现、稳定性好、可靠性高和调整方便等特点,在工业控制系统中得到了广泛地应用。在工业控制领域,有超过95%的反馈回路部件使用的是pid控制器,然而由于pid控制本质是一种线性控制规律,在实际工业应用中对于一些非线性、高阶、时滞的复杂系统,常规的pid控制效果并不能满足生产要求。因此,pid控制器的参数优化一直是控制理论研究的一个重要课题。
传统的pid控制参数主要是凭人工经验来调整,显然这种方法过于主观,可移植性差,不能保证最优控制。早期用于整定pid控制器参数的最典型的方法是ziegler-nichols(z-n法)方法,该方法利用一套整定公式来对参数进行调整,虽简单容易,但却需具备一定的数学知识。近年来,随着智能控制技术的发展,相继出现了如基于神经网络的pid控制、基于模糊逻辑控制的pid参数自整定技术、基于遗传算法的pid参数自整定技术、基于蚁群算法的pid参数优化设计、基于粒子群优化算法的pid控制器参数自整定技术、基于人工蜂群算法的pid控制参数优化、基于布谷鸟算法的pid参数整定技术等。与经典z-n法相比,基于智能优化算法的pid参数整定显著地提高了系统性能。
然而,现存的这些方法虽在一定程度上提高了系统控制性能,但仍存在一些缺陷,如基于神经网络的pid控制对网络权重的初始权重的选取较敏感;遗传算法的编码解码过程较复杂,控制的响应时间较长;蚁群算法为基于离散空间的优化算法,故一定程度上限制了其应用范围;粒子群算法、人工蜂群算法、布谷鸟搜索算法等几种常用的pid参数整定方法存在易陷入局部最优、算法迭代后期收敛速度慢、收敛精度低等缺陷,在实际应用中常常需要对原算法进行适当改进后才能对pid控制器实现较好的控制。
技术实现要素:
:
本发明所要解决的技术问题是:克服现有技术的不足,提供一种蜻蜓算法与pid控制器结合,解决传统pid参数优化方法易出现费时、震荡且不能保证所调参数最优问题的基于蜻蜓算法的pid控制器优化方法。
本发明的技术方案是:一种基于蜻蜓算法的pid控制器优化方法,通过将蜻蜓算法(dragonflyalgorithm,da)中每个蜻蜓个体的位置信息对应为pid控制器的一组参数,并把控制系统的性能评价指标itae作为算法的适应度函数,算法经过迭代寻优最后所找到的最优的个体位置即为所求的最优的一组参数,其具体步骤如下:
a、对种群规模n、与待优化控制参数的个数相对应的空间维数d、最大迭代次数max_iteration以及控制参数kp、ki、kd的取值范围进行参数设置;
b、随机初始化蜻蜓种群的位置x及步长向量δx;
c、将蜻蜓个体的位置信息依次赋值给kp、ki、kd,其中每个蜻蜓个体对应一组控制参数;
d、运行pid控制系统,求出每组控制参数对应的itae性能指标值,作为种群中每个蜻蜓个体的适应度值;
e、找出当前的最优个体和最差个体,将最优个体视为食物,将最差的个体视为外敌;
f、更新邻域半径,更新每个个体的位置;若个体周围有邻近的个体,则更新个体的步长和位置;若当前个体领域内没有邻近个体,则通过随机游走的方式绕搜索空间飞行,并对个体位置进行更新;
g、判断是否满足终止条件,若满足则结束,输出最优的itae值和最优的一组参数;否则返回步骤c继续迭代;
h、把得到最优的一组参数带入公式
个体周围有邻近的个体,则通过以下公式更新个体的步长和位置:(a)、蜻蜓个体的步向量指示蜻蜓的运动方向及其步长,其公式为:
δxt+1=(ssi+aai+cci+ffi+eei)+wδxt(1)
其中s为分离权重,a为对齐权重,c表示凝聚权重,f是食物权重因子,e为外敌权重因子,w是惯性权重,t为迭代计数器;
(b)、蜻蜓个体位置向量的更新公式为:
xt+1=xt+δxt+1(2)
其中t表示当前的迭代。
所述指示蜻蜓个体运动方向及其步长的步向量由蜻蜓个体在群体运动中的间隔、队列、凝聚、寻找食物和躲避外敌五种行为组成,其中:
(a)、间隔:指蜻蜓个体尽量避免与其他个体发生碰撞,该行为的计算公式如下:
其中si表示第i个个体的分离量,x是当前个体的位置,xj是邻近个体j的位置,n为相邻个体的数量;
(b)、队列:指尽量使自身的运动与群体内其他个体保持协调一致,该行为的计算如下:
其中ai表示第i个个体的对齐量,vj为第j个邻近个体的速度;
(c)、凝聚:指蜻蜓个体试图向自己认为所属的群体靠近,此行为的计算公式如下:
其中ci表示第i个个体的凝聚量;
(d)、寻找食物:蜻蜓个体寻找猎物的计算公式如下:
fi=x+-x(6)
其中fi表示第i个个体对猎物的吸引力,x+表示猎物所在的位置;
(e)、躲避外敌:蜻蜓个体在捕食过程中躲避外敌攻击的行为公式计算如下:
ei=x-+x(7)
其中ei是第i个个体需逃离敌人的距离,x-表示敌人所在的位置。
所述随机游走的方式为le′vy飞行,其随机游走过程中对个体位置进行更新的公式为:
xt+1=xt+le′vy(d)×xt(8)
其中d是个体位置向量的维数。
le′vy函数计算如下:
其中r1,r2是[0,1]内的随机数,γ(x)=(x-1)!,β是一个常数1.5。
所述邻域半径随迭代次数的增加而成比例地增长,pid控制系统在simulink环境下运行,空间维数d=3。
本发明的有益效果是:
1、本发明通过把蜻蜓算法与pid控制器结合,将pid控制器待优化的参数作为蜻蜓个体的位置信息,利用蜻蜓群体寻找食物的过程作为寻优过程并以误差性能指标itae作为其适应度函数实现pid控制参数的优化,解决传统pid参数优化方法易出现费时、震荡且不能保证所调参数最优的问题。
2、本发明中的蜻蜓算法源于自然界中蜻蜓捕食和迁徙的群体行为,通过模拟蜻蜓群体飞行、捕食、躲避外敌等过程进行全局搜索和局部搜索,从而实现对目标函数的优化。
3、本发明为提高蜻蜓群体的随机性,当个体周围没有邻近的解时,算法通过使用一个随机游走(le′vy飞行)的方式绕搜索空间飞行。
4、本发明中的蜻蜓算法在寻优的过程中,对每个个体的邻近个体数量的计算是非常重要的,因此这里假定一个邻域半径,该半径随迭代次数的增加而成比例地增长;同时,为平衡算法的全局搜索和局部搜索,权重s,a,c,f,e和w将在优化过程中自适应地调整。
5、本发明为提高pid控制器的系统性能,实现算法空间与pid控制优化问题空间的对应,将da算法中每个蜻蜓个体的位置信息对应为pid控制器的一组参数。
附图说明:
图1为基于蜻蜓算法的pid控制器控制参数流程图。
具体实施方式:
实施例:参见图1。
基于蜻蜓算法的pid控制器优化方法,将da算法中每个蜻蜓个体的位置信息对应为pid控制器的一组参数,控制系统的性能评价指标itae作为算法的适应度函数,算法经过迭代寻优最后所找到的最优的个体位置即为所求的最优的一组参数。
用蜻蜓算法对pid控制器实现参数优化具体步骤如下:
步骤1、相关参数设置:种群规模n、空间维数d、最大迭代次数max_iteration以及控制参数kp、ki、kd的取值范围。这里空间维数对应待优化控制参数的个数,即d=3。
步骤2、初始化:随机初始化蜻蜓种群的位置x及步长向量δx。
步骤3、将蜻蜓个体的位置信息依次赋值给kp、ki、kd,每个蜻蜓个体对应一组控制参数。
步骤4、运行simulink环境下的pid控制系统模型,求出每组控制参数对应的itae性能指标值,作为种群中每个蜻蜓个体的适应度值。
步骤5、找出当前的最优个体和最差个体。将最优个体视为食物,将最差的个体视为外敌。
步骤6、更新邻域半径,更新每个个体的位置:若个体周围由邻近的个体,则利用公式(1)和公式(2)更新个体的步长和位置;若当前个体领域内没有邻近个体,则利用公式(8)对个体位置进行更新。
步骤7、判断是否满足终止条件,若满足则结束,输出最优的itae值和最优的一组参数;否则返回步骤3继续迭代。
步骤8、将得到最优的一组参数带入
其中,蜻蜓算法通过模拟蜻蜓群体航行、捕食及躲避外敌等行为进行全局和局部搜索,寻找猎物的过程即为算法寻优的过程。蜻蜓个体在群体运动中可以分为以下5种行为模式:
(a)、间隔:指蜻蜓个体尽量避免与其他个体发生碰撞。该行为的计算公式如下:
其中si表示第i个个体的分离量,x是当前个体的位置,xj是邻近个体j的位置,n为相邻个体的数量。
(b)、队列:指尽量使自身的运动与群体内其他个体保持协调一致。该行为的计算如下:
其中ai表示第i个个体的对齐量,vj为第j个邻近个体的速度。
(c)、凝聚:指蜻蜓个体试图向自己认为所属的群体靠近。此行为的计算公式如下:
其中ci表示第i个个体的凝聚量。
(d)、寻找食物:蜻蜓个体寻找猎物的计算公式如下:
fi=x+-x(6)
其中fi表示第i个个体对猎物的吸引力,x+表示猎物所在的位置。
(e)、躲避外敌:蜻蜓个体在捕食过程中躲避外敌攻击的行为公式计算如下:
ei=x-+x(7)
其中ei是第i个个体需逃离敌人的距离,x-表示敌人所在的位置。
蜻蜓个体的行为是以上五种模式的组合。其步向量指示蜻蜓的运动方向及其步长,定义如下:
δxt+1=(ssi+aai+cci+ffi+eei)+wδxt(1)
其中s为分离权重,a为对齐权重,c表示凝聚权重,f是食物权重因子,e为外敌权重因子,w是惯性权重,t为迭代计数器。
蜻蜓个体位置向量的更新公式为:
xt+1=xt+δxt+1(2)
其中t表示当前的迭代。
为提高蜻蜓群体的随机性,当个体周围没有邻近的解时,算法通过使用一个随机游走(le′vy飞行)的方式绕搜索空间飞行。在此情况下,蜻蜓的个体位置使用下列公式进行更新:
xt+1=xt+le′vy(d)×xt(8)
其中d是个体位置向量的维数。le′vy函数计算如下:
其中r1,r2是[0,1]内的随机数,γ(x)=(x-1)!,β是一个常数(这里取为1.5)。
算法在寻优的过程中,对每个个体的邻近个体数量的计算是非常重要的,因此这里假定一个邻域半径,该半径随迭代次数的增加而成比例地增长。同时,为平衡算法的全局搜索和局部搜索,这些权重(s,a,c,f,e和w)将在优化过程中自适应地调整。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。