Contents   Functions      PDF Index |
Purpose
Computation and normalization of complex modes associated to a second order viscously damped model.
Syntax
[psi,lambda] = fe_ceig( ... ) lambda = fe_ceig(m,c,k) def = fe_ceig( ... ) ... = fe_ceig(m,c,k) ... = fe_ceig({m,c,k,mdof},ceigopt) ... = fe_ceig({m,c,k,T,mdof},ceigopt) ... = fe_ceig(model,ceigopt)
Description
Complex modes are solution of the second order eigenvalue problem (see section 5.5 for details)
[M] N× N {ψj} N× 1 λj2 + [C] {ψj} λj + [K] {ψj} = 0 |
where modeshapes psi=ψ and poles Λ=[\ λj \ ] are also solution of the first order eigenvalue problem (used in fe_ceig)
[ |
| ]2N × 2N [ |
| ]2N × 2N [Λ]2N × 2N + [ |
| ] [ |
| ]= [0]2N × 2N |
and verify the two orthogonality conditions
ψTCψ + ΛψTMψ + ψTMψ Λ = I and ψTKψ − ΛψTMψΛ = −Λ |
[psi,lambda] = fe_ceig(m,c,k) is the old low level call to compute all complex modes. For partial solution you should use def = fe_ceig(model,ceigopt) where model can be replaced by a cell array with {m,c,k,mdof} or {m,c,k,T,mdof} (see the example below). Using the projection matrix T generated with fe_case('gett') is the proper method to handle boundary conditions.
Options give [CeigMethod EigOpt] where EigOpt are standard fe_eig options and CeigMethod can be
Here is a simple example of fe_ceig calls.
model=demosdt('demoubeam'); cf=feplot; [Case,model.DOF]=fe_mknl('init',model); m=fe_mknl('assemble not',model,Case,2); k=fe_mknl('assemble not',model,Case,1); kc=k*(1+i*.002); % with hysteretic damping def1=fe_ceig({m,[],kc,model.DOF},[1 6 10 1e3]); % free modes def2=fe_ceig({m,[],kc,Case.T,model.DOF},[1 6 10 1e3]); % fixed modes cf.def=def1; % show def1 in feplot figure
See also
fe_eig, fe_mk, nor2ss, nor2xf, section 5.3