Contents     Functions              PDF Index

## fe_exp

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, Modal, Serep

Subspace expansion solves a problem of the form

 {qexp}  = [T]{qr}  with    {qr}=arg min ⎪⎪ ⎪⎪ ytest − [c T] {qr} ⎪⎪ ⎪⎪ 2     (9.4)

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

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.

### Dynamic, RBDE

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

SE=fe_exp('mode+sens',model,Sens); % Generate reduced model with modes & static
dex3 = fe_exp('dynamic',ID,SE); % Dynamic expansion on reduced model
dex4 = fe_exp('mdre',ID,SE);    % MDRE
RO=struct('type','mdrewe','gamma',1,'MeasErr',.1);
[dex5,RO] = fe_exp('mdre',ID,SE,RO); % MDRE-WE

The preferred strategy is to build a reduced model SE containing normal and attachment modes.

### MDRE, MDRE-WE

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.

MDRE-WE (Minimum dynamic residual expansion with measurement error) iteratively adjusts the relative weighting γj between model and test error in (3.9). Input arguments specify a starting value for γj and a relative error bound. The initial value for γj is increased (multiplied by 2) until єj/||{yjTest}|| is below the given bound. A typical call was illustrated above, where the opt in the output gives the adjusted values of γj, mdexr is the expanded vector expressed in the generalized coordinates associated with T, and err gives the objective function value (first row) and relative error (second row).