In this article, I will describe how to understand and visualize correctly the results coming out of a PMUT ultrasonic sensor simulation in the OnScale Post-processing Mode.
What is a PMUT?
Piezoelectric Micromachined Ultrasonic Transducer (PMUT) are MEMS-based piezoelectric ultrasonic transducers. Unlike bulk piezoelectric transducers which are typically thickness mode resonators, PMUTs are based on the flexural motion of a thin film membrane formed on silicon substrates.
PMUTs are a good alternative for conventional bulk piezoelectric transducers because of their high operational frequencies, small element size, low power consumption and ease of fabrication of large array for imaging and communication applications due to their micro electromechanical system (MEMS) silicon-based fabrication.
PMUT can be simulated with OnScale either in full 3D or with a 2D Axi-symmetric model
All the results I will show you afterwards come from the 2D Axi-symmetric model that you can create by following the tutorial available here
How to understand and visualize correctly the results coming out of a PMUT ultrasonic sensor simulation with OnScale?
Once the PMUT model has been calculated and the results are downloaded on your computer from the cloud, you will need to go in the post-process mode to visualize the results.
Unfortunately, it is not always obvious to understand the results that you get out of such a PMUT simulation.
Check the explanation in video here:
You can download the model that I am showing in the video here.
Let’s review the important steps that I mentioned in the video:
1- The units of the results
The first question you will probably have is “What are the units of the results I am looking at in the post-processing?”
The answer to this question is: “S.I. Units”
While this is not written anywhere, all the results which are displayed are in S.I. Units. So in the case of acoustic pressure for example, the unit is Pa (Pascals), which are basically N.m2.
2- Activate the “User defined data range”
By default, the colors defined for each time step change dynamically in function of the maximum and minimum value at the current time step.
There are several problems with that:
- If there is a small area in the model which has consistently a value much higher than all areas in the model, then that area will be very visible, but other areas in which the value measured is lower may all be compressed into one and unique color… making a big part of what happens in your model invisible!
- If the maximum value changes a lot between each time step, then the colors will change in non-coherent ways, hiding again the physics of what is happening.
The best way to correct that is to set up your own “User Defined Range” and fix the maximum and minimum value at values which will allow you to uncover the physics.
In the OnScale post-process, you will find this option in the “Plot Controls” window which is usually located at the bottom left of the screen:
To give you an example, the maximum value displayed in “red and blue circles” of the acoustic pressure (aprs) generated by the propagation of the acoustic wave into the medium in the picture below is only visible when the maximum aprs value is set to a value less than 5e3.
This is due to the fact that the acoustic pressure inside the PMUT piezo electric material on the left is much higher than anywhere else in the model and that hides the acoustic pressure changes generated by the wave propagation inside the water material.
3- Understand the right positions to monitor the results
One of the most useful results you can get from OnScale are “Time History” Results.
Setting up such a Time History result is equivalent to putting a little probe in your model which will monitor a certain type of result that you choose and provide you with the value of that result according to time.
It is important to choose good monitoring points in order to measure the acoustic wave signal and calculate the data that you want to get.
For this PMUT simulation, I chose the following 3 locations:
4- How to calculate the distance to an obstacle?
One of the main applications of ultrasonic sensors in general is to measure the distance to an obstacle.
This distance can be calculated simply by using the formula that every college student knows:
D = v * t
D, the distance between the sensor and the object, is equal to the velocity v of propagation of the wave inside the medium multiplied by the time it takes to reach the object.
The time t can be easily calculated by measuring the difference between the signal sent at the sensor location and at the obstacle location.
As the medium is water, the velocity v of the wave in water is equal to the bulk velocity of water defined into the material properties (1496 m/s at 25 degrees C)
In this example, the distance calculated is equal to 106.6 um
5- Understanding the data coming out of the “snapshot” type of result
If you define an output data of the type “snapshot” for a specific result such as acoustic pressure, you will get the acoustic pressure field exported at a certain number of time steps.
The time steps are defined as the number of “frames” chosen in the “Runtime graphics” window.
It works like this:
If you chose to output 250 frames in the runtime graphics and your total time is 1e-6 s, then each “frame” will correspond at an interval of 4e-9 seconds.
So, if you are looking at the 24th time step for example, you are looking at the results at t = 24*4e-9 = 1e-8 s
I agree that this should be expressed a bit better in the graphical interface by displaying somewhere the current value of the time step!
A quick word of conclusion
There are various types of result that can be extracted from an OnScale model.
The first step is to understand what you are looking at and where the result has been extracted (especially for Time history curves)
The next step is to understand the unit used and set up the correct range of the color map to allow you to visualize more graphically what happens.
The last step you might consider is to extract more results and eventually create some scripts to process results and output other types of results that you might require.
You can either use a review script to do that or you can export the results in text format and process them with python or Matlab.
If this is useful for you, please leave a comment and let me know
Thank you so much for reading!
I hope it helps