1 |
- function [f,U] =vibrations(nmode)
% Calcul des premiers modes de vibration d'une structure.
%
% en entree nmode : nombre de modes a calculer
% en sortie f : vecteur des nmodes premières frequences propres
% U : tableau des nmodes premiers modes en ayant replace les CL
% fonctions utilisees
% typel_keme : calcul des matrices elementaires Ke et Me
%
% H.Oudin
%==========================================================================
global nddln nddlt nelt nnode ndim
global Connec Typel Ncl Vcl
%----- initialisations
K=zeros(nddlt); M=zeros(nddlt);
for iel=1:nelt %----- boucle sur les elements, assemblage
[Ke,Me] = feval(Typel(iel,:),iel);
loce=[];
for i=1:nnode loce=[loce,(Connec(iel,i)-1)*nddln+[1:nddln]]; end
K(loce,loce)=K(loce,loce) + Ke;
M(loce,loce)=M(loce,loce) + Me;
end %----- prise en compte des conditions aux limites
for i=nddlt:-1:1
if ( Ncl(i) == 1 )
K(i,:) = []; K(:,i) = [];
M(i,:) = []; M(:,i) = [];
end
end
%----- resolution disp(K);disp(M);
[modes,omega] = eigs(K,M,nmode,'sm');
f = sqrt(diag(omega))/(2*pi) ;
for j=nmode:-1:1 %---- les frequences en partant de la plus basse
ir=0;
for i=1:nddlt %----- on replace les deplacements imposes
if ( Ncl(i) == 1 ) U(i,j) = Vcl(i);
else ir=ir+1; U(i,j)= modes(ir,j);
end
end
end
return
|