Skip to content

Piezocomposite transducer

Prerequisites: complete the PMUT Unit cell - Ultrasound 001 tutorial first.

In this example, a piezocomposite ultrasound transducer is simulated. Their main application is in medicine, where they are used for ultrasound imaging and medical therapeutics. Other applications include sonar and non-destructive testing.

The model captures a single element of a 1-3 piezocomposite linear array. The piezocomposite element combines a soft PZT with an epoxy filler with a 40% volume fraction. It is driven with a short voltage pulse to allow the wideband behaviour, or impulse response, of the device to be captured. Key outputs are:

  • Drive voltage and current
  • Pressure in the load
  • Electrical impedance

Demo project: Piezocomposite demo V1

1-3 piezocomposite transducer element with its PZT pillar array

Here you’ll find a simplified, example case level guide for setting up a piezocomposite transducer simulation in Quanscient Allsolve.

Start out in the Common sidebar by defining variables.

Name Description Expression
frequency Frequency [Hz] 1.25e6
ncycles Number of cycles 5
npillars Number of pillars 5
thick_comp Composite thickness [m] 1e-3
kerf Cut width [m] 0.15e-3
pitch Distance between cuts [m] 0.4e-3
pillar Pillar width [m] pitch-kerf
width Element width [m] npillars*pitch - kerf
minvel Minimum acoustic wave velocity in the model (epoxy shear) [m/s] 1110
epw Number of elements per wavelength 4
element_size Mesh element max size [m] minvel/freq/epw

You can import the variables as a CSV file:

Name,Expression,Description
freq,1.25e6,Frequency [Hz]
ncycles,5,Number of cycles
npillars,5,Number of pillars
thick_comp,1e-3,Composite thickness [m]
kerf,0.15e-3,cut width [m]
pitch,0.4e-3,Distance between cuts [m]
pillar,pitch-kerf,pillar width [m]
width,npillars*pitch-kerf,Element width [m]
minvel,1110,Minimum acoustic wave velocity in the model (epoxy shear) [m/s]
epw,4,Number of elements per wavelength
element_size,minvel/freq/epw,Mesh element max size [m]
  1. Start building the model geometry by adding Box elements with Alignment = Corner:

    Name Element type Corner point [m] Size [m] Rotation [deg]
    pzt Box X: 0 X: width X: 0
    Y: 0 Y: width Y: 0
    Z: 0 Z: thick_comp Z: 0
    Name Element type Corner point [m] Size [m] Rotation [deg]
    cut x Box X: 0 X: width X: 0
    Y: pillar Y: kerf Y: 0
    Z: 0 Z: thick_comp Z: 0
    Name Element type Corner point [m] Size [m] Rotation [deg]
    cut y Box X: pillar X: kerf X: 0
    Y: 0 Y: width Y: 0
    Z: 0 Z: thick_comp Z: 0
  2. Use the Translate operation to copy the cuts in X and Y directions:

    Name Element type Target Translation [m] Copy Repeat count
    copy x Translation cut y X: pitch Yes npillars - 2
    Y: 0
    Z: 0
    Name Element type Target Translation [m] Copy Repeat count
    copy y Translation cut x X: 0 Yes npillars - 2
    Y: pitch
    Z: 0
  3. Use the Union operation to merge all the multiplied cuts to a single volume:

    Name Element type Target
    combine polymer Union copy x and copy y assemblies (all cut volumes)
  4. Confirm model changes.

Finished geometry:

Finished piezocomposite geometry with 25 pillars in epoxy filler

Go to the Physics section to define model materials.

Add PZT from the library and assign it to the piezoelectric pillars:

  1. Go to Target -> Pick with rule -> Select all volumes as target
  2. Remove the epoxy filler volume from the selection by clicking on the model view.
  3. Add the final target with 25 pillars as a region.

PZT region covering the 25 pillars, with the epoxy filler excluded

  1. Create a new material for the epoxy filler:

    Material Target
    Epoxy Polymer filler volume
  2. Define material properties for Epoxy:

    Property Value Units
    Density 1134 kg/m3\rm kg/m^3
    Elasticity matrix Poisson’s ratio: 0.37
    Young’s modulus: 3.831e9 Pa\rm Pa
    Electric permittivity 4*epsilon0 F/m\rm F/m
  3. Add the target as a region.

Epoxy filler region and its material properties

The Elastic waves and Electrostatics physics are required for this example. Add both of them to your physics set before defining interactions, in order to couple them together.

  • Let elastic waves target default to the whole geometry.
  • Add the Elastic waves - Electrostatics coupling Piezoelectricity.
    • Select the PZT region as target. Piezoelectricity coupling targeting the PZT region
  • Let Electrostatics target default to the whole geometry.

  • Add a Constraint interaction which acts as a ground on the bottom surface:

    Interaction Target Constraint value
    Constraint Bottom surface of the whole element 0

    Ground constraint on the bottom surface of the element

  • Add a Lump V/Q interaction which drives a voltage on the top surface with wavelet:

    Interaction Target Voltage
    Lump V/Q Top surface of the element wavelet(frequency, 1.2)

    Lump V/Q driving the top surface with a wavelet voltage

Go to the Simulations section to create a new mesh with basic settings.

  1. In mesh settings, convert mesh element size to Absolute.
  2. Set mesh element max size to element_size (defined as minvel/freq/epw in Step 1).
  3. Run meshing.
  4. Check the preview:

Basic mesh preview with mesh metrics

Using a single mesh element max size for the model is OK, but can be inefficient if you have a large area of ‘fast’ material which will be overmeshed. A Mesh refinement customization can be added for each material independently to maintain accuracy and efficiency.

You can also create a mesh using an Autotransfinite mesh customization. Autotransfinite is designed for blocky geometries laid out in a XYZ-aligned grid, so it is a great option for the PZT pillars in this case.

Mesh with autotransfinite on PZT and refinement on epoxy
Example mesh using autotransfinite and mesh refinement customizations. Autotransfinite is targetting the PZT region, and refinement is targetting epoxy, with both sizes set as element_size.

In the Simulations section, create a new simulation:

  • Set Analysis type to Transient.

  • Select timestepping options:

    Timestep algorithm Start time [s] End time [s] Timestep size [s]
    Generalized alpha 0 ncycles/freq 1/freq/20
  • Select a mesh.

  • Add Outputs:

    Output type Name Output expression Skin only
    Field Displacement field u u Yes
    Custom value Voltage lump.V
    Custom value Current dt(lump.Q)

Your simulation is now ready to run.

In the Simulations section, you can add plots to see value output results and visualizations to see field output results.

  • Voltage:

    Drive voltage plotted over time

  • Current:

    Drive current plotted over time

  • Displacement field:

    Displacement field animation of the vibrating pillars