首页 > 范文大全 > 正文

通用集成优化软件SiPESC.OPT的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇通用集成优化软件SiPESC.OPT的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要: 为实现针对复杂工程设计的具有通用设计目标和开放性的优化软件的自主研发,设计并实现面向通用优化计算需求的SiPESC.OPT软件.讨论优化软件开发在优化算法、试验设计和替代模型等方面的需求;设计具有应用层、中间层和核心层的SiPESC.OPT软件架构;根据该软件架构将SiPESC.OPT的功能模块划分为优化任务设计模块、试验设计与近似模型模块、求解器模块、后处理模块和子系统集成模块等.引入优化模型状态类以解耦优化模型类与优化算法类之间密切的依赖关系.风力发电机叶片优化算例和水轮机模型替代算例表明,SiPESC.OPT具有操作简单、功能全面和可扩展性强等特点,可用于复杂优化问题的求解.

关键词: 优化软件sipesc.opt; 优化方法; 可扩展性

中图分类号: TB115文献标志码: B

收稿日期: 2011-03-18修回日期: 2011-04-30

基金项目: 国家自然科学基金(90715037, 11072050, 10872041, 91015003, 51021140004);国家基础性发展规划项目(2010CB832704);

国家高技术研究发展计划(“八六三”计划)(2009AA044501)

作者简介: 杨春峰(1972―),男,山东邹城人,博士研究生,研究方向为计算力学软件系统研发,(E-mail)yangchunfeng@mail.dlut.省略;

陈飙松(1972―),男,广东佛山人,教授,博导,博士,研究方向为计算力学软件系统研发,(E-mail)bschen@dlut.省略

Design and implementation of general integrated

optimization design software SiPESC.OPT

YANG Chunfeng, CHEN Biaosong, ZHANG Sheng,

LI Yunpeng, ZHANG Hongwu

(Department of Engineering Mechanics, Faculty of Vehicle Engineering and Mechanics,

State Key Laboratory of Structural Analysis for Industrial Equipment,

Dalian University of Technology, Dalian 116024, Liaoning, China)

Abstract: To research and develop an optimization software with general purpose and openness for complex engineering design independently, SiPESC.OPT is designed and implemented, which can meet the general optimization computation requirements. The requirements about optimization software development, such as optimization algorithms, experiment design, and surrogate model, are discussed; the software architecture of SiPESC.OPT is constructed with three layers: application layer, middle layer and core layer; according to the architecture, SiPESC.OPT contains optimization task design module, experiment design and approximation surrogate module, solver module, post-process module, sub-system integration module, and so on. By introducing optimization model state class, the close dependent relationship between optimization model class and optimization algorithm class is decoupled. Wind turbine blade optimization example and hydraulic turbine surrogate model example demonstrate the capability of SiPESC.OPT for solving complex optimization problems and its characteristics, including simple-operation, full-feature and high-extensibility.

Key words: optimization software; SiPESC.OPT; optimization method; extensibility

0引言

最优化方法在自然科学、社会科学、国防、经济、金融、工程设计和现代化管理等许多领域有着广泛应用.[1]近几十年来,最优化方法在优化算法、优化问题和应用领域等方面发展迅速.优化算法由以梯度为基础的传统优化算法发展到智能优化算法,如遗传算法、模拟退火算法、人工神经网络算法、蚁群算法以及禁忌搜索算法等,并且在优化算法的基础上发展到优化策略的研究.

软件是对客观世界中问题空间与求解空间的具体描述,是客观事物的一种反映,是知识的提炼和固化.[2]优化软件是最优化方法与优化设计实践之间的桥梁,是最优化方法在计算机中的具体实现.国际上已经出现很多专业优化软件以及包含优化功能的软件包,如iSight和DOT等;ANSYS与MSC Nastran等专业分析软件中也包含优化功能模块.针对日益复杂的工程设计问题,仍然需要研发具有通用设计目标、开放性的优化软件.[3]

1优化软件系统的需求分析

最优化方法是在一定的求解域内,在满足某些约束条件下寻找指定目标的最优解.优化软件是最优化方法与计算机科学结合的产物.优化软件的最终目的就是解决工程实践中的优化问题:首先将实际的工程问题抽象成包含一组数学解析表达式的优化模型,根据其特点选择合适的优化算法; 然后优化计算,查看结果,如果对优化结果不满意,则调整优化模型进行新一轮计算,直至得到满意的结果.然而,工程实践中遇到的问题大部分是多学科、非线性、多准则、不可微的复杂系统优化问题,有时无法抽象出显式的数学解析表达式,这时需借助试验设计等方法培养出替代模型,进而生成优化模型,再对其进行优化求解.

1.1优化模型

一般的最优化问题是在满足约束条件gi(x)≤0,i=1,2,…,m

hi(x)=0,i=m+1,…,p求向量x,使函数f(x)取极小值(或极大值).其中,f(x)为目标函数,gi(x)≤0为不等式约束条件,hi(x)为等式约束条件.x=(x1,x2,…,xn)T为设计变量或决策变量,是n维实欧拉空间内的一点,称满足约束条件的点为可行点,称所有可行点的集合为可行域.f(x),gi(x)(i=1,2,…,m)和hi(x)(i=m+1,…,p)为给定n元函数[4].最优化问题一般写成min f(x)

s.t. g(x)≤0,i=1,2,…,m

h(x)=0,i=m+1,…,p 优化模型是从工程实践中抽象出的最优化问题,是从可行域到其目标函数值域的映射.对于复杂的实际工程问题,目标函数、约束的数量大,没有解析表达式且具有高度非线性、不连续和不可微等特性,不仅求解困难,计算量大,而且建立优化模型的难度也很大,最优化问题的一般形式难以涵盖全部特征信息.这要求优化软件应能提供完备的建模能力:不仅要有基本的函数定义功能,而且要提供方程求解、第三方软件启动、数据处理以及文本文件解析等功能.

1.2优化算法

优化算法是在优化模型的可行域内寻找使优化模型满足最优条件的可行点.针对不同类型的优化问题,人们提出多种优化算法,如对于线性规划问题,最常用的方法是单纯形法和对偶单纯形法;对于单目标、无约束的优化问题,BFGS法行之有效;对于单目标、有约束的优化问题,序列线性规划法和序列二次规划法比较流行.近年来又出现模拟生物进化、退火等自然机理的遗传算法.每种优化算法都有其优点及其应用范围的局限性,到目前为止,还没有一种对非线性优化问题普遍适用的有效算法.对于实际工程问题,需要将多种优化算法对比、组合使用,才能得到满意的结果.优化软件的主要任务之一是为用户提供丰富的优化算法,使用户有充分的选择余地,通过对比不同的算法,选择最合适的.

近年来,最优化方法发展迅速,新的优化算法不断出现,优化软件应具有开放的、可扩展的软件架构和软件组件接口以及具有动态、无缝添加新优化算法的能力,从而丰富软件的算法库.

1.3试验设计和替代模型

在工程实践中遇到的问题大多属于复杂系统的优化问题,有时无法抽象出显式的数学解析表达式,需借助试验设计等方法培养出替代模型,进而生成优化模型,然后进行优化求解.

替代模型指在不降低精度的情况下构造的一个计算量小、计算周期短但计算结果与数值分析或物理试验结果相近的数学模型.构造替代模型一般需要3个步骤.

(1)通过试验设计方法在设计空间中确定构造模型所用的样本点.

(2)利用分析软件或试验方法确定各样本点处的响应值.

(3)根据样本点数据选择一种近似方法,构造合适的模型,并取设计空间内的一些点对模型进行检验,以便调整某些参数.

构造替代模型的逼近精度很大程度上取决于试验点在设计空间中的位置分布,因此试验点的选择应当遵循一定的准则,以便只取较少的点就能达到较高的精度,这就是试验设计(Design of Experiment)所研究的内容.常用的试验设计方法有正交试验设计、均匀试验设计、析因试验设计和中心复合试验设计等.

2SiPESC.OPT系统设计

SiPESC.OPT是由大连理工大学与中国空间技术研究院自主研发的开放的通用优化问题求解软件,用于求解单目标或多目标、连续设计变量或离散设计变量、线性或非线性的大规模复杂优化问题.[5]SiPESC.OPT包含试验设计、近似模型模拟、灵敏度分析、子系统集成和文本文件解析等多种先进功能模块;BFGS,SLP,SQP和GA等多种成熟优化算法;提供均匀试验设计、正交试验设计、中心复合试验设计和析因试验设计等试验设计方法;响应面法、多二次径向基函数、高斯径向基函数和逆多二次径向基函数等近似模型拟合方法.

SiPESC.OPT具有良好的可扩展性,基于开放式的软件架构,可将其优化算法等功能模块动态添加到软件中,使用户可以按照实际问题的特性定制自己的优化算法.

同时,SiPESC.OPT也是一款简单易用的优化问题求解器,支持MD Nastran,ANSYS和Abaqus等多款主流分析软件.SiPESC.OPT具有友好的图形用户界面和灵活的脚本语言界面:通过图形用户界面,用户可方便、快捷地构建优化模型,制定优化任务,设计试验方案,生成近似模型,运行脚本语言文件和查看计算结果,完成复杂结构的设计优化流程;通过脚本语言界面,用户可将结构分析、优化计算、子系统集成和计算结果提取等功能灵活组合,实现复杂结构的设计分析、优化计算工作流程自动运行,同时能在集成优化软件系统运行时修改工作流程,不但提高计算效率,而且可减少人工操作出错的可能性.

2.1软件架构

SiPESC.OPT优化软件的软件架构分为应用层、中间层和核心层等3层.如图1所示,应用层提供优化建模的工具和界面,用户利用该层进行系统建模;中间层以JavaScript为软件的脚本语言界面,使用脚本语言的变量、函数、逻辑及扩展功能等模块定义复杂的优化模型和优化任务;核心层实现脚本语言解析、优化模型计算及任务管理等扩展功能模块.

3SiPESC.OPT系统实现

3.1SiPESC.OPT软件结构

软件系统结构见图2,软件系统的主程序是Optimization.exe,根据文件config.xml中的内容配置软件系统参数,如系统图形界面参数和版本号等.projects.xml中保存用户设计的优化模型以及与优化模型相对应的优化算法.软件系统将优化项目转换为project.js脚本文件输入到优化器solver.exe,优化器根据脚本文件中的语言命令调用优化算法库(如Dot.dll)完成优化迭代计算,并将迭代过程的中间结果保存到优化数据库OptimizationDB中.主程序调用OptimizationDB中存放的迭代过程数据,根据需要转换为图表形式供用户查看.在系统运行过程中,主程序将用户的重要操作、系统的重要活动以及警告、出错信息记录到日志文件log.txt中.

3.1SiPESC.OPT软件功能模块

根据软件架构设计,将软件系统划分为优化任务设计、试验设计与近似模型、求解器、后处理和子系统集成等5个主要功能模块,见图3.

优化任务设计模块提供程序的主窗口以及定义优化任务的图形界面,分为优化任务配置、优化模型数据和解析器、软件系统图形界面、数据模型管理、脚本语言预处理和寄存器等6个子功能模块.(1)优化任务配置模块提供配置优化任务的图形界面并将优化任务数据通过数据模型管理模块保存到优化模型数据和解析器模块中.(2)优化模型数据和解析器模块的主要功能是将优化任务保存为XML格式的文本文件以及解析XML格式的文本文件,从中提取优化任务并转换为软件系统内部的数据格式,供软件系统其他功能模块使用.(3)软件系统图形界面模块主要实现软件系统用户界面的框架.(4)数据模型管理模块管理软件系统的优化任务数据.(5)脚本语言预处理模块是在优化任务转换成脚本语言文件前,将优化任务转换成相应的脚本语言格式.(6)寄存器模块保存软件系统运行时所需的全局变量.

后处理模块实现数据管理的可视化功能,对优化迭代计算过程中的数据用曲线的方式进行描述,包括曲线的多种定义方式(颜色、实线、虚线和点划线等),并提供数据的格式化输出功能(自定义文本格式和Excel表格).后处理模块主要用图表的形式展示优化迭代历史.

子系统集成模块是操作数值模型分析软件(如ANSYS)的输入输出文件,定义设计变量、模型参数及响应和指标(包括约束条件或目标函数)的函数关系,完成模型修改、分析与分析结果的提取.

对难以给出显式函数的复杂模型,提供基于多项式响应面法的复杂系统替代模型(近似方法)计算方法:使用与设计方案相对应的数值模型分析结果或试验结果构造模型的替代模型,供用户使用.

求解器模块解析执行脚本语言文件,并将优化迭代结果保存到数据库中,供后处理模块使用.求解器模块主要解析JavaScript脚本文件,并执行脚本文件中的命令.

3.2SiPESC.OPT软件技术

根据优化软件系统需求分析,可从最优化方法中提取出2个基本概念:优化模型和优化算法.优化模型的实质是从其可行域到其目标函数值域的映射,构造优化模型的主要方式是定义其设计变量的类型和上下限,目标函数的解析表达式,约束的解析表达式以及相关梯度的解析表达式.优化算法的主要功能是根据优化模型的设计变量、目标函数和约束函数的当前值等信息,寻找新的迭代点以更新优化模型,完成迭代计算流程.

可以把一个优化模型和一个优化算法组合成一个优化任务.使用面向对象方法将优化模型集合、优化算法集合和优化任务集合分别抽象成优化模型类(Model)、优化算法类(Algorithm)和优化任务(OptProject)类,进而以这几个类为核心数据结构构建集成优化软件系统,见图4.一个优化模型类包括一个优化模型名,一个或多个目标函数,多个约束函数(无约束优化模型则不包含约束函数)以及一个或多个设计变量.一个优化算法类包括一个优化算法名,一个或多个优化算法参数.优化任务类通过优化模型名与优化模型相联系,通过优化算法名与优化算法相联系.

最优化方法发展至今,优化模型概念的内涵和外延已经很稳定,因此可以设计一个接口比较完备的优化模型类;但不同优化算法的差别较大,而接口变化不大.使用面向对象方法的继承机制,可构造一个抽象优化算法类,具体的优化算法可由抽象算法类派生而来.然而,继承机制将抽象类接口与派生类接口强制关联,派生类的接口难以重用、扩展和修改抽象类接口,新优化算法类也难以通过继承抽象优化算法类进行扩展,限制软件的可扩展性.在寻找新迭代点过程中,优化算法需提取优化模型的设计变量值、优化目标值和约束值等,有的算法会需要优化模型在当前迭代点的梯度值.目前,难以预测新优化算法对优化模型提出的新要求.优化模型与优化算法之间紧密联系,使二者之间存在紧密依赖关系,新优化算法类(New Algorithm)的扩展和修改会引起优化模型类的修改,这种紧密联系限制软件的可扩展性.解除这种依赖关系是保证集成优化软件系统可扩展性的关键.

在优化计算中,单就一个具体的优化算法而言,在迭代寻优过程中所需的输入信息不是目标函数的解析表达式和约束的解析表达式,而是优化模型的设计变量值、目标函数值和约束值等信息,即优化模型状态.它的输出也是优化模型状态.

使用面向对象方法抽象出一个优化模型状态类(ModelState),其主要功能就是维护一个管理标志符与数值的简单映射表.优化模型状态类的功能简单、接口单一,其扩展性较强.优化模型状态类切断优化模型类与优化算法类之间的紧密依赖关系.图5为集成优化软件系统核心类图,可知优化算法类、优化模型状态类和优化模型类之间的关系,优化算法类依赖于优化模型状态类,不再与优化模型类有联系,因此优化算法可不使用继承机制,而是自由扩展.图 5核心类

Fig.5Core classes

3.3SiPESC.OPT用户图形界面

软件的图形用户界面包括菜单栏、工具栏、优化任务栏、运行结果栏、状态栏和优化任务浏览器等.优化任务栏使用树状图显示优化任务文件中优化任务的主要内容;运行结果栏显示优化任务的运行结果以及运行过程中的状态信息等;状态栏显示当前软件的状态信息;优化任务浏览器显示优化任务的详细内容.

点击系统初始界面左上角的新建图标进入优化任务配置界面,用户可分别设置任务名称、优化模型名称和算法名称,并选择算法类型.

试验设计和替代模型窗口用于设计试验方案并生成替代模型,用户通过此窗口可进行选择试验方法、设定设计变量水平值、选择替代模型方案以及读入试验数据等操作.

3.4系统使用样例

三杆桁架优化问题是结构优化设计中的经典样例,三杆桁架尺寸见图6.优化目标是使所有杆件的体积最小.设计变量x1和x2分别为杆1(与杆3相同)和2的截面积,约束条件是在载荷P1作用下,杆1和2的拉伸应力小于许用应力2 MPa.优化结果为:x1=0.786 7 mm2,x2=0.413 75 mm2.优化流程见图7.

图 6三杆桁架

Fig.6Three-bar truss(a)配置优化任务(b)浏览优化任务(c)优化(d)查看优化结果图 7三杆桁架优化流程

Fig.7Three-bar truss optimization solution flow

4工程优化算例

4.1风力发电机叶片优化算例

大型风力发电机叶片基本采用蒙皮和主梁的构造形式,本文研究的风力发电机叶片主梁为12层玻璃钢复合材料,有限元模型见图8,主梁从叶片根部

图 8风力发电机叶片有限元模型

Fig.8Finite element model of wind turbine blade到叶端分为2段,铺层纤维分布角度均为[0/0/0/0/45/45/-45/-45/0/0/0/0]T.叶片蒙皮铺层数为12层玻璃钢复合材料,如图8所示,从叶片根部到叶端共分为5段,铺层角度分布为[±45/0/0/0/90/0/90/0/0/±45]T.如果将主梁和蒙皮均分为上、下两侧,为减少计算时间,可假设上、下两侧层合板中纤维角度和铺层厚度相同,各铺层厚度的上、下限均为0~0.2 mm.

基于SiPESC.OPT优化软件,编写用于风力发电机优化分析的JavaScript脚本语言文件.风力发电机优化流程为:首先创建发电机叶片优化模型;使用SiPESC.OPT文本文件解析模块更新输入文件中的设计变量值,调用计算程序(如Abaqus)计算叶片有限元模型;解析计算结果文件,提取叶片端部挠度值和叶片质量,统计叶片有限元模型中破坏单元数量,计算优化目标;SiPESC.OPT的遗传优化算法模块根据设计变量值和目标函数值判断是否达到优化终止条件,如果满足条件,则优化结束,如果不是,则寻找新的设计点,更新输入文件,进行下一个优化迭代步.具体脚本语言代码如下:

// 创建风力发电机叶片优化模型

var theModel = new OptModel;

...

// 设置风力发电机叶片优化模型的设计变量

theModel.setVariable( "cl_1_0" , 0.09) ;

theModel.setVariable( "cl_1_0" , Array( 0.01, 0.02, 0.03,0.04,0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15,0.16, 0.17, 0.18, 0.19, 0.20 ) ) ;

...

// 设置优化算法参数

DGA.setMINMAX( -1 );

DGA.setGENERATION( 100 );

DGA.setPOPULATIONSIZE( 30 );

DGA.setMUTATIONPROBABILITY( 0.1 );

DGA.setCROSSOVERPROBABILITY( 0.8 );

var Solver = DGA ;

// 初始化优化算法对象

Solver.initialize( theModel );

// 开始优化迭代计算

do{

eval();

ModelSaver.save( theModel );

Solver.renewModel( theModel );

} while( ! Solver.isComplete() )

使用DELL T5500型工作站,双CPU,8核,6 GB内存,1.5 TB硬盘,使用8进程并行计算,经过1 005次迭代,优化方案比初始方案的叶片质量减少7 kg,叶片端部挠度降低29 mm,达到减轻叶片质量、提高叶片刚度的优化目标.

4.2水轮机替代模型算例

水轮机的水力和运行参数直接影响水轮机组的运行安全和经济效益.水轮机的力矩和流量等特性是一个多输入、多输出的非线性系统,目前难以用数学解析表达式进行完整描述.在水电站设计中,水轮机选型以及确定其基本参数和运行条件时,都需要分析水轮机性能.水轮机特性资料大多以特性曲线形式给出,目前国内外普遍采用出厂模型试验,然后依据相似性理论确定原型水轮机的水力性能并计算出水轮机特性.但是,这种方法得到的水轮机特性误差较大.对水轮机做现场能量特性试验,可得到在有限个试验水头条件下水轮机的输出功率和流量等参数,并绘制出特性曲线.水轮机特性曲线传统的绘制方法是根据获得的试验数据手工绘制,使用传统方法手工绘制误差大、效率低;根据水轮机试验的实测数据,利用计算机技术建立水轮机能量特性的近似模型,可大大提高处理效率和精度.

基于径向基函数,使用SiPESC.OPT软件,根据水轮机现场能量试验数据[6],建立水轮机综合特性的近似模型.多种近似模型的平均误差见表1.

基函数近似模型3.02E-48.27E-6水轮机特性的径向基函数近似模型能真实表达水轮机的特性,计算简便且可以得到近似模型的解析表达式,为进一步利用优化算法优化水轮机的水力参数和运行参数,提高水轮机组的安全性能和经济效益提供良好基础.

5结束语

(1)具有通用性和开放性的优化软件可广泛应用于复杂的实际问题.

(2)通用优化软件SiPESC.OPT具有操作简单、功能全面、可扩展性强等特点,可用于复杂优化问题的求解.

(本文获计算机辅助工程及其理论研讨会2011(CAETS 2011)优秀论文奖.)

参考文献:

[1]袁亚湘. 最优化理论与方法[M]. 北京: 科学出版社, 1997: 1-2.

[2]杨芙清. 软件工程技术发展思索[J]. 软件学报, 2005, 16(1): 1-7.

YANG Fuqing. Thinking on the development of software engineering technology[J]. J Software, 2005, 16(1): 1-7.

[3]MAROS I, KHALIQ M H. Advances in design and implementation of optimization software[J]. Eur J Operational Res, 2002, 140(2): 322-337.

[4]唐焕文. 实用最优化方法[M]. 大连: 大连理工大学出版社, 2000: 8-9.

[5]张洪武, 陈飙松, 李云鹏, 等. 面向集成化CAE软件开发的SiPESC研发工作进展[J]. 计算机辅助工程, 2011, 20(2): 39-49.

ZHANG Hongwu, CHEN Biaosong, LI Yunpeng, et al. Advancement of design and implementation of SiPESC for development of integrated CAE software systems[J]. Comput Aided Eng, 2011, 20(2): 39-49.

[6]张文玉. 基于运行数据的水轮机建模及应用[D]. 邯郸: 河北工程大学, 2008.