|
Faculté des Sciences Appliquées |
|
Mécanique Rationnelle 2e candidature 2005-2006 |
TRAVAUX PRATIQUES MATLABSemaine 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 : 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) 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