vibrations.m 1.4 KB

1
  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