HyperWorks优化实例向导:之高考数学一题九解及梁单元优化 梁单元虽然看起来简单却很重要。因为很多大型结构都是由梁单元搭建起来的。鸟巢设计方 ARUP 是Altair的全球大客户他们用Altair OptiStruct™和Altair HyperStudy™ 优化他们的产品。梁单元的建模和梁截面的建模已经在之前文章中详细介绍过了。这一期只讲梁单元的优化包括拓扑优化、形状优化、尺寸优化和换截面等。依照惯例还是主要以举例的方式说明并一如既往地提供操作视频和模型下载链接在文末。引子在这沉闷的岁月里应该有愉快的题目才对以一道高考题作为引子高考题求以下函数的最小值曾经参加高考的你不妨先自己试试看能不能凭自己的聪明才智解出解析解答案在本文最后。除了高考解析解法本文还给出了Compose / HyperStudy / HyperMesh / HyperGraph 解法 templex 解法MotionView / MotionSolve / python numpy / python symbol 九种解法。提供了HyperMesh / MotionView / MotionSolver / HyperStudy 解法视频在文末可以获取下载链接。OptiStruct 解法直接在接下来这道题中展示就不在这个小题上试牛刀了。形状优化下图是一个管道示意图123是三个村庄水平线是一个管道现在希望重新设计两个小红点之间的管道以缩短管道总长。因为截面一致体积最小化就相当于长度最小化这样可以免去计算距离的麻烦。优化三要素目标体积最小化约束无设计变量连接点位置x向和y向两个形状变量优化结果如下总的体积减小了多少呢请看优化迭代图具体操作就不截图了请看下方视频本例模型文件dist_opti.fem 在课件压缩包 model 文件夹内以上纯属娱乐接下来才是梁单元优化的正经技术。01拓扑优化话说拓扑优化是解决结构优化问题的首选无论 1D - 2D - 3D 基本上都是一样。假设要在山坡上建造类似过山车轨道的结构需要在轨道的下方按照一些 z 向的金属支撑柱由于坡度、轨道方向等变化不同位置的载荷大小和方向各不相同。本例是一个简化模型仅对支撑柱的安装位置进行优化。顶部的轨道部分作为非设计空间保留整体模型如下图所示优化三要素优化变量所有支撑柱单元设计约束设计空间的剩余体积 50%优化目标最小化轨道的最大位移优化需要考虑40个工况每个工况的位移约束都是支撑柱底部的全约束每个工况载荷的施加位置及大小方向各不相同载荷和工况的建模比较复杂二次开发视频教程中有个脚本是针对这个模型的优化过程的主要步骤如下01创建设计变量props 只选择 support_design点击图片可查看高清大图02创建体积百分比响应props 只选择 support_design03创建位移响应nodes选择轨道上的所有节点。04创建位移的目标参考05创建目标为最小化最大位移06提交计算并查看优化结果为了更好的显示梁单元在HyperView的Preferences Options下拉菜单中将所有1D单元显示为圆柱。优化结果的密度云图显示如下利用Iso工具密度大于0.5的支撑柱如下图所示详细操作步骤请参考视频1D 单元的拓扑优化还经常被用于焊点/铆钉/胶等连接件的优化可以用于找出关键连接位置或者减少焊点。大家可以在历年Altair用户大会文章中找到很多篇客户应用文章。下图是某客户进行焊点位置优化的模型典型工况是全局刚度和低阶模态。02尺寸优化01.梁截面的尺寸优化以工字梁 PBARL 为例OptiStruct 帮助中有两种工字梁I 和 I1截面尺寸如下以 I 型截面的DIM1为例01进入sizeparameter面板创建一个尺寸变量02关联尺寸变量到属性项prop 选择一个 PBARL 属性designvars 选择刚刚创建的 dim_1这样就完成了工字梁的高度尺寸的变量创建。每个工字梁有4个尺寸如果要创建下图照片摄于2018年bauma工程机械展的所有梁的尺寸变量工作量有点大。早在之前文章中已经介绍了梁单元尺寸优化的例子。梁单元的尺寸优化的困难不仅仅在于大量梁单元设计变量的定义比较麻烦针对特定问题编写脚本是一个比较快捷的方法。梁单元类型繁多HyperMesh并没有给出简单易行的批量创建梁单元截面尺寸变量的方法。而且梁单元的尺寸通常都不是独立变化的比如管状截面的外径必须大于内径工字梁的各个尺寸也有相互约束。OptiStruct可以使用DLINK或者DLINK2定义尺寸约束关系HyperStudy也支持变量之间施加约束关系具体用法同样可以参考【HyperMesh宝典】之OptiStruct优化变量。实际上很多结构都是使用型材连接在一起的型材的尺寸不能随意定义只能选用市场上供应的规格。为了解决这类问题用下面这个简化的垳架的梁截面类型优化来演示解决方法。本例的方法可以解决如何选择截面的问题例如在以下截面中该选择哪种或者在下列同类型的截面中选择哪一个为了便于加工制造截面的类型不宜太多而且同一根梁应该选用同一截面。考虑可能存在的几何大变形问题该分析模型采用OptiStruct带大变形的准静态分析。工况设置如下为方便后续操作将模型分成了9个component并分别进行了单元ID号控制使每个component的单元id都在各自范围内这样方便文本编辑器选择同一个component的单元。组件情况如下图计算位移结果如下图接下来需要从 fem 文件生成一个 templex 参数化模型。这是最关键的步骤。生成的部分tpl文件内容如下01在文件开始创建9个变量{parameter (tube1, tube1,10, 10, 40)}{parameter (tube2, tube2,20, 10, 40)}{parameter (tube3, tube3,20, 10, 40)}{parameter (tube4, tube4,30, 10, 40)}{parameter (tube5, tube5,30, 10, 40)}{parameter (tube6, tube6,30, 10, 40)}{parameter (isec1, isec1,2, 1, 3)}{parameter (isec2, isec2,2, 1, 3)}{parameter (isec3, isec3,2, 1, 3)}02在相应部分引用这些变量以上工作都在文本编辑器里面完成具体可以看课件压缩包内的操作视频。这些 templex 的编程语法可能让你困惑好在我们已经准备了成套的templex视频教程。下载方法见本文结尾。03打开HyperStudy进行模型设置优化响应为体积和加载端的位移。用 DOE 可以找出各因子的影响大小这里采用默认的 Mels DOE 算法生成61次试验。根据2-8定律80%的成果是由20%的投入产生的。下图可以看到体积主要由前三个变量决定变形主要由前五个变量决定。04通过全局响应面法或遗传算法得到最佳设计优化三要素如下优化目标最小化体积设计约束节点223的位移40mm设计变量梁截面的类型从优化结果可以看到最大位移和体积的散点图如下右边的点体积大泡泡大小代表最大位移的大小。可以看到总的来说体积大的变形小符合常理但是如果设计不好也可能出现体积位移都很大的情况例如最上面的那个泡泡。最大位移和体积的散点图蛇形图直观地看到所有优化设计方案从左到右的每一条线代表一次试验蛇形图当然最最重要的是优化得到的结果到底有多优秀体积降了多少请看下图的迭代历史曲线左图的体积下降简直是飞流直下三千尺。具体操作看视频Q除了换个截面形状能不能优化梁的有无呢A当然是可以的有很多种方法。前面拓扑优化的例子已经大概实现了这个功能但是问题在于优化结果会有很多中间密度单元如果结果只要0和1就好了。最简单的方法是直接进行尺寸优化比如把尺寸设置为离散值一个取值是接近0的值不能真的是0否则求解器会报错另一个是当前设计值。或者为梁赋不同的材料把弹性模量E作为变量。这些方法都太传统了我们要介绍的是另外一种直接通过tpl的if表达式控制fem文件中相应单元的有无。为了方便起见我们将使用 include 文件。可以在 HyperMesh 界面右击创建 include 文件然后把相应的 component 鼠标左键拖拽到对应的 include 文件即可。注意到 node 信息需要保留在 master 文件里否则一旦这个子 include 文件不在了整个模型都无法求解了所以拖拽过程弹出的下图对话框需要设置如下然后在文本编辑器里面建立设计变量和if表达式如下为了方便记忆把变量范围取为了3456和include文件的名称一致{parameter(var1,var1,3,3,6)}$$ optistructSUBCASE 1LABEL NONLINEARANALYSIS NLSTATSPC 1LOAD 2NLPARM 3NLADAPT 5NLOUT 4BEGIN BULK{if (var1 3)}INCLUDE c3{elseif (var1 4)}INCLUDE c4{elseif (var1 5)}INCLUDE c5{else}INCLUDE c6{endif}这段tpl文件实现了下图左侧4个结构的四选一功能。也可以实现独立决定每一个结构的有无只需要把取值范围变为0或1即可。{parameter(var3,var3,1,0,1)}{parameter(var4,var4,1,0,1)}{parameter(var5,var5,1,0,1)}{parameter(var6,var6,1,0,1)}$$ optistructSUBCASE 1LABEL NONLINEARANALYSIS NLSTATSPC 1LOAD 2NLPARM 3NLADAPT 5NLOUT 4BEGIN BULK{if (var3 1)}INCLUDE c3{endif}{if (var4 1)}INCLUDE c4{endif}{if (var5 1)}INCLUDE c5{endif}{if (var6 1)}INCLUDE c6{endif}建议大家自己动手试一下亲手成功一次自然就明白了。我提供了操作视频。下图是其中一个DOE模型虽然这里讲的模型都是梁单元但是如果include文件里面的内容是2D/3D单元也是一样可以的哦。不信的话可以自己尝试一下~此外下载链接里面还提供了一个Radioss冲击工况的HyperStudy形状优化模型和视频简单的形状变量。03高考题答案公布接下来该公布高考题的答案了。作为一名工程师我的习惯是先用 Compose 画个图偷看一下答案最小值在7.2左右对应的x在-0.5左右。Compose 算法中的一部分是和 HyperStudy 类似的比如遗传算法、序列二次规划法等等。注意右下角有一堆求解优化函数可以帮忙找出最优解。01解析解法先把y写成如下形式因为两点距离公式就是这么写的y就是x, 0点到(-5, 3)和(1, 1)两个点的距离之和。根据几何意义画图根据对称性(x, 0)到(1, 1)和(x, 0)到(1, -1)距离相等所以可以将(1, 1)关于x轴镜像后再连接-5, 3。很显然最短距离在三点共线时达到。最后利用直角三角形斜边计算公式即可得到答案无理数02符号求解工具也可以通过一些符号求解工具直接得到符号形式的解析解。例如可以访问如下网址直接输入表达式得到解析解也可以使用一些商用符号计算软件但不在本文讨论之列。03Compose / pythonCompose 带了大量的python的科学计算工具库例如 numpy、sympy 和 matplotlib 等。这里先用符号运算工具包 sympy 求解一下。也可以在 numpy 中进行数值求解并用 matplotlib 绘图python代码很容易懂就不多解释啦。Compose优化解法如下直接贴个图就够了。04HyperGraph / templexHyperGraph 和 TextView 解法如下图所示看不懂右边代码的请参考templex教程。得到曲线和标签如下图运行 templex 后结果如下05MotionView/MotionSolveMotionView/MotionSolve的结果如下【相关内容】HyperMorph网格变形技术在空调压缩机支架优化中的应用HyperMesh结构优化在油底壳降噪中的应用HyperMesh在车辆典型点焊结构有限元建模中的应用

本周精选

本月热点