SDT-base         Contents     Functions         Previous Next     PDF Index

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

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.

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

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,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')

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, ksymmetric real mass and stiffness matrix
mdofassociated DOF definition vector describing DOFs in m and k
binput shape matrix describing unit loads of interest. Must be coherent with mdof.
bdofalternate load description by a set of DOFs (bdof and mdof must have different length)
rdofcontains 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.
Cdamping 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.
coutput 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


©1991-2024 by SDTools
Previous Up Next