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:
Et la figure est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 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
Ils nous faudraient savoir comment décaler les courbes bleu (également les retourner) et rouges pour qu'elles soient mises l'une à côté de l'autre.
Même la plus petite aide nous serait grandement profitable!
Merci d'avance!
Partager