-
-
June 7, 2023 at 1:13 pm
Daniel Schirmer
SubscriberHello guys,
I would like to integrate a friction spring into ANSYS Mechanical, which is not entirely untypical in industrial applications. The latter has the spring stiffness c1 (load) and spring stiffness c2 (unload), where: c1 > c2.
Using a simple test model, I have already tried various variants in an APDL code block, including the non-linear spring element COMBIN39. Unfortunately, this also does not provide the desired deflection behaviour.
To illustrate this, I have attached a picture in which the spring characteristic curve according to the manufacturer's data sheet is shown on the left and a possible characteristic curve of the ANSYS spring element COMBIN39 is shown on the right. Maybe someone here has an idea how to best implement the spring characteristic shown?
Thanks for your help!
Â
-
June 8, 2023 at 6:37 pm
Bill Bulat
Ansys EmployeeI once did something similar to what you described with COMBIN14, COMBIN40 and USRCAL,ULDBEG in a command object:
Â
I'm pretty sure you'll also need /CONFIG,NOELDB,0 (to override the /CONFIG,NOELDB,1 that Mechanical writes to ds.dat) and also solve with Distributed OFF:
Â
The above should make calculated results available in the MAPDL database at the end of each load step (which uldbeg.mac expects). The uldbeg.mac should then be able to modify the GAP real constant of COMBIN40 at the beginning of each load step:
The idea (as I recall) is to have the GAP "chase" the relative displacements of the i & j nodes of the COMBIN40 in such a way that the gap always staying closed (or nearly so) so that when direction is reversed, a different spring stiffness acts. My example modified the torsional stiffness for nodal rotation. One COMBIN40 node was fixed, the other was a remote point that controlled nodes in the finite element mesh. The complete command object is pasted below (looks like I skip the Mechanical-written solve command in ds.dat, so you'll need another command object containing ":skip_WB_solve" (no quotes) under the solution branch of the tree):
k=arg1   ! COMBIN14 Kgap=arg2  ! COMBIN40 GAPk2=arg3   ! COMBIN40 K2nsteps=arg4ÂÂ*dim,gap_40,table,nstepsÂ*get,nmax,node,,num,max*get,etmax,etyp,,num,maxÂfiniÂ/config,noeldb,0Â/prep7ÂÂn,nmax+1,nx(bolt_shank_cut_remote_point),ny(bolt_shank_cut_remote_point),nz(bolt_shank_cut_remote_point)n,nmax+2,nx(nmax+1),ny(nmax+1),nz(nmax+1)ÂÂet,etmax+1,14,,6 ! ROTZ COMBIN14r,etmax+1,ktype,etmax+1 $real,etmax+1 $e,nmax+1,bolt_shank_cut_remote_pointÂÂet,etmax+2,40,,,6 ! COMBIN40, ROTZr,etmax+2,,,,gap,,k2 ! COMBIN40 GAP AND SPRING STIFFNESStype,etmax+2 $real,etmax+2 $e,nmax+2,bolt_shank_cut_remote_pointÂd,nmax+1,rotzd,nmax+2,rotzÂfinishÂÂÂC*** USRCAL TO MOFIFY COMBIN40 GAP REAL CONSTANT*cre,uldbeg,mac*get,gap_i,rcon,etmax+2,4rotz2_i=rotz(bolt_shank_cut_remote_point)rmod,etmax+2,4,-max(rotz2_i,-gap_i)blah=-max(rotz2_i,-gap_i)*endÂ/soluÂusrcal,uldbegÂÂÂ/goprÂoutr,all,allÂautots,offnsub,1neqit,5ncnv,0pred,offÂÂÂsaveÂ/sys,copy file.db ..\..\.Â*do,i,1,nsteps /gopr time,6*i/nsteps solve gap_40(i,1)=blah*enddoÂ*do,i,1,nsteps gap_40(i,0)=6*i/nsteps*enddoÂ*stat,gap_40ÂsaveÂ/sys,copy file.db ..\..\.Â*go,:skip_WB_solveÂÂÂI'd just send you the project, but we're not allowed to send files in the forum.ÂThe response (calculated rotation) to this applied moment:ÂÂÂwas this:ÂÂBest,ÂBillÂ
Â
-
June 13, 2023 at 6:20 am
Daniel Schirmer
SubscriberThank you very much for your detailed feedback! I will check it.
-
- The topic ‘Friction spring with APDL’ is closed to new replies.
-
3372
-
1050
-
1047
-
886
-
837
© 2025 Copyright ANSYS, Inc. All rights reserved.