Randomised material parameter piezoelectric impedance dataset with structured electrodes (RaPIDstruc)
Description
Description of the dataset
This dataset contains the results of 652517 finite-element simulations of the complex, frequency-dependent electrical impedance of a piezoelectric disc with structured electrodes and randomised material parameters. Each impedance consists of 1500 samples in the frequency domain up to 9.37 MHz. The electrode structure is the result of a topology optimisation process with the aim to enhance the sensitivity of the impedance with respect to all material parameters (DOI: 10.5194/jsss-12-163-2023). The piezoelectric disc has a radius of 5 mm and a thickness of 1 mm. The transverse isotropic material parameters are sampled from independent uniform distributions with ranges that are intended to represent the behaviour of hard as well as soft piezoceramic materials. The parameters of the Rayleigh damping model (alpha_M and alpha_K) are sampled from a logarithmic distribution to account for the larger parameter range.
Parameter | Min | Max | Unit | Description |
c11 | 115 | 150 | GPa | Elastic stiffness |
c12 | 70 | 110 | GPa | Elastic stiffness |
c13 | 65 | 95 | GPa | Elastic stiffness |
c33 | 95 | 125 | GPa | Elastic stiffness |
c44 | 18 | 25 | GPa | Elastic stiffness |
eps11 | 5 | 18 | nF/m | Dielectric permittivity |
eps33 | 6 | 12 | nF/m | Dielectric permittivity |
e15 | 7 | 19 | C/m^2 | Piezoelectric coupling |
e31 | 1 | 7.5 | C/m^2 | Piezoelectric coupling |
e33 | 13 | 23 | C/m^2 | Piezoelectric coupling |
alpha_M | 2 | 150 | 1/ms | Mass-proportional damping |
alpha_K | 0.1 | 0.65 | ns | Stiffness-proportional damping |
density | 7600 | 7850 | kg/m^3 | Density |
Files
The dataset contains the following files:
- dataset.hdf5: The main dataset file in HDF5 format. Refer to the next section on how to load the dataset.
- simulation.xml: The file describing the parameters of the finite element simulation. This file can be used with openCFS along with the mesh and material file to simulate the behaviour of the piezoelectric ceramic in the frequency domain. This simulation file was used with randomised material parameters to generate the dataset.
- material.xml: The material file used for the simulation with exemplary material parameters values.
- piezo.geo: The gmsh geometry file with the axisymmetric representation of the piezoelectric disc and the electrode structure.
- piezo.msh: The mesh file generated with gmsh using the piezo.geo file.
Loading the dataset
The dataset is stored as a HDF5 file, which can be opened with all libraries that support that format, e.g. in Python using the h5py library:
import h5py
# Open the dataset in read mode.
file = h5py.File("dataset.hdf5", "r")
# Impedances as a 652517 x 1500 array of complex numbers.
impedances = file["impedances"]
# Material parameter values as a 652517 x 13 array of real numbers.
parameters = file["parameters"]
# Frequency vector of the impedance with length 1500.
frequencies = file["meta"]["frequencies"]
# 13 strings with the identifiers of the material parameters.
parameter_labels = file["meta"]["parameter_labels"]
Simulating impedances
To generate a result for the electrical impedance using the supplied simulation files, download and install openCFS and call the executable with the simulation.xml, but omit the file extension, e.g.:
cfsbin.exe simulation
The path to the executable of openCFS will depend on your operating system and installation. Running the simulation will result in the creation of several files and folders. Among those files will be the result for the electric charge on one of the electrodes of the sample, which will be placed in the 'history' subfolder. We can determine the current by taking the time derivative of the charge and already know the voltage because we excited the piezoceramic with an electric potential of 1 V in the simulation. Because the simulation is conducted in the frequency regime, all we have to do is to divide voltage by current to get the frequency dependent electrical impedance. The loading of the result and calculation of the impedance is implemented in the following Python script as an example:
import numpy as np
# Load result file for electric charge
result_path = 'history/simulation-elecCharge-surfRegion-ground.hist'
data = np.loadtxt(result_path)
frequency = data[:, 0]
# Convert polar representation from file to complex numbers.
charge = data[:, 1] * np.exp(1j * 2 * np. pi / 360 * data[:, 2])
# Excitation potential is 1 V in simulation.
potential = 1
# Determine impedance by applying Z = V / I = V / (j omega Q).
impedance = potential / (1j * 2 * np.pi * frequency * charge)
Files
material.xml
Files
(15.7 GB)
Name | Size | Download all |
---|---|---|
md5:8fc0150441de54857d77842383ba4dbe
|
15.7 GB | Download |
md5:ba321113646135bd0db010635b04662b
|
1.3 kB | Preview Download |
md5:f6448e99463ec3f46b4f0a7da7d67bfb
|
918 Bytes | Download |
md5:08d463ffd75bbe535d9721e810637843
|
16.4 kB | Download |
md5:6e98860fc5fb99a642a650cdce1fd725
|
2.8 kB | Preview Download |
Additional details
Related works
- Cites
- Publication: 10.5194/jsss-12-163-2023 (DOI)