曹志松:博士研究生。 基于混合粒子群算法的PID参数寻优 曹志松,朴英 (清华大学 航天航空学院,北京 100084) 摘要: 提出一种将单纯形法SM与粒子群算法PSO结合的混合粒子群算法HPSO。通过对3种常用测试函数进行优化和比较,结果表明HPSO比PSO和SM都更容易找到全局最优解。然后用HPSO优化算法对某涡扇发动机PID控制中的参数进行优化并将结果与混合遗传算法HGA的结果进行比较,结果表明HPSO在找寻最优解效率上好于HGA。且算法实现简单,具有很高的可靠性,是一种PID控制参数寻优的有效方法。 关键词: 粒子群优化算法; 单纯形算法; 航空发动机; PID控制; 遗传算法 中图分类号:TP391 文献标识码:B Optimization Methodology of PID Parameters for Aeroengines Based on Hybrid PSO CAO Zhi-song, PIAO Ying (School of Aerospace, Tsinghua University, Beijing 100084, China) Abstract: A hybrid particle swarm optimization algorithm (HPSO) was proposed based on PSO and simplex method (SM). HPSO, PSO and SM are used to resolve three widely used test functions’ optimization problems. Results show that HPSO has greater efficiency and better performance than PSO and SM. HPSO is used to optimize the aeroengine PID controller parameters, and the result indicates that HPSO can obtain the optimum solutions more easily than HGA. Although very easy to implement, this HPSO is an efficient way to optimize the PID controller parameters. Key words: particle swarm optimization(PSO); simplex algorithm(SM); aeroengine; PID control; genetic algorithm(GA) 1 引言 工程实际中的条件优化问题本质上可以转换为函数优化问题,对于函数优化问题,现有许多成熟的解决方法,如间接寻优法, 梯度法, 爬山法等。而在工程上单纯形法、专家整定法应用较广, 虽然两者都具有良好的寻优特性, 但却存在着一些弊端, 单纯形法对初值比较敏感, 容易陷入局
部最优解, 造成寻优失败, 专家整定法则需要太多的经验, 不同的目标函数对应不同的经验,而整理知识库又是一项长时间的工程。为了解决这一问题可以采用具有全局搜索能力的算法来解决,如遗传算法GA,粒子群算法PSO等。 PSO算法是美国Kennedy和Eberhart博士受鸟群觅食行为的启发,于1995年提出的一种生物进化算法[1]。PSO算法简单,易于实现。但是它的局部搜索能力比较差,不能有效求解高维、复杂
的工程问题。本文提出了一种将单纯形法SM与粒子群算法PSO结合的混合粒子群算法HPSO。它将SM有机地融入PSO中,不但可以减少计算规模,而且有效的增强了PSO算法的局部搜索能力,提高了算法的鲁棒性能。 2 HPSO算法 PSO是一新兴的全局优化方法,但是它的局部搜索能力比较差,不能有效求解高维、复杂的工程问题,将PSO与局部搜索技术结合起来;在搜索过程中,以PSO的优化结果作为局部搜索的起点、利用局部搜索的结果指导PSO的搜索方向,双方有机的结合,达到提高搜索效率的目的。SM是确定性的单目标优化方法, SM利用n维空间中的n+1个顶点的多面体的反射、内缩、缩边等性质进行优化,从一个优良的初始点出发,可以迅速地得到单目标的局部最优解[2]。HPSO算法将SM方
法和PSO方法混合,形成优势互补,在优化n维变量时,从PSO搜索的结果中选择包含最优粒子在内的空间位置互不相同的n+1个粒子作为SM的顶点、再用SM搜索若干步,并用搜索后的各顶点代替当前适应值最差的n+1个粒子,然后进行PSO的下一步搜索。 另外,通过分析标准PSO算法可知,当w较大时,PSO算法具有全局收敛性,但运算量很大; 2
当w较小时,算法容易收敛,但容易陷入局部最优。本文对w值的选取采用线性递减算法[3],w随着粒子群的迭代次数线性减少。求解w的线性公式如下:
maxmaxminmax
()iterwwwwiter=−−
(1)
wmax、wmin分别为最大惯性权重和最小惯性权重。iter为当前粒子的迭代次数,itermax为粒子群算法
开始设置的最大迭代次数。通过分析公式(1)可以知道,较大的wmax有利于大范围的搜索,但是粒子在搜索过程中就可能将一些空间忽略掉,可能影响到最优解的出现。反之,较小的wmax有利于局部小范围搜索,但可能导致找到的是局部最优解。 HPSO的算法流程如下所示: (1)初始化粒子群,包括粒子群的大小、随机位置和速度,设置算法的最大迭代次数。 (2)按优化函数评价各粒子的初始适应值。 (3)根据式(1)和式(2)更新粒子的速度和位置;根据(3)式计算w值。 (4)按优化函数计算出每个粒子的对应适应值。 (5)更新并储存各粒子的个体历史最优位置和个体历史最优适应值;更新并储存粒子群的全局历史最优位置和全局历史最优适应值。 (6)从PSO搜索的结果中选择包含最优粒子在内的空间位置互不相同的n+1个粒子作为SM的顶点、再用SM搜索若干步,用搜索后的各顶点代替当前适应值最差的n+1个粒子。 (7)更新并储存回代粒子的个体历史最优位置和个体历史最优适应值,更新并储存整群的全局历史最优位置和全局历史最优适应值。 (8) 若满足停止条件(适应值误差小于设定的适应值误差限或迭代次数超过最大允许迭代次数),搜索停止,输出全局历史最优位置和全局历史最优适应值为所求结果。否则,返回(3)继续搜索。 3 测试函数的优化与结果讨论 3.1 测试函数介绍 测试函数1:
21min()(10cos(2)10)5.125.12niiiifxxxxπ==−+
−≤≤∑
(2) 测试函数2: 5522
12121211
12
min(,){cos[(1)]}{cos[(1)}0.5[(1.42513)(0.80032)]10,10iifxxiixiiixixxxx===++∗++++++
−≤≤∑∑
(3) 测试函数3: 2
11min()cos()14000600600nniiii
i
xxfx
i
x==
=−+
−≤≤∑∏
(4) 以上测试函数都是很难的多峰值函数。第1个测试函数为Rastrigrin函数,此函数有一个全局最小点(0,0),最小值为0。第2个是Shubert函数,此函数有760个局部极小点,其中只有一个(-1.42513,-0.80032)为全局最小,最小值为-186.7309。第3个为Griewank函数,此函数有一个全局最小点(0,0),最小值为0。 3.2 优化结果及讨论 3
本文同时用HPSO和PSO对以上函数进行优化。寻优时,最大迭代次数都为500,粒子个数都为30,ω都从1.5衰减到0.05,c1=c2=2.0,HPSO中,每一步PSO后SM搜索的迭代次数设为50,由于HPSO、PSO 是随机搜索算法,每次搜索的结果可能不同,单凭一两次搜索的结果不能说明搜索的有效性。所以本文从概率角度来对比算法性能,优化时两种算法分别对3个测试函数都进行100次独立测试,测试结果的统计汇总对比见表1。 由表1可知,在算法参数相当的情况下,HPSO寻优时获得最优解的概率明显高于PSO,HPSO的优化效率和优化性能明显提高。 表1 测试函数优化结果统计对比 达最优概率(%) 目标函数平均计算次数 优化函数
HPSO PSO HPSO PSO Rastrigrin函数100 47 8502 30871 Shubert函数 98 7 8176 41278 Griewank函数 93 25 22137 42075 4 在某型航空发动机的PID参数优化中的应用 应用HPSO进行PID控制器参数优化时, 首先要确定P ID控制器参数的范围,初始化粒子群的大小、随机位置和速度,设置算法的最大迭代次数。对于一个控制系统, 衡量其品质的指标有3个方面, 即稳定性、准确性、快速性。为此选择系统的超调量、稳态误差和上升时间的加权作为系统的目标函数[4]。最优的控制参数指在满足约束条件下使目标函数最小时所对应的控制器参数。
4.1 仿真模型及目标函数的选取 以某涡扇发动机主供油量Wf 对风扇转速Nf的线性化数学模型为被控对象, 则被控对象的传
递函数为
2()1.1926.273()()7.16712.84ffNss
Gs
Wsss
+==
++ (5)
式(5)为在0高度0马赫数下利用拟合法[2]建立的增量形式的线性化模型。为了简单起见, 省略了增
量符号△。发动机主供油量执行机构被视为时间常数为0.1s 的惯性环节, 则闭环系统结构如图1 所示。
图1 闭环系统结构图 优化过程中采用离散系统进行设计, 根据涡扇发动机非线性模型要求, 取30ms为其采样步长,以转速Nf的阶跃指令为输入信号。采用误差绝对积分性能指标作为目标函数。为了防止控制能量过大, 在目标函数中加入控制输入的平方项。选用式(6) 作为参数选取的最优指标 21230(|()|())frJwetwWtdtwt∞=++∫
(6)
式中: e(t)为系统误差;Wf为控制器输出的供油量; tr为上升时间; w1,w2,w3 为相应的权值。为避免超调, 采用了惩罚功能, 即一旦产生超调, 将超调作为最优指标的一项, 此时最优指标为 212430(|()|()|()|)frJwetwWtwetdtwt∞=+++∫
e(t)<0 (7)
式中w4为产生超调后的附加系统误差权值, 其值应大于w1。 4.2 仿真结果和分析 下面对本例分别采用混合粒子群算法HPSO、混合遗传算HGA时的运算效率进行对比。HPSO、HGA的种群大小都设置为30,HGA采用GA与单纯形法相结合,随机联赛选择[5],交叉概率0.9,变异概率