【原创】将时间历程结果保存到指定数据文件中---移动荷载作用下桥梁动态响应实例
应天大师弟问题,特发《将时间历程结果保存到指定数据文件中---移动荷载作用下桥梁动态响应实例详析》一帖,希望对大家都有所帮助!问题提出:在做瞬态分析的时候,往往我们都希望将时间历程后处理结果按照指定的格式输出到指定的结果数据文件中,以做其他更进一步的分析(尤其是某些数据处理功能在ANSYS无法实现的情况下)。
解决办法:有两种解决办法。
一是基于GUI的,在变量浏览工具条中,List变量,然后将List的数据结果Copy到指定的数据结果文件中。优点在于,快捷方便。致命的缺点是,结果数据的格式不能更改,而且一定的数据结果之间会掺杂一些没用的说明文件,还得再次处理。
二是居于命令流,将变量保存成数组矩阵,然后将数组矩阵按指定格式输出到指定结果文件中。优点:能够符合用户的意愿,操作方便。缺点:对于不熟悉的用户,具有一定的难度。
Re:【原创】将时间历程结果保存到指定数据文件中
FINISH/CLEAR,NOSTART
/PREP7 !建模
ET,1,BEAM3 ! 梁单元
MP,EX,1,207E9 ! 弹性模量
MP,DENS,1,2600 ! 密度
MP,NUXY,1,0.3 ! 泊松比
R,1,0.1,0.0001/12,0.1 ! 横截面积、惯性距、截面高
NELEM=100 ! 划分单元数
LBEAM=16 ! 梁长度
deltL=LBEAM/NELEM ! 单元长度
V=120 ! 移动荷载速度
deltT=deltL/V*3.6 ! 单元时间
NNODE=NELEM+1 ! 节点数
fpw=40 ! 移动简谐力频率
fpc=100 ! 移动简谐力振幅
*DO,i,0,NNODE,1 ! 定义节点
N,i,i*0.16,0 ! 节点间的间距为0.3
*ENDDO
*DO,i,1,NELEM ! 定义单元
E,i,i+1
* ENDDO
D,1,ALL ! 定义约束
D,NNODE,ALL
FINISH
/SOLU
ANTYPE,0
PSTRES,1
ACEL,0,9.81,0
SOLVE
FINISH
/SOLU
ANTYPE,trans ! 分析类型
PSTRES,1
OUTREA,all,all ! 输出控制
*DO,ii,1,NNODE,1
time,ii*deltT ! 每个荷载步的最终时间为xtim
KBC,1 ! 加载方式
NSUBST,5 ! 每个荷载步包含五个荷载子步
FDELE,all,all ! 删除所有的集中力荷载
NSEL,s,loc,x,ii*deltL ! 选择集中力作用节点
F,ALL,FY,-fpc*cos(fpw*ii*deltT) ! 施加集中荷载
ALLS ! 选择所有
SOLVE ! 求解
*ENDDO
FINISH
/POST26
NSOL,2,50,U,Y,UY_2 ! 定义第二个变量为UY_2,值为50号节点Y方向的位移
XVAR,1 ! 定义时间变量为坐标横轴
PLVAR,2 ! 输出位移图
DERIV,3,2,1,,,,,1 ! 将位移对时间求导,得到速度,存为变量3
DERIV,4,3,1,,,,,1 ! 将速度对时间求导,得到加速度,存为变量4
PLVAR,4 ! 输出加速度图
*GET,num_var,VARI,0, NSETS ! 将变量长度值赋给变量num_var
*DIM,T_U,ARRAY,num_var,4 ! 定义保存时间历程结果的矩阵T_U,有num_var行,4列
VGET,T_U(1,1,1),1 ! 矩阵的第一列保存第一个时间历程变量(默认为TIME)
VGET,T_U(1,2,1),2 ! 矩阵的第二列保存第二个时间历程变量,50号节点Y方向的位移时间历程结果
VGET,T_U(1,3,1),3 ! 矩阵的第三列保存第三个时间历程变量,50号节点Y方向的速度时间历程结果
VGET,T_U(1,4,1),4 ! 矩阵的第四列保存第四个时间历程变量,50号节点Y方向的加速度时间历程结果
*CFOPEN,T_U,txt ! 定义数据结果文件,T_U.txt
*VWRITE,T_U(1,1,1),T_U(1,2,1),T_U(1,3,1),T_U(1,4,1) ! 将时间历程结果数据写到数据结果文件中
(31F16.9) ! 数据的输出格式
FINISH
Re:【原创】将时间历程结果保存到指定数据文件中
实现如题功能的命令流是:*GET,num_var,VARI,0, NSETS ! 将变量长度值赋给变量num_var
*DIM,T_U,ARRAY,num_var,4 ! 定义保存时间历程结果的矩阵T_U,有num_var行,4列
VGET,T_U(1,1,1),1 ! 矩阵的第一列保存第一个时间历程变量(默认为TIME)
VGET,T_U(1,2,1),2 ! 矩阵的第二列保存第二个时间历程变量,50号节点Y方向的位移时间历程结果
VGET,T_U(1,3,1),3 ! 矩阵的第三列保存第三个时间历程变量,50号节点Y方向的速度时间历程结果
VGET,T_U(1,4,1),4 ! 矩阵的第四列保存第四个时间历程变量,50号节点Y方向的加速度时间历程结果
*CFOPEN,T_U,txt ! 定义数据结果文件,T_U.txt
*VWRITE,T_U(1,1,1),T_U(1,2,1),T_U(1,3,1),T_U(1,4,1) ! 将时间历程结果数据写到数据结果文件中
(31F16.9) ! 数据的输出格式
前面的哪些在本人之前的相关帖子中都有描述,包括“问题描述”,“建模思路”。有需要了解的朋友可以搜索旧帖!若有其他问题,欢迎跟帖交流!
Re:【原创】将时间历程结果保存到指定数据文件中
另外,前段时间本人发帖说所写的书上市了《ANSYS7.0实例分析与应用》,个别朋友对此反映比较强烈(呵呵,都是批评多于鼓励)。我曾说过有时间会陆续将书中的例子拿到这里和大家分享。这里贴出的就是书中的一例,当然,书中有更详细的注解!非常感谢 foransys 版主对兄弟一贯的支持与鼓励!!!
Re:【原创】将时间历程结果保存到指定数据文件中
大家有点反映也是正常的,毕竟大家已经被书给害苦了,很多书都是东抄西抄的,能把自己的实际经验费心血地写出来的书已经很少了。烂书多,是存粹为了挣钱的抄袭;好书也有,是为了和大家分享自己的心得。yiby在论坛发了很多很好的帖子,针对实际的问题做了很多有益的工作,支持是应该的。
Re:【原创】将时间历程结果保存到指定数据文件中
呵呵,谢谢师兄阿。问题已经解决了,不过还可以提供另一种方法,就是在post1中提取出各个计算子步下的计算结果,当然首先要设定output全部输出,然后用两个循环就可以取出针对载荷步的计算结果,和post26中结果差不多,不过有时候更详细点:)
将时间历程结果保存到指定数据文件中
太好了!!!!!!!Re:【原创】将时间历程结果保存到指定数据文件中
上例在瞬态分析中未删掉重力荷载,时程结果应包括重力引起的位移值,若删除重力荷载,则结果就不包括重力效应,对吗?请指教。 为什么我的总是说输出格式不对啊(31F16.9) ! 数据的输出格式
这句命令是不是有点问题呢? 顶一下,新手上路 谢谢楼主,支持~
页:
[1]
