您的位置:网站首页 > Ansys教程

Ansys APDL方式非线性方程求解

时间:2011-01-27 09:12:05 来源:未知

 本文介绍了Ansys APDL语言方式的非线性方程求解相关内容。

  在学习编写ABAQUS的UMAT子程序时,在受拉部分考虑了混凝土损伤的影响,需要确定屈服应力和屈服应变。这个方程简化后属于非线性方程,格式如:A*(x-1)^1.7+x-B=0

  为了验算方程求解的正确性,使用APDL来求这个方程的解。假定A=B=2,分别给定X初始,并给出迭代次数;

  x初始值为2时,迭代5次;初始值为1,迭代6次;初始值为1000,迭代13次;

  结果均无限逼近1.461942.

  下面给出APDL的命令,有兴趣的朋友也可以试一下。(注意X的初始不要取负值,这是方程成立的前提)

  A=2

  B=2

  x0=1

  *cfopen,aaaaa,txt

  *do,i,1,1000

  xn=x0-(A*(x0-1)**1.7+x0-B)/(1.7*A*(x0-1)**0.7+1)

  i=i+1

  *if,abs((xn-x0)/x0),gt,1.0e-6,then

  x0=xn

  *else

  *vwrite(*,*) xn,i

  (G15.5,I3)

  *cfclose

  *exit

  *endif

  *enddo

  简单求解非线性,APDL确实好用,比excel更具公式化,便于检查;相对一般的编程软件,又方便,不易出错。

  1.与求解一相比,直接使用条件循环,*dowhile实现。

  2.该命令流的使用:通过界面/input输入。

  ft=1.43

  E0=3e4

  E1=ft/(ft**0.54*65e-6)

  At=0.312*ft**2

  A=E0/E1-1

  B=A+1

  x0=1.0

  D=x0

  c=1

  i=0

  *cfopen,aaaaa,txt

  *dowhile,c

  TERM1=1/(At*(x0-1)**1.7+x0)

  TERM2=1.7*At*(x0-1)**0.7+1

  TERM3=x0*B-A*x0*TERM1-D

  TERM4=B-A*(TERM1-x0*TERM1**2*TERM2)

  x=x0-TERM3/TERM4

  *vwrite,x,x,i

  (2(F15.5,","),F15.0)

  *if,abs(x-x0)/x0,lt,1e-6,then

  c=0

  *else

  c=1

  *endif

  x0=x

  i=i+1

  *enddo

  *cfclose