| |
机器人结构的优化分析 | |
西安理工大学机械与精密仪器学院 王世军 | |
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版 | |
摘要:机器人结构的有限元优化设计中,需要对设计方案多次修改、计算。除了计算工作以外,结构的修改工作通常是由手工完成,在整个设计工作量中所占比重是比较大的。本文给出一种利用ANSYS软件提供的APDL语言对设计方案进行优化的方法。利用这种方法,结构的修改不再需要人工干预,整个优化过程在使用APDL语言编写的用户优化程序的控制下自动进行,能够有效地提高优化工作的效率和可靠性。
关键词:有限元,结构优化
1. 问题的提出
工业机器人是计算机技术出现后发展起来的一种新型机械结构,工作效率和机动性比传统机械高很多。随之而来的是,机器人的结构设计在减少质量、提高刚度方面比传统机械结构有更高的要求。在设计工作中,结构的最优化显得更为重要。
在结构的优化设计中,有限元法是一个比较有效的方法。通常,建立模型和模型的修改都是手工完成的。对于结构比较复杂或者需要修改的地方很多的情况下,优化的时间比较长。其中计算时间相对较少,建模和结构修改所占比重较大。如何减少建模和结构修改的的时间,是提高结构优化效率的关键。
APDL语言 是ANSYS软件提供给用户的一个依赖于ANSYS程序的交互式软件开发环境。APDL语言具有类似一般计算机语言的常见功能 ,如类似于常数定义、变量定义和赋值的参数定义,分支和循环控制语句,类似于子程序调用的宏调用等功能。除此以外,还包含有比较强的数学运算能力,如算术运算、比较、取整和标准FORTRAN的三角函数、指数函数、双曲函数等。利用APDL语言还可以读取ANSYS程序数据库中的数据进行数学运算,以及建立分析模型,控制ANSYS程序的运行过程等功能。 (图片) (图片) (图片) RESUME,,robbak,db,,0 从备份文件robbak.db中读入原始数据 /PREP7 进入前处理器, 。。。 删除横梁与立柱的联接部分 。。。 将横梁核心元件移动一个初始step 。。。 在几何模型上施加载荷和约束 。。。 网格划分 FINISH 退出前处理器 /SOLU 进入求解器 SOLVE 求解 FINISH 退出求解器 /POST1 进入后处理器 *GET,front,NODE,2013,U,Z 读第一个驱动杆联接处的结点变形至front *GET,back,NODE,1441,U,Z 读第二个驱动杆联接处的结点变形至back lastdif=1 上一次front与back差值的绝对值 flag=-1 优化结果可行性的标记 step=0.05 从初始位置到最优位置的移动量初值 *DO,I,1,10,1 迭代循环开始,循环变量I,取值范围1~10,步长1 dif=abs(front-back) 本次计算结果中front和back的差的绝对值 *IF,dif,LE,1.0E-6,THEN 判断差值dif是否满足要求 flag=1 满足,则标记置1 *EXIT 退出迭代计算 *ELSEIF,dif,GE,lastdif,THEN 判断差值dif是否变大 flag=2 差值变大,标记置2 。。。 对分法修改step 。。。 继续以前一次位置作起点,以修改后的step为当前step,开始新一轮 迭代计算 *ELSE 差值不小于期望值,且逐渐变小,需继续移动上横梁 。。。 从备份文件中读入初始状态数据 。。。 进入前处理器 AGEN, ,P51X, , , ,step, , ,,1 移动上横梁的核心部分,移动量step 。。。 构造横梁和立柱的联接部分 。。。 施加载荷和约束 。。。 网格划分 FINISH 退出前处理器 /SOLU 进入求解器 SOLVE 求解 FINISH 退出求解器 /POST1 退出后处理器 *GET,front,NODE,2013,U,Z 给front赋值 *GET,back,NODE,1441,U,Z 给back赋值 lastdif=dif 更新lastdif *ENDIF if-else 语句的结尾 *ENDDO*DO 循环语句的结尾 上面这个文件比较长,约1000行。主要目的是为了使程序的结构清晰。有很多代码是复用的,如一些建模指令和后处理指令。使用时,可以将这些指令构成相应的宏在主程序中调用,能有效地缩短主程序的长度。此外,文件中多数具体的建模指令是从ANSYS程序的命令记录文件中复制过来的,包含很多在图形界面下才用到的指令。以ANSYS的批处理方式使用时,可以将这些命令删除,也能缩短文件长度。 在上述程序中,模型指定部位的变形是通过结点读取的。在网格剖分中,为了确保剖分成功,并且不产生形状恶劣的单元,不得已使用了三角形网格。优化过程的每一步迭代,模型的立柱和横梁核心联接部分的几何形状都会不同,这会使剖分出来的网格数量有所不同,指定位置处的结点编号就有可能不同。依据结点编号从数据库中读取的数据就有可能不是指定位置的数据。为此,需要首先剖分横梁的核心部分,这样,横梁上的结点编号在每次迭代过程中都是固定的。 迭代的最终结果是否是一个可行的结果,需要通过查看参数flag判定。只有flag=1,计算结果才是可行的,否则表示迭代过程并没有找到最佳位置。横梁的移动量存储在参数step中。如果计算结果是可行的,step的值就是横梁从原始设计位置到最优位置的移动量。总的迭代次数存放在参数I中,通过I的最终值,可以估计分析结果的可行性和初始条件是否合适。 4. 分析结果 优化过程总共进行了7次迭代,耗费机时约2小时37分钟,找到了最优位置。由于机器读入指令的过程比人工修改模型的速度快得多,修改模型的时间基本可以忽略。优化过程所需时间取决于求解时间。与人工完成的优化过程相比,效率有了较大提高,而且避免了复杂模型在建模过程中容易出现的人为失误导致后续迭代计算出错或偏离优化目标等问题。 5. 结论 分析结果表明,本文给出的优化方法是有效的,达到了预期的优化目的。该方法的优点是可靠性高,优化过程不易出错。其次是通用性比较好,在类似的结构优化设计中,文中给出的控制代码无需作大的改动即可移植使用。缺点是在优化过程中不能改变优化对象的拓扑结构。在不改变拓扑结构的条件下,修改模型的工作量越大,越能体现出该方法的优越性。另外,对于需要改变拓扑结构的优化问题,可以使用ANSYS程序提供的拓扑优化功能。如果将本文的方法与之结合,可以取得更好的优化效果。 参考文献 [1] ANSYS Advanced Analysis Techniques, 3 rd Edition, SAS, IP, Inc.@ [2] ANSYS Commands Reference, Tenth Edition, SAS, IP, Inc.@ [3] APDL Programmer's Guide, Third Edition, SAS, IP, Inc.@ 1/22/2005 | |
电脑版 | 客户端 | 关于我们 |
佳工机电网 - 机电行业首选网站 |