9
votes

Comment mesurer la distance parcourue par iPhone pendant la chute libre?

Pendant la chute libre, l'iPhone est censé envoyer des valeurs d'accélération comme 0 sur tous les trois axes. Alors, comment détecter la distance parcourue par l'iPhone?


1 commentaires

Laissez-moi être le premier à dire: je n'aiche pas votre application :)


10 Réponses :


1
votes

Ignorer la traînée de l'air:

float t; // time since drop
float distance = 9.81f * 0.5f * t * t;


5 commentaires

Non, en vélocité du terminal d'automne libre a été atteinte - l'accélération est zéro, pas g.


J'ai lu la question comme: "Quelle est la profondeur de mon iPhone depuis que je l'ai laissé tomber?"


Pendant la chute libre de l'air, lorsque la vitesse terminale a été atteinte, l'accélération n'est pas nulle mais g.


Vous avez tous deux raison: le téléphone se déplacera à une vitesse constante, alors ne pas accélérer, mais l'accéléromètre lira G, comme s'il était allongé sur une table.


Si vous calculez l'ampleur de l'accélération rapportée du téléphone et soustrayez-la de g, cela devrait donner l'accélération réelle. Au repos, l'accéléromètre lit 9,8 m / s / s, en automne libre, 0,0. À mesure que vous approchez de la vitesse terminale, l'accélération rapportée devrait augmenter lentement à 9,8 m / s, donc l'intégration de la différence entre l'accélération signalée et G devrait vous donner une accélération appropriée. Bien sûr, votre choix de formules de filtrage et d'intégration sera assez important.



0
votes

Distance = 0.5 * GravityAccenteCeleration * Timeoffall 2

sous la forme la plus simple.

Nous pouvons omettre en toute sécurité le frottement et le vent de l'air, étant donné le facteur de forme et le poids de l'iPhone ainsi que les distances que le matériel sera toujours utile lors de la chute. ;)

Cependant, si vous allez avec le téléphone dans une chute libre avant d'ouvrir un parachute, il y a trop de facteurs pour compter pour calculer de manière fiable la distance, basée sur l'accéléromètre lui-même. Il n'est probablement pas adapté à de telles applications, car les lectures sont très instables et que son objectif principal est de déterminer l'orientation de l'appareil ou de détecter un potentiel de potentiel automne libre (dans le cas d'ordinateurs portables où des puces d'accéléromètre similaires sont utilisées) .


0 commentaires

2
votes

Si vos accéléromètres rapportent zéro, vous avez le problème de déterminer lorsque votre motion est terminée.

Déterminez donc la décélération lors de l'impact, puis déterminez la vitesse maximale au début de la décélération, puis travaillez à l'envers à partir de cela. En supposant que le mouvement linéaire, l'absence de vitesse terminale et de résistance à l'air, décélération linéaire (peut-être) et que votre téléphone fonctionne toujours!


1 commentaires

Je pense que l'accélération maximale rapportée de l'uiaccente est trop faible pour que cette méthode fonctionne. Une chute de 1 mètre générera probablement des dizaines à des centaines de g, en fonction de la dureté de la surface de l'iPhone de se reposer.



2
votes

d'un début debout

distance = 0,5 x accélération x temps 2

Accélération gravitationnelle = 9,81 m / s 2

Je vais supposer que vous ne laissez pas tomber le téléphone assez loin pour atteindre la vitesse terminale. Si vous le faites, je doute que votre application soit très utile lorsque vous récupérez le téléphone :)


4 commentaires

Si vous installez l'application de test d'accéléromètre qui graphique la sortie, vous pouvez vous amuser à lancer le téléphone pour tester cela :)


Il n'est pas nécessaire d'atteindre la vitesse terminale pour la traînée pour devenir significative


Pour toute distances probablement «survivable» par le téléphone, il s'agit d'une bonne approximation du premier ordre. La traînée sera un facteur, mais étant donné la difficulté du calcul (vitesse relative freestream, l'orientation de l'iPhone par rapport au Freestream entrant, etc.), il est probablement préférable de partir.


Comment faire glisser un facteur? L'accélération due à la traînée ne sera-t-elle pas mesurée par l'accéléromètre?



0
votes

Ceci est très simpliste, car vous devez rendre compte du frottement de l'air. Le frottement de l'air provoque une vitesse terminale «A». Seulement à la vitesse terminale que l'accelléomètre indique 0.

Les formules données ici assument une chute libre dans un vide (pas de friction).

En d'autres termes, il est assez compliqué de calculer la distance parcourue (un problème est que la vitesse du terminal dépend de l'orientation du téléphone tout en chute).


2 commentaires

L'accelléomètre n'indiquera pas 0 à la vitesse terminale mais l'accélération gravitationnelle.


Je ne sais pas comment l'accéléromètre de l'iPhone fonctionne (ou comment il est calibré). Si cela renvoie l'accélération gravitationnelle lors de la conserver parfaitement, alors vous avez raison).



3
votes

La mise en œuvre la plus simple et la plus naïve consiste à goûter à l'accéléromètreData et à utiliser la formule suivante.

v+=a*dt;
d+=v*dt;


0 commentaires

1
votes

Une solution qui tiendrait compte de la question de la résistance au vent, vous pouvez utiliser la différence entre l'accélération de la gravité et votre norme réelle d'accélération que vous lisez,

d 2 x / dt 2 = g - | a |

où g = 9,8 et | a | = sqrt (a 1 2 + a 2 2 + a 3 2 ) où un n sont les lectures de l'accercheur sur chaque axe.

Puis résout l'équation différentielle numériquement, avec quelque chose comme la méthode d'Euler.

Vous pouvez même être intelligent et rechercher une valeur locale de G avec GPS.


0 commentaires

-1
votes

L'accéléromètre lit 0 (ou g) sur tous les 3 axes, qu'il s'agisse d'une chute libre ou d'une table. Par conséquent, la question est discutable, car il n'ya aucun moyen de déterminer la distance sans faire l'hypothèse de la chute libre.


1 commentaires

Tort. L'accéléromètre mesure 1 vers le bas lorsque sur la table et zéro en cas de chute libre.



10
votes

Ne faites pas confiance aux lois de Newton, ils ignorent la traînée de l'air, la rotation de l'iphone, etc. Utilisez une approche empirique à la place. Laissez l'appareil tomber de plusieurs hauteurs comme 1m, 2m, 5m, 10 m, 30m ... Répétez plusieurs fois pour chaque hauteur. Dans chaque fois la mesure de l'automne. Résultats approximatifs par Spline. Calculer une fonction inverse.


2 commentaires

+1 J'aime cette réponse. Traquez un nuage de points en utilisant différentes hauteurs et angles différents lorsqu'il est tombé, rotatif lent, rapide et ne rotatif. Puis proposez une belle spline d'approximation.


Et ne testez pas cela sur mon iPhone.



0
votes

Gardez également à l'esprit que le téléphone est très susceptible de tomber dans une sorte de scénario en chute. Au fur et à mesure que le profil du téléphone change, la glisser va changer et l'accéléromètre ne lira pas zéro.


0 commentaires