zoukankan      html  css  js  c++  java
  • 《工程结构优化设计基础》总结

    该书是大连理工程耿东院士上世纪八十年代写的教材。香港科技大学的陈俊文教授推荐,现在终于看完了,总结如下:

    全书分为五章,主要涵盖准则法、数学规划法两方面。


    第一章,结构优化的基本概念

    主要介绍结构优化的基本概念,可行域的凹凸性,以及求解的基本思路。

    第二章,准则设计法
    首先介绍得“同步失效准则设计”,这是一个比较直觉的优化策略,通过例题,总结出该设计法则的缺点:1)只能处理简单元件;2)当约束数大于设计变量数,要确定破坏模式;3)不保证最优解。

    而在“同步失效准则设计法”的基础上,思路是用一个准则代替求目标函数最大值,推广出“满应力设计准则”。并通过对静定桁架优化的例题,说明了该准则也不保证最优解。之后通过满应力步、射线步的结合,产生了“满应力齿行法”,改进算法使其能够更接近最优解。并支持射线步相当于数学规划法中的可行性调整。

    接下来介绍了有严谨数学推导的理性最优化准则——库--塔克必要条件。首先给出多元函数取极小值,函数梯度为0是必要条件,加上函数二阶导数(海森矩阵)正定为充分条件。而对于受到等式约束的多元函数,使用拉格朗日乘子法。拉格朗日函数梯度为0,满足等式约束,是目标函数极小的必要条件。接下来,对于受不等式约束的多元函数,引出了其最优化的必要条件——库--塔克条件:拉格朗日函数对设计变量去导数为0、拉格朗日函数对乘子取导数小于等于0、乘子与约束函数乘积为0、乘子大于等于0。提出了目标函数的负梯度是最优点有效约束梯度的非负线性组合(因为拉格朗日乘子非负)

    接下来介绍实际应用,首先是“受到单个位移约束的优化准则”,提出单工况,单个位移约束的桁架优化问题。按照库--塔克条件推导出相应的拉格朗日函数,并讨论了最优化准则的物理意义,指出所有主动变量的虚应变能都相等,满应力其实是满应变能。

    接下来介绍了整个最优准则迭代法的整个过程。首先介绍了静定桁架的设计,其难点是区分主动和被动变量,需要通过单独的一个迭代来对设计变量进行划分。而对于超静定桁架,对于依赖设计变量的莫尔公式位移系数采取在每个迭代过程中近似看作常数,接下来同样是对变量进行主被动划分,然后进行优化。

    接着介绍了结构反应的灵敏度分析,探讨的位移对截面积的梯度(介绍了虚荷载法和拟荷载法,但不是太理解)、应力对截面积的梯度、固有频率对截面积的梯度和屈曲临界荷载对断面积的梯度。并介绍了结构反应梯度的应用——提供一个改进设计的信息、方向。

    最后介绍了实际应用中较为常见的“多工况、多约束下的优化准则法”。首先是多位移约束,这方面的困难有:1)区分有效无效约束;2)区分主被动设计变量;3)求解包含乘子的一组非线性方程组。接下来讨论包络法(单独考虑每一个约束求变量,再取各个结果中最大的),最严约束法(从众多约束中挑选最严约束,射线步进行可行性调整),Khot算法(提出容差带来确定有效和无效约束)。最后对于非线性程度很高的带频率禁区优化问题使用拉格朗日乘子法进行了计算。

    第三章 数学规划法
    首先概述了数学规划问题的提法,并对数学规划进行了分类。

    按约束的有无分为约束最优和无约束最优,而仅对设计变量有约束的记为准无约束最优问题;

    如目标函数及约束函数均为线性函数,则称为线性规划,否则称为非线性规划;

    目标函数及约束函数均为凸函数则为凸规划,凸规划中二次规划(目标函数半正定的二次型,约束函数为线性)和可分离凸规划(海森矩阵对角,对偶规划中常见)亦可分为整数规划、随机规划、几何规划。

    接下介绍了数学规划的求解方法,包括对线性规划的单纯形法,两相法单纯形法(从一可行解开始设计),对偶规划(对问题进行转换),几何规划和动态规划。

    对于最简单的问题——无约束最优化问题,又可以按是否利用梯度信息进行分类。不利用梯度的算法包括0.618法、单纯形法(不同于前面的单纯形法,之间的关联还在寻找)、Powell方法、随机搜索。利用梯度又分为仅利用梯度的最速下降、共轭梯度和一维搜索中的两分法、弦线法;利用梯度以及二阶导数的牛顿法。

    对于约束的处理,又分为直接处理法,将约束考虑进来,包括梯度投影法、可行方向法、最佳矢量法、复形法等;和转换法,将约束规划转化成无约束规划,包括罚函数法、碰壁函数法等。序序列近似规划算法,序序列二次规划算法,序列线性规划算法等是将原受约束的非线性规划问题转换成较为简单的受约束数学规划问题来处理。

    第二节介绍了基本的下降算法,收敛速度和停止准则。

    首先给出下山方向的充要条件——目标函数梯度与探索方向的点积小于0(这与库--塔克条件中关于负梯度为探索方向非负线性组合是相应的),并给出了下降算法的迭代步骤,第k次迭代的探索方向应该与第k+1次迭代处的目标函数梯度正交。

    接下来讲到评级算法好坏的收敛速度,常用包括线性、超线性和α阶收敛。

    最后是停止准则,包括检查目标函数梯度是否足够小,检查前后两次迭代所得设计点间的距离是否足够小,前后两次迭代目标函数值下降的相对值是否足够小。

    第三节介绍一维搜索

    首先是利用一阶、二阶导数的牛顿--芮弗逊迭代法,α2=α1-φ'(α1)/φ''(α1)

    利用一阶导数的两点法,α3=α2-ρ(α2-α1), 在α1、α2、α3中进行选择,α1、α2中的一个;

    同样是利用一阶导数的弦位法,同两点法,ρ取φ'(α2)/(φ'(α2) - φ'(α1));两分法,ρ取0.5;

    上述三个只利用一阶导数的方法,须首先找到合适区间,使φ'(α2) · φ'(α1) < 0,这证明区间中可以有极值。

    最后介绍只用目标函数信息的0.618法。

    第四节介绍无约束的单纯形法

    单纯形,即n维空间中由n+1个不同顶点组成的多面体,如各边相等,即为正单纯形。所谓单纯形优化方法,就是计算目标函数值选择比较出其中的好点和坏点。可以通过改变初始单纯形的形式、将反射中心由单纯的形心变为形心与权重的乘积。

    第五节无约束的梯度算法

    最速下降法

    探索方向取目标函数的负梯度方向,迭代过程与第二节的下降法相同。前后两次探索方向点积为0,即相互垂直,对于目标函数等值线偏心显著的问题,效率很低。其缺点:1)即使正定二次型目标函数,也要经过多次迭代;2)每次迭代并不利于以前计算的信息;3)收敛性与目标函数很有关系,如果目标函数等值线接近圆形,收敛快,而偏心率比较大,设计点沿之字移动,效率较低。

    牛顿--芮弗逊算法

    第k+1次迭代x(k+1)为x(k)减去第k次迭代目标函数海森矩阵的逆与目标函数梯度的乘积。探索方向S(k)为第k次迭代目标函数海森矩阵的逆与目标函数梯度的乘积的负数,这样可以利用基本下降算法的框图,取α(k)=1不需要再进行一维搜索。如果目标函数满足一定性质,初始解足够接近最优解,牛顿法的收敛速度是二阶的。

    牛顿法有可能失效,其原因:1)海森矩阵的逆存在,但沿探索方向S(k)步子太多导致f(x(k+1)) > f(x(k));2)探索方向S(k)与目标函数梯度正交;3)海森矩阵的逆存在但非正定,探索方向S(k)并不给出下山方向;4)海森矩阵的逆不存在。

    针对步长太大,一维搜索探索步长α(k);海森矩阵负定时,S(k)给出上山方向,取探索方向-S(k);对于海森矩阵为奇异或探索方向S(k)与目标函数梯度正交,采用最速下降法的迭代公式。通过如此修改,得到修正的牛顿法。

    对比最速下降法和牛顿法,发现搜索方向S(k)计算公式相差一个海森矩阵的逆,可以理解通过海森矩阵对目标函数的等值线进行了“圆化 ”。

    梯度法的实质:从给定设计点x(k),寻找一个“最优”的下山方向,即最小化探索方向与目标函数梯度的点积(探索方向S(k)长度一定)。通过拉格朗日乘子法得出这个最小值的解为S(k)=-▽f(x(k))。当M取I时,即以欧几里德度量探索方向S(k)的长度,这样就得出最速下降法公式;M取海森矩阵,得到牛顿法公式。只要M为正定矩阵,S(k)为下山方向。设法将取为海森矩阵逆阵的近似,称之为拟牛顿法。而由于设计空间中的长度度量尺度发生变化,也称之为变尺度法。这个近似海森矩阵Hp的需要满足一定条件:1)近似矩阵为正定阵;2)拟牛顿条件Hp(k+1) (▽f(x(k+1))-▽f(x(k))) = (x(k+1) - x(k));3)近似矩阵的计算应尽量简单,充分利用以前迭代的信息,即Hp(k+1) = Hp(k) + E(k)(可使用DFP法和BFGS法,跟解非线性方程组相通)。

    第六节求解受约束非线性规划的原方法

    处理约束时,可以直接跟约束打交道,这叫直接方法或原方法。

    梯度投影法

    设计点x(k)落在前Q个约束曲面相交的超平面上,探索方向为S(k) = -▽f - ∑λ(q)▽h(q),亦即S(k) = -▽f - λ。N(Q)为{▽h(1)  ▽h(2)  ...... ▽h(Q)}T。利用S(k)与▽h(i)正交,解出λ=-N(Q)▽f,则S(k) = -[I -N(Q)]▽f。

    梯度投影法与库--塔克条件是紧密相连的,在最优点,由梯度投影法得出的系数λ(j)就是库--塔克条件中的拉格朗日乘子;在非最优点,有梯度投影法得出的是拉格朗日乘子的近似值。

    梯度投影法的几个问题:

    1)有效约束。通过迭代挑选有效约束,首先假定约束有效,通过-N(Q)▽f计算λ(q),如得出λ(q)<0则约束无效,剔除后重新迭代。需要注意的是该方法只是直觉迭代,不保证收敛。

    2)探索步长α(k)。α(k) = min{}

  • 相关阅读:
    undefined symbol 问题解决记录
    2021年中国数字人民币发展研究报告
    如何画出优秀的架构图
    用SIKT模型,让用户画像效果倍增
    全面总结图表设计
    如何用一周了解一个行业
    未来社区解决方案
    增长4大阶段,实现营销倍增的核心法则
    裂变营销的3个层次,让你实现指数增长
    运营的3个层面,让你轻松获得忠实用户
  • 原文地址:https://www.cnblogs.com/alonecat06/p/2085516.html
Copyright © 2011-2022 走看看