Simulating a Tonpilz Piezoelectric Transducer in 3D

In this tutorial we will learn how to simulate a simple 3D Tonpilz transducer in a water load.  We will analyse the acoustic pressure in the water load.

You will learn:

  • The basic simulation workflow in OnScale Designer
  • How to set up a 3D model
  • How to create a simple geometry
  • How to duplicate geometries
  • How to edit material properties
  • How to add circuits into a design
  • How to display and post-process results

What is a Tonpilz Transducer?: The Tonpilz ( a.k.a langevin or acoustic mushroom ) is a type of transducer that is able to achieve a combination of low frequency and high sensitivity in a compact footprint which makes them ideal as projectors for sonar applications.

Model Definition

modeldesc.png

Characteristics of the model

Model:

Tonpilz Transducer 

Mesh Size:

75 um

Analysis Time:

0.00075 s

Output Results:

-Time History of Acoustic Pressure at [0,29.2,0]

-Data Array of Minimum Acoustic Pressure 

-Data Array of Maximum Acoustic Pressure 

Material Data

Name

Code Name

Density 

Bulk Velocity 

Shear Velocity

Poling

Ferroperm PZ26

fpz26

7700 kg.m-3

-

-

Y+

Ferroperm PZ26N

fpz26n

7700 kg.m-3

-

-

Y-

Magnesium, Generic

magn

1740 kg.m-3

5770 ms-1

3050 ms-1

-

Stainless Steel, Generic

stst

7890 kg.m-3

5790 ms-1

3100 ms-1

-

Water at 25C

watr 1000 kg.m-3 1496 ms-1 -
 

Note: All of these materials were taken from the Project Materials Database. However, fpz26n is a copy of the material fpz26 with the poling changed. Copying materials is a useful tool, find out why in this article.

Why This Simulation?

The design of Tonpilz transducers can be tricky as there are a lot of parameters which affect their performance and no solid guidelines for an optimised design. Therefore, it is important that a designer does design studies on these devices.

In this simulation we will excite the piezoelectric stack with the base of the transducer fixed to observe the acoustic pressure wave in the water load.

The Simulation Process

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

Note: You can click on any images to make them bigger.

Step 1 - Create a New Project

Open up OnScale in Designer Mode. The first step is to create a new project.

  1. In the Home tab of the ribbon, click New Project. The New Project window shows.
  2. Type a name for the project.
  3. If desired, change the save location and/or project file name by clicking  beside Project File.
  4. For Analysis, select Mechanical Dynamic.
  5. Select the Advanced checkbox.
  6. For Distance, select mm.
  7. Click OK.
tonpilz-new-project.png

Step 2 - Set the Frequency of Interest

First we will specify the frequency of interest.

  1. Select Project Settings in the Model Tree
  2. Expand the Frequency of Interest property
  3. Tick the box
  4. Enter a value of 200e3
prjctset.png

Step 3 - Add the Materials from the Material DB

The second step is to add the required materials for the tonpilz transducer to the Project Materials database.

Fpz26

Add positively polled piezoelectric material.

  1. Click Project Materials icon to open the Material Database
  2. Expand the 'Piezoelectric' materials dropdown 
  3. Double click 'Ferroperm PZ26 - fpz26' to add this to Project Materials
  4. Expand the 'fpz26' dropdown 
  5. Expand the 'Piezoelectric' properties dropdown
  6. Double click on the Poling value and change it to Y+
prjctmats.png

Fpz26n

Add negatively polled piezoelectric material.

  1. Right click on 'fpz26'
  2. Select Copy
  3. Give duplicate material the name 'fpz26n'
  4. Select OK
  5. Expand 'fpz26n' dropdown
  6. Expand 'Piezoelectric' properties dropdown
  7. Double click on the Poling value and change it to Y-
prjctmats2.png

Magn/Stst/Watr

Now add the screw and head mass materials.

  1. Expand 'Metal' materials dropdown 
  2. Double click on 'Magnesium - magn' to add it to Project Materials
  3. Double click on 'Stainless Steel- stst' to add it to Project Materials
  4. Expand 'Fluid' materials dropwdown
  5. Double click on 'Water - watr' to add it to Project Materials
  6. Select Done to save Project Materials
prjctmats3.png

Step 4 - Create Basic Geometric Shapes

We will make use of the geometric primitives to build the Tonpilz transducer. The transducer geometry consists on a tail mass, 6 ceramic rings, a head mass and a screw to join it all together.

Screw Head

We will start by creating the screw. The first step for this is to add a cylinder primitive using the Home Cylinder button in the Home tab to represent the screw head.

  1. Right click on primitive_1 
  2. Navigate to Assign Material and select 'stst' 
  3. Set the Axis property of primitive_1 to Y 
  4. Set the End property of primitive_1 to 3.7
  5. Set the Radius Begin property to 5.5
  6. Set the Radius End property to 5.5
  7. Right click in the workspace and select Reset View to snap the view to the geometry
prim1.png

Screw Thread

Next we will add another cylinder to represent the screw thread.

  1. Right click primitive_1 and select Duplicate Selection
  2. Right click primitive_2
  3. Navigate to Assign Material and select 'stst'
  4. Set Begin property of primitive_2 to 3.7
  5. Set End property of primitive_2 to 15.7
  6. Set Radius Begin property of primitive_2 to 1.25
  7. Set Radius End property of primitive_2 to 1.25
  8. Right click in the workspace and select Reset View
prim2.png

Screw Tip

Next we will add another cylinder to represent the screw tip.

  1. Right click primitive_2 and select Duplicate Selection
  2. Right click primitive_3
  3. Navigate to Assign Material and select 'stst'
  4. Set Begin property of primitive_3 to 15.7
  5. Set End property of primitive_3 to 16.9
  6. Set Radius Begin property of primitive_3 to 1.25
  7. Set Radius End property of primitive_3 to 0
prim3.png

Piezoelectric Discs

Having completed the screw, we will move on to the stack of 6 piezoelectric discs.

  1. Right click primitive_3 and select Duplicate Selection
  2. Right click primitive_4
  3. Navigate to Assign Material and select 'fpz26'
  4. Set Begin property of primitive_4 to 3.7
  5. Set End property of primitive_4 to 5.7
  6. Set Radius Begin property of primitive_4 to 4
  7. Set Radius End property of primitive_4 to 4
  8. Set Hollow Begin property of primitive_4 to 2
  9. Set Hollow End property of primitive_4 to 2
prim4.png

The second piezoelectric disc is polled in the opposite direction from the first.

  1. Right click primitive_4 and select Duplicate Selection
  2. Right click primitive_5
  3. Navigate to Assign Material and select 'fpz26n'
  4. Set Begin property of primitive_5 to 5.7
  5. Set End property of primitive_5 to 7.7
prim5.png

The third piezoelectric disc is polled in the same direction as the first.

  1. Right click primitive_4 and select Duplicate Selection
  2. Right click primitive_6
  3. Navigate to Assign Material and select 'fpz26'
  4. Set Begin property of primitive_6 to 7.7
  5. Set End property of primitive_6 to 9.7
prim6.png

The fourth piezoelectric disc is polled in the same direction as the second.

  1. Right click primitive_5 and select Duplicate Selection
  2. Set Begin property of primitive_7 to 9.7
  3. Set End property of primitive_7 to 11.7
prim7.png

The fifth piezoelectric disc is polled in the same direction as the first and third.

  1. Right click primitive_6 and select Duplicate Selection
  2. Set Begin property of primitive_8 to 11.7
  3. Set End property of primitive_8 to 13.7
prim8.png

The last piezoelectric disc is polled in the same direction as the second and fourth.

  1. Right click primitive_7 and select Duplicate Selection
  2. Set Begin property of primitive_9 to 13.7
  3. Set End property of primitive_9 to 15.7
prim9.png

Head Mass

The last part of the transducer to add is the head mass. 

  1. Right click primitive_9 and select Duplicate Selection
  2. Right click primitive_10
  3. Navigate to Assign Material and select 'magn'
  4. Set Begin property of primitive_10 to 15.7
  5. Set End property of primitive_10 to 21.7
  6. Set Radius Begin property of primitive_10 to 4
  7. Set Radius End property of primitive_10 to 7
  8. Set Hollow Begin property of primitive_10 to 0
  9. Set Hollow End property of primitive_10 to 0
primitive_10.png

Water Load

The final part of the model is the water load which can be added using the cuboid primitive.

  1. Click on Cuboid icon 
  2. Set Material property to 'watr'
  3. Set X Begin property of primitive_11 to -15
  4. Set Y Begin property of primitive_11 to 21.7
  5. Set Z Begin property of primitive_11 to -15
  6. Set X End property of primitive_11 to 15
  7. Set Y End property of primitive_11 to 36.7
  8. Set Z End property of primitive_11 to 15
  9. Right click in the workspace and select Reset View
primitive_11.png

Step 5 - Define a Time Function

The next step is to add a drive function. We will use a Sinusoidal time function with a frequency of 2e5 Hz.

  1. Click '+' to open the Drive Function dialogue
  2. Set Drive Frequency to 200e3
  3. Click Insert to close the window. A record called timefunc_1 will be added to the Model Tree
drive.png

Step 6 - Define a Circuit

It is now time to define a circuit.

  1. Click '+' to open the Circuit dialogue
  2. Select the line between points 2 and 3
  3. Double click on Resistor
  4. Select the resistor in the circuit diagram
  5. Set resistance to 50 ohms
  6. Select Insert to close window. A record called circuit_1 will be added to the Model Tree
circ.png

Step 7 - Choose The Right Mesh Size

It is time to set up the meshing of the model. 

  1. Expand Model in the Model Tree
  2. Select Configuration
  3. Set Definitions to Advanced
  4. Set Elements per Wavelength to 20
mesh.png

Step 8 - Create Voltage Loads on Discs

We will now create loads on each side of the piezoelectric discs. There will be a total of seven loads.

  1. In the Model Tree, expand Boundary Conditions and then, beside Loads, click +.
  2. For Creation Mode, select Geometry Interface.
  3. For Geometry, select a primitive via the dropdown or click it in the model (see table below).
  4. For Interfacing Item, select a primitive via the dropdown or click it in the model (see table below).
  5. For Load Type, select Voltage.
  6. For loads 2, 4 and 6, select circuit_1 for Circuit.
  7. Set Termination (see table below).
  8. Click Create Load.
tonpilz-loads.png

Repeat steps 3 through to 8 until you've created all seven loads.

Load

Geometry

Interfacing Item

Termination

1

primitive_1

primitive_4

Ground

2

primitive_4

primitive_5

timefunc_1

3

primitive_5

primitive_6

Ground

4

primitive_6

primitive_7

timefunc_1

5

primitive_7

primitive_8

Ground

6

primitive_8

primitive_9

timefunc_1

7

primitive_9

primitive_10

Ground

Step 9 - Define the Boundary Conditions

We need to change the boundary conditions so that the tail of the transducer is fixed and the water load has absorbing boundaries.

  1. Click Domain Boundaries in the Model Tree
  2. Set X Minimum to Absorbing
  3. Set X Maximum to Absorbing
  4. Set Y Minimum to Fixed
  5. Set Y Maximum to Absorbing
  6. Set Z Minimum to Absorbing
  7. Set Z Maximum to Absorbing
bound.png

Step 10 - Define the Type of Analysis 

We will now set the model simulation time to be 0.1ms seconds

  1. Click Analysis 
  2. Change Simulation Run Time to 0.0001
analysis.png

Step 9 - Define the Simulation Output Results

We will now define 3 outputs, a time history of the acoustic pressure in the middle of the water load will be recorded as well as the maximum and minimum pressure arrays.

Output Result 1 : Field Data Array of Minimum Acoustic Pressure

  1. Click '+' to create a new output
  2. Set Output Type to Field Data
  3. Set Field Type to Minimum
out1.png

Output Result 2 : Field Data Array of Maximum Acoustic Pressure

  1. Click '+' to create a new output
  2. Set Output Type to Field Data
  3. Set Field Type to Maximum
out2.png

Output Result 3: Time History Graph of Acoustic Pressure at (0,29.2,0)

  1. Click '+' to create a new output
  2. Expand Location dropdown
  3. Set Y Location to 29.2 

Step 12 - Run the Simulation 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. Select Estimate 
  3. Select Run
estimate.png

How to Get the Simulation Results?

Once the simulation has finished, the results are available in your storage to download.

  1. Click the Storage icon to open the cloud storage
  2. Select your job from the dropdown menu
  3. Expand the simulation folder
  4. CTRL + select the flxdato & flxhst file, right click and select Download Selection
download.png

Choose an appropriate save location and close the cloud storage.

Step 13 - Check the Simulation Results

Switch to the Post Processor 

  1. Click this icon to access the Post Processor to analyse simulation results

Open Results 

  1. Click File Explorer
  2. Expand the job simulation folder. Double click the data out file to open the field data results
  3. Double click the history file to open the time history results
openres.png

Plot Time History (Acoustic Pressure in Middle of Water)

  1. Double click 'aprs' to plot acoustic pressure time history
  2. Set Plot Title to Acoustic Pressure at Center of the water load
  3. Change maximum value of xAxis to 0.0001
timehist.png

Plot Data Array (Maximum Pressure)

  1. Double click 'apmx' in the Data Out section of the Results Manager to plot maximum pressure data field
  2. Select Continue to plot 'apmx' to workspace
plotfield.png

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 of your own.