View
25
Download
0
Category
Preview:
DESCRIPTION
Travaux pratiques de mécanique analytique Simulation en temps réel du mouvement d’un pendule double. X. Y. Mise en situation. Positions:. Point A: (l sin q , -l cos q ). Point B: (l.(sin q + sin f ), -l.(cos q + cos f )). Vitesses:. - PowerPoint PPT Presentation
Citation preview
Mécanique Analytiqueet CFAO
1
Travaux pratiques de mécanique analytique
Simulation en temps réel du mouvement d’un
pendule double
Mécanique Analytiqueet CFAO
2
Mise en situation...Mise en situation...
m
mA
B
l
l
X
Y
Positions:
Vitesses:
Point A: (l sin , -l cos )
Point A: (l d/dt cos , l d/dt sin )
Point B: (l.(sin + sin ), -l.(cos + cos ))
Point B: (l.(d/dt cos + d/dt cos ),
l.( d/dt sin + d/dt sin ))
m g l = 1 m l2 = 1
Mécanique Analytiqueet CFAO
3
Lagrange (1)Lagrange (1)
L = T - V
22
22
mvTmv
T pour toute les masses du système
vitesse scalaire de la masse condidérée22yx vvv
222 lvA cos22222 lvB
2T = ))cos(2.2.(l.m 222
Mécanique Analytiqueet CFAO
4
Lagrange (2)Lagrange (2)
V = mgh = - mgl cos - m g l (cos + cos )
L = T - V = ))cos(2.2.(2
. 222
lm+ mgl cos + m g l (cos + cos )
sin)sin().cos(
sin2)sin()cos(.222
22
Mécanique Analytiqueet CFAO
5
Système différentielSystème différentiel
cossin
cossin
sin2sin
cos2
1 2
2
2
mgl
mgl
cossin
cossin
sin2sin2
cos2
1 2
2
2
mgl
mgl
Mécanique Analytiqueet CFAO
6
Fonction différentielle ODE45Fonction différentielle ODE45
ODE45 Fonction de dérivation décrivant le système différentiel
Ordre des équations du système 2 ( , )
Avant Aprèsdt
d
t
1
dt
d
Mécanique Analytiqueet CFAO
7
Définition des vecteurs utilisésDéfinition des vecteurs utilisés
ODE45 Fonction de dérivation décrivant le système différentiel
Ordre des équations du système 2 ( , )
Avant Aprèsdt
d
t
1
dt
d
Mécanique Analytiqueet CFAO
8
Définition des vecteurs utilisésDéfinition des vecteurs utilisés
ODE45 Fonction de dérivation décrivant le système différentiel
Ordre des équations du système 2 ( , )
Avant Aprèsdt
d
t
1
dt
d
Mécanique Analytiqueet CFAO
9
Fonction de dérivationFonction de dérivation
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(
Mécanique Analytiqueet CFAO
10
Variables temporairesVariables temporaires
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(
s = sin( - )c = cos( - )
Mécanique Analytiqueet CFAO
11
Mise en correspondanceMise en correspondance
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(
s = sin( - )c = cos( - )
dy(1) = y(2)
Mécanique Analytiqueet CFAO
12
Mise en correspondanceMise en correspondance
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(
s = sin( - )c = cos( - )
dy(1) = y(2)
dy(3) = y(4)
Mécanique Analytiqueet CFAO
13
Mise en correspondanceMise en correspondance
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(
s = sin( - )c = cos( - )
dy(1) = y(2)
dy(3) = y(4)
dy(2) =
cossin
cossin
sin2sin
cos2
1 2
2
2
mgl
mgl
Mécanique Analytiqueet CFAO
14
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(
s = sin( - )c = cos( - )
dy(1) = y(2)
dy(3) = y(4)
dy(2) =
cossin
cossin
sin2sin
cos2
1 2
2
2
mgl
mgl
Mécanique Analytiqueet CFAO
15
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(
s = sin( - )c = cos( - )
dy(1) = y(2)
dy(3) = y(4)
dy(2) =
cmgl
cs
mgls
cc
sin
sin2
2
1 2
2
Mécanique Analytiqueet CFAO
16
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(
s = sin( - )c = cos( - )
dy(1) = y(2)
dy(3) = y(4)
dy(2) =
cmgl
cs
mgls
cc
sin
sin2
2
1 2
2
Mécanique Analytiqueet CFAO
17
s = sin( y(1) - )c = cos(y(1) - )
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(dy(1) = y(2)
dy(3) = y(4)
dy(2) =
cmgl
cs
mgls
cc
sin
y(1)sin2
2
1 2
2
Mécanique Analytiqueet CFAO
18
cmgl
cs
mgls
ccy(3)sin
y(1)sin2
2
1 2
2
s = sin( y(1) - y(3) )c = cos(y(1) - y(3) )
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(dy(1) = y(2)
dy(3) = y(4)
dy(2) =
Mécanique Analytiqueet CFAO
19
cmgl
yycs
mgls
ccy(3)sin
)2()2(
y(1)sin2
2
12
s = sin( y(1) - y(3) )c = cos(y(1) - y(3) )
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(dy(1) = y(2)
dy(3) = y(4)
dy(2) =
Mécanique Analytiqueet CFAO
20
cmgl
yycs
mglyys
ccy(3)sin
)2()2(
y(1)sin2)4()4(
2
1
s = sin( y(1) - y(3) )c = cos(y(1) - y(3) )
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(dy(1) = y(2)
dy(3) = y(4)
dy(2) =
Mécanique Analytiqueet CFAO
21
c
yycs
yys
ccy(3)sin
)2()2(
y(1)sin2)4()4(
2
1
s = sin( y(1) - y(3) )c = cos(y(1) - y(3) )
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(dy(1) = y(2)
dy(3) = y(4)
dy(2) =
Mécanique Analytiqueet CFAO
22
s = sin( y(1) - y(3) )c = cos(y(1) - y(3) )
Search and replaceSearch and replace
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(dy(1) = y(2)
dy(3) = y(4)
c
yycs
yys
ccy(3)sin
)2()2(
y(1)sin2)4()4(
2
1dy(2) =
dy(4) =
cy
yycs
yyys
cc)1(sin
)4()4(
)3(sin2)2()2(2
2
1
Mécanique Analytiqueet CFAO
23
s = sin( y(1) - y(3) )c = cos(y(1) - y(3) )
Fonction différentielle ODE45Fonction différentielle ODE45
function [ dy ] = dp ( t, y )
)4(
)3(
)2(
)1(
dy
dy
dy
dy
dyy
y
y
y
y
)4(
)3(
)2(
)1(dy(1) = y(2)
dy(3) = y(4)
c
yycs
yys
ccy(3)sin
)2()2(
y(1)sin2)4()4(
2
1dy(2) =
dy(4) =
cy
yycs
yyys
cc)1(sin
)4()4(
)3(sin2)2()2(2
2
1
Mécanique Analytiqueet CFAO
24
Résolution numériqueRésolution numérique
options = odeset('RelTol',1e-8);
[t,angle] = ode45('dp',[0:0.1:100],[1 1 10 0],options);
Conditions initiales:
0
10
1
1
Système à résoudre
Temps: de 0 à 100 secondes par pas de 0,1 sec
Mécanique Analytiqueet CFAO
25
Variables utiliséesVariables utilisées
x
x
B
Ax
0
y
y
B
Ay
0
plot ( x , y ) ( 0 , 0 ) ( Ax , Ay ) ( Bx , By )
tntntntn
tttt
tttt
angle
2222
1111
Mécanique Analytiqueet CFAO
26
Premier affichagePremier affichage
%Allocation mémoirex=zeros(3,1);y=zeros(3,1);
%Calcul de coordonnéesx(2)=10*sin(angle(1,1));y(2)=-10*cos(angle(1,1));
x(3)=x(2)+10*sin(angle(1,3));y(3)=y(2)-10*cos(angle(1,3));
%Préparation session graphique et premier affichagefigure;axis([-30 30 -30 30])hold on;line(x,y,'LineWidth',2);
Mécanique Analytiqueet CFAO
27
Boucle d’affichageBoucle d’affichage
%Boucle d'affichagefor i=1:1000 x(2)=10*sin(angle(i,1)); y(2)=-10*cos(angle(i,1));
x(3)=x(2)+10*sin(angle(i,3)); y(3)=y(2)-10*cos(angle(i,3)); line(x,y,'LineWidth',2); end
Mécanique Analytiqueet CFAO
28
Gestion dynamiqueGestion dynamique
%Boucle d'affichagefor i=1:100 x(2)=10*sin(angle(i,1)); y(2)=-10*cos(angle(i,1)); x(3)=x(2)+10*sin(angle(i,3)); y(3)=y(2)-10*cos(angle(i,3)); clf; axis([-30 30 -30 30]); line(x,y,'LineWidth',2); drawnow;
Mécanique Analytiqueet CFAO
29
Temps réelTemps réel
%Boucle d'affichagefor i=1:100 tic; x(2)=10*sin(angle(i,1)); y(2)=-10*cos(angle(i,1)); x(3)=x(2)+10*sin(angle(i,3)); y(3)=y(2)-10*cos(angle(i,3)); while toc<0.1; end; clf; axis([-30 30 -30 30]); line(x,y,'LineWidth',2); drawnow; end
Mécanique Analytiqueet CFAO
30
Gestion anciennes positionsGestion anciennes positions
%Allocation mémoirexold=zeros(3,1);yold=zeros(3,1);
%Boucle d'affichagefor i=1:100 tic; xold(2)=x(2); yold(2)=y(2); xold(3)=x(3); yold(3)=y(3); x(2)=10*sin(angle(i,1)); y(2)=-10*cos(angle(i,1)); x(3)=x(2)+10*sin(angle(i,3)); y(3)=y(2)-10*cos(angle(i,3));
while toc<0.1; end; plot(xold,yold,'w','LineWidth',2);plot(x,y,'LineWidth',2);drawnow; end
Mécanique Analytiqueet CFAO
31
Approche “Approche “orienté-objet”orienté-objet”
Objet graphique
Adresse
Propriété 2
Propriété n
Propriété ...
Propriété 1
Instruction 1
Instruction 2
Instruction ...
Instruction n
Mécanique Analytiqueet CFAO
32
Approche “Approche “orienté-objet”orienté-objet”
Objet graphique
Adresse
YData
Color
ZData
XData
plotaxis
Style
Mécanique Analytiqueet CFAO
33
Récupération de l’adresseRécupération de l’adresse
Objet graphique
Adresse
YData
Color
ZData
XData
Instruction
Style
graph1=plot(x,y,'w*','EraseMode','none');
= 1.05684523 = graph1
Mécanique Analytiqueet CFAO
34
Données en xDonnées en x
Objet graphique
Adresse
YData
Color
ZData
XData
Instruction
Style
graph1=plot(x,y,'w*','EraseMode','none');
= 1.05684523 = graph1
= x
Mécanique Analytiqueet CFAO
35
Données en yDonnées en y
Adresse
YData
Color
ZData
XData
Instruction
Style
graph1=plot(x,y,'w*','EraseMode','none');
= 1.05684523 = graph1
= x
= y
Mécanique Analytiqueet CFAO
36
Pas de données en zPas de données en z
Objet graphique
Adresse
YData
Color
ZData
XData
Instruction
Style
graph1=plot(x,y,'w*','EraseMode','none');
= 1.05684523 = graph1
= x
= y
Mécanique Analytiqueet CFAO
37
CouleurCouleur
Objet graphique
Adresse
YData
Color
ZData
XData
Instruction
Style
graph1=plot(x,y,'w*','EraseMode','none');
= 1.05684523 = graph1
= x
= y
= w
Mécanique Analytiqueet CFAO
38
StyleStyle
Objet graphique
Adresse
YData
Color
ZData
XData
Instruction
Style
graph1=plot(x,y,'w*','EraseMode','none');
= 1.05684523 = graph1
= x
= y
= w
= *
Mécanique Analytiqueet CFAO
39
Variable privéeVariable privée
Objet graphique
Adresse
YData
Color
ZData
XData
Instruction
Style
graph1=plot(x,y,'w*','EraseMode','none');
= 1.05684523 = graph1
= x
= y
= w
= *EraseMode = none
Mécanique Analytiqueet CFAO
40
Instruction graphiqueInstruction graphique
Objet graphique
Adresse
YData
Color
ZData
XData
Instruction
Style
graph1=plot(x,y,'w*','EraseMode','none');
= 1.05684523 = graph1
= x
= y
= w
= *EraseMode = none
= plot
Mécanique Analytiqueet CFAO
41
Accès variables membresAccès variables membres
set(graph1,'XData',xnew,'YData',ynew,'LineWidth',2);
graph1
YData
XData
Mécanique Analytiqueet CFAO
42
Modification données en xModification données en x
set(graph1,'XData',xnew,'YData',ynew,'LineWidth',2);
graph1
YData
XData = xnew
Mécanique Analytiqueet CFAO
43
Modification données en yModification données en y
set(graph1,'XData',xnew,'YData',ynew,'LineWidth',2);
graph1
YData
XData = xnew
= ynew
Mécanique Analytiqueet CFAO
44
Modification paramètres diversModification paramètres divers
set(graph1,'XData',xnew,'YData',ynew,'LineWidth',2);
graph1
YData
XData = xnew
= ynew
LineWidth = 2
Mécanique Analytiqueet CFAO
45
Pour notre problèmePour notre problème
%Préparation session graphique et premier affichagep=plot(x,y,'EraseMode','none');q=plot(xold,yold,'w','EraseMode','none');
%Boucle d'affichageset(q,'XData',xold,'YData',yold,'LineWidth',2); set(p,'XData',x,'YData',y,'LineWidth',2);
Mécanique Analytiqueet CFAO
46
Approche “Approche “orienté-objet”orienté-objet”
%Préparation session graphique et premier affichagep=plot(x,y,'EraseMode','none');q=plot(xold,yold,'w','EraseMode','none');
%Boucle d'affichageset(q,'XData',xold,'YData',yold,'LineWidth',2); set(p,'XData',x,'YData',y,'LineWidth',2);
Recommended