基于云模型人工鱼群算法的模糊优化设计
2021-09-13王林军杜义贤
高 翔,王林军,杜义贤,李 响,徐 柳
(1.三峡大学水电机械设备设计与维护湖北省重点实验室,湖北宜昌443002;2.三峡大学机械与动力学院,湖北宜昌443002)
针对机械结构的模糊优化设计[1-3],许多学者都开展了相关研究,并取得了大量成果。例如:Qiu等[4]利用SVR(support vector regression,支持向量回归)算法构造了等效极限状态方程,并采用解耦算法求解了同时包含区间变量和模糊变量的可靠性优化设计问题;Huang等[5]通过度量函数来自动设置目标函数的权重,并对简支工字梁和齿轮箱进行了模糊多目标优化设计;Li 等[6]改进了NSGA-II(non-dominated sorting genetic algorithm-II,非支配排序遗传算法-II)算法,并对旋转导向钻井系统进行了多目标模糊优化;王德浩[7]通过APDL(ANSYS parametric design language,ANSYS 参数化设计语言)调用ANSYS DesignXplorer 内置的MOGA(multi-objective genet‐ic algorithm,多目标遗传算法),对大载重集装箱进行了多目标模糊优化设计;李召等[8]基于混沌理论对布谷鸟算法进行了改进,并对永磁联轴器进行了模糊多目标优化设计;熊勇[9]提出了一种单目标函数权重的更新方法,将多目标优化问题转化为单目标优化问题,并基于遗传算法求解了两级行星汽车轮边减速系统的模糊多目标优化设计问题。
但是,文献[6-9]中所用优化算法的全局寻优能力较差,而李德毅等[10]提出的云模型中的正向云发生器可显著提高上述优化算法的全局寻优能力和收敛速度。对于人工鱼群算法的改进,宋晓[11]将以当前解作为云模型期望时产生新解的过程称为云变异,将以2 个当前解的加权平均和作为云模型期望时产生新解的过程称为云学习,并将云变异因子和云学习因子引入人工鱼群算法;王明永[12]通过隶属度与递减数列来选择随机行为和云模型正向云发生器的执行,使得人工鱼群算法前期通过随机行为进行全局搜索,后期通过云模型正向云发生器进行局部搜索。
鉴于云模型已广泛应用于优化算法的改进,笔者利用云模型中的正向云发生器对人工鱼群算法进行改进(称为云模型人工鱼群算法);将当前最优解作为云模型的期望,以提高收敛速度,并同时采用随机行为和正向云发生器,以结合2 种方法的优势。然后,结合增广乘子法和云模型人工鱼群算法,对直齿圆柱齿轮和内燃机气门弹簧的模糊优化问题进行求解。该优化方法的优势在于:1)常用的罚函数法的收敛性依赖于罚因子的初始值,而本文采用的增广乘子法的收敛性不依赖于罚因子的初始值;2)直接调用MATLAB软件中内置的距离函数pdist2来计算人工鱼之间的距离,简化了原人工鱼群算法的代码;3)采用模糊综合评判来确定相关参数的最优水平截集,可实现机械零部件的模糊优化设计。
1 增广乘子法
为了更方便地求解具有约束的优化模型,提出了罚函数法,其被广泛应用于优化问题的求解。但是,当罚因子取值不合适时,罚函数法不收敛。为此,采用增广乘子法对外罚函数法进行改进[13]。
对于具有L个不等式约束的数学模型,可将其表示为:
其中:x为设计变量;f(x)为目标函数;gk(x)为第k个约束条件;Rv为v个设计变量对应的实数域。
引入松弛变量y,将不等式约束条件转化为等式约束条件,则上述数学模型可转化为:
基于上述数学模型,构造增广乘子函数[13]:
式中:ζk为第k个约束条件对应的拉格朗日乘子;η为罚因子。
当∇Mζ(x,y,ζ,η) =0 时,增广乘子函数取得极值,即当时,有:
则上述数学模型可转化为:
2 云模型人工鱼群算法
2002年,李晓磊等[14]提出了一种模仿鱼群追尾、群聚和觅食等行为的人工鱼群算法,该算法可用于寻找函数的最优值[15-16]。
2.1 群聚行为
设人工鱼i与人工鱼j之间的距离为dij,若dij小于当前视野Vi,则人工鱼j在人工鱼i的视野范围内。假设当前人工鱼i的视野Vi内有nf条人工鱼,且视野内所有人工鱼所在位置的平均值为Pmean,对应的适应度为Fmean。若当前人工鱼i的适应度Fi满足,则群聚行为后,人工鱼i所在的位置Pi,swarm为:式中:Pi为人工鱼i的当前位置;prand为[0,1]内的随机数;Si为人工鱼i的当前步长。
若位置Pi,swarm对应的适应度Fi,swarm小于当前的适应度Fi,则更新人工鱼i的位置和适应度。
2.2 追尾行为
?人工鱼i的适应度Fi满足,则追尾行为
当前人工鱼i视野内有nf条人工鱼,且视野内最佳个体的位置为Pmin,对应的适应度为Fmin。若当前后,人工鱼i所在的位置Pi,follow为:
若位置Pi,follow对应的适应度Fi,follow小于当前的适应度Fi,则更新人工鱼i的位置和适应度。
2.3 觅食行为
在觅食行为初期,向视野Vi内任意方向运动一步后,人工鱼i所在的位置Pi,prey为:
若位置Pi,prey对应的适应度Fi,prey小于当前的适应度Fi,则更新人工鱼i的位置和适应度,更新后Pi,prey为:
若更新后的适应度Fi,prey仍小于当前的适应度Fi,则不断更新人工鱼的位置和适应度,当觅食次数达到ntry时,觅食行为终止。
2.4 随机行为
李德毅等[10]基于模糊集中的隶属函数提出的云模型包括正向云发生器和反向云发生器。其中正向云发生器常用于智能优化算法的改进。
在云模型中,正向云发生器[16]生成的新人工鱼的位置Pnew的隶属度Ψ为:
式中:EP为当前新人工鱼位置的最优解;σP为新人工鱼位置的标准差,其中En、He分别为熵和超熵[17],En=为新人工鱼位置的取值范围,n为当前迭代次数,nmax为迭代次数上限。
若隶属度Ψ大于随机数,则Pnew为新人工鱼的位置;否则新人工鱼为随机个体。
2.5 繁殖行为
若Pbest为全局最优解,则繁殖行为后,人工鱼i所在的位置Pi,reproduct为[16]:
2.6 公告板
文献[15]中并未给出公告板的计算方法,本文拟自行构造相关公式,并将其引入人工鱼群算法。
若人工鱼i的当前适应度Fi小于上次迭代的适应度Fi,old,则公告板操作后人工鱼i所在的位置Pi,bulletin为:
若位置Pi,bulletin对应的适应度Fi,bulletin小于当前的适应度Fi,则不断更新人工鱼的位置和适应度。当公告板的操作次数达到ntry时,公告板操作终止。
2.7 参数更新
第n次迭代时,人工鱼i的视野Vi,n和步长Si,n的更新公式为[18]:
其中:
式中:ξ1、ξ2为常数。
综上,云模型人工鱼群算法的步骤为:
1)初始化种群,并计算人工鱼的适应度。
2)开始迭代,n=n+1。
3)计算视野和步长的更新参数γ。
4)记录当前人工鱼的位置及适应度,便于公告板的执行。
5)计算当前人工鱼和其他人工鱼的距离。
6)更新视野和步长。
7)若视野内有其他人工鱼,且满足相应的判断条件时,则依次执行群聚行为和追尾行为;否则不执行任何行为。
8)执行觅食行为,当觅食次数达到ntry时,终止觅食行为。
9)通过正向云发生器得到新人工鱼的位置Pnew,并计算隶属度Ψ。若隶属度Ψ大于随机数,则接受新解;若不满足,则随机生成新解。
10)执行繁殖行为。
11)执行公告板操作,当次数达到ntry时,终止公告板操作。
12)当迭代次数达到nmax时,迭代终止,否则转至步骤2)。
在原人工鱼群算法中,群聚行为和追尾行为的子程序内分别包含1次觅食行为[15],即在每次迭代中每个个体可能执行2次觅食行为,而云模型人工鱼群算法仅在追尾行为和群聚行为结束后单独执行1次觅食行为,以确保在每次迭代中每个个体仅执行1次觅食行为。
人工鱼群算法[18-22]通常使用自定义程序来计算人工鱼之间的距离[15],导致运算量较大,而本文直接调用MATLAB软件中内置的距离函数pdist2来计算人工鱼之间的距离,以简化代码。
3 直齿圆柱齿轮的模糊优化设计
设直齿圆柱齿轮的输入功率为10 kW,小齿轮的转速为960 r/min,传动比u=3.2;小齿轮的材料为40Cr,大齿轮的材料为45钢。直齿圆柱齿轮的弹性影响系数ZE=189 MPa1/2,载荷系数KH=1.91,重合度系数Zε由小齿轮齿数和传动比确定。考虑到直齿圆柱齿轮的变位系数为0,则区域系数ZH=2.5。以直齿圆柱齿轮体积最小[13,23]为优化目标,建立如下数学模型:
式中:m为直齿圆柱齿轮的模数;z1为小齿轮齿数;ϕ为齿宽系数;σH为直齿圆柱齿轮的接触疲劳应力;[σH]为许用接触疲劳应力;σF1、σF2分别为小齿轮、大齿轮的弯曲疲劳应力;[σF1]、[σF2]分别为小齿轮和大齿轮的许用弯曲疲劳应力;T1为直齿圆柱齿轮输入轴的扭矩;YFa1、YFa2分别为小齿轮、大齿轮的齿形系数;YSa1、YSa2分别为小齿轮、大齿轮的的应力修正系数;变量中上横线表示相应参数的上限,下横线表示下限,下文同。
通常情况下,直齿圆柱齿轮的模数m=2~10;当齿轮为闭式齿轮时,小齿轮齿数zl=20~40;当小齿轮采用不对称布置时,齿宽系数ϕ=0.7~1.15。由文献[25]可知,小齿轮和大齿轮的许用接触疲劳应力分别为540 和523 MPa,许用弯曲疲劳应力分别为303.57 和238.86 MPa。为便于计算,本文取。
对于齿轮许用应力,通常取扩增系数β=1.01,由扩增系数法得。
为了方便计算,所有约束条件的隶属函数均取线性隶属函数。基于最优水平截集法,上述约束条件可转化为:
式中:λ*为最优水平截集对应的参数,λ*∈(0,1)。
对于因素权重矩阵A,其计算方法有2 种:专家调查法和专家评议法[2]。前者是根据多位专家给出的因素权重矩阵,直接通过计算平均值得到;后者是根据多位专家给出的因素重要性序列,通过计算得到优先得分表,并根据得分表计算因素权重矩阵。在本文中,基于专家调查法计算得到的因素权重矩阵A=[0.25 0.25 0.15 0.10 0.10 0.15]。
直齿圆柱齿轮性能的影响因素及其等级如表1所示。若希望某个因素达到某个设计等级,则对应的隶属度应稍大。假设要得到一个设计水平、制造水平和材料质量较高,使用条件、维护费用和重要程度一般的设计方案,则对应的隶属度取值如表2所示。
表1 直齿圆柱齿轮性能的影响因素及其等级Table 1 Performance influencing factors and their grades for spur gear
表2 直齿圆柱齿轮的单因素评判隶属度Table 2 Single factor evaluation membership degree of spur gear
对通过单因素评判得到的直齿圆柱齿轮性能等级隶属度矩阵μ进行归一化处理,得到第h个因素的等级权重矩阵Wh。
为了确定最优水平截集对应的参数λ*,假设备择集λ=[0.10 0.30 0.45 0.50 0.55 0.70 0.85 1.00]。若备择集元素个数与因素等级个数相等,则等级评判矩阵主对角线的元素均为1。在本文中,由于备择集的元素个数与因素等级个数不相等,则假设所有因素的等级评判矩阵Rh相同,为:
模糊综合评判的合成运算共有4种:主因素决定型M(∧,∨)、主因素突出型M(∧,⊕)和M(•,∨)以及加权平均型M(•,+)[24]。本文选用加权平均型M(•,+)进行模糊综合评判的合成运算。
设罚因子η=5,100和1 000时,利用增广乘子法无法得到满足约束条件的解。为使所得结果满足约束条件,须增大罚因子。取罚因子η=10 000,利用增广乘子法求解时所有约束条件均可满足。由此可知:较大的罚因子有利于确保约束条件被满足。
本文采用云模型人工鱼群算法、人工鱼群算法和人工蜂群算法分别求解直齿圆柱齿轮的模糊优化问题,并对其结果进行比较。为减少运算量,通过向量化编程技术对人工蜂群算法[15]进行简化。此外,人工蜂群算法中的侦查蜂操作可能会使最优个体被更新,从而导致最优个体被破坏,本文通过添加相关代码来保护最优个体,使得侦查蜂操作不会对拖尾次数太大的最优解进行更新。
取罚因子η=10 000,将拉格朗日乘子从0增大至1×10-6。设人工鱼群算法中的觅食次数为5,拥挤度为0.618;人工鱼群算法和人工蜂群算法中的种群数量均为20,迭代上限均为50 次。基于3 种方法的直齿圆柱齿轮模糊优化的迭代过程如图1所示,优化结果如表3所示。
图1 直齿圆柱齿轮模糊优化的迭代过程Fig.1 Iteration process of fuzzy optimization for spur gear
表3 直齿圆柱齿轮模糊优化设计结果Table 3 Fuzzy optimization design result of spur gear
由图1和表3可知:
1)利用人工鱼群算法优化得到的直齿圆柱齿轮体积为2.627×106mm3,较利用云模型人工鱼群算法优化得到的体积(2.639×106mm3)大,由此说明云模型可显著提高人工鱼群算法的寻优能力。
2)人工蜂群算法的收敛速度较慢,且其优化效果比2种人工鱼群算法差。
由上述优化结果可知:当m=2 mm,利用云模型人工鱼群算法求得直齿圆柱齿轮的体积最小时,z1=39.0,ϕ=0.630 0;当m=1.5 mm,利用云模型人工鱼群算法求得直齿圆柱齿轮的体积最小时,z1=41.7,ϕ=1.208 0。固定m和z1,采用文献[25]中用于求解混合离散变量优化问题的拟离散法——连续分量优化法进一步优化ϕ,并对直齿圆柱齿轮的疲劳强度进行校核,结果如表4所示。
表4 基于不同方法的直齿圆柱齿轮优化设计结果对比Table 4 Comparison of optimization design results of spur gear based on different methods
由表4可知,利用传统设计方法得到的直齿圆柱齿轮体积为2.776×106mm3,而利用本文模糊优化设计方法得到的齿轮体积为2.639×106mm3,且均通过了疲劳强度校核。由此说明,本文模糊优化设计方法的效果比传统设计方法好。
综上,当齿轮模数m=1.5 mm,小齿轮齿数z1=42,齿宽系数ϕ=1.187 0时,直齿圆柱齿轮的体积最小,且可通过疲劳强度校核,优化结果切实可行。
4 气门弹簧的模糊优化设计
内燃机气门弹簧[23,26]为圆柱螺旋弹簧,其最大变形量δmax=6.59 mm,工作载荷F=680 N,工作频率fw=25 Hz,弹簧直径d∈[2.5,6] mm,弹簧中径D∈[30,60] mm,工作圈数N0∈[3,15],旋绕比C∈[4,9],长细比b∈[1,5.3];弹簧材料为50CrVA,密度ρ=7.85×10-6kg/mm3,剪切模量G=80 GPa,许用切应力[τ]=450 MPa。
当气门弹簧的截面为圆形时,其一阶自振频率fb为[27]:
式中:K为弹簧刚度;M0为弹簧工作部分的质量。
对于不同类型的弹簧,其自振频率fb与工作频率fw的关系为[27]:
以弹簧质量最小为优化目标,建立如下数学模型:
式中:δ为弹簧的变形量;[δ]为弹簧的许用变形量;τ为弹簧的应力;[fb]为弹簧的许用自振频率。
对于气门弹簧的许用应力,通常取扩增系数β=1.01,由扩增系数法得:。
对于气门弹簧的自振频率,通常取扩增系数β=0.95,基于[fb]=10fw=250 Hz,由扩增系数法得。
为方便计算,所有约束条件的隶属函数均取线性隶属函数。根据最优水平截集法,上述约束条件可转化为:
同样采用云模型人工鱼群算法、人工鱼群算法和人工蜂群算法来求解气门弹簧的模糊优化问题。设人工鱼群算法中的觅食次数为5,拥挤度为0.618;3种算法中的种群数量均为20,迭代上限为70次,最优水平截集对应的参数λ*=0.4。基于3种算法的气门弹簧模糊优化的迭代过程如图2所示,优化结果如表5所示。
图2 气门弹簧模糊优化的迭代过程Fig.2 Iteration process of fuzzy optimization for valve spring
由图2和表5可知:
表5 气门弹簧模糊优化设计结果Table 5 Fuzzy optimization design results of valve spring
1)基于人工鱼群算法的气门弹簧模糊优化目标函数呈阶梯式下降趋势,基于人工蜂群算法的呈逐渐下降趋势,且下降速度较为均匀。
2)云模型人工鱼群算法的收敛速度比人工鱼群算法和人工蜂群算法更快。
3)基于云模型人工鱼群算法优化得到的气门弹簧的质量最小,优于人工鱼群算法和人工蜂群算法。
为了使云模型人工鱼群算法优化得到的气门弹簧尺寸参数与尺寸系列中的数值相同,采用拟离散法中的交替查点法(又称Luns法,常用于求解全离散变量优化问题)[25]进行调整。由交替查点法求得气门弹簧尺寸参数的最优解为:直径d=6 mm,中径D=30 mm,工作圈数N0=2.75。此时,质量M=0.099 kg,旋绕比C=5,长细比b=1.363,切应力τ=315.176 MPa,自振频率fb=863.030 Hz,变形量δ=3.896 mm。该设计方案通过了疲劳强度校核,优化结果切实可行。
5 结论
本文利用最优水平截集法将模糊优化设计问题转变为普通优化设计问题,并采用云模型对人工鱼群算法进行改进,然后结合增广乘子法和云模型人工鱼群算法对直齿圆柱齿轮和内燃机气门弹簧进行了模糊优化设计,并与基于人工蜂群算法的优化结果进行了对比,所得结论如下。
1)若罚因子较小,则增广乘子法所得结果可能不满足约束条件,因此应取较大的罚因子。外罚函数法的收敛性依赖于初始罚因子,且罚因子须逐步增大至无穷大,而增广乘子法只须取1个较大的罚因子,并不要求趋向无穷大。
2)云模型中的正向云发生器可大幅提高人工鱼群算法的全局寻优能力。
3)利用本文模糊优化设计方法得到的圆柱直齿齿轮的最小体积为2.620×106mm3,而利用传统设计方法得到的齿轮体积为2.776×106mm3,且均通过了疲劳强度校核,说明本文模糊优化设计方法所得的齿轮参数更为合理。同时,利用本文模糊优化设计方法得到的气门弹簧的尺寸参数符合要求。