We’re updating our badges platform. Badge issuance is temporarily paused, but all completions are being recorded and will be fulfilled once the platform is live. Thank you for your patience.
Electronics

Electronics

Topics related to HFSS, Maxwell, SIwave, Icepak, Electronics Enterprise and more.

How to get the linearity in frequency response of piezoelectric transducer?

    • safiana
      Subscriber

      I am trying to model a piezoelectric sensor in ANSYS and I would like to get the frequency response of the sensor to calculate its usable frequency range and linearity. I first tried using harmonic analysis through the mode superposition method. I get a frequency response that includes the natural frequency and a linear range can be obtained through this plot. But I realized, this method is not accurate because the resistant element (CIRCU94) is ignored in the mode superposition method (please correct me if I am wrong). By changing the resistance value, the amplitude does not change. We need to have resistance to model charge dissipation, otherwise this open circuit voltage that does not properly change with excitation frequency won't give me an accurate frequency range and linearity. Please see the following plot:

       

      Then I used full harmonic analysis which I could see the effect of resistance in my voltage. But my expecation was that at least for low frequencies in the frequency response I see nonlinear behavior, and once the frequency increases, a more linear behavior in the voltage should be observed like this:

      Piezoelectric Sensor - an overview | ScienceDirect Topics

       

      But  what I get from the full harmonic analysis is this for low frequencies up to 500 Hz:

       

      I am sure over frequencies like 20 Hz there must be almost a linear voltage amplitude. 

      I attached my code for mode superposition and full harmonic. Can anyone check where I am making a mistake? or this is correct? The bottom of the PZT sensor is fixed, and excitation is from the top. The middle disc is PZT and I selected the top node at the end of the code to easily get results for this node. 

       

      I hope someone can help me soon because I need to report this simulation very soon. Thank you in advance, everyone! 

      Mode superposition:

      finish
      /clear
       
      /PREP7  
      et,1,solid226,0 
      keyopt,1,1,1001
      allsel
       
      /com Stiffness
      TB, ANEL, 1 , 1 , 0
      TBDATA, 1, 1.327E+5 , 0.866E+4 , 0.856E+4
      TBDATA, 7, 1.327E+5 , 0.856E+4
      TBDATA, 12, 1.192E+5
      TBDATA, 16, 2.12E+4
      TBDATA, 19, 2.12E+4
      TBDATA, 21, 2.99E+4
       
      /com Piezo matrix
      TB,PIEZ,1,,,1
      TBDATA, 3, -1.86e-10
      TBDATA, 6, -1.86e-10
      TBDATA, 9, 4.00e-10
      TBDATA, 11, 6.17e-10
      TBDATA, 13, 6.17e-10
       
      /com Permittivity
      tb,DPER,,,,1 ! Relative permittivity at const 
      tbdata,1,1852,1852,1751
      TB,DPER,1,,,1852,1852,1751,1
      EMUNIT, EPZRO, 8.85E-15
      MP, DENS, 1 , 7.8e-9
       
       
      !==============================================
      et,2,solid185
      MP,EX,2,350e3 
      MP,PRXY,2,0.22  
      MP,DENS,2,3.9e-9 
      MP,BETD,2,1e-4
      !==============================================
      CYL4,0,0,2.5, , , ,1.5  
      BLC4,0,-1.25,7.1,2.5,1.5
      VSBV,       2,       1  
      CYL4,0,0,2.5, , , ,1.5  
      vglue,all
      k,21,0,0,1.5
      csys,4
      wpcsys,-1,0
      kwpave,21
      CYL4,0,0,1.5, , , ,2  
      k,,0,0,2
      kwpave,26
      CYL4,0,0,1.5, , , ,1.5
      csys,4
      wpcsys,-1,0
      save
      !==============================================
      Type,2
      Mat,2
      esize,0.3
      SMRT,1
      vsweep,2
      vsweep,4
      vsweep,3
       
      Type,1
      Mat,1
      vsweep,1
      save
      !================================================
      DA,7,all,0
      DA,18,all,0
       
      lsel,s,,,39,42
      DL,all,,ux,0
      DL,all,,uy,0
      allsel
       
       
      asel,s,,,1
      lsla,s
      ksll,s
      nsla,s
      nsll,a
      nslk,a
      !D,all,volt,0
      cp,next,volt,all
      *get,n_ground,node,0,num,min
      allsel
       
      asel,s,,,2
      lsla,s
      ksll,s
      nsla,s
      nsll,a
      nslk,a
      cp,next,volt,all
      *get,n_supply,node,0,num,min
      allsel
       
      d,n_ground,volt,0
      !======= CONTACT ==========
      /COM, CONTACT PAIR CREATION - START 
      CM,_NODECM,NODE 
      CM,_ELEMCM,ELEM 
      CM,_KPCM,KP 
      CM,_LINECM,LINE 
      CM,_AREACM,AREA 
      CM,_VOLUCM,VOLU 
      /GSAV,cwz,gsav,,temp
      MP,MU,1,
      MAT,1   
      MP,EMIS,1,7.88860905221e-31 
      R,3 
      REAL,3  
      ET,3,170
      ET,4,174
      R,3,,,1.0,0.1,0,
      RMORE,,,1.0E20,0.0,1.0, 
      RMORE,0.0,0,1.0,,1.0,0.5
      RMORE,0,1.0,1.0,0.0,,1.0
      RMORE,,,,,,1.0  
      KEYOPT,4,4,0
      KEYOPT,4,5,0
      KEYOPT,4,7,0
      KEYOPT,4,8,0
      KEYOPT,4,9,0
      KEYOPT,4,10,0   
      KEYOPT,4,11,0   
      KEYOPT,4,12,5   
      KEYOPT,4,14,0   
      KEYOPT,4,18,0   
      KEYOPT,4,2,0
      KEYOPT,3,5,0
      KEYOPT,4,1,5
      ! Generate the target surface   
      ASEL,S,,,17  
      CM,_TARGET,AREA 
      TYPE,3  
      NSLA,S,1
      ESLN,S,0
      ESLL,U  
      ESEL,U,ENAME,,188,189   
      NSLE,A,CT2  
      ESURF   
      CMSEL,S,_ELEMCM 
      ! Generate the contact surface  
      ASEL,S,,,1  
      CM,_CONTACT,AREA
      TYPE,4  
      NSLA,S,1
      ESLN,S,0
      NSLE,A,CT2 ! CZMESH patch (fsk qt-40109 8/2008) 
      ESURF   
      ALLSEL  
      ESEL,ALL
      ESEL,S,TYPE,,3  
      ESEL,A,TYPE,,4  
      ESEL,R,REAL,,3  
      /PSYMB,ESYS,1   
      /PNUM,TYPE,1
      /NUM,1  
      EPLOT   
      ESEL,ALL
      ESEL,S,TYPE,,3  
      ESEL,A,TYPE,,4  
      ESEL,R,REAL,,3  
      CMSEL,A,_NODECM 
      CMDEL,_NODECM   
      CMSEL,A,_ELEMCM 
      CMDEL,_ELEMCM   
      CMSEL,S,_KPCM   
      CMDEL,_KPCM 
      CMSEL,S,_LINECM 
      CMDEL,_LINECM   
      CMSEL,S,_AREACM 
      CMDEL,_AREACM   
      CMSEL,S,_VOLUCM 
      CMDEL,_VOLUCM   
      /GRES,cwz,gsav  
      CMDEL,_TARGET   
      CMDEL,_CONTACT  
      /COM, CONTACT PAIR CREATION - END   
      APLOT   
      !*  
      !*  
      /COM, CONTACT PAIR CREATION - START 
      CM,_NODECM,NODE 
      CM,_ELEMCM,ELEM 
      CM,_KPCM,KP 
      CM,_LINECM,LINE 
      CM,_AREACM,AREA 
      CM,_VOLUCM,VOLU 
      /GSAV,cwz,gsav,,temp
      MP,MU,1,0   
      MAT,1   
      MP,EMIS,1,7.88860905221e-31 
      R,4 
      REAL,4  
      ET,5,170
      ET,6,174
      R,4,,,1.0,0.1,0,
      RMORE,,,1.0E20,0.0,1.0, 
      RMORE,0.0,0,1.0,,1.0,0.5
      RMORE,0,1.0,1.0,0.0,,1.0
      RMORE,,,,,,1.0  
      KEYOPT,6,4,0
      KEYOPT,6,5,0
      KEYOPT,6,7,0
      KEYOPT,6,8,0
      KEYOPT,6,9,0
      KEYOPT,6,10,0   
      KEYOPT,6,11,0   
      KEYOPT,6,12,5   
      KEYOPT,6,14,0   
      KEYOPT,6,18,0   
      KEYOPT,6,2,0
      KEYOPT,5,5,0
      KEYOPT,6,1,5
      ! Generate the target surface   
      ASEL,S,,,2  
      CM,_TARGET,AREA 
      TYPE,5  
      NSLA,S,1
      ESLN,S,0
      ESLL,U  
      ESEL,U,ENAME,,188,189   
      NSLE,A,CT2  
      ESURF   
      CMSEL,S,_ELEMCM 
      ! Generate the contact surface  
      ASEL,S,,,11
      CM,_CONTACT,AREA
      TYPE,6  
      NSLA,S,1
      ESLN,S,0
      NSLE,A,CT2 ! CZMESH patch (fsk qt-40109 8/2008) 
      ESURF   
      ALLSEL  
      ESEL,ALL
      ESEL,S,TYPE,,5  
      ESEL,A,TYPE,,6  
      ESEL,R,REAL,,4  
      /PSYMB,ESYS,1   
      /PNUM,TYPE,1
      /NUM,1  
      EPLOT   
      ESEL,ALL
      ESEL,S,TYPE,,5  
      ESEL,A,TYPE,,6  
      ESEL,R,REAL,,4  
      CMSEL,A,_NODECM 
      CMDEL,_NODECM   
      CMSEL,A,_ELEMCM 
      CMDEL,_ELEMCM   
      CMSEL,S,_KPCM   
      CMDEL,_KPCM 
      CMSEL,S,_LINECM 
      CMDEL,_LINECM   
      CMSEL,S,_AREACM 
      CMDEL,_AREACM   
      CMSEL,S,_VOLUCM 
      CMDEL,_VOLUCM   
      /GRES,cwz,gsav  
      CMDEL,_TARGET   
      CMDEL,_CONTACT  
      /COM, CONTACT PAIR CREATION - END   
       
      !============================================================
      /prep7
      ET,7,CIRCU94
      R,5,1, , , , ,
      RMORE, , , , , ,
      RMORE, , , ,
      type,7
      real,5
      E,n_ground,n_supply 
      !============================================================
      /solu
      ANTYPE,2 
      MODOPT,LANB,50 
      EQSLV,SPAR 
      MODCONT,ON 
      MXPAND,50, , ,0,,YES  
      SFA,12,1,PRES,1/7.069
      LUMPM,0 
      PSTRES,0 
      MODOPT,LANB,50,0,4e10, ,OFF 
      /solu
      SOLVE 
      finish 
      !============================================================
       
      !===========================================================
      /solu
      ANTYPE,3 
      HROPT,MSUP, , ,0
      HROUT,ON
      LUMPM,0  
      HROPT,MSUP,all, ,0
      HROUT,ON,OFF,0 
      LVSCAL,1,1 
       
       
      HARFRQ,0,4e5,
      NSUBST,4e2,
      KBC,1    
      !BETAD,1e-6, 
      DMPRAT,0.03 
      MDAMP,1, , , , , , ,  
      SOLVE  
       
      save,pzt_harmonic,db
      finish
      save
      /SOLU
      EXPASS,1 ! Harmonic Analysis Expansion Pass
      NUMEXP,ALL,0,4e5,0 ! Frequency range
      HREXP,ALL, 
      SOLVE  
       
      nsel,s,,,n_supply

       

      Full harmonic analysis: 

      finish
      /clear
       
      /PREP7  
      et,1,solid226,0 
      keyopt,1,1,1001
      allsel
       
      /com Stiffness
      TB, ANEL, 1 , 1 , 0
      TBDATA, 1, 1.327E+5 , 0.866E+4 , 0.856E+4
      TBDATA, 7, 1.327E+5 , 0.856E+4
      TBDATA, 12, 1.192E+5
      TBDATA, 16, 2.12E+4
      TBDATA, 19, 2.12E+4
      TBDATA, 21, 2.99E+4
       
      /com Piezo matrix
      TB,PIEZ,1,,,1
      TBDATA, 3, -1.86e-10
      TBDATA, 6, -1.86e-10
      TBDATA, 9, 4.00e-10
      TBDATA, 11, 6.17e-10
      TBDATA, 13, 6.17e-10
       
      /com Permittivity
      tb,DPER,,,,1 ! Relative permittivity at const 
      tbdata,1,1852,1852,1751
      TB,DPER,1,,,1852,1852,1751,1
      EMUNIT, EPZRO, 8.85E-15
      MP, DENS, 1 , 7.8e-9
       
       
      !==============================================
      et,2,solid185
      MP,EX,2,350e3 
      MP,PRXY,2,0.22  
      MP,DENS,2,3.9e-9 
      MP,BETD,2,1e-4
      !==============================================
      CYL4,0,0,2.5, , , ,1.5  
      BLC4,0,-1.25,7.1,2.5,1.5
      VSBV,       2,       1  
      CYL4,0,0,2.5, , , ,1.5  
      vglue,all
      k,21,0,0,1.5
      csys,4
      wpcsys,-1,0
      kwpave,21
      CYL4,0,0,1.5, , , ,2  
      k,,0,0,2
      kwpave,26
      CYL4,0,0,1.5, , , ,1.5
      csys,4
      wpcsys,-1,0
      save
      !==============================================
      Type,2
      Mat,2
      esize,0.3
      SMRT,1
      vsweep,2
      vsweep,4
      vsweep,3
       
      Type,1
      Mat,1
      vsweep,1
      save
      !================================================
      DA,7,all,0
      DA,18,all,0
       
      lsel,s,,,39,42
      DL,all,,ux,0
      DL,all,,uy,0
      allsel
       
       
      asel,s,,,1
      lsla,s
      ksll,s
      nsla,s
      nsll,a
      nslk,a
      !D,all,volt,0
      cp,next,volt,all
      *get,n_ground,node,0,num,min
      allsel
       
      asel,s,,,2
      lsla,s
      ksll,s
      nsla,s
      nsll,a
      nslk,a
      cp,next,volt,all
      *get,n_supply,node,0,num,min
      allsel
       
      d,n_ground,volt,0
      !======= CONTACT ==========
      /COM, CONTACT PAIR CREATION - START 
      CM,_NODECM,NODE 
      CM,_ELEMCM,ELEM 
      CM,_KPCM,KP 
      CM,_LINECM,LINE 
      CM,_AREACM,AREA 
      CM,_VOLUCM,VOLU 
      /GSAV,cwz,gsav,,temp
      MP,MU,1,
      MAT,1   
      MP,EMIS,1,7.88860905221e-31 
      R,3 
      REAL,3  
      ET,3,170
      ET,4,174
      R,3,,,1.0,0.1,0,
      RMORE,,,1.0E20,0.0,1.0, 
      RMORE,0.0,0,1.0,,1.0,0.5
      RMORE,0,1.0,1.0,0.0,,1.0
      RMORE,,,,,,1.0  
      KEYOPT,4,4,0
      KEYOPT,4,5,0
      KEYOPT,4,7,0
      KEYOPT,4,8,0
      KEYOPT,4,9,0
      KEYOPT,4,10,0   
      KEYOPT,4,11,0   
      KEYOPT,4,12,5   
      KEYOPT,4,14,0   
      KEYOPT,4,18,0   
      KEYOPT,4,2,0
      KEYOPT,3,5,0
      KEYOPT,4,1,5
      ! Generate the target surface   
      ASEL,S,,,17  
      CM,_TARGET,AREA 
      TYPE,3  
      NSLA,S,1
      ESLN,S,0
      ESLL,U  
      ESEL,U,ENAME,,188,189   
      NSLE,A,CT2  
      ESURF   
      CMSEL,S,_ELEMCM 
      ! Generate the contact surface  
      ASEL,S,,,1  
      CM,_CONTACT,AREA
      TYPE,4  
      NSLA,S,1
      ESLN,S,0
      NSLE,A,CT2 ! CZMESH patch (fsk qt-40109 8/2008) 
      ESURF   
      ALLSEL  
      ESEL,ALL
      ESEL,S,TYPE,,3  
      ESEL,A,TYPE,,4  
      ESEL,R,REAL,,3  
      /PSYMB,ESYS,1   
      /PNUM,TYPE,1
      /NUM,1  
      EPLOT   
      ESEL,ALL
      ESEL,S,TYPE,,3  
      ESEL,A,TYPE,,4  
      ESEL,R,REAL,,3  
      CMSEL,A,_NODECM 
      CMDEL,_NODECM   
      CMSEL,A,_ELEMCM 
      CMDEL,_ELEMCM   
      CMSEL,S,_KPCM   
      CMDEL,_KPCM 
      CMSEL,S,_LINECM 
      CMDEL,_LINECM   
      CMSEL,S,_AREACM 
      CMDEL,_AREACM   
      CMSEL,S,_VOLUCM 
      CMDEL,_VOLUCM   
      /GRES,cwz,gsav  
      CMDEL,_TARGET   
      CMDEL,_CONTACT  
      /COM, CONTACT PAIR CREATION - END   
      APLOT   
      !*  
      !*  
      /COM, CONTACT PAIR CREATION - START 
      CM,_NODECM,NODE 
      CM,_ELEMCM,ELEM 
      CM,_KPCM,KP 
      CM,_LINECM,LINE 
      CM,_AREACM,AREA 
      CM,_VOLUCM,VOLU 
      /GSAV,cwz,gsav,,temp
      MP,MU,1,0   
      MAT,1   
      MP,EMIS,1,7.88860905221e-31 
      R,4 
      REAL,4  
      ET,5,170
      ET,6,174
      R,4,,,1.0,0.1,0,
      RMORE,,,1.0E20,0.0,1.0, 
      RMORE,0.0,0,1.0,,1.0,0.5
      RMORE,0,1.0,1.0,0.0,,1.0
      RMORE,,,,,,1.0  
      KEYOPT,6,4,0
      KEYOPT,6,5,0
      KEYOPT,6,7,0
      KEYOPT,6,8,0
      KEYOPT,6,9,0
      KEYOPT,6,10,0   
      KEYOPT,6,11,0   
      KEYOPT,6,12,5   
      KEYOPT,6,14,0   
      KEYOPT,6,18,0   
      KEYOPT,6,2,0
      KEYOPT,5,5,0
      KEYOPT,6,1,5
      ! Generate the target surface   
      ASEL,S,,,2  
      CM,_TARGET,AREA 
      TYPE,5  
      NSLA,S,1
      ESLN,S,0
      ESLL,U  
      ESEL,U,ENAME,,188,189   
      NSLE,A,CT2  
      ESURF   
      CMSEL,S,_ELEMCM 
      ! Generate the contact surface  
      ASEL,S,,,11
      CM,_CONTACT,AREA
      TYPE,6  
      NSLA,S,1
      ESLN,S,0
      NSLE,A,CT2 ! CZMESH patch (fsk qt-40109 8/2008) 
      ESURF   
      ALLSEL  
      ESEL,ALL
      ESEL,S,TYPE,,5  
      ESEL,A,TYPE,,6  
      ESEL,R,REAL,,4  
      /PSYMB,ESYS,1   
      /PNUM,TYPE,1
      /NUM,1  
      EPLOT   
      ESEL,ALL
      ESEL,S,TYPE,,5  
      ESEL,A,TYPE,,6  
      ESEL,R,REAL,,4  
      CMSEL,A,_NODECM 
      CMDEL,_NODECM   
      CMSEL,A,_ELEMCM 
      CMDEL,_ELEMCM   
      CMSEL,S,_KPCM   
      CMDEL,_KPCM 
      CMSEL,S,_LINECM 
      CMDEL,_LINECM   
      CMSEL,S,_AREACM 
      CMDEL,_AREACM   
      CMSEL,S,_VOLUCM 
      CMDEL,_VOLUCM   
      /GRES,cwz,gsav  
      CMDEL,_TARGET   
      CMDEL,_CONTACT  
      /COM, CONTACT PAIR CREATION - END   
       
      !============================================================
      /prep7
      ET,7,CIRCU94
      R,5,1e6, , , , ,
      RMORE, , , , , ,
      RMORE, , , ,
      type,7
      real,5
      E,n_ground,n_supply 
      !============================================================
      /solu
      ANTYPE,2 
      MODOPT,LANB,50 
      EQSLV,SPAR 
      MODCONT,ON 
      MXPAND,50, , ,0,,YES  
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!SFA,12,1,PRES,1/7.069
      LUMPM,0 
      PSTRES,0 
      MODOPT,LANB,50,0,4e10, ,OFF 
      /solu
      SOLVE 
      finish 
      !============================================================
      /solu
      asel,s,,,12
      nsla,s
      nsel,r,loc,x,-0.25,0.25
      nsel,r,loc,y,-0.25,0.25
      *get,n_force,node,0,num,min
      allsel
      f,n_force,fz,-1
      !===========================================================
      /SOL 
      ANTYPE,3
      HROPT,FULL  
      HROUT,ON
      LUMPM,0  
      EQSLV, ,0,  
      PSTRES,0
      HARFRQ,0,500,  
      NSUBST,100,  
      KBC,0    
      DMPRAT,0.1
      MDAMP,1, , , , , , ,  
      solve
       
      vsel,s,,,1
      eslv,s
      nsle,s

       

    • wrbulat
      Ansys Employee

      Hi there,

      I have not yet tested your code and I don't see the post processing commands used to create the xy plots you sent so I'm not sure exactly what they're plots of, but I made one possibly significant observation. You used a KBC,0 command in your full harmonic response calculation. This linearly ramps excitation over the frequency sweep. So the z component force you applied to n_force is ramped from zero to -1 over the frequency range. Does using KBC,1 (which will step the force to its full value starting at the beginning frequency in your sweep) give the response you expect?

      --Bill

Viewing 1 reply thread
  • The topic ‘How to get the linearity in frequency response of piezoelectric transducer?’ is closed to new replies.