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