产品
PRODUCTS

智能优化基础短视频系列

前言

       大家知道中国制造业要实现升级转型。国家也制定了《中国制造2025》的方针和策略。智能制造以及企业转型升级的关键是什么呢?是在设计技术。大家看下面这张图。横坐标显示的是产品从设计到生产的时间轴。图中的绿线可以告诉我们,产品设计阶段是创新潜力最大的阶段,然后很快下降。紫色线显示设计阶段本身成本很低,但设计极大地影响了后续迅速增高的产品生命周期的总成本。
                                 
图一:设计决定创新和产品生命周期总成本

       这说明什么问题呢?1.创新的关键在设计 2. 在设计阶段适当投入将降低你最终生产成本
       另外从制造业的利润分配链来看,谁抓住了产品设计和和设计代表的品牌,谁就抓住了利润的龙头。比如苹果手机,众所周知虽然手机在中国制造,但咱们的利润是苹果手机公司利润的零头,就因为人家掌握了设计和品牌。

现代企业在产品设计上遇到的挑战是越来越大,对设计的要求也越来高。
      让我们来看看下面4种设计工况的特点:
  • 汽车碰撞试验:没有方程式,计算量大而复杂 
  • 压缩机叶片:边界约束,还有性能约束,技术/用户要求/性能/安全法规,是一个典型的强约束问题:
  • 飞机机翼设计: 多目标,需要满足空气动力学,结构完整性以及小重量要求
  • 汽车车身装配: 大变量,大计算量,基于仿真的黑箱设计问题
       这4种产品和设计工况体现了现代制造业的特点: 基于仿真的设计,强约束,多目标和大变量。
       那么问题来了:对于我们大部分制造企业来说,目前的开发流程和使用的工具能满足现代设计的要求吗?
让我们首先看看目前绝大多数制造商采用的产品开发流程:

图二:目前的产品开发流程

       传统开发流程在完成3D设计后,通过实物试验来确定设计方案是否符合产品设计要求;
       在基于仿真的开发流程中,部分实物试验已经可以用CAE 来替代,相比第一种流程,效率大大提升。
       大家有没有发现我们现有开发流程中存在的问题呢?
       首先,设计和仿真是相互独立的两个过程,仿真只用于检验设计。所使用的仿真次数有限,而仿真软件通常很昂贵。设计修改和提高目前还必须依赖工程师的经验,这里的风险是当设计有几十到几百个变量,有多个目标和约束的情况下,工程师还能做出有效判断吗?那些有经验的工程师跳槽或退休以后怎么办?有没有可能依靠计算机技术帮助我们系统地、自动地生成最优的设计?

图三:设计和仿真的鸿沟意味着损失的设计提升空间和企业利润

       我92-95年在华科大CAD教研室参与开发CAD系统,95底年出国,从事工程设计方面的科研和教学工作至今,亲身经历和见证了国内外工程设计技术的两波飞速发展。
       第一波,以计算机辅助制图CAD为标志,使工程师从繁复冗长的制图工作中解放出来
       第二波是CAE技术得到广泛应用,大大加快了产品开发,减少了试验成本
       前两波技术革新带来了设计技术和生产力的极大提升,但目前设计修改依靠经验的方式成为了生产力进一步发展的阻碍,接下来的技术革命必然会是基于人工智能和机器学习的智能优化技术,就是用机器帮助我们找到最好的设计方案。


图四:设计技术的三波革命

       智能优化技术将CAD和CAE绑在一起,可以让仿真24小时不停工作,自动地产生新的设计,驱动仿真,高效地迭代,找到最优设计,使得设计过程节省人力和时间!


图五:智能优化驱动CAD和CAE高效迭代

       设计的核心是逆问题:要想达到设计目标,如何设计?我们工程师得到的应该是一个具体的最佳的解决方案,而不是一个YES or NO的定性判断!这才是能真正地释放和提升产品和企业价值的所在。换句话说, 目前绝大部分情况下,工程师都是找到一个符合要求的设计就可以了。至于是不是还有更好的设计方案,我们不得而知。这其中可能的对成本的节约,对质量的提高,对企业的利润的增加,都消失在不可知的黑洞里。
       大家来看下面几个我们实际已经完成的使用智能优化技术进行产品设计的例子。第一个是世界领先的燃料电池公司,我们做的是对燃料电池的反应堆的数量尺寸系统配置和运行参数的优化。与他们的传统的经验设计相比,能量密度提高43%,成本降低了16%。如果他们每年的生产成本是1亿美金,那么他节约的就是1600万美元。我们也跟国内某上市集团公司合作轻量化设计,对他们产品的前副车架加强筋的位置和尺寸以及前横梁截面进行了优化。我们整个优化的时间从一周减少到半天,并且减重35%。跟另外一个家喻户晓的世界知名汽车厂合作。对它的工装夹具位置进行了优化。这个问题有100个变量,有10的172次方个可能的设计方案。优化设计提高了装配件质量65%。

公司名称
项目内容
结果
世界领先燃料电池公司
燃料电池反应堆数量、尺寸、系统配置和运行参数优化
与工程师的经验设计相比,提高了能量密度43%,降低成本16%
国内某上市集团公司
前副车架加强筋尺寸和位置以及前横梁截面优化
优化时间从一周减少到半天,重量从优化前的6.81Kg到4.41Kg,减重35%
世界知名汽车厂
装配工装夹具位置100个变量优化,10的172次方的解空间
提高装配件质量65%

表一:智能优化技术工程应用效果明显

       这些都是实际的活生生的例子。我衷心地希望中国每一位制造厂商,通过使用智能优化设计技术,都能够获得类似的效益。这也是驱使我做这个短视频系列的原因。
       在接下来的短视频系列里,我将分专题解说,通过这个系列,大家就能了解智能优化设计技术,并有信心在工作中大胆尝试,也欢迎大家的反馈!反馈意见请发到我电子信箱gwa5@sfu.ca或者gary.wang@empowerops.com。我们下次见!

什么是优化

       在引言里我讲到智能设计优化技术将带来第三波的设计技术的革命,今天让我们回到最基础最根本的问题,那就是到底什么是优化?
       优化对我们来讲既是一个又熟悉,同时又是一个很模糊的概念。为什么这么讲呢?因为我们实际上每天都在解决各种各样的优化问题。比如说你早上上班出门之前就也会脑海里面规划出,最不堵车的或者最省时间的路径。然后我们上班也总会在不自觉地找出最有工作效率的一个工作方式。下班回家做饭也是如此。我们会熟能生巧地将煮饭、洗菜、切菜、炒菜等工序安排妥当,使得我们做饭的时间最短。再说大一点,我们上哪一个大学?在哪个地方买房子?选择什么样的职业?如何投资?等等等等,这都是我们在做的各种各样的优化问题。所以说优化是一个我们熟悉的概念,但同时这个概念是非常模糊的。通过跟工程师和技术人员的交流,在工程中通常人们对优化的理解有下面几种,人们常认为优化就是反复的试错,或者是凭经验产生少量候选的设计,从中选取最好,乃至是穷举,就是把所有的可能性全部列出来,然后选最好的方案。还有人认为优化就是通过一些定性的分析或者主观的判断,甚至通过多层次的,多阶段汇报,让领导告诉我们如何修正。他们认为这个过程也是优化。这些过程是不是优化呢?是,但又不是。从广义上讲以上都是优化,但不是我今天要讲的基于数量的智能设计优化中的优化。
       从学术的角度来讲,一个优化问题一般是有多个解,其中存在一个最佳解。这些解会有一个或多个可以测量的优化目标,比如成本最低,重量最轻,强度最高。这些问题往往也存在必须满足的约束,比如说安全约束,性能约束,成本约束等等。除了目标和约束,就需要几个或多个影响目标和约束的可控变量。这些变量值的改变会使得目标变化,或者影响约束是否满足。因此,一个优化问题有三个要素:目标,约束和变量。在这种问题定义的框架下,我们会有很多的方法来解决优化问题,找到它的最优解。
       如图所示,今天我要讲的优化是一种系统的数量化的理论与方法,用以在给定约束内通过改变变量寻找问题的最佳解。工程设计优化是面向工程设计的优化。而智能工程设计优化是基于数量化和智能化的工程优化设计方法与理论。其技术涵盖工程优化、人工智能、设计学、决策论、数学、统计、计算机等多种学科。


图一:优化的相关定义

      为了让大家有个直观的理解,我现在举一个很简单的例子来讲述什么是一个优化问题。图二所示的是一个简单的飞轮设计的例子,有清楚的标出的目标、约束和变量。


图二:飞轮设计优化问题定义举例

      有些制造商已经生产了几十年的象飞轮这样的常用部件,其实最初有可能通过优化可以减少10%或者更多的重量或成本等(比如可以减少成本10元)。但因为当初设计时没有做优化,白白浪费了这几十年每个产品节约这10元成本的机会。
       这么一个简单的飞轮设计其实有无数个可能性,靠反复试错、穷举,或者只根据经验测试几种可能性等普通意义上的优化方法,找到最佳设计的可能性非常小,甚至几乎是不可能的。如果这样一个简单设计尚且不能让它减重最多,我们又如何能让整个汽车、整个飞机减重呢?
       对我而言,任何人类理性的行为都可以定义成一个优化问题。我们要做的是在头脑里建立一个包含有目标,变量和约束的思想框架,并且习惯这种思想框架。这一部分我在接下来的课程里会讲,也就是如何在设计中建立优化模型,实现优化驱动设计的工作流程。
       优化问题一旦定义好,其解决的核心方法就是迭代。我相信现在流行的“”迭代“”一词就是从优化领域来的。大家请看图三。所有的优化方法都是通过对设计方案进行评估,然后由优化驱动生成新的设计方案,然后迭代找到最优解。优化方法的不同在于迭代的方法不同,而流程是一样。不同的优化方法就会有不同的优化质量和效率。有的是单点迭代,有的是一批点的迭代;有的使用梯度等函数信息,有的从自然界获得灵感采用类似仿生学的方法,有的用机器学习的方法,这些不同使得优化学科异彩纷呈。在以后的视频里会有对这些方法的综述介绍。


图三:优化的实质是快速的迭代

       总结一下,我要讲的优化有别于各种通常的人们对优化的理解,它是一种数量化的和系统化的方法, 是在一种在给定的有约束的空间里面,通过改变变量来达到系统的最优的策略和解决方案的方法。我们要建立优化思想的框架,理解优化的实质是快速的迭代。
       有人可能会问,我怎么开始将优化放到我们具体的设计实践中呢?这个问题我接下来会举例讲解,谢谢大家!

优化简史

       大家好,我是王高峰。今天跟大家继续这个短视频系列,聊聊优化的发展史。
       优化最初的思想萌芽您可以在微积分中找到 (图一),赫赫有名的大数学家、科学家费马和拉格朗日首次用微积分公式来找到函数的最佳值。而牛顿和高斯最早提出用迭代方法来寻找最优值。


图一: 优化发源于赫赫有名的大科学家和数学家(图片来自维基百科)

       但优化的理论框架的建立是始于二战和二战以后的几十年。这些早期经典的优化方法也被称作数学规划方法。这些方法都源于盲人爬山的思想。就是一个盲人必须摸索出一个行进方向和步长,然后到达下一点,如此循环往复的迭代,直到找到最优解。大家可以看图二。从不同的起始点开始,一步一步可以找到不同的极值点。或者叫局部优化点。经典方法里比较有名的有最速下降法。牛顿法,拟牛顿法等等。这些方法只提供一个局部优化解。而且是一个串行的过程。也就是说,你下一点必须在前一点确定以后才能开始计算。当每个步骤花费很长时间时,此方法的弊端就凸显出来。因为优化的总时间等于每个步骤经过的时间与所用步骤数量的乘积。2001年福特汽车公司整车碰撞仿真平均耗时约100小时,假设两个变量的问题迭代50次,整个计算时间就是5000小时。即使夜以继日地运算,也需要将近7个月时间。这显然不符合实际要求。这类方法的第三个主要不足之处,就是依赖梯度信息。其他还有可能不收敛,让工程师无法增强对问题的理解等等。


图二:经典优化算法采用盲人爬山的思想(图片来自云栖社区)

      图三所示的是一个经典的弹簧优化的算例,这个例子几乎出现在所有优化的教科书上。这个问题的优化目标是最小质量。约束包括弹簧变形,几何约束,不能引起共振,剪应力不能超过允许值等等。变量包括弹簧的内径,外径和间距。这样的问题有个特点,就是所有的目标和约束都有数学表达式,有完备的梯度信息。这个特点也恰恰成了经典优化方法应用的局限,因为实际工作中很少有问题的数学表达式。


图三:经典优化适合解决有方程式有梯度信息的优化问题

       从1980年代起,元启发式方法得到大家的关注。其中比较引人注目的有遗传算法、模拟退火法、粒子群算法等等。遗传算法基于“适者生存”的理论,让一批设计方案通过类似人类遗传的方式进行进化,好的基因能够通过遗传得以继承,如此达到优化的目的。大家知道生物的遗传与进化是一个漫长的过程,所以这一类的算法往往需要很多的尝试设计,或者称设计试验,这样计算量往往很大。所有的这些元启发式方法都是全局搜索方法,但是一般来讲需要大量的点,效率比较低。它们也没办法提供处理昂贵约束的方法,缺乏扎实的理论基础。
       我团队曾经开发了面向问题的专用遗传算法来规划机器臂路径,使得机器臂在夹持冲压件之后能顺利将冲压件从冲头与模具中拿出来,而不与之产生碰撞。解决此优化问题使用了13,500次轨迹计算(或者叫设计试验),但每次轨迹计算时间很短。所以来讲元启发式方式对那种校验时间比较短的问题比较适合。但是如果要用有限元或者流体动力学仿真来进行设计校验的话,这类方法就不适合了。那如何以少的设计试验次数找到全局最优值呢?
       从1990年代后期起,第三代的基于响应面模型的优化方法应运而生。这类方法也常被称作代理模型法,近似模型法,或者元模型法。它的基本思想遵循图四所示框图。首先通过传统的实验设计(DOE)方法生成一组设计点。然后在这些设计点上, 构建一个响应面。你可以把它想象成为拟合曲面。然后对这个模型进行校验。如果模型精度足够,那就在这个响应面上进行优化。


图四:响应面模型方法流程(左)与响应面(右)

       这个方法有很多优点。首先它是全局搜索,响应面模型提供了数学公式来支持经典的优化算法。它无需梯度,也可以实现平行计算。商业优化软件公司也着力推广这类方法,使得这些方法得到了很多用户的采纳。然而这类方法有很多理论和实践上的问题。首先,传统的实验设计方法不适合于计算机仿真。计算机仿真需要的是设计空间中有很多点,用以增加问题本身的信息,减少系统误差;而传统DOE是针对物理试验而设计的,其主要目的是减少随机误差对结果的影响。第二,这类方法依赖模型的高度准确,如果模型不准确,那它的优化结果将大为可疑。对高变量问题,绝大多数情况基本没有办法建立一个全局准确的响应面模型。第三,有一个致命的问题就是对大变量问题传统DOE需要的点数是惊人的。比如:一个10个变量的问题,假设二次非线性,那么如果每变量至少需要3个值,这样总的点数高达3的10次方=59049!如果一次仿真只需要一个小时,59049次仿真意味着6.74年。换言之,对一个10变量的问题,光是建立一个还不知其准确度的响应面模型就需要6.74年!这就是所谓的“高变量诅咒”。而且第三代方法忽视昂贵约束的处理。什么是昂贵约束呢?比如说,你的应力或者是应变应该小于某个值。而这些应变应力是通过有限元计算得来,那这样的约束我们叫昂贵约束,用以跟有数学表达式或其他容易计算的约束区别开来。最后还有一个,这类方法对用户要求比较高,用户必须要懂得实验设计方法、元模型构建以及校验方法、还要懂得经典的第一代和第二代的优化方法。以上这些问题阻碍了优化技术在实践中的进一步发展和应用,限制了其发挥更大作用,甚至在某种程度上影响了优化的声誉。
      为了克服第三代优化方法的缺点。从2010年代起,有少数的科学家开始研究基于人工智能的优化方法,以解决高变量诅咒和昂贵约束的问题。这一类方法的流程框图跟第三代很不一样。大家看图五。它首先在设计空间里采样。这个跟传统的实验设计方法是不同的。然后构建一个机器学习模型。这个模型不需要精确,它只是用来提供一个学习的依据。然后开始机器学习,基于学习的知识,重复在设计空间里采样。这个过程不需要调用任何前几代的优化方法,它完全是一个采点、学习、再采点的过程。再看看右边OASIS奥西斯软件的算法框图。首先采样,然后调用分析过程对样本分析,对问题进行识别以选择合适的学习方法、通过机器学习、知识挖掘和知识精炼,然后再决定下一步采样的位置。如此循环往复。它继承了第三代响应面模型优化方法的所有的优点。比如说支持并行计算,不需要梯度等函数信息。它独有的优点是使用的设计试验点更少,提供对高变量诅咒和昂贵约束的解决办法,优化方法智能化,更具普适性。以后的视频里面会着重讲这类方法的主要思想和它的特点。


图五:基于人工智能的优化方法的一般流程(左)与OASIS奥希思算法框图(右)

       好,我们现在回顾优化方法的简史。从经典方法到元启发式方法,到响应面模型方法和人工智能的优化方法。每一个方法的特点,代表算法和商业软件都总结在图六里。



图六:优化方法演变一览图

       优化方法经四代的发展,历大半个世纪的开发,已经能够满足现代设计的要求。但优化方法的研究之庞杂方法之多,很容易让人产生迷惑。所以我们要知道我们手里面所用的方法和它的优缺点,是不是适合你现在的问题。但这些问题呢,你也不用过于忧虑,因为智能优化方法可以自动地帮助你选择适合的算法。我预言它会带来第三波的设计技术革命。在不久的将来,每一工程师都会有一个优化的功能键在他的CAD或者CAE的软件里。让我们拭目以待,做好准备,迎接大发展的到来!谢谢大家!

什么是智能优化

       大家好,我是王高峰。前一集视频提到智能优化是第四代优化方法,今天我着重介绍智能优化的定义、思想、特点和优势。
       智能优化方法是通过对有限数据点进行机器学习和重新采样,对问题进行优化的思想与方法。通过不断的迭代,它可以持续提高机器学习的精度,学习变量的不同全局敏感度,学习变量之间的相关性,以及学习每变量的有效取值区间,并通过反复验证和再学习,追踪最优方案。其思想可以用图一的流程图概括,就是通过采样,构建机器学习模型,然后学习和挖掘知识,精炼采样位置,然后循环迭代。


图一:智能优化方法流程图

       下面我们通过两个例子来看看智能采样的过程。
       第一个例子是一个多目标优化的问题。假设一个汽车厂要出一款新车,设计有两个目标,横坐标是成本,越小越好;纵坐标是某一个性能指标,本来是越高越好,乘以负一之后,也就变成越小越好,这样使得两个目标都是求最小值。黄色部分表示所有满足约束的设计方案,超过这个黄色区域的都是不用考虑的,或者是达不到的产品指标。对多目标优化问题,优化的任务是寻找其柏拉图线,或者是柏拉图面。什么是柏拉图线呢?就是最优解的集合,比如图二中所示BC曲线段。B设计比C设计的性能差一些,但成本低一些。除非给定权重,你不能说B和C哪个更好,所以他们都是优化解。这个问题有一个奇点A, 它也是在柏拉图线上。多目标优化就是要给决策者提供整个柏拉图线,然后决策者确定产品定位,在柏拉图线上选择一个设计方案。一个好的优化过程应该在柏拉图线上或附近区间采样,在其他地方采样都是浪费时间和资源!


图二:多目标优化目标空间和柏拉图线

      下面记录的是实际运行的用智能优化方法采样的过程(见智能优化基础短视频系列之四)。大家注意新的点由一个十字标识,如果是上一次迭代的和以前的点,就会有一个圆圈包住。大家注意看新点产生的位置。大家看到在第一次撒点之后,几乎所有新的点都在柏拉图线上或者附近(图三)。甚至奇点A都准确无误地找到了。整个过程完全是采样、学习、再采样,没有调用任何传统优化程序。这就是智能采样逼近目标的例子。

图三:OASIS奥希思智能优化集中在柏拉图线上及附近采样

       在实际工作中,我们往往碰到约束也是由有限元计算,流体动力学分析等昂贵过程计算而来的情况。这样的约束称为昂贵约束;而与之相对应的廉价约束是有数学方程式的或其他可以很快校验的约束。昂贵约束问题是难以解决的问题。智能优化软件与仿真软件结合,把仿真软件当做一个黑匣子,客户只需要给出输入变量、变量范围和廉价约束条件, 然后设定输出目标、和昂贵约束条件, 就可以进行优化了。
       接下来我用一个例子说明智能优化如何快速找到满足约束的设计,大大节约运算时间。
       为了演示智能优化方法对昂贵约束的处理,我使用了这个PowerShell脚本,该脚本计算有10个输入变量的目标函数,需要找出目标的最小值。其结果要满足g1(x)~g8(x) 都小于和等于零的强约束条件(图四)。每运行一次此脚本,就一同调用目标函数和所有约束,因此这个问题也是昂贵约束问题。下面我们将看到智能采样过程如何快速找到满足这些强约束条件的最佳结果。


图四:昂贵和强约束问题示例

      图五至图七记录了PowerShell脚本运行时的数据。x轴是迭代次数,y轴是设计变量x8的取值; 图六显示了昂贵约束值; 图七显示了目标值,蓝点表示不可行的设计,橙色点表示满足所有约束的设计。 优化最初随机性较强,从图六中可以看到很多不满足约束的点,因为它们的值大于零点,大概50点左右,所有约束都得到了满足,并趋于稳定。从图七上也可以看到刚开始全都是蓝色点。然后,逐渐找到了最佳的设计变量区间,在第118次迭代中,找到了全局最小值。图五中x8从最初的下边界逐渐稳定在上边界值。

                                                
图五:设计变量x8从随机到取下边界值,最后稳定在上边界值


图六:约束最初随机分布,到50点左右基本全部满足

蓝色:不满足约束点
橙色:满足约束点

图七:目标值在找到满足约束点之后下降明显,到118点找到全局最优

       如果将所有输入变量取值变化图画出来,其行为也跟图四的x8类似,可以看出从随机采样到通过机器学习迅速稳定的变化情况。这种方式极大地减少了仿真次数,表现在实际应用中就是大大减少运算时间。从这个例子看出,对昂贵约束问题,智能优化方法通过智能采样重定向,先竭力寻找满足约束的解,然后在同时考虑约束和目标的前提下,迅速收敛到好的采样点。
       智能优化方法有什么实际的意义呢?对用户的传统习惯和认知有什么挑战呢?
       第一,我们在实际服务客户当中,发现有些技术人员喜欢用免费的传统优化方法,这些方法难以实用化,不能满足工程实际的要求,这也是为什么传统方法从上个世纪70年代就趋于成熟却没能在工程实际中用起来的原因。这里我详细比较了传统方法以及智能优化方法。我们可以看到智能优化方法突破了传统方法的局限,使应用变得广泛,使用简单。


传统梯度方法
智能优化方法
结果
局部优化
全局优化
搜寻方式
串行(新的搜索点必须在前一点算完之后)
并行(可以同时算多个点)
应用
需要梯度信息和知道函数特性;最适用于连续凸问题
应用几乎无限制
-连续、离散、混合变量
-组合优化
-大变量
-强约束、昂贵约束
对用户要求
需要懂优化算法,知道选择最合适的算法
无需懂优化
新知识
只有最后的优化结果
变量敏感度、变量有效区间、变量相关性、机器学习模型、优化结果群

表一:传统梯度方法与智能优化方法的比较

       其二,眼下流行的商业优化软件都要求用户挑选算法和调整算法参数。这其实是一个不可能的工作,mission impossible!因为工程问题中,用户一般是不知道设计目标和约束的函数特性的,对用户来讲,这些目标或约束就是一个黑匣子。在这种情况下,即使是优化专家也无法选取最好的算法或调参数!而智能优化方法没有这个要求,识别函数特性的工作在机器学习过程中自动完成了。这就像一个“傻瓜相机”,把那些复杂的调光圈和焦距的工作全部做完了,用户不需要像过去一样需要经过一系列的培训才能照相。
       第三,智能优化带来工作流程的改变。首先,不再需要DOE,也不需要建立响应面模型,然后再用模型进行敏感度分析。智能优化的采样和机器学习过程淘汰了DOE和响应面模型。而敏感度分析的主要目的是什么?是抓主要矛盾,降维度,最终优化,对不对?这一切智能优化都包含在算法里面。以奥希思软件为例,智能采样过程自动聚焦在重要变量上,可视化绿带给出最好的一组设计点,用户可以在绿带里选取任一点。如果用户因为某种原因需要敏感度信息,软件可以输出,因为信息已经隐含在算法里了。
       总结起来,智能优化方法是通过有限数据点进行机器学习和重新采样,对问题进行优化的思想与方法。我们今天通过两个例子看到智能优化如何快速逼近优化目标,如何尽快找到满足约束的可行解。智能优化方法突破了传统优化的局限,而且使得优化变得像“傻瓜相机”一样简单好用。
下一次我将通过实例来讲解工程师在实际应用智能优化方法的工作流程。咱们下次见!

优化设计实例

       大家好,我是王高峰,上回我们讲到智能优化设计有什么特点和优势。今天我们结合具体的例子来讲解如何使用智能优化设计的思想和方法进行实际的工程设计。
       表一比较了传统设计过程与优化设计过程。大家看图中的主线。从设计开始到结束的步骤都是不变的。传统过程中设计反馈基于经验和直觉,而优化设计过程是基于优化问题本身用优化方法来自动修改设计。在传统设计中一般没有清楚定义的目标,只有技术需求满不满足。而优化设计是要求设计者将目标和约束清楚地定义出来。传统设计一般是定性的,没有办法保证最优设计。而优化设计是定量的,是一个自动生成下一个或者多个设计方案的过程,保证最优的设计。目前优化设计还只是为一些行业的领头羊,或者颠覆性的创新型企业所采用。

传统设计
优化设计
没有清楚定义的目标;只有技术需求满不满足
要求清楚定义和区分目标和约束
不计算设计趋势信息
自动计算设计变化趋势
设计修改依赖于设计者的经验和直觉
自动生成下一个或多个设计方案
定性的,无法保证最优设计
定量的,保证最优设计
为大部分企业所采用
为行业领头羊或者颠覆性创新型企业采用

表一:传统设计与优化设计过程的差异

       一个优化问题有三个要素,目标、约束和变量。基于仿真的优化中的目标和约束通常是通过调用仿真软件,从仿真结果中选择的,其中可能包括应力,位移和阻力,也可能来自CAD模型,例如体积、质量、重心位置、转动惯量等。输入变量包括CAD模型中的几何尺寸,以及其他非几何参数,例如在零件的设计和制造中变化的载荷和材料属性,运行参数等。 输入变量边界定义了目标最优值所在的搜索空间。
       好,我们现在下面用飞轮设计问题来举例(图一)。在定义这个优化设计问题的时候,我们工程师要给定优化目标、设计变量和设计约束。这个飞轮是在每分钟1000转的离心力的情况下,需要我们设计槽的个数、槽宽、槽深还有每一个槽孔与中心的距离。使得它的质量最小,而且呢,它的最大的广义冯·米赛斯(Von Mises)应力应该小于一个给定的值,以至于飞轮不会失效。


图一:飞轮优化设计问题定义

       从理论上来讲,这个问题已经定义好了。下面就是需要工程师的智慧的地方了。设计师要确定每个变量的取值区间,以及他们的一些几何关系,使得当这些变量在它们的区间里面组合的时候,不至于产生无效的几何形状,或者使得有限元的网格划分无法进行。大家看图二中的a和b都是在工程实际中无效的设计方案,这就是因为变量的取值区间不妥当所产生的结果。图二c是一个比较合理的设计方案。下面看到的就是每一个变量的取值区间,还有他们的一些几何关系。因此设计师需要尽量选择遵守CAD几何约束的变量取值区间和定义简单的数学关系。


图二:工程师加上变量取值范围和简单数学关系约束减少无效设计

       当设计问题定义好之后,怎么样使用智能优化方法与工具进行设计呢?下面我用支架的设计来举例讲解。大家看到的是一个比较简单的铝合金支架设计,它有三个变量。壁厚P,筋板长度l和筋板的厚度r. 这个设计问题需要在300牛顿的受力情况下支架不能失效。工程师通过初始设计把这三个变量的值确定以后,进行有限元分析,发现它的最大应力为1.81e7帕斯卡,小于它的屈服应力2.76e7帕斯卡。也就是说设计要求达到了满足,设计任务就算完成了。这就是一个典型的CAD加上CAE的设计过程。


图三:支架设计满足技术要求(传统设计流程)

       但我们是不是做到了最优的设计呢?可不可以以把质量再减少一点呢?于是工程师就定义了一个优化设计问题。就是在最大应力不变的情况下,使它的质量最小。因此他定义了图四所示的优化问题,大家注意看目标和应力约束。使用一键优化功能,很快优化结果出来了,让工程师吃惊的是,筋板几乎没有了,质量减少了10.2%。此时这个流程就是不光有CAD和CAE,也加上了智能优化的迭代计算。


图四:单目标设计优化结果

       那这个时候,说不定这个设计师又会问:假如我想要最大应力小一点,那我该牺牲多少质量呢?要回答这个问题,就必须进行多目标优化设计了。现在看这个优化设计问题,他的目标有两个,就是使质量和最大应力最小。其他的一样。通过一键优化之后,我们得到的结果是一个柏拉图线,也就是所有最优解的集合。图五所示所有的绿点都是最优解,也代表着柏拉图线。这条线上的设计很多,那如何做选择呢?


图五:多目标优化定义及其结果

       以奥希思软件为例,它提供了一个决策模块。第一步把所有的柏拉图线上的设计导入到模块中。通过使用初始设计来做一个参考,我们就可以过滤掉任何一个目标差于初始设计的方案。图六中红色圈中质量设定为131.97克,最大应力设定为1.81e7,这是初始设计的两个性能指标。用这个过滤以后,剩下的设计点再导入到第二步的方案比较。图七右边红色圈表示的是第67和64点为最好的两个点,看左边红圈标识的它们的质量都在119克左右。第67点的应力低于第64点。其他的设计还有第49与第98点。


图六:用初始设计过滤柏拉图线上的优化点


图七:OASIS奥希思决策模块按用户偏好比较选优

       我们把刚才讨论的设计方案列在一起进行比较。大家看到优化后的设计都不需要筋板。第67号设计的质量略高于单目标优化设计方案,但应力减小了(图八)。我们再换个方式来进行多设计方案的比较。在图九中看初始设计比较无论从质量还是应力来看,都是最差的。其他四个点各有优缺点。设计师可以将这些设计结果呈现给主管作出最后的决策。


图八:多设计方案比较


图九:多方案设计在 空间里的比较

       至此,优化设计的流程就基本结束了。大家可以看到优化设计是设计师与智能优化软件的一个交互迭代过程。使用智能优化设计软件,可以产生多个优化设计方案。使用一键优化可以让设计师着重于设计问题本身。没有那些挑算法调参数等中间的过程。通过这个简单的例子,希望大家在短时间里面能够理解优化设计的一个过程和思路,以及工程师在设计中的角色。
       这个短视频系列到今天已经有五讲。希望听到大家的反馈,如果还有什么需要我继续讲的,请大家把邮件发送到这个邮箱里gwa5@sfu.ca或者gary.wang@empowerops.com。谢谢大家,希望有机会我们再交流。