Intégration d’une liste de valeurs

a marqué ce sujet comme résolu.

Bonjour,

Alors voici mon problème, j’ai effectué une série de mesure avec un accéléromètre me donnant une valeur d’accélération toutes les 10ms.

J’ai récupéré ces données dans une liste Python, tracé un graphe en fonction du temps et maintenant j’aimerais intégrer 2 fois ces valeurs afin d’obtenir la position mais je n’y parviens pas.

J’ai pensé à la méthode d’Euler mais je ne parviens pas à la mettre en oeuvre dans ce cas là…

Merci d’avance pour votre aide !

Salut,

Utilise plutôt les intégrateurs existants, comme cumtrapz du package numpy qui utilise la méthode des trapèzes pour intégrer un signal.

+0 -0

Merci beaucoup pour ton aide c’est exactement ce que je cherchais.

Cependant, j’aimerai le programmer moi même sans utiliser une méthode donc ce n’est pas un problème pour programmer la méthode des trapèzes mais je pensais que ça calculais une aire et donc une intégrale donc comment relier ça à l’intégration d’une courbe ?

Faut il répéter la méthode sur un intervalle glissant et ainsi obtenir tous les nouveaux points ?

Merci d’avance

Cependant, j’aimerai le programmer moi même sans utiliser une méthode donc ce n’est pas un problème pour programmer la méthode des trapèzes mais je pensais que ça calculais une aire et donc une intégrale donc comment relier ça à l’intégration d’une courbe ?

Euh je suis vraiment désolé mais cette phrase est incompréhensible… o_O

La méthode des trapèzes est une façon d’approcher une aire (donc une intégrale) particulièrement utile lorsqu’on a une fonction dont les valeurs sont connues sur un ensemble discret de point. Si tu as un ensemble de points (xi,yi)(x_i,y_i), la méthode des trapèzes consiste à dire que

x0xky(x)dx12i=1k(yi+yi1)×(xixi1)\int_{x_0}^{x_k}y(x)\mathrm dx\approx \dfrac 12\sum_{i=1}^k (y_i+y_{i-1})\times(x_i-x_{i-1})

Si tu fais un schéma, tu verras que ce calcul consiste à approximer l’aire sous la courbe par un ensemble de trapèzes dont les sommets sont les abscisses et les points de la courbe.

L’implémentation classique est de calculer la somme cumulée des trapèzes au-fur-et-à-mesure pour se retrouver avec un tableau des valeurs de l’intégrale aux points xkx_k. C’est ce que fait cumtrapz.

Mais la question que je me pose est ce que tu cherches à faire. Si c’est pour t’essayer aux méthodes numériques, pourquoi pas. Mais clairement si le but est d’avoir une vraie application, utilise cumtrapz, ce sera plus rapide à l’exécution et implémenter la méthode des trapèzes soi-même n’a pas un intérêt algorithmique prodigieux.

+0 -0

Non, ce n’est pas entre xkx_k et xk+1x_{k+1}, mais entre x0x_0 et xkx_k. Évidemment, pour calculer la primitive en xk+1x_{k+1} si tu as déjà calculé la primitive en xkx_k, il ne te faut plus que la contribution du trapèze entre xkx_k et xk+1x_{k+1}.

+0 -0

Je comprends pas ce que tu ne comprends pas. L’aire sous la courbe et l’intégrale, c’est la même chose (du moins pour l’intégrale au sens de Riemann qui est celui qui nous intéresse très souvent en physique). Et une intègrale (ce que tu veux tracer) est une différence sur les valeurs prises par la primitive de l’intégrande sur les deux bornes. N’importe quel cours de maths sur l’intégration te l’explique.

+0 -0

Bonjour Romain, Bonjour adri,

Je ne sais pas si vous le savez, mais ce que vous chercher à faire, c’est déjà dans le commerce ! A partir de 3 accélérométres et de 3 gyroscopes, en intégrants 2 fois, on trouve sa position en fonction du temps. Ca s’appelle une centrale de navigation, (ou IRS en anglais). Il y en a dans tous les avions, tous les bateau (les gros), sous marins, …

C’est compliqué à faire … Si tu fais une petite erreur de mesure sur ton accélération, quand tu vas intégrer une fois pour avoir la vitesse, ton erreur va se cumuler, et la vitesse dérivée. Alors quand tu intègres une seconde fois pour avoir la position, alors là, l’erreur se cumule encore plus vite …

Alors, pour récupérer de la précision, il faut faire d’autre mesure (soit de vitesse, soit de position, …) et appliqué un "recalage". C’est le domaine du filtre de Kalman. Tout ça, ça a été inventé pour les mission Apolo, pour aller sur la lune!

Bien venu dans l’inertie!

Bien cordialement.

mais ce que vous chercher à faire

Je cherche rien à faire moi, hein… :-° Après, selon les applications qu’on veut en faire, intégrer numériquement deux fois l’accélération peut donner un résultat tout à fait raisonnable. Je doute que Romain soit en train de mettre au point un système de position pour les transporteurs outre-atlantique ou pour aller sur la Lune…

Pour revenir sur la question de l’intégration elle-même, on a un tuto ici dont la lecture pourrait intéresser l’OP, les questions de l’erreur associée aux méthodes est abordée.

+0 -0

Bonsoir,

Oups!

Je cherche rien à faire moi, hein… :-°

En effet … C’est vrai, c’est un abus de langage …

Si je parlais de l’inertie, c’est parce que c’est une spécialité [que je trouve] très intéressante! Je ne connais pas le niveau de notre ami Romain (ou de toute personne qui lira ce post), mais ça peut peut-être l’intéresser d’avoir une première vision sur le traitement numérique du signal.

Bien cordialement

PS: D’accord commencé le traitement numérique du signal par les filtre de Kalman, c’est un peu hard!

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte