APP下载

基于SiPESC平台的拓扑优化模块开发及应用

2013-09-27飞,帅,盛,松,

大连理工大学学报 2013年2期
关键词:插件模块优化

牛 飞, 梅 帅, 张 盛, 陈 飙 松, 程 耿 东

(大连理工大学 工业装备结构分析国家重点实验室,辽宁 大连 116024)

0 引 言

结构拓扑优化旨在寻求结构的最优拓扑形式,使得结构目标性能在满足相关约束条件下达到最优.近30年来,拓扑优化研究得到了迅速发展,并在工业界得到广泛的应用,已成为设计师在概念设计阶段实现创新设计的有力工具[1].

对于连续体结构的拓扑优化研究可追溯到1988年,Bendse等基于“微结构”思想提出了均匀化方法(homogenization method)[2].之后,国内外学者们展开了丰富的相关研究,相继提出了多种结构拓扑优化模型,如SIMP(solid isotropic material with penalization)方法[3]、进化法[4]、水平集方法[5]等.其中SIMP方法由于优化设计变量较少,优化求解实现简单,备受学者和工程师们的青睐,从而得到了更为深入的研究和应用.

随着结构拓扑优化技术在工程中的成功应用,近年来,几乎所有的商用有限元软件都在增加结构拓扑优化功能,比如MSC.Nastran、ANSYS等.与此同时,一些以结构拓扑优化为主要特色的商用软件也相继问世,如Altair公司的OptiStruct、FE-DESIGN公司的TOSCA、VR&D公司的GENESIS以及Quint公司的OPTISHAPE-TS等[6].无一例外,这些软件的拓扑优化功能都是围绕结构的刚度、频率、应力等基本性能要求而开发,所采用的模型、算法也都是以往比较成熟的研究成果.但是随着工程结构的性能需求日益多样化,结构设计本身的复杂化,使得工程实际问题远远超出了优化软件所能解决的范畴.受商用软件本身封闭性和滞后性的制约,大量的学者针对复杂工程问题的新的研究成果不能及时在软件中实施并应用到工程实际中.

另外,拓扑优化过程涉及结构响应分析和性能评价等问题,结构分析模块是实现拓扑优化程序的一个重要环节.但是对于复杂问题(例如结构模型复杂、非线性问题等),开发结构分析程序需要投入大量的时间和精力,因此大多数学者的研究对象都是简单的平面或实体单元,且结构模型规则.当然也有一些学者在商业软件或开源有限元分析程序(ANSYS、Nastran、OpenSees等)上进行了一定的二次开发来研究复杂问题,然而这些商业CAE软件均采用内嵌数据管理系统,其数据内部专用、接口不对外开放等特点依然给科研工作者带来了大量的附加工作.

SiPESC[7](software integration platform forengineering and scientific computation,工程与科学计算集成化软件平台)是由大连理工大学工业装备结构分析国家重点实验室研发的面向工程与科学计算的集成软件系统.如图1所示的体系结构,其所有应用功能均基于插件实现,具有可扩展、可维护、可重用、动态加载/卸载、使用灵活等优点.

图1 SiPESC软件体系结构Fig.1 Software architecture of SiPESC

在开放接口的数据库管理系统[7]以及基于此系统的结构分析系统 SiPESC.FEMS[7-8]逐渐成熟的条件下,基于SiPESC.FEMS、工程数据库管理系统及插件技术设计开发出了结构拓扑优化设计模块SiPESC.TOPO.目前,此模块主要围绕结构刚度设计功能进行开发,具有以下特点:

(1)给定结构刚度要求的最小化结构重量设计;

(2)给定材料用量约束下的结构最大化刚度设计;

(3)采用结构最大化刚度设计的广义算法列式,可以考虑弹性力学的三类边界条件;

(4)提供多种密度过滤策略以及灵敏度过滤来控制优化迭代的数值不稳定现象;

(5)可灵活选用准则法、数学规划法(MMA、SLP、SQP)等优化算法;

(6)跨平台,支持Linux、Windows等操作系统;

(7)组合结构优化,设计变量支持膜、板、壳、实体等单元,结构响应分析支持SiPESC.FEMS所具有的所有单元类型.

本文介绍SiPESC.TOPO的设计思路,并以结构最大刚度设计为例阐述SiPESC.TOPO的设计与实现方法.

1 SiPESC系统功能简介

SiPESC.TOPO是基于SiPESC平台开发的结构拓扑优化模块,其开发过程延续了SiPESC系统“平台/微核心+插件”的设计思想,开发者借助开放接口将优化功能与现有分析模块SiPESC.FEMS通过插件管理系统集成,同时依靠工程数据库管理系统实现数据的统一管理.

如图2所示的插件式体系结构是一种灵活的组件式结构,它将程序的功能打散,分布于不同插件中.插件作为独立于程序系统的开发模块,能够动态地插入系统,并且可以被自由地加载、卸载或替换.结构拓扑优化模块SiPESC.TOPO是具备多个应用插件的系统.

图2 插件体系结构Fig.2 Architecture of plugin

SiPESC工程数据库管理系统采用统一的数据管理接口,实现了大规模计算中的多类型数据、大数据块(如总刚度阵)的管理.采用高效的数据存储、动态扩展和检索技术,实现了计算数据的高效访问.采用索引的方式来实现对ID的快速检索功能;同类型数据ID的唯一性保证了查询算法的高效性.以结构拓扑优化为例,为消除网格依赖、棋盘格式等数值不稳定现象,优化过程中需要对灵敏度或者密度进行过滤,而目标单元的邻域及邻域内各个单元权重的计算和存储都需要对系统数据库进行操作,借助数据ID可方便准确地实现这些操作.

2 SiPESC.TOPO的设计思路

拓扑优化求解过程主要包括结构拓扑更新、结构响应分析、优化问题建立、优化问题求解以及优化过程异常处理5个要素,它们依据各自的算法理论独立求解.SiPESC.TOPO的设计目标是实现各部分求解算法的动态选择、替换(如灵敏度过滤与密度过滤等的动态选择、最优准则法与各种数学规划法的动态替换).

2.1 结构拓扑优化设计流程

对于连续体结构的拓扑优化问题,采用有限元方法进行求解时,其基本流程如图3所示.首先将结构用有限单元进行离散,施加荷载和位移边界条件,得到结构模型数字化信息;其次,在模型中选取部分单元定义为优化问题的设计域;再次,对结构进行有限元分析,计算优化问题求解所需要的各种响应,并进行相应的灵敏度计算;将响应值以及灵敏度值代入优化算法程序来更新设计变量,以此实现结构拓扑的改变;最后对更新后的结构拓扑进行新一轮的分析优化直到收敛.

图3 拓扑优化一般求解流程Fig.3 The general flow chart of topology optimization

2.2 SiPESC.TOPO需求分析

考虑到结构拓扑优化问题本身的复杂性和多样性,在具体问题的求解过程中,可能用到不同的结构响应和优化算法,这就要求优化程序具有灵活性,能够根据所解决的实际问题,方便地将不同功能进行动态组合.这就是开发SiPESC.TOPO的出发点和实现目标.

此外,在实际工作中,常用的CAE软件已经无法满足科研需求,特殊的问题需要更为专业的求解软件,甚至需要研究人员自己开发求解程序.这就要求SiPESC.TOPO能够方便地集成专业软件的求解器或者是用户开发的程序代码,以此来提高科研工作效率.对于SiPESC.TOPO来说,插件管理平台的可扩展性使用户能够根据自己的需求选择相应的响应分析插件或编写属于自己问题的求解插件,动态地选择或替换优化算法、过滤算法等.

3 SiPESC.TOPO程序实现

结构最大化刚度设计是拓扑优化中最一般的研究模型,也是商用软件中最基本的功能.本章以此为例来介绍SiPESC.TOPO的具体实现方法.

在结构最大化刚度设计中,外力在结构变形过程中所做的功,即结构柔顺性被用来作为目标函数.然而文献[9]的研究工作指出,当结构在同时具有给定的外力和指定的非零位移情况下,即混合边界条件下,传统优化列式不再适用,需要采用他们提出的如下广义优化列式:

上述列式适用于所有弹性力学三类边界条件下的结构最大化刚度设计.其中N表示设计域内的有限单元个数;ρ为设计变量向量,即单元人工密度向量;K为结构总体刚度矩阵,由单元刚度矩阵累加而成;V为给定的材料总量;fp和uw分别是已知的外力向量和指定非零位移向量;up和fw是相应的位移未知向量和反力未知向量,fw可借助有限元分析模块SiPESC.FEMS中的org.sipesc.fems.MComputeKU扩展来求解.

在SiPESC.TOPO中,本文选用式(1)来建立优化模型.图4给出了结构拓扑优化插件的主要结构,其包括的扩展有:(1)插值模型扩展;(2)优化算法扩展;(3)过滤函数扩展;(4)文件输入输出扩展;(5)结构响应计算扩展.其中(1)和(5)属于工具扩展,暂不考虑其扩展性;针对具有多种可选算法的(2)、(3),本文采用设计模式中的工厂方法[10],首先定义用户可见的抽象类,然后在子类中重定义抽象操作即实现具体算法,最后利用工厂对象实现子类的动态调用.下面就上述主要扩展进行详细说明.

图4 使用插件设计器创建的扩展Fig.4 The extension created by plugin designer

3.1 插值模型扩展

扩展名:org.sipesc.topo.MTopoElementStiff

此扩展的功能是通过引入合理拓扑变量插值模型,将原有的离散变量优化问题连续化以便于优化问题的求解.这里选用SIMP插值模型,它通过对中间密度材料的单元刚度进行惩罚使得连续变量优化问题趋近于原来的0-1优化问题.扩展主要接口如下:

(1)扩展初始化:bool initialize(var,…);

(2)提取单元刚度矩阵:MMatrix getElementStiff(var,…);

(3)修改单元刚度矩阵:bool updateElement-Stiff(var,…).

3.2 优化算法扩展

扩展名:org.sipesc.topo.MOptiAlgorithm.

此扩展的功能是选取合适的优化算法对已经建立的优化模型进行求解.目前常用的优化算法主要有优化准则法和数学规划算法,前者针对不同类型的优化问题需要推导不同的优化准则,一般用于单约束情况,但其求解速度较快;后者不但能够用于单约束情况,而且能用于多目标多约束等复杂工程问题的求解建模,更为可靠.

考虑到优化准则法与数学规划法的不同特点,SiPESC.TOPO中,数学规划法作为通用算法,优化准则法作为定制算法使用.SiPESC平台的可扩展性能使不同算法灵活添加、调用,用户依据具体工程问题利用接口编程定制插件,即插即用.当用户需要使用新的算法时,只需继承此虚基类并重新实现下面的接口即可.扩展主要接口如下:

(1)扩展初始化:bool initialize(var,…);

(2)优化问题求解:bool update(var,…).

3.3 过滤函数扩展

扩展名:org.sipesc.topo.MTopoFilter.

此扩展的功能是利用过滤技术解决优化过程中的数值问题,例如,解决拓扑优化中的棋盘格式、网格依赖性及灰度单元等数值问题,相对于其他方法具有概念简单、容易操作以及通用性强的优点.本扩展主要采用密度过滤类算法,实现了Xu等[11]提出的体积守恒型非线性密度过滤策略.此扩展主要接口如下:

(1)扩展初始化:bool initialize(var,…);

(2)灵敏度更新:QMap〈int,double〉updateSensitivity(var,…).

考虑到程序开发的长远需要,工厂模式被用来设计此扩展.所设计的工厂对象根据过滤算法类型动态创建具体算法,实现算法的动态调用.例如,针对体积守恒的非线性密度过滤方法,调用代码如下:

这里,MTopoVolNLDensityFilter为工厂对象,MTopoFilter为过滤算法的基类,所有的过滤算法均基于基类实现,按基类方法调用,保证了代码统一性;系统扩展性由工厂机制完成,即上述代码中的工厂名称可动态替换.

3.4 结构响应计算扩展

扩展名:org.sipesc.topo.MStiffResponse.

此扩展是一个工具扩展,其作用是根据结构有限元分析结果来计算优化模型中的目标/约束函数值以及相关的灵敏度.对于基于广义列式描述的结构最大化刚度设计问题,求解式(1)中所定义的目标函数时,需要分开计算指定位移uw处的反力fw,以及指定外力fp处的位移up,然而此目标函数对设计变量的灵敏度的计算仍需要求解单元应变能.其主要接口如下:

(1)单元应变能计算:double getElement-UTK0U(var,…);

(2)单元体积计算:double getElement-Vol(var,…);

(3)目标函数计算:double getGeneral-Stiff(var,…).

对于目标函数的计算,当结构受到混合边界条件作用时,调用SiPESC.FEMS中的扩展MComputeKU;当结构仅受指定外力或是指定位移作用时,目标函数自动退化为应变能的表达,此时调用单元应变能计算扩展更为简单.

3.5 软件研发模式

基于SiPESC平台的关键技术是插件和数据库.SiPESC.TOPO针对结构拓扑优化计算的需求,开发了相应的扩展模块,利用已有的插件和数据库系统完成了计算功能;构建了整体的优化求解流程,并针对可能的扩展需求,提出了基于工厂模式的解决方案.作为平台类软件的研发,开放性是核心目标;SiPESC.TOPO实现的框架和开放性机制,为将来的多人/多组织协同开发提供了机制和模式,也为功能动态扩展提供了保证.上述介绍的扩展,均可在后续应用中被二次开发模块调用,也可以在需要扩展处实现动态替换/更新.

4 SiPESC.TOPO算例

4.1 二维悬臂梁拓扑优化设计

如图5(a)所示的悬臂梁结构,长L=2m,高H=1m,左端根部固定,右端中点作用竖直向下的集中力P=100.0N.材料的弹性模量E=10.0 MPa,泊松比ν=0.3,材料体分比为0.3,进行最大刚度设计.

采用四节点平面应力单元对结构进行离散,初始网格划分100×50.采用体积守恒型非线性密度过滤,过滤半径0.05m,优化求解采用MMA算法.优化后的最优拓扑如图5(b)所示,最优设计拓扑构型清晰,传力路径合理;目标函数迭代历史曲线如图5(c)所示,目标光滑收敛.此经典算例验证了SiPESC.TOPO拓扑优化功能的正确性.

图5 二维悬臂梁算例Fig.5 2-D cantilever beam example

4.2 三维结构拓扑优化设计

如图6(a)所示的正六面体初始设计域,l1=0.90m,l2=0.45m,模型底部4个角点固定,顶部表面受对称的线荷载P=10.0kN/m作用.材料的弹性模量E=68.0GPa,泊松比ν=0.3,材料体分比为0.25,进行最大刚度设计.

采用八节点正六面体单元对结构进行离散,初始网格30×30×30.同4.1一样,仍然采用体积守恒型非线性密度过滤,过滤半径0.05m,优化求解采用MMA算法.优化后的最优拓扑如图6(b)所示,得到了清晰的结构拓扑;目标函数迭代历史曲线如图6(c)所示,曲线收敛光滑.此算例说明SiPESC.TOPO可用于求解三维结构拓扑优化问题.

图6 三维结构优化算例Fig.6 3-D structure optimization example

4.3 混合边界条件下结构拓扑优化设计

如图7所示两端固支梁,宽400mm,高100 mm,单位厚度,结构同时受到A点竖直向上的外力F=1N和B点竖直向下的指定位移D=10mm的作用.材料的弹性模量和泊松比分别为1.0MPa和0.3.材料体分比为0.3,进行最大刚度设计.

图7 两端固支梁模型Fig.7 The beam model clamped at both ends

采用四节点平面应力单元对结构进行网格离散,初始网格划分200×50.同4.1一样,仍然采用体积守恒型非线性密度过滤,过滤半径4mm,优化求解采用 MMA算法.进一步,为了说明SiPESC.TOPO进行最大刚度设计时所采用的广义优化列式的优越性,还分别采用了ANSYS、MSC.Nastran以及OptiStruct进行求解.其中OptiStruct对此种情况不予求解并给出错误警告,其他程序求解结果如图8所示,可以看出,当结构边界上同时作用有指定的外力和非零位移时,SiPESC.TOPO得到了清晰的拓扑构型,并且迭代过程稳定收敛.ANSYS和MSC.Nastran虽能以最小化柔顺性为目标函数进行求解并也给出了材料分布,但是从目标函数迭代历史曲线来看违反了最小化要求,不理想.

图8 不同程序平台的优化结果Fig.8 The optimal results under different program platforms

5 结论与展望

本文基于公共服务CAE软件平台SiPESC,探讨了结构拓扑优化模块SiPESC.TOPO的开发.该模块在SIMP插值模型的基础上实现了连续体结构拓扑优化,并能够对优化过程中出现的棋盘格式、网格依赖性以及灰度单元等数值不稳定现象进行处理.更值得一提的是,该模块的最大刚度设计功能依据最新提出的结构最大刚度设计的广义优化列式,能够适用于各类边界条件的情况,这是其他商用程序所不具备的.

另外,SiPESC.TOPO结构拓扑优化模块继承了SiPESC平台的优势,具有较好的开放性,并且其内部插件的动态扩展,使得在此基础上的二次开发灵活简单.该拓扑优化模块可对大规模的复杂结构进行拓扑优化设计,能够将结构的建模、分析、优化、可视化等系列操作集成一身,并具备跨平台优势.因此SiPESC.TOPO适合于理论和算法研究;同时随着SiPESC.FEMS功能提升,SiPESC.TOPO将具备解决大规模复杂工程问题拓扑优化的能力.

目前此模块依然处于开发阶段,在求解问题种类、优化效率、用户界面操作性方面需要进一步拓展与完善,研究工作的目标是逐步构建结构拓扑优化领域面向科学研究与工程应用的开放计算平台.

[1]Bends e M P,Sigmund O.Topology Optimization:Theory,Methods,and Applications [M].New York:Springer,2003.

[2]Bends e M P, Kikuchi N.Generating optimal topologies in structural design using a homogenization method [J].Computer Methods in Applied Mechanics and Engineering,1988,71(2):197-224.

[3]Bends e M P.Optimal shape design as a material distribution problem [J].Structural Optimization,1989,1(4):193-202.

[4]Xie Y M,Steven G P.A simple evolutionary procedure for structural optimization [J].Computers &Structures,1993,49(5):885-896.

[5]Sethian J A,Wiegmann A.Structural boundary design via level set and immersed interface methods[J].Journal of Computational Physics,2000,163(2):489-528.

[6]Rozvany G I N.A critical review of established methods of structural topology optimization [J].Structural and Multidisciplinary Optimization,2009,37(3):217-237.

[7]张洪武,陈飙松,李云鹏,等.面向集成化CAE软件开发的SiPESC研发工作进展[J].计算机辅助工程,2011,20(2):39-49.ZHANG Hong-wu,CHEN Biao-song,LI Yunpeng,etal.Advancement of design and implementation of SiPESC for development of integrated CAE software systems [J].Computer Aided Engineering,2011,20 (2):39-49.(in Chinese)

[8]张 盛,杨东生,尹 进,等.SiPESC.FEMS的单元计算模块设计模式[J].计算机辅助工程,2011,20(3):49-54.ZHANG Sheng,YANG Dong-sheng,YIN Jin,etal.Design pattern of element computation module of SiPESC.FEMS [J].Computer Aided Engineering,2011,20(3):49-54.(in Chinese)

[9]NIU Fei,XU Sheng-li,CHENG Geng-dong.A general formulation of structural topology optimization for maximizing structural stiffness[J].Structural and Multidisciplinary Optimization,2011,43(4):561-572.

[10]Gamma E,Helm R,Johnson R,etal.Design Patterns:Elements of Reusable Object-oriented Software [M].Boston: Addison-Wesley Professional,1994:116-117.

[11]XU Sheng-li,CAI Yuan-wu,CHENG Geng-dong.Volume preserving nonlinear density filter based on heaviside functions [J].Structural and Multidisciplinary Optimization,2010,41(4):495-505.

猜你喜欢

插件模块优化
28通道收发处理模块设计
“选修3—3”模块的复习备考
超限高层建筑结构设计与优化思考
民用建筑防烟排烟设计优化探讨
关于优化消防安全告知承诺的一些思考
一道优化题的几何解法
自编插件完善App Inventor与乐高机器人通信
基于jQUerY的自定义插件开发
基于Revit MEP的插件制作探讨
集成水空中冷器的进气模块