本发明专利技术提出一种基于OpenCL的并行差分进化算法的翼型优化设计方法,用于机翼翼型设计。选定基准翼型、型函数,将型函数系数作为设计变量,并确定优化目标函数,将差分进化算法的步骤根据所处理的数据分成不同的阶段,将各阶段封装在不同的内核中,基于OpenCL运行。种群更新中,应用变异算子产生测试向量,应用交叉算子产生子代;对种群中个体还原翼型形状,检验是否满足几何约束;使用CFD分析,求得个体的适应度,寻找最优个体,检验是否满足性能约束;最后迭代结束,将最优的结果拷贝回主机内存。本发明专利技术实现了翼型设计过程的并行处理,在有效空间内进行充分搜索,缩短了设计周期,实现跨平台的翼型优化设计,提高了设计效率。
【技术实现步骤摘要】
本专利技术涉及机翼翼型设计
,以及计算机仿真与优化
,具体涉及一种基于OpenCL (Open Computing Language,开放计算语言)的并行差分进化算法的翼型优化设计方法。
技术介绍
翼型选择与设计是飞机设计前必须进行的一项重要工作,D. P. Raymer指出“就许多方面来说,翼型就是飞机的心脏。”这是因为机翼是飞机产生升力和阻力的主要部件,而构成机翼的翼型对飞机性能有很大影响。翼型影响着巡航速度,起飞和着陆性能,失速速度,操纵性能(特别是接近失速的时候)和所有飞行阶段的空气动力效率。设计具有诸如高升力、低阻力等优秀气动性能的翼型对于飞机、导弹等具有重要的意义。翼型优化设计的目的是在给定约束条件下,确定尽可能好的翼型形状,最大限度地提高飞机性能和飞行品质。传统翼型优化设计迭代过程中需要频繁的计算目标函数的梯度,计算梯度的方法如最速下 降法,共扼梯度法,牛顿法等,而在工程计算中,梯度的计算往往很困难。现代基于遗传算法(GA)及计算流体动力学(CFD)的数值优化方法虽然可找出全局最优解,但是要对种群进行大量的选择、交差、变异操作,计算量很大,且受种群的规模及进化代数的影响,遗传算法容易收敛于局部解。差分进化(Differential Evolution, DE)算法是一种基于群体进化的算法,是Storn R和Price K在1995年提出的,是进化类算法的一个分支。它能够通过种群内个体间的合作与竞争来实现对优化问题的求解,即具有记忆个体最优解和种群内信息共享的特点,其本质是一种基于实数编码的具有保优思想的贪婪遗传算法。对于简单的变异操作和一对一的竞争生存策略,差分进化算法用实数编码来实现,这使得遗传操作的复杂性大大降低。和其他进化类算法相比,差分进化算法虽然保留了基于种群的全局搜索策略,但是其特有的记忆能力,使其不需要借助问题的特征信息就可以动态跟踪当前的搜索情况,及时地对搜索策略做出调整。这也是差分进化算法具有较强的全局收敛能力和较高的鲁棒性的主要原因之一。差分进化算法在被提出的第二年就证明其是最快的进化算法。同时它还具有内含并行性,算法采用种群的方式组织搜索,因而可以同时搜索解空间的多个区域,并相互交流信息,这种搜索方式使得它虽然每次只执行与种群规模N成比例的计算,而实质上己经进行了大约0(N2)次有效搜索,能以较少的计算获得较大的利益。由于其简单易用、稳健性好以及强大的全局搜索能力,使得差分进化算法已在多个领域取得成功。由于设计当中计算量越来越大,往往使需求远远超过目前计算机的计算能力,为了解决这个矛盾,人们提出了并行计算的思想。目前并行计算的发展方向随着计算机技术的发展也经历着变化,从集中式机群到分布式PC再到当前出现的多处理器以及多CPU+GPU的架构发展。当今主流计算机的处理能力主要来自CPU和GPU (Graphic Processing Unit,图形处理器)。2008年,苹果公司向Khronos工作组提交了一份关于跨平台计算框架的计划书,该计划由苹果公司发起,由AMD、IBM、Intel、NVIDIA等业界主要研发者和制造商作为技术合作方参与,旨在建立一个真正支持异构计算网络的API (Application ProgrammingInterface,应用程序编程接口)。这样的异构计算网络可以包含各种形态的计算资源,如CPU、GPU、Cell、FPGA等。由各种处理器和软件制造商代表组成的Khronos计算工作组于2008年6月成立,它在苹果公司提交的计划书的基础上进一步细化该跨平台计算框架的功能,于2008年12月发布了 OpenCL I. O规范。目前OpenCL规范已发展到I. 2版本。OpenCL全称Open Computing Language,即开放计算语言,是一个用于异构平台上编程的开放性行业标准。OpenCL为异构平台提供了一个编写程序,尤其是并行程序的开放的框架标准。OpenCL所支持的异构平台可由多核CPU、GPU或其他类型的处理器组成,例如x86CPU、GPU、Cell处理器乃至于ARM构架的DSP处理芯片等等。OpenCL会将各类计算设备组织成一个统一的平台。OpenCL能够调用系统内全部计算资源,也就是说无论是CPU、GPU,还是今后额外加入的协处理器,全部都能够在公共计算平台上得到调用。OpenCL不仅仅是一种编程语言,更是一个完整的并行编程框架,它包括编程语言,API,函数库以及运行时系统来支持软件在整个平台上的开发。OpenCL提供了基于任务和基于数据两种并行计算机制,它极大地扩展了 GPU的应用范围,使之不再局限于图形领域。由于OpenCL的平台无关性和真正意义上的异构计算资源解决方案,它的使用者持续迅速增长,在并行计算领域具有广泛的应用前景。
技术实现思路
本专利技术的目的是将OpenCL的异构并行框架与差分进化算法相结合,实现基于并行差分进化算法的翼型优化设计方法。本专利技术翼型优化设计方法充分利用计算资源,在有效空间内进行充分搜索,缩短设计周期,实现跨平台的翼型优化设计,提高设计效率。本专利技术提供的,包括如下步骤步骤一选定基准翼型和型函数,将型函数的系数作为设计变量,确定所设计翼型的翼型解析函数 所设计翼型的上表面yu(X)表示为本文档来自技高网...
【技术保护点】
一种基于OpenCL的并行差分进化算法的翼型优化设计方法,其特征在于,该方法包括如下步骤:步骤一:选定基准翼型和型函数,将型函数的系数作为设计变量,确定所设计翼型的翼型解析函数:所设计翼型的上表面yu(x)表示为:所设计翼型的下表面yl(x)表示为:其中,yub(x)、ylb(x)分别为基准翼型的上、下表面的几何形状,fk(x)为第k个基准翼型的型函数,ck为型函数fk(x)的系数,Nu表示控制基准翼型上表面几何形状的型函数的个数,(N-Nu)表示控制基准翼型下表面几何形状的型函数的个数;步骤二:根据设计要求确定优化设计的目标函数;步骤三:查找支持OpenCL的硬件设备,并创建上下文;步骤四:创建命令队列及包含内核的程序,并进行在线编译;步骤五:创建程序执行过程中需要的内存对象,并初始化;步骤六:创建内核函数并设置内核函数的参数;步骤七:设置内核的索引空间并执行初始化种群内核,具体是:设xi(t)是第t代种群中的第i个个体,xi(t)=(xi1(t),xi2(t),…,xiN(t)),i=1,2,…,M;t=1,2,…,tmax;其中,xi(t)的每个分量对应一个设计变量,N是构成个体的染色体数,等于设计变量的个数;M为种群规模;tmax是最大进化代数;初始种群的t=0;生成初始化种群内核的操作是:在N维空间里,根据设计变量的取值范围随机产生满足约束条件的M个种群个体,初始生成的第i个种群个体i=1,2,…,M;j=1,2,…,N;其中,分别是生成的第i个个体中第j个设计变量的上界和下界,randij(0,1)是[0,1]之间的随机小数;使用clEnqueueNDRangeKernel函数将初始化种群内核放入命令队列中执行,并设置内核执行所需要的索引空间;步骤八:对初始种群中每个个体还原翼型形状,并检验是否满足几何约束,具体是:将初始种群中的每个个体带入步骤一的翼型解析函数中,还原每个个体对应的翼型形状,根据翼型几何约束检验每个个体对应的翼型形状,对不满足约束的个体,重复过程A,直到初始种群中的每个个体都满足几何约束;过程A为:利用步骤七生成种群个体的方法,重新生成新的个体并进行几何约束检验;步骤九:求得每个个体的适应度,具体是:首先,使用计算流体动力学分析方法,获取初始种群中每个个体对应的翼型的设计指标,然后通过目标函数确定每个个体的适应度,最后判断种群中适应度最优的个体是否满足性能要求,若满足则终止,返回适应度最优个体到主机内存,否则执行下一步骤;步骤十:应用变异算子产生测试向量,具体是:首先,从当前第t代种群中随机选择3个种群个体xp1、xp2和xp3,确定第t+1代种群中第i个个体的第j个设计变量所对应的测试向量hij(t+1):hij(t+1)=xp1j(t)+F*(xp2j(t)?xp3j(t)),i≠p1≠p2≠p3;其中,xp1j(t)、xp2j(t)和xp3j(t)分别表示个体xp1、xp2和xp3的第j个设计变量,xp2j(t)?xp3j(t)为差异化向量,F为缩放因子;然后,判断所确定的测试向量是否满足边界条件,如果不满足边界条件,则利用步骤七生成种群个体的方法重新生成测试向量;步骤十一:应用交叉算子产生子代,所产生的第t+1代种群第i个种群个体的第j个设计变量所对应的子代vij(t+1)为:其中,CR为交叉概率,randlij是[0,1]之间的随机小数,rand(i)是[1,N]之间的随机整数;步骤十二:对步骤十一得到的子代中每个个体还原翼型形状,并检验是否满足几何约束,具体是:将子代中的每个个体带入步骤一的翼型解析函数,还原每个个体对应的翼型形状,根据翼型几何约束检验每个个体对应的翼型形状,对不满足约束的个体,重复过程A,直到初始种群中的每个个体都满足几何约束,然后执行下一步骤;过程A为:利用步骤七生成种群个体的方法,重新生成新的个体并进行几何约束检验;步骤十三:求得子代个体的适应度,具体是:使用计算流体动力学分析方法,获取初始种群中每个个体对应的翼型的设计指标,通过目标函数确定每个个体的适应度;步骤十四:更新第t+1代种群的个体,具体是:比较第t代种群中第i个个体xi(t)的适应度f1与子代个体vi(t+1)的适应度f2,若f1大于f2,则更新第t+1代种群的第i个个体xi(t+1)为vi(t+1),否则,更新xi(t+1)为xi(t);更新完第t+1代种群的个体后,判断第t+1代种群中适应度最优的个体是否满足性能要求,若满足或者达到迭代上限tmax,则终止,返回适应度最优个体到主机内存,若不满足要求则...
【技术特征摘要】
1.一种基于OpenCL的并行差分进化算法的翼型优化设计方法,其特征在于,该方法包括如下步骤 步骤一选定基准翼型和型函数,将型函数的系数作为设计变量,确定所设计翼型的翼型解析函数 所设计翼型的上表面yu(x)表示为2.根据权利要求I所述的翼型优化设计方法,其特征在于,所述的步骤ニ中的目标函数,在设计指标超过I个的情况下,采用统一目标函数法得到,具体是设有q个设计指标,对应q个分目标函数も(X),f2 (X),…,f, (X),将所有的分目标函数统一到一个总的目标函数中:f (X) =f {fj (X),f2 (x), ..., f q (x)} , f (X)称为统一目标函数; 使用线性插值方法将各分目标函数規格化3.根据权利要求I所述的翼型优化设计方法,其特征在于,所述的步骤三具体包括如下子步骤 步骤3. I :两次调用clGetPlatformIDs函数,clGetPlatformIDs函数用来获取指定系统上可用的计算平台,第一次调用得到系统中可使用的平台数目,然后为平台对象分配空间,第二次调用,查询所有的平台,选择需要的OpenCL平台; 步骤3. 2 :两次调用clGetDevicelDs函数,clGetDevicelDs函数用来获取指定的设备,第一次调用查询设备数量,第二次调用检索得到要使用的设备;步骤3. 3 :使用clCreateContext函数构造上下文,上下文是指管理OpenCL对象和资源的上下文环境。4.根据权利要求I所述的翼型优化设计方法,其特征在于,所述的步骤四具体包括如下子步骤 步骤4. I :使用clCreateCommandQueue函数创建命令队列,...
【专利技术属性】
技术研发人员:李妮,苏泽亚,龚光红,田超,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。