HASEL actuator model

Levi_TynanLevi_Tynan Member Posts: 10
edited January 21 in Structures

Hey guys,

I've been working on modelling the HASEL actuator, specifically the peano HASEL actuator ( demonstrated in the following video). https://www.youtube.com/watch?v=-TKjJBZEZe4

I'm having trouble matching my simulated results with the practical results. before showing how I modelled the HASEL actuator below in Fig 1. shows how the HASEL actuator should look when it is 'fully strained'.

Fig 1. the desired result that I want to simulate

I modelled the HASEL actuator in 2D with 3 element types as shown in Fig 2. below

Fig 2. PLANE183 to represent the pouch (shown by the white board around the actuator)

HSFLD241 to represent the fluid (shown in purple)

TRANS126 to represent the electrodes force on the actuator (shown in red)

the mesh seems to me be good, with a few exceptions at the ends of the actuator.

My issue is when I solve the model I can never quite reach the 'full strain' which is effecting my results giving zero displacement where the load would be attached Fig 3.

Fig 3. a contour plot of the x displacement for the HASEL after a voltage has been applied. The red circle is were the load would be attached and the red square is the corresponding contour displacement value.

No matter what is do I can not reach that full strain or get any reasonable strain at the load.

I even tried using the 'penalty method' to set the electrodes final displacement to the 'fully strained' position and I got the same result.

I seem to have reached some sort of limit with either the PLANE183 or the HSFLD241 that I can't exceed.

Please let me know if anything isn't clear.

Any help will be much appreciated.




  • Levi_TynanLevi_Tynan Member Posts: 10

    Here are the files that I have been running

    First with the transducer elements supplying the force and  then with the penalty method setting the electrode displacement.

  • dloomandlooman Forum Coordinator Posts: 54

    The retraction of the acuator is a large deflection effect and the input has the nlgeom command commented out. With nlgeom,on the model won't converge so that may be the reason it is commented out. The plane183 mesh is very poor due to the thinness of the geometry. This may contribute to the convergence difficulty. A shell element would be more appropriate for such thin geometry (after converting the model to 3D by giving it a unit depth. ) Applying the pressure gradually over many steps may be necessary also. The analysis of thin membranes under internal pressure is always difficult and not always possible. A command like STABILIZE may help.

  • Levi_TynanLevi_Tynan Member Posts: 10

    Thanks dlooman,

    Yes, I had to comment out the 'nlgeom,on' because it was highly distorted my geometry.

    I did think of the thinness of the model and recently tried to do the simulation BEAM element.

    I was able to mesh with 'nlgeom,on' working.

    however the issue now is the contact stiffness of the TRANS126 is not taking over when the beam element reaches the 'minimum gap' as described in the TRANS126 element description. No matter what I change the beam elements just pass right through each other and thus the electrode can't 'zip', as shown in the figure below. Even when I try to add a contact element it still does nothing.

    Should I try it with the 3D shell model? Is it more compatible with contact stiffness? Or is there something wrong with the way I have used the TRANS126 element?

    Here are all the codes associated with the TRANS element (the scale is in umks units)

     pouch_thickness = 20

     pouch_width = 100e3


    permittivity_of_air = 8.85e-6

     relative_permittivity = 2.1

     permittivity = relative_permittivity*permittivity_of_air

    MP, PERX, electrode_mat, permittivity !


    LSEL,S, , ,    6 




    LSEL,S, , ,    7



    *do,i, 1, no_of_coup_pairs,

    CMGRP, ELECT_COUP_%i%,Elect1

    *do,j, 2, no_of_elect

    CMEDIT, ELECT_COUP_%i%, add, Elect%j%



    *do,i, 1,no_of_elect, 



    *get, n_count_elect, node,, COUNT,

    *DIM, initial_ny%i%, ARRAY, n_count_elect, 

    *VGET, electrode%i%_nodes, NODE, , nlist,

    *do, j, 1, n_count_elect,

    initial_ny%i%(j)= ny(electrode%i%_nodes(j))



    ET, electrode_mat,TRANS126  








    TYPE,  electrode_mat  

    MAT, electrode_mat

    ESYS,    0  


    ! 3.4.1. Divide into Elements

    *do,i, 1, no_of_coup_pairs,

    ii= i+1


    *do,j, 1, n_count_elect, 

    trans_I_node= electrode%i%_nodes(j)

    trans_J_node= electrode%ii%_nodes(j)


    GAPMIN= pouch_thickness

    area= ARNODE(trans_I_node)*pouch_width

    KN= pouch_Ex*pouch_width*area/pouch_thickness

    C0= -permittivity*area!/scale_m

    r, electrode_mat+j-1, , , GAP, GAPMIN, KN, ,

    rmore, C0, !C1, C2, C3, C4





    Thanks for all the help


  • Levi_TynanLevi_Tynan Member Posts: 10

    Hey dlooman,

    I just noticed that my material don't have a contact coefficients defined accept for the stiffness constant defined in with the TRANS126 element. Would that effect the contact force of the elements or should the TRANS126 stiffness be enough?


  • Levi_TynanLevi_Tynan Member Posts: 10

    Hey dlooman,

    I realized the TRANS126 was backwards, so I switched the nodes around and the contact stiffness for the element now seem to be working.

    I now seem to just have an issue of converging all the model with all the TRANS126 forces involved.

    Here the latest file I've been using

    If there are any suggestion to help with the convergence it would be much appreciated


Sign In or Register to comment.