Acceleromètre
2 participants
Page 1 sur 2
Page 1 sur 2 • 1, 2
Acceleromètre
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
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
Re: Acceleromètre
Salut
J'ai téléchargé les quatre possibles. J'ai vu 'sortie analogique'
Je regarde les fichiers
J'ai téléchargé les quatre possibles. J'ai vu 'sortie analogique'
Je regarde les fichiers
lem75pat- Messages : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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
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
Re: Acceleromètre
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
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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?
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?
Re: Acceleromètre
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
Il faudrait que tu passes que l'on voit ça ensemble
Re: Acceleromètre
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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.
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.
Re: Acceleromètre
Je suis certain que cela permet à nos fusées un peu courte d'avoir une trajectoire bien verticale
Re: Acceleromètre
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
http://workshopscience.com/arduino-rocket-stabilization/
J'ai également le code complet
Re: Acceleromètre
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
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
Patrick
En général les capteurs disposent à la fois d'un gyroscope et d'un accéléromètre
En général les capteurs disposent à la fois d'un gyroscope et d'un accéléromètre
Re: Acceleromètre
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
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
Bonsoir
Je viens de consulter la page http://workshopscience.com/arduino-rocket-stabilization/
Il y a du travail, de l'expérimentation, du concrétisé
J'ai vu le MPU6050 et aussi aprés recherches regardé ces pages :
http://playground.arduino.cc/Main/MPU-6050
https://fr.wikiversity.org/wiki/Micro_contr%C3%B4leurs_AVR/Travail_pratique/Utilisation_d%27un_Acc%C3%A9l%C3%A9rom%C3%A8tre_MPU6050
https://openclassrooms.com/forum/sujet/arduino-connaitre-l-inclinaison-avec-un-mpu-6050
http://tiptopboards.free.fr/arduino_forum/viewtopic.php?f=2&t=28
http://knowledge.parcours-performance.com/ajouter-gyroscope-a-robot-arduino/
http://www.lctech-inc.com/
Il est vrai qu'un servomoteur contient déjà un asservissement de position angulaire,
et que l'on se contente de lui communiquer l'angle voulu
Je viens de consulter la page http://workshopscience.com/arduino-rocket-stabilization/
Il y a du travail, de l'expérimentation, du concrétisé
J'ai vu le MPU6050 et aussi aprés recherches regardé ces pages :
http://playground.arduino.cc/Main/MPU-6050
https://fr.wikiversity.org/wiki/Micro_contr%C3%B4leurs_AVR/Travail_pratique/Utilisation_d%27un_Acc%C3%A9l%C3%A9rom%C3%A8tre_MPU6050
https://openclassrooms.com/forum/sujet/arduino-connaitre-l-inclinaison-avec-un-mpu-6050
http://tiptopboards.free.fr/arduino_forum/viewtopic.php?f=2&t=28
http://knowledge.parcours-performance.com/ajouter-gyroscope-a-robot-arduino/
http://www.lctech-inc.com/
Il est vrai qu'un servomoteur contient déjà un asservissement de position angulaire,
et que l'on se contente de lui communiquer l'angle voulu
lem75pat- Messages : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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?
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?
Re: Acceleromètre
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?
Re: Acceleromètre
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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(;
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] << | data[1]);
accY = ((data[2] << | data[3]); Arduino requests values from gyroscope and accelerometer
accZ = ((data[4] << | data[5]);
tempRaw = ((data[6] << | data[7]);
gyroX = ((data[8] << | data[9]);
gyroY = ((data[10] << | data[11]);
gyroZ = ((data[12] << | 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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
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...
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...
Re: Acceleromètre
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
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 : 760
Date d'inscription : 08/04/2016
Localisation : Paris
Re: Acceleromètre
J'utilise un filtre de Kalman dans mes altis et ça fonctionne plutôt bien.
Je n'ai jamais eu d’éjection en rampe.
Je n'ai jamais eu d’éjection en rampe.
Page 1 sur 2 • 1, 2
Page 1 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|