SDT-piezo         Contents     Functions         Next     PDF Index

2.6  Methods for meshing 3D objects with piezoelectric elements

The procedure to mesh 3D objects containing piezoelectric materials is slightly different from the plate examples. The basic procedure consists in the first step in meshing explicitly both the piezoelectric and the mechanical parts, and associating 3D piezoelectric and mechanical material properties to them. The second step is to define independent electrodes on specific surfaces belonging to the piezoelectric elements, which in essence, specifies electrical equipotentiality on those surfaces. The third step is to assign specific electrical boundary conditions on the unique degree of freedom associated to each equipotential surface. Note that for plate elements, there is a single electrical dof associated to a piezoelectric layer which represents the difference of potential between the top and bottom electrodes, while here each electrode can have its own shape, orientation, and electrical boundary condition.
In order to illustrate this procedure, we take the example of a piezoelectric accelerometer treated in Section 2.7. The geometry of the different elements is represented in Figure 2.38 and the material properties are given in Tables 2.6 and  2.5.


Figure 2.38: Basic design of a piezoelectric accelerometer working in the longitudinal mode


PartMaterialE (GPa)ρ (kg/m3)ν
Wear plateAl2O340039650.22
Sensing elementPiezo5477400.44
Proof massSteel21078000.3
Table 2.5: Mechanical properties of the wear plate, sensing element and proof mass


PropertyValue
d31=d32-185  10−12 pC/N (or m/V)
d33440  10−12 pC/N (or m/V)
d15=d24560  10−12 pC/N (or m/V)
є33T22T11T1850 є0
є08.854 10−12 Fm−1
Table 2.6: Piezoelectric properties of the sensing element

We first mesh the different elements and assign the material properties:

%% Step 1 Mesh and material properties
model=feutil('object quad 1 1',[0 0 0;5 0 0;0 0 3],4,2);
model=feutil('object quad 2 2',model,[0 0 3;2.5 0 0;0 0 1],2,2);
model=feutil('object quad 4 4',model,[0 0 4;5 0 0;0 0 10],4,6);
model=feutil('Rev 20 o 0 0 0 360 0 0 1',model);
model.Node(:,5:7)=model.Node(:,5:7)/1000; % SI
model.unit='SI';

% Define material properties
model.pl=[ ...
   % Elastic base - typical properties of Alumine
   1 fe_mat('m_elastic','SI',1) 4e11 0.22 3965 zeros(1,25);
   % Piezo properties, see sdtweb('m_piezo#Database')
    m_piezo('dbval 2 -elas 3 SONOX_P502_iso');
   % Steel backmass
   m_elastic('dbval 4 steel') zeros(1,24)];

model=p_solid('default;',model);
model.name='Base Accel';

The second and third step can be done with a single call to p_piezo . Here for example, the bottom electrode is grounded (V=0) and a voltage sensor is assigned to the top electrode:

%% Step 2 : Electrodes and boundary conditions
% See sdtweb p_piezo#ElectrodeMPC

% Build MPCs defining a single potential for the electrodes

   % -vout requests a voltage sensor at the top electrode (z==0.004)
model=p_piezo('ElectrodeMPC Top sensor -vout',model,'z==0.004');

  % -ground generates a v=0 FixDof case entry for the bottom electrode (z==0.003)
model=p_piezo('ElectrodeMPC Bottom sensor -ground',model,'z==0.003');

A charge sensor would be defined with the following command:

  % -matID2 requests a charge sensor for material 2
model=p_piezo('ElectrodeMPC Top sensor -MatID2',model,'z==0.004');

And it is possible to define a voltage sensor and a charge sensor together:

  % Both charge and voltage actuator
model=p_piezo('ElectrodeMPC Top sensor -MatID2 -vout',model,'z==0.004');

Note however that if a charge sensor is defined, it is necessary to block the associated electrical dof, otherwise the measured charge will be zero, which is done with the following command:

   % block electrical dof for charge sensing

model=fe_case(model,'FixDof','V=0 on Top Sensor', ...
    p_piezo('electrodedof Top sensor',model));

The piezoelectric element can also be used as an actuator with the following command:

   % Both charge and voltage sensing on the top electrode
model=p_piezo('ElectrodeMPC Top Actuator -input "Vin"',model,'z==0.004');

In all cases, we have considered that the bottom electrode is grounded, and for the top electrode, we can either impose an applied voltage, or measure the output voltage and/or charge. A fourth possibility is to impose a charge to the actuator instead a voltage, which can be done using the conventional fe_load command for mechanical loads, but applied to the electrical dof of the top electrode. If a voltage sensor has already been defined for the top electrode:

   % Charge actuation
data=struct('DOF',p_piezo('electrodedof Top sensor',model),'def',1);
  model=fe_case(model,'DofLoad','q-IN',data);

To remove one of the sensor/actuator cases, simply use (for example for the top voltage actuator who's name is "Vin":

% Remove case "Vin" - top voltage actuator
model=fe_case(model,'Remove','Vin')

©1991-2023 by SDTools
Previous Up Next