fe2ss#
Purpose
Build state-space or normal mode form from FE model.
Syntax
[sys,TR] = fe2ss('command [options]',MODEL) [sys,TR] = fe2ss('command [options]',MODEL,C) [nor,TR] = fe2ss('command -nor', ...) TR = fe2ss('command -basis', ...)
Description
fe2ss is meant to allow users to build state-space (see section 5.4) and normal mode models from full order model matrices. Accepted commands are detailed below, with options
- -nor outputs the normal mode model data structure (see section 5.2).
- -basis outputs the reduction basis is the structure TR
- -se outputs a reduced superelement
- -loss2c performs estimates viscous damping based on hysteretic models
- -cpx 1 computes complex modes and uses a call to res2ss to compute the state space model. -cpx 2 uses first order correction in the fe_ceig call before using res2ss to build the state-space model. This is currently only available for a Free command.
- -dterm includes static correction as a D term rather than additional modes. The associated full order shapes are stored in TR.bset.
- -ind specifies indices of modes to be kept. Others are included as a D term.
The procedure is always decomposed in the following steps
- call fe_reduc build a reduction basis given in TR.def (see section 6.2). This usually includes a call to fe_eig with options EigOpt provided in the fe2ss command
- call fe_norm to orthonormalize the basis with respect to mass and stiffness (obtain a model in the normal mode form (5.4), see section 5.2) and eliminate collinear vectors if any
- call nor2ss or project model matrices depending on the number of outputs
The TR output argument, contains the modeshapes followed by residual vectors, is given so that the user can display modeshapes in feplot with cf.def=TR or call nor2ss repeatedly without computing the basis again. The later is in particular useful for changes in the sensor configuration which have no effect on the retained basis. -nor and -basis can be used to generate the corresponding outputs.
High level input arguments are a MODEL (see section 4.5) with a case defined in the model which must contain load and sensor entries (see fe_case).
Damping can be specified multiple ways.
- modal damping of viscous form can be given in the model (using a DefaultZeta case entry as shown below) or as an additional argument C which can be a system damping matrix, a scalar uniform damping ratio, a vector of damping ratios or a
- defining modal damping using an inline function. For example to set 1% below 3000 Hz and 5% above use
model=stack_set(model,'info','DefaultZeta', ... @(w)double(w/2/pi<3000)*.01+double(w/2/pi>=3000)*.05);
- using material loss factors and adding the -loss2c option described above.
in the model (using a DefaultZeta case entry for example), or given as an additional argument C which can be a system damping matrix, a scalar uniform damping ratio or a vector of damping ratios.
The following example compares various damping models.
mdl=demosdt('demo ubeam mix');cf=feplot; mdl=fe_case(mdl,'SensDof','Out',[343.01 343.02 347.03]', ... 'FixDof','base','z==0')% uniform 1 % modal damping % uniform 1 % modal damping mdl=stack_rm(mdl,'info','RayLeigh'); mdl=stack_set(mdl,'info','DefaultZeta',.01);
% po shows pole lines 002 as dots, 100 using iomatrix cf=feplot(mdl);ci=iiplot(3); RQ=struct('w','@ll(50,1k,2e3)','name','Modal','po',102,'iiplot',ci); % qbode options RD=struct('cf',cf,'Do',{{'qbode',RQ}}); % fe2ss Do options
sys = fe2ss('free 6 10',mdl,RD);
% Rayleigh damping with 1 % viscous at 200 Hz, see sdtweb('damp') mdl=stack_rm(mdl,'info','DefaultZeta'); mdl=stack_set(mdl,'info','Rayleigh',[0 .012/(2002*pi)]); [sys2,T] = fe2ss('free 6 10',mdl); RQ.name='Rayleigh'; qbode(sys2,RQ);
% Estimate viscous from hysteretic damping [sys3,T] = fe2ss('free 6 10 -loss2c',mdl); RQ.name='Loss'; qbode(sys2,RQ);
iicom('iix',{'Modal','Rayleigh','Loss'});setlines
SysDef#
The command is used to generate a restitution of a forced response on all DOF in TR. Manual call to this command is now replaced by integrated calls where fe2ss also calls qbode for response generation and initializes the animation in feplot. These calls are illustrated in the example above
Free [ , Float] [ , -dterm] EigOpt#
See fe_reduc Free for calling details, this generates the classical basis with free modes and static correction to the loads defined in the model case (see fe_case). With the -dterm option, the static correction is given as a D term rather than additional modes.
CraigBampton nm#
It is really a companion function to fe_reduc CraigBampton command. The retained basis combines fixed interface attachment modes and constraint modes associated to DOFs in bdof.
This basis is less accurate than the standard modal truncation for simple predictions of response to loads, but is often preferred for coupled (closed loop) predictions. In the example below, note the high accuracy up to 200 Hz.
mdl=demosdt('demo ubeam');cf=feplot; mdl=fe_case(mdl,'SensDof','Out',[343.01 343.02 347.03]', ... 'FixDof','Base','z==0') freq=linspace(10,400,2500)';mdl=stack_set(mdl,'info','Freq',freq); % uniform 1 % modal damping mdl=stack_rm(mdl,'info','RayLeigh'); mdl=stack_set(mdl,'info','DefaultZeta',.01);[sys,T] = fe2ss('CraigBampton 5 10', ... fe_case(mdl,'DofSet','IN',314.01)); qbode(sys,freq2pi,'iiplot "Craig"');
% Same with free modes [sys2,T2] = fe2ss('Free 5 10', ... fe_case(mdl,'Remove','IN','DofLoad','IN',314.01)); qbode(sys2,freq2pi,'iiplot "Free" -po');
iicom('iixOnly',{'Craig','Free'});iicom(';sub 1 1;ylog')
Low level input format#
The obsolete low level input arguments are those of fe_reduc with the additional damping and output shape matrix information.
[sys,TR] = fe2ss('command',m,k,mdof,b,rdof,C,c)
m, k | symmetric real mass and stiffness matrix |
mdof | associated DOF definition vector describing DOFs in m and k |
b | input shape matrix describing unit loads of interest. Must be coherent with mdof. |
bdof | alternate load description by a set of DOFs (bdof and mdof must have different length) |
rdof | contains definitions for a set of DOFs forming an isostatic constraint (see details below). When rdof is not given, it is determined through an LU decomposition done before the usual factorization of the stiffness. This operation takes time but may be useful with certain elements for which geometric and numeric rigid body modes don't coincide. |
C | damping model. Can specify a full order damping matrix using the same DOFs as the system mass M and stiffness K or a scalar damping ratio to be used in a proportional damping model. |
c | output shape matrix describing unit outputs of interest (see section 5.1). Must be coherent with mdof. |
Standard bases used for this purpose are available through the following commands.
See also