Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

traitement d'un sinus et d'un cosinus puis calcul d'angle



  1. #1
    grenne99

    traitement d'un sinus et d'un cosinus puis calcul d'angle

    Bonjour à tous

    J’aurais besoin de votre aide afin de calculer un angle avec un sinus et un cosinus.

    Je vous explique le fonctionnement de mon système (excusez moi pour la complexité de ma synthèse) :

    J’ai à la base deux signaux analogiques (un sinus et un cosinus) qui ont une amplitude d’environ 100mVpp. Ces signaux peuvent être négatifs (jusqu’à -0.3V), mais je mets un offset de 0.5V donc nous avons des signaux uniquement positifs. Cette amplitude de 100mVpp n’est effectivement pas fixe car il peut y avoir un certain delta (qui est indépendant, c’est à dire qu’il peut y avoir des variations dans l’amplitude max et min du sinus et d’autres variations pour le cosinus). Ces variations sont de l’ordre de 10 mV. De plus la fréquence de mes signaux peut varier de 0hz (signal constant) à 4khz, sans que l’on soit informés de cette variation.
    Lorsque la température diminue ou augmente (de -40°C à +105°C) les signaux peuvent se dilater, ou s’aplatir et un offset peut même se rajouter et ce encore une fois indépendamment sur chacun des signaux.
    L’angle calculé à l’aide d’une tangente (sin/cos) doit être traduit sur 11 bits aussi rapidement et aussi précisément qu’il est possible de faire. A 4khz, cela demande un échantillonnage fréquencé à 2,88 Msps pour obtenir une précision de 1° (avec le théorème de Shannon).
    Je dois au final transmettre l‘angle calculé avec une liaison RS 422.

    J’ai deux solutions qui se rapprochent assez :

    - Je peux utiliser un convertisseur analogique numérique 14 ou 16 bits et un FPGA. J’ai donc une certaine valeur de sinus et de cosinus traduite en binaire en fonction de la tension de référence max entrée dans le CAN. J’ai également deux valeurs +Vref et –Vref (positives) qui, disons, vont respectivement majorer et minorer l’amplitude max et min des deux signaux. En fonction de ces valeurs je peux donc augmenter la précision de calcul de l’angle. Cependant ces valeurs de référence ne sont pas très précises (elles ne font que « majorer ») et la traduction en binaire va donc être imprécise elle aussi par rapport à ce que l’on veut réellement.

    L’inconvénient de ce système est la place qu’il prend car je suis limité à une carte de 34 mm.

    - La deuxième solution est d’utiliser un CAN intégré à un microcontrôleur. J’ai trouvé un atmel AVRXmega 128A1 qui pourrait correspondre à ce que je recherche. Cependant il n’a qu’un CAN de 12 bits et un échantillonnage de 2Msps ce qui donnerait un précision d’environ 8° rien que sur l’échantillonnage. Mais 12 bits signifie une amplification pour une plus grande précision (qui ne sera tout de même pas celle recherchée) et donc un système d’amplification externe qui prendrait de la place.

    L’idéal (au niveau de la précision et des variations de la tension max et min) aurait été un détecteur d’enveloppe pour avoir des tensions +Vref et –Vref précises. Mais cela ne fonctionne pas lorsque le signal est constant.

    J’aimerais donc avoir votre avis sur mon système de traitement de signal et sur l’obtention des tensions de référence en fonction de mes signaux.

    -----


  2. Publicité
  3. #2
    Qristoff

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Bonjour,
    c'est le principe des fonctions traitement resolveur. Voir par exemple l'AD2S1200
    Tout existe, il suffit de le trouver...!

  4. #3
    grenne99

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Bonjour,

    Un grand merci pour cette réponse. Je vais de ce pas étudier cette solution.

  5. #4
    grenne99

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Bonjour,

    Ce genre de composant est très intéressant. Cependant pour configurer un résolveur il faut entrer une fréquence de référence pour l'oscillateur interne. Or ma fréquence d'entrée peut aller de 0 à 4khz sans que je puisse savoir lorsque celle ci change. Est ce que si je fixe ma fréquence de référence à, par exemple, 2 khz et que j'ai une bande passante de 4khz, cela permettrait-il d'entrer un signal sinusoidal variant de 0 à 4 khz sans changer de fréquence de référence? Sinon, auriez-vous un moyen "d'asservir" cette fréquence de référence en fonction de la fréquence d'entrée (qui est donc inconnue) dans un temps le plus court possible?

  6. #5
    jiherve

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Bonsoir,
    dans ton cas il faut numériser les deux signaux (chercher avec redresseur synchrone) et faire ensuite le calcul.
    JR
    l'électronique c'est pas du vaudou!

  7. A voir en vidéo sur Futura
  8. #6
    Qristoff

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Salut,
    Peut être se tourner vers un DSP, voir ici chez Microchip
    Tout existe, il suffit de le trouver...!

  9. Publicité
  10. #7
    DAUDET78

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Citation Envoyé par grenne99 Voir le message
    Or ma fréquence d'entrée peut aller de 0 à 4khz sans que je puisse savoir lorsque celle ci change.
    Je te vois partir pour un truc qui va être une usine à gaz .... à cause du cahier des charges que tu as fixé.

    Peux tu expliquer d'où proviens tes fameux sinus et cosinus de fréquence variable et d'amplitude variable ? Il y a peut être une autre solution de capteur ou de traitement ?
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  11. #8
    grenne99

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Bonjour,

    Je vous explique le système :

    J'ai une gravure binaire sur un disque optique. Le disque est donc soit opaque, soit transparent pour le code binaire. Une Led éclaire ce disque et un photorecepteur situé derrière le disque va capter les variations de lumière à travers une fente. Ce photorécepteur ( http://www.ichaus.de/product/iC-OG ) peut soit sortir un signal numérique soit un signal analogique correspondant à la quantité de lumière recue. Lorsque ce disque tourne, l’amplitude de ce signal analogique va croître ou décroître ce qui va donner un sinus ou un cosinus. J’ai 2048 périodes sur un tour de disque et le disque peut tourner à une vitesse max de 700°/s. Mais le disque peut aussi ne pas tourner et je ne sais pas quand celui-ci bouge. J’ai besoin, avec ce sinus et ce cosinus, de donner un angle sur 11 bits par rapport à une période. Cependant les perturbations lumineuses entre les voies et les dilatations en température rendent mes signaux analogiques imprecis. Je n’ai donc pas de tension de ref max et min. Je dois alors traiter ces signaux et en donner l’angle correspondant pour que la mesure de mon angle sur une période soit la plus precise possible.
    Pour répondre à Qristoff, pour avoir un échantillon tous les degrès, j’ai besoin d’avoir une fréquence d’échantillonnage d’environ 2,9 Mhz. Les différents dsp n’ont pas de ADC suffisamment rapides pour le traitement que je souhaite effectuer.

  12. #9
    DAUDET78

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Donc si je pige bien, tu as un codeur incrémental avec deux signaux déphasés de 90° (A quad B en English)
    Donc tu fais une mise en forme par comparateur et tu géres tes deux signaux par hard ou par soft et tu as 2048 pas par tour ( ou 8192 si tu géres le 1/4 pas)
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  13. #10
    grenne99

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Pas exactement.

    J'ai 2048 périodes par tour, j'explique:

    J'ai un codeur absolu 21 bits dont 11 bits de poids forts sont en numérique (code gray) et, faute de place, les 11 derniers bits (il y a un bit de synchronisation) qui sont de poids faible et situés sur l’extrémité du disque ont un fonctionnement incremental donc en fait les 11 bits des signaux analogiques doivent coder un angle sur une période sinusoidale, appelons la X. Ce X, (une période de ce signal) correspond en fait à environ 21 minute d’angle de l’angle total (A tour de disque). Le LSB, 21 eme bit, équivaut à 0.62 seconde d’angle total. On combine donc code gray absolu et code binaire incremental. En résumé mon MSB de l’angle du signal analogique correspond au 11 eme bit de l’angle total. Je souhaite avoir une precision de 1° sur les 360 du signal analogique ce qui correspond à environ 5 secondes d’angle au total (ou plus si possible).

    PS: MSBtotal = Bit 1, LSBtotal = bit 21, MSBanalog = bit 11 total et LSBanalog (bit 11 analog)= bit 21 total.

  14. #11
    Qristoff

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Si j'essaie de comprendre, en faisant un tour, ton disque produit 2048 périodes de signal analogique (que tu appel X) et pour chaque période de ce signal, il y a un codage optique qui permet d'obtenir une résolution de 1° de X. soit 5" d'un tour complet. ce qui est équivalent à un codeur 20 bits.
    c'est ça ?
    Tout existe, il suffit de le trouver...!

  15. #12
    grenne99

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Oui c'est à peu près ça.

    Le codage optique est seulement un codage binaire capté par des cellules photodétectrices ce qui donne un sinus set un cosinus donc seulement X. Et c'est mon besoin d'obtenir une précision de 1° sur X.

    Mon disque a une gravure correspondant à ce qui est décrit ici http://www.chireux.fr/mp/cours/elect...que/Chap10.pdf mais mon traitement ne peut pas être le même que sur le pdf du fait des fluctuations de tensions max et min et aussi car le disque peut être à l'arrêt.

    Il y a 2048 fois X sur un tour. Ce qui équivaut à un codeur 21 bits: 11 bits gray + 11 bits d'angle analog - 1 bit de synchronisation entre le gray et l'analog (LSB gray = MSB analog).

    Je cherche donc à traiter ces deux signaux analogiques pour les convertir en un angle ayant une erreur la plus minime possible.

  16. Publicité
  17. #13
    grenne99

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Le disque est en Page 5 du lien précédent.

  18. #14
    DAUDET78

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Il n'y a pas de disque page 5

    Je ne comprend pas ton approche. Tu prends un codeur optique incrémental 2048 points et tu as des signaux nickel (A quad B) et le top "0" en signaux TTL ou RS422.
    Tu as une résolution de 0,17° (ou 0,044° en 1/4 de pas)
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  19. #15
    Qristoff

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    oui, ça c'est pour le codage grossier, le codage fin permet avec le deuxième peigne d'atteindre 5" = 0.0005° ! le doc pdf est super intéressant !
    Tout existe, il suffit de le trouver...!

  20. #16
    grenne99

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    daudet78 on trouve au bas de la page 5 (numérotée en haut à droite) du PDF le schéma du codeur ou page 9/23 avec un logiciel de visualisation.

    Qristoff c'est exactement ça le codage grossier aucun problème mais c'est pour le fin ou je bloque.

    Avez-vous une idée pour mon traitement, que ce soit par analogique ou par logiciel?

    PS: 5" correspond en fait à 0.0014° au total et l'idéal serait 0.000175° mais je doute que cela soit possible. Si j'arrive à avoir une précision de 0.0014° je serais déjà satisfait. Il faudrait donc un système permettant d'éviter les variations de tension car si elles étaient égales sur le sinus comme sur le cosinus, en faisant la tangente il n'y aurait pas de problème cependant elle ne sont pas égales. D'où l'erreur d'angle.

  21. #17
    grenne99

    Re : traitement d'un sinus et d'un cosinus puis calcul d'angle

    Pas d'idées sur le traitement de mes signaux analogiques?

Sur le même thème :

Discussions similaires

  1. Traitement et calcul d'un pont Thermique ?
    Par maylis1609 dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 11
    Dernier message: 12/02/2010, 20h02
  2. conseption d'un reducteur a renvoi d'angle
    Par lotfigm dans le forum Physique
    Réponses: 2
    Dernier message: 30/05/2009, 01h06
  3. Sinus , cosinus d'un triangle rectangle
    Par marc.suisse dans le forum Mathématiques du collège et du lycée
    Réponses: 26
    Dernier message: 13/08/2008, 16h03
  4. Equation avec sinus & cosinus ... Longueur d'un triangle ?!
    Par goluche dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 14/02/2008, 10h13
  5. Signe d' un cosinus ou d'un sinus
    Par carter21 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 04/11/2007, 15h40