Mechanical Design Optimization with Abaqus and Isight
【参考教程】
- Abaqus Isight - Optimization of a Pump Support https://www.youtube.com/watch?v=xCmVjNXlczM
2.【YouTube转载】Isight参数优化(士盟科技出品)(中文讲解) https://www.bilibili.com/video/av18312751/
一、项目背景
本项目为“ME327机械优化设计方法”课程项目。
如何合理利用更轻更强的材料,是机器人结构设计值得深究的问题。在驱动的功率一定的情况下,更轻的机械结构意味着电机承受更小的负载,更强的机械性能意味着机器人可以拥有更大的体格。本项目意在探究使用碳纤维材料的机器人腿部结构设计与优化方法,并结合Abaqus和Isight软件,通过计算和仿真来得到初步的设计方案。
如下图所示的六足蜘蛛机器人Mat6有6条腿,每条腿有两个关节。现在计划将每条小腿(即最后一个link)改用碳纤维材料以减轻机器人的重量。
二、问题描述
寻找最优的小腿形状,使得其质量最轻,刚度最大。对这个问题进行简化,假设小腿模型由一个半径待定的圆沿着某条曲线扫掠获得。输入参数是曲线的形状和扫掠圆的半径,然后在模型上铺设碳纤维复合材料,并设定约束,进行仿真,输出参数是小腿的体积和最大形变量。优化这两个目标,找到最好的小腿模型设计方案。
三、用Abaqus完成复合材料的仿真分析
参考:Abaqus tutorials for beginners - Hollow Composite pipe Analysis, URL: https://www.youtube.com/watch?v=xnEi6kBMGCU
1. 打开Abaqus2017
选择:部件-创建部件-三维-可变形-壳-扫掠,进入草图截面,绘制小腿轴线。这里我将小腿曲线简化为两两相切的一段直线和三段圆弧构成的曲线,并标注了尺寸。注意,本Abaqus工程采用SI单位制。
小腿的垂直高度为0.3m为固定值。
2. 绘制扫掠圆,设半径为0.033m。扫掠完成建模。
3. 进入属性,创建材料。
命名为:Unidirectional Carbon Fiber,选择密度,设置为1760(kg/m3),设置弹性材料行为,类型:工程参数。填入下表所示数据。单位:SI
碳纤维材料的参数来源:Liu T J C, Wu H C. Fiber direction and stacking sequence design for bicycle frame made of carbon/epoxy composite laminate[J]. Materials & Design, 2010, 31(4): 1971-1980.
4. 创建铺层
点击创建复合层,建立沿着曲面内部为法线方向、沿着曲面母线为主轴方向的坐标系。层方向定义为离散,法线轴与主轴均自定义。
选择区域、材料,设置厚度与铺层材料朝向。如下图所示:
在Ply Stack Plot视图中检查,效果如下:
5. 进入装配,选择创建实例从部件-实例类型非独立
6. 创建分析步,在场输出请求中多勾选体积输出(SVOL)
7. 创建载荷和边界条件
假设腿部与地面的摩擦力足够大而不会产生滑移,简化为固定约束。腿的另一侧承受身体的1/6重量,约35N。如下图所示:
8. 创建网格
对象选择部件,设置网格参数如下
9. 开始仿真分析
点击作业,创建一个作业,并在作业管理器中提交运行,运行结果如下图
从图中可以看到最大的变形量,我以这个指标作为刚度的优化指标。
至此,Abaqus的仿真结束。仿真文件为xxx.cae,输出结果文件为xxx.odb
四、利用Isight结合Abaqus的仿真结果进行结构优化设计
1. Isight简介
传统的设计通常是采用试算法,即在设计时根据要求,参考一些同类产品设计的成功经验,凭借一定的理论判断来选定设计参数, 然后进行校核计算,检验其是否符合要求,不满意则调整设计参数再校核,如此反复多次直到满足设计要求为止。传统的算法已经不能满足高效、优质的设计生产任务要求,需要一种新的方法来适应现代化的高速发展。ISIGHT通过一种搭积木的方式快速集成和耦合各种仿真软件,将所有设计流程组织到一个统一、有机和逻辑的框架中,自动运行仿真软件,并自动重启设计流程,从而消除了传统设计流程中的"瓶颈",使整个设计流程实现全数字化和全自动化。所以ISIGHT是一个“软件机器人”,可以在不用人工干预的情况下不断的调用相应的工程计算软件进行计算。在进行数值分析的时候,可以通过修改模拟计算模块的输入文件来完成模型的修改。
2. 数值优化方法
通常的工程优化问题具有非线性、连续的特点,数值优化是解决这类问题的理想方法。数值优化算法能够利用函数的导数、梯度等数学特征,实现高效的优化。能有效探索初始设计点周围局部区域,如果设计空间是连续、单峰的形态,能够沿最快下降方向快速探索,特定条件下,能从数学上证明其收敛性。
Isight的optimization模块里集成了许多数值优化方法,如MMFD(修正可行方向法),LSGRG(广义梯度下降法),NLPQL(序列二次规划法)等。
参考资料:Optimization in Practice with MATLAB®: For Engineering Students and Professionals https://b-ok.cc/book/2553839/2b6f32
3. 建立Isight工程
打开Isight2017,在application components里找到abaqus,并将task改为optimization,如下图。
点开abaqus,在input选项卡中选择xxx.cae文件,选择read file,选取需要的优化输入变量。
在output选项卡中选择xxx.odb文件,选择read file,选取需要提取的输出变量。
选择OK,打开optimization,选择优化方法,设置优化参数。右侧是优化方法的描述。
在variable选项卡里设置变量的取值范围。在constraints里设置优化变量的取值范围,在objectives里设置优化方向:mimimize,点击OK退出设置。
点击run开始运算。经过25步迭代后收敛,结果如下图。可以看到,变形量下降了0.038%,体积下降了1.2%
在data analysis等选项卡中有许多对本次优化的数据处理图。如correlation table
4. 全局优化探索
虽然通过上面的步骤达到了一个最优解,但是各参数的变化值不大,可能陷入了局部最优解,这也是基于梯度下降的算法的通病。工程中的优化问题往往比较复杂,其目标函数可能存在多峰性、非线性、非连续、不可微函数;设计变量和约束函数可能是线性、非线性、连续或离散变量集。这些复杂的情况,使得没有任何导数、梯度信息可供利用,传统的数值优化和直接搜索方法无法找到全局优化解。因此,人们开发出全局探索法,为解决这类复杂优化问题提供了新的思路和手段。
Isight中提供了许多全局搜索算法,如MIGA多岛遗传算法,Pointer自动优化专家算法,Evol进化算法,ASA自适应模拟退火算法,PSO粒子群优化法等。它们适应性强,只评价设计点而不计算任何函数的梯度,具有全局性,能求解全局最优解,避免了集中在局部区域的搜索,缺点是计算量比较大。
Mechanical Design Optimization with Abaqus and Isight的更多相关文章
- <2013 12 17> 专业技能
Specialties: • Mechanical design modeling using Pro/ENGINEER and SolidWorks.• Robot control, path pl ...
- Open CASCADE Technology(OCCT)概述
OCCT模块结构图 基础类: Foundation Classes module underlies all other OCCT classes; 模型数据: Modeling Data modul ...
- mit课程ocw-business
https://ocw.mit.edu/courses/find-by-topic/#cat=business Course # Course Title Level 1.011 Project Ev ...
- 斯坦福CS课程列表
http://exploredegrees.stanford.edu/coursedescriptions/cs/ CS 101. Introduction to Computing Principl ...
- CAD简介
Computer-aided design (CAD) is the use of computers (or workstations) to aid in the creation, modifi ...
- 【转】Install MATLAB 2013a on CentOS 6.4 x64 with mode silent
首先要下载安装光盘. Matlab801_MacUnix.iso [root@db-172-16-3-150 mnt]# md5sum /ssd1/Matlab801_MacUnix.iso 0d3 ...
- [zz] MATLAB工具箱介绍
http://blog.sina.com.cn/s/blog_57235cc701012kfb.html Toolbox工具箱 序号 工具箱 备注 数学.统计与优化 1 Symbolic Ma ...
- Frames of Reference参考框架
Frames of Reference参考框架 When describing the position and orientation of something (for example, your ...
- Matlab 工具箱介绍
Toolbox工具箱 序号 工具箱 备注 数学.统计与优化 1 Symbolic Math Toolbox 符号数学工具箱 2 Partial Differential Euqation Toolbo ...
随机推荐
- javascript 使用 setInterval 实现倒计时
javascript 使用 setInterval 实现倒计时 var timer = setInterval(function () { console.log(valid_time); if (v ...
- 基于.NetStandard的简易EventBus实现-基础实现
一.问题背景 最近离职来到了一家新的公司,原先是在乙方工作,这回到了甲方,在这一个月中,发现目前的业务很大一部分是靠轮询实现的,例如:通过轮询判断数据处于B状态了,则轮询到数据后执行某种动作,这个其实 ...
- Django笔记-连载(记录2018-12-16)
1.django从1.9开始ForeignKey中的on_delete参数是必须的. hbook = models.ForeignKey('BookInfo')这句代码就让BookInfo类和Hero ...
- ACL2019: 《GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction》源码解析
论文地址:<GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction> G ...
- GitHub上优秀的开源项目(转载)
转载出处:https://github.com/Trinea/android-open-project 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.A ...
- python线程条件变量Condition(31)
对于线程与线程之间的交互我们在前面的文章已经介绍了 python 互斥锁Lock / python事件Event , 今天继续介绍一种线程交互方式 – 线程条件变量Condition. 一.线程条件变 ...
- Python 中国大学排名定向爬虫
代码来自于中国大学Mooc北京理工大学Pythont教学团队:https://www.icourse163.org/learn/BIT-1001870001#/learn/content?type=d ...
- 在 Kubernetes 集群快速部署 KubeSphere 容器平台
KubeSphere 不仅支持部署在 Linux 之上,还支持在已有 Kubernetes 集群之上部署 KubeSphere,自动纳管 Kubernetes 集群的已有资源与容器. 前提条件 Kub ...
- day20191104笔记
MyBatis笔记: 一.MyBatis半自动ORM映射框架, 将数据库中的数据和程序中的数据进行自动映射的前提条件 1. 数据库中的字段必须和程序中的属性保持一致 2. 程序中属性的数据类型必须是基 ...
- idea 使用下Java JDK安装
下载idea 百度云: 链接:https://pan.baidu.com/s/1pmDTH-W1_BhSYJAlcAvljQ 提取码:sgmk 下载Java1.8(jdk-8u181 ...