基于莱维飞行的改进蚁群算法的PID参数优化

2019-05-29 07:01何同祥
仪器仪表用户 2019年6期
关键词:莱维蚂蚁控制器

孙 悦,何同祥

(华北电力大学 控制与计算机工程学院,河北 保定 071003)

比例—积分—微分(PID)控制器以其原理简单、性能良好等优点一直被工程人员青睐,如何选取最优的PID控制器参数成为改善控制器性能,提高控制品质的关键。

PID控制器参数整定的方法有传统的稳定边界法、衰减曲线法和阶跃响应曲线法等方法,这些方法实践过程繁琐,难以实现控制品质最优。随着人工智能理论的发展,遗传算法、粒子群算法、蚁群算法等智能优化方法相继被提出,这些智能优化方法与传统的PID技术结合,以适应复杂的工况和高指标的控制要求。

本文以蚁群算法解决TSP(旅行推销员)问题为基础,结合莱维飞行随机搜索模式对蚁群算法进行改进,利用改进的算法对PID参数整定优化,并应用于过热汽温系统,取得了良好的控制效果。

1 蚁群算法

蚁群算法(Ant Colony Algorithm,简称ACO)是由M.Dorigo,V.Maniezzo和A.Colorni等人于20世纪90年代初期通过模拟自然界中蚂蚁集体寻径行为而提出的一种基于种群的启发式随机搜索算法[1]。

蚁群算法优化PID参数时,首先定义一个有向多重图。有向多重图有n个节点,节点集合为{A1, A2, …, An},分别代表不同的城市。其中A1为起始节点,终点未记录在集合内。每个城市节点只与相邻城市节点之间有路可寻,且每相邻两个城市节点之间存在10条可选路径,分别以数值1,2,…10编号标记(代表可行解某一位的可能数值),蚂蚁从起始节点A1出发,做单向运动,依次访问n个城市,到达终点。

根据优化参数的个数N,设置城市的个数n为N的整数倍:

每只蚂蚁从起点开始,依次访问全部城市到达终点,即得到一个问题的解X={xi|i=1, 2,…,N}。其中,xi的编码长度为L。按照蚂蚁访问城市的先后顺序,每经过L个城市,即对应着一个变量xi。设第k只蚂蚁的某次访问形成的轨迹为{ck1, ck2, …, cks},则该蚂蚁的访问过程所对应的解为:

式中:ckj表示蚂蚁k从第j个城市出发时所选路径的编号,取值在0~10之间。ei为变量xi的归一化数值,xiH和xiL分别为变量xi取值范围的上、下限。

蚁群算法优化过程中,首先将各个路径上的信息素初始化。令τij(t)表示时刻t城市i到下一个城市的第j条路径上的信息素量,τij(t)是常数。然后,令每只蚂蚁从同一起点开始访问各个城市,每只蚂蚁从上一个城市选择任意路径到下一个城市所需要的时间是相同的。在时刻t每只蚂蚁都要以某种概率选择一条路径去下一个城市,并在t+1时刻到达该城市。那么,对于时刻t,蚂蚁k从城市i选择第j条路径到下一个城市的概率为Pijk(t),其计算公式为:

每只蚂蚁根据由式(4)计算的最大概率选择路径。当蚂蚁访问过所有城市到达终点后,评价每只蚂蚁走过的路径。首先利用式(2)和式(3)求得对应的解,并求取相应的目标函数Qk的值,然后记录下此次循环的最佳路径,更新最佳目标函数值。为了避免残留信息素过多而让启发信息淹没,在每只蚂蚁完成对n个城市的访问后,对各只蚂蚁所经过的路径上的信息素进行更新,即:

其中,ρ (0<ρ<1)表示路径上信息素的蒸发系数,1-ρ表示信息素的持久性系数;Δτijk表示本次遍历中边ij上信息素的增量,Δτijk(t)的计算式为:

式中:Q为常数,表示信息素强度;Qk为第k只蚂蚁在本次遍历中的目标函数值。

信息素更新完成后,进入下一次循环,直到达到最大循环次数Nc或算法最后收敛到所有的蚂蚁访问轨迹相同为止。

2 基于莱维飞行的改进蚁群算法

在基本蚁群算法中,信息素量大的路径对每次路径选择和信息素的更新起主要作用,强化最优信息反馈,可能导致“早熟”停滞现象。信息素蒸发系数ρ的大小将直接影响到整个蚁群算法的收敛速度和全局搜索性能。ρ过小时,则表示以前搜索过的路径被再次选择的可能性过大,会影响到算法的随机性能和全局搜索能力;ρ过大时,说明路径上的信息素挥发的相对较多,虽然可以提高算法的随机性能和全局搜索能力,但过多无用搜索操作将降低算法收敛速度[2]。

莱维飞行是一种步长较小的短距离行走与偶尔大步长的行走相互交替的行走方式。因此,一部分解在当前最优值附近搜索,从而加速了局部搜索;另一部分解可以在离当前最优值足够远的空间进行搜索,从而保证系统不会陷于局部最优[3]。传统蚁群算法中信息素蒸发系数ρ通常是一个定值,改进的蚁群算法借鉴莱维飞行机制,能够扩大搜索范围,有效解决算法易于陷于局部最优解的问题。

由于实现莱维飞行很复杂,所以使用Mantegna算法模拟莱维飞行产生随机步长,那么莱维飞行位置更新式如下:

其中:xi(t)表示xi第t代位置;⊕为点乘运算符;α表示步长控制量;μ / |v|1/β为随机搜索路径。

μ为正态分布,定义:

其中:β通常取值为[1,2],Γ为标准伽马函数。v服从标准正态分布。

对莱维飞行模式做出一定改进,以符合蚁群算法的搜索方式。信息素蒸发系数ρ的位置更新式即为[4]:

3 目标函数的建立

蚁群算法优化PID参数是为了使系统拥有更好的性能,提高控制品质。因此,选用性能指标做依据建立目标函数衡量PID控制器参数是否最佳。时间乘绝对误差积分准则(ITAE)能反映控制系统的快速性和精确性,按照这种准则设计的控制系统具有较小的超调量和较快的响应时间。

图1 PID单位阶跃响应比较图Fig.1 PID Unit step response comparison chart

因此,选用ITAE为目标函数。目标函数如下:

4 仿真实验

本文过热汽温控制系统引用自文献[5],该系统导前区传递函数为:

惰性区传递函数为:

过热控制系统的主回路采用PID控制器,副回路采用P控制器。利用经验公式整定出的主控制器参数为:Kp1=0.35,Ti1=318.6,Td1=39.8~79.6,副控制器参数为:Kp2=1.33。选择主控制器参数范围:Kp1为[0.25,0.67],Ti1为[150,450],Td1为[40,80],副控制器参数范围:Kp2为[0.83,2.86]。

在仿真中输入信号采用单位阶跃函数,令Q=1×1015,α=1,蚂蚁的总数m为40,循环次Nc=30,各个节点上的信息素初始值为100。寻优结果:Kp1=0.5599,Ti1=280.8627,Td1=78.3790,Kp2=1.8556。

图2 目标函数值优化曲线Fig.2 Objective function value optimization curve

为了分析本文提出的算法性能,将改进后的算法与传统的蚁群算法做了比较,得到系统的响应曲线如图1所示。可以看出改进的蚁群算法几乎不产生超调量,过渡时间比较短,能够更快地进入稳定状态。与蚁群算法整定出的PID参数相比,改进的蚁群算法整定出的PID控制器参数,具有良好的控制效果。两种算法同样迭代30次,其目标函数值变化如图2所示。改进蚁群算法虽然收敛速度相对较慢,但提高了收敛精度,具有更优的全局寻优能力。因此,基于莱维飞行的改进蚁群算法是合理可行的。

5 结束语

本文对蚁群算法进行了分析,将自然界中一些鸟类和果蝇的莱维飞行行为与蚂蚁搜索食物的过程相结合,从而达到优化目的;对过热汽温控制系统的PID参数优化进行了仿真测试,并与改进前的蚁群算法比较,结果表明改进的蚁群算法能很好地兼顾快速性和稳定性,有效提高算法的精度,避免陷入局部最优。

猜你喜欢
莱维蚂蚁控制器
Open Basic Science Needed for Significant and Fundamental Discoveries
基于莱维飞行蜉蝣优化算法的光伏阵列最大功率点跟踪研究
工商业IC卡控制器改造为物联网控制器实践
苍蝇为什么难打
我们会“隐身”让蚂蚁来保护自己
蚂蚁
创意“入侵”
蚂蚁找吃的等
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列