SDT-visc         Contents     Functions         Previous Next     PDF Index

fe2xf

Purpose

Main function of SDT/ZParam for reduced parametric dynamic analysis This function is part of the viscoelastic tools.

The other purpose is the direct computation of frequency response functions.

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), which dependence on the load is defined by an evolution equation (equation of dynamics in mechanics)

 
    (5.1)

Unit inputs [b] describe the spatial content of loads (see more details in section ??). The frequency content is described at each frequency by specifying an input {u} or the associated covariance matrix Σuu. 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 ??)

 
    (5.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 ??). It must at least contain the following fields .Range, .cr,.lab_out .br,.lab_in, zCoefFcn, .K.

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

Without output argument, one can specify the identifier of an iiplot or feplot figure (whose stack will store results of computation) using a -cf i command option.

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 ??).

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 ??.

These commands are illustrated in section ??.

FrfPoleSearch

[xf,po]=fe2xf('frfpolesearch',rmodel,w,ind)

This low level command 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 ??). 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.

PoleEh

Performance map of a single mode in the E,h plane.

PoleTemp

Interpolation based search for dependence of poles on temperature (the FrfPoleSearch is a slower alternative). xxx example needed xxx

RO=struct('ind',1:10, ...  % selected modes for output
    'Temp',50:110, ...  % temperatures
    'Freq',logspace(log10(1000),log10(20e3),30)'); % target range of frequencies
Po=fe2xf('poletemp',MV2,'Visco',RO);
hist=fe2xf('PoleRange',MVR,ind);
fe2xf('plotpolesearch',hist);

PoleRange ...

This command supports a parametric study on the poles of frequency invariant damped model. Variable coefficients must be defined by a zCoef stack entry. The mass column in particular should be filled correctly and matrix types should be found in model.Opt(2,:) so that the stiffness can be found by setting to zero coefficients of mass matrices in zCoef.

If the provided superlement has an nmap field with key Map:CurPar or CurParHandle defining an nmap, the pointed nmap will be set with keys Range the current DoE and jPar the current design point. This allows implicit matrices using parameter interpolation to be updated during the procedure.

Options can be specified in an option structure RR in the example below or set in the command string

PlotPoleSearch

Is the general interface to display pole histories. Accepted options are

If a hist.faces is defined, these are used to connect points of the parametric study.

For an example, see fe2xf PoleRange.

zCoef

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

model=fe2xf('zcoef -default',model); is used to analyze the model and define a default info,zCoef entry. fe2xf('zcoef',model); displays the values. If a parameter range is defined, you can specify the parameter to use with the -jpar i option and all parameters with -jpar -1.

DefList

When reading shapes for the purpose of generating reduced models, def=fe2xf('DefList','root*.mat'); reads all files matching root*.mat and combines the shapes in a v_handle def.def field. Selection of diameters and frequency range during the read process is performed using

RO=struct('Fmax',8000);
d1=fe_cyclicb('DefList','root*.mat',RO);

Optional argument RO can have following fields

Build[,TrEnh,ListR]

Utilities for reduced parametric model (MVR) generation. The parametric model is assumed to be a pre-assembled parametric model. It consists in a model containing assembled matrices, the assembled matrices can be split into different contributions relative to specific parameters, see fe_case par for parameter definition and mattyp for reference on split assemblies.

The multi-model reduction then considers an orthonormalized basis concatenating the real modal bases of a subset of chosen design points, possibly enhanced with inelastic contributions.

See also

fe2ss, fevisco, section ??


©1991-2024 by SDTools
Previous Up Next