Contrib:KeesWouters/spring

From CAELinuxWiki
Revision as of 11:26, 12 June 2009 by Keeswouters (Talk | contribs) ('''Displacement picture for single force and 4 forces''')

Jump to: navigation, search

Spring construction

The spring construction consists of two rectangular plates with four spring leaves between them.

Kw spring400.jpg * Kw spring mesh400.jpg

The outer rectangular plate shout together with the spring leaves consists of the same face. The inner rectangulare plate is a different face shin and has set different wall thickness in the C-A command file. The material for shout is set to brass and for shin steel. The thicknesses of the plates are 0.15 mm and 0.40 mm respectively. In the picture at the right hand side the transition between the two part is clearly visible with the straight mesh line.

In the python script the geometry and the mesh are defined: Media:kw_spring3.zip

In this file you can see how the geometry is defined by:

  • points to define the inner and outer rectangles and the spring positions
  • lines between these points to define inner and outer rectangle and springs
  • lines and wire to define the dividing between springs and inner rectangle (partitioning)
  • partitioning of the outer rectangle and springs and inner rectangle
  • grouping of the various elements:
  • >> faces: outer rectangle and springs shout, inner rectangle shin
  • >> lines for boundary conditions and forces: inedge, outedge
  • >> nodes: node1 (N25), opposite nodes nodes13 (N25 and N28) and nodes4 (N25, N26, N27 and N28)

Results

A number of loads will be applied on the inner plate of the construction in the out-of-plane (z direction) of the plate. The total force will always be 1 N. The following loads are applied:

  • one force of 1 N at an corner node (N25) of the inner plate
  • two forces of 0.5 N each at opposite corner nodes (N25 and N28) of the inner plate
  • four forces of 0.25 N each at the corner (N25, N26, N27 and N28) of the inner plate
  • a distributed line for at the inner edge of inner plate and
  • a pressure on the inner plate

One force at inside corner applied
Applying one vertical force at a corner node (Fz = -1.00 N per node, 1 N total force), the vertical displacements at the four corner nodes are:

  • dz at node N25: -0.423 mm
  • dz at node N26: -0.191 mm
  • dz at node N27: -0.177 mm and
  • dz at node N28: +0.049 mm, i.e. average displacement in z direction is -0.21 mm.

The command for this is:
clamped=AFFE_CHAR_MECA(... ,FORCE_NODALE=_F(GROUP_NO='nodes1', FZ=-1.00,),);

Displacements - two forces at inside corners
Applying four vertical forces at the opposite corner nodes (Fz = -0.50 N per node, 1 N total force), the vertical displacements at the four corner nodes are:

  • dz at nodes N26 and N27: -0.1840 mm and
  • dz at nodes N25 and N28: -0.1870 mm (opposite nodes have the same values).

The command for this is:
clamped=AFFE_CHAR_MECA(... ,FORCE_NODALE=_F(GROUP_NO='nodes13', FZ=-0.50,),);


Four vertical forces applied
Applying four vertical forces at the corner nodes (Fz = -0.25 N per node, 1 N total force), the vertical displacements at the four corner nodes are:

  • dz at nodes N25 and N28 -0.1855 and
  • dz at nodes N26 and N27 -0.1856 (opposite nodes have the same values).

Roughly the same values as previously, and some additional bending of the inner plate. The command for this is:
clamped=AFFE_CHAR_MECA(... ,FORCE_NODALE=_F(GROUP_NO='nodes4', FZ=-0.25,),);

Applying distributed line force along inner side
Applying one vertical force along the inner side of the small rectangle. The distributed force per unit lenght is -1/Linside, Linside is (3.4+5.4)*2 or 17.6 mm, total vertical force is once again -1.00 N. Then the vertical displacements at the four corner nodes are:

  • dz at node N25 and N28: -0.1855 mm
  • dz at node N26 and N27: -0.1856 mm.

The command for this is:
clamped=AFFE_CHAR_MECA(... ,FORCE_ARETE=_F(GROUP_MA='inedge', FZ=-1/Linside,),);

Applying a surface load on the inner plate
Finally we applying vertical pressure on the inner plate. The distributed load is now -1/Ain, where Ain is area of the inner plate: 16.64 mm2. The total vertical force is once again -1.00 N. Then the vertical displacements at the four corner nodes are:

  • dz at node N25 and N28: -0.1854 mm
  • dz at node N26 and N27: -0.1855 mm.

The command for this is:
clamped=AFFE_CHAR_MECA(... ,FORCE_COQUE=_F(GROUP_MA='shin',PRES=-1/16.64,),);

A few notes:

  • So for both the distributed line and the pressure you need to determine the lenght of the segment and the area where the pressure is being applied.
  • For nodal forces the given force is applied at each node (FORCE_NODALE, FZ, trivial)
  • For a distributed line load the forces is per unit length (FORCE_ARETE, FZ, maybe not so trivial) and
  • For pressure the load is per unit area (FORCE_COQUE, PRES, trivial)
  • The complete command for applying the forces is:
clamped=AFFE_CHAR_MECA(MODELE=modelc,
                     DDL_IMPO=(_F(GROUP_MA='outedge',DX=0.0,DY=0.0,DZ=0.0,),),
                      FORCE_COQUE=_F(GROUP_MA='shin',    PRES=-1/16.64,),);
                     #FORCE_ARETE=_F(GROUP_MA='inedge',  FZ=-1/Linside,),);
                     #FORCE_NODALE=_F(GROUP_NO='node1',  FZ=-1.0,),);
                     #FORCE_NODALE=_F(GROUP_NO='nodes13',FZ=-0.50,),);
                     #FORCE_NODALE=_F(GROUP_NO='nodes4', FZ=-0.25,),);

Displacement picture for single force and 4 forces

In the picture below the insideframe represents the single force on node N25. The green surface represents the four forces on the corner nodes. The other load cases are very much the same as this last one.
Kw deform400.jpg

Writing displacements to a table and text file

The displacements can be written to a file with the following C-A commands:

# define values for printing displacements at four inside corner nodes
meshmod=DEFI_GROUP(reuse =meshmod,
              MAILLAGE=meshmod,
              #CREA_GROUP_MA=_F(NOM='test',GROUP_MA=('outedge',),),
              CREA_GROUP_NO=_F(NOM='nforce',GROUP_NO='nodes4',),
              INFO=2,);
# define table TB_disp
TB_disp=POST_RELEVE_T(ACTION=(_F(OPERATION='EXTRACTION',
                             INTITULE='Displacements',
                             RESULTAT=result,
                             NOM_CHAM='DEPL',
                             TOUT_ORDRE='OUI',
                             GROUP_NO='nforce',
                             NOM_CMP=('DZ',),),),
                             #TOUT_CMP='OUI',
                             #RESULTANTE=('DZ',),),),
                     TITRE='DZ',);
# print displacements to file                       
IMPR_TABLE(TABLE=TB_disp,
         FORMAT='TABLEAU',
         UNITE=26,
         SEPARATEUR=' * ',
         TITRE='displacements at nodes',);

And the result file, defined in ASTK by mast-type, name ./nd3.txt and unit (LU) 26, looks as follows:

#
#---------------------------------------------------------------
#
#displacements at nodes
#DZ                                                                
* INTITULE         * NOEUD    * RESU     * NOM_CHAM         * NUME_ORDRE   * INST         * ABSC_CURV    * COOR_X       * COOR_Y       * COOR_Z       * DZ          
* Displacements    * N25      * result   * DEPL             *            1 *  0.00000E+00 *  0.00000E+00 *  2.30000E+00 *  2.30000E+00 *  0.00000E+00 * -1.85489E-01
* Displacements    * N28      * result   * DEPL             *            1 *  0.00000E+00 *  6.38122E+00 *  7.70000E+00 *  5.70000E+00 *  0.00000E+00 * -1.85486E-01
* Displacements    * N26      * result   * DEPL             *            1 *  0.00000E+00 *  9.78122E+00 *  7.70000E+00 *  2.30000E+00 *  0.00000E+00 * -1.85623E-01
* Displacements    * N27      * result   * DEPL             *            1 *  0.00000E+00 *  1.61624E+01 *  2.30000E+00 *  5.70000E+00 *  0.00000E+00 * -1.85611E-01