“减重30%还要刚度提升20%,这样的优化Workbench仿真能实现吗?”

在某卫星支架研发评审会上,结构工程师的提问道出了行业共性困惑:“按传统经验,减重必然伴随刚度下降,可客户要求两者同时突破,ANSYS Workbench 真能破解这种矛盾吗?”
这并非个例。港口起重机设计中,工程师既希望臂架轻量化以降低能耗,又需保证承载时的屈曲稳定性;无人机研发中,气动布局优化要兼顾升力提升与风阻降低,而结构设计需在减重与抗冲击性能间找到平衡点。这类“目标冲突型”需求,正是工程师对优化设计工具最核心的关切点——如何在相互制约的指标中找到科学最优解,而非依赖经验的折中方案。 ANSYS Workbench(以下简称WB)是ANSYS公司开发的仿真应用集成工作平台,ANSYS WB环境提供了参数(Parameter)和设计点(DesignPoint)的管理功能。集成于WB中的ANSYS DesignXplorer模块(以下简称DX)则提供了强大的设计探索及优化分析功能。基于WB以及DX的分析结果,设计人员将能够识别影响结构性能的关键变量、确定结构的性能响应同设计变量之间的内在关系、找到满足相关约束条件下的优化设计方案。WB提供的Parameter Set功能可以实现分析项目中所有参数的管理,参数包括输入参数、输出参数以及用户定义参数等类型。在Parameter Set管理页面下的“Table of DesignPoints”列表则列出了一系列输入变量的不同取值和对应的输出变量的数值表,即:设计点列表。WB中的设计点(Design Points),就是一组给定的输入参数取值及其相应的输出参数取值,设计点实际上代表了一种设计方案。输入参数在其取值范围内变化和组合,可以有很多的设计点,这些设计点就构成成了一个设计空间。不同设计方案可以通过参数平行轴图来描述。利用设计点列表可以对设计点进行管理和选择更新设计点,或者选择鼠标右键菜单“Copy inputs to Current”将某个设计点复 制到当前设计方案,这样就可以在计算后在后处理程序里用图形查看此设计点的各种响应。实际上,WB的设计点功能通常是与DX功能结合使用。集成于WB中的DX提供了更为全面的设计空间探索工具和功能,也是本章将重点介绍的内容。DX提供的各种分析工具都是基于参数而展开,参数相关性分析用于研究哪些输入变量对输出变量影响最大,基于试验设计的设计点采样和响应面技术可以全方位地揭示输出变量关于输入变量的变化规律,目标驱动优化技术则基于各种优化方法来提供最佳备选设计方案;此外,DX还提供了用于确定输入参数的不确定性(随机性)对输出参数影响的6-sigma分析工具。通常,一个典型的WB及DX参数分析和设计优化过程主要包括如下的几个环节:首先,在ANSYS DX中,所有的设计探索和优化都是从建立分析模型开始。DX中的分析模型可以是涉及到单一物理场,也可以是多场耦合。模型中的各种参数(如:CAD参数、材料参数、载荷参数等)需提取为设计变量(或输入变量)。在进行有关分析后,提取有关的结果(如:应力、变形、频率、温度、总质量等)作为响应变量(或输出变量),用户也可以自定义参数作为输出变量(如:结构造价)。这样就实现了参数化的建模和结构分析。此时,可以通过WB的参数管理来查看参数或比较不同的设计点(设计方案),也可由Parameters Set进入到相关的DX系统或组件进行更深入的设计探索。对于结构中的输入参数较多的情况,DX提供了参数相关性分析系统(Parameters Correlation),该系统能提供变量之间的相关性矩阵以及输出变量关于输入变量的敏感性矩阵,这些方法能帮助设计人员确定哪些输入参数对设计的影响最重要(或最不重要),以便在后续设计探索和优化过程中识别出关键输入变量,以减少设计变量个数,提高后续响应面和优化计算的效率和精度。在确定了对响应最为重要的设计参数后,即可继续进入DX的响应面系统(Response Surface)中。首先需要在响应面系统的Design of Experiment组件(以下简称DOE)中指定输入变量(设计变量)的取值范围(最小、最大值)以定义设计空间。基于所指定的设计变量取值范围,DOE会创建设计空间的采样填充。DOE包含了一系列设计点采样方法,如:Central Composite Design(简称CCD)、Optimal Space-Filling Design(简称OSF)、Box-Behnken Design、Custom、Custom + Sampling、Sparse Grid Initialization、Latin Hypercube Sampling Design(简称LHS)等,其中缺省为CCD方法。随后,WB会计算DOE中形成的所有设计点。基于DOE中的设计点,每一个输出参数关于输入参数的响应面可通过参数回归分析方法得到。DX提供的响应面拟合方法有Standard Response Surface(完全二次多项式)、Kriging、Non-Parametric Regression、Neural Network及Sparse Grid,其中Standard Response Surface为缺省方法。一般来说,对于设计参数变化较为温和的情况,Standard Response Surface能给出较为满意的拟合结果;对设计参数强烈变化的问题,可尝试使用Kriging 响应面。响应面是输出参数关于输入参数的近似函数,其精度依赖于输出量变化的复杂程度、DOE中样本设计点数量以及响应面算法类型的选择等因素。需要指出的是,在ANSYS DX中参数扮演了很重要的角色,可以说所有的分析环节都是围绕参数而展开的。DX中常见的参数类型包括输入参数、输出参数和导出参数。输入参数可以是几何模型的长短、半径等尺寸参数,也可以是温度、压力等荷载或边界条件参数。DX的输入参数还有连续型、离散型之分。连续型参数取值范围是一个连续的介于上线和下限之间的实数区间,而离散型参数的取值范围被限定为若干个整数,开孔的个数、点焊的个数等都是典型的离散型参数。对于连续型输入参数,还可以指定Manufacturable Values过滤器。Manufacturable Values代表着实际制造或生产的限制条件,如钻头的尺寸、钢板厚度或可用的螺栓直径等。应用了Manufacturable Values过滤器的连续型参数,只有实际存在的参数取值才会被用于计算结果的后处理。狭义的输出参数是结构分析得出的响应参数,常见的响应参数包括但不限于频率、变形、应力、温度、热通量等。此外在DX中,一些从几何模型或有限元模型中计算统计出来的参数(如:总体积、总表面积、总质量、计算模型的总单元数等)也被归入输出参数中。导出参数是一类特殊的输出参数,导出参数由包含一系列输入参数和(或)输出参数的表达式定义和计算出。导出参数一般为用户自定义并作为输出参数传递给DX。导出参数表达式可在project schematic的Parameter Set中直接来定义。结构总造价、前几阶固有频率的平均值等都是典型的导出参数。下图表示一个体积参数,由三个方向长度相乘导出。在DX计算中,必须要注意区别设计点(DesignPoint)和响应点(Response Point)两个不同的概念。设计点的输出参数是经过实际的计算(Real Solve)得到的。响应点是近似点,其输出参数取值是DX根据输入参数值和响应面近似函数计算出来的,是输出参数实际值的近似。响应点不能作为设计依据,必须进一步求解验证。除了设计点和响应点之外,DX中还有很多其他的点,按性质来分实际都可归入实际计算点或响应近似点两大类。各种点与设计点之间的关系在这里作如下的归纳:在Workbench的Project层次插入设计点并执行验证更新,可以直接直接输入参数形式设计点,也可插入响应点(ResponsePoint)、优化的备选点(Candidate Point)、响应面的验证点(Verification Point)用于改善响应面的细化点(Refinement Point)等作为设计点,后面两种是经过实际计算的点。在Parameters Correlation组件或DOE组件计算时,也会形成并计算一系列样本点,这些点是经过实际计算的,也可作为设计点插入。设计点计算后可以拷贝到当前(选定设计点右键菜单选择“Copy Inputs to Current”),这样就可以在几何以及Mechanical组件中查看当前设计的各种信息了。响应面优化结束后,必须把给出的备选设计作为设计点进行响应值有效性的验证。在ANSYS Workbench中,基于有限元分析框架的目标驱动优化Goal Driven Optimization (GDO)经常是对求解时间的一个挑战,尤其是在有限元模型很大的时候。例如,成百上千个有限单元模拟在优化分析中运行是很常见的。当单次的有限元分析需要几个小时的时候,包含成百上千次分析的优化迭代是不可行的。在这种情况下,通常建议采用基于DOE方法的响应面,化有限元分析为函数值的计算。然而即便是在DOE分析中,当输入参数增加时,采样点数据急剧增加。 例如,在Central Composite Design (中心复合设计)中使用分因子设计来分析10个输入变量,共需要149个采样点(有限元模拟)。当输入变量增加时,分析就会变得越来越困难。这时,就需要从DOE的采样中剔除不重要的输入参数来减少不必要的采样点。对于一个输出参数,输入参数的重要性是由它们的相关性来决定的。参数相关性研究的作用,一方面是可帮助分析人员决定哪些输入参数对设计的影响最重要(或最不重要),相关性矩阵( correlation matrix )可帮助用户识别出被认为是不重要的输入参数;另一方面还可以识别参数之间的关系,如:是线性的关系或是二次关系。在DX的参数相关性分析中,用LHS(拉丁超立方抽样)生成做相关性计算的样本点。LHS方法所产生的样本点是随机的,各输入参数的相关性小于等于5%,且任两个样本点的输入参数值各不相同。参数相关性分析中,会基于所产生的样本点执行一系列仿真计算,仿真模拟的次数取决于参数的个数以及所指定的参数平均值和标准偏差的收敛准则。参数相关性分析提供了两种相关性计算方法供用户选择,这两种参数相关性分析还可以确定参数之间的相关关系是线性的还是二次的:(1)Spearman’s Rank Correlation使用样本变量值的排序(秩)计算相关系数,适用于具有非线性单调变化函数关系的变量之间的相关性,被认为是更精确的方法。二次相关分析可给出任意一对变量之间的判定系数,此系数越接近1,则二次相关的效果越好。这些系数构成了判定矩阵(Determination Matrix),此矩阵是非对称的,这与相关性矩阵(Correlation Matrix)不同。(2)Pearson’s Linear Correlation采用变量值来计算相关性系数,用于关联具有线性关系的变量。可计算给出相关性系数矩阵(Correlation Matrix)及判定系数矩阵(Determination Matrix)。参数相关性分析完成后,提供了以下图形方式来显示分析结果:相关性矩阵图可以直观显示参数之间的相关性,相关系数越接近±1,表明相关程度越高。可以显示给定参数对的相关性样本散点图,在相关性样本散点图中可选择显示线性和(或)二次的趋势线(Trendlines),图中的样本点越接近这些趋势线,则相应的判定系数就越接近最佳值1。判定系数矩阵的图示类似于相关性矩阵,判定系数越接近1则表示相关程度越高。对线性或二次相关,可给出判定系数柱状图,直观显示输入变量对输出变量的影响程度。可以设置一个阀值,使判定系数高于此阀值的输入参数被过滤掉。给出各个输入变量对每一个选择的响应变量的总体敏感性柱状图。这种敏感性的统计是基于Spearman秩相关系数分析,同时考虑了输入参数变化范围和输出参数关于输入参数变化程度两方面的因素。用来拟合响应面的试验样本点的选取技术(DOE技术),它是响应面技术中的一个很关键的问题。样本点选取的位置好,则能够降低DOE计算成本,并提高响应面的精度。现阶段,常用取点方法的共同点是都尽量用最有效的和最少量的样本点对设计空间进行填充,且试验样本点的位置满足一定的对称性和均匀性要求。在ANSYS DX中缺省的DOE方法是CCD(中心复合设计)。DX提供了如下7种试验设计(DOE)方法从设计空间中抽取设计样本点:(1)Central Composite Design (CCD)即中心复合设计方法,其样本点包括一个中心点,输入变量轴的端点以及水平因子点。缺省选项为Auto-Defined,如果输入变量为5个采用G-Optimal填充,否则采用VIF-optimal填充。此方法的另外两个选项,Rotatable选项是一个5水平试验取样方法,Face-Centered选项则退化为一个3水平试验取样方法。如果缺省选项造成后续响应面的拟合效果不佳时,可以考虑采用Rotatable选项。CCD方法随着设计变量增加所形成的部分因子样本点数按下式给出,其中f为部分因子数,n为输入参数个数,N为形成的样本点个数。DX的CCD方法形成的样本点数与输入变量个数几部分因子数之间的关系列于表9-1中。(2)Optimal Space-Filling Design (OSF)此方法采用最少的设计点填充设计空间。OSF更适合于更为复杂的响应面算法,如Kriging,Non-Parametric Regression 以及NeuralNetworks等。OSF的一个弱点是不一定能取到端点(角点)附近的样本,因此会影响到这些区域的响应面质量,尤其当样本点数量较少时。此方法是一种3水平的抽样方法,与其他方法相比试验次数少,效率较高,且各因素不会同时处于高水平上。此方法允许用户创建自己的DOE算法,可直接创建设计点或通过导入CSV(Comma SeparatedValues)数据文件的设计点。也可通过增加用户定义的设计点对已有的DOE进行改进。此方法包含Custom 方法的功能,并且允许自动添加DOE样本点以有效地填充设计空间。比如,DOE列表最初可以是从前一次分析中导入的设计点组成,或是用其他方法(如CCD、OSF等)形成,可以自动添加新的样本点来完成采样,新添加的样本点时会考虑已有设计点的位置。用户需要输入Total Number of Samples(即总的样本点数),如总的样本点数小于已有的样本点数,则不会添加新的样本点。(6) Sparse Grid Initialization此方法为Sparse Grid类型的响应面的专用DOE方法,是一种基于设定的精度要求的自适应方法,可在输出变量梯度较大位置处自动细化设计点数量以提高响应面的精度。(7) Latin Hypercube Sampling Design(LHS)LHS是一种修正的Monte Carlo抽样方法,该方法的目的是避免样本点的聚集。LHS方法的样本点是随机生成的,但任两个点都不共享一个输入变量值。此方法的一个可能的缺点是角点附近不一定有样本点,这就会影响到这些位置附近的响应面预测。前面提到的OSF方法属于LHS方法基础上的改进,OSF使得设计点的距离尽量大,以获得更为均匀分布的设计点来填充设计空间。对LHS方法,DX提供了如下的几个选项:缺省选项是CCD Samples ,会形成与CCD DOE方法同样数量的设计点。Linear Model Samples选项形成线性响应面所需数量的样本点。Pure Quadratic Model Samples选项用于形成纯二次(没有交叉项)响应面所需数量的样本点。Full Quadratic Samples选项用于形成完全二次响应面所需数量的样本点。 User-Defined Samples选项由用户指定所需的样本点数量。如选择了此选项则后续需要指定Number of Samples选项,缺省的Number of Samples为10。此参数用于初始化LHS方法内部调用的随机数生成器,尽管起始点的生成是随机的,但此参数可以导致特定的LHS抽样结果,这个属性可以用于产生相同或不同的LHS抽样,只需要保持或改变此参数的值即可,此参数的缺省值为0。在DOE中的样本点都计算完成后,可以通过参数平行图(Parameters Parallel Chart )以及设计点参数图(Design Points vs Parameter Chart)查看DOE计算结果,如下图所示。在得到DOE的分析结果后,下面的工作就是拟合形成响应面了。(1)Standard Response Surface(标准二次多项式)此类型为缺省类型,采用回归分析确定近似的二次响应函数。回归分析结果可通过Goodness of fit来评价。当标准响应面类型给出的结果不满意,或响应关于输入变量的变化较剧烈和非线性震荡的情况,应用Kriging类型可获得更好的结果。此类型的响应面通过所有的DOE样本点。如果DOE样本点有扰动,则不推荐用此方法。(3)Non-Parametric Regression此类型即非参数回归方法,适合于响应为非线性的情况。该类型的计算速度较慢,仅当标准响应面的“Goodness of fit”不理想的情况下才考虑使用。此外,该类型还适合于处理DOE样本点计算结果有扰动的情况。此响应面类型采用神经网络方法,适合于高度非线性问题,计算速度较慢,一般场合较少用到。此响应面类型采用自适应的算法,会自动对生成的响应面局部细化以改善这些位置附近的响应面质量。必须采用“Sparse Grid Initialization”DOE类型,一般需要计算更多设计点,因此对计算速度的要求较高。此方法还适合于处理响应中包含不连续的情况。ANSYS DX提供了Goodness of fit工具来估计响应面的质量,此工具位于Response Surface的 Outline下的Metrics中,任何一个输出变量的Goodness of fit均可在此查看。Goodness of fit工具包含一系列评价指标,表9-2中给出了各种指标的名称及其理想值。表9-2 Goodness of fit指标及其理想值 Goodness of fit的指标与所选择的响应面算法密切相关,如果Goodness of fit指标较差,则说明选择的响应面类型不适合于所求解的问题,可考虑改变一种响应面类型。除了Goodness of fit之外,还可通过Predicted versus Observed Chart散点图来直观地显示响应面和设计点输出变量取值的差异。在Predicted versus Observed Chart中,纵轴为响应面预测的值,横轴为设计点计算值,如果预测结果较好,则散点基本位于45度线的附近。如果有较多的点偏离45度线,则响应面的质量较差。另外,用户还可以插入Verification Points(验证点)来检查响应面质量。尤其对于Kriging类型的响应面,由于采用插值的方法,响应面通过全部的DOE样本点,因此Goodnessof fit不能客观反映其质量,此时可通过验证点来评价响应面。验证点是在响应面计算完成后单独计算的,可用于任一种类型的响应面类型的验证和评价,尤其适合于验证Kriging以及SparseGrid类型的响应面精度。用户可在响应面的属性中选择Generate Verification Points (生成验证点)复选框,并指定Number of Verification Points(验证点数量),这样在计算响应面时会自动生成验证点,这些验证点的位置选择会尽量远离已有的DOE样本点或细化点(对OSF算法)。也可以在Table of Verification Points(验证点列表)中直接插入或导入CSV数据文件中的验证点,然后在列表中选择新插入的验证点,右键菜单选择Update即可计算此验证点。验证点计算完成后,即可与响应面在此点处的值进行比较了。DX提供验证点的Goodnessof fit列表以及验证点和响应预测点的Predicted vs. Observed图,通过这些工具可以反映出响应图的质量。首先,ANSYS DX的响应面算法适合于10-15个输入参数的问题,设计参数过多会严重降低计算效率以及响应面的精度。如果参数的个数超出了合理范围,可先进行参数相关性分析以识别关键参数。参数相关性系统应在响应面系统之前使用。一般来说,响应面的精度取决于输出变量变化的复杂程度、所选择的响应面类型以及DOE中样本点的数量。关于选择响应面的类型,通常建议首先选用标准二次响应面,该响应面已经被验证适用于输出变量变化较为缓和的情况,基于此模型形成响应面之后用Goodness of fit工具来评价,如果标准二次响应面Goodness of fit指标不佳,则考虑使用Kriging响应面类型,Kriging响应面在总体响应的基础上添加了局部的变异性,能处理变化较剧烈的情况。在DOE中增加设计点个数可提高响应面精度,因此必须保证有足够多的设计点,设计点数需要超过输入参数的个数,理想情况下需要至少两倍于输入参数个数,大部分的DOE通常能产生足够的设计点数量,但Custom DOE类型可能不够。所选取设计点的位置分布也需引起注意。比如常用的CCD抽样方式,一般先选取实验中心点,然后再围绕此中心点均匀选取其他实验点,这种抽样方式实际上是为了保证响应面能够在设计点附近较好地近似真实的响应函数。对于计算开始阶段无法准确判断DOE是否形成了足够多的设计样本点的情况,Kriging响应面以及Sparse Grid响应面的自动细化是非常有用的。Kriging响应面类型允许通过refinement的自动细化类型(Auto)来指定响应面的精度以及为提高此精度所需的最大细化点数量。Sparse Grid也是一种由指定精度驱动的自适应方法,该方法能够在输出参数梯度高的位置自动细化设计点矩阵以提高响应面精度。此外,对除Sparse Grid外所有的响应面类型还提供了人工细化选项,允许用户在计算响应面的既有设计点中手动增加或导入CSV文件中的细化点(RefinementPoint),DX会强迫程序生成响应面时考虑用户选择的细化点。细化点是实际求解的设计点,对响应面进行update时,DX会基于DOE中的设计点以及细化点生成新的响应面,这是有效改善响应面精度的一条途径。设计人员可以从已经完成的优化分析中选取最佳备选设计作为一个细化点以改进该点附近的响应面质量。最后,不论何种形式的响应面,建议总是选择创建验证点,这可以有效验证响应面的质量。如果通过验证点发现响应面质量较差,则可在验证点列表中选择相应的验证点,右键菜单中选择Insert as Refinement Point,把此验证点作为细化点来重新形成局部改进的响应面。在得到了满意的响应面之后,可结合各种图表工具进行全方位的设计探索。比如,可查看局部敏感性、响应面或响应曲线、进行Min-Max搜索等,全面分析输入变量对输出变量的影响规律。响应图中可以查看的敏感性是指局部的敏感性,因为在不同响应点位置的敏感性显然不同。读者可以想象,如果这个点位于响应面上较为平坦的谷底位置,则此处的输入参数对结构响应的影响就比较小;相反,如果这个点位于响应面的陡坡上,则此处的输入参数对结构响应的影响就会比较大。在缺省条件下,最小-最大搜索(Min-MaxSearch)在响应面形成和更新时将自动计算,给出各个输出变量近似取值的最大值和最小值。在Min-Max Search的属性中,需指定Number ofInitial Samples(初始样本点数)以及 Numberof Start Points(搜索初始点数),这些数越大则搜索时间越长。如果设计参数很多,搜索时间很长时,可以在响应面的Outline中不勾选Min-MaxSearch选项。Min-Max Search采用NLPQL搜索算法(在后面目标驱动优化中详细介绍)分别对响应面的最大和最小值进行搜索,如果Number of Starting Points 值大于1,则对于每一个搜索起始点都会分别进行最大值和最小值的两个NLPQL搜索,Min-MaxSearch计算完成后,会给出每一个输出变量的最大值和最小值。响应图(Response chart)是近似响应函数的图形或曲线显示。在响应图中,可以选择查看任意输出参数关于一个或两个输入参数的变化曲线或曲面。显然,响应图跟局部敏感性一样,也随着所选择的响应点而不同。可在Response chart的属性中勾选ShowDesign Points选项,这样在响应图中会显示出所有当前使用的设计点 (包括DOE的样本点及响应面改善中形成的细化点) ,这有助于评价响应面对设计点拟合的接近程度。2D模式显示为二维的曲线或图表, 用于表示一个输出参数关于一个输入参数变化的响应情况。3D模式显示为三维的等值线图,用于表示一个输出参数关于两个输入参数改变的响应情况。2D Slices模式结合了2D 及3D模式的特点,把输出变量设为Y轴,一个输入变量设为X轴,在一个平面上画出另一个变量取一系列不同值时切三维响应面得到的一系列曲线,每条曲线用不同的颜色绘制,以区别另一个变量的不同取值。目前在ANSYS DX中提供了基于响应面的优化(Response Surface Optimization)以及直接优化(Direct Optimization)两大类目标驱动优化(GDO)方法。响应面优化系统(Response Surface Optimization)是DX中基于响应面结果的目标驱动优化系统,可以从响应面结果中自动获取最优的备选设计方案。该系统通过响应面获取近似的响应点,特点是快速,但缺点是优化结果依赖于响应面的质量。响应面优化的备选设计结果,必须通过设计点的更新(一次真正的结构分析)来验证备选设计响应值的正确性。在响应面优化中可选的优化算法包括Screening方法、MOGA方法、NLPQL方法以及MISQP方法;在Direct Optimization中,可选择的优化算法包括Screening、MOGA、NLPQL、MISQP、ASO以及AMO。下面对这些算法的特点和设置选项做简单介绍。Screening方法是一种基于拟随机数生成器的非迭代直接采样方法,可用于响应面优化以及直接优化。通常,Screening方法适合于初步的优化设计,能快速地找到近似优化解。在此基础上可再使用MOGA方法或NLPQL方法作进一步的优化。对于包含了离散变量或应用了Manufacturable Values过滤器的连续型参数,只能通过Screening方法或MISQP方法进行优化。MOGA方法即Multi-ObjectiveGeneticAlgorithm,是一种多优化目标的迭代遗传算法,用于处理连续设计变量的多目标优化问题。MOGA方法适合于搜索全局的最优设计,能同时用于响应面优化系统以及直接优化系统。NLPQL方法即Nonlinear Programming by Quadratic Lagrangian方法,是一种基于梯度的单目标优化方法,其基础为准牛顿法,搜索过程的示意如下图所示。此方法能同时用于响应面优化系统以及直接优化系统。MISQP方法即Mixed Integer Sequential Quadratic Programming,是一种基于梯度的单目标优化方法,其算法基础为改进的序列二次规划法,用于处理连续变量及离散变量的非线性规划问题。该方法能同时用于响应面优化系统以及直接优化系统。该方法只能为一个输出变量指定目标,其他输出变量的目标可被处理为约束。ASO方法全称为Adaptive Single-Objective Optimization,是基于梯度的单目标优化方法,该方法采用了LHS试验设计、Kriging响应面以及NLPQL优化算法,目前此方法仅能应用于Direct Optimization系统。ASO方法 会首先形成LHS样本并基于这些样本形成Kriging响应面,随后会通过NLPQL方法对响应面进行一系列搜索,这些搜索是基于一系列不同的起始点,得到一系列不同的备选设计(Candidate)。如果备选设计质量较差,最佳Candidate被作为一个验证点进行计算,并作为细化点(Refinement)重新生成Kriging响应面,直至后续优化响应面NLPQL搜索得到的备选设计质量足够好;如果备选设计质量较好,则ASO会检查当进一步细化Kriging响应面后是否还会搜索到此点,如果细化响应面后Candidate有变化,AMO会缩小优化域,在缩减的优化域上重新生成LHS(落在缩减域内的既有样本会保留),并在缩减域上得到Kriging响应面,再进行NLPQL搜索;如果细化响应面后得到的Candidate没有变化,则这些点被认为是可以接受的。最后得到的最佳设计点在进行验证后输出。AMO方法全称为Adaptive Multiple-Objective Optimization,是一种迭代的多目标优化方法。该方法采用了Kriging响应面和MOGA优化算法,适合于处理连续变量的优化问题。目前仅可用于Direct Optimization系统中。关于优化方法的选择,这里提供几点建议。一般情况下,对连续变量的单目标优化问题建议采用NLPQL或MISQP方法,可以有约束,也可以无约束,目标函数和约束没有“跳跃”。而MOGA方法是一个全局优化方法,适合于多目标优化问题,且不要求输出参数的连续性。对于连续的单目标问题,使用基于梯度的NLPQL或MISQP方法可以给出更准确的解,但可能得到局部最优解。NLPQL及MISQP 算法的缺省收敛率为1.0E-06,这是基于规格化后的Karush-Kuhn-Tucker (KKT)条件计算的。对于多目标优化算法(MOGA、AMO),一个很重要的方面就是基于Pareto最优化理论的Tradeoff研究,这里简单介绍一下多目标规划问题中的Pareto优化及Pareto解的概念。帕累托最优实际上是一种资源分配的理想状态,即假定固有的一群人和可分配的资源,从一种分配状态到另一种状态的变化中,在没有使任何人境况变坏的前提下,也不可能再使某些人的处境变好。换句话说,就是不可能再改善某些人的境况,而不使任何其他人受损。多目标优化问题中,由于存在目标之间的冲突和无法兼顾的现象,一个解在某个目标上是最好的,在其他的目标上可能比较差。Pareto 在1986 年提出多目标的解不受支配解(Non-dominated set)的概念。其定义为:假设任何二个解S1 及S2 对所有目标而言,S1均优于S2,则我们称S1 支配S2,若S1 的解没有被其他解所支配,则S1 称为非支配解(不受支配解),也称Pareto解。而Pareto解的集 合即所谓的帕累托前沿(Pareto Front)。所有座落在Pareto front 中的所有解皆不受Pareto Front 之外的解(以及Pareto Front 曲线以内的其它解)所支配,因此这些非支配解较其他解而言拥有最少的目标冲突,可提供决策者一个较佳的选择空间。在某个非支配解的基础上改进任何目标函数的同时,必然会削弱至少一个其他目标函数。MOGA、AMO等方法在优化后都会给出Pareto Front,而备选设计就产生于其中。GDO框架使用决策支持过程(Decision Support Process)作为优化的最后步骤,该过程是基于优化目标满足程度的加权综合排序技术。实际上,决策支持过程可以被看作是一个对于优化过程形成的Pareto前沿点(MOGA或AMO)或最佳备选设计(NLPQL、MISQP、ASO)的后处理操作。在决策排序过程中,DX允许用不同的重要程度来区分多个约束或目标,重要性级别“Higher”、“Default”及“Lower”分别被赋予权重1.000、0.666以及0.333。评价备选设计时,会依据参数范围划分为6个区域,按距离最佳值的远近对备选设计进行评级,从最差(三个红色的×)到最佳(三颗黄色的☆)。接下来,介绍ANSYS DX的目标驱动优化(GDO)组件的基本操作过程,通常情况下该过程包括如下环节:首先选择GDO系统的类型:Response Surface Optimization以及Direct Optimization。两种GDO均可以通过鼠标拖拽添加至Project Schematic中。Response Surface Optimization也可拖拽至包含有响应面的系统的Response Surface组件上。直接优化方法通过实际的结构分析获取优化设计点,而不是通过响应面近似,因此也可将Direct Optimization优化组件直接拖放到其他包含设计点的系统或组件(如Response Surface、Parameters Correlation)上,在这些组件和Direct Optimization优化组件之间将会创建设计点数据传递的链接。无论选择了何种GDO系统,在Project Schematic界面中,双击该GDO系统的Optimization组件单元格,即可进入到优化的工作空间。在优化工作空间的Outline中包含Optimization处理节点,此节点下面又包含Objectives and Constraints、Domain、Results三个子处理节点。这些处理节点的选项包含了应用Response Surface Optimization系统进行优化分析所有关键参数的设置。在优化工作空间的Outline中选择Optimization处理节点,在其下方的Optimi zation 属性中,通过Optimization method下拉列表即可指定拟采用的优化算法及选项。下面分别对DX所提供的六种优化方法的选项进行介绍。Number of Samples:生成优化搜索样本个数,样本数越多则越有可能包含最优化解,不能小于输入及输出参数的总个数且不少于2,最大为10000,对响应面优化缺省为1000个;对直接优化缺省为100个。Maximum Number of Candidates:算法形成备选设计的最大可能个数。Verify Candidate Points:如勾选此选项,在响应面优化计算结束后自动通过有限元分析对形成的备选设计点进行验证。Number of Initial Samples:指定使用的初始样本个数。最小值推荐为10倍的连续型输入参数个数;初始样本越多,找到包含最优解的输入参数空间的机会越大。不能小于参与优化的输入参数及输出参数总个数以及2,不大于10000,对响应面优化和直接优化缺省均为100个。如果是由Screening 方法转向MOGA方法,MOGA会形成一个新的样本集,为了保持一致性,可输入与Screening 相同的初始样本个数。Number of Samples Per Iteration:指定每一次迭代的样本数,不能小于参与优化的输入参数和输出参数总个数及2,但也不能大于前面所指定的“number of initial samples”及10000。对响应面优化缺省为100个,对直接优化缺省为50个。Maximum Allowable Pareto Percentage:欲得到的Pareto前沿点个数与“Number of Samples Per Iteration”之比。例如,输入75并指定Number of Samples Per Iteration为200 将意味着一旦MOGA 方法优化形成的前沿点包含150个样本点时优化将停止。(优化也有可能在达到下面的“Maximum Number of Iterations”时停止)。此百分比过低(低于30%)会导致过早的收敛,过高(高于80%)则可能导致收敛缓慢,通常选择55-75可满足大部分问题的求解。Maximum Number of Iterations:指定MOGA方法的最大可能迭代次数。MOGA可能评估的最大样本点数=Number of Initial Samples+Number of Samples Per Iteration×(Maximum Number of Iterations-1)。实际上,算法可能在达到最大迭代次数之前已经收敛而停止。Allowable Convergence Percentage:NLPQL算法相对于Karush-Kuhn-Tucker (KKT) 最佳性准则的容差。指定一个较小的值意味着更多的迭代次数和较精确但更慢的求解,而指定一个较大的值则意味着较少的迭代次数和较不精确但相对较快的求解。典型缺省值为1.0e-06。Defference Approximation:NLPQL计算目标函数导数的近似数值方法选项,可选择Central Difference(中心差分)或Forward Difference(向前差分)。如选择了Central Difference选项,导数计算将采用中心差分近似。中心差分有助于提高梯度计算的精度,但样本点评估的工作量倍增。中心差分法是新建响应面优化系统的缺省选项。如选择了Forward Difference选项,则计算导数时将采用向前差分近似,向前差分使用较少的样本点评估,但导数计算的精度不高,是新建直接优化系统的缺省选项。Maximum Number of Iterations:指定NLPQL方法的最大可能迭代次数。实际上,优化迭代可能在到达此最大迭代次数之前就已经达到收敛而停止计算。NLPQL方法的最大可能评估样本点个数可根据梯度计算方法和此参数进行估计。对于中心差分方法,最大评估样本点数为number of iterations ×(2×number of inputs +1);对向前差分方法,最大评估样本点数为number of iterations×(number of inputs+1)。Allowable Convergence Percentage:MISQP算法相对于Karush-Kuhn-Tucker (KKT) 最佳性准则的容差。指定一个较小的值意味着更多的迭代次数和较精确但更慢的求解,而指定一个较大的值则意味着较少的迭代次数和较不精确但相对较快的求解。典型缺省值为1.0e-06。Derivative Approximation:NLPQL计算目标函数导数的近似数值方法选项,可选择Central Difference(中心差分)或Forward Difference(向前差分)。Maximum Number of Iterations:指定NLPQL方法的最大可能迭代次数。实际上,优化迭代可能在到达此最大迭代次数之前就已经达到收敛而停止计算。NLPQL方法的最大可能评估样本点个数可根据梯度计算方法和此参数进行估计:对于中心差分方法,最大评估样本点数为number of iterations ×(2×number of inputs +1)。对向前差分方法,最大评估样本点数为number of iterations×(number of inputs+1)。Verify Candidate Points:勾选此选项,在响应面优化计算结束后自动通过有限元分析对形成的备选设计点进行验证。Number of LHS Initial Samples:为形成初始Kriging或为后续缩减优化域形成Kriging所生成的样本数。最小为 (NbInp+1)×(NbInp+2)/2 (缺省值,也是形成克里格所需的最少LHS样本数),最大为10000。由于ASO工作流程 (其中一个新的LHS样本集是在每一次域缩减后生成),提高LHS样本数未必能改善结果的质量而且会显著增加计算成本。Number of Screening Samples:筛选样本数。用于创建下一次Kriging以及验证备选点的样本数,可输入最小值为 (NbInp+1)×(NbInp+2)/2 ,最大为10000,缺省为100×NbInp。越大越有可能获得好的验证点,过大可能导致Kriging的发散。Number of Starting Points:起始点数量。此参数决定要搜索的局部最优解数量,此参数越大则搜索到的局部最优解越多。对线性响应面情况无需使用过多的起始点。此参数必须小于“Number of Screening samples”,因为起始点从这些样本中产生。缺省值为“Number of LHS Initial Samples”。Maximum Number of Evaluations:这是ASO算法的一个停止法则,即最大可能计算的设计点数量。缺省值为20×(NbInp +1)。Maximum Number of Domain Reductions:这也是ASO算法的一个停止法则,即最大可能的优化域缩减次数,缺省为20次。Percentage of Domain Reductions:这也是ASO算法的一个停止法则,即当前域相对于初始域的最小百分数,缺省为0.1。比如,某输入参数变化区间为[0,100](初始域),当此百分比设为1%时,当前域的区间宽度不得小于1 (比如在5到6之间变化)。Number of Initial Samples:指定使用的初始样本个数。最小值推荐为10倍的连续型输入参数个数;初始样本越多,找到包含最优解的输入参数空间的机会越大。初始样本个数不得小于激活的输入参数及输出参数总个数且不小于2,激活输入参数个数也是形成敏感性图结果所需的最小样本个数。初始样本个数也不能大于10000,对响应面优化和直接优化缺省均为100个。如果是由Screening 方法转向MOGA方法,MOGA会形成一个新的样本集,为了保持一致性,可输入与Screening 相同的初始样本个数。Number of Samples Per Iteration:指定每一次迭代并更新的样本数,缺省为100个。不能大于初始样本数(Number of Initial Samples)。Maximum Allowable Pareto Percentage:欲得到的Pareto前沿点个数与“Number of Samples Per Iteration”之比。例如,输入75并指定Number of Samples Per Iteration为200 将意味着一旦MOGA 方法优化形成的前沿点包含150个样本点时优化将停止。(优化也有可能在达到下面的“Maximum Number of Iterations”时停止)。此百分比过低(如:低于30%)会导致优化过早的收敛,过高(高于80%)则可能导致收敛缓慢。此参数依赖于参数个数以及设计空间自身的性质,通常选择55-75可满足大部分问题的求解。Maximum Number of Iterations:指定优化方法的最大可能迭代次数。AMO方法可能评估的最大样本点数=Number of Initial Samples + Number of Samples Per Iteration×(Maximum Number of Iterations - 1),这给出了优化方法可能耗用时间的一个粗略估计。不过,算法可能在达到最大迭代次数之前已经收敛而停止。在设置了优化方法后,即可设置优化目标、约束条件并进行优化求解了,相关问题我们接下来继续讲解。在优化工作空间Outline中选择Optimization的子处理节点Objectives and Constraints,在右边的表格(Table)中可对各种变量(输入变量和输出变量)指定优化目标和约束条件。具体操作时,可以根据需要增加Table的行数,每一行中在变量列表中选择一个变量,并为其指定优化目标或约束条件。下面对各种变量支持的目标和约束条件类型作简要的介绍。即不设置目标,输入变量在指定的优化域(后面介绍)范围内变化。即最小化,使输入变量在优化域指定范围内的取值尽可能小,也就是尽量取接近取值下限的值。即最大化,使输入变量在优化域指定范围内的取值尽可能大,也就是尽量取接近取值上限的值。即寻找目标值,使输入变量在优化域取值范围内尽量靠近用户所指定的目标值(Target)。即设置此输出变量优化目标为最小化,在GDO中将被作为一个优化目标,寻求达到此变量可能的最小值。即设置此输出变量优化目标为最大化,在GDO中将被作为一个优化目标,寻求达到此变量可能的最大值。即设置此输出变量的优化目标为接近一个用户所指定的目标值Target,在GDO中将被作为一个优化的目标。对于离散型输入变量或带有Manufacturable过滤器的连续性输入变量,提供如下的约束条件选项:即设置约束条件为使得此变量尽量靠近优化域取值范围的下限Lower Bound。即设置约束条件为输入变量大于等于优化域取值范围的下限Lower Bound。即设置约束条件为输入变量小于等于优化域取值范围的上限Upper Bound。即设置此输出变量大于等于指定的下限值Lower Bound,在GDO中被作为一个不等式约束条件。即设置此输出变量小于等于指定的上限值Upper Bound,在GDO中被作为一个不等式约束条件。Lower Bound <= Value <= Upper Bound即设置此输出变量介于指定的上限值Upper Bound及下限值Lower Bound之间,在GDO中被作为一个不等式约束条件,此处需要满足Lower Bound
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-11-24
最近编辑:12分钟前
获赞 11497粉丝 22822文章 4079课程 242