Faculté des

Sciences

Appliquées

 

Mécanique Rationnelle

2e candidature 2005-2006

TRAVAUX PRATIQUES MATLAB

Semaine du 6 février au 10 février

 

1.

Une table est animée d’un mouvement d’oscillation A.sin(wt). Une balle est initialement au repos sur la table. Le coefficient de restitution est a. Le coefficient de restitution est défini par la relation :
 ou  est la vitesse après impact et  la vitesse avant impact dans le système de référence de la table en mouvement.

 

On demande

 

4. De tracer la section de Poincaré du mouvement pour des valeurs de A qui caractérisent les différent types de mouvement trouvés à la question 4. On prendra comme critère de plan de section l’instant des rebonds de la balle sur la table (ce qui revient à dire qu’on trace sur un plan des phases (dy/dt,y) uniquement les valeurs y(t*)=A.sin(w/t*) et dy/dt(t*) où t* est l’instant de rebond). Une meilleure esthétique du plan de poincaré est obtnenue en utilisant mod(w *t(*),2*p/ w) plutôt que Que peut-on conclure de la comparaison de la section de Poincaré pour une petite amplitude et une grande amplitude du mouvement.

 

Dessin dans le plan des phases (code)

Résultalts

 

Code

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

 

clear

%mov = avifile('c:\test113.avi','Compression','None','Quality',100,'fps',25)

global A omega ydot_initial y_initial g

options = odeset('Events','event_rebond','RelTol',1e-10);

omega=1;g=10;alpha=0.8;

t_max1=(pi/2+0*pi)/omega;

t_max2=(pi/2+2*pi)/omega;

ydot_initial=(alpha*g*t_max1-g*(t_max2-t_max1)/2)/alpha;

y_initial=A*sin(omega*t_max1)+g*t_max1^2/2-ydot_initial*t_max1;

 

 

for A=7:2:7 % on teste différentes valeurs de A amplitude de vibration table

figure('NumberTitle','on','Name','TP Matlab semaine 6/2 au 10/2/2006 - Projet Table Vibrante','Renderer','OpenGL','Color','w','Position',[100 100 600 600])

subplot(2,1,1);hold on

title('Trajectoire en fonction du temps');

xlabel('Temps (s)');ylabel('y (m)');

subplot(2,1,2);hold on

title('Visualisation du mouvement -plan des phases');

xlabel('\omega.t(*)');ylabel('dy(t*)/dt (m/s)');

 

subplot(2,1,1); title(['A.\omega.\omega/g =',num2str(A*omega*omega/g)]);subplot(2,1,2);

  for i=1:200 % Nombre de rebonds

    if i==1

      t_initial=0;y_0=y_initial;  ydot_0=ydot_initial;

    else

      ydot_0 =-alpha*y(end,2)+(1+alpha)*A*omega*cos(omega*t(end));

      y_0=A*sin(omega*t(end)); 

      t_initial=t(end);

    end

   

      [t,y] = ode45(@rebond_eq,[t_initial:0.1:t_initial+100],[y_0 ydot_0],options);

    % début du dessin

   

    subplot(2,1,1);plot(t(:),y(:,1),'r-');hold on;plot(t(:),A*sin(omega*t(:)));hold on;grid on ;

    if i>20  % tracé du plan des phases qu’au 10 ème rebond pour éviter les transitoires

       

    subplot(2,1,2);plot(mod(omega*(t(end)-t_initial),2*pi/omega),ydot_0,'r.');hold on;drawnow;

    end

%     F = getframe(gcf);

%     mov = addframe(mov,F);

  end

 

  end

hold off;

mov = close(mov);

 

­­­   Retour haut de la page  ­­­

 

Résultats

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

 

 

 

 

­­­   Retour haut de la page  ­­­

 

 

 

 

Depuis le 06.02.005, vous êtes le visiteur