24小时热门版块排行榜    

查看: 1185  |  回复: 12

15527218310

金虫 (小有名气)

[求助] 明明单元处于杀死状态,为什么实际计算之后单元节点上温度升高了 已有1人参与

我在用ANSYS做焊接模拟的时候,感觉明明单元处于杀死状态,为什么实际计算之后单元节点上有温度呢?如图,图1为计算之后的温度场显示云图,图二为我用ESEL,S,LIVE命令查看的所有活着的单元,可以明显看到,焊缝部位未被激活。这个可能是什么情况?由于原程序写的有点乱,所以就不贴出来了。谢谢各位了!

明明单元处于杀死状态,为什么实际计算之后单元节点上温度升高了
1.JPG


明明单元处于杀死状态,为什么实际计算之后单元节点上温度升高了-1
2.JPG
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

w_tao13614

银虫 (小有名气)

我也碰到过和你一样的情况,需要先把杀死单元节点的温度约束住了,然后等激活时候再把约束去掉就可以了,这也是别人告诉我的

发自小木虫Android客户端
3楼2017-10-21 12:58:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

15527218310

金虫 (小有名气)

FINISH
/CLEAR
/PREP7
/UNITS,SI

ET,1,SOLID70
PI=3.1415
LENGTH=0.10

I=160
U=22
V=0.007
Q=0.7*I*U
ff=0.6
fr=1.4
af=0.004
ar=0.016
b=0.004
c=0.002
Qf=6*SQRT(3)*ff*Q/3.14/SQRT(3.14)/af/b/c
Qr=6*SQRT(3)*fr*Q/3.14/SQRT(3.14)/ar/b/c

TIME_FREQUENCY=0.5
L_NUMBER=LENGTH/V/TIME_FREQUENCY

MPTEMP,1,20,100,200,300,500,700
MPTEMP,,900,1100,1300,1500,1700,1900
MPTEMP,,2000,2200,2400,2600

MPDATA,DENS,1,1,7800,7770,7750,7730,7790,7680
MPDATA,DENS,1,,7570,7460,7360,7030,6810,6620
MPDATA,DENS,1,,6540,6360,6170,6090

MPDATA,KXX,1,1,34.15,35.91,37.15,34.42,22.6,24.99
MPDATA,KXX,1,,27.32,29.84,32.17,33.45,36.72,40.19
MPDATA,KXX,1,,42.1,45.75,49.4,52.0

MPDATA,C,1,1,450,480,570,880,550,580
MPDATA,C,1,,610,640,680,12600,830,830
MPDATA,C,1,,830,830,830,820

MPDATA,ENTH,1,1,0,0.28E8,0.83E8,1.47E8,3.64E8,4.77E8
MPDATA,ENTH,1,,5.88E8,7.14E8,8.56E8,1.23E9,1.40E9,1.58E9
MPDATA,ENTH,1,,1.66E9,1.82E9,1.98E9,2.07E9

MPDATA,HF,1,1,1.336,6.68,13.36,20.4,38.7,71.15
MPDATA,HF,1,,110.04,170.6,180,264.4,270,280
MPDATA,HF,1,,290,310,340,360

BLOCK,0,0.06,0,LENGTH,0,0.015
BLOCK,0.06,0.08,0,LENGTH,0,0.015
BLOCK,0.08,0.14,0,LENGTH,0,0.015

BLOCK,0.066,0.074,0,LENGTH,0.015,0.018

VGLUE,ALL
AGLUE,ALL
LGLUE,ALL

NUMCMP,ALL

VSEL,S,,,2
VPLOT
ESIZE,0.001
TYPE,1
VSWEEP,ALL

VSEL,S,,,4,
VPLOT
ESIZE,0.001
TYPE,1
VSWEEP,ALL

VSEL,S,,,1,3,2
VPLOT
ESIZE,0.002
TYPE,1
VMESH,ALL

ALLSEL

*GET,ELEM_COUNT_ALL,ELEM,0,COUNT
VSEL,S,,,4
ESLV
*GET,ELEM_COUNT_HAZ,ELEM,0,COUNT
VSEL,S,,,2
ESLV
*GET,ELEM_COUNT_WELD,ELEM,0,COUNT

*DIM,HAZ_NUMBER,ARRAY,ELEM_COUNT_HAZ
*DIM,HAZ_CENTX,ARRAY,ELEM_COUNT_HAZ
*DIM,HAZ_CENTY,ARRAY,ELEM_COUNT_HAZ
*DIM,HAZ_CENTZ,ARRAY,ELEM_COUNT_HAZ

*DIM,WELD_NUMBER,ARRAY,ELEM_COUNT_WELD
*DIM,WELD_CENTX,ARRAY,ELEM_COUNT_WELD
*DIM,WELD_CENTY,ARRAY,ELEM_COUNT_WELD
*DIM,WELD_CENTZ,ARRAY,ELEM_COUNT_WELD

!热影响区单元号以及单元质心坐标
VSEL,S,,,4
ESLV
*SET,A,1
*DO,I,1,ELEM_COUNT_ALL,1
        *IF,ESEL(I),EQ,1,THEN
                HAZ_NUMBER(A)=I
                *GET,CENTX,ELEM,I,CENT,X
                *GET,CENTY,ELEM,I,CENT,Y
                *GET,CENTZ,ELEM,I,CENT,Z
                HAZ_CENTX(A)=CENTX
                HAZ_CENTY(A)=CENTY
                HAZ_CENTZ(A)=CENTZ
                *SET,A,A+1
        *ENDIF
*ENDDO

!焊缝区单元号及质心坐标
VSEL,S,,,2
ESLV
*SET,A,1
*DO,I,1,ELEM_COUNT_ALL,1
        *IF,ESEL(I),EQ,1,THEN
                WELD_NUMBER(A)=I
                *GET,CENTX,ELEM,I,CENT,X
                *GET,CENTY,ELEM,I,CENT,Y
                *GET,CENTZ,ELEM,I,CENT,Z
                WELD_CENTX(A)=CENTX
                WELD_CENTY(A)=CENTY
                WELD_CENTZ(A)=CENTZ
                *SET,A,A+1
        *ENDIF
*ENDDO

FINISH

/SOLU
ANTYPE,4
NROPT.FULL
NLGEOM,ON
OUTPR,ALL,ALL
OUTRES,ALL,ALL
TIMINT,OFF
KBC,1
AUTOTS,ON
NSUBST,4
TIME,0.01
ALLSEL
NSLV
D,ALL,TEMP,25
ALLSEL
SOLVE

DDELE,ALL,ALL
VSEL,S,,,2
ESLV
EKILL,ALL
TIME,0.02
ALLSEL
SOLVE

XC=0.070
ZC=0.015

TIME=0.02

*DO,K,1,1,1
        BFEDELE,ALL,ALL
        SFADELE,ALL,ALL
        SFDELE,ALL,ALL
        YMIN=(K-1)*LENGTH/L_NUMBER
        YMAX=K*LENGTH/L_NUMBER
        YC=(YMIN+YMAX)/2
       
        *DO,N,1,ELEM_COUNT_HAZ,1

                CENTX=HAZ_CENTX(N)
                CENTY=HAZ_CENTY(N)
                CENTZ=HAZ_CENTZ(N)
                !*GET,CENTX,ELEM,HAZ_NUMBER(N),CENT,X
                !*GET,CENTY,ELEM,HAZ_NUMBER(N),CENT,Y
                !*GET,CENTZ,ELEM,HAZ_NUMBER(N),CENT,Z
               
                *IF,CENTY,GT,YC,THEN
                        YY=(CENTY-YC)*(CENTY-YC)/af/af
                        XX=(CENTX-XC)*(CENTX-XC)/b/b
                        ZZ=(CENTZ-ZC)*(CENTZ-ZC)/c/c
                        Q1=Qf*EXP(-3*(XX+YY+ZZ))
                        BFE,HAZ_NUMBER(N),HGEN,1,Q1
                *ENDIF
               
                *IF,CENTY,LE,YC,THEN
                        YY=(CENTY-YC)*(CENTY-YC)/ar/ar
                        XX=(CENTX-XC)*(CENTX-XC)/b/b
                        ZZ=(CENTZ-ZC)*(CENTZ-ZC)/c/c
                        Q1=Qr*EXP(-3*(XX+YY+ZZ))
                        BFE,HAZ_NUMBER(N),HGEN,1,Q1
                *ENDIF
        *ENDDO

        ALLSEL
        ASEL,ALL
        NSLA
        SF,ALL,CONV,-1,80
        TIME=TIME+TIME_FREQUENCY
        TIMINT,ON
        TIME,TIME
        LNSRCH,ON
        NSUBST,1
        KBC,1
        ALLSEL
        !ESEL,S,LIVE
        SOLVE
       
        !激活焊缝单元
        !*DO,M,1,ELEM_COUNT_WELD,1
                !CENTY=WELD_CENTY(M)
                !*GET,CENTY,ELEM,WELD_NUMBER(M),CENT,Y
                !*IF,CENTY,LE,YMAX,THEN
                        !*IF,CENTY,GT,YMIN,THEN
                                !EALIVE,WELD_NUMBER(M)
                        !*ENDIF
                !*ENDIF
        !*ENDDO
*ENDDO

BFEDELE,ALL,ALL
SFADELE,ALL,ALL
SFDELE,ALL,ALL

*DO,M,1,10,1
        TIME=TIME+0.5
        TIME,TIME
        BFDELE,ALL,ALL
        SFADELE,ALL,ALL
        ALLSEL
        ASEL,ALL
        SFA,ALL,,CONV,-1,80
        NSUBST,2
        ALLSEL
        SOLVE       
*ENDDO

!TIME,TIME+300
!BFDELE,ALL,ALL
!SFADELE,ALL,ALL
!ALLSEL
!ASEL,ALL
!SFA,ALL,,CONV,-1,25
!NSUBST,100
!ALLSEL
!SOLVE

还是把源程序贴上来吧
2楼2017-10-21 10:43:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

15527218310

金虫 (小有名气)

引用回帖:
3楼: Originally posted by w_tao13614 at 2017-10-21 12:58:55
我也碰到过和你一样的情况,需要先把杀死单元节点的温度约束住了,然后等激活时候再把约束去掉就可以了,这也是别人告诉我的

这样的话,是不是就不需要用生死单元了。他们有什么区别吗?

发自小木虫Android客户端
4楼2017-10-21 13:24:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

w_tao13614

银虫 (小有名气)

引用回帖:
4楼: Originally posted by 15527218310 at 2017-10-21 13:24:21
这样的话,是不是就不需要用生死单元了。他们有什么区别吗?
...

这个我还真没想过,你可以试试两种方法,看做出的结果有什么区别,我觉得应该还是生死单元的合理些

发自小木虫Android客户端
5楼2017-10-21 23:50:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

15527218310

金虫 (小有名气)

引用回帖:
5楼: Originally posted by w_tao13614 at 2017-10-21 23:50:21
这个我还真没想过,你可以试试两种方法,看做出的结果有什么区别,我觉得应该还是生死单元的合理些
...

因为我还想做结构分析,我查资料说这样会对结构分析有很大影响

发自小木虫Android客户端
6楼2017-10-22 00:04:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shgao20

专家顾问 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
对死单元施加温度约束不是一个好办法,因为该温度约束会影响活单元的结果。
  ANSYS 在计算时对死单元只是将相应材料参数中的主要参数 (热分析时的导热系数、结构分析时的弹性模量,等) 修改为很小的值,使它们对活单元的结果影响很小。而死单元由于参与了计算,所以也会有结果,忽略即可。
  如果不想死单元有变化,可以在求解之前,只选择活单元,这样,死单元将不参与计算,就不会有变化了。
  这两种办法都是近似的,结果也不会有太大区别。
7楼2017-10-22 08:16:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

15527218310

金虫 (小有名气)

引用回帖:
7楼: Originally posted by shgao20 at 2017-10-22 08:16:57
对死单元施加温度约束不是一个好办法,因为该温度约束会影响活单元的结果。
  ANSYS 在计算时对死单元只是将相应材料参数中的主要参数 (热分析时的导热系数、结构分析时的弹性模量,等) 修改为很小的值,使它们对活 ...

我试过只选择激活的单元,但是计算的时候会出现单元信息丢失的错误。

发自小木虫Android客户端
8楼2017-10-22 10:09:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

15527218310

金虫 (小有名气)

9楼2017-10-23 07:44:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shgao20

专家顾问 (职业作家)

【答案】应助回帖

引用回帖:
8楼: Originally posted by 15527218310 at 2017-10-22 10:09:05
我试过只选择激活的单元,但是计算的时候会出现单元信息丢失的错误。
...

出现你说的情况,一般是因为在不同的载荷步中分别杀死了不同的单元,这样一来,在不同的载荷步中参与计算的单元不一样,上一个载荷步被杀死的单元,没有计算结果,如果在后续载荷步中被激活了,就会出现缺少单元信息的问题。因此,这种方法适用于不断杀死新的单元,但不会激活已经被杀死的单元的问题,如使用激光加工不断去除材料的情况。
  一般来说,使用生死单元,定义要杀死的单元后,对整个结构进行计算是合适的。死单元会有结果,但是影响很小,可以忽略。
10楼2017-10-23 08:32:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 15527218310 的主题更新
信息提示
请填处理意见