Acceleromètre

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Acceleromètre

Message par bdureau le Mar 2 Aoû - 13:16

Voici les capteurs acceléromètre que j'ai regardé
https://drive.google.com/file/d/0B6g3c9kJ3XBfaWRkbjM1bjlOVGc/view?usp=sharing
seul ceux faisant plus de 50g sont exploitable dans notre hobby
Je suis en train de regarder pour en ajouter un dans mes alti
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Mar 2 Aoû - 21:54

Salut

J'ai téléchargé les quatre possibles. J'ai vu 'sortie analogique'
Je regarde les fichiers

lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Mar 2 Aoû - 22:03

Merci Patrick
J'ai acheté un shield vierge pour un Arduino Mega 2560 sur lequel je compte faire un nouveau prototype d'ordinateur de vol. Maintenant que j'arrive à piloter mes alti à partir de mon téléphone, faire de la telemetry, jouer avec des modules GPS cela ouvre des possibilités sympa.
Boris
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Ven 5 Aoû - 14:29

Bonjour

Voici de mes consultations des fichiers :

ADXL193
offset +-100 voire +-125 mV
alimentation 5v, 2mA
frequence coupure haute 400 Hz
+-120 ou +-250 G
17.1--18.9 ou 7.6--8.4 mV par G
sortie analogique sans A Op indispensable, elle donne de 0 à 5v

ADXL311
'obsolète'
+-2 G

ADXL150, ADXL250
+-50 G
alimentation 5v 3 à 5 mA
150 : un axe
250 : deux axes
sortie analogique
un Amplificateur Opérationnel externe est nécessaire pour 'Increase Output Scale Factor'
sinon la sortie peut être mesurée (numérisée) directement
elle donne de 0 à 5v
33--43 mV par G
offset 0.45--0.55 v
frequence coupure haute 1000 Hz


Je penses à priori pour le dernier (1 ou 2 axes)


La suite pour l'étalonnage, car il y a une tolérance sur la sensibilité
Je ne pense pas à dangereux, imprécis (ou plutot demandant une préparation, de la prudence/prévoyance
et demandant une constante dans la grandeur voulue ainsi 'imposée')
Bref je ne penses pas à moto, auto, ....

Non je pense à une barre de bois avec le capteur et sa transmission sans fil, son alim d'un côté
avec le contrepoids de l'autre
et enfin avec un moteur réducteur au centre (attention à ses paliers cependant)

R w² = V² / R
w = 2pi N = 2pi n/60

barre de 50 cms de rayon avec en trs min, donnent en G
60 2
120 8
240 32

Sinon avec 'notre pesanteur terrestre' et en posant une linéarité du capteur
il est déjà possible de quantifier avec le capteur pieds puis tête vers le sol


lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Ven 5 Aoû - 15:03

OK donc un ADXL150 ou 250
Et ensuite on peut faire quoi d'intéressant avec ?
J'ai commencé à lire pas mal de truc sur les forums et il est difficile de pouvoir mesurer précisément la vitesse avec ...
Par contre on peux mesurer l’accélération ...Ce que j'aimerai savoir en fait c'est quels type d’événements du vol on peut déduire en étant certain à 100%
Est ce que quelqu'un à des courbes d'alti commerciaux avec l'accélération?
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Ven 5 Aoû - 15:07

Pour l’étalonnage je te montrai à l'occasion comment c'est fait pour les drones.
Il faudrait que tu passes que l'on voit ça ensemble
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Ven 5 Aoû - 19:51


Salut

Ben déjà on peut mesurer l'accélération sur les 3 axes X Y Z. Je continue avec Z qui suit le long de la fusée
En intégrant dans le temps l'accélération (expression mathématiques obligée), on obtient la vitesse (ici en Z)

On peut aussi mesurer la vitesse (ainsi que l'altitude par la pression atmosphérique) par le 'tube de Pitot'
qui demande capteur pression différentielle et capteur de pression absolue

De toutes façons, il y a une incertitude (imprécision) sur les mesures faites sur les grandeurs physiques
Inévitable et cela fait partie du 'deal' (si je puis dire) de la mesure industrielle, spatiale, ..

Je pense qu'il faut mesurer et déterminer une grandeur par deux moyens en parallèle, ici la vitesse avec
* intégration de gamma mesurée
* mesure pression différentielle au 'tube de Pitot'

D'ailleurs l'étalonnage du 'tube de Pitot' est plus simple à faire car en fonction de la vitesse
Il est ainsi possible de l'étalonner jusque 36 mètres par seconde (vitesse maximale posée en fonction du respect de la loi)
Après il faut avoir un rdv avec une soufflerie, un labo 'air et fluide', ..

La vitesse en Z et l'altitude sont liés par l'angle d'inclinaison (ou plus exactement par son sin() )

L'intégration (ou en fait la double intégration) sur les axes X Y doit être plus propre (moins de bruit)
car les valeurs d'accélération sont plus petites qu'en Z

Attention pour les courbes, la vitesse etc .. dépendent du propulseur, de la masse de la fusée, de son état de surface
Cela me rappelle qu'à Sissonne en été 2003 (avec 'nos amis'), un jeune voulait déterminer le Cx (coefficient aérodynamique) de sa
fusée, à partir de uniquement une mesure d'accélération. Je n'ai pas su s'il a obtenu au final ce qu'il attendait

Pour finir avec en base 33mV par G et une amplitude exploitée de 0 à 5v
2^8 donne 256 et 19.5 mV par pas
2^10 donne 1024 et 4.9 mV par pas

Sinon pour passer, tu dis quand (un dimanche après que je me sois promené dans le grand parc de Saint Cloud par exemple)
je pense que ce sera plus commode qu'un soir en semaine. Mais sinon tu dis


lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Lun 8 Aoû - 14:02

Ou pourquoi pas. A voir à la rentrée.
J'ai récupéré des programmes d'ordinateur de vol, mesurer et enregistrer les données en provenance des capteurs ça je sais faire. Tracer des graphiques avec des données en provenance des capteurs je sais faire également. Là ou ça se complique c'est quand il faut les interpréter, faire quelques calculs un peu complexes.... j'ai quelques lacunes en maths car je n'ai pas fait ça depuis plus de 20 ans...
Je pense qu'à 2 ou pourrai arriver à quelque chose.
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Lun 8 Aoû - 21:27

Voici une application de l'utilisation de gyroscope et accelerometre
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Lun 8 Aoû - 21:30

Je suis certain que cela permet à nos fusées un peu courte d'avoir une trajectoire bien verticale
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Lun 8 Aoû - 22:48

Pour ceux que cela interresse voici les plans qui comme vous pouvez le voir sont très simple et à la porté de n'importe qui capable de se servir d'un fer à souder!!!!.
http://workshopscience.com/arduino-rocket-stabilization/
J'ai également le code complet
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Mar 9 Aoû - 9:03

Salut

Gyroscopie s'ajoute au sujet
Voici déjà ces deux pages :

https://fr.wikipedia.org/wiki/Gyroscope

https://fr.wikipedia.org/wiki/Pr%C3%A9cession

lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Mar 9 Aoû - 10:38

Patrick
En général les capteurs disposent à la fois d'un gyroscope et d'un accéléromètre
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Mar 9 Aoû - 13:17

Salut

Excuse moi, j'en était resté aux capteurs d'accélération dont j'ai regardé les docs
Un capteur de mesure de gamma, avec gyroscope, c'est un capteur évolué (avec
le prix aussi je pense)

Ce capteur alors, avec les trois gamma en x y z, mesure donc les déplacements
mais en restant sur le repère terrestre (oui c'est le terme le plus pertinent)
En effet le gyroscope (ici je pense), permet de garder ces trois capteurs sur
le repère de la surface de la terre, bien qu'il y ait une inclinaison pendant
le vol de la fusée

Si on utilise trois capteurs simples, ils seront référencés avec le repère de la
fusée, qui comme j'ai dit, s'incline puis se retourne pendant tout le vol

Par contre (sujet de physique et de maths), un gyroscope lié à une fusée en translation
(mais pas en rotation pour qu'il puisse tourner) imposera à la fusée une trajectoire
perpendiculaire au sol (car il la maintiendra ainsi)

Ceci dit pour assurer la continuité de rotation de la 'toupie', il faudra oui un moteur
électrique mais qui imposera un couple contraire à la fusée (principe de l'action réaction
cf aussi l'anticouple de queue pour un hélicoptère)
Bref, cela aura tendance à faire tourner la fusée sur son axe dans le sens contraire
Une solution (hélicoptère bi rotor, drones), c'est d'avoir deux toupies tournant
en sens contraire (exactement à la même vitesse, d'ou présence mesure asservissement)

En tout cas, c'est un sujet de calculs avec ces données (imposées ou à déterminer) :
masse fusée
moment inertie fusée
masse toupie
moment inertie toupie
vitesse de rotation toupie
Ce pour obtenir la fusée à la perpendiculaire de la surface du sol

lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Mar 9 Aoû - 13:34


Encore moi

J'ai pu voir la vidéo et le workshop à l'instant (ce matin je ne pouvais pas par la politique de protection du réseau interne)
J'ai contourné
En fait j'avais 'ressorti' le gyroscope mécanique (masse tournante) qui existe encore

Ici le gyroscope électronique (mesure de la direction de la pesanteur terrestre) permet de donner
la valeur de l'inclinaison de la fusée par rapport à la perpendiculaire au sol

Je vais revoir son principe de fonctionnement,
et aussi son comportement en présence d'une autre accélération (celle du propulseur)

Je vois aussi ici que l'actionneur est composé de servomoteurs agissant sur les ailerons (quatre en fait)
J'en était resté là aussi aux propulseurs latéraux (repositionnement des satellites en orbite, fusée ds BD Tintin)

Ceci dit la réaction donnée par l'orientation de l'aileron dépend de la vitesse² de la fusée

lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Mar 9 Aoû - 14:50


Oui j'ai toujours eu une démarche d'analyse (mathématiques, physique, ..) pour concrétiser les idées

En fait pour un asservissement, j'ai l'habitude d'étudier ainsi pour obtenir en résultat :
* un système qui réagit au mieux sans osciller, battre (ou sans pomper comme disent les automaticiens)
* qui n'est pas mou (ou qui ne réagit pas lentement)
* bref qui réagit dans l'optimum (une légère oscillation amortie pour un temps de réponse le plus bref possible comme j'ai appris; je me dispense ici du P I D)
* un minimum d'essais en pratique
* pour finir, un système transplantable sur une autre fusée (pareil ou différentes en quelques points)

Dans l'état actuel, j'ai beaucoups d'inconnues, à savoir :
* distance ailerons mobiles ---- centre de gravité
* moment d'inertie de la fusée par rapport au centre de gravité
* effort latéral en fonction de l'orientation des ailerons (ou des pales, peut on dire ?)

Oui cette orientation provoque en déviant l'écoulement de l'air passant autour de la fusée durant le vol, provoque la force latérale désirée
ARIANE joue plutôt sur l'orientation de ses propulseurs, à sa base

Pour déterminer cette caractéristique primordiale (et la plus dure à obtenir), et dépendant aussi de vitesse²
à défaut d'essais dans une soufflerie, j'ai pensé aux quatre ailerons répartis sur tous les quarts de cercle
mais ayant dans l'ordre de circonférence, ces orientations :
* theta dans sens horaire
* theta dans sens antihoraire
* theta dans sens horaire
* theta dans sens antihoraire
Cette configuration a été réfléchie, pour obtenir à chaque aileron, la force latérale, sans entraîner une rotation de la fusée
et sans entraîner un changement d'inclinaison, de trajectoire

En mesurant la force à l'attache de chaque aileron par les moyens adaptés (capteur type jauge pont de Wheastone)
durant le vol, il est possible de la caractériser en fonction de vitesse²

Là, sans 'soufflerie', il faudra plusieurs vols pour theta à 0°, 15°, 30°, 45° et d'autres angles

Oui, il y a plusieurs moyens pour obtenir un résultat

lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Mar 9 Aoû - 23:14


lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Mer 10 Aoû - 13:32


Bonjour

Tout d'abord
le roulis est la rotation autour de l'axe longitudinal de la fusée (bref l'axe la traversant d'un bout à l'autre)
le tangage est la rotation autour d'un axe perpendiculaire à l'axe précécent, au niveau du centre de gravité

La force aérodynamique est 0.5 coeffaéro rauair surfacefrontale vitesse²
avec rauair = 1.225 kg par m^3
surfacefrontale en m² (pégase 0.0038)
coeffaéro maxi 4.1 (0.4 à 0.6 souvent, pégase 1.5)

Pour Pegase
masse 3.75 kgs, angledépart 75°, et résultats
1000 mètres culmination
630 mètres éloignement
255 m/s atteints
+310 et -80 m/s² atteints

Un aileron orientable d'angle theta, présente une Force Aérodynamique telle que
0.5 coeffaéro rauair surfacefrontale vitesse² * sin(theta)
en effet la surface présentée en obstacle à l'avancement de la fusée est
surfacefrontale * sin(theta)

Autre chose, cette pale inclinée dévie le courant d'air, faisant apparaître en aval deux composantes de poussée
dont une latérale (qui nous intéresse) en sin(theta)

Pour cette poussée
une force en Newtons est le produit masse accélération soit kg m/s²
et le produit débit massique par vitesse donne kg/s m/s
en outre le débit massique est rau * vitesse * section soit kg/m^3 * m/s * m²

Poussée latérale est vitesse² * rau * section * sin(theta)

Je considère pour ma part,theta de 0 à 45° (mi angle droit)
et la vitesse de déplacement non influée par cette orientation de pales

Comparons section avec 0.5 coeffaéro surfacefrontale
le produit est plus élevé que la section
en effet je pose section = 5cm x 1cm = 0.0005 et surfacepale = 5cm x 10cm = 0.005

Maintenant avec ces données
coeffaéro 1, surface 0.005 m², section 0.0005 m², vitesse posée 150 m/s, rauair 1.225

0.5 * 1 * 1.225 * 0.005 * 150² * sin(theta)
68.9 sin(theta)
150² * 1.225 * 0.0005 * sin(theta)
13.8 sin(theta)

avec theta < 0.1 radian (< 5.7°), on simplifie sin(theta) par theta
voire avec theta < 0.3 rd (< 17.1°)

ce qui donne avec theta = 17.1°, sin(theta) # 0.3
20.3 Newtons
4.1 Newtons


Je continue avec les moments d'inertie

J = intégrale de r² rau dv

pour une masse M située au rayon R, J = M R²
pour un cylindre de rayon R, masse M, J = 0.5 M R²
pour un baton de longueur 2R, masse M, J = 0.33 M R²

{
2 intégrale de 0 à R de rau r² s dr
= 2 rau s [ 0.33 r^3 ]0:R
= 2 0.33 rau s R^3
= 0.66 R² M/2
}

Pour Pegase
diamètre 63mm (rayon 31.5mm)
longueur 1.9m (2*0.95m)

Le moment d'inertie vu du roulis est
J = 0.5 3.75 0.0315² = 0.00186 kg m²
Vu du tangage
J = 0.33 3.75 0.95² = 1.117 kg m²

Le couple de tangage est (pour les valeurs 20.3 & 4.1 N)
C = 20.3 * 0.95 ou 4.1 * 0.95 = 19.3 ou 3.9 N m

Je pose phiV le parcours angulaire pour la correction du tangage

Déjà un calcul avec deux ailerons (pales), theta à 17.1° et phiV à 45° (ou pi/4 radian, réaliste)

C = J * dphi²/dt² (accélération angulaire)
en supposant cette accélération constante
dphi/dt = T * dphi²/dt²
phi' = T * phi"
T = phi'/phi"
phi = 0.5 T² phi"

phiV = 0.5 Tv² phi" Tv² = 2 phiV / phi" Tv = 1.414 racine(phiV / phi")

phi" = C/J = 19.3 ou 3.9 / 1.117 = 17.25 ou 3.5 rd/s²

Tv = 1.414 racine( 3.1416/4 / 17.25 ou 3.5 ) = 1.414 racine( 0.0455 ou 0.224 )
= 0.3 ou 0.67 seconde

phi' atteint = 0.3 * 17.25 ou 0.67 * 3.5 = 5.17 ou 2.34 rd/sec
donnant 5.17 ou 2.34 * 0.95 = 4.9 ou 2.2 m/sec

Je tiens maintenant compte de la résistance aérodynamique en tangage
couple = intégrale de 0 à R de 0.5 rauair coeffaéro (r phi')² diamètre dr
= 0.5 rauair coeffaéro (phi')² diamètre intégrale de 0 à R de r² dr
= 0.5 rauair coeffaéro (phi')² diamètre intégrale de 0 à R de r² dr [ 0.33 r^3 ]0:R
= 0.5 rauair coeffaéro (phi')² diamètre 0.33 R^3
= 0.5 1.225 1 (phi')² 0.063 0.33 0.95^3
= 0.0109 phi'²
soit avec phi' atteint 5.17 ou 2.34
0.0109 * 5.17 ou 2.34
= 0.056 ou 0.0255 N m
valeurs inférieures aux couples de tangage

Cela me donne une simplification
couple de tangage donne accélération angulaire, qui donne ensuite phi (angle de tangage)

L'actionneur est le servomoteur,à qui on donne en entrée l'angle theta voulu (d'orientation pale)
Ce servomoteur possède un asservissement en position et implique en sortie
un couple de tangage, en fonction de theta (avec theta < 17°)

Ce couple de tangage entraîne (via 1/J) une accélération angulaire du tangage
Cette accélération donne (via double intégration physique) le déplacement voulu en tangage

Et pour finir, la commande de consigne theta est issue de la soustraction (via un coeff)
de angle tangage voulu par angle tangage réel

L'équation de la partie G (ou B O) de l'asservissement est faite avec K / p²
donnant cette équation en B F, K / (K + p²)
Ce pour les automaticiens

En conclusion, je compare les temps calculés de réaction 0.3" 0.67" avec le nombre d'actualisations de la
consigne theta par ARDUINO, et avec le temps de réponse du servomoteur

Des manips mesures que j'ai faites avec l'oscillo
ARDUINO, dans la boucle de fond void loop(), j'ai placé une instruction XOR d'inversion de l'état de
la sortie LED, puis je mesure à cette dernière la période du signal
servomoteur, je le commande avec un signal 'carré' en guise de consigne, puis je mesure le signal
sur le potentiomètre de position angulaire, déterminant enfin la constante de temps


lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Mer 10 Aoû - 16:43

Patrick
J'ai les servos, les capteurs et la carte Arduino qui vas bien. En revanche le programme que j'ai trouvé a l'air un peu simpliste
Est ce que cela veut dire que l'on est obligé d'adapter le programme à chaque fusée? ou est ce que l'on pourrai faire un programme suffisamment intelligent pour réagir en fonction de la fusée?
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Mer 10 Aoû - 16:53

lem75pat a écrit:

Des manips mesures que j'ai faites avec l'oscillo
ARDUINO, dans la boucle de fond void loop(), j'ai placé une instruction XOR d'inversion de l'état de
la sortie LED, puis je mesure à cette dernière la période du signal
servomoteur, je le commande avec un signal 'carré' en guise de consigne, puis je mesure le signal
sur le potentiomètre de position angulaire, déterminant enfin la constante de temps


Peux tu clarifier s'il te plait comment tu as fait pour simuler
Au fait tu es toujours en vacances?
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Jeu 11 Aoû - 9:24


Salut

Oui je suis rentré à Thalès (comme le nom de la page du forum)
Le 'roman' ci dessus je l'ai fait à partir du site pro

Pour te répondre, il y a des fusées oui qui peuvent obliger à adapter le programme, en raison de un ou plusieurs paramètres
ou en raison d'une conception particulière

Un programme intelligent est toujours possible mais cela veut dire qu'il n'a que le vol lui même, pour déterminer
et ensuite tenir compte des paramètres intrinsèques de la fusée
Eventuellement, il serait possible de faire passer le module en mode étalonnage, et l'on mettrait à sa demande la fusée
debout pointe en haut
idem pointe en bas
à l'horizontale
la faire tourner sur elle même à une vitesse donnée
la faire circuler dans un flux d'air à une vitesse donnée
bref dans des conditions lui permettant de retrouver ces précieux paramètres
Mais là un peu dur dur, bien que possible
C'est de la mécanique, de l'automatique linéaire, ..

J'ai le ARDUINO UNO
Le µC commande une LED présente sur le c imp, à un bit précis dans un de ses ports

Ayant développé, je connais les deux 'void' à savoir init() et loop()
loop() de par sa fonction est répété répété ..
J'avais eu comme idée pour déterminer la période de répétition de loop(), d'agir
sur la commande de cette LED, tout simplement en inversant son état à chaque passage
La LED clignote donc (très rapidement)

Avec mon oscilloscope, je mesure à l'Anode de cette LED, ce qui m'intéresse

Pour un servo moteur, c'est plus profond
Il faut l'ouvrir pour pouvoir voir (et mesurer la tension au curseur) le potentiomètre rotatif
lié avec l'axe de sortie. C'est lui qui transmet la position courante au montage interne
Un servo moteur est un système du premier ordre, car c'est un asservissement en position angulaire
(je veux être précis)
J'ose son équation : 1 / p (1 + tau p)

La manip est de déterminer tau. Tout simplement en envoyant à l'entrée un signal carré (ARDUINO, GBF, ..)
imposant des changements de consigne de position entre deux valeurs fixes
Avec mon oscilloscope, je mesure au curseur du potar. Et après exploitations, j'obtiens tau

Oui j'ai vu qu'avec le MPU6050, le gyroscope électronique sort une vitesse angulaire

Le programme est comme tu dis simpliste, oui
C'est pour cette raison que j'ai voulu faire ce 'roman'
Je pense qu'il l'a fait pour sa fusée de dimension ordinaire mais petite
Le travail est quand même bien fini, mais il faut le continuer avec les notions d'automatisme
Le soucis est d'optimiser ou d'obtenir la trajectoire voulue avec un minimum d'essais (et un minimum de propulseurs utilisés)

J'ai copié collé son programme, il faut que je vois le traitement entre mesures deu MPU6050 ET theta à l'entrée servos

lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Jeu 11 Aoû - 9:44


setup() et non init() autant pour moi
Oui, il y a setup() loop() ainsi que deux subroutines ic2read ic2write
A premiere vue il transmet simplement aux servos la mesure à partir du MPU6050 (via le traitement de base)

MPU6050

This code is based on the MPU6050 example that is available from the arduino website although I have heavily modified it to suit my needs.

#include
#include “Kalman.h” Tells the arduino to include certain libraries that will be required in the code
#include

Servo myservoX;
Servo myservoX1;
Servo myservoY; This names different entities so we can reference them later on
Servo myservoY1;
Kalman kalmanX;
Kalman kalmanY;

uint8_t IMUAddress = 0x68;

/* IMU Data */
int16_t accX;
int16_t accY;
int16_t accZ;
int16_t tempRaw; Declares different variables
int16_t gyroX;
int16_t gyroY;
int16_t gyroZ;

double accXangle; Angle from accelerometer
double accYangle;
double temp;
double gyroXangle = 180; Angle from gyroscope
double gyroYangle = 180;
double compAngleX = 180;
double compAngleY = 180;
double kalAngleX;
double kalAngleY;

uint32_t timer;


void setup()
{
Wire.begin();
Serial.begin(9600);
myservoX.attach(Cool;
myservoX1.attach(11); Tells the arduino where different components are attached
myservoY.attach(9);
myservoY1.attach(10);
i2cWrite(0x6B,0x00); This disables sleep mode on the arduino
kalmanX.setAngle(90); Here we input the starting angles for kalman filter
kalmanY.setAngle(90);
timer = micros();
}



void loop()
{ At this point, the program will do an infinite loop
/* Update all the values */
uint8_t* data = i2cRead(0x3B,14);
accX = ((data[0] << Cool | data[1]);
accY = ((data[2] << Cool | data[3]); Arduino requests values from gyroscope and accelerometer
accZ = ((data[4] << Cool | data[5]);
tempRaw = ((data[6] << Cool | data[7]);
gyroX = ((data[8] << Cool | data[9]);
gyroY = ((data[10] << Cool | data[11]);
gyroZ = ((data[12] << Cool | data[13]);
accYangle = (atan2(accX,accZ)+PI)*RAD_TO_DEG;
accXangle = (atan2(accY,accZ)+PI)*RAD_TO_DEG;
double gyroXrate = (double)gyroX/131.0;
double gyroYrate = -((double)gyroY/131.0);
gyroXangle += kalmanX.getRate()*((double)(micros()-timer)/1000000);
gyroYangle += kalmanY.getRate()*((double)(micros()-timer)/1000000);
kalAngleX = kalmanX.getAngle(accXangle, gyroXrate, (double)(micros()-timer)/1000000);
kalAngleY = kalmanY.getAngle(accYangle, gyroYrate, (double)(micros()-timer)/1000000);

timer = micros();
Serial.println();
Serial.print(“X:”);
Serial.print((int)kalAngleX-90);
Serial.print(” “);
Serial.print(“Y:”);
Serial.print((int)kalAngleY-90);
Serial.println(” “);

if (((int)kalAngleX-90) <=125)
{
if (((int)kalAngleX-90) >=55)
{
myservoX.write((int)kalAngleX-90);
myservoX1.write((int)kalAngleX-90);

}
} Here the boundaries for the servo angle are defined

if (((int)kalAngleY-90) <=125)
{
if (((int)kalAngleY-90) >=55)
{
myservoY.write((int)kalAngleY-90);
myservoY1.write((int)kalAngleY-90); This tells the servos where to move

}
}
}



void i2cWrite(uint8_t registerAddress, uint8_t data
{
Wire.beginTransmission(IMUAddress);
Wire.write(registerAddress);
Wire.write(data);
Wire.endTransmission();
}



uint8_t* i2cRead(uint8_t registerAddress, uint8_t nbytes)
{
uint8_t data[nbytes];

Wire.beginTransmission(IMUAddress);
Wire.write(registerAddress);
Wire.endTransmission(false);
Wire.requestFrom(IMUAddress, nbytes);
for(uint8_t i = 0; i < nbytes; i++)
data [i]= Wire.read();
return data;
}

lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Jeu 11 Aoû - 10:07

Patrick
Il y a également un autre fichier avec le filtre de Kalman que j'ai récupéré.
Le programme compile et j'ai bien envie de l'essayer à la rentrée.
Pour l’étalonnage de l'asservissement ça se fait sur les drones mais sur une durée de vol de 15 minutes donc pas top...
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par lem75pat le Ven 12 Aoû - 11:16

Salut

Voici suite à des recherches sur le filtre de Kalman

https://fr.wikipedia.org/wiki/Filtre_de_Kalman
http://www.ferdinandpiette.com/blog/2011/04/le-filtre-de-kalman-interets-et-limites/
http://www.ferdinandpiette.com/blog/2011/05/le-filtre-de-kalman-etendu-principe-et-exemple/
http://oatao.univ-toulouse.fr/2248/1/Alazard_2248.pdf

http://perso.telecom-paristech.fr/~blanchet/UE_SI342/misc/initTRs.pdf
https://www.ensta-bretagne.fr/jaulin/poly_kalman.pdf
https://www-sop.inria.fr/members/Florent.Lafarge/cours/ENSG_course_2.pdf
https://www.irisa.fr/aspi/legland/rennes-1/cours.pdf

avec MATLAB :

http://antoine.soubigou.org/pdfensais/Projet%20Automatique%20DEA.pdf
http://tourneret.perso.enseeiht.fr/MODAP/Kalman.pdf


Oui l'étalonnage donne l'étalon. Sa valeur (en matière et dans son rôle de référence, de paramètres) n'est valable
n'a de sens que si elle a été déterminée avec un minimum d'éléments, de mesures
Et sa valeur (dans ce sens) monte avec le nombre de mesures

J'y reviendrais. Des paramètres peuvent être déterminés, par la pesée, la mesure de dimensions, bref peuvent l'être avec
pèse objet, triple décimètre, calculs


lem75pat

Messages : 46
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

Re: Acceleromètre

Message par bdureau le Ven 12 Aoû - 11:21

J'utilise un filtre de Kalman dans mes altis et ça fonctionne plutôt bien.
Je n'ai jamais eu d’éjection en rampe.
avatar
bdureau

Messages : 1138
Date d'inscription : 28/03/2016
Age : 46
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

Re: Acceleromètre

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum