SDT-base Contents   Functions      PDF Index |
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
The procedure is always decomposed in the following steps
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.
model=stack_set(model,'info','DefaultZeta', ... @(w)double(w/2/pi<3000)*.01+double(w/2/pi>=3000)*.05);
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 .01*2/(200*2*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
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
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.
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,freq*2*pi,'iiplot "Craig"'); % Same with free modes [sys2,T2] = fe2ss('Free 5 10', ... fe_case(mdl,'Remove','IN','DofLoad','IN',314.01)); qbode(sys2,freq*2*pi,'iiplot "Free" -po'); iicom('iixOnly',{'Craig','Free'});iicom(';sub 1 1;ylog')
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
demo_fe, fe_reduc, fe_mk, nor2ss, nor2xf