This is a modelling guide to help you get started simulating Piezoelectric Micromachined Ultrasonic Transducers (PMUTs) in OnScale. In this initial example you will be shown how to get the membrane displacement a basic 2D PMUT model created using the symbol language.
Since device design parameters affect performance, performing a parameter study when designing a PMUT is useful when considering the effect on performance. You can also optimize your design for key performance characteristics.
2D PMUT is simulated to study the effect of AlN thickness and substrate thickness on maximum film displacement.
What is symbol?: Check out these articles to get more familiar with OnScale's scripting language symbol.
Model Description
A 2D Axi-symmetric PMUT with water load. The PMUT consists of a thin Aluminium Nitride (AlN) diaphragm sandwiched between two Molybdenum electrodes formed on a Silicon substrate.
Download and Open the Model
OnScale Input Files have the file extension *.flxinp. To open the downloaded file:
- Open OnScale
- Select Analyst Mode
- Select the Menu button in the top left of the application
- Select Open
Preview Model
Preview model is used to view the geometry dimensions and material assignment of a model to ensure the script is correct. To preview a model, select the Preview Model icon in the Home tab of the application ribbon.
Note: Preview model will display data from any grph commands that come before the prcs command. If you have more than one grph command, you can cycle through the graphics by continuously selecting Preview Model. To close the preview, select Stop Preview.
Run Model on Cloud
To run the model on the cloud, select the Run on Cloud button in the Home tab of the application and follow these steps:
- Set End Value of piezo_thk to 2e-6
- Set number of Simulations of piezo_thk to 10
- Set End Value of subs_rad to 2.3e-5
- Set number of Simulations of subs_rad to 10
- Select Estimate
- Select Run
Download Results
- From the Home tab, select the Storage icon
- Select the Refresh icon to refresh storage
- Select the Job Name from the dropdown menu
- Select the Download button
- Select Download All
Choose a directory to download the results to. These results will be stored in the folder: PMUT_2D-YYYYMMDD-HHMMSS\ where YYYYMMDD-HHMMSS is the current date and time.
Switch to Post Processor
Post Processor is a suite of tools used to visualise and analyse output data generated from OnScale simulations. Switch to Post Post Processor.
What kind of analysis can I do in Post Processor? Find out here.
Analyse Results
Post Processor
To plot the membrane displacement of the PMUT device, follow these steps:
- In File Explorer, navigate to the download directory, expand folder Simulation 10 and double click the file 'PMUT_2D.flxhst' to open it
- Repeat Step 1 for files in Simulation 20, 30 and 40
- In the Home tab, select Configure Viewport > 2_1 and click the first viewport
- Select top viewport by clicking inside of it
- In Results Manager, select ydsp by double-clicking it to plot the first curve, and select FFT record in the Home tab.
- Repeat Steps 5 for the second, third and fourth curves
- Click on plot legend and name the curves
- piezo_thk=100 nm
- piezo_thk = 111 nm
- piezo_thk = 122 nm
- piezo_thk = 133 nm
- Select bottom viewport by clicking inside of it
- In Results Manager, select ydsp.ma by double-clicking it.
- Repeat Steps 9 for the second, third and fourth curves
- Click on plot legend and name the curves
Batch Post-Processing
Dealing with large data-sets is usually easier in a code based processing package such as MATLAB. This is why we have created a MATLAB script which calculates maximum membrane displacement for all simulations.
- Navigate to the directory which the MATLAB Files where downloaded to
- Right click the MATLAB Files folder and select Extract All > Extract
- Open the MATLAB Files folder and copy the contents into the PMUT_2D-YYYYMMDD-HHMMSS directory where all of the simulation folders are
- Open MaxDisp.m in MATLAB
- Select Run
Note: If you don't have MATLAB, similar results can be displayed using Octave, Python etc.
What's Next?
Simulate a Full 3D PMUT Array