论文总字数:31737字
摘 要
本文将基于MPI的并行粒子群算法(PSO)算法应用到两个铣削加工零件的装夹布局优化案例,并与串行PSO算法和基于OpenMP的并行PSO算法进行比较,验证基于MPI的并行算法的效果和效率。首先利用4台计算机和千兆高速以太网交换机以及MPICH2软件包构建了基于MPI的并行PSO算法的小型PC集群运算平台。然后以Visual Studio 2010为编译环境编写了并行PSO算法的MPI程序、串行PSO算法程序,并对原有并行PSO算法的OpenMP程序进行修改以适应对比研究的需要。采用ANSYS建立3-2-1定位方式下工件的有限元分析模型,编写APDL命令流文件,生成用于测试的三个算例。最后利用三个算例对串行PSO算法、基于MPI的并行PSO算法和基于OpenMP的并行PSO算法进行了测试比较。
研究发现:对比串行算法,两种并行算法均可以有效地减少计算时间;在计算节点同为4个时,测试中基于OpenMP的并行PSO算法的加速比高于基于MPI的并行PSO算法,且基于OpenMP的并行PSO算法获得的解的质量更优;当基于MPI的并行PSO算法的计算节点高于基于OpenMP的并行PSO算法的计算节点时,基于MPI的并行算法可以获得比基于MPI的并行算法更大的加速比。
关键词:夹具布局优化;粒子群算法; MPI;OpenMP;ANSYS
MACHINING FIXTURE LAYOUT PARALLEL OPTIMIZATION BASED ON MPI
Abstract: The purpose of this paper is to verify the effectiveness and efficiency of the parallel algorithm based on MPI for machining fixture layout optimization. Three algorithms, serial particle swarm optimization (PSO) algorithm, parallel PSO algorithm based on MPI and parallel PSO algorithm based on OpenMP, are applied to the layout optimization of two milling parts.
Operation platform of the parallel PSO algorithm based on MPI is constructed by 4 computers and network connection equipment and MPICH2 software package. The C in Visual Studio 2010 is used to write the serial PSO program and the parallel PSO program based on MPI. The C is also used to modify the original parallel PSO program based on OpenMP to meet the needs of the comparative study. ANSYS is adopted to establish the finite element analysis model of the workpieces, and is used to implement APDL command file. Finally, three examples for machining fixture layout optimization are generated. and are used to compare three algorithms.
Compared to the serial algorithm, we find that the two parallel algorithms can effectively reduce the computing time. When the two parallel algorithms contain the same number of computing nodes, the parallel PSO algorithm based on OpenMP has a higher speedup and obtains better solution quality than those of parallel PSO algorithm based on MPI. When the number of computing nodes of parallel PSO algorithm based on MPI is two times larger than that of parallel PSO algorithm based on OpenMP, the parallel PSO algorithm based on MPI has a higher speedup than that of the the parallel PSO algorithm based on OpenMP.
Key words: fixture layout optimization; particle swarm algorithm; MPI; OpenMP; ANSYS
目 录
第一章 绪论... 1
1.1研究背景与意义 1
1.2机床夹具优化研究现状 1
1.2.1夹具优化中有限元方法的应用 1
1.2.2夹具优化中的优化算法 2
1.2.3 机床夹具并行优化研究现状 3
1.3本文的研究目的和主要研究内容 3
第二章 夹具布局优化模型 5
2.1 夹具布局优化模型 5
2.1.1问题描述 5
2.1.2 数学模型 5
2.2 并行优化计算模型 6
2.2.1 并行计算机的体系结构 6
2.2.2并行计算的基本模型 7
2.2.3并行算法编程的基本模型 7
2.2.4 粒子群算法在MIMD(多指令流多数据流)并行系统上的并行模型 8
2.3本章小结 8
第三章 基于MPI的并行粒子群算法优化程序设计和实现 10
3.1 基本PSO算法 10
3.2并行粒子群算法 10
3.2.1迁移模型 10
3.2.2算法流程与参数 11
3.3 并行算法实现环境 12
3.3.1 MPI简介 12
3.3.2 PC集群搭建 12
3.3.3 Visual Studio 2010 配置 15
3.4 基于MPI的并行粒子群算法的编程实现 16
3.4.1 计算节点间通讯的实现 17
3.4.2 种群更新 20
3.5 本章小结 21
第四章 算法测试 22
4.1 实验环境 22
4.2 机床夹具布局优化测试算法与指标说明 22
4.2.1 测试算法及其参数设置 22
4.2.2性能指标 23
4.3 测试算例说明 24
4.4测试方法与测试结果 27
4.4.1 子粒子群相同条件下的测试 27
4.4.2 子粒子群不同条件下的测试 34
4.5本章小结 34
第五章 结论与展望 36
5.1 工作总结 36
5.2 重要结论 36
5.3工作展望 37
基于MPI的机床夹具布局并行优化设计
绪论
1.1研究背景与意义
机械加工中,夹具的作用是将工件定位,以使工件获得相对于机床和刀具的正确位置,并把工件可靠地夹紧[1]。机床夹具主要由定位元件、加紧装置和夹具体等部分组成,夹具通过它们与工件相接触。夹具设计包括夹具元件的放置位置的设计和夹紧力大小设计两方面。夹具设计结果直接影响工件的加工质量,夹具布局不当、加紧力大小不合适都会导致加工过程中工件加工精度降低。
夹具优化旨在已知夹紧力和夹具元件数量的情况下得到最合理的夹具布局和加紧力大小,以最小化工件加工过程中加工区域的弹性变形。传统的夹具设计采用基于设计者经验的设计方式,缺乏一定的依据,且随意性较大。工件的变形很复杂,使用有限元方法可以获得一定夹具布局和夹紧力大小下的工件变形,设计结果直观可见;对于多变量、非线性的复杂的夹具优化问题,传统数学优化方法难以实施,基于种群进化的优化算法(如遗传算法、粒子群算法)的发展可以比较容易得解决类似的问题。如今,有限元方法和优化算法的结合成为一种有效的夹具优化设计手段,单独一次的有限元分析可以获得工件的变形情况,在优化算法指导下改变有限元模型中夹具布局和夹紧力大小可以寻求最优的夹具布局和夹紧力,使工件的弹性最小化[2]。
尽管目前已经提出多种优化算法,然而因优化算法中获取目标函数的ANSYS计算分析耗时,且优化搜索过程往往需要反复运行ANSYS求目标函数,使得传统的串行优化算法在优化大规模实际问题时难以在可接受的时间内完成计算。随着并行计算技术的发展,通过采用基于廉价多核处理器的并行算法可以克服串行优化算法计算耗时的问题并提高计算效率。
本课题来源于国家自然科学基金项目(No.51105076),拟采用粒子群优化算法为优化设计方法,通过以PC集群为硬件,以MPI为支撑软件的并行算法克服串行优化算法计算耗时的问题并提高计算效率,从而促进优化算法走向实用。
1.2机床夹具优化研究现状
夹具设计包括夹具布局设计和夹紧力大小两方面,机床夹具的优化也从这两个方面出发,对夹具布局和夹紧力进行优化。目前,夹具优化中使用到多种优化算法,包括遗传算法、蚁群算法以及粒子群算法等,同时,为了提高优化计算的效率,并行计算也成为一个研究重点。以下针对夹具优化优化算法和并行算法实现两方面的研究现状进行介绍。
1.2.1夹具优化中有限元方法的应用
夹具优化的重要指标是控制工件加工区域的变形。工件的变形复杂,传统数学方法难以求解。
有限元分析(FEA,Finite Element Analysis)是较简单的问题代替复杂问题后再求解,它将求解域分解成称为有限元的小的互连子域,对每一个有限元假定一个合适的较简单的近似解,然后推导求解整个求解域的总的满足条件,从而得到问题的近似解[3]。虽然得到的不是精确解,但大多数实际问题本身就难以得到准确解,而有限元方法得到的解精度高,同时有限元方法可以适应各种复杂的形状,因而有限元分析成为一种有效的工程分析方法。Prabhaharan在研究中就利用有限元方法(FEM)模拟工件的变形,以解决夹具布局优化时减小尺寸误差和形状误差的问题[4]。
工程中常用的有限元分析工具有ANSYS、ADINA、ABAQUS、MSC等,本文中使用ANSYA作为求解工件变形的有限元分析软件。
1.2.2夹具优化中的优化算法
夹具优化属于多变量、非线性的复杂优化问题,无显式目标函数,目前,应用于夹具优化的算法有遗传算法、蚁群算法和粒子群算法等,以及其改进算法。
遗传算法(GA)是进化算法的一种。借鉴进化生物学中的遗传、突变、自然选择以及杂交等现象,一定数量的候选解(个体)组成的种群通过进化向更好的解发展。进化从完全随机的个体组成的种群开始,然后一代一代地进化,在每一代中,根据适应度函数评价整个种群的适应度情况,并从当前种群中根据个体的的适应度随机地选择多个个体,通过自然选择和突变产生新的种群,新的种群在算法的下一次迭代中成为当前种群。
粒子群算法(PSO)也属于进化算法的一种。一定数量的候选解(粒子)组成的种群向更好的解进化。进化从随机解出发,通过适应度评价解的质量,然后通过迭代寻找最优解。和遗传算法相似,但粒子群算法的规则比遗传算法的规则更为简单,粒子群算法没有“交叉”和“变异”,它通过追随当前种群中搜索到的最优粒子来搜索全局最优。
蚁群算法(ACO)是一种基于种群寻优的搜索算法,模拟蚂蚁在寻找食物过程中发现最短路径的行为,蚁群个体间通过个体散发的信息素传递简单的信息,搜索从蚁巢至食物间最短路径。主要特点是通过正反馈及个体间的分布式协作寻找最优路径,算法本质上是一种并行的算法。
夹具优化有夹具布局优化、夹具布局和夹紧力的同时优化,因为单对夹紧力进行优化没有太大的实际意义故很少有仅就夹紧力进行的优化。夹具布局优化是在确定夹紧力大小的情况下针对夹具布局进行的优化,其优势在于算法相对简单,因为没有考虑夹紧力的影响,得到的解精确度较低。针对夹具布局和加紧力的同时优化,又分为同步优化和异步优化。同步优化中将夹具布局和夹紧力同时进行优化;异步优化时不考虑夹具布局和夹紧力之间的相关性,布局优化时假定夹紧力不变,夹紧力优化时假定布局不变。周孝伦等[2]在研究中应用遗传算法(GA)对夹具布局和夹紧力进行使用同步优化的方式进行优化。此外,夹具优化中根据变量的连续性又分为连续优化和离散优化,离散优化时计算量小、收敛速度快但解的精度相对连续优化的低。在利用ACO算法对夹具布局进行优化时就发现连续优化得到的解优于离散优化得到的解,但离散优化的收敛速度更快[5]。不同的优化算法应用于夹具优化时效果不尽相同,Prabhaharan等采用遗传算法(GA)和蚁群算法(ACO)对夹具布局进行优化,结果发现ACO的收敛速度更快并且得到的解更精确[4]。
如前所述,夹具优化中主要有夹具布局和夹紧力的同步和异步优化,以及夹具布局优化,此外,夹具优化还分为连续优化和离散优化。目前,在夹具优化中使用基于GA算法的研究较多,但使用基于ACO和PSO的夹具布局优化的研究较少。
1.2.3 机床夹具并行优化研究现状
工程计算需要在可接受的时间内完成,但随着工程要求的不断提高,工程计算的任务变得越来越复杂,计算所需的时间也变得越来越长,需要一种方法大大缩减计算时间。并行计算的优势即在于此,并行计算使用并行计算机来减少解决单个计算问题所需的时间。现在,并行计算被认为是科学家和工程师用来解决各种领域问题的标准方法,主要的并行计算机有多计算机(multicomputer)和集中式多处理器(centralized multiprocessors) [6]。多计算机并行系统是由多台计算机以及网络连接设备组成的并行计算机,不同计算机上的处理器之间通过传递消息来互相通信[6]。集中式多处理器(也称为对称多处理器系统,SMP)则是一种更加密集的系统,系统中所有CPU共享全局内存,并通过共享内存支持处理器之间的通信和同步[6]。本研究中所使用到的PC集群和工作站则分别为多计算机系统和SMP系统。
多计算机系统通常使用MPI(消息传递接口)进行编程。MPI是消息传递库的标准,几乎所有的并行计算机都支持该标准通信库。OpenMP则是用于共享内存式并行系统的多线程程序设计的编程标准。
遗传算法、粒子群算法以及蚁群算法本质上都是并行的,所以可以比较容易地实现并行化。在前人的研究中就有利用MPI和MPI实现算法的并行化,Chandra等人研究了使用OpenMP实现并行程序的方法[7],汤良宇在学位论文《机床夹具布局优化的并行粒子群算法设计与实现》中利用OpenMP实现粒子群算法的并行化[8],Singhal曾使用MPI实现粒子群算法的并行化[9]。
如前所述,有限元和优化算法的结合是一种有效的夹具优化手段,但普通的串行优化往往计算时间长,为缩短计算时间,并行计算成为一种主要的计算方式。目前,常用的算法并行化方法有基于MPI的多计算机的并行化和基于OpenMP的集中式多处理器(SMP)的并行化。
1.3本文的研究目的和主要研究内容
两种并行化的方法中,基于OpenMP的并行化在之前已经有所研究,本文研究中使用基于MPI的并行化方法,通过将基于MPI的并行优化算法应用到两个铣削加工零件的装夹布局优化案例,并与串行算法和基于OpenMP的并行算法对比,验证基于MPI的并行算法的效果和效率。为实现该目标,主要研究内容如下:
(1)采用MPI和VC 编写并行粒子群算法
(2)利用PC集群构建并行计算硬件平台;
(3)工件的参数化建模:采用ANSYS建立3-2-1定位方式下工件的有限元分析模型,编写APDL命令流文件;
(4)通过与现有串行算法和单机并行算法比较,验证基于多机集群的并行优化算法在机床夹具布局优化中的效果。
研究内容间的关系如图1-1所示:
图1-1研究内容间的关系
夹具布局优化模型
2.1 夹具布局优化模型
剩余内容已隐藏,请支付后下载全文,论文总字数:31737字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;