[quote=“gring, post:8, topic: 29527”]Bon, on dit qu’on est au bac.
Le truc, c’est de ne pas s’embrouiller les pinceaux, il y a beaucoup de variables qui dépendent d’autres, il faut donc choisir celles que l’on veut fixer en fonction de celles que l’on veut trouver.
Partons du cas général:
td: date du départ
tt: date de la transition accélération/décélération
tf: date d’arrivée
ad: accélération
af: décélération
vd: vitesse initiale (on prend le cas le plus large)
vt: vitesse au moment de la transition (vitesse maximale)
vf: vitesse finale
xi: position initiale
xt: position au moment de la transition
xf: position finale
il y a des variables qui dépendent d’autres, par exemple, la vitesse maximale dépend de la distance parcourue (xf-xi), du temps de déplacement, du dosage accélération/décélération et des vitesses initiales/finales…
On a deux périodes distinctes, la phase d’accélération ( td < t < tt), et la phase de décélération (tt < t <tf)
pendant ces deux périodes:
a(t) = ad
a(t) = af (avec af < 0)
par intégration, on obtient:
v(t) = adt + C1
v(t) = aft + C2
C1 = vd - adtd
C2 = vf - aftf
=>
v(t) = adt + vd - adtd
v(t) = aft + vf - aftf
par intégration, on obtient:
x(t) = adt²/2 + t(vd - adtd) + C3
x(t) = aft²/2 + t*(vf - af*tf) + C4
C3 = xd - adtd²/2 - td(vd - adtd) = adtd²/2 -vdtd + xd
C4 = aftf²/2 -vf*tf + xf
x(t) = adt²/2 + t(vd - adtd) + adtd²/2 -vdtd + xd
x(t) = aft²/2 + t*(vf - aftf) + aftf²/2 -vf*tf + xf
Dans cette solution, on a des variables inter-dépendantes, il faut donc faire les remplacements qui vont bien
dans notre cas de programmeux, ce que l’on cherche à définir, c’est:
xf et xd les points de départ et d’arrivée
vd et vf les vitesses de départ et d’arrivée on peut simplifier en les considérant nulles, mais vu qu’on est là, hein…
td, tt et tf
Les inconnues sont donc ad et af… pour les trouver, il suffit de regarder vt:
vt = adtt + vd - adtd = aftt + vf - aftf
Il nous faut une seconde équation, on n’a qu’a prendre la position au moment de la transition:
xt = adtt²/2 + tt(vd - adtd) + adtd²/2 -vdtd + xd = aftt²/2 + tt*(vf - aftf) + aftf²/2 -vf*tf + xf
et là on a un magnifique système de deux équations à deux inconnues, à partir de ça, on détermine les accélérations en fonction des autres variables, on remplace dans les equations de x(t), et c’est gagné…[/quote]
J’ai pas tout lu, mais il te manque la phase “stable” entre les phases d’accélération et de ralenti :
J’ai une phase qui monte jusqu’a la vitesse maximum, puis une phase stable, et la phase de décélération.
Je ne connais ni la valeur de l’accélération, ni la vitesse maximal à atteindre (je dois les déduire de la distance à atteindre ainsi qu’aux autres données). C’est là le point complexe du problème ^^.
[quote]Voilà les données que j’ai :
Tb : Date de début de mouvement
Te : Date de fin du mouvement
D : Distance totale à parcourir
Ta : Durée de la période d’accélération
Td : Durée de la période de décélération[/quote]
Petite précision : (Te-Tb) >= (Ta+Td)
Autre précison : je sais que c’est possible, j’ai calqué mon problème sur le modèle des DoubleAnimation de WPF…
Au pasage je m’aperçois qu’il faut que je reprenne les maths… Si tu trouves la solution, essais de me dégager une fonction f(x) qui contient une solution magique à mon problème ^^