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

[问题讨论] 如何在多荷载步分析中实现Δε的叠加?

[复制链接]
发表于 2011-11-7 05:36:38 | 显示全部楼层 |阅读模式 来自 美国
悬赏20仿真币未解决
本帖最后由 zhangzhichaohhu 于 2011-11-7 05:48 编辑

100N的静力非线性分析,10个荷载步,每个荷载步分别为10N, 20N, 30N,……100N,最后正确的单元应变结果应该是ε=ΣΔεi=ΣΔσ/E吧?
但是我做出来的应变ε=σ(100N)/E10,总应变只是最后一个荷载步100N作用的结果。但应力结果是正确的。
现在问如何才能实现总的应变ε(或位移等)是每个荷载步所产生的Δεi的叠加呢?也即ε=ΣΔεi。或者说如何将上一个荷载步得到的位移、应变等结果作为下一个荷载步的初始条件?能否给个例子看看?谢谢

试了两种加载方案,一种是荷载步叠加fcum,add,但每个荷载步的荷载不变,全为10N;另一种是荷载步替换fcum,repl,每个荷载步的荷载逐步增加,10N, 20N, 30N,……100N。两种结果一样,应变ε=σ(100N)/E10。

1、*DO,I,1,10
/SOLU

fcum,add
F,48,fz,10
SOLVE



2、*DO,I,1,10
/SOLU
fcum,repl
FORCE=FORCE+10
F,48,fz,FORCE
SOLVE


发表于 2011-11-7 08:48:52 | 显示全部楼层 来自 上海
Simdroid开发平台
用瞬态分析
ANTYPE, 4      瞬态分析
NSUBST,10      子步数、自动调整步长等设置依据你的需要
AUTOTS,ON
TIME, i            该荷载步时间
……
回复

使用道具 举报

 楼主| 发表于 2011-11-7 09:47:02 | 显示全部楼层 来自 美国
zyf22x 发表于 2011-11-7 08:48
用瞬态分析
ANTYPE, 4      瞬态分析
NSUBST,10      子步数、自动调整步长等设置依据你的需要

你好!我添加了瞬态分析选项,结果还是没变。以下是我的命令流,请问能否帮我看看是哪里出问题了?我要在荷载步之间改变材料属性,所以得用重启动分析。谢谢!

/PREP7
FORCE=0  !初始荷载
ET,1,SOLID45
MP,EX,1,1e9
MP,NUXY,1,0.3
block,0,1,0,1,0,1         !建立模型
lesize,all,,,5
vmesh,1

nsel,s,loc,z,-0.01,0.01
d,all,UZ
ALLSEL,ALL

*do,i,1,125          !!将单元i的材料属性变为i,一一对应,以便稍后挨个修改弹模MP,EX,i
ET,i,SOLID45
MP,EX,i,1e9
MP,NUXY,i,0.3
ESEL,,,,i
MPCHG,i,ALL
allsel,all
*enddo

*dim,pressure,array,125
*do,i,1,125
pressure(i)=0       !!设置初始单元平均应力=0
*enddo

nsel,s,loc,z,0.99,1.01  !!耦合顶面节点,随后将荷载加载在主节点上。
cp,48,uz,all
allsel,all

/SOLU
!输出RESTART文件
ANTYPE,4
autots,on
RESCONTROL,DEFINE,ALL,-1,1
NLGEOM,1
finish
save

*DO,I,1,10       !!!10个荷载步加载
/SOLU
*IF,I,GT,1,THEN
ANTYPE,4,REST,               !!!Specifies the analysis type and restart status.
PARRES,CHANGE,PARAM,TXT,
*ENDIF

*do,j,1,125
*IF,pressure(j),Gt,0,THEN   !!如果平均应力大于0就更新弹模
MP,EX,j,1e9+2e7*pressure(j)**(1/2)     !!每个单元i的弹模都要更新
*ENDIF
*enddo
!得到下一步荷载
ANTYPE,4
autots,on
fcum,add
F,48,fz,-100
allsel,all
time,i
SOLVE
FINISH
save

/POST1
ETABLE,EtabS1,S,1 !取各单元第一主应力
ETABLE,EtabS2,S,2 !取各单元第一主应力
ETABLE,EtabS3,S,3 !取各单元第三主应力

    *del,ArrS1,,nopr
    *del,ArrS2,,nopr
    *del,ArrS3,,nopr  
    *del,pressure,,nopr  


  *dim,ArrS1,array,125
  *dim,ArrS2,array,125
  *dim,ArrS3,array,125
  *dim,pressure,array,125

  *do,Num,1,125 !Num为单元编号
  *get,ArrS1(Num),elem,Num,etab,EtabS1
  *get,ArrS2(Num),elem,Num,etab,EtabS2
  *get,ArrS3(Num),elem,Num,etab,EtabS3
     pressure(Num)=-(ArrS1(Num)+ArrS2(Num)+ArrS3(Num))/3   !!定义、提取平均应力,作为模量更新的函数
    *enddo
PARSAV,ALL,PARAM,TXT    !!!!Writes parameters to a file
FINISH
*ENDDO
回复

使用道具 举报

发表于 2011-11-7 10:01:31 | 显示全部楼层 来自 四川乐山
你的后处理应该是采用时间后处理
回复

使用道具 举报

 楼主| 发表于 2011-11-7 10:09:36 | 显示全部楼层 来自 美国
ldhltw 发表于 2011-11-7 10:01
你的后处理应该是采用时间后处理

版主你好!请问“采用时间后处理”是什么意思呢?我这个其实可以只做为静力分析antype,0,我只是在每个荷载步加载完后,根据计算的应力结果来修改弹性模量,更新后进入下一荷载步的计算。静力分析和瞬态分析的结果是一样的。多谢指点~
回复

使用道具 举报

发表于 2011-11-7 13:28:57 | 显示全部楼层 来自 四川乐山
你最后看结果需要采用时间后处理
按照你前面说的方法,计算应该是可以的
回复

使用道具 举报

 楼主| 发表于 2011-11-7 14:00:19 | 显示全部楼层 来自 美国
ldhltw 发表于 2011-11-7 13:28
你最后看结果需要采用时间后处理
按照你前面说的方法,计算应该是可以的 ...

嗯,我的命令流/post1是可以提取出应力结果并运用到荷载步分析过程中的。
但是不知道哪里命令出了问题。正确的单元应变结果应该是ε=ΣΔεi=ΣΔσi/Ei,即总应变是每个荷载增量产生的应变的叠加;而我做出来的应变ε=σ(100N)/E9,也即总应变只是最后一个荷载步100N直接作用的结果。如果是线性分析的话,两种结果是一样的,但是非线性分析,每个荷载步的弹模Ei都是不一样的,这样就只有ε=ΣΔεi=ΣΔσi/Ei才是正确的。

可能有点表述不清楚……
回复

使用道具 举报

发表于 2011-11-7 14:45:34 | 显示全部楼层 来自 河北秦皇岛
修改了材料属性,下一步求解就不会接着上一步求解了,所以不可能得到你想要的结果。多载荷步求解连续的前提是只改变边界条件,而其他不变。
回复

使用道具 举报

 楼主| 发表于 2011-11-7 15:34:40 | 显示全部楼层 来自 美国
本帖最后由 zhangzhichaohhu 于 2011-11-7 15:43 编辑
ferriswanglei 发表于 2011-11-7 14:45
修改了材料属性,下一步求解就不会接着上一步求解了,所以不可能得到你想要的结果。多载荷步求解连续的前提 ...


嗯,一般是这样,但是据说可以通过重启动来模拟。上传一个网上的命令流,是用其中一种重启动方法。

悲催的是自己命令使用的时候就老是出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2011-11-7 18:41:20 | 显示全部楼层 来自 山东烟台
你的前提就是错误的,ε=σ/E成立的前提是材料弹性变形阶段,是属于线性的,而不是非线性。
回复

使用道具 举报

 楼主| 发表于 2011-11-8 10:41:18 | 显示全部楼层 来自 美国
a12330752 发表于 2011-11-7 18:41
你的前提就是错误的,ε=σ/E成立的前提是材料弹性变形阶段,是属于线性的,而不是非线性。 ...


现在觉得,在第i个荷载步改变模量之后,之前所有荷载步所施加的荷载如果不删除,都变成施加在这个模量更新后的物体上?!
楼上的那个例子就是实现荷载步间的材料属性更新。重启动有用吗?该怎么处理才能实现不同模量下的应变增量的叠加呢?即后一步荷载在前一步应变的基础上施加。而我的貌似作为一个新的分析计算的,之前的荷载步都像从未施加过一样。

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2011-11-9 04:56:42 | 显示全部楼层 来自 美国
a12330752 发表于 2011-11-7 18:41
你的前提就是错误的,ε=σ/E成立的前提是材料弹性变形阶段,是属于线性的,而不是非线性。 ...

"ε=σ/E成立的前提是材料弹性变形阶段,是属于线性的,而不是非线性"
此话怎讲?是不是非线性变形阶段,只能Δε=Δσ/E?我想实现的就是这个,可是命令流总是计算出ε=σ/E,而E是更新过的。
回复

使用道具 举报

 楼主| 发表于 2011-11-16 05:51:05 | 显示全部楼层 来自 美国
ferriswanglei 发表于 2011-11-7 14:45
修改了材料属性,下一步求解就不会接着上一步求解了,所以不可能得到你想要的结果。多载荷步求解连续的前提 ...

你好!那请问该如何实现“ε=ΣΔεi=ΣΔσi/Ei”呢?即如何得到总应变是每个荷载步增量产生的应变增量之和。
按照我那命令,得出的结果是ε=σi/E。谢谢!
回复

使用道具 举报

发表于 2012-3-30 11:27:37 | 显示全部楼层 来自 山东青岛
ldhltw 发表于 2011-11-7 10:01
你的后处理应该是采用时间后处理

您好,我用kbc=1施加了多种外荷载,但最后想提取合力与合位移的曲线,没有找到相关的资料,请指教
回复

使用道具 举报

发表于 2012-3-30 15:29:44 | 显示全部楼层 来自 福建厦门
可以提取每一步计算的结果,作为下一步计算的初荷载施加
回复

使用道具 举报

 楼主| 发表于 2012-3-30 16:06:32 | 显示全部楼层 来自 美国
tomath1 发表于 2012-3-30 15:29
可以提取每一步计算的结果,作为下一步计算的初荷载施加

就是这么考虑的啊!
但是命令流写出来就不对头,如上所示。郁闷。敬请指教啊~~~
回复

使用道具 举报

发表于 2012-3-30 16:30:28 | 显示全部楼层 来自 福建厦门
想问一下,你查看结果,调入的是哪个荷载步的结果呢?
回复

使用道具 举报

 楼主| 发表于 2012-3-30 17:31:25 | 显示全部楼层 来自 美国
比如100N,分为10个荷载步,1~10步的荷载分别为10,10,……,10,10共10*10=100N叠加。第i个荷载步下的应变为Δεi,第i个荷载步下的模量为Ei,所以第i个荷载步下的应力为Δσi=Δεi*Ei。这样施加了10步荷载后,累积应力应该为σ=ΣΔσi=Σ(Δεi*Ei),其中i=1~10,也即累积应力是之前每个荷载步应力增量的叠加
我提取出了应力—荷载步曲线,发现施加了10步荷载后,累积应力是σ=E10*ε总=E10*ΣΔεi,也即累积应力是最后一步的模量与总应变的乘积。
回复

使用道具 举报

 楼主| 发表于 2012-3-30 17:33:33 | 显示全部楼层 来自 美国
不知道怎么才能解释清楚。后来用ls-dyna解决了。ls-dyna中计算出的eps都是每个时步下的应变增量,然后由应变增量*这个时步的模量=应力增量,
所以比较容易实现σ=ΣΔσi=Σ(Δεi*Ei),
回复

使用道具 举报

 楼主| 发表于 2012-3-30 17:36:48 | 显示全部楼层 来自 美国
感觉ansys在第i步输出的是之前i-1荷载步累积下来的总应变,而ls-dyna在第i步输出的是这个时步下的应变增量。不知道理解得对不对。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 14:35 , Processed in 0.039658 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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