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
{qexp} = [T]{qr} with {qr}=arg min | ⎪⎪ ⎪⎪ | ytest − [c T] {qr} | ⎪⎪ ⎪⎪ | 2 (10.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 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.
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); dex1 = fe_exp('Static',ID,SE); % Static dex3 = fe_exp('dynamic',ID,SE); % Dynamic 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
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.
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).
See also
fe_sens, fe_reduc, section 3.3, gartco demo.