Ansys workbench-spring with variable stiffness

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 9K views
maral
Messages
2
Reaction score
0
Hello every body,
I am simulating a 1 dof spring-mass model in ansys workbench. I need to change the stiffness of spring at every substep based on an "if condition". It means that, in every substep, if a specified condition is satisfied, the stiffness will be changed to a defined value.
Also, I need to get spring force result in every substep.
Any help will be soooo much appreciated.
Looking forward to hearing back from you.
Regards,
Maral
 
Physics news on Phys.org
Hi Maral,

step 1:

u need to solve the Analysis for a load step

Step 2:

go to /post26 set the time at last load step and get the spring reaction force with "rforce" command

Step 3:

do what you got to do in sense of Compairing the reaction force with "if" command and use "emodif" command to modify the spring stiffness

Step 4:

go back to /solu and restart the analysis using antype,trans or harm,restart (it is important to restart the analysis, else the next load step will ignore your last load step results,...)i assume u want to model load dependent roller bearing stiffness, i think this method will work altough i have not tried it myself yet...Regards

Behnam
Sent from my iPad using Physics Forums
 
Thank you behnam.
The problem is that Restart command results in returning the stiffness value to its initial value after the if condition satisfies and the spring stiffness changes to the specified value(here zero).
I add my code at the end of this message.
I wonder if there is a way to solve this problem. I need to change the spring stiffness at a critical value of force and have the force matrix at all substep of all loadsteps in post processor.
I would be very appreciated if you can help me.
Best Regards
*DO,SCF,.5,4,.5
/prep7
! -------------------------- spring element ------------------------
TYPE, 2
MAT, 1
REAL, 1
ESYS, 0
SECNUM,
TSHAP,LINE
!*
/go
!--------------------------- Element 141 ----------------------------
*IF,COUNT,EQ,0,THEN
FLST,2,2,1
FITEM,2,70
FITEM,2,34
E,P51X
*ELSEIF,CSP1,EQ,2,THEN
ESEL,S, , , 141
FLST,2,1,2,ORDE,1
FITEM,2,141
EMODIF,P51X,REAL,2,
ESEL,all
*ENDIF
!--------------------------- Element 142 -----------------------------
*IF,COUNT,EQ,0,THEN
FLST,2,2,1
FITEM,2,69
FITEM,2,36
E,P51X
*ELSEIF,CSP2,EQ,2,THEN
ESEL,S, , , 142
FLST,2,1,2,ORDE,1
FITEM,2,142
EMODIF,P51X,REAL,2,
ESEL,all
*ENDIF
! ---------------------------- Element 143 ----------------------------
*IF,COUNT,EQ,0,THEN
FLST,2,2,1
FITEM,2,71
FITEM,2,32
E,P51X
*ELSEIF,CSP3,EQ,2,THEN
ESEL,S, , , 143
FLST,2,1,2,ORDE,1
FITEM,2,143
EMODIF,P51X,REAL,2,
ESEL,all
*ENDIF

! ewrite,file,txt,,1, ! writting elements properties
FINISH
! ------------------------- End of preprocessor -------------------------

!---------------------------------- Solve -------------------------------
/SOL

ANTYPE,0
NLGEOM,1
nropt,full ! it should be deactivated if edele command use instead of ekill
NSUBST,20,0,0
AUTOTS,0
!OUTRES,ERASE
!OUTRES,ALL,AL

! ------------------------------- Time step 1 ---------------------------
*IF,COUNT,eq,0,THEN
TIME,1
*ENDIF
!---------------------------- Other time steps --------------------------
*IF,COUNT,ge,1,THEN
parsave,all,mld
ANTYPE,,RESTART
parres,,mld
ss=CSP2+1
AAA=COUNT+1
TIME, AAA
*ENDIF
COUNT=COUNT+1
!------------------------- Applying boundary conditions -----------------
FLST,2,21,1,ORDE,2
FITEM,2,1
FITEM,2,-21
!*
/GO
D,P51X, , , , , ,ALL, , , , ,
FLST,2,11,1,ORDE,2
FITEM,2,64
FITEM,2,-74
!*
/GO
D,P51X, , , , , ,UY, , , , ,
FLST,2,1,1,ORDE,1
FITEM,2,99
!*
/GO
F,P51X,FX,1*SCF

! /STATUS,SOLU
SOLVE
*status
! ------------------------------ End of Solution -------------------------

/post1

!-------------------------- Force in element 141 -------------------------
ESEL,S, , , 141
ETABLE,FSP141,SMISC,1
*get,F141(COUNT),ELEM,141,ETAB,FSP141
esel,all
!-------------------------- Force in element 142 -------------------------
ESEL,S, , , 142
ETABLE,FSP142,SMISC,1
*get,F142(COUNT),ELEM,142,ETAB,FSP142
esel,all
!-------------------------- Force in element 143 -------------------------
ESEL,S, , , 143
ETABLE,FSP143,SMISC,1
*get,F143(COUNT),ELEM,143,ETAB,FSP143
esel,all
! -------------------------- Checking conditions -------------------------
*IF,CSP2,NE,2,THEN
*IF,F142(COUNT),GT,2,THEN
CSP2=2
!ESEL,S, , , 142
!FLST,2,1,2,ORDE,1
!FITEM,2,142
!EMODIF,P51X,REAL,2,
*ENDIF
*ENDIF
FINISH
/PREP7
ewrite,file,txt,,1,
FINISH
*ENDDO