Dossier : Ma centrale inertielle

Ce dossier regroupe une série d'articles sur l'avancement de la construction de ma centrale inertielle. Ces articles regroupent mes réflexions, essais, résultats et algorithmes.

Acte I : Les premiers tests sur les capteurs

 

>> Retour à la liste des dossiers

2 commentaires à “Dossier : Ma centrale inertielle”

  1. Bonjour à tous,
    Je poste mon commentaire en espérant que je n’arrive pas après la bataille. Je commencerai par l’accéléromètre, il faut impérativement l’alimenter par une tension très stable (pas l’alimention générale du system). Il faut choisir un modele qui possède sa propre alim (Stabilisée de 3,3V par exemple). Cela fait on récupère la sortie du convertisseur pour chaque axe de l’accéléromètre (12Bit => entre 0 …et 4095).
    Cela nous donne pour un axe (par ex. X) -> ValeurAxeX . Vref . / 4095 (soit au hasard une valeur saisie de 2172.) on aura 2172 . 3,3 . / 4095 = 1,75V
    La tension pour la valeur 0G sera de Vref / 2 soit 3.3/2 = 1,65 -> 1,75 – 1,65 = 0,10V
    La « datasheet » nous donne la sensibilité du capteur en V/g par ex : 0,4785V/g
    Donc pour terminer nous aurons la valeur G pour l’axe : 0,10 / 0,4785 = 0,208g
    Maintenant pour obtenir l’inclinaison de notre système il faut faire un peut de géometrie. En admettant que nous avons obtenu par le calcul precedent les resultats suivant pour les 3 axes
    Acc[X] = 0,208g ; Acc[Y] =0,792g ; Acc[Z] =0,335g
    Acc[system] = SQRT( Acc[X]^2 + Acc[Y]^2 + Acc[Z]^2) (Pythagore en 3D)

    Cos(Angle[projXsuraxeX] = (Acc[x] / Acc[System])
    Cos(Angle[projYsuraxeY] = (Acc[Z]/ Acc[system])
    Cos(Angle[projZsuraxeZ] = (Acc[Z]/ Acc[system]

    Avec Acc(systeme) = SQRT( Accx^2 + Accy^2 + Accz^2)
    Ce qui donne
    AngleX = arcos(Acc[X]/Acc[system])
    AngleY = arcos(Acc[Y]/Acc[system])
    AngleZ = arcos(Acc[Z]/Acc[system])

    Pour le gyroscope (on utilisera les rotations autour des axes X et Y), c’est le même mode de calcul soit par exemple le résultat sur la sortie du convertisseur (12Bit => entre 0 …et 4095) du gyroscope (rotation autour de X) on obtient 1950 ce qui nous donne => 1950 . 3,3 / 4095 = 1,571V
    La « datasheet » nous donne pour 0 Variations (Vzerorate) -> 1,23V et La sensibilité du gyroscope -> 0,002V/deg/sec
    Donc nous avons : vitesse de rotation autour de l’axe X ((1950 . 3,3/4095)-1,23)/0,002= 170 deg/sec

    En conclusion la régulation de vitesse des moteurs pourra se faire en utilisant l’accéléromètre qui nous donne l’inclinaison du système. Le système devra ramener l’ensemble à l’équilibre (Inclinaison Zero) et l’on fera une correction par le gyroscope pour "amortir" un peu les réactions!!!. (Certains utilisent des filtres ) En effet la gravitation terrestre induit une erreur sur les axes de l’accéléromètre.(On est pas dans l'espace) Enfin pour terminer il faudra penser à recaler le gyroscope à intervalle régulier car ils ont la fâcheuse idée de beaucoup dériver.

    • Bonjour, je vous rassure, vous n'arrivez pas après la bataille ! J'ai mis le projet en stand-by suite à un problème de communication I2C. Je le reprendrais quand j'aurais un peu plus de temps.

      En tout cas, merci pour cette explication. Votre méthode est valable (comme vous le dites vous même) pour un système SANS accélération et en négligeant le biais du gyroscope. Dans ce cas, je compte commencer par tester cette méthode là : http://www.ferdinandpiette.com/blog/2011/05/le-filtre-de-kalman-etendu-principe-et-exemple/ qui me permettra de prendre en compte et de calculer le biais.

      Ensuite, j'ai plusieurs autres méthodes en tête qui me permettront de prendre en compte cette accélération.

      Ferdinand Piette

Laisser un commentaire

Vous pouvez utiliser ces tags et attributs HTML&nsbp;: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

© 2011-2012 Ferdinand Piette