基于改进蝙蝠算法的模糊PID规则优化研究
2020-08-19杜学武张明新沙广涛伍秋玉
杜学武,张明新,沙广涛,,伍秋玉
(1.苏州大学 计算机科学与技术学院,江苏 苏州 215006; 2.常熟理工学院 计算机科学与工程学院,江苏 常熟 215500;3.中国矿业大学 计算机科学与技术学院,江苏 徐州 221116)
0 概述
模糊PID控制以模糊数学为理论,将规则条件和操作用模糊集表示,并将模糊控制规则存入知识库,控制系统根据实际响应运用模糊推理实现PID参数的最佳调整,以提高PID控制器性能[1-2]。PID控制器因其结构简单、稳定性好、可靠性高等优点而得到了广泛应用[3-5]。在系统设计时,作为模糊控制的核心模糊控制规则(以下简称模糊规则)在选取上主要依赖于人工的先验知识,当系统规模变得复杂时,模糊规则选取空间急剧加大,仅凭人工经验很难获得全局最优模糊规则。智能优化算法在解决非线性、复杂性的优化问题时具有明显优势,目前被应用于模糊规则的优化中。文献[6]利用自适应遗传算法对DFB激光器模糊PID温控系统的模糊规则进行优化,提高了PID控制算法的精确度。文献[7]采用遗传算法约简生成模糊规则,提出一种新的模糊规则优化方法。文献[8]使用粒子群优化水下潜器深度自适应模糊控制,使控制变量的超调量和稳态误差优于传统的模糊自适应控制。但上述方法通常采用特定的方式进行优化,没有考虑到模糊规则间的关联性,存在影响控制精度、易陷入局部最优等不足,限制了模糊规则中精确度的选取。
蝙蝠算法(Bat Algorithm,BA)是由文献[9]提出的一种启发式群智能算法。已有研究表明,与粒子群算法、遗传算法等算法相比,BA具有更好的搜索精度和计算效率[10],已经成功应用于工程科学领域中[11]。本文针对模糊控制规则间关联性的特点,对BA引入邻域搜索算子以提高搜索精度,再引入混沌变异算子避免算法陷入局部最优,从而得到改进的蝙蝠算法(Improved Bat Algorithm,IBA)。该算法采用离散修正算子对寻优后的解离散化得到优化后的模糊规则,并置入模糊PID控制器中以提高控制效率。
1 模糊PID控制
传统PID控制很难对变量复杂且没有对应数学模型的系统取得满意的控制效果。模糊PID控制器充分利用了人工调节实践经验,对PID参数进行实时调整,提高了鲁棒性。模糊PID控制器根据实际与期望控制值的误差e和误差变化率ec经过模糊控制器进行模糊化、模糊推理和解模糊后得到3个修正输出变量ΔKp、ΔKi和ΔKd,PID控制器由式(1)计算得到PID控制器的3个控制变量ΔKp、ΔKi、ΔKd,并对被控对象进行控制输出。模糊PID控制原理如图1所示。
图1 模糊PID控制原理Fig.1 Principle of fuzzy PID control
(1)
其中,Kp0、Ki0、Kd0为初始PID控制器设定值,Kp、Ki、Kd为调整后的最终值。
2 蝙蝠算法
BA是根据蝙蝠觅食原理提出的一种智能优化算法。在D维空间中,n只蝙蝠通过频率为fi、脉冲发射率为ri、响度为Ai的超声波对猎物进行搜索,根据返回的信息改变飞行速度vi和位置xi,在接近猎物过程时会逐渐调整脉冲发射率和响度。
蝙蝠飞行过程中频率fi、位置xi、速度vi的更新过程如下:
fi=fmin+(fmax-fmin)β
(2)
(3)
(4)
在进行局部搜索时,选取当前最优解位置进行随机搜索,蝙蝠位置的更新方式为:
xnew=xold+εAt
(5)
其中,xold为当前最优解,xnew为产生的新解,ε为属于[-1,1]的一个随机数,At为t时刻全部蝙蝠响度的平均值。
随着迭代的增加,为了更好地精确定位目标蝙蝠,实验会逐渐减小响度Ai,同时增大脉冲发射率ri,更新方式为:
(6)
(7)
(8)
通常令α=γ,具体参数取值需要根据实验确定。
3 蝙蝠算法的改进
BA中蝙蝠速度的更新方式不适用于模糊规则优化,因此需要对BA进行改进。首先,将ΔKp、ΔKi和ΔKd3个模糊控制表中的模糊规则编码。然后,根据自适应模糊规则间关联性的特点设计邻域搜索算子提高BA的搜索精度,同时引入混沌变异算子提高种群多样性避免算法陷入局部最优。最后,使用离散修正算子将不符合模糊规则语言值的变量离散化并修正至正确合理的范围内,得到IBA。
3.1 编码策略
由于需要同时优化ΔKp、ΔKi、ΔKd3个模糊规则,设计如图1所示的两输入三输出的模糊控制器输出ΔKp、ΔKi、ΔKd3个修正值对PID控制器修正,以误差e和误差变化率ec作为模糊控制器的二维输入,对于二维模糊控制系统,每个输入、输出通常采用7个语言值{NB,NM,NS,ZO,PS,PM,PB}表示,为了保证规则的完整性和一致性,将模糊规则表中输出变量按顺序排列,每一条规则用一位十进制数来表示,7个语言值分别使用{1,2,3,4,5,6,7}编码表示,模糊规则表中规则条数为49条,初始种群的每个个体的规则条数为147条,其中1条~49条表示ΔKp模糊规则序列,50条~98条表示为ΔKi模糊规则序列,99条~147条表示为ΔKd模糊规则序列。
3.2 相关操作算子
3.2.1 邻域搜索算子
模糊PID控制器在采样周期中先采集实际与期望控制值的误差e和误差变化率ec,并通过模糊控制器输出PID的修正值ΔKp、ΔKi和ΔKd,在优化时需要同时优化3个模糊控制规则表,3个模糊控制规则表中相同位置共同作用于一次PID控制调节,即相同位置中模糊规则与其他位置模糊规则相对独立。将3个模糊控制表中相同位置语言值组合成三维空间中坐标点,具体如图2所示。
图2 模糊规则表相同位置组合图Fig.2 Combination chart of the same position of fuzzy rule table
相同位置控制规则的寻优相当于在ΔKp、ΔKi和ΔKd组成的三维空间中向当前最优解方向搜索,在求解空间中,当前最优解附近往往存在多个局部最优点,而真实最优解可能位于其中,根据这一特点引入邻域搜索算子解决寻优精度低的问题。
蝙蝠进行位置更新时,以当前最优解为中心,在半径为r的邻域内进行随机搜索,邻域搜索算子的更新示意图如图3所示。
图3 邻域搜索算子位置更新示意图Fig.3 Schematic diagram of location update of neighborhood search operator
(9)
(10)
(11)
3.2.2 混沌变异算子
混沌是非线性系统中一种非周期运动现象,具有随机性、遍历性和规律性等特点[12-13],利用这种特性在当前最优点引入混沌变异算子提升算法搜索效率,提高种群多样性以防止算法陷入局部最优[14]。
常用的混沌映射方法有Logistic映射、Hybrid映射、光学双稳模型、Chebyshev映射等[15],通过随机性和初值敏感性对比,光学双稳态映射生成的混沌序列容易出现扎堆现象,Chebyshev映射随机性较差且分叉现象迟缓,Logistic映射与Hybird映射具有良好的随机性和初值敏感性,Hybrid映射较为复杂,本文采用简单高效的Logistic混沌映射函数,其数学表达式为:
Yn+1=Yn×μ×(1-Yn),μ∈[0,4],Yn∈[0,1]
(12)
其中,μ为Logistic参数,当Yn∈[0,1],3.569 946≤μ≤4时,Logistic映射处于混沌状态,此时μ取4,生成幅度为1的混沌序列。
映射函数和逆映射函数如式(13)、式(14)所示:
(13)
(14)
为了避免陷入局部最优,对当前最优解Xbest混沌变异。首先,按照式(13)映射到混沌映射函数定义域(-1,1),由式(12)迭代产生混沌序列。然后将生成的混沌序列按式(14)逆映射到原搜索区域得到新的最优个体,根据适应度函数更新当前最优位置,直至达到最大迭代次数。混沌变异流程如图4所示。
图4 混沌变异流程Fig.4 Procedure of chaotic mutation
3.2.3 离散修正算子
IBA寻优后得到的解为连续值,需要将连续值转换为模糊控制表中最接近的语言值进行模糊控制,在此应用离散修正算子将不符合模糊规则语言值中的变量离散化,并修正到正确合理的范围内,最接近的整数即为求得的模糊语言值;若超出范围则取最大语言值修正,超出语言值数量过多时说明模糊控制器控制值范围选取不合理,可以通过调整误差e或误差变化率ec范围以符合模糊控制器的调控能力。
(15)
3.3 性能指标函数
为了缩短调节时间,本文采用工程上具有良好实用性和选择性的ITAE指标[16]来评价模糊PID控制系统,参数评价指标函数的离散公式为:
(16)
其中,T为采样周期,k为采样时刻。
3.4 本文算法流程
本文算法主要包括以下10个步骤:
步骤1设置种群数目n、响度Ai、脉冲发射率ri、频率范围Qmin~Qmax、迭代次数N、空间维数d等参数。
步骤2初始化频率矩阵Q、速度矩阵v、对每只蝙蝠根据编码策略随机初始化编码并计算个体适应度fitness(xi),确定当前最优个体Xbest,并记录其位置信息。
步骤3利用式(10)计算每只蝙蝠的速度变化量dvi。
统一的管理机构是实现英语数字化教学资源整合的保证。各高校应根据各院校自己的实际情况,以MOOC理念为指导,成立英语数字化教学资源共建共享领导小组。建立统一的管理机构,加强各部门的协作交流,使各部门形成合力,避免人力、财力、物力的浪费以及低水平重复建设等问题。[2]此外,各高校还需要设立专门的英语数字化教学资源的评价管理机构,对英语数字化教学资源共建共享进行动态监测,对其进行跟踪、评估与完善,促进英语数字化教学资源共建共享的针对性和规范性,不断提高管理效率。
步骤4根据每只蝙蝠速度变化量dvi计算速度,并根据速度更新第t+1时刻的位置xt+1。
步骤5判断是否满足变异条件rand>ri,如果满足混沌变异算子搜索,则混沌变异更新蝙蝠全局最优位置Xbest,否则转至步骤6。
步骤6使用式(15)离散修正算子对新的位置xt+1修正并计算适应度。
步骤7若rand>Ai且fitness(xi) 步骤8判断新位置的适应度是否优于当前最优适应度,若fitnessbest≤fitnessnew,则更新当前最优位置和最优适应度值,否则转至步骤9。 步骤9判断是否满足最大迭代次数,若满足则结束迭代,则转至步骤10,否则转至步骤3。 步骤10最小ITAE值对应的编码规则即为全局最优解,输出全局最优解,并采用最优模糊控制规则对模糊PID控制器进行控制。 本文以典型工业控制系统进行实验验证,在Matlab R2012b中进行仿真。验证了PSO算法、GA算法、IAC算法、本文算法4种算法的寻优能力,利用4种算法对模糊规则优化,并分别对一阶系统、二阶系统、三阶系统仿真,其次与PID控制、模糊控制、经验模糊规则模糊PID控制和IBA优化模糊规则的模糊PID控制对比,得出实验结论。 为了分析本文算法跳出局部极值和全局寻优能力,从Benchmarks测试函数集中选取Sphere、Rosenbrock、Rastrigin与Schaffer 4个常用函数进行测试,Sphere、Rosenbrock为单峰连续优化函数,常用于测试算法收敛速度,Rastrigin、Schaffer为多峰连续优化函数,常用于测试算法跳出局部极值和全局寻优能力,其定义、搜索范围于文献[17]中获取。 本文算法的实验参数设置为:种群个数n=50,响度A=0.25,脉冲发射率r=0.5,频率下限Qmin=0,频率上限Qmax=1,响度衰减系数α=0.9,脉冲发射频率增加系数γ=0.9;PSO算法的实验参数设置为:粒子数量n=50,速度下限vmin=-2,速度上限vmax=2;GA算法的实验参数设置为:种群规模M=50,交叉率ζ=0.5,变异率ψ=0.1。其中,固定算法最大迭代次数为500。在每个测试函数上独立运行30次,表1统计了各算法的优化平均值、标准方差等性能指标。 表1 标准测试函数的寻优性能比较Table 1 Comparison of optimization performance of standard test functions 由表1可以看出,本文算法除了在Rastrigin函数下稳定性略差之外,不管是单峰测试函数还是多峰测试函数,本文算法在30维问题上均表现出了较好的搜索性能,相比于PSO算法和GA算法,本文算法在4组测试函数上具有良好的寻优精度和稳定性,验证了本文算法跳出局部极值和全局寻优的能力。 通常工业过程一般可以等效成n阶系统加上典型的非线性环节,如死区、饱和、纯延迟等,采用典型一阶系统、二阶系统与三阶系统作为测试函数,具体如表2所示。控制执行结构具有0.07的死区和0.7的饱和区,采样时间间隔取T=0.01。模糊PID控制器中隶属函数采用等腰三角形隶属函数,控制偏差e和偏差变化率ec范围都为[-6,6]。固定ΔKp、ΔKi、ΔKd输出范围、迭代次数等,并与PSO算法、文献[18]中的GA算法、文献[19]中的IAC算法进行比较。 表2 系统测试函数Table 2 System test functions 实验中各参数设置如下:迭代次数Niter=100,编码长度d=147;本文算法:种群个数n=20,响度A=0.25,脉冲发射率r=0.5,频率下限Qmin=0,频率上限Qmax=1,响度衰减系数α=0.9,脉冲发射频率增加系数γ=0.9;GA算法:种群规模M=50,交叉率ζ=0.5,变异率ψ=0.1;PSO算法:粒子数量n=50,速度下限vmin=-2,速度上限vmax=2;IAC算法:蚂蚁数量m=50,信息素因子α=2,启发函数因子β=3.5,信息素挥发因子ρ=0.3。 采用MATLAB仿真软件分别用本文算法、PSO算法、GA算法、IAC算法4种算法对表2中控制系统的模糊PID控制器中模糊规则优化,使ITAE指标向减小的方向迭代,各算法的收敛曲线如图5所示。 图5 4种算法的收敛曲线Fig.5 Convergence curves of four algorithms 在迭代开始时,4种算法都能向ITAE减小的方向快速接近,随着迭代的继续进行,本文算法更易跳出局部极值,这是由于蝙蝠更新时对一次调节的模糊控制表中当前寻优邻域混沌迭代搜索,其他算法没有考虑模糊控制表间的关联性从而影响算法寻优效率,相比GA、PSO、IAC算法,本文算法的全局寻优能力有所提升。 本文算法首先对ΔKp、ΔKi和ΔKd3个模糊规则表编码,以ITAE目标函数评价每只蝙蝠的适应度,确定当前最优位置,其他蝙蝠使用邻域搜索算子在当前最优位置邻域方向更新个体位置,若满足变异条件,对当前最优位置混沌变异操作,避免算法陷入局部最优,当算法收敛时,目标函数ITAE接近算法所能优化的最小值,其对应的编码策略即为优化后的模糊规则。本文算法对二阶系统F2迭代100次后得到如表3~表5所示的模糊控制规则表,并载入知识库作为优化后的模糊控制规则。 表3 本文算法优化后的Δkp模糊控制规则Table 3 Fuzzy control rules Δkp optimized by the proposed algorithm 表4 本文算法优化后的Δki模糊控制规则Table 4 Fuzzy control rules Δki optimized by the proposed algorithm 表5 本文算法优化后的Δkd模糊控制规则Table 5 Fuzzy control rules Δkd optimized by the proposed algorithm 将PSO算法、GA算法、IAC算法、本文算法得到的最优控制规则用于模糊PID控制器,模糊化采用Mamdani推理方法,清晰化采用面积中心法[20],将优化后的模糊控制规则分别用于表2的控制系统中进行仿真,并在控制系统稳定时对其扰动,各控制系统输出响应如图6所示。 图6 4种算法优化模糊规则对控制系统输出响应Fig.6 Four algorithms optimize the output response of fuzzy rule control system 由4种算法对比可见,相比GA算法和IAC算法,本文算法与PSO算法优化的模糊PID控制器超调量及调节时间均较小,且在扰动时能快速达到稳态。 为充分验证本文算法优化模糊规则的效果,分别采用PID控制、模糊控制、文献[21]中经验模糊规则模糊PID控制和本文算法优化模糊规则的模糊PID控制对表2中的二阶系统F2控制,设置稳态为1.5,控制输出结果如图7所示。 图7 4种控制方案对控制系统F2输出响应Fig.7 Four control schemes respond to the output of the control system F2 通过对比发现,与其他3种控制方案相比,本文算法在超调量、调节时间上有明显优势,且稳态误差小,说明本文算法对模糊PID控制器中模糊规则优化的有效性。 本文引入邻域搜索算子和混沌变异算子对BA进行改进,提高BA的寻优精度和全局搜索能力,并应用于模糊PID控制器的模糊规则优化中,将优化后的模糊PID控制器应用到3种典型系统控制中。仿真结果表明,本文算法优化后的控制系统与粒子群算法、遗传算法优化和改进蚁群算法的控制系统相比调节时间较小,超调量变得极小,提高了控制精度和计算效率,且施加外部扰动时能够快速恢复稳定,具有较强的自适应性。实验目前还只处于理论仿真阶段,后续会在实际应用中来验证本文算法的效率与实用性。4 仿真结果与分析
4.1 本文算法寻优能力分析
4.2 本文算法优化模糊规则分析
4.3 系统仿真结果分析
5 结束语