改进人群搜索算法优化的直线电机模糊PID控制
2022-05-06汪谦松
汪谦松, 夏 链, 韩 江
(合肥工业大学 机械工程学院,安徽 合肥 230009)
直线电机在执行高速、高精的直线运动时,相对“旋转电机+滚珠丝杆”的运动方式革除了中间传动环节,提高了机械传动效率,减小了传动误差,因此直线电机在许多领域均得到了广泛的应用。但由于没有中间环节,外界的任何扰动将直接作用于直线电机,增加了控制难度,同时直线电机是个时变的、强耦合的非线性系统,单纯采用传统PID控制达不到理想的效果,直线电机的精确控制是目前电机控制领域要解决的问题之一[1]。国内外也有不少学者对其进行了研究。文献[2]针对直线电机的推力波动和非线性摩擦力,提出一种滑模自适应控制策略,改善了直线电机的自适应性;文献[3]为减小外界扰动对直线电机的干扰,设计一种自适应前馈补偿器,提高了控制性能;文献[4]采用遗传算法对直线电机的位置环和速度环参数进行联合整定,与单独整定比较,跟踪误差减小了40%以上。
模糊控制是通过模拟人的思考方式,对控制对象进行模糊推理来解决控制系统中存在的不确定性问题,很适合直线电机的伺服系统[5-7]。本文在位置环PID控制的基础上,结合模糊控制思想,设计了模糊PID控制器,并通过改进人群搜索算法(improved seeker optimization algorithm,ISOA)对模糊PID控制器的参数进行优化,从而提高了直线电机的快速性和稳定性。
1 永磁同步直线电机数学模型
在d-q坐标系下,永磁同步直线电机的电压平衡方程为:
(1)
其中:ud、uq分别为d、q轴的电压;id、iq分别为d、q轴的电流;Ld、Lq分别为d、q轴的电感;ω为电角速度;Rs为绕组;ψf为磁链。
各种扰动框图如图1所示。
图1 直线电机干扰力模型
在永磁同步直线电机正常工作过程中受到的干扰很多,如负载变化、摩擦力、纹波推力、振动以及参数摄动等[8-10],这些干扰都会导致直线电机运行的平稳性降低。根据牛顿第二定律,永磁同步直线电机的动力学方程可表示为:
(2)
Fd(t)=Frip(x)+Fload(t)+Fn(t)
(3)
本文采用id=0的电流矢量控制策略,简化永磁同步直线电机的模型,其框图如图2所示。
图2 永磁同步直线电机模型框图
2 模糊PID控制器的设计
2.1 传统PID控制
PID控制是最早使用的控制方法之一,由于PID控制具有简单、控制稳定性好等优点,被广泛应用于各个领域。
PID控制时域表达形式为:
(4)
其中:e(t)为偏差量;u(t)为输出量;Kp、Ki、Kd均为PID参数。
2.2 模糊PID控制
模糊控制对时变的、参数不确定的非线性系统具有很好的控制效果[6],因此针对直线电机位置环控制引入二维模糊控制器,其原理如图3所示。
图3 二维模糊PID控制原理框图
从图3可以看出,模糊PID控制器的原理是将偏差e和偏差变化率ce通过模糊化后转为模糊量;然后经模糊推理得到模糊输出量;最后对模糊输出量进行解模糊操作,转化为初始PID参数K1p、K1i和K1d的调节量ΔKp、ΔKi和ΔKd,最终作用于系统位置环的PID参数Kp、Ki和Kd分别为:
(5)
模糊控制器一般有4个模块,即模糊化、模糊规则、模糊推理和解模糊。
模糊化指将控制系统输入的精确量转化为计算机可以识别的模糊量。本文将系统输入和输出的模糊语言变量均设置为7个,即{NB,NM,NS,ZO,PS,PM,PB},这样既能保证模糊推理的速度,也可以清晰准确地描述输入和输出变量;设置输入和输出的模糊论域均为[-3,3];选择灵敏度
较好的三角形隶属度函数具有较好的灵敏度,因此将其作为输入和输出变量的隶属度函数,如图4所示。
图4 输入和输出变量的隶属度函数
模糊规则是根据专家推理和人类在控制领域得到的一系列经验相结合的产物,其语句通常用一些关系词组合表示,即
ifeisA1andceisA2then ΔKuisB,
其中:A1、A2均为输入变量的模糊集合;B为输出变量的模糊集合。
参考专家经验,结合实验平台PID参数的调试经验,建立模糊规则见表1所列。
表1 ΔKp、ΔKi和ΔKd的模糊规则
模糊推理是模糊控制器的核心,是依据模糊规则来推理出合适的输出量,其推理方式的合理性将决定着控制系统性能的好坏。Mamdani推理法是通过采用取小运算来计算模糊关系,该方法相对来说比较简便,能对控制输出量进行线性控制,是目前应用最多的一种推理方法。
解模糊是将模糊推理后得到的模糊量转化为清晰量。本文选择目前使用最多的面积中心(重心)法作为解模糊化算法。
3 ISOA优化模糊PID控制
模糊PID控制器中的量化因子和比例因子虽然可以根据相关公式获得,但是往往使用这些计算来的参数控制效果并不好,而人工试凑费时费力,因此本文提出采用ISOA对这5个参数进行寻优,获得最佳的控制参数,以提高直线电机系统的控制性能。
3.1 人群搜索算法
人群搜索算法(seeker optimization algorithm,SOA)是对人的搜索行为进行研究的基础上,得出的一种新型的启发式优化算法。
3.1.1 搜索步长
通过算法的不确定性建立隶属度函数与搜索步长的关联。采用高斯隶属度函数来表示搜索步长的模糊变量,即
(6)
其中:αij为每个搜索者i在j维空间的搜索步长;u(αij)为隶属度函数;δij为参数。当步长αij∉[-3δij,+3δij]时,隶属度函数的值小于0.011 1,将忽略不计,因此,常设最小隶属度值umin=0.011 1,最大隶属度umax=0.95。
将各搜索者的适应度值按递减的顺序排序,可将函数值转为自然数1~S的模糊输入,适应度目标函数的模糊输入“小”的隶属度函数如下:
i=1,…,S
(7)
uij=rand(ui,1),j=1,…,D
(8)
其中:ui为适应度值i的隶属度;uij为j维搜索空间适应度值i的隶属度;Ii为适应度值降序排列后的编号;umin、umax为最小、最大隶属度值;rand(ui,1)为[ui,1]上的随机数。
根据(7)式和(8)式,结合不确定性行为部分,得出步长计算公式如下:
(9)
其中:w为惯性权重;xmin、xmax分别为最小、最大适应度值对应的位置。
3.1.2 搜索方向
第i个搜索者的利己方向di,ego、利他方向di,alt以及预动方向di,pro,可分别表示为:
di,ego(t)=pi,best-xi(t)
(10)
di,alt(t)=gi,best-xi(t)
(11)
di,pro=xi(t1)-xi(t2)
(12)
其中:pi,best为当前最佳位置;gi,best为历史最佳位置;xi(t1)、xi(t2)为{xi(t-2),xi(t-1),xi(t)}中的最佳位置。
搜寻者在搜索过程中需要考虑的因素较多,通常确定搜索方向dij的公式为:
dij(t)=sign(wdi,pro+φ1di,ego+φ2di,alt)
(13)
其中:φ1、φ2为[0,1]区间上的随机实数。
3.1.3 位置更新
在搜索者确定搜索步长和方向后进行位置更新,其计算公式为:
Δxij(t+1)=αij(t)dij(t)
(14)
xij(t+1)=xij(t)+Δxij(t+1)
(15)
3.2 改进人群搜索算法
虽然SOA已经具有很好的优化效果,但也存在着陷入局部最优、搜索精度不高等缺点,为解决这些问题,还需要对算法进行改进,以提高算法的寻优能力。
3.2.1 模拟退火思想的引入
模拟退火(simulated annealing,SA)算法具有很强的突跳能力,能够有效地避免该算法在搜索过程中陷入局部最优。现定义初始温度T0:
(16)
其中:fmin、fmax为初始种群的最小、最大适应度值。
退火温度可根据经典降温方式确定,具体公式如下:
(17)
其中:Tt为第t次迭代时的温度。
每一个搜索者位置被选择的概率pi可根据Metropolis准则进行确定,具体公式如下:
(18)
其中:Ti为当前的温度;f(i)、f(j)为当前位置的适应度值和新位置的适应度值,Δf=f(i)-f(j)。当Δf<0时,以概率1接受新位置;当Δf≥0时,以概率exp(-Δf/Ti)接受新位置。
3.2.2 惯性权重非线性化
由文献[11]可知,惯性权重采用非线性递减比线性递减具有更快的收敛速度,且寻优质量更高。故本文提出一种基于椭圆曲线的惯性改进策略,在迭代初期,w递减速度较慢,维持较大值,算法有着较强的全局搜索能力;在迭代中期,w迅速递减;在迭代后期,w一直保持较小值,算法具有较强的局部搜索能力。改进前后惯性权重w的对比如图5所示。
图5 改进前后惯性权重w的对比曲线
改进后惯性权重w的表达式如下:
(19)
其中:Δw=(wmax-wmin)/2;t为当前迭代次数;Tmax为最大迭代次数。
3.2.3ISOA优化步骤
ISOA优化步骤如下:
(1) 初始化,产生S个初始位置。
(2) 计算、评价每个搜索者位置的适应度函数值,将第i个搜寻者的位置置于个体最佳位置gbesti,将所有成员中最好的位置置于全局最佳位置zbest。
(3) 设定初始温度T0。
(4) 计算当前温度下的所有搜索者个体的适应度值,根据Metropolis准则从这些个体的最佳位置中选择一个作为全局最佳位置的替代量。
(5) 计算每一个搜索者i在j维空间的搜索方向和搜索步长,更新每个搜索者的位置。
(6) 根据个体最佳适应度值f(gbesti)判断每个搜索者所到位置是否是个体最佳位置gbesti,若是,则进行个体最佳位置更新。
(7) 根据全局最佳适应度值f(zbest)判断每个搜索者所到位置是否是全局最佳位置zbest,若是,则进行全局最佳位置更新。
(8) 进行降温操作,t→t+1。
(9) 判断是否满足结束优化条件(t≥Tmax),若是,则停止搜索,得到最佳位置zbest和最佳适应
度值f(zbest);否则返回步骤(2)。
(10) 结束寻优。
3.2.4ISOA的测试
为了验证ISOA具有更佳的搜索性能,采用3个经典测试函数进行寻优测试,设置测试函数的搜索参数见表2所列。
表2 3种测试函数的搜索参数
设置最大迭代次数为200,分别采用SOA和ISOA对3种函数分别寻优30次,得到的结果见表3所列。
表3 SOA和ISOA寻优结果
从表3可以看出,ISOA和SOA虽都具有很好的搜索性能,但ISOA比SOA跳出局部最优的能力更强,搜索精度也优于SOA。
将ISOA用于解决永磁同步直线电机模糊PID控制的参数优化,以时间t乘误差e(t)积分准则作为适应度函数,具体如下:
(20)
在Simulink中分别建立直线电机传统PID控制和ISOA优化的模糊PID(ISOA+FPID)控制的仿真模型,以单位阶跃为系统输入,得到响应曲线如图6所示。
图6 系统单位阶跃响应曲线
ISOA优化中适应度值随迭代次数变化的曲线如图7所示。
从仿真结果可看出,采用ISOA优化的模糊PID(ISOA+FPID)控制比传统PID控制在性能上有明显提升,其上升时间和稳态误差上相比传统PID控制分别减少了62.5%和96.7%,进一步验证了本文改进的ISOA算法的优越性及实用性。
图7 适应度函数迭代曲线
4 实验验证
在基于PMAC运动控制卡的直线电机实验平台验证算法的实用性,通过PEWIN32 PRO2软件进行伺服算法的编写、调试,给定阶跃运动和正弦运动,验证算法的实用性和优越性。直线电机实验平台如图8所示。
图8 直线电机实验平台
4.1 阶跃运动对比实验
在空载的情况下,针对直线电机实验平台X轴的位置环分别采用传统PID控制和本文提出的ISOA+FPID控制,设置阶跃信号的步长为1 000 cts(1 cts=0.1 μm),步长时间为500 ms,对比实验结果如图9所示。
图9 2种控制算法的阶跃运动实验结果
从图9可以看出,给定阶跃信号,采用传统的PID控制,直线电机伺服控制系统的超调量为13.7%,调整时间为72 ms,最终稳态值为6.1 cts;采用本文提出的ISOA+FPID控制策略,系统的超调量为7.2%,为前者的52.5%,调整时间为52 ms,为前者的72.2%,稳态误差更是减小到0.9 cts,仅为前者的15.7%。上述结果表明,ISOA+FPID控制与传统PID控制相比,直线电机控制系统的响应速度有着明显的提高,超调量减小,且静态特性也变得更好,控制性能得到了显著的提高。
4.2 正弦运动对比实验
在空载的情况下,针对直线电机实验平台X轴的位置环分别采用传统PID控制和本文提出的ISOA+FPID控制,设置正弦运动f(t)=1 000 sin(2πt),为了减少系统误差,其运动的起始位置与上述实验一致,对比实验结果如图10所示。
图10 2种控制算法的正弦运动实验结果
从图10可以看出,采用传统的PID控制,直线电机伺服控制系统的跟踪误差变化范围为[-31,49]cts;采用本文提出的ISOA+FPID控制策略,系统的跟踪误差变化范围为[-13,19]cts,为前者的40.0%。上述结果表明,ISOA+FPID控制策略相对传统PID控制,直线电机控制系统的跟踪误差有了明显的减小,表现出良好的动态性能。
5 结 论
本文将模糊控制技术与PID控制相结合,同时将ISOA用于优化模糊PID的参数,通过单位阶跃信号仿真,结果表明,ISOA+FPID控制相比传统PID控制,系统的响应速度和跟踪误差均有明显的改善。
在直线电机实验平台上进行阶跃运动实验,采用ISOA+FPID控制,系统的超调量和调整时间较传统PID控制分别减少了47.5%、27.8%,稳态误差降低了84.3%;进行正弦运动实验,ISOA+FPID控制的跟踪误差比传统PID控制降低了60.0%,系统的控制系统得到明显提升,进一步验证了算法的有效性。为进一步减小直线电机的跟踪误差,参考文献[12],后续研究中将尝试引入前馈控制技术,同时利用ISOA对前馈控制器参数和模糊PID参数进行联合整定。