2D Axi-symmetric Simulation of a Piezoelectric Micromachined Ultrasonic Transducer (PMUT)

This tutorial will show you how to create a simple Piezoelectric Micromachined Ultrasonic Transducer (PMUT) with an Aluminum Nitride active layer with top/bottom electrodes residing in a Silicon substrate and operating into a water load.

You will learn:

  • The Basic Simulation Workflow in Onscale Designer
  • How to set up a 2D axi-symmetric model
  • How to create a simple geometry
  • How to simulate piezoelectric materials
  • How to display and post-process your results

What is a PMUT?: A PMUT is a piezoelectric micromachined ultrasonic transducer. PMUTs are based on the flexural motion of a thin membrane coupled with a thin piezoelectric film. Unlike bulk piezo transducers that operate in the thickness mode

Why This Simulation?

Micromachined ultrasonic transducers (MUTs) are one application where MEMs miniturization is expected to offer significant advantages over current devices.

Fabrication of thin film structures is a time consuming and costly process. Using OnScale can help bring this expense down.

This tutorial will demonstrate how easy it is to build and simulate PMUTs in OnScales designer mode.

It is a 2D axi-symmetric model, which means that our model will be in 2D, but it will be transformed by the solver into a 3D model by automatically revolving the 2D model around the given Symmetry Axis (Y-Axis here).

Step by Step Video Tutorial

Here is a video in which all the process of simulation has been recorded:

Note: The Designer interface has changed slightly since this video was recorded. The text that follows has been updated to reflect the interface changes.

If you prefer a full text-based tutorial, follow the steps indicated in the following section 4.

The Simulation Process

Let's go through the step by step tutorial and see how to simulate this PMUT in OnScale!

Step 1 - Create a New Project

  1. Click New Project to open the New Project window.
  2. Name the project PMUT_2D.
  3. If desired, change the save location and/or project file name by clicking beside Project File.
  4. For Analysis, select Mechanical Dynamic.
  5. For Model Type, select 2D Axi-Symmetric Model (Y).

    Warning: You can't change the axis of symmetry later, so be sure to select Y here and not X!

  6. Select the Advanced checkbox.
  7. For Distance, select μm.
  8. Click OK.

Step 2 - Add the Materials from the Material DB

This tutorial will make use of a project material file please download the attached file and save/move it to the same working directory as the project file.

Click the link below to download the material file needed for this tutorial.

Download: Material file

  1. Click Project Materials to open the Materials Database window
  2. Click the red arrow icon and select Import User Project Materials From File and locate pmut.prjmat (you may need to change your file type in the filer explorer to .prjmat to find it)
  3. Expand aln and change the poling direction to Y+in the piezoelectric properties
  4. Click Done 

Step 3 - Create Basic Geometry Shapes

We will make use of the geometric primitives available in Designer. We will use 6 Rectangle primitives.

Primitive 1

  1. Click Rectangle 
  2. Change Material to si
  3. Set End (μm): X (μm) = 32.5 and Y (μm) = 7.5

Note: After making changes to X and Y right-click the workspace and select Reset View

Primitive 2

  1. Right click primitive_1 and select Duplicate Selection this will create primitive_2
  2. Change Material to void
  3. Set Begin (μm): Y (μm) = 3
  4. Set End (μm): X (μm) = 22.5 and Y (mm) = 6

Primitive 3

  1. Right click primitive_2 and select Duplicate Selection this will create primitive_3
  2. Change Material to moly
  3. Set Begin (μm): Y (μm) = 6
  4. Set End (μm): Y (μm) = 6.25

Primitive 4

  1. Right click primitive_3 and select Duplicate Selection this will create primitive_4
  2. Change Material to aln
  3. Set Begin (μm): Y (μm) = 6.25
  4. Set End (μm): Y (μm) = 7.25

Primitive 5

  1. Right click primitive_4 and select Duplicate Selection this will create primitive_5
  2. Change Material to moly
  3. Set Begin (μm): Y (μm) = 7.25
  4. Set End (μm): Y (μm) = 7.5

Primitive 6

  1. Right click primitive_1 and select Duplicate Selection this will create primitive_6
  2. Change Material to watr
  3. Set Begin (μm): Y (μm) = 7.5
  4. Set End (μm): Y (μm) = 20

Step 4 - Change Project Settings

This example will use a frequency of interest of 30MHz. We will adjust the project settings to make use of this.

  1. Click Project Settings
  2. Expand Frequency of Interest (enable it by clicking the toggle box)
  3. Set Value (Hz) = 3e7

Step 5 - Define a Time Function

We will now add a Ricker Wavelet drive function for later use as out loads require a time function be set.

  1. Time '+'
  2. Change Ricker Wavelet
  3. Set Value (Hz) = 3e7
  4. Click Insert 
  5. timefunc_1 is added to the model tree

Step 6 - Add a Damping Circuit

A circuit will be added to damp the response.

  1. Click '+' to open the Define Circuit Definition window
  2. Click Element_0 
  3. Click Resistor to add that component to the circuit
  1. Click Element_1
  2. Set the resistance of the component to 50 
  3. Click Insert

Step 7 - Choose the right Mesh Size

We will use the Basic mesh settings in Medium as defaulted.

Step 8 - Create the two electrodes

This model needs two loads as it is a piezoelectric model. The top electrode will drive the model and the bottom will be connected to ground.

Load 1

  1. In the Model Tree expand Boundary Conditions and, beside Loads, click +.
  2. For Creation Mode, select Geometry Interface.
  3. For Geometry, select primitive_3 (moly) or click it in the model.
  4. For Interfacing Item, select primitive_4 (aln).
  5. For Load Type, select Voltage.
  6. For Termination, select Ground.
  7. Click Create Load.

Load 2

The Load Definition window should still be open.

  1. For Geometry, select primitive_5 (moly) or click it in the model.
  2. For Interfacing Item, select primitive_4 (aln).
  3. For Circuit, select circuit_1.
  4. For Termination, select timefunc_1.
  5. Click Create Load.

Step 9 - Define the Boundary Conditions 

We will need to change the X minimum boundary condition to Symmetry as this model is symmetrical along that axis.

  1. Click Domain Boundaries
  2. Change X Minimum to Symmetry 
  3. Change X Maximum to Free
  4. Change Y Minimum to Fixed
  5. Change Y Maximum to Absorbing

Step 10 - Define the Analysis Simulation Time

We will now set the model simulation time to be 1e-6 seconds

  1. Click Analysis 
  2. Set Simulation Run Time (s) to 1e-6

Step 11 - Define the Output Results

Two outputs will be defined 

Output 1

  1. Click '+' to add the output record output_1 to the tree
  2. Change Output Type to Time History
  3. Change Array Type to Displacement 
  4. Change Array Component to Y
  5. Change Location (μm): Y to 7.5 (it defaults to the project working units)

Output 2

  1. Click '+' to add the output record output_2 to the tree
  2. Change Output Type to Shape Data
  3. Change Array Type to Displacement 
  4. Change Array Component to Y
  5. Change Frequency to 5e6 Hz

Step 12 - Run the Model on the Cloud

At this point the model is completely set up and it can now be run on the cloud.

  1. Click Run on Cloud 
  2. The option to rename your job. This is how it will appear in the storage
  3. Click Estimate 
  4. Click Run

Downloading Simulation Results 

The simulation results will need to be downloaded from the cloud storage in order to analyse the results in the post processor. More experience users may also be able to process Time Histories in Review.

  1. Click Storage this opens the window shown above
  2. Locate the job 
  3. Click Download
  4. Click Download all

Choose an appropriate save location when the file explorer pops up and click Select Folder to close the window.

Step 13 - Check the Simulation Results

Switch to the Post Processor 

  1. Click this icon to access the Post Processor 


Open Results 

  1. Click File Explorer
  2. Expand the folder containing the results just downloaded, double click the PMUT_2D.flxhst
  3. Double click the PMUT_2D-shape.flxdato
  4. Click Results Manager

Plot Mode Shape (Y Displacement)

  1. Expand the tabs
  2. Double click ydsp to plot the mode shape
  3. Click Animated Plot 
  4. Change Scale Factor to 0.05
  5. Change Number of Loops to 3
  6. Click Play. Watch your Mode Shape 

Plot Time History

  1. Click Reset Viewport
  2. Click Reset Current Viewport
  3. Double click ydsp
  4. Set Plot Title to Y-Displacement on Top Electrode
  5. Set Y-Axis Label to Displacement

Try for Yourself 

Now that we have introduced you to the tutorial try have a play around with some of the settings, add some other outputs, or use this model as a starting point for your own.