SDT-base         Contents     Functions         Previous Next     PDF Index

p_piezo

Purpose

Property function for piezoelectric shells and utilities associated with piezoelectric models.

Syntax

 mat= m_piezo('database name')
 pl = m_piezo('dbval MatId  -elas 12 Name');

See section 6.1.5 for tutorial calls. Accepted commands are

ElectrodeMPC

[model,InputDOF(end+1,1)]=p_piezo('ElectrodeMPC Name',model,'z==5e-5'); defines the isopotential constraint as a case entry Name associated with FindNode command z==5e-5. An illustration is given in section 6.1.5.

Accepted command options are

ElectrodeSensQ

model=p_piezo('ElectrodeSensQ 1682 Q-Base',model); adds a charge sensor (resultant) called Q-Base on node 1682. (See (1.6) for theory).

For shells, the node number is used to identify the p_piezo shell property and thus the associated elements. It is reminded that p_piezo entries must be duplicated when multiple patches are used. For volumes, the p_piezo ElectrodeMPC should be first defined, so that it can be used to obtain the electrode surface information.

Note that the command calls fe_case('SensMatch') so that changes done to material properties after this call will not be reflected in the observation matrix of this sensor.

To obtain sensor combinations (add charges of multiple sensors as done with specific wiring), specify a data structure with observation .cta at multiple .DOF as illustrated below.

For a voltage sensor, you can simply use a DOF sensor
model=fe_case(model,'SensDof','V-Base',1682.21).

model=d_piezo('meshULBPlate cantilever');  % creates the model
% If you don't remember the electrode node numbers
r2=p_piezo('ElectrodeDOF',model)
% Combined charge
r1=struct('cta',[1 1],'DOF',[r2{1:2,2}]+.21,'name','QS2+3');
model=p_piezo('ElectrodeSensQ',model,r1);
sens=fe_case(model,'sens');
% Combined voltage
r1=struct('cta',[1 1],'DOF',[r2{3:4,2}]+.21,'name','VS2+3');
model=fe_case(model,'SensDof',r1.name,r1);
sens=fe_case(model,'sens');sens.lab

ElectrodeDOF

p_piezo('ElectrodeDof Bottom',model) returns the DOF the bottom electrode. With no name for selection p_piezo('ElectrodeDof',model) the command returns the list of electrode DOFs based on MPC defined using the ElectrodeMPC command or p_piezo shell entries. Use ElectrodeDof.* to get all DOFs.

ElectrodeView ...

p_piezo('electrodeview',cf) outlines the electrodes in the model and prints a clear text summary of electrode information. To only get the summary, pass a model model rather than a pointer cf to a feplot figure.

p_piezo('electrodeviewCharge',cf) builds a StressCut selection allowing the visualization of charge density. You should be aware that only resultant charges at nodes are known. For proper visualization a transformation from charge resultant to charge density is performed, this is known to have problem in certain cases so you are welcome to report difficulties.

Electrode2Case

Electrode2Case uses electrode information defined in the obsolete Electrode stack entry to generate appropriate case entries : V_In for enforced voltage actuators, V_Out for voltage measurements, Q_Out for charge sensors.

ElectrodeInit

ElectrodeInit analyses the model to find electric master DOFs in piezo-electric shell properties or in MPC associated with volume models.

Tab

Tab commands are used to generate tabulated information about model contents. The calling format is p_piezo('TabDD',model). With no input argument, the current feplot figure is used. Currently generated tabs are

View

p_piezo('ViewDD',model) displays information about piezoelectric constitutive laws in the current model.

p_piezo('ViewElec ...',model) is used to visualize the electrical field. An example is given in section 6.1.5. Command options are DefLen val to specify the arrow length, EltSel val for the selection of elements to be viewed, Reset to force reinit of selection.

ViewStrain and ViewStress follow the same calling format.

Shell element properties

Piezo shell elements with electrodes are declared by a combination of a mechanical definition as a layered composite, see p_shell 2, and an electrode definition with element property rows of the form

[ProId Type MecaProId ElNodeId1 LayerId1 UNU1 ElNodeId2...]

The constitutive law for a piezoelectric shell are detailed in section 6.1.5. The following gives a sample declaration.

model=femesh('testquad4'); % Shell MatId 100 ProdId 110

% MatId 1 : steel, MatId 12 : PZT elastic prop
model.pl=m_elastic('dbval 1  Steel');
% Sonox_P502 piezo material, sdtweb m_piezo('Sonox_P502')
model.pl=m_piezo(model.pl,'dbval 3 -elas 12 SONOX_P502');

% ProId 111 : 3 layer composite (mechanical properties)
model.il=p_shell(model.il,['dbval 111 laminate ' ...
    '3 1e-3 0 ' ...  % MatID 3 (PZT),   1 mm piezo, 0
    '1 2e-3 0  ' ... % MatID 1 (Steel), 2 mm
    '3 1e-3 0']);    % MatID 3 (PZT),   1 mm piezo, 0
% ProId 110 : 3 layer piezo shell with electrodes on nodes 1682 and 1683
model.il=p_piezo(model.il,'dbval 110 shell 111 1682 1 0 1683 3 0');

p_piezo('viewdd',model) % Details about the constitutive law
p_piezo('ElectrodeInfo',model) % Details about the layers

©1991-2024 by SDTools
Previous Up Next