Title: Travaux pratiques de m
1Travaux pratiques de mécanique analytiqueSimula
tion en temps réel du mouvement dun pendule
double
2Mise en situation...
Positions
Point A (l sin q, -l
cos q)
Point B (l.(sin q sin f ), -l.(cos
q cos f))
Vitesses
Point A (l dq/dt cos q, l dq/dt
sin q)
Point B (l.(dq/dt cos q df/dt cos f),
l.( dq/dt sin q
df/dt sin f ))
m g l 1 m l2 1
3Lagrange (1)
L T - V
pour toute les masses du système
vitesse scalaire de la masse condidérée
4Lagrange (2)
5Système différentiel
6Fonction différentielle ODE45
7Définition des vecteurs utilisés
8Définition des vecteurs utilisés
9Fonction de dérivation
function dy dp ( t, y )
10Variables temporaires
function dy dp ( t, y )
11Mise en correspondance
function dy dp ( t, y )
dy(1) y(2)
12Mise en correspondance
function dy dp ( t, y )
dy(1) y(2)
dy(3) y(4)
13Mise en correspondance
function dy dp ( t, y )
dy(1) y(2)
dy(3) y(4)
dy(2)
14Search and replace
function dy dp ( t, y )
s sin( ? - ? )
c cos( ? - ? )
dy(1) y(2)
dy(3) y(4)
dy(2)
15Search and replace
function dy dp ( t, y )
s sin( ? - ? )
c cos( ? - ? )
dy(1) y(2)
dy(3) y(4)
dy(2)
16Search and replace
function dy dp ( t, y )
s sin( ? - ? )
c cos( ? - ? )
dy(1) y(2)
dy(3) y(4)
dy(2)
17Search and replace
function dy dp ( t, y )
s sin( y(1) - ? )
c cos(y(1) - ? )
dy(1) y(2)
dy(3) y(4)
dy(2)
18Search and replace
function dy dp ( t, y )
s sin( y(1) - y(3) )
c cos(y(1) - y(3) )
dy(1) y(2)
dy(3) y(4)
dy(2)
19Search and replace
function dy dp ( t, y )
s sin( y(1) - y(3) )
c cos(y(1) - y(3) )
dy(1) y(2)
dy(3) y(4)
dy(2)
20Search and replace
function dy dp ( t, y )
s sin( y(1) - y(3) )
c cos(y(1) - y(3) )
dy(1) y(2)
dy(3) y(4)
dy(2)
21Search and replace
function dy dp ( t, y )
s sin( y(1) - y(3) )
c cos(y(1) - y(3) )
dy(1) y(2)
dy(3) y(4)
dy(2)
22Search and replace
function dy dp ( t, y )
s sin( y(1) - y(3) )
c cos(y(1) - y(3) )
dy(1) y(2)
dy(3) y(4)
23Fonction différentielle ODE45
function dy dp ( t, y )
s sin( y(1) - y(3) )
c cos(y(1) - y(3) )
dy(1) y(2)
dy(3) y(4)
24Résolution numérique
25Variables utilisées
26Premier affichage
27Boucle daffichage
Boucle d'affichage for i11000
x(2)10sin(angle(i,1)) y(2)-10cos(angle(i,1
)) x(3)x(2)10sin(angle(i,3))
y(3)y(2)-10cos(angle(i,3))
line(x,y,'LineWidth',2) end
28Gestion dynamique
Boucle d'affichage for i1100
x(2)10sin(angle(i,1)) y(2)-10cos(angle(i,1
)) x(3)x(2)10sin(angle(i,3))
y(3)y(2)-10cos(angle(i,3)) clf
axis(-30 30 -30 30) line(x,y,'LineWidth',2)
drawnow
29Temps réel
Boucle d'affichage for i1100 tic
x(2)10sin(angle(i,1)) y(2)-10cos(angle(i,
1)) x(3)x(2)10sin(angle(i,3))
y(3)y(2)-10cos(angle(i,3)) while
toclt0.1 end clf axis(-30 30 -30
30) line(x,y,'LineWidth',2) drawnow
end
30Gestion anciennes positions
Allocation mémoire xoldzeros(3,1) yoldzeros(3,
1)
Boucle d'affichage for i1100 tic
xold(2)x(2) yold(2)y(2) xold(3)x(3)
yold(3)y(3) x(2)10sin(angle(i,1))
y(2)-10cos(angle(i,1)) x(3)x(2)10sin(ang
le(i,3)) y(3)y(2)-10cos(angle(i,3))
while toclt0.1 end
plot(xold,yold,'w','LineWidth',2) plot(x,y,'LineW
idth',2) drawnow end
31Approche orienté-objet
Objet graphique
Adresse
32Approche orienté-objet
Objet graphique
Adresse
XData
YData
ZData
Color
Style
plot
axis
33Récupération de ladresse
graph1plot(x,y,'w','EraseMode','none')
Objet graphique
Adresse
1.05684523 graph1
XData
YData
ZData
Color
Style
Instruction
34Données en x
graph1plot(x,y,'w','EraseMode','none')
Objet graphique
Adresse
1.05684523 graph1
XData
x
YData
ZData
Color
Style
Instruction
35Données en y
graph1plot(x,y,'w','EraseMode','none')
Adresse
1.05684523 graph1
XData
x
YData
y
ZData
Color
Style
Instruction
36Pas de données en z
graph1plot(x,y,'w','EraseMode','none')
Objet graphique
Adresse
1.05684523 graph1
XData
x
YData
y
ZData
Color
Style
Instruction
37Couleur
graph1plot(x,y,'w','EraseMode','none')
Objet graphique
Adresse
1.05684523 graph1
XData
x
YData
y
ZData
Color
w
Style
Instruction
38Style
graph1plot(x,y,'w','EraseMode','none')
Objet graphique
Adresse
1.05684523 graph1
XData
x
YData
y
ZData
Color
w
Style
Instruction
39Variable privée
graph1plot(x,y,'w','EraseMode','none')
Objet graphique
Adresse
1.05684523 graph1
XData
x
YData
y
ZData
Color
w
Style
EraseMode none
Instruction
40Instruction graphique
graph1plot(x,y,'w','EraseMode','none')
Objet graphique
Adresse
1.05684523 graph1
XData
x
YData
y
ZData
Color
w
Style
EraseMode none
Instruction
plot
41Accès variables membres
set(graph1,'XData',xnew,'YData',ynew,'LineWidth',2
)
graph1
XData
YData
42Modification données en x
set(graph1,'XData',xnew,'YData',ynew,'LineWidth',2
)
graph1
XData
xnew
YData
43Modification données en y
set(graph1,'XData',xnew,'YData',ynew,'LineWidth',2
)
graph1
XData
xnew
YData
ynew
44Modification paramètres divers
set(graph1,'XData',xnew,'YData',ynew,'LineWidth',2
)
graph1
XData
xnew
YData
ynew
45Pour notre problème
46Approche orienté-objet