Contents     Functions              PDF Index

## 6.6Handling models with piezoelectric materials

### 6.6.1  Theoretical elements

For piezo-electric shell elements, electric DOF correspond to the difference of potential on the electrodes while the corresponding load is the charge.

For volume elements, one defines multiple point constraints to enforce equal potential on nodes linked by a single electrode and sets one of the electrodes to zero potential (see section 6.6.3 for an example and  section 6.1.5 for constitutive law information). During assembly the constraints are eliminated and the resulting model has electrical DOFs that correspond to differences of potential and loads to charge.

One thus generally considers models of the form

[
 ZCC(s) ZCV ZVC ZVV
] {
 qmech V
} = {
 Fmech Q
}     (6.103)

Open circuit (sensor), data(j1,2)=1, configurations correspond to cases where the charge remains zero and a potential is created on the electrodes due to mechanical deformations. It is then desirable to condense the electrical DOFs and define a sensor to measure the potential. A piezoelectric actuator driven using a charge amplifier would correspond to this configuration (but actuators are normally voltage driven).

Closed circuit, data(j1,2)=0, configurations correspond to cases where the potential is forced to zero (the electrical circuit is shorted). This corresponds to a case where the potential (electrical DOF) is fixed and the charge corresponds to the resulting force associated with this boundary condition. A piezoelectric voltage driven actuator is in this configuration.

model=p_piezo('Assemble',model) implements a manipulation of the model to eliminate the electrode DOFs and define the voltage sensors, for the open circuit case, and charge sensor and potential actuator, for the closed circuit case, as SensDof and DofLoad entries in the revised model stack. The calls are illustrated in the examples below.

The 'info','Electrode' entry is a structure with fields

• .data rows NodeId IsOpen gives the electrode nodes and for each one 1 if the circuit is open (sensor), and 0 if it is closed (actuator).
• .def .DOF, .lab_in only needed when combining multiple electrodes into a single input.

Each column gives the weighting coefficients associated with each electrode. Thus def=[1;0;1] corresponds to a single equal input on electrodes 1 and 3. Note that it does not make sense to combine electrical DOFs that are of mixed nature (actuator/sensor).

The .DOF field should contain NodeId+.21 since the potential corresponds to DOF .21.

The .lab_in field can be used to provide labels associated with each actuator/sensor defined as a column of def. You should end the label with V so that the collocated sensor ends with a Q label.

• .cta .lab (optional) can be used to combine electrodes into sensors / actuators. Each row of .cta defines a sensor (with matching .lab). Each column corresponds to an electrode declared in the .data field. You cannot combine open and closed circuit electrodes. It is possible to use both a .cta and a .def field.

### 6.6.2  Sample plate with 4 piezo patches

This example was generated in collaboration with the ULB Active Structures Laboratory. It corresponds to a cantilevered composite plate with 4 piezo patches modeled using the p_piezo Shell formulation.

The following generates the 4 transfers between voltage input on the pairs of piezo patches and total charge output on the same pairs.

```cf=ULB_plate_pzt('model feplot')  % creates the model
% define the electrode state
ULB_plate_pzt('cantileverclosed',cf); %sdtweb ULB_plate_pzt('cantilever')
% combine electrodes 2 by 2
cf.Stack{'Electrodes'}.def=[1 -1 0 0;0 0 1 -1]';
cf.Stack{'Electrodes'}.lab_in={'UaV';'UbV'};
cf.Stack{'Electrodes'}.data(3:4,2)=0; % All in voltage actuation mode
cf.mdl=stack_set(cf.mdl,'info','DefaultZeta',.01);

[sys,TR]=fe2ss('free 5 10 0 -dterm',cf.mdl);

qbode(sys,linspace(30,300,512)'*2*pi,'iiplot "Closed"');
iicom submagpha

% Display response at a particular frequency
cf.Stack{'info','Freq'}=1;cf.def(1)=fe_simul('dfrf',cf);

% Other configuration with combined voltage input and combined voltage output
cf.Stack{'Electrodes'}.def=[1 -1 0 0]'; % Actuator
cf.Stack{'Electrodes'}.lab_in={'UaV'};
cf.Stack{'Electrodes'}.cta=[0 0 1 -1]; % Sensor
cf.Stack{'Electrodes'}.lab={'UbV'};
cf.Stack{'Electrodes'}.data(3:4,2)=1; % short circuit sensor

[sys2,TR2]=fe2ss('free 5 10 0 -dterm',cf.mdl);
qbode(sys2,linspace(30,300,512)'*2*pi,'iiplot "Mixed"');
cf.Stack{'info','Freq'}=1;cf.def(2)=fe_simul('dfrf',cf);
fecom(';show2def;scaleequal;scc-3000;view3')
% Note the slight different associated to change to OC in sensor

```

One can look at the level of piezoelectric coupling by comparing the modal frequencies with the electrical circuits open or closed. One can see that modal frequencies are shifted down in the closed circuit case (where the difference of potential is set to 0).

```model=ULB_plate_pzt('model')  % creates the model
mo1=ULB_plate_pzt('cantileveropen',model);d1=fe_eig(mo1,[5 20 1e3]);
mo2=ULB_plate_pzt('cantileverclosed',model);d2=fe_eig(mo2,[5 20 1e3]);

r1=[d1.data(1:end)./d2.data(1:end)];
figure(1);plot(r1,'+');axis tight
xlabel('Mode number');ylabel('F_{OC}/F_{CC}');
```

### 6.6.3  Sample piezo with volume elements

SDT supports piezoelectric constitutive laws for all 3D volume elements (see hexa8). You just need to define a piezoelectric material as detailed in p_piezo. A series of commands are implemented in p_piezo to help you handle standard electrode definition steps.

An automated procedure to define nodes whose potential is linked by a common electrode is implemented in p_piezo and illustrated in the MFC_actuator demo. The generic call gives a name to the associated electrode and a selection for the associated nodes

[model,InputDOF]=p_piezo('ElectrodeMPC Name',model,FindNodeSel);