ansys瞬态分析出现严重错误,望各位前辈答疑解惑,小弟不胜感激。

浏览:134430 回答:1

Finish

/clear

/nerr,0,0

/PREP7

*DO,i,1,8

*DO,j,1,48

RECTNG,j*2.5-2.5,j*2.5,i*2.5-2.5,i*2.5

*ENDDO

*ENDDO

AGLUE,ALL

NUMCMP,ALL

RECTNG,0,2.5,0,-2.5,

RECTNG,117.5,120,0,-2.5,

RECTNG,57.5,60,20,22.5,

RECTNG,60,62.5,20,22.5,

AGLUE,ALL

NUMCMP,ALL

ET,1,PLANE42,0,0,2

MPTEMP,,,,,,,,

MPTEMP,1,0

*DO,k,1,384

*GET,t,ACTIVE,0,TIME,WALL

*SET,random_ex,GDIS(1500+t,150+t)-t

MPDATA,EX,k,,random_ex

MPDATA,PRXY,k,,0.3

!MPDATA,DENS,1,,30

*ENDDO

TYPE,1

REAL,

ESYS,0

SECNUM,

AESIZE,ALL,2.5,

*DO,L,1,384

MAT,L

AMESH,L

*ENDDO

MPTEMP,,,,,,,,

MPTEMP,1,0

MPDATA,EX,385,,10000

MPDATA,PRXY,385,,0.3

AESIZE,ALL,2.5,

MAT,385

AMESH,385

AMESH,386

AMESH,387

AMESH,388

d,443,uy,0

d,444,uy,0

FINISH

*get,enummax,elem,,num,max,

*dim,d,array,enummax,

*dim,datad,array,enummax,

*dim,sigma,array,enummax

!以上为前处理部分,问题不大.主要问题出现在下面。

*do,i,1,10,!进行半正弦加载,共加载十次。

/SOLU

ANTYPE,4

TRNOPT,FULL

dt=0.1

pi=acos(-1)

*do,j,1,10, !半正弦加载采用10个荷载步进行近似

f,446,fy,-4*(1-cos(2*pi*dt*j))

time,dt*j

nsubst,1,

AUTOTS,0

kbc,0

Outres,erase

outres,all,all

nlgeom,1

nropt,full,,

solve

*enddo

finish

/POST1

SET,5,LAST,1,!提取第五荷载步计算结果数据

ETABLE,stressx,S,x

finish

*vget,sigma,elem,,etab,stressx,

*do,j,1,enummax-4,!此处do循环为根据疲劳损伤演化公式编写公式

*if,sigma(j),LE,0,THEN

datad(j)=0

d(j)=d(j)+datad(j)

*else

Nf=0.5*(sigma(j)/(2*1.5))**(-5.5)

Jiazaicishu=i

*if,jiazaicishu,gt,1,then

datad(j)=1-d(j)-((1-d(j))**2-1/Nf)**0.5

d(j)=d(j)+datad(j)

*else

d(j)=0

datad(j)=1-d(j)-((1-d(j))**2-1/Nf)**0.5

d(j)=d(j)+datad(j)

*endif

*endif

*enddo

*do,ii,1,enummax-4, !此处do循环为得到各单元损伤,然后对单元属性参数进行修正

*if,d(ii),GT,0.8,THEN

D(ii)=1

*GET,mat_num,ELEM,ii,ATTR,MAT

*GET,ex_value,EX,mat_num

/PREP7

Ekill,ii

finish

*else

*GET,mat_num,ELEM,ii,ATTR,MAT

*GET,ex_value,EX,mat_num

/PREP7

MP,EX,ii,ex_value*(1-d(ii))

finish

*endif

*enddo

yushu=mod(jiazaicishu,10) !以下为保存自己需要的数据

*if,yushu,EQ,0,THEN

k=jiazaicishu/10

*if,k,eq,1,then

*dim,danyuansunshang1,array,enummax

*do,j,1,enummax-4,

danyuansunshang1(j)=d(j)

*enddo

*do,j,enummax-3,enummax

Danyuansunshang1(j)=0

*enddo

*endif

*if,k,eq,5,then

*dim,danyuansunshang5,array,enummax

*do,j,1,enummax-4,

Danyuansunshang5(j)=d(j)

*enddo

*do,j,enummax-3,enummax

Danyuansunshang5(j)=0

*enddo

*endif

*endif

*enddo

邀请回答 我来回答

全部回答

(1)
默认 最新
74144412
有谁能帮忙解决了,我封他为神!天天供着!!:Q
2014年1月13日
评论 点赞

没解决?试试专家一对一服务

换一批
    App下载
    技术邻APP
    工程师必备
    • 项目客服
    • 培训客服
    • 平台客服

    TOP