Skip to content

MUTs 002 - Piezocomposite transducer

In this example case, 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 combines a soft PZT with an epoxy filler with a 40% volume fraction. The piezocomposite sits on a backing layer, and utilizes a 1/4 wavelength matching layer for better coupling into the water load. The centre element of the array 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

Example image

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:

NameDescriptionExpression
frequencyFrequency [Hz]1.25e6
ncyclesNumber of cycles5
npillarsNumber of pillars5
thick_compComposite thickness [m]1e-3
kerfCut width [m]0.15e-3
pitchDistance between cuts [m]0.4e-3
pillarPillar width [m]pitch-kerf
widthElement width [m]npillars*pitch - kerf
  1. Go the Geometry section.

  2. Start building the model geometry by adding Box elements:

    NameElement typeCenter point [m]Size [m]Rotation [deg]
    pztBoxX: 0X: widthX: 0
    Y: 0Y: widthY: 0
    Z: thick_comp/2Z: thick_compZ: 0
    NameElement typeCenter point [m]Size [m]Rotation [deg]
    cut xBoxX: 0X: widthX: 0
    Y: -width/2 + kerf/2 + pillarY: kerfY: 0
    Z: thick_comp/2Z: thick_compZ: 0
    NameElement typeCenter point [m]Size [m]Rotation [deg]
    cut yBoxX: -width/2 + kerf/2 + pillarX: kerfX: 0
    Y: 0Y: widthY: 0
    Z: thick_comp/2Z: thick_compZ: 0
  3. Use the Translate operation to copy the cuts in X and Y directions:

    NameElement typeTargetTranslation [m]CopyRepeat count
    copy xTranslationcut y volume (25)X: pitchYesnpillars - 2
    Y: 0
    Z: 0
    NameElement typeTargetTranslation [m]CopyRepeat count
    copy yTranslationcut x volume (13)X: 0Yesnpillars - 2
    Y: pitch
    Z: 0
  4. Use the Union operation to merge all the multiplied cuts to a single volume:

    NameElement typeTarget
    combine polymerUnioncut volumes (13, 25-31)
  5. Confirm model changes.

Finished geometry:

Example image

Go to the Physics section to define model materials.

Assign PZT to the piezoelectric pillars.

There are 25 of them in total. To save some clicks:

  1. Select all volumes
  2. Remove the epoxy filler volume (2) from your selection.

Example image

Create a new material for the epoxy filler:

MaterialTarget
EpoxyPolymer filler volume (2)

Define properties for Epoxy:

PropertyValueUnits
Density1134kg/m3\rm kg/m^3
Elasticity matrixPoisson’s ratio: 0.37-
Young’s modulus: 3.831e9Pa\rm Pa
Electric permittivity4*epsilon0F/m\rm F/m

Example image

Go to the Physics section.

The Elastic waves and Electrostatics physics are required for this example. Add both of them before moving on to define interactions.

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

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

    InteractionTargetConstraint value
    ConstraintBottom surface of the element0

    Example image

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

    InteractionTargetVoltage
    Lump V/QTop surface of the elementwavelet(frequency, 1.2)

    Example image

Go to the Simulations section and create a new mesh:

  1. Set Mesh quality to Expert settings.
  2. Set Used mesher to Basic.
  3. Set Max size to kerf.
  4. Apply settings and mesh.
  5. Check the preview:

Example image

In the Simulations section, create a new simulation:

  • Set Analysis type to Transient.

  • Select timestepping options:

    Timestep algorithmStart time [s]End time [s]Timestep size [s]
    Generalized alpha0ncycles/frequency1/frequency/20
  • Select the mesh.

  • Add Outputs:

    Output typeNameOutput expressionSkin only
    FieldDisplacement field uuYes
    Custom valueVoltagelump.V
    Custom valueCurrentdt(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:

    Example image

  • Current:

    Example image

  • Displacement field:

    Example image