马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 wdhd 于 2016-5-10 09:18 编辑
/POST26
NSOL,2,81984,U,Y,UY_2 ! 定义第二个变量为UY_2,值为10号节点Y方向的位移,节点可任选,但要保证其值非0
XVAR,1 ! 定义时间变量为坐标横轴
PLVAR,2
*GET,num_var,VARI,0, NSETS ! 将变量长度值赋给变量num_var
*DIM,SYSNOISE_TITLE,CHAR,5,4
SYSNOISE_TITLE(1,1)='SYSNOISE '
SYSNOISE_TITLE(1,2)=' DISPLAC '
SYSNOISE_TITLE(1,3)='EMENTS '
SYSNOISE_TITLE(1,4)=' FILE'
SYSNOISE_TITLE(2,1)='Rev 5.5 '
SYSNOISE_TITLE(2,2)=' IBM P2E '
SYSNOISE_TITLE(2,3)='SSL 11'
SYSNOISE_TITLE(2,4)='-AUG-02 '
SYSNOISE_TITLE(3,1)='DISPLACE'
SYSNOISE_TITLE(3,2)='MENT_St'
SYSNOISE_TITLE(3,3)='ructure '
SYSNOISE_TITLE(4,1)='11-AUG-2002 '
SYSNOISE_TITLE(4,2)=' 10:07 '
SYSNOISE_TITLE(4,3)=':13 '
SYSNOISE_TITLE(5,1)='FREQUEN'
SYSNOISE_TITLE(5,2)='CY'
*CFOPEN,DISP,fre ! 定义数据结果文件,DISP.fre
*VWRITE,SYSNOISE_TITLE(1,1) ,SYSNOISE_TITLE(1,2) ,SYSNOISE_TITLE(1,3) ,SYSNOISE_TITLE(1,4)
%C%C%C%C
*get,nmax,node,,num,max, !得到节点编号的最大数
FM=30 !频率个数
FILLDATA,10,1,FM,1,50,50, !定义变量10为频率值,起始为50,增量50,共FM个
k=3e-5 !瞬态计算时间步长
*DIM,T_U,ARRAY,FM,4! 定义保存时间历程结果的矩阵T_U,有FM行,4列
VGET,T_U(1,1,1),10 ! 矩阵的第一列保存频率变量
*dim,num_t,,1,5 !定义一个数组
*DIM,SYSNOISE_SUBT1,CHAR,1,4
SYSNOISE_SUBT1(1,1)='NODAL DI'
SYSNOISE_SUBT1(1,2)='SPLACEME '
SYSNOISE_SUBT1(1,3)='NT VALU'
SYSNOISE_SUBT1(1,4)='ES'
*do,i,1,FM,1
num_t(1,1)=T_U(i,1,1) !按次序取频率值
*VWRITE,num_t(1,1)
%20.8E
*VWRITE,SYSNOISE_SUBT1(1,1) ,SYSNOISE_SUBT1(1,2) ,SYSNOISE_SUBT1(1,3) ,SYSNOISE_SUBT1(1,4)
%C%C%C%C
*do,j,1,nmax,1
NSOL,3,j,U,X,UX ! 定义第3个变量为UX,值为j号节点X方向的位移
RESP,4,10,3,1,0.02,k,,, !将时间_位移数值转化为频率_位移数据
VGET,T_U(1,2,1),4 ! 矩阵的第2列保存第4个时间历程变量
num_t(1,2)=T_U(i,2,1) !将与i对应的j节点的X值赋给num_t的第2列
NSOL,5,j,U,Y,UY ! 定义第5个变量为UY,值为j号节点Y方向的位移
RESP,6,10,5,1,0.02,k,,, !将时间_位移数值转化为频率_位移数据,0.02为阻尼比,最后为计算步长
VGET,T_U(1,3,1),6 ! 矩阵的第3列保存第6个时间历程变量
num_t(1,3)=T_U(i,3,1) !将与i对应的j节点的Y值赋给num_t的第3列
NSOL,8,j,U,Z,UZ ! 定义第8个变量为UZ,值为j号节点Z方向的位移
RESP,9,10,8,1,0.02,k,,, !将时间_位移数值转化为频率_位移数据
VGET,T_U(1,4,1),9 ! 矩阵的第4列保存第9个时间历程变量
num_t(1,4)=T_U(i,4,1) !将与i对应的j节点的Z值赋给num_t的第4列
num_t(1,5)=j
*VWRITE,num_t(1,5),num_t(1,5),num_t(1,2),0,num_t(1,3) ! 将频率_位移结果数据写到数据结果文件中,0为虚部及旋转自由度值
%10I%10I%20.8E%20.8E%20.8E
*VWRITE,0,num_t(1,4),0
(20X,E20.8,E20.8,E20.8)
*VWRITE,0,0,0
(20X,E20.8,E20.8,E20.8)
*VWRITE,0,0,0
(20X,E20.8,E20.8,E20.8)
*enddo
*IF,i,EQ,FM,THEN
*EXIT
*ENDIF
*VWRITE,SYSNOISE_TITLE(1,1) ,SYSNOISE_TITLE(1,2) ,SYSNOISE_TITLE(1,3) ,SYSNOISE_TITLE(1,4)
%C%C%C%C
*enddo
*CFCLOS
FINISH
yiby兄:
请问可以只将Ansys实体网格的表面节点位移值写为fre文件。然后在Sysnoise中由FEA输入进行插值计算吗?这样数据量就大大减少了!
只是不知道Ansys实体的内部节点是否参加Sysnoise中的插值计算?
另外能否把您扩展的Sysnoise 5.6 接口发给我?谢谢!!!
dzy666666@sina.com
|