Bonjour,
J'ai un projet d'électronique à faire, dans ce projet j'ai pour but d'observer les variations du travail (l'énergie utilisé) en aviron par rapport à l'angle du dos.
Pour ça j'ai deux accéléromètre ADXL335 et je travaille sur un rameur, je place un ADXL335 sous la selle pour ensuite obtenir la distance parcouru par le corps, et un autre dans le milieu du dos et je fais une phase d'initialisation de 3s sans bouger.
Pour faire les graphiques j'utilise Octave, je trace l'accélération en fonction du temps (pour ça pas de problème) je met mes valeurs obtenu par l'accéléromètre dans plusieurs vecteurs et je plot et ensuite j'aimerai obtenir la vitesse en fonction du temps pour ceci j'utilise la fonction cumtrapz(temps,accélération) mais lorsque je trace ma vitesse j'obtiens une droite et je répète le même processus pour la position et là j'obtiens une courbe exponentielle, alors pour la vitesse j'ai essayer avec des boucles de tout recentrer en 0 mais je n'obtenais pas ce que je voulais, normalement je devrais obtenir pour la vitesse et la position deux droites sinusoïdales.
voilà, est-ce que quelqu'un aurait une idée pour intégrer l'accélération?Code:matrice=load("mouvement_selle90.txt"); t=(matrice(:,1)+20); ax=matrice(:,2); ay=matrice(:,3); az=matrice(:,4); sensibilite=ax(1,1)-az(1,1); ax=(((ax-ax(1,1))./sensibilite).*9.81); ay=(((ay-ay(1,1))./sensibilite).*9.81); az=(((az-az(1,1))./sensibilite).*9.81); acce=sqrt((ax.^2)+(ay.^2)+(az.^2)); v=cumtrapz(t,acce); pos=cumtrapz(t,v); matrice2=load("mouvement_selle70.txt"); time=(matrice2(:,1)+20); ax2=matrice2(:,2); ay2=matrice2(:,3); az2=matrice2(:,4); sensibility=ax2(1,1)-az2(1,1); ax2=(((ax2-ax2(1,1))./sensibility).*9.81); ay2=(((ay2-ay2(1,1))./sensibility).*9.81); az2=(((az2-az2(1,1))./sensibility).*9.81); acce2=sqrt((ax2.^2)+(ay2.^2)+(az2.^2)); v2=cumtrapz(time,acce2); pos2=cumtrapz(time,v2); %---graphique--- figure(1); plot(t,v); hold on plot(time,v2,'r'); axis([0 20 -5 max(v)]); legend('vitesse 1','vitesse 2'); xlabel('Duree [s]'); ylabel('vitesse [m/s]'); figure(2); plot(t,pos); hold on plot(time,pos2,'r'); axis([0 20 -5 max(pos)]); legend('position inclinaison 90','position inclinaison 70'); xlabel('Duree [s]'); ylabel('position [m]');
Merci d'avance
-----