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) ... = fe_ceig( ... ,flag)
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ψΛ = −Λ |
If matrices are non-symmetric, the left eigenvectors differ from the right eigenvectors. One can then set input flag to 'lr' to obtain the left eigenmodes in the output def structure. See section 7.8 to get more information about the def structure.
[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