Contents     Functions     Index     Previous Next     PDF

fe2xf



Purpose

Direct computation of frequency response functions.

This function is part of the viscoelastic tools.

Syntax
 cases = fe2xf('command',model,case); 
Description

frfzr [-file FileName]

This command supports direct frequency response computations and post-processing for reduced models. For a given input, the response is fully characterized by the response at DOFs {q} (state vector in control theory), whose dependence on the load is defined by an evolution equation (equation of dynamics in mechanics)
[Z()]N× N {q()}N× 1 = [b]N× NA {u()}NA     (9.1)

Unit inputs [b] describe the spatial content of loads (see more details in section 6.9.3). The frequency content is described at each frequency by specifying an input {u} or the associated covariance matrix Suu. Cases with enforced displacements require a few additional manipulations discussed in  ?? but leads to similar equation forms.

Outputs are characterized by a vector {y} that is supposed to be linearly related to DOFs through an observation equation (see more details in section 6.9.4)
[y()]NS = [c]NS× N {q()}N     (9.2)
where the y components can be translations, rotations, normal velocities, strains, ...

The first step of an analysis is to define the input shape matrix b and possibly the inputs u. The second step is to define the outputs.

fe2xf provides a fairly large set of response processing options for full and reduced models, through specification of a 'info','MifDes' entry in the model stack. This entry should contain a cell array, each row describing a response processing with {post_name,copt}. post_name is the string identifier of the post ('frf', 'svd', ...) and copt contains the options related to the post (see below). For example
MVR=fevisco('TestPlateLoadMVR');
MVR=stack_set(MVR,'info','Freq',[30:1:500]');
MVR=stack_set(MVR,'info','MifDes',{'frf',[]});
RESP=fe2xf(horzcat('frfzr -file',nas2up('tempname RESP.mat')),MVR);
R1=RESP(1);R1.xf=abs(R1.xf);fe_curve('plot -fig11 ylog xtight',R1);
These low level commands are used, given a reduced model, to compute FRFs for a frequency/parameter range. The reduced model uses the standard fields used to describe parametric models (see section 6.9.2). It must at least contain the following fields .Range, .cr,.br, .zCoefFcn, .K.

Given a FileName results are saved every 30 seconds to allow post-processing during the evaluation.

Accepted post-processing options given in an info,MifDes entry Following example computes a set of responses
 cf=fevisco('TestPlateLoadMVR feplot'); MV=cf.mdl;
 % redefine sensors
 i1=feutil('findnode x==0 & z==0 epsl1e-3',MV);
 MV=fe_case(MV,'SensDof','Sensors',i1+.03);
 MV=fe_case(MV,'DofLoad','Inputs',i1(1:2)+.03);
 MV=fe_case(MV,'setcurve','Inputs',{'input';'input'});
 % reset reduced sensor representation
 fe_sens('cr&lab',cf)
 fe_sens('br&lab',cf)
 MV=stack_set(MV,'info','Freq',[30:.5:32]');   % Target frequencies
 % define the time-dependent load
 data.X{1}=linspace(0,200*1e-4,201);
 data.Xlab{1}=fe_curve('datatypecell','freq');
 data.Y=ones(1,length(data.X{1}));
 MV=fe_curve(MV,'set','input',data);
 % define model selection for energy computation
 mo1=feutil('rmfield',MV.GetData,'file','wd','Opt','Stack');
 mo1.Elt=feutil('selelt matid103',mo1);
 % define responses to be computed
 MV=stack_set(MV,'info','MifDes',{'frf',[];
   'svd',struct('ind',2);'svdu',1;'usvd',[];
   'frf -acc',struct('out',1:2); 'frf -vel',struct('out',2);
   'frfu',[];
   'enerk',mo1;'enerm',mo1;
   'mean -vel',struct('group',{{'all',[1:10]}});
   'impe',[]});
 % compute responses
 fe2xf('frfzr',cf);
The commands fe_sens('br&lab’) and fe_sens('cr&lab’) are used to compute respectively the reduced load matrix br and the reduced observation matrix cr, and their associated labels. If a load is time dependent, the associated curve must be linked to it before calling fe_sens('br&lab’). However there is no need to call again fe_sens('br&lab’) if the curve is changed provided that the name of the curve stays the same.

direct [Full,First [,zCoef0], Iter, Reduced]

direct commands are used for direct frequency response computations. It is assumed that loads and sensors are defined using entries in the model case.

[XF,def]=fe2xf('DirectFull',model) calls a direct full order complex sparse solver. With no output argument, the FRFs are displayed in iiplot.

model is a structure array that describes the impedance of the model whose response is to be computed. It is typically generated using the fevisco MakeModel command which describes the fields used by fe2xf direct commands (see section 6.10).

DirectFirst builds a reduction basis containing nominal normal modes and a first order correction for damping effects. DirectFirst zCoef0 generates zCoef0 based on the actual contents of zCoef rather than the values stored in the info:zCoef stack entry.

DirectReduced assumes the model already contains a reduced model, as illustrated in section 6.10.3.

These commands are illustrated in section 6.10.4.

frfpolesearch

[xf,po]=fe2xf('frfpolesearch',rmodel,w,ind)
This low level commands is used, given a reduced model, to track poles in the same range. The reduced model uses the standard fields used to describe parametric models (see section 6.9.2). It must at least contain the following fields .Range, .cr,.br, .zCoefFcn, .K.

The pole tracking algorithm assumes that the modeshape is well approximated by the reduction vector with the same index.

PoleRange [,real]

This command supports a parametric study on the poles of frequency invariant damped model. One assumes that the mass is defined in the zCoef entry and that matrix types can be found in model.Opt(2,:) so that the stiffness can be found by setting to zero coefficients of mass matrices in zCoef.
ind=1:5; % indices of target modes
hist=fe2xf('PoleRange',MVR,ind);
fe2xf('plotpolesearch',hist);
% To see the modeshapes (should only be used with a small number of points)
[hist,def]=fe2xf('PoleRange',MVR,ind);
With PoleRangeReal one computes normal modes rather than the default complex modes.

zCoef

This command is used to generate the weighting coefficients in (6.29), more details are given in section 6.9.1.



See also

fe2ss, fevisco, section 6.9.2



©1991-2007 by SDTools
Previous Up Next