On s'intéresse mode de vibrations en traction/compression de la pale d'éolienne précédente.
function [U,R,Omega]=modepropre(Ne,L,M,K,p) % (C) M. BUFFAT, UFR de Mecanique % [U,R,Omega]=modepropre(Ne,w,L,M,K,p) % calcul du mode de vibration propre p % d'une poutre en traction sous l'effet de la rotation % calcul la deformee U du mode propre en fonction de R % parametres % nbre d'elements Ne de discretisation % masse M, longueur L, raideur totale K (ES/L) % p numero du mode propre N=Ne+1; % nbre de nds l=L/(N-1); % longueur d'un element m=M/(N-1); % masse elementaire k=K*(N-1); % raideur elementaire % variable position R=[0:l:L]; % matrice de masse et de rigidite Ke=k*[1 -1; -1 1]; % matrice de rigidite Me=m/2*[1 0; 0 1]; % et de masse elementaire % assemblage Ka=assemblage(Ke,N-1); Ma=assemblage(Me,N-1); % resolution mode propre [V,D]=eig(inv(Ma)*Ka); % trie des v.propres VP=sort(diag(D)); % selection du mode p % attention le 1er mode est un mode rigide Omega=sqrt(VP(p+1)); % recherche du mode p k=find(diag(D)==VP(p+1)); U=V(:,k); return;
% (C) M. BUFFAT, UFR de Mecanique % calcul des modes de vibration % d'une pale d'eolienne en traction % sous l'effet de la rotation % caracteristique de la pale L=14; % longueur M=800; % masse rho=8000; % densite S=M/(rho*L); % section equivalente E=200e09; % module d'Young K=E*S/L; % raideur totale % rotation en tours/minute w=40; Ne=20; % etudes des premiers modes [U1,R1,Omega1]=modepropre(Ne,L,M,K,1); [U2,R2,Omega2]=modepropre(Ne,L,M,K,2); [U3,R3,Omega3]=modepropre(Ne,L,M,K,3); [U4,R4,Omega4]=modepropre(Ne,L,M,K,4); figure(2);clf; subplot(2,1,1); plot(R1,U1,R2,U2,R3,U3,R4,U4,'LineWidth',2); title('mode propres'); xlabel('R'); ylabel('U'); legend('1','2','3','4'); subplot(2,1,2); Omega0=sqrt(2*K/M); plot([1,2,3,4],[Omega1,Omega2,Omega3,Omega4],'r-x',[1],[Omega0],'go','MarkerSize',14); title('pulsations propres'); xlabel('mode'); ylabel('rd/s'); legend('calcul','ref'); % disp(sprintf('premiere pulsation propre = %f\n',Omega1)); disp(sprintf('pulsation propre de reference= %f\n',Omega0)); disp(sprintf('vitesse de rotation = %f\n',w*2*pi/60));
function animation(p) % trace le mode de vibarion p L=14; % longueur M=800; % masse rho=8000; % densite S=M/(rho*L); % section equivalente E=200e09; % module d'Young K=E*S/L; % raideur totale % rotation en tours/minute w=40; Ne=20; % mode de vibraion p [U,R,Omega]=modepropre(Ne,L,M,K,p); % animation de la vibration d'une poutre N=size(U,1); L=R(N); H=2; figure(3); clf; hold on; axis([-0.1*L 1.1*L 0 2*H]); axis equal; title(sprintf('Mode de vibration m=%d',p)); % trace de la poutre initiale for i=1:N p(i)=plot([R(i) R(i)],[0 H],'color','r','EraseMode','normal'); end; plot([0 L L 0],[0 0 H H],'LineWidth',2); drawnow; % trace en temps T=2*pi/Omega; % periode ndt=20; dt=4*T/ndt; t=0; for it=1:ndt t=t+dt; for i=1:N x=R(i); x0=R(i)+1.0*sin(Omega*t)*U(i); set(p(i),'XData',[x0 x0 ],'YData',[0 H]); end; drawnow;pause(0.1); end; hold off;
vibration d'une pale d'éolienne: execution avec Matlab