Rigid Body Motion error solution not converged.

Below is the model for which i want to do static analysis and want to evaluate the spring force. model is the simplified version of cylinder between two plate. i want to replace solid cylinder by nonlinear spring. i have force-deflection curve from which i am giving stiffness to COMBIN39 spring element. i am using ANSYS APDL for my simulation. i have fixed the bottom plate bottom surface in all direction. and compressive force is applied to top surface of upper plate. but i am getting the error of rigid body motion. Apart from this whenever combin39 element is arranged such that when compressive force is applied spring experience tension model (see another fig) is working fine and i got the spring force which is expected. Can anyone help me what is happening in the model below and why i am getting error of rigid body motion.

Purple : MPC184 link element

RED: Combin39 element

Rest is SOLID185 element. material properties is steel with 2.1E5 young's modulus and 0.3 poisson's ratio.

here is my code for model.


finish

/clear

/RGB,INDEX,100,100,100, 0

/RGB,INDEX, 80, 80, 80,13

/RGB,INDEX, 60, 60, 60,14

/RGB,INDEX, 0, 0, 0,15

/graphics,full

/pnum,mat

/prep7

R1 = 8 ! radius of cyl cyl. 1 (mm)

E1 = 2.08E5 ! modulus of cyl. 1 (N/mm^2)

nu1 = 0.3 ! Poisson's ratio of cyl. 1 

E2 = 2.1E5 ! modulus of cyl. 2 (N/mm^2)

nu2 = 0.3 ! Poisson's ratio of cyl. 2 

Load = 20000 ! load to be applied

Length = 24 ! length of cylinder in mm

!material properties

MP,ex,1,E1 ! E-modulus roller

mp,prxy,1,nu1 ! poisson's ratio

mp,ex,2,E2 ! E-modulus raceway

mp,prxy,2,nu2 ! poisson's ratio

et,1,solid185

et,2,mpc184

et,3,combin39

!!!!!!!!!!!!!!!!!!!!! upper plate generation

n,1,-1.25*R1,R1

n,34,1.25*R1,R1

fill,1,34,32,2,1

ngen,49,34,1,34,1,0,0,-0.5

ngen,6,1666,1,1666,1,0,2,0

mat,2

type,1

e,1,2,36,35,1667,1668,1702,1701

egen,33,1,1

egen,48,34,1,33,1

*get,highestE,elem,,num,max

egen,5,1666,1,highestE,1

allsel

!!!!!!!!!!!!!! bottom plate

*get,highestN,node,,num,max

n,highestN+1,-1.25*R1,-R1

n,highestN+34,1.25*R1,-R1

fill,highestN+1,highestN+34,32,highestN+2,1

ngen,49,34,highestN+1,highestN+34,1,0,0,-0.5

ngen,6,1666,highestN+1,highestN+1666,1,0,-2,0

mat,2

type,1

e,9997,9998,10032,10031,11663,11664,11698,11697

*get,highestE,elem,,num,max

egen,33,1,highestE

*get,highestE,elem,,num,max

egen,48,34,highestE-32,highestE,1

*get,highestE,elem,,num,max

egen,5,1666,highestE-1583,highestE,1

allsel,all

!!!!!!!!!!!!!! Mpcs connection to master node !!!

!!!! 1 connection

n,100000,0,4,-4

n,100001,0,4,-12

n,100002,0,4,-20

n,200000,0,-4,-4

n,200001,0,-4,-12

n,200002,0,-4,-20

! 1st connection

nsel,s,loc,y,8

nsel,r,loc,z,0,-8

nsel,r,loc,x,-0.5,0.5

cm,node1MPCtop,node

nsel,s,loc,y,-8

nsel,r,loc,z,0,-8

nsel,r,loc,x,-0.5,0.5

cm,node1MPCbottom,node

cmsel,s,node1MPCtop

*get,nodempc1,node,,count

nodeonline=0

type,2

*do,i,1,nodempc1

nodeonline=ndnext(nodeonline)

e,nodeonline,100000

*enddo

cmsel,s,node1MPCbottom

*get,nodempc1,node,,count

nodeonline=0

type,2

*do,i,1,nodempc1

nodeonline=ndnext(nodeonline)

e,nodeonline,200000

*enddo

!!!!! 2 connection

nsel,s,loc,y,8

nsel,r,loc,z,-8.5,-16

nsel,r,loc,x,-0.5,0.5

cm,node2MPCtop,node

nsel,s,loc,y,-8

nsel,r,loc,z,-8.5,-16

nsel,r,loc,x,-0.5,0.5

cm,node2MPCbottom,node

cmsel,s,node2MPCtop

*get,nodempc2,node,,count

nodeonline=0

type,2

*do,i,1,nodempc2

nodeonline=ndnext(nodeonline)

e,nodeonline,100001

*enddo

cmsel,s,node2MPCbottom

*get,nodempc2,node,,count

nodeonline=0

type,2

*do,i,1,nodempc2

nodeonline=ndnext(nodeonline)

e,nodeonline,200001

*enddo

!!! 3 connection

nsel,s,loc,y,8

nsel,r,loc,z,-16.5,-24

nsel,r,loc,x,-0.5,0.5

cm,node3MPCtop,node

nsel,s,loc,y,-8

nsel,r,loc,z,-16.5,-24

nsel,r,loc,x,-0.5,0.5

cm,node3MPCbottom,node

cmsel,s,node3MPCtop

*get,nodempc2,node,,count

nodeonline=0

type,2

*do,i,1,nodempc2

nodeonline=ndnext(nodeonline)

e,nodeonline,100002

*enddo

cmsel,s,node3MPCbottom

*get,nodempc2,node,,count

nodeonline=0

type,2

*do,i,1,nodempc2

nodeonline=ndnext(nodeonline)

e,nodeonline,200002

*enddo

!  springs element

keyopt,3,1,0 ! unloading path same as loading

keyopt,3,2,0 !Compressive loading follows defined compressive curve (or reflected tensile curve if not defined)

!keyopt,3,3,2

keyopt,3,4,1 ! 3D springs

R,1,-0.076251,-75000/3,-0.052937,-50000/3,-0.035426,-32000/3

rmore,-0.023207,-20000/3,-0.012436,-10000/3,-0.00664,-5000/3

rmore,0,0,250,1000

real,1

type,3

e,100000,200000

*repeat,3,1,1


!!!! Boundary condition

nsel,s,loc,y,-18

cm,N_baseplate,node


cmsel,s,N_baseplate

d,all,all,0

allsel,all


nsel,s,loc,y,12

nsel,u,loc,x,-9.8,9.8

cm,N_sideedge,node

nsel,s,loc,y,12

nsel,r,loc,z,0

cm,N_frontedge,node

nsel,s,loc,y,12

nsel,r,loc,z,-24

cm,N_backedge,node

cmsel,s,N_sideedge

cmsel,a,N_frontedge

cmsel,a,N_backedge

cm,N_midedge,node

!d,all,ux,0

!d,all,uz,0

allsel,all

nsel,s,loc,y,18

nsel,r,loc,x,-4,4

cm,N_force,node

cmsel,s,N_force

*get,nodecount,node,,count

f,all,fy,-Load/nodecount

allsel,all

/solu

allsel

time,1

nsubst,2,20,1

nlgeom,on

autots,on

outres,all,last

solve

Answers

  • rkumbharrkumbhar PuneForum Coordinator

    hi @krada I didn't go through the whole script. But my guess is stiffness is very small compared to applied force on the spring. When the spring is compressed it pass through the bottom plate. My suggestion is to use joint and add stop option.

  • Thanks @rkumbhar for your answer. actually stiffness is calculated from the another model and validated with analytical solution. i think there seems to not be a problem but i did not get your point of using joint and stop option. i mean which type of joint and how it would be implemented?

Sign In or Register to comment.