找回密码
 注册
Simdroid-非首页
查看: 1944|回复: 17

[疲劳分析] [疲劳分析]example of Tee fatigue analysis

[复制链接]
发表于 2006-1-21 08:37:47 | 显示全部楼层 |阅读模式 来自 加拿大
!6. APPENDIX—APDL files
!6.1. APDL for Fatigue analysis
!! setting the background of the window
WPSTYLE,,,,,,,,0
/RGB,INDEX,100,100,100, 0   
/RGB,INDEX, 80, 80, 80,13   
/RGB,INDEX, 60, 60, 60,14   
/RGB,INDEX, 0, 0, 0,15  
!recovery the original background color
! /RGB,INDEX, 0, 0, 0, 0  
! /RGB,INDEX, 60, 60, 60,13   
! /RGB,INDEX, 80, 80, 80,14   
! /RGB,INDEX,100,100,100,15   
/PMETH,OFF,0
KEYW,PR_SET,1   
KEYW,PR_STRUC,1
/prep7
!/pmacro
!!!/title,N5 NOZZLE FATIGUE analysis
/units, si
*afun,deg
BTOL,1E-5
diff=0.01
/UNITS,SI
/PREP7  
ssmt=117
ssm=118  
multipro,'start',2
*cset,1,3,cnd,'1=max,0=min,2=dsn,3=tst,4=fatg',4
*cset,4,6,meshcontrolsize,'i=smart grade i',5
  *cset,61,62, 'choose the load case'
  *cset,63,64,'########'
multipro,'end'
maxpres=3.7  !!! MPa
minpres=-0.1
dsnpres=5.8
tstpres=1.25*dsnpres*ssm/ssmt
CORR=0      
NZC=0      
M_INNRAD=48.6+NZC      !!!I.D.=97.18mm
M_THK=8.55-NZC   
!!!M_NECK=5-NZC      
M_OUTRAC=45
M_INNRAC=53.6 !!!m_thk+m_outrac
SHELL_INNRAD=48.6+CORR  
SHELL_THK=8.55  
!SHELL_H=105+7*sqrt(shell_innrad*shell_thk)
SHELL_H=200

NOZ_POS_H=0
!!! M_LENGTH=2.5*SQRT(M_INNRAD*M_THK)
!M_HEIGHT=105+2.5*sqrt(m_innrad*m_thk)
M_HEIGHT=200
ET,1,SOLID95
ex_ss_20=1.95E5  !!! for stainless steel material
ex_ss_40=1.94e5
ex_ss_90=1.905e5
ex_ss_150=1.84e5
prxy_ratio=0.3

mp,nuxy,1,prxy_ratio
*if,cnd,eq,1,then
  CNDPRES=MAXPRES     !!!MPa  
MP,EX,1,EX_ss_90
*ELSEIF,CND,EQ,2,THEN
  CNDPRES=DSNPRES
MP,EX,1,EX_ss_150
*elseIF,CND,EQ,0,THEN
  CNDPRES=MINPRES
MP,EX,1,EX_ss_40
*ELSEIF,CND,EQ,3,THEN
  CNDPRES=TSTPRES
MP,EX,1,EX_ss_20
*ELSEIF,CND,EQ,4,THEN
  CNDPRES=MINPRES
MP,EX,1,EX_ss_90
*ELSE
/EOF
*ENDIF
!!! %%% establishing the module %%%%%%
CYLIND,SHELL_INNRAD+SHELL_THK,SHELL_INNRAD,0,SHELL_H,-90,90,
vdele,1,,,0
csys,0
asel,s,loc,z,-diff,diff
asel,a,loc,z,shell_h-diff,shell_h+diff
asel,a,loc,x,-diff,diff
adele,all,,,0
wpoff,0,0,NOZ_POS_H   
WPROT,-90,90,90
CSWPLA,11,1,1,1,
CSYS,11
K,100,M_INNRAD,0,
K,101,M_INNRAD+M_THK,0
K,102,M_INNRAD+M_THK,0,M_HEIGHT,
K,103,M_INNRAD,0,M_HEIGHT
K,200,0,0,0
K,201,0,0,100
LSTR,101,102
Lstr,102,103
LSTR,103,100
Lstr,101,100
AROTAT,13,14,15,16,,,200,201,90,1
ALLSEL,ALL

csys,11
asel,s,loc,z,-diff,diff
csys,1
asel,r,loc,x,0,shell_innrad-diff
adele,all,,,0
asel,s,loc,z,m_height-diff,m_height+diff
adele,all,,,0
csys,1
asel,s,loc,x,shell_innrad+shell_thk-diff,shell_h-diff
csys,11
asel,r,loc,x,m_innrad+m_thk-diff,m_height-diff
aptn,all
csys,1
asel,s,loc,x,shell_innrad-diff,shell_innrad+diff
csys,11
asel,a,loc,x,m_innrad-diff,m_innrad+diff
aptn,all
allsel,all
csys,1
asel,s,loc,x,0,shell_innrad-diff
adele,all
csys,11
asel,s,loc,x,0,m_innrad-diff
adele,all
numcmp,all
nummrg,all
asel,all
afillt,1,2,m_outrac
afillt,3,4,m_innrac
numcmp,all
nummrg,all
asel,all
al,15,32,28,34,7,36,22,30
al,11,12,27,2,25,10
al,2,5,8,9
csys,1
lsel,s,loc,z,shell_h-diff,shell_h+diff
al,all
csys,11
lsel,s,loc,z,m_height-diff,m_height+diff
al,all
numcmp,all
nummrg,all
asel,all
va,all
allsel,all
lsla,u
ldele,all,,,0
/VIEW,1,-1  
/ANG,1  
/REP,FAST
allsel,all
erase
/title, E563 Fatigue analysis Project--sketch in line
lplot
/image,save,module_line,png,
erase
/title, E563 Fatigue analysis Project--sketch in volume
vplot
/image,save,module_volu,png,
mshape,1,3D
mshkey,0
SMRT,meshcontrolsize
lsel,all
ssln,,15
lesize,all,,,10,1,,,,1
!!!LESIZE, NL1, SIZE, ANGSIZ, NDIV, SPACE, KFORC, LAYER1, LAYER2, KYNDIV  
lsel,inve
lesize,all,,,20,1,,,,1
MAT,1
vsel,all
vmesh,all
allsel,all
erase
/title, E563 Fatigue analysis Project--mesh
eplot
/image,save,module_mesh,png,
/solu
antype,static
allsel,all
csys,0 asel,s,loc,x,-diff,diff
da,all,symm
allsel,all
csys,0
asel,s,loc,z,-diff,diff
da,all,symm
csys,0
allsel,all
nsel,s,loc,z,shell_h-diff,shell_h+diff
D,all,all,0
allsel,all
asel,s,area,,1,2,1
ASEL,A,AREA,,6
sfa,all,1,pres,cndpres
allsel,all
CSYS,1
asel,s,loc,z,shell_h-diff,shell_h+diff
CNDPRES*SHELL_INNRAD**2/((SHELL_THK+SHELL_INNRAD)**2-SHELL_INNRAD**2)  
  !!! SURFACE LOADS ON THE END SECTION OF THE main shell COURSE

allsel,all
CSYS,11
asel,s,loc,z,M_HEIGHT-diff,M_HEIGHT+diff
SFA,all,1,PRES,-CNDPRES*M_INNRAD**2/((M_INNRAD+M_thk)**2-M_INNRAD**2)  
!!! SURFACE LOADS ON THE END SECTION OF NOZZLE branch nozzle
allsel,all
LSWRITE,1
!!! ###########  LOADING 2 #########
!/LOAD INNER PRESSURE ON THE INSIDE AREAS
ALLSEL,ALL
SFADELE,ALL,,ALL
allsel,all
asel,s,area,,1,2,1
ASEL,A,AREA,,6
sfa,all,1,pres,maxpres
  !!! inner PRESSURE loads on the inner surface
allsel,all
CSYS,1
asel,s,loc,z,shell_h-diff,shell_h+diff
!SFA,all,1,PRES,-maxPRES*SHELL_INNRAD**2/((SHELL_THK+SHELL_INNRAD)**2-SHELL_INNRAD**2)  
  !!! SURFACE LOADS ON THE END SECTION OF THE main shell COURSE
allsel,all
CSYS,11
asel,s,loc,z,M_HEIGHT-diff,M_HEIGHT+diff
SFA,all,1,PRES,-maxPRES*M_INNRAD**2/((M_INNRAD+M_thk)**2-M_INNRAD**2)  
!!! SURFACE LOADS ON THE END SECTION OF NOZZLE branch nozzle
allsel,all
   LSWRITE,2
allsel,all  
!!! #### setting up the symbol ###
/PSF,PRES,NORM,2,0,1
/PBF,DEFA, ,1   
/PIC,DEFA, ,1   
/PSYMB,CS,0
/PSYMB,NDIR,0   
/PSYMB,ESYS,0   
/PSYMB,LDIV,0   
/PSYMB,LDIR,0   
/PSYMB,ADIR,0   
/PSYMB,ECON,0   
/PSYMB,XNODE,0  
/PSYMB,DOT,1
/PSYMB,PCONV,   
/PSYMB,LAYR,0   
/PSYMB,FBCS,0   
/PBC,ALL, ,1
/REP
erase  
/title, E563 Fatigue analysis Project--Loads and constraints
ePLOT
/image,save,loadconst,png,
ALLSEL,ALL
/SOLU
!ANTYPE,STATIC
*IF,CND,EQ,4,THEN
   allsel,all
   LSSOLVE,1,2,1
  /POST1
   *IF,CND,EQ,4,THEN
      LCDEF,ERASE
      LCDEF,1,1,,,
      LCDEF,2,2,,,
      LCASE,2
      LCOPER,SUB,1
      PLNSOL,S,INT,0,1
   *ENDIF
  plnsol,s,int,0,1
  SAVE
*ELSE
   allsel,all
   LSSOLVE,1,1,1 *ENDIF
FINISH
*create, find_pmax !!!
*GET,total_Node_number,NODE,,NUM,MAX ! CURRENT MAXIMUM NODE NUMBER
*get,total_element_number,elem,,num,max !! CURRENT MAXIMUM elem NUMBER
!#### starting the process of postprocess  ####
allsel,all
/post1
/DSCALE,1,100
pldisp,1
/image,save,deflection_contour,png,
/DSCALE,1,1
PLNSOL, U,SUM, 0,1
/title, E563 Fatigue analysis Project--maximum displacement
/image,save,maxdisp,png, !!! displacement vector sum
erase
/post1
/title, E563 Fatigue analysis Project--maximum stresss intensity
plnsol,s,int,
/image,save,maxsint,png,
erase
/post1
/title, E563 Fatigue analysis Project--maximum Von mises stress
plnsol,s,eqv,
/image,save,maxseqv,png,
nsort,s,eqv
*get,Max_SEQV_value,sort,,max
*get,node_number_max_Seqv,sort,0,imax  !!! the node number of  max. Von Mises stress
nsort,s,int
*get,max_Sint_value,sort,,max
*get,node_number_max_Sint,sort,0,imax !!! the node number of max. stress intensity
nsort,u,sum
*get,max_Disp_value,sort,,max
*get,node_number_max_Disp,sort,0,imax !!! the node number of max. Displacement
*get, maxdisp_x,node,node_number_max_disp,loc,x
*get, maxdisp_y,node,node_number_max_disp,loc,y
*get, maxdisp_z,node,node_number_max_disp,loc,z
*get, maxseqv_x,node,node_number_max_seqv,loc,x
*get, maxseqv_y,node,node_number_max_seqv,loc,y
*get, maxseqv_z,node,node_number_max_seqv,loc,z
*get, maxsint_x,node,node_number_max_sint,loc,x
*get, maxsint_y,node,node_number_max_sint,loc,y
*get, maxsint_z,node,node_number_max_sint,loc,z
allsel,all
/POST1  
CSYS,0
*CFOPEN,reports,txt,,append
  *vwrite, meshcontrolsize
  ('Mesh control:', F9.0,TL1, ' ')
  *VWRITE, TOTAL_ELEMENT_NUMBER
  ('THE TOTAL NUMBER OF ELEMENTS:', F9.0,TL1, ' ')
  *VWRITE, TOTAL_NODE_NUMBER
  ('THE TOTAL NUMBER OF NODES:', F9.0,TL1, ' ')
*VWRITE, MAX_DISP_VALUE, NODE_NUMBER_MAX_DISP
('THE VALUE OF MAXIMUM DISPLACEMENT:', E15.6, '   AT THE NODE:', F9.0,TL1,'  ')
   *vwrite, maxdisp_x,maxdisp_y,maxdisp_z
   ('THE LOCATION OF MAXIMUM DISPLACEMENT (X=', F7.1, ' , Y=', F7.1,' , z=', F7.1, ')')
*VWRITE, MAX_SEQV_VALUE, NODE_NUMBER_MAX_SEQV  
('THE VALUE OF MAXIMUM VON MISES STRESS:', F7.1, '       AT THE NODE:', F9.0,TL1,'  ')
  *vwrite, maxSEQV_x,maxSEQV_y,maxseqv_z
   ('THE LOCATION OF MAXIMUM VON MISES STRESS (X=', F7.1, ' , Y=', F7.1,' , z=', F7.1, ')')
*VWRITE, MAX_SINT_VALUE, NODE_NUMBER_MAX_SINT
('THE VALUE OF MAXIMUM STRESS INTENSITY:', F7.1, '       AT THE NODE:', F9.0,TL1,'  ')
  *vwrite, maxSINT_x,maxSINT_y,max_sint_z
   ('THE LOCATION OF MAXIMUM STRESS INTENSITY (X=', F7.1, ' , Y=', F7.1,' , z=', F7.1, ')')
*CFCLOS
*end  !!! ============== must match "*creat" report
results, txt
*use,find_pmax
*use,report
*create, fatigue_mac  /post1
!PRSECT, ,0
FTSIZE,5,2,4,
WPSTYLE,,,,,,,,0
*DIM,fpx,ARRAY,16,1,  
*SET,FPX(1,1,1) , log10(10)
*SET,FPX(2,1,1) , log10(20)
*SET,FPX(3,1,1) , log10(50)
*SET,FPX(4,1,1) , log10(100)   
*SET,FPX(5,1,1) , log10(200)   *SET,FPX(6,1,1) , log10(500)   
*SET,FPX(7,1,1) , log10(1000)  
*SET,FPX(8,1,1) , log10(2000)  
*SET,FPX(9,1,1) , log10(5000)
*SET,FPX(10,1,1) ,log10(10000)
*SET,FPX(11,1,1) ,log10(20000)
*SET,FPX(12,1,1) , log10(50000)
*SET,FPX(13,1,1) , log10(100000)   
*SET,FPX(14,1,1) , log10(200000)   
*SET,FPX(15,1,1) , log10(500000)
*set,fpx(16,1,1),log10(1e6)
*DIM,fpy,ARRAY,16,1,   
*SET,FPY(1,1,1) , 4000  
*SET,FPY(2,1,1) , 2828  
*SET,FPY(3,1,1) , 1897  
*SET,FPY(4,1,1) , 1414  
*SET,FPY(5,1,1) , 1069  
*SET,FPY(6,1,1) , 724   
*SET,FPY(7,1,1) , 572   
*SET,FPY(8,1,1) , 441   
*SET,FPY(9,1,1) , 331   
*SET,FPY(10,1,1) , 262  
*SET,FPY(11,1,1) , 214  
*SET,FPY(12,1,1) , 159  
*SET,FPY(13,1,1) , 138  
*SET,FPY(14,1,1) , 114  
*SET,FPY(15,1,1) , 93.1
*SET,FPY(16,1,1) , 86.2
*VPLOT,fpx,fpy, , , , , , , ,  
/GTHK,CURVE,1   
/GROPT,FILL,on
/GROPT,CURL,1   
/GMARKER,1,0,1,
/title, E563 Fatigue analysis Project--S-N curve
/axlab,x,cycle number(common log)
/axlab,y,stress value (MPa)
/replot
/image,save,S_N,png,
*DIM,fptx,table,11,1,  
*SET,FPtX(1,1,1) , 0
*SET,FPtX(2,1,1) , 65
*SET,FPtX(3,1,1) , 100
*SET,FPtX(4,1,1) , 125   
*SET,FPtX(5,1,1) , 150  
*SET,FPtX(6,1,1) , 200  
*SET,FPtX(7,1,1) , 250  
*SET,FPtX(8,1,1) , 300  
*SET,FPtX(9,1,1) , 325
*SET,FPtX(10,1,1) ,350
*SET,FPtX(11,1,1) ,375
*DIM,fpty,table,11,1,  
*SET,FPtY(1,1,1) , 161
*SET,FPtY(2,1,1) , 161
*SET,FPtY(3,1,1) , 160  
*SET,FPtY(4,1,1) , 159  
*SET,FPtY(5,1,1) , 157
*SET,FPtY(6,1,1) , 157   
*SET,FPtY(7,1,1) , 156   
*SET,FPtY(8,1,1) , 156   
*SET,FPtY(9,1,1) , 153   
*SET,FPtY(10,1,1) , 150  
*SET,FPtY(11,1,1) , 147  
  *VPLOT,fptx,fpty, , , , , , , ,   
/GROPT,FILL,off
/title, E563 Fatigue analysis Project--Sm-temperature curve
/axlab,x,Temperature(0C)
/axlab,y,Maximum allowable stress (MPa)
/replot
/image,save,Sm_temp,png,
FP,1,1E1,2E1,5E1,1E2,2E2,5E2
FP,7,1E3,2E3,5E3,1E4,2E4,5E4
FP,13,1E5,2E5,5E5,1E6, ,
FP,19, ,
FP,21,4000,2828,1897,1414,1069,724  
FP,27,572,441,331,262,214,159   
FP,33,138,114,93.1,86.2, ,  
FP,39, ,
FP,41,0  ,65, 100,125,150,200
FP,47,250,300,325,350,375   
FP,51,161,161,160,159,157,157
FP,57,156,156,153,150,147  
FP,61,1.7,0.3
fplist
pmax=NODE_NUMBER_MAX_SEQV  
multipro,'start',1  !!! 3
  *cset,61,62,'*** Fatigue analysis *** '
  *cset,1,3,nf,'(cylic events)',1
  !*cset,4,6,pmax,'(node number of interesting point)',1
  !*cset,7,9,HELLO,'(be careful to input the values)',1
  *cset,63,64,'(pay much more attention!)'
multipro,'end'
nf=1
multipro,'start',3
  *cset,61,62,'**STRESS CONCENTRATION FACTORS FOR FX, FY,FZ** '
  *cset,1,3,SC_FX,'SCFX',1
  *cset,4,6,SC_FY,'SCFY',1
  *cset,7,9,SC_FZ,'SCFZ',1
  *cset,63,64,'(pay much more attention!)'
multipro,'end'                                                      
ii=1
*if,ii,gt,nf,:eenndd                                                                              
multipro,'start',4
  *cset,1,3,I,'(min. load case of this fatigue event)',1
  *cset,4,6,J,'(max. load case of this fatigue event)',2
  *cset,7,9,FTIME,'(cyclic number)',300000
  *cset,10,12,HELLO,'(be careful to input values)',1
  *cset,61,62,'*** fatigue analysis *** '
  *cset,63,64,'(pay much more attention!)'
multipro,'end'                                                                              
FL,1,pmax,SC_FX,SC_FY,SC_FZ,Max Point
LCASE,I                                                                                
FSNODE,pmax,ii,I                                                                              
LCASE,J                                                                                
FSNODE,pmax,ii,J
!FSNODE,pn,2,2
ii=ii+1
*go,:bbeegg
*endif
/post1                                                                              
FTWRITE,fatiguedata,txt
ABBRES,NEW,fatiguedata,txt
/output,fatigue_output,txt,,
*end    !!!!============== fatigue_mac ===================
*IF,CND,EQ,4,THEN
    *use,find_pmax
    *use,report
    *use,fatigue_mac
   FINISH
   /post1  
    FTCALC,1,pmax   
/output,fatigue_output,txt,,append   
    FSLIST,ALL,,,ALL,ALL,    /output,fatigue_output,txt,,append
*ELSE
  finish
*ENDIF
finish
/eof
opvarobj=MAX_SEQV_VALUE
opanL,'teeoptimize','txt', !!! assign A4optimize.txt as analysis file
opvar,M_thk,DV,6,10,0.01 !!! tolerance (1e-8 /k)
opvar,max_seqv_value,sv,100,150,0.1
opvar,opvarobj,obj,,,0.01
optype,firs
opfrst,30,100,0.2
opexe
plvaropt,m_thk !!,shell_thk
/axlab,x,number of iterations
/axlab,y,thickness value (mm)
/replot

[ 本帖最后由 jinqinghai 于 2006-11-15 15:11 编辑 ]
发表于 2006-4-17 14:54:19 | 显示全部楼层 来自 武汉大学
Simdroid开发平台
万分感谢楼主给出了一个疲劳分析的例子,但是好像不能完全调通啊,谢谢楼主指教
发表于 2006-5-28 12:12:32 | 显示全部楼层 来自 辽宁沈阳
是通不过
很多错误啊。。。
改了半天还没有改出来 ^_^
 楼主| 发表于 2006-5-29 10:45:12 | 显示全部楼层 来自 加拿大

有什么困难?

请找我--email: em_jinqinghai@yahoo.ca
发表于 2006-5-30 09:44:07 | 显示全部楼层 来自 辽宁沈阳
谢谢 后来我改的差不多。都能过去,编写的很好,学习了。
 楼主| 发表于 2006-5-30 13:03:31 | 显示全部楼层 来自 加拿大
看来只有一个人不懒啦! 哦, 第二楼和第三楼的搞得我原来的得分也给同版的版主撤了! wuuuu...我好冤啦! ^_^
发表于 2006-11-22 09:44:19 | 显示全部楼层 来自 大连理工大学

谢谢

谢谢了,不过我还有一个问题,是不是疲劳分析都要输入s-n曲线呀?不输入行不行?
 楼主| 发表于 2006-11-22 14:07:14 | 显示全部楼层 来自 加拿大
我还没有分析过,没有s-n,那就得有e-n曲线。
等两个曲线都不要了,我也该退休了.^_^
发表于 2007-6-27 10:53:05 | 显示全部楼层 来自 山东烟台
lihai!!!
回复 不支持

使用道具 举报

发表于 2007-7-11 09:40:09 | 显示全部楼层 来自 陕西西安
好东东
回复 不支持

使用道具 举报

发表于 2007-10-29 20:27:48 | 显示全部楼层 来自 广东深圳
把楼主的命令流调通了, 可能是拷贝的原因吧,有些小错误。只是不清楚后面关于疲劳的一些数据上的设置,
*SET,FPtX(1,1,1) , 0
*SET,FPtX(2,1,1) , 65
*SET,FPtX(3,1,1) , 100
*SET,FPtX(4,1,1) , 125   
*SET,FPtX(5,1,1) , 150  
*SET,FPtX(6,1,1) , 200  
*SET,FPtX(7,1,1) , 250  
*SET,FPtX(8,1,1) , 300  
*SET,FPtX(9,1,1) , 325
*SET,FPtX(10,1,1) ,350
*SET,FPtX(11,1,1) ,375
*DIM,fpty,table,11,1,  
*SET,FPtY(1,1,1) , 161
*SET,FPtY(2,1,1) , 161
*SET,FPtY(3,1,1) , 160  
*SET,FPtY(4,1,1) , 159  
*SET,FPtY(5,1,1) , 157
*SET,FPtY(6,1,1) , 157   
*SET,FPtY(7,1,1) , 156   
*SET,FPtY(8,1,1) , 156   
*SET,FPtY(9,1,1) , 153   
*SET,FPtY(10,1,1) , 150  
*SET,FPtY(11,1,1) , 147
这些数据是测量得到的呢?还是怎样得到的?为什么要设置呢?
回复 不支持

使用道具 举报

发表于 2007-10-29 20:28:45 | 显示全部楼层 来自 广东深圳
!6. APPENDIX—APDL files
!6.1. APDL for Fatigue analysis
!! setting the background of the window
WPSTYLE,,,,,,,,0
/RGB,INDEX,100,100,100, 0   
/RGB,INDEX, 80, 80, 80,13   
/RGB,INDEX, 60, 60, 60,14   
/RGB,INDEX, 0, 0, 0,15  
!recovery the original background color
! /RGB,INDEX, 0, 0, 0, 0  
! /RGB,INDEX, 60, 60, 60,13   
! /RGB,INDEX, 80, 80, 80,14   
! /RGB,INDEX,100,100,100,15   
/PMETH,OFF,0
KEYW,PR_SET,1   
KEYW,PR_STRUC,1
/prep7
!/pmacro
!!!/title,N5 NOZZLE FATIGUE analysis
/units, si
*afun,deg
BTOL,1E-5
diff=0.01
/UNITS,SI
/PREP7  
ssmt=117
ssm=118  
multipro,'start',2
*cset,1,3,cnd,'1=max,0=min,2=dsn,3=tst,4=fatg',4
*cset,4,6,meshcontrolsize,'i=smart grade i',5
  *cset,61,62, 'choose the load case'
  *cset,63,64,'########'
multipro,'end'
maxpres=3.7  !!! MPa
minpres=-0.1
dsnpres=5.8
tstpres=1.25*dsnpres*ssm/ssmt
CORR=0      
NZC=0      
M_INNRAD=48.6+NZC      !!!I.D.=97.18mm
M_THK=8.55-NZC   
!!!M_NECK=5-NZC      
M_OUTRAC=45
M_INNRAC=53.6 !!!m_thk+m_outrac
SHELL_INNRAD=48.6+CORR  
SHELL_THK=8.55  
!SHELL_H=105+7*sqrt(shell_innrad*shell_thk)
SHELL_H=200
NOZ_POS_H=0
!!! M_LENGTH=2.5*SQRT(M_INNRAD*M_THK)
!M_HEIGHT=105+2.5*sqrt(m_innrad*m_thk)
M_HEIGHT=200
ET,1,SOLID95
ex_ss_20=1.95E5  !!! for stainless steel material
ex_ss_40=1.94e5
ex_ss_90=1.905e5
ex_ss_150=1.84e5
prxy_ratio=0.3
mp,nuxy,1,prxy_ratio
*if,cnd,eq,1,then
  CNDPRES=MAXPRES     !!!MPa  
MP,EX,1,EX_ss_90
*ELSEIF,CND,EQ,2,THEN
  CNDPRES=DSNPRES
MP,EX,1,EX_ss_150
*elseIF,CND,EQ,0,THEN
  CNDPRES=MINPRES
MP,EX,1,EX_ss_40
*ELSEIF,CND,EQ,3,THEN
  CNDPRES=TSTPRES
MP,EX,1,EX_ss_20
*ELSEIF,CND,EQ,4,THEN
  CNDPRES=MINPRES
MP,EX,1,EX_ss_90
*ELSE
/EOF
*ENDIF
!!! %%% establishing the module %%%%%%
CYLIND,SHELL_INNRAD+SHELL_THK,SHELL_INNRAD,0,SHELL_H,-90,90,
vdele,1,,,0
csys,0
asel,s,loc,z,-diff,diff
asel,a,loc,z,shell_h-diff,shell_h+diff
asel,a,loc,x,-diff,diff
adele,all,,,0
wpoff,0,0,NOZ_POS_H   
WPROT,-90,90,90
CSWPLA,11,1,1,1,
CSYS,11
K,100,M_INNRAD,0,
K,101,M_INNRAD+M_THK,0
K,102,M_INNRAD+M_THK,0,M_HEIGHT,
K,103,M_INNRAD,0,M_HEIGHT
K,200,0,0,0
K,201,0,0,100
LSTR,101,102
Lstr,102,103
LSTR,103,100
Lstr,101,100
AROTAT,13,14,15,16,,,200,201,90,1
ALLSEL,ALL
csys,11
asel,s,loc,z,-diff,diff
csys,1
asel,r,loc,x,0,shell_innrad-diff
adele,all,,,0
asel,s,loc,z,m_height-diff,m_height+diff
adele,all,,,0
csys,1
asel,s,loc,x,shell_innrad+shell_thk-diff,shell_h-diff
csys,11
asel,r,loc,x,m_innrad+m_thk-diff,m_height-diff
aptn,all
csys,1
asel,s,loc,x,shell_innrad-diff,shell_innrad+diff
csys,11
asel,a,loc,x,m_innrad-diff,m_innrad+diff
aptn,all
allsel,all
csys,1
asel,s,loc,x,0,shell_innrad-diff
adele,all
csys,11
asel,s,loc,x,0,m_innrad-diff
adele,all
numcmp,all
nummrg,all
asel,all
afillt,1,2,m_outrac
afillt,3,4,m_innrac
numcmp,all
nummrg,all
asel,all
al,15,32,28,34,7,36,22,30
al,11,12,27,2,25,10
al,2,5,8,9
csys,1
lsel,s,loc,z,shell_h-diff,shell_h+diff
al,all
csys,11
lsel,s,loc,z,m_height-diff,m_height+diff
al,all
numcmp,all
nummrg,all
asel,all
va,all
allsel,all
lsla,u
ldele,all,,,0
/VIEW,1,-1  
/ANG,1  
/REP,FAST
allsel,all
erase
/title, E563 Fatigue analysis Project--sketch in line
lplot
/image,save,module_line,png,
erase
/title, E563 Fatigue analysis Project--sketch in volume
vplot
/image,save,module_volu,png,
mshape,1,3D
mshkey,0
SMRT,meshcontrolsize
lsel,all
ssln,,15
lesize,all,,,10,1,,,,1
!!!LESIZE, NL1, SIZE, ANGSIZ, NDIV, SPACE, KFORC, LAYER1, LAYER2, KYNDIV  
lsel,inve
lesize,all,,,20,1,,,,1
MAT,1
vsel,all
vmesh,all
allsel,all
erase
/title, E563 Fatigue analysis Project--mesh
eplot
/image,save,module_mesh,png,
/solu
antype,static
allsel,all  
csys,0   
asel,s,loc,x,-diff,diff
da,all,symm
allsel,all
csys,0
asel,s,loc,z,-diff,diff
da,all,symm
csys,0
allsel,all
nsel,s,loc,z,shell_h-diff,shell_h+diff
D,all,all,
allsel,all
asel,s,area,,1,2,1
ASEL,A,AREA,,6
sfa,all,1,pres,cndpres
allsel,all
CSYS,1
asel,s,loc,z,shell_h-diff,shell_h+diff
SFA,all,1,PRES,-CNDPRES*SHELL_INNRAD**2/((SHELL_THK+SHELL_INNRAD)**2-SHELL_INNRAD**2)  
  !!! SURFACE LOADS ON THE END SECTION OF THE main shell COURSE
allsel,all
CSYS,11
asel,s,loc,z,M_HEIGHT-diff,M_HEIGHT+diff
SFA,all,1,PRES,-CNDPRES*M_INNRAD**2/((M_INNRAD+M_thk)**2-M_INNRAD**2)  
!!! SURFACE LOADS ON THE END SECTION OF NOZZLE branch nozzle
allsel,all
LSWRITE,1
!!! ###########  LOADING 2 #########
!/LOAD INNER PRESSURE ON THE INSIDE AREAS
ALLSEL,ALL
SFADELE,ALL,,ALL
allsel,all
asel,s,area,,1,2,1
ASEL,A,AREA,,6
sfa,all,1,pres,maxpres
  !!! inner PRESSURE loads on the inner surface
allsel,all
CSYS,1
asel,s,loc,z,shell_h-diff,shell_h+diff
SFA,all,1,PRES,-maxPRES*SHELL_INNRAD**2/((SHELL_THK+SHELL_INNRAD)**2-SHELL_INNRAD**2)  
  !!! SURFACE LOADS ON THE END SECTION OF THE main shell COURSE
allsel,all
CSYS,11
asel,s,loc,z,M_HEIGHT-diff,M_HEIGHT+diff
SFA,all,1,PRES,-maxPRES*M_INNRAD**2/((M_INNRAD+M_thk)**2-M_INNRAD**2)  
!!! SURFACE LOADS ON THE END SECTION OF NOZZLE branch nozzle
allsel,all
   LSWRITE,2
allsel,all  
!!! #### setting up the symbol ###
/PSF,PRES,NORM,2,0,1
/PBF,DEFA, ,1   
/PIC,DEFA, ,1   
/PSYMB,CS,0
/PSYMB,NDIR,0   
/PSYMB,ESYS,0   
/PSYMB,LDIV,0   
/PSYMB,LDIR,0   
/PSYMB,ADIR,0   
/PSYMB,ECON,0   
/PSYMB,XNODE,0  
/PSYMB,DOT,1
/PSYMB,PCONV,   
/PSYMB,LAYR,0   
/PSYMB,FBCS,0   
/PBC,ALL, ,1
/REP
erase  
/title, E563 Fatigue analysis Project--Loads and constraints
ePLOT
/image,save,loadconst,png,
ALLSEL,ALL
/SOLU
!ANTYPE,STATIC
*IF,CND,EQ,4,THEN
   allsel,all
   LSSOLVE,1,2,1
  /POST1
   *IF,CND,EQ,4,THEN
      LCDEF,ERASE
      LCDEF,1,1,,,
      LCDEF,2,2,,,
      LCASE,2
      LCOPER,SUB,1
      PLNSOL,S,INT,0,1
   *ENDIF
  plnsol,s,int,0,1
  SAVE
   *ELSE
   allsel,all
   LSSOLVE,1,1,1
   *ENDIF  
FINISH   
*create, find_pmax !!!
*GET,total_Node_number,NODE,,NUM,MAX ! CURRENT MAXIMUM NODE NUMBER
*get,total_element_number,elem,,num,max !! CURRENT MAXIMUM elem NUMBER
!#### starting the process of postprocess  ####
allsel,all
/post1
/DSCALE,1,100
pldisp,1
/image,save,deflection_contour,png,
/DSCALE,1,1
PLNSOL, U,SUM, 0,1
/title, E563 Fatigue analysis Project--maximum displacement
/image,save,maxdisp,png, !!! displacement vector sum
erase
/post1
/title, E563 Fatigue analysis Project--maximum stresss intensity
plnsol,s,int,
/image,save,maxsint,png,
erase
/post1
/title, E563 Fatigue analysis Project--maximum Von mises stress
plnsol,s,eqv,
/image,save,maxseqv,png,
nsort,s,eqv
*get,Max_SEQV_value,sort,,max
*get,node_number_max_Seqv,sort,0,imax  !!! the node number of  max. Von Mises stress
nsort,s,int
*get,max_Sint_value,sort,,max
*get,node_number_max_Sint,sort,0,imax !!! the node number of max. stress intensity
nsort,u,sum
*get,max_Disp_value,sort,,max
*get,node_number_max_Disp,sort,0,imax !!! the node number of max. Displacement
*get, maxdisp_x,node,node_number_max_disp,loc,x
*get, maxdisp_y,node,node_number_max_disp,loc,y
*get, maxdisp_z,node,node_number_max_disp,loc,z
*get, maxseqv_x,node,node_number_max_seqv,loc,x
*get, maxseqv_y,node,node_number_max_seqv,loc,y
*get, maxseqv_z,node,node_number_max_seqv,loc,z
*get, maxsint_x,node,node_number_max_sint,loc,x
*get, maxsint_y,node,node_number_max_sint,loc,y
*get, maxsint_z,node,node_number_max_sint,loc,z
*end
allsel,all
/POST1
*create,report  
CSYS,0
*CFOPEN,reports,txt,,append
  *vwrite, meshcontrolsize
  ('Mesh control:', F9.0,TL1, ' ')
  *VWRITE, TOTAL_ELEMENT_NUMBER
  ('THE TOTAL NUMBER OF ELEMENTS:', F9.0,TL1, ' ')
  *VWRITE, TOTAL_NODE_NUMBER
  ('THE TOTAL NUMBER OF NODES:', F9.0,TL1, ' ')
  *VWRITE, MAX_DISP_VALUE, NODE_NUMBER_MAX_DISP
('THE VALUE OF MAXIMUM DISPLACEMENT:', E15.6, '   AT THE NODE:', F9.0,TL1,'  ')
   *vwrite, maxdisp_x,maxdisp_y,maxdisp_z
   ('THE LOCATION OF MAXIMUM DISPLACEMENT (X=', F7.1, ' , Y=', F7.1,' , z=', F7.1, ')')
*VWRITE, MAX_SEQV_VALUE, NODE_NUMBER_MAX_SEQV  
('THE VALUE OF MAXIMUM VON MISES STRESS:', F7.1, '       AT THE NODE:', F9.0,TL1,'  ')
  *vwrite, maxSEQV_x,maxSEQV_y,maxseqv_z
   ('THE LOCATION OF MAXIMUM VON MISES STRESS (X=', F7.1, ' , Y=', F7.1,' , z=', F7.1, ')')
*VWRITE, MAX_SINT_VALUE, NODE_NUMBER_MAX_SINT
('THE VALUE OF MAXIMUM STRESS INTENSITY:', F7.1, '       AT THE NODE:', F9.0,TL1,'  ')
  *vwrite, maxSINT_x,maxSINT_y,max_sint_z
   ('THE LOCATION OF MAXIMUM STRESS INTENSITY (X=', F7.1, ' , Y=', F7.1,' , z=', F7.1, ')')
*CFCLOS
*end  !!! ============== must match "*creat" report
!results, txt
*use,find_pmax
*use,report
*create, fatigue_mac  
/post1
!PRSECT, ,0
FTSIZE,5,2,4,
WPSTYLE,,,,,,,,0
*DIM,fpx,ARRAY,16,1,  
*SET,FPX(1,1,1) , log10(10)
*SET,FPX(2,1,1) , log10(20)
*SET,FPX(3,1,1) , log10(50)
*SET,FPX(4,1,1) , log10(100)   
*SET,FPX(5,1,1) , log10(200)  
*SET,FPX(6,1,1) , log10(500)   
*SET,FPX(7,1,1) , log10(1000)  
*SET,FPX(8,1,1) , log10(2000)  
*SET,FPX(9,1,1) , log10(5000)
*SET,FPX(10,1,1) ,log10(10000)
*SET,FPX(11,1,1) ,log10(20000)
*SET,FPX(12,1,1) , log10(50000)
*SET,FPX(13,1,1) , log10(100000)   
*SET,FPX(14,1,1) , log10(200000)   
*SET,FPX(15,1,1) , log10(500000)
*set,fpx(16,1,1),log10(1e6)
*DIM,fpy,ARRAY,16,1,   
*SET,FPY(1,1,1) , 4000  
*SET,FPY(2,1,1) , 2828  
*SET,FPY(3,1,1) , 1897  
*SET,FPY(4,1,1) , 1414  
*SET,FPY(5,1,1) , 1069  
*SET,FPY(6,1,1) , 724   
*SET,FPY(7,1,1) , 572   
*SET,FPY(8,1,1) , 441   
*SET,FPY(9,1,1) , 331   
*SET,FPY(10,1,1) , 262  
*SET,FPY(11,1,1) , 214  
*SET,FPY(12,1,1) , 159  
*SET,FPY(13,1,1) , 138  
*SET,FPY(14,1,1) , 114  
*SET,FPY(15,1,1) , 93.1
*SET,FPY(16,1,1) , 86.2
*VPLOT,fpx,fpy, , , , , , , ,  
/GTHK,CURVE,1   
/GROPT,FILL,on
/GROPT,CURL,1   
/GMARKER,1,0,1,
/title, E563 Fatigue analysis Project--S-N curve
/axlab,x,cycle number(common log)
/axlab,y,stress value (MPa)
/replot
/image,save,S_N,png,
*DIM,fptx,table,11,1,  
*SET,FPtX(1,1,1) , 0
*SET,FPtX(2,1,1) , 65
*SET,FPtX(3,1,1) , 100
*SET,FPtX(4,1,1) , 125   
*SET,FPtX(5,1,1) , 150  
*SET,FPtX(6,1,1) , 200  
*SET,FPtX(7,1,1) , 250  
*SET,FPtX(8,1,1) , 300  
*SET,FPtX(9,1,1) , 325
*SET,FPtX(10,1,1) ,350
*SET,FPtX(11,1,1) ,375
*DIM,fpty,table,11,1,  
*SET,FPtY(1,1,1) , 161
*SET,FPtY(2,1,1) , 161
*SET,FPtY(3,1,1) , 160  
*SET,FPtY(4,1,1) , 159  
*SET,FPtY(5,1,1) , 157
*SET,FPtY(6,1,1) , 157   
*SET,FPtY(7,1,1) , 156   
*SET,FPtY(8,1,1) , 156   
*SET,FPtY(9,1,1) , 153   
*SET,FPtY(10,1,1) , 150  
*SET,FPtY(11,1,1) , 147  
*VPLOT,fptx,fpty, , , , , , , ,   
/GROPT,FILL,off
/title, E563 Fatigue analysis Project--Sm-temperature curve
/axlab,x,Temperature(0C)
/axlab,y,Maximum allowable stress (MPa)
/replot
/image,save,Sm_temp,png,
FP,1,1E1,2E1,5E1,1E2,2E2,5E2
FP,7,1E3,2E3,5E3,1E4,2E4,5E4
FP,13,1E5,2E5,5E5,1E6, ,
FP,19, ,
FP,21,4000,2828,1897,1414,1069,724  
FP,27,572,441,331,262,214,159   
FP,33,138,114,93.1,86.2, ,  
FP,39, ,
FP,41,0  ,65, 100,125,150,200
FP,47,250,300,325,350,375   
FP,51,161,161,160,159,157,157
FP,57,156,156,153,150,147  
FP,61,1.7,0.3
fplist
pmax=NODE_NUMBER_MAX_SEQV  
multipro,'start',1  !!! 3
  *cset,61,62,'*** Fatigue analysis *** '
  *cset,1,3,nf,'(cylic events)',1
  !*cset,4,6,pmax,'(node number of interesting point)',1
  !*cset,7,9,HELLO,'(be careful to input the values)',1
  *cset,63,64,'(pay much more attention!)'
multipro,'end'
nf=1
multipro,'start',3
  *cset,61,62,'**STRESS CONCENTRATION FACTORS FOR FX, FY,FZ** '
  *cset,1,3,SC_FX,'SCFX',1
  *cset,4,6,SC_FY,'SCFY',1
  *cset,7,9,SC_FZ,'SCFZ',1
  *cset,63,64,'(pay much more attention!)'
multipro,'end'                                                      
ii=1
*if,ii,gt,nf,:eenndd                                                                              
multipro,'start',4
  *cset,1,3,I,'(min. load case of this fatigue event)',1
  *cset,4,6,J,'(max. load case of this fatigue event)',2
  *cset,7,9,FTIME,'(cyclic number)',300000
  *cset,10,12,HELLO,'(be careful to input values)',1
  *cset,61,62,'*** fatigue analysis *** '
  *cset,63,64,'(pay much more attention!)'
multipro,'end'                                                                              
FL,1,pmax,SC_FX,SC_FY,SC_FZ,Max Point
LCASE,I                                                                                
FSNODE,pmax,ii,I                                                                              
LCASE,J                                                                                
FSNODE,pmax,ii,J
!FSNODE,pn,2,2
ii=ii+1
*go,:bbeegg
*endif
/post1                                                                              
FTWRITE,fatiguedata,txt
ABBRES,NEW,fatiguedata,txt
/output,fatigue_output,txt,,
*end    !!!!============== fatigue_mac ===================
*IF,CND,EQ,4,THEN
    *use,find_pmax
    *use,report
    *use,fatigue_mac
   FINISH
   /post1  
    FTCALC,1,pmax   
/output,fatigue_output,txt,,append   
FSLIST,ALL,,,ALL,ALL,   
/output,fatigue_output,txt,,append
*ELSE
  finish
*ENDIF
finish
/eof
opvarobj=MAX_SEQV_VALUE
opanL,'teeoptimize','txt', !!! assign A4optimize.txt as analysis file
opvar,M_thk,DV,6,10,0.01 !!! tolerance (1e-8 /k)
opvar,max_seqv_value,sv,100,150,0.1
opvar,opvarobj,obj,,,0.01
optype,firs
opfrst,30,100,0.2
opexe
plvaropt,m_thk !!,shell_thk
/axlab,x,number of iterations
/axlab,y,thickness value (mm)
/replot
(修改的楼主的命令流,这样再调试的话,就没错误了)

[ 本帖最后由 偌仪 于 2007-10-29 20:30 编辑 ]
回复 不支持

使用道具 举报

发表于 2008-9-30 09:23:40 | 显示全部楼层 来自 江西南昌
谢谢!好东西!
回复 不支持

使用道具 举报

发表于 2009-1-13 16:33:03 | 显示全部楼层 来自 内蒙古包头
it seems good, thx a lot
回复 不支持

使用道具 举报

发表于 2009-2-17 20:22:05 | 显示全部楼层 来自 北京航空航天大学
谢谢楼主分享
回复 不支持

使用道具 举报

发表于 2009-3-24 12:24:27 | 显示全部楼层 来自 加拿大
THANKS SOOOO MUCH!@_@
回复 不支持

使用道具 举报

发表于 2009-7-19 21:01:09 | 显示全部楼层 来自 北京
谢谢,正在做疲劳方面的东西~
回复 不支持

使用道具 举报

发表于 2009-7-20 11:44:26 | 显示全部楼层 来自 广西桂林
楼主,能不能有个注释一下啊!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-28 13:39 , Processed in 0.056856 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表