江敏,周琴,齐龙,卢风顺
(1. 绵阳职业技术学院 机电工程系,四川 绵阳 621000;2. 中国空气动力研究与发展中心 计算空气动力研究所,四川 绵阳 621000)
一直以来,航空/航天飞行器的设计和研制都涉及许多学科(如空气动力学、结构力学、热力学等),是一个非常复杂的迭代过程。早在20世纪80年代,SOBIESZCZANSKI-SOBIESKI J[1]便指出飞行器设计时必须考虑多个学科之间的交互,否则肯定无法得到最优设计。因此,多学科优化设计(MDO)成为国内外航空/航天领域的一个研究热点[2-3]。
多学科优化设计框架是MDO的计算机软件载体,美国国家航空航天局(NASA)将其视为实现未来计算流体力学技术革命的六项关键技术之一[4]。优秀MDO框架的必要技术特征包括友好的人机交互界面、适应分布式计算环境、集成多种学科分析程序、提供丰富的优化算法、易扩展和维护等。目前,国际上已有iSIGHT和ModelCenter等成熟的商业软件,同时也有诸如pyACDT[5]和OpenMDAO[6]等原型系统。而国内的MDO框架大多是基于国外商业软件二次开发得到的:西工大的谷良贤等[7]于2004年研究了多学科设计优化集成环境的集成模式,但未研制出具体的MDO软件;王丽芹等[8]基于iSIGHT提出了一种多学科综合优化框架的解决方案,探讨了其在导弹武器系统研制中的应用前景;针对机床整机结构方案设计问题,牛文铁等[9]利用iSIGHT搭建了机床的整机结构方案设计及集成优化系统框架,取得了较好的多学科优化设计效果。
可以看出,在多学科优化设计[10-11]框架研究方面,国内与国外还存在非常大的差距,目前主要集中在如何利用商业软件搭建可用的工程解决方案,而在软件系统化、产品化方面还有很长的路要走。因此,在我国航空航天工业大力发展自主计算流体力学软件的大背景下,迫切需要发展一款具有自主知识产权的MDO框架软件。
在设计MDO软件时,需严格遵循软件工程领域的高内聚、低耦合设计思路,并借鉴一些大型企业级软件的分层特点,将其体系结构设计为图1所示的界面层、自适应优化层、通信协议层、管理层和功能支撑层。采用该设计方案有如下两个方面的好处:一是结构清晰,方便自顶向下的整体设计;二是各层之间的关联性较弱,可以按模块分解协同开发时的任务量。
图1 MDO软件体系结构
界面层允许用户通过友好的人机交互接口来操作MDO框架软件,主要采用MVC(模型-视图-控制)模式和事件机制来驱动整个系统的运行。该层除包含丰富的界面控件元素外,还提供了工作流定义、过程监控以及输入、输出功能。
自适应优化层是多学科优化设计的核心部分,它集成EI修正、代理模型[12]、优化目标处理、专家系统等模块和通用的优化设计算法,借助计算流体力学(CFD)技术或试验数据库的数据支撑,完成各种气动外形的优化设计功能。
通信协议层主要用来保证分布式MDO框架的整体互通,例如借助SSH终端协议实现远程登录,利用SFTP文件传输协议实现各种数据文件的上传/下载功能。
管理层主要负责为自适应优化层生产、收集和存储数据,提供目录管理、文件传输等基础功能。根据专家系统模块生成的“静态”计算状态表,管理层将学科分析程序调度到本地或者集群上执行,并根据计算结果自动生成“动态”计算状态表,最终生产出计算目标/约束所需要的数据。这些数据通常需要进行特定的处理和转换,并且按照预定义的规则写入数据库来实现数据的永久性存储。
功能支撑层集成众多的学科分析程序(如计算流体力学CFD、计算电磁学CEM、计算结构动力学CSD等),为整个优化设计流程提供基础数据,是决定MDO框架计算能力和设计精度的关键。另外,该层还包括计算资源相关的基础设施,包括本地计算资源和大规模集群资源。
工作流[13-14]就是一系列相互衔接、自动进行的业务活动或任务,目前已广泛应用到各类信息化系统中,主要用来提高办公效率、规范性和适应性。
图2为进行多学科优化设计时的完整流程,包含顺序、循环等复杂逻辑。除此之外,在满足输入条件的前提下,用户可能仅仅需要某些子业务,而不必走完整个设计流程。表1仅列出10余种优化设计子业务示例,并未覆盖所有的子业务集合。因此,非常有必要借助工作流技术实现优化流程的自由定制,提高MDO框架的适应性。
图2 多学科优化时的完整业务流程
表1 多学科优化设计存在的业务流程举例
MDO框架采用的开发工具基本上属于开源或者免费软件。下面逐个进行介绍。
集成开发环境采用Eclipse (Juno版)。它是一个开源的、基于Java的可扩展开发平台,借助插件机制来构建集成开发环境,已支持Java、C/C++、Fortran、Python、PHP等众多语言。
编程语言采用C++和Python。它们都是面向对象的程序设计语言,其中C++为编译型,而Python为解释型的。C++/Python混合编程已被广泛用于复杂系统的开发实践。Python版本号为2.7.5。
图形开发包采用wxWidgets。它是一款针对桌面端或者移动应用的图形界面开发框架,包含大量的图形用户接口,拥有默认的程序执行方式和事件处理机制。同时,它是完全跨平台的并且具备很好的本地视窗效果。此处采用2.9.5版本的wxWidgets。
数据库服务器采用MySQL。它是世界上比较流行的开源关系型数据库,可支持拥有上千万条记录的大型数据,具备较好的可移植性。MDO框架借助它实现均匀设计、学科分析结果的持久性存储。MySQL采用的是5.1.73社区版。
远程访问采用针对Python的SSH模块Paramiko。它是一款免费软件,实现了针对安全远程连接的SSH2协议,具备远程访问、文件传输等功能。在此采用的Paramiko版本为1.9.0。
1)自适应优化设计
自适应优化设计模块能够根据寻优结果自动判断是否进行修正。该过程不需要用户的任何干预性操作;更重要的是,它可以提高得到优化结果的可能性。
以采用代理模型的优化为例来阐述自适应优化设计。整个优化过程包含一个自适应迭代步骤:如果目标寻优后未得到优化解,该模块会根据EI修正准则生成新的采样点,对它们再次进行学科分析,并根据新采样点和原采样点的学科分析结果,重新构建代理模型和目标寻优,直到获得满意的优化解为止。关于采用代理模型和EI (expected improvement) 修正准则的算法细节,请参考孙俊峰等人的研究成果[15],在此不再赘述。
2)目标/约束定义
下面以一个简单的例子来说明如何定义目标和约束。假设某优化问题的目标为最大化马赫数0.6时的最大升力系数、约束为最大升力系数>0.94,那么可以将该目标和约束组合定义为
其中clmax0d6为优化变量,而等号右侧的数学形式依赖于具体的优化程序。
3)专家系统
专家系统模块实际处理的是优化变量,目前可支持切片型、插值型和定制型三类优化变量。
对切片型优化变量来说,其变量值可以从学科分析计算结果中直接提取或者经过简单整理得到。例如,假设优化变量clmax0d6表示马赫数0.6时的最大升力系数,那么clmax0d6便属于切片型。求解切片型优化变量时,专家系统模块会生成一系列静态的计算状态表;所有状态计算完毕后便可整理计算结果,得到切片型优化变量的值。
图3描述了MDO框架运行时的逻辑流程,即经过项目配置、问题定义、采样、学科分析等必要步骤,然后才能进行建模和优化。下文着重介绍整个MDO框架的数据流关系。
图3 MDO框架运行流程
MDO框架的数据流涉及设计空间变量范围、采样文件、静态计算状态表和修正采样数据等四种数据,其中第一种数据是采样步骤的输入,而后三种是学科分析的输入。
在设计空间定义步骤,MDO框架以表格形式和半交互方式帮助用户定义设计空间,其最终输出是每个设计变量的范围。
对于所有的设计变量,当在其相应范围内给每个设计变量取值,便形成了一个采样点;依此类推,可以得到规定数量的采样点(即初始采样点集,主要用于学科分析阶段的网格生成步骤)。
在优化变量配置部分,专家系统模块辅助生成“静态”计算状态表,方便多学科分析过程的实现。需要注意的是,在执行多学科分析时,MDO框架会根据学科分析结果自动生成“动态”计算状态表,从而进行某些特定类型(例如插值型和定制型)的学科分析。
为检验MDO框架的实际性能,本节基于该优化框架对某航天器外形进行多学科多目标优化设计,对应的优化问题如下式所示:
其中下标0代表基准外形。
该航天器的外形由多个部件构成,其中机身是此次优化重点关注的部位,选取的设计变量为机身头部半径、机身最大宽度、第三段后部上半部高度、第四段长度、机身后部V尾切平面起点对应角度、机身后部V尾切平面角度和机身座舱起始处角度。针对上述7个设计变量,试验设计采用7因素6水平的均匀设计表U60(67),样本数为60,即对60个外形进行学科分析。多目标优化算法的运行参数设置如下:种群规模400,优化代数400,交叉概率0.8,变异概率0.2。
在进行多学科分析、建模和优化后,可以得到包含14个样本的解集。经验证,其中10个样本是优化解,它们相对于基准外形的优化效果如图4所示。从图中可以看出,整体性能较好的外形为opt2、opt3和opt9,这些外形的3个指标性能都提高2%以上。对于指标Heat_m7a15,外形opt4、opt8和opt10表现较好,性能都比基准外形提高8%以上。对于指标Cl_m0d2a12,性能最好的外形为opt1、opt2和opt3,它们都比基准外形的性能提高5%以上。因此,设计者可根据实际情况选择自己所需要的优化外形。
对于该航天器外形,MDO框架得到的优化结果与人工操作的完全相同,但前者具有更高的自动化程度。
针对国内自主产权优化设计框架欠缺的问题,本文基于工作流技术设计实现了一款多学科多目标气动外形优化设计框架。该MDO框架能够整合气动力、气动热等学科分析程序,集成各类多目标优化算法、代理模型以及模型参数化技术,支持本地计算和后台大规模集群计算,借助数据库实现关键数据的持久存储,可提高优化设计过程的自动化程度。该MDO框架的实现,有助于解决国内优化设计领域自主软件欠缺的问题。
下一步的工作内容包括两个方面:一是升级软件的工作流引擎;二是利用其他工程算法,进一步对所研制的MDO软件进行大规模测试。