Décalage de courbe sur Matlab
Engi-fast
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Engi-fast Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Engi-fast Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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!
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!
A voir également:
- Décalage de courbe sur Matlab
- Comment faire une courbe sur excel - Guide
- Courbe des prix amazon - Guide
- Décalage son image tv orange fibre ✓ - Forum Cinéma / Télé
- Graphique courbe en ligne - Guide
- Décalage audio vlc android - Forum Lecteurs et supports vidéo