Contents Functions PDF Index |

Purpose

Expansion of experimental modeshapes.

Syntax

dExp = fe_exp('method',ID,Sens,FEM); dExp = fe_exp('method',ID,SE);

Description

A unified perspective on interpolation and the more advanced finite element based expansion methods are discussed in the tutorial 3.3. An example is treated in detail in the gartco demonstration. This section gives a list of available methods with a short discussion of associated trade-offs.

Subspace expansion solves a problem of the form

(10.15) |

Modal or SEREP expansion is a subspace based expansion using the subspace spanned by low frequency target modes (stored in TR in the def format). With a sensor configuration defined (sens defined using fe_sens), a typical call would be

[model,Sens,ID,FEM]=demosdt('demopairmac'); %sdtweb demosdt('demopairmac') TR=fe_def('subdef',FEM,1:20); % Subspace containing 20 modes dex1 = fe_exp('Subspace',ID,Sens,TR); cf=feplot(model); cf.def(1)=fe_def('subdef',FEM,7:20); % Rigid not in FEM cf.def(2)=dex1; fecom('show2def');

This method is very easy to implement. Target modes can be imported from an external code. A major limitation is the fact that results tend to be sensitive to target mode selection.

Another traditional approach to build subspaces is to generate the solutions by mathematical interpolation. fe_sens WireExp provides such a strategy. For a basic example of needed data structures, one considers the following case of a structure with 3 nodes. Node 2 is placed at a quarter of the distance between nodes 1 and 3 whose motion is observed. A linear interpolation for translations in the x direction is built using

TR=struct('DOF',[1.01;2.01;3.01], ... % DOFs where subspace is defined 'def',[1 0;3/4 1/4;0 1]); % Each .def column associated with a vector % sdtweb sens#sensstruct % manual definition of a sens structure sens=struct('cta',[1 0 0;0 0 1],'DOF',[1.01;2.01;3.01]) % Sample test shapes ID=struct('def',eye(2),'DOF',[1.01;3.01]); dexp = fe_exp('Subspace',ID,sens,TR) % Expansion

For expansion of this form, T (stored in TR.def) must contain at most as many vectors as there are sensors. In other cases, a solution is still returned but its physical significance is dubious.

Subspace-Orth can be used to impose that an orthogonal linear combination of the modes is used for the expansion. This is motivated for cases where both test and analysis modeshapes are mass normalized and will provide mass orthonormal expanded modeshapes [48]. In practice it is rare that test results are accurately mass normalized and the approach is only implemented for completeness.

Static expansion is a subspace method where the subspace is associated with the static response to enforced motion or load at sensors. While you can use fe_reduc Static to build the subspace (or import a reduced subspace from an external code), a direct implementation for general definition of sensors is provided in fe_exp.

The main limitation with static expansion is the existence of a frequency limit (first frequency found when all sensors are fixed). These modes can be returned as a second argument to the Static command as illustrated below. If the first frequency is close to your test bandwidth, you should consider using dynamic expansion or possibly add sensors, see [49].

[model,Sens,ID,FEM]=demosdt('demopairmac'); %sdtweb demosdt('demopairmac') [TR,dfix]=fe_exp('static',model,Sens); % Build static subpace dex1 = fe_exp('Subspace',ID,Sens,TR); cf=feplot(model,dex1); % Expanded mode cf=feplot(model,dfix); % Fixed interface mode

In the present case, the fixed sensor mode at 44 Hz indicates that above that frequency, additional sensors should be added in the y direction for proper static expansion.

When many sensors and model reduction are used as in the example below, Lagrange resolution should be preferred to elimination, using options 'Solve','lagrange' and possibly adjusting the conditionning scalar 'pcond',1e-4.

All the expansion methods can be applied on reduced models.

% Further illustrations in gartco demo [model,Sens,ID,FEM]=demosdt('demopairmac'); %sdtweb demosdt('demopairmac') RA=struct('wd',sdtdef('TempDir'), ... 'Reset',0, ... % 1 to use reset 'oProp',{{}}, ... 'EigOpt',[5 20 1e3], ... % Eigenvalue options 'SensName','test', ... % Sensor set for expansion 'OutName','Gart_exp'); % Root of file name % Generate or reload reduced model with modes & static SE=fe_exp('mode+sens',model,RA); RA=struct('Solve','lagrange','pcond',1e-4); % Solve using lagrange multipliers [dex1,dfix] = fe_exp('Static',ID,SE,RA); % Static dex3 = fe_exp('dynamic',ID,SE,RA); % Dynamic on reduced model cf=feplot(model); RO=struct('type','mdrewe','gamma',1e6, ... 'cf',cf,'view',{{'fe_exp','viewEnerKDens',cf,'out1'}}); % feplot for display [dex4,err] = fe_exp('mdre',ID,SE,RO); % MDRE-WE

Dynamic expansion is supported at the frequency of each deformation to be expanded using either full or reduced computations.

% Further illustrations in gartco demo [model,Sens,ID,FEM]=demosdt('demopairmac'); %sdtweb demosdt('demopairmac') dex1 = fe_exp('Dynamic',ID,Sens,model); % Dynamic full model

The preferred strategy is to build a reduced model SE containing normal and attachment modes. When many sensors are used Lagrange resolution should be preferred to elimination as shown in the example above.

Minimum dynamic residual expansion (MDRE) is currently only implemented for normal modeshape expansion. Furthermore, computational times are generally only acceptable for the reduced basis form of the algorithm as illustrated above. Note that the result may incorrect due to poor conditionning with a large number of sensors.

MDRE-WE (Minimum dynamic residual expansion with measurement error) is adjusted by the relative weighting γ_{j} between model and test error in (3.9)

(10.16) |

Fields of the option structure are

- .type='mdrewe'
- .gamma weighting coefficient.
- .cf feplot figure for display.
- .view callback executed for energy display.

The first output argument is the expanded modeshape, the second the displacement residual which shown high energy concentration in locations where the model is wrong or the test very far from the model (which can occur when the test is wrong/noisy).

See also

fe_sens, fe_reduc, section 3.3, gartco demo.

©1991-2019 by SDTools