Décalage de courbe sur Matlab

Fermé
Engi-fast Messages postés 2 Date d'inscription dimanche 17 mai 2015 Statut Membre Dernière intervention 17 mai 2015 - 17 mai 2015 à 17:25
Engi-fast Messages postés 2 Date d'inscription dimanche 17 mai 2015 Statut Membre Dernière intervention 17 mai 2015 - 17 mai 2015 à 17:26
Bonjour à tous,

Voilà je vous explique mon problème. Nous devons étudier, mon camarade et moi, un système de masse accroché à un ressort déposé sur un plan incliné. Cette masse est soumise à la force poids, à la force de rappel du ressort et aux forces de frottement. Nous devons au final tracer un graphique de la variation de la position de la masse en fonction du temps.
Nous obtenons deux équations:
Pour la descente: (m*g*(sin(teta) - f*cos(teta)))*(1-cos(sqrt(k/m)*t))*(1/k) + x0*cos(sqrt(k/m)*t)
Pour la montée: (m*g*(sin(teta) + f*cos(teta))).*(1-cos(sqrt(k/m)*t))*(1/k) + x0*cos(sqrt(k/m)*t)
avec x0 = position d'équilibre, f= coefficient de frottement, teta= angle en radian, g= 9.81, k= constante de raideur du ressort, m=masse et t= temps.

Nous devons réaliser ce modèle sous Matlab.
Nous obtenons comme programme:
global m g f teta x0 k T Ff Fr Fp

m = 2 ;
g = 9.81;
f = 0.8;
teta = pi/8;
x0 = 2;
k = 200;
T = (2*pi)/(sqrt(k/m))
Ff = m*g*f*sin(teta);
Fr = k*x0;
Fp = m*g*cos(teta);
if x0 > 0

if Fr > Fp + Ff
xmontee= @(t) ((m*g*(sin(teta) + f*cos(teta)))*(1-cos(sqrt(k/m))*(t))*(1/k) + (x0*cos(sqrt(k/m)*t)));
t =linspace(0,T/2,1200);
plot(t,xmontee(t),'b')
hold on

ttot = t
xtot = xmontee

tini = ttot(end)
xini = xtot(tini)

critarret = abs(xini) < 0.1

while (critarret == 0)

if Fp + k*abs(xini) > Ff

xdescente = @(t) ((m*g*(sin(teta) - f*cos(teta)))*(1-cos(sqrt(k/m))*(t))*(1/k) + (xini*cos(sqrt(k/m)*(t))));
t = linspace(0,T/2,1200);
plot(t,xdescente(t),'r')
tini2 = t(end) + T/2;
xtot2 = xdescente;
xini = xtot2(tini2);
hold on


if k.*abs(xini) > Fp + Ff
xmontee= @(t) ((m*g*(sin(teta) + f*cos(teta)))*(1-cos(sqrt(k/m))*(t))*(1/k) + (xini*cos(sqrt(k/m)*t)));
t =linspace(0,T/2,1200);
tini3 = t(end) + T/2;
xtot3 = xmontee
xini = xtot3(tini3)
plot(t,xmontee(t),'b')
%ttot = [ttot tini3]
%xtot = [xtot xmontee]
hold on
end



end
critarret = abs(xini) < 0.1
end
end
end

Et la figure est:


Ils nous faudraient savoir comment décaler les courbes bleu et rouges pour qu'elles soient mises l'une à côté de l'autre.

La plus petite nous serait grandement profitable!

Merci d'avance!

1 réponse

Engi-fast Messages postés 2 Date d'inscription dimanche 17 mai 2015 Statut Membre Dernière intervention 17 mai 2015
17 mai 2015 à 17:26
Il faudrait également que les autres courbes bleues se retournent ^^'
0