引言
前文我们主要讨论了ANSYS中重启动分析的基本概念,本文主要讨论如何在ANSYS中实现具体的重启动分析。
基于ANSYS的重启动分析(1) —— 基本概念
重启动分析过程
单点重启动:
设置工作名(/filename命令)
进入求解环境(/solu),恢复数据文件(resume命令)
用antype,,rest命令指定接下来的分析是重启动分析
修改或者追加载荷。从当前值修改斜坡载荷,新加入的斜坡载荷是从零值开始的,体积载荷从初始值开始。在静力和完全瞬态分析中,面载荷和体载荷的删除被认为是斜坡方式加载到零,和数据库保持一致
用稀疏矩阵求解自动时间步长关闭的线性静力分析和线性完全瞬态分析时,可以用EQSLV命令 保存更多的结果
需要用SOLVE命令初始化求解一次
多点重启动:
设置工作名(/filename命令);
进入求解环境(/solu);
用 RESCONTROL命令指定重启动的载荷步和子步位置,然后开始初始求解;
用antype,,rest,LDSTEP,SUBSTEP,Action命令指定接下来的分析是重启动分析;
修改或者增加载荷以及修改非线性分析的求解参数
重启动求解
重新建立边界条件的重启动分析:
前面已经指出,在初始求解(SOLVE)之后,就应该保存(SAVE)文件,以便于后续的重启动分析。但是在有些非线性分析中,我们需要进入后处理(/POST1或/POST26)提取和保存一些数据(SET或SAVE),导致数据空间的边界改变,进而无法进行重启动分析,因为SET命令会读入新的边界条件数据,而覆盖数据空间中的边界条件数据。解决这个问题需要按一下步骤:
修改Jobname.OSAV文件的文件名为Jobname.ESAV
重新进入ANSYS指定工作名
进入求解环境并恢复数据文件
用antype,,rest命令指定接下来的分析是重启动分析
从最后一个求解成功的子步处显示指定边界条件
执行SOLVE命令求解,恢复此步的边界条件结果,便于后续重启动分析,如果是时域分析,则应该指定一个很小的时间增量
指定新载荷、新的载荷步设置,调整初始求解中的最后一个载荷步后的下一个载荷步(即当前载荷步)的子步数或时间步长
执行SOLVE命令求解
典型命令
ANTYPE, Antype, Status, LDSTEP, SUBSTEP, Action——分析类型设置
RESCONTROL, Action, Ldstep, Frequency, MAXFILES——分析控制设置
算例
一个分析工作完成后,需要在此基础之上继续增加载荷分析。此种情况对应工程实际问题中,载荷并不能一次性完全确定的情况。
考虑一个悬臂梁,长度为2m,横截面尺寸为0.01m*0.01m,弹性模量为200Gpa,自由端开始受到50N,然后进入后处理查看结果,分析完成后在此基础上继续加载到100N。
命令流如下:
注意:
考虑到第一次求解后,进入/post1后处理处理了数据,因此需要在重启动以后进行初始状态的求解,以恢复重启动的状态,即命令流中的“第二次求解(初始状态)”。在初始状态的求解中,因为边界载荷并未发生变化,因此只需要一个载荷步一个子步即可收敛,时间可设置一个很小的时间(1.0E-6)以近似为重启动的起点。
已知结构响应,求结构载荷(非线性问题)
现在我们设计一个有意思的分析(不一定有直接的工程意义),通常来说我们都是知道模型和载荷以及边界条件分析结构的位移等响应;现在我们假设知道了结构的最终响应,反过来分析结构的载荷大小,如何用重启动实现此功能呢?现在假设我们设定悬臂梁端部受力点的位移为0.642m,如何通过重启动分析求外载荷F的大小。
对于这个问题,我们可以做如下考虑:外力逐渐增加,逐次计算,每次校核结构位移是否等于我们设定的目标,如果等于则此时的载荷就是目标载荷;如果不等于则需要调整外力的大小,再次循环计算,直到满足条件为止,命令流如下:
注意:
在ansys中,solve命令后一直到下一次通过antype命令指定重启动分析类型的中间过程中,定义的一切变量(含数组)数据都不会被保存,当然也包括后处理过程中得到的数据。如上述命令流中在“第一次后处理”中定义的Dispy21、Error、IterNum、Times0、Times1等变量,在“第二次求解(初始状态)”中的antype命令执行后即被删除掉。解决这个问题的办法就是parsav和parres命令,即在antype命令之前用parsav保存定义的参数,然后再用parres恢复参数即可。
最后
此例不一定有具体的工程意义,但我们可以通过这个例子的实现过程,学习重启动分析的用法以及用APDL实现非线性问题的迭代过程以及收敛准则判断等技术细节,这种思想在结构找形分析中也可以使用。