群智能算法在“机械优化设计”教学中的应用

2021-12-14 11:02赵转哲刘永明鲁月林何慧娟
梧州学院学报 2021年3期
关键词:蛙跳智能算法减速器

赵转哲,刘永明,张 振,鲁月林,何慧娟

(安徽工程大学 机械工程学院,安徽 芜湖 241000)

“机械优化设计”课程是安徽工程大学机械设计制造及其自动化、机械电子工程、车辆工程、机器人工程、测控技术及仪器等多个机械类专业的学科基础课,课程目标主要是将最优化原理和计算技术应用于复杂机械设计领域,为工程设计提供一种重要的科学设计方法,培养学生的创新意识和解决工程实际问题的能力。然而,在长期的教学过程中一直存在着教师封闭式教学、理论脱离实际、学生学习理解困难、积极性不高、教学效果差、创新能力不足等[1]局限性,非常不利于该课程的课程目标达成,难以满足工程教育认证的要求。

人工智能优化算法在各个工程领域中的应用越来越深入,如尚洪彬等[2]将混合蛙跳算法(shuffled frog leaping algorithm, SFLA)应用于自压微灌管网系统优化布置与管径选择设计,大大节省了工程投资造价;李达等[3]将粒子群算法用于二次再热机组主蒸汽温度控制,实现了对串级控制系统主回路PID控制器参数的快速优化;杨昆等[4]将遗传算法应用于凸轮轴生产线设备布局优化;刘颖明等[5]将蚁狮算法应用于风电集群储能容量配置的优化过程。这些应用均取得不错的效果,这充分说明智能优化算法的应用前景广阔,与各行业结合后必将赋能产业发展。能否将群智能优化算法深度融合到“机械优化设计”课程的教学之中,对于开阔学生视野、增加课堂教学的互动性以及培养学生创新能力、提高课程目标的达成度至关重要。

基于此,本研究提出在本课程中的大作业环节,通过引入群智能算法,使之智能优化二级齿轮减速器的设计过程,全程计算机化,然后进行传统优化理论与现代人工智能算法的对比,分析算法不足,引导学生提出改进方案,从而培养学生的创新意识和思维方式,扩充学生的知识结构,为后续课程的学习以及进一步解决机械领域复杂工程问题奠定坚实基础。

1 机械优化设计课程大作业举例

1.1 题目要求

课程大作业是机械类专业基础课必须完成的内容之一,一般是在学完课程时布置一个工程类题目,让学生自行查阅资料,综合运用所学知识去解决。机械优化设计课程的大作业题目及要求如下:

斜齿圆柱齿轮减速器(二级)的结构如图1所示。已知条件:高速轴输入功率P=6.2 kW,高速轴转速n=1 450 r/min,总传动比i=31.5,齿轮的齿宽系数φd=0.4;大齿轮45#钢,正火处理,硬度为(187~207)HBS,小齿轮45#钢,调质处理,硬度为(228~255)HBS。总工作时间不少于10年(每年4 000 h)[6-7]。

图1 二级圆柱齿轮减速器简图

优化目标:设计1个二级斜齿圆柱齿轮减速器,要求在保证强度、刚度、寿命等条件下体积最小(质量最小或结构最紧凑)。

虽然学生对工程具体问题感兴趣,但是以前缺乏将具体工程问题抽象简化的训练机会和过程,因此需要引导学生将上述内容转换成可以求解的数学理论模型:

二级斜齿圆柱齿轮减速器由2对齿轮组成,其齿数分别为Z1、Z2、Z3和Z4,其传动比分别为i1=Z2/Z1和i2=Z4/Z3,2组传动齿轮的法向模数分别为m1和m2;齿轮的螺旋角为β。由于设计前已经给定总传动比i,且有i=i1·i2,所以有i2=i/i1,而4个齿轮的齿数只要能确定2个即可,因此这个优化设计问题的独立设计变量为Z1、Z3、m1、m2、i1、β,共6个,作如下替换:X=[x1,x2,x3,x4,x5,x6]=[m1Z1m2Z3i1β]。

将减速器的体积最小作为优化目标,经分析可知,当其他参数相同时,只要减速器的总中心距a最小,即可认为体积(质量)达到最小,结构最紧凑,因此中心距可以作为本设计的目标函数,如下表示:

(1)

对于工程实际问题,存在着诸多约束条件,导致其求解过程不能完全照搬高等数学求极值的方法去做,这需要和学生讲明白。因此,本例中的二级齿轮减速器设计的约束条件有:齿面接触强度与齿根弯曲强度要求、高速级大齿轮与低速轴不发生干涉约束条件等,如下表示:

s.t.g1(X)=(cosx6)3-3.079×10(-6)x13x23x5≤0

g2(X)=x52(cosx6)3-1.701×10(-4)x32x42≤0

g3(X)=(cosx6)3-9.939×10(-5)(1+x5)x32x22≤0

g4(X)=x52(cosx6)2-1.706×10(-4)(31.5+x5)x32x42≤0

g5(X)=x5[2(x1+50)cosx6+x1x3x5]-x3x4(31.5+x5≤0

(2)

各参数的取值范围如下:

01≤x1≤50,14≤x2≤22,0.1≤x3≤50,16≤x4≤22,5≤x5≤7,1≤x6≤20

2 基于群智能算法求解的教学设计

群智能是一类分散自组织系统的集体智能行为的总称[8],主要模拟自然界低能生物群体(鸟群、鱼群等)在觅食过程或者生存时通过个体之间的协作(或竞争)的现象,或个体与环境之间存在交互作用,最终表征出智能行为。科学家根据此而形成的群智能优化算法,在求解工程问题时具有特别的优势,如不要求待求解问题的连续性、可导以及不依赖于梯度信息等优势,已成为目前解决最优化问题的有利工具,其典型代表有粒子群算法[3]、遗传算法[4]、混合蛙跳算法[2,9]等。

减速器设计也是一个具体的工程实际问题,传统的设计方法采用人工手动试凑的方法,或者采用教材中的优化理论——单纯形或复合型法,不仅费时费力,得到的结果也可能不是最优设计方案。所以,如何将群智能优化算法应用到本例中是实际教学中面临的第2个问题。

一般而言,经典的群智能算法的程序不需要非计算机专业的教师和学生在教学中自行编制,可以在MATLAB软件中直接调用,只要根据工程实际问题,设计好适应度函数即可,而适应度函数是群智能算法能够进行优化的基础,主要用来判断个体性能优劣,从而作为引导群体进化的主要依据。通常是将目标函数通过某种转换而得到对应的适应度函数。

本例中,目标函数虽然相对简单,但是约束条件比较多,属于非线性约束的优化问题求解,所以采用课程教材中关于惩罚函数的构造方法[7]进行设计。本例中采用外点法,与约束条件一起构成惩罚函数。用max(·,·)表示选取括号内2个元素中较大的1个,则惩罚函数可写成:

(3)

式中,gj(X)为式(2)中的不等式约束。

融合了惩罚函数和目标函数的适应度函数可写成:

(4)

式中,γ为惩罚因子,与若选取足够大(本例中γ=10000),无约束问题F(X,γF(x,γ)的解会接近于原问题f(X)的解,复杂的非线性约束优化问题转化为相对简单的无约束问题。

3 求解结果对比与教学分析

3.1 求解结果对比

本研究选取遗传算法、粒子群算法和混合蛙跳算法作为群智能算法的代表进行智能求解。遗传算法和粒子群算法的原理不再赘述,在MATLAB软件中直接调用对应函数即可,以遗传算法为例进行说明,在命令行窗口输入以下命令即可:

lb=[0.1 14 0.1 16 5 1];

ub=[50 22 50 22 8 30];

[X f_val]=ga(@myreducer,6,[],[],[],[],lb,ub)

注:lb和ub是减速器结构中6个变量的下界和上界,X为求出的6个参数组成的向量,f_val为求出的减速器的中心距,ga为调用的遗传算法函数,括号中的第1个参数为调用的按照式(2)和式(4)所编写的适用度函数,第2个参数为变量的个数,第3~6个参数在本例中无特殊定义,采用空的方括号代替,其他参数按照默认值即可。

粒子群算法在MATLAB中调用particleswarm函数即可实现,具体命令如下:

[X f_val]= particleswarm(@myreducer,6,lb,ub)。

混合蛙跳算法是模拟青蛙群体觅食特性而形成的群智能算法,同时了结合粒子群算法和遗传算法的优点而形成的一种仿生算法,具体原理请参考文献[9]。本课题组据此采用MATLAB软件自行编写的应用小程序,在讲课时免费提供给学生使用,调用格式和粒子群算法类似,在此不再赘述。

为了对比群智能算法的求解精度,将常规手工计算和采用最优化理论的复合型算法[10]的计算结果与其进行对比,结果见表1。

由表1可以明显看出,采用群智能算法的计算结果,其中心距a比常规手工计算和复合型算法的计算结果要小很多,其中粒子群算法的求解结果要比常规算法的结果减少26.49%,与题目要求更加符合,其根本原因是适应度函数(目标函数)存在着多个局部最优解,手工计算或者传统优化算法很难找到其全局最优解,而群智能算法具有解决齿轮减速器优化设计等工程实际问题的优异特性。

表1 不同求解算法的结果对比

3.2 教学分析

在实际设计中,齿轮齿数均为整数,齿轮模数为非等间隔的有限离散值,传动比为有限的整数比值,同时螺旋角精度过高会导致加工成本急剧上升,而上述的复合型算法和群智能算法,因其算法本身是针对连续性变量而提出的求解方法,因此求解结果需要进行对应的工程处理,才能供实际使用,其处理结果见表2。

表2 不同求解算法的结果对比

对比表1和表2发现,即使是同一种算法,工程化处理后的计算结果与处理前相比,差别也比较大,如遗传算法和粒子群算法,其工程化的结果比理论计算值都偏大,说明基于连续型变量的群智能求解算法,在解决工程实际问题时还存在着变量不适用的问题,需要进一步的改进,其计算结果才能真正的实用,得到大家的认可。

4 算法改进

本质上,二级齿轮减速器优化设计问题属于混合变量的优化问题。因此,本研究针对此问题,以混合蛙跳算法为对象,提出如下2个方面的改进[11]。

4.1 变量映射

离散型变量以表格的形式进行映射,以在表格中的位置来表示该变量的大小,同时根据其变量变化范围,自动设置其表格大小,具体如下:

1)齿数:对于齿数这类整数型变量,因为其间距固定为1,在进行映射时,表格的第一个数即为变量的最小值,然后逐步加1,依此类推,直至变量的最大值。设第i个离散变量Xi取值范围为Xi=[Xmin,Xmax],其工程处理方法用 MATLAB语言表示为

Xi=Xmin:1:Xmax

即此时的映射关系为Xi[n]=Xmin+(n-1)。

例如,Xi[3]表示表格中的第3个数,其大小为Xmin+2。

2)模数:对于模数这类非等间距的离散非整数变量,在进行映射时,转换成等间距的整数来表示,即将所有模数(28个)按照从小到大的顺序、一个不漏地列成1个表格,模数的大小映射到表格的位置大小。设模数为Y,则此映射方式用MATLAB语言表示为

Y=[0.10 0.12 0.15 0.2 0.25 …25 32 40 50]

此时的映射关系为Y[n]=表中第n个数。

例如,Y[3]表示表中的第3个数,即模数的大小为0.15;Y[10]表示表中的第10个数,即模数的大小为0.8;

4.2 更新策略的改进

由混合蛙跳算法的原理[9]可知,最差青蛙Xw位置更新的本质是:青蛙Xw所代表的解向量在连续解空间跟踪其局部极值或全局极值的向量运算。其中,rand代表青蛙Xw从局部极值最优青蛙Xb的信息继承度,反映了对Xb信息的置信指标。换句话说,表示Xw向Xb学习逼近的过程,其中rand表示学习的程度,将青蛙更新的公式可以用下式表示:

Xwnew=Xw+rand×(Xb-Xw)

(4)

当rand=1rand()=1时,Xwnew=Xb,表示青蛙Xw移动至性能最优的青蛙Xb位置;当rand=0时,Xw=Xw,表示青蛙Xw在当前位置并未移动。该过程可以通过如下的交叉操作实现:

1)在Xb中随机选择一个交叉区域,其中rand决定着交叉区域的大小。

2)将Xb的交叉区域加到Xw的前面或后面,并删除Xw中已在Xb的交叉区中出现过的数字。例如:

当前位置Xw=3 7 1 8 9 2 4 6 5 10

局部极值Xb=9 5 10 4 3 2 6 7 8

rand=0.3.

假设随机选择的交叉区域为 4 3 2

交叉后为

4 3 2 7 1 8 9 6 5 10或7 1 8 9 6 5 10 4 3 2

可见,采用这种更新策略,实施方便,操作简单,并且子串能够继承父串的有效模式,从而实现了从局部极值Xb获得更新信息的目的。

将上述改进策略与基本混合蛙跳算法结合,本课题组相关教师编制了对应的应用程序,见图2。

图2 改进混合蛙跳算法的程序界面

该程序界面由三大部分组成,分别是设置、运行控制和显示部分。其中,设置部分又包括优化初始条件的设置、变量的取值范围设置和算法的参数设置,运行控制由6个控制按钮组成,分别完成程序的运行、运行结果的数据另存、帮助等主要功能,最后是显示部分,能够显示算法的运行时间、进化迭代曲线图、优化的结构参数等必须提供的求解结果。

4.3 结果分析

改进SFLA算法的参数设置为青蛙群规模F=300,子群数mp=20,子群进化代数Lmax=30,全局进化代数Gmax=50,其他参数采用默认值即可。采用上述程序对本例问题进行求解。为了克服群智能算法结果的偶然性,本程序独立运行20次,结果见表3。

表3 改进混合蛙跳算法的求解结果统计

由表3可以看出,第一,采用改进后的混合蛙跳算法在二级齿轮减速器结构优化设计的过程中,不需要人工干预进行圆整处理,程序直接输出符合工程应用标准的求解结果,实用性强;第二,混合蛙跳算法作为群智能算法的一种典型代表,由于算法本质上属于随机搜索算法(个体属性随机生成,每次运行不完全相同),在有限的迭代次数下,其结果有可能不完全一致,增大全局迭代次数能较好地减少不同结果的数量,但会增加程序的运行时间。所以,一个合适的迭代次数需要结合实际需求来综合考虑,在实际应用过程中通过重复多次计算进行克服;第三:从表中的统计情况来看,算法求出的结果有4种,其中结果2最符合结构紧凑、体积最小和中心距最小的要求,但是其出现的次数只有3次(15%),而结果1有13次(65%),结果3和结果4各有2次(均为10%),所以,可以选择结果1作为改进混合蛙跳算法对此二级齿轮减速器的智能优化求解结果。

5 教学总结

(1)群智能算法作为人工智能计算的一种典型算法,可以应用在传统的 “机械优化设计”课程的教学过程中,与传统的优化理论相结合,可以开阔学生的视野,进行思维创新训练,为培养学生解决复杂机械工程问题提供技术支持;

(2)在惩罚函数的设计过程中,为了教学方便,选了最为简单的外点法构造,在后续的教学过程中,可以根据学生水平不同,分别采用内点法和混合法构造惩罚函数作为群智能算法的适应度函数的重要组成部分;

(3)本研究针对混合蛙跳算法的改进措施,可以推广到其他群智能优化算法中,也可以为其他混合变量型的工程实际问题提供解题思路。

猜你喜欢
蛙跳智能算法减速器
“三层七法”:提高初中生三级蛙跳能力的实践研究
神经网络智能算法在发电机主绝缘状态评估领域的应用
驼峰第三制动位减速器夹停钩车问题的改进
提高车辆减速器缓解可靠性方案探讨
低密度超音速减速器
三坐标测量在零件安装波动中的应用
从鸡群算法看群体智能算法的发展趋势
改进的多目标快速群搜索算法的应用
基于Robocode的智能机器人的设计与实现