Commande en boucle ouverte
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

Commande en boucle ouverte



  1. #1
    invite69a2835d

    Commande en boucle ouverte


    ------

    Bonjour à tous ! (Mon premier message sur ce forum)

    J'ai un circuit composé d'un Convertisseur Numérique Analogique (CNA) suivi d'un d'amplificateur. Je souhaite trouver un moyen d'obtenir une sortie la plus proche possible de l'échelon, si possible sans boucle de retour. (Attenuer au maximum les oscillations dues à la réponse du 2nd ordre)

    Je suis un peu confu quand aux solutions envisageables...

    D'abord, comment modelise-ton un système physique tel que celui là ? J'ai mesuré la réponse à un échelon de mon système, l'ai approximée par une fonction mathématique, en ai déduit la fonction de transfert du système. Je ne suis pas certain de la validité de la méthode et je ne sais pas s'il faut utiliser la transformée de Laplace ou en Z pour la fonction de transfert.

    Que faire ensuite ? Inverser la fonction de transfert (et là problème d'instabilité, bien sur) pour en déduire faire un filtre numérique à appliquer en entrée ?

    Suis-je complètement à côté de la plaque ?

    Merci de m'aider à débroussailler mes idées pas très claires...

    B.

    -----

  2. #2
    monnoliv

    Re : Commande en boucle ouverte

    Bonjour et bienvenue,
    Je m'étonne de la façon dont tu veux résoudre ton problème. Si tu as des oscillations en sortie du convertisseur + ampli-op, c'est que tu as un phénomène de ringing aux hautes fréquences, c'est à dire que le système a un pic de gain juste avant sa fréquence de coupure. Soit c'est du à la charge, dans ce cas je rajouterais une résistance en série avec la sortie, soit c'est réellement intrinsèque au système auquel cas je placerais un simple RC (ou un filtre d'ordre plus élevé) en sortie. Le but étant de compenser ce pic en analogique afin de décharger la partie numérique.
    N.B: il y a des ampli-op à large bande qui sont "taillés" pour un gain donné, si on change ce gain le phénomène de ringing apparaît.
    A+
    Ne soldez pas grand mère, elle brosse encore.

  3. #3
    invite69a2835d

    Re : Commande en boucle ouverte

    En fait, ces oscillations ne sont pas dues à la charges mais bien intrinsèques à l'aop que j'utilise (il peut fournir plusieurs dizaines de volts en sortie).

    Un RC en sortie ralentirait le temps de monter de mon système de facon critique, ce que j'essaye d'éviter. D'où ma tentative de développer un filtre digital à appliquer à l'entrée pour contre balancer les oscillations...

    Pas si simple...

  4. #4
    monnoliv

    Re : Commande en boucle ouverte

    Si tu pouvais me dire de quel composant il s'agit.
    Concernant le RC, s'il fait en sorte que la bande passante devient plate jusqu'à la fréquence de coupure (au lieu du pic à la fréquence de coupure), je ne vois pas pourquoi il augmenterait le temps de montée/descente (slew-rate) du système???
    Dans le graphique ci-dessous, supposons que la courbe G=+7 soit celle sans RC (donc oscillations à cause du pic avant la coupure) et que la courbe G=+10 soit celle avec le RC (ou un condensateur placé en parallèle dans la contre-réaction). On voit qu'on a rabotté la bande passante mais pour une meilleure intégrité du signal.
    Autre chose: suppose que tu réalises le filtrage en numérique, pour un signal échelon, en gros ça reviendra à ajouter quelques valeurs entre 0 et VALMAX de cet échelon.
    Exemple (VALMAX = 255):
    Avant 0 0 0 255 255 255 255 255
    Après 0 0 0 64 128 192 255 255 255

    Donc tu ralentis aussi tes temps de montée/descente. Quid ?

    A+
    Images attachées Images attachées  
    Dernière modification par monnoliv ; 12/07/2005 à 20h53.
    Ne soldez pas grand mère, elle brosse encore.

  5. A voir en vidéo sur Futura
  6. #5
    invite69a2835d

    Re : Commande en boucle ouverte

    D'abord, merci pour les éléments de réponse.

    Exemple (VALMAX = 255):
    Avant 0 0 0 255 255 255 255 255
    Après 0 0 0 64 128 192 255 255 255
    Justement non, ce que j'essaye de réaliser serait plutôt:

    Avant 64 64 64 128 128 128 128 128 128 128
    Après 64 64 64 255 255 0 0 150 128 128

    De sorte à tirer le maximum de l'ampli au début puis à contrer les oscillations engendrées, quitte à réserver une partie du codage à "l'overshot"... J'arrive à quelque chose en bidouillant l'entrée à la main, mais je n'arrive pas à établir de relation mathématique !

    Je repars de ce pas triturer les transformées de Laplace !

  7. #6
    monnoliv

    Re : Commande en boucle ouverte

    Je repars de ce pas triturer les transformées de Laplace !
    En numérique, ce serait plutôt des transformées en z !
    http://perso.wanadoo.fr/moulesj/mesure/numeriq.htm
    http://www.ecole.ensicaen.fr/~furon/_traitementsignal/

    Sinon, j'essayerais comme suit: prendre la transformée de Fourier (TF) du signal, puis filtrer avec exactement la courbe inverse de celle du système, puis transformée de Fourier inverse.
    J'ai pas mal d'expérience en traitement d'images, mais je ne vois pas très bien comment faire quand le signal est continu dans le temps.

    A+
    Ne soldez pas grand mère, elle brosse encore.

  8. #7
    invite69a2835d

    Re : Commande en boucle ouverte

    Ouh la... tu m'as un peu perdu...

    prendre la transformée de Fourier (TF) du signal
    du signal de sortie du système ?

    puis filtrer avec exactement la courbe inverse de celle du système
    tu veux dire filter avec 1/H(p) si H(p) est la fonction de transfert ?

    puis transformée de Fourier inverse.
    transormée inverse de toute la soupe, j'imagine.

    Transformée de Laplace, en z, fourrier... c'est pas évident de savoir par où partir quand on a du numérique en entrée et de l'analogique en sortie... D'autant plus que tout ca ne m'a pas l'air bien linéaire !

    Allez, je suis confiant, là !

  9. #8
    monnoliv

    Re : Commande en boucle ouverte

    Tu prends la Transformée de Fourier (TF) du signal numérique s(t), soit S(f) (f = fréquence). Soit H(f), la réponse fréquencielle du système (diagramme de Bode). Tu multiplies S(f) par 1/H(f) de telle manière qu'au total tu aies (S(f)*1/H(f))*H(f)= S(f).

    tu veux dire filter avec 1/H(p) si H(p) est la fonction de transfert ?
    C'est ça, évidemment, tu n'es pas obligé d'aller au-delà de la fréquence de coupure.

    transormée inverse de toute la soupe, j'imagine.
    Oui, pour retrouver un s'(t)

    En résumé:
    1. s(t) le signal temporel
    2. S(f) = FT(s(t))
    3. S'(f) = S(f)*1/H(f)
    4. s'(t) = FT-1(S'(f))

    A+
    Dernière modification par monnoliv ; 15/07/2005 à 07h52. Motif: H(s) corrigé en H(f)
    Ne soldez pas grand mère, elle brosse encore.

  10. #9
    invite69a2835d

    Re : Commande en boucle ouverte

    Je sais plus où prendre mes données...

    ---x(n)---CNA---w(t)---AMPLI---s(t)---

    Ici, je suis en numérique à l'entrée du CNA et analogique après (persque normal, d'ailleurs).

    Et donc je voudrais une chaine de la sorte:

    ---x1(n)---FILTRENUM---x(n)---CNA---w(t)---AMPLI---s(t)---

    Est-ce que poue mes calculs, j'ai le droit de considérer s(t) comme discret ? De faire comme si tout le systeme était discret. De toute facon les données mesurées le sont avec des appareils digitaux qui de toute facon échantillonnent tout signal.

    Je suis en train d'essayer de manipuler le signal avec la TZ, mais
    pour l'inversion de H(z), la fonction de transfert, je patauge un peu : j'ai un cours la dessus : inversion de FT sans les zeros non stables en inverse, ZPETC, FT inverse modifiée. Le truc c'est qu'il est en Allemand et que j'ai l'impression de passer à côté de certaines subtilités... je n'ai pas trouvé mon bonheur sur Internet non plus.

    Pour utiliser la transformée de fourrier, il faudrait que je trace le diagramme de bode de mon système, donc... Ou alors la transformée de la réponse indicielle est-elle suffisante ?

    Ca n'a pas l'air si dur comme problème, pourtant, tout ce que je veux, c'est Hv(z) tel que

    X(z).Hv(z).H(z)=Y(z) avec Y(z)=A.X(z) (A constante > 1)

    Je ne comprends où ca coince !

    Merci à toi, Monnolive, en tous les cas !

  11. #10
    monnoliv

    Re : Commande en boucle ouverte

    A mon avis, il y a plusieurs manières de résoudre ton problème, je ne peux te donner que celle que je ferais selon mes connaissances! Mais je ne suis pas sûr que dans ton cas, ce soit la manière la plus efficace.

    Pour utiliser la transformée de fourrier, il faudrait que je trace le diagramme de bode de mon système, donc... Ou alors la transformée de la réponse indicielle est-elle suffisante ?
    Non, tu peux prendre la transformée de Fourier de la réponse impulsionnelle (d'un delta de Dirac), tu trouves alors la transformée de Fourier de H(t), c'est à dire le diagramme de Bode du système !
    Regarde ici pour mémoire, c'est bien fait:
    http://www.librecours.org/documents/4/435.pdf
    A partir du paragraphe 4.


    En fait, j'estimerais la réponse en fréquence de ton système (son diagramme de Bode), puis j'inverserais de manière rudimentaire (voir schéma, en noir ce que je suppose être la réponse de ton système, en rouge la réponse inverse).

    Je suis en train d'essayer de manipuler le signal avec la TZ, mais
    pour l'inversion de H(z), la fonction de transfert, je patauge un peu : j'ai un cours la dessus : inversion de FT sans les zeros non stables en inverse, ZPETC, FT inverse modifiée. Le truc c'est qu'il est en Allemand et que j'ai l'impression de passer à côté de certaines subtilités... je n'ai pas trouvé mon bonheur sur Internet non plus.
    Je n'essayerais pas de mettre la réponse en équation, je me contenterais de faire ce que je t'ai décris ci-dessus. L'énorme avantage de travailler dans l'espace de Fourier, c'est que ton traitement reviendra à faire une simple multiplication de chaque fréquence par l'inverse du diagramme de Bode.
    Mais il faut faire une transformée de Fourier ! Pour celle-ci, des algo rapides existent (FFT: Fast Fourier Transform). Mais si tu n'es pas familier avec les transformées de Fourier discrètes ça ne va pas être direct (globalement ce n'est pas compliqué, mais il faut un peu manipuler/expérimenter au préalable).

    Si je reprends ta chaîne:
    ---x1(n)---FILTRENUM---x(n)---CNA---w(t)---AMPLI---s(t)---
    Le FILTRENUM c'est
    x1(n)-->--- FFT ----- Multiplier par 1/H(s) ---- FFT-1---->x(n)

    H(s) est le diagramme de Bode en discret, à priori idendique au diagramme de bode "en continu".

    A+

    N.B: Tout ce que j'ai écris ici vaut pour un paquet de données fixe. Je n'ai pas fait ce genre de traitement avec des flux continus de données.
    Images attachées Images attachées  
    Dernière modification par monnoliv ; 16/07/2005 à 21h25.
    Ne soldez pas grand mère, elle brosse encore.

  12. #11
    invite69a2835d

    Re : Commande en boucle ouverte

    tu peux prendre la transformée de Fourier de la réponse impulsionnelle (d'un delta de Dirac)
    c'est-à-dire que... concrètement, donner un dirac en entrée n'est pas très réalisable ! Il faudrait donc que je travaille en fréquence pour extirper le diagramme de Bode au point par point. Je peux le faire, mais ca va être long ! En même temps, je ne vois pas vraiment d'autre solution.

    On ne peut pas passer par la réponse indicielle, pour utiliser la transformée de Fourier ?

    Ciao

  13. #12
    monnoliv

    Re : Commande en boucle ouverte

    En fait, la Dirac c'est la dérivée de l'indicielle, donc calcule la transformée de Fourier de la réponse indicielle, multiplie chaque valeur spectrale par f (f est la fréquence, cela revient donc à dériver) et tu devrais obtenir le diagramme de Bode du système. Je n'ai jamais essayé mais ça devrait marcher.
    A+
    Ne soldez pas grand mère, elle brosse encore.

Discussions similaires

  1. Boucle ouverte -contre réaction série
    Par erff dans le forum Électronique
    Réponses: 20
    Dernier message: 14/12/2007, 15h00
  2. gain boucle ouverte
    Par invite204ce29c dans le forum Électronique
    Réponses: 5
    Dernier message: 19/06/2007, 19h03
  3. gain boucle ouverte
    Par invite204ce29c dans le forum Physique
    Réponses: 1
    Dernier message: 19/06/2007, 12h46
  4. Convertir une commande tension en commande courant
    Par invite83d9e951 dans le forum Électronique
    Réponses: 11
    Dernier message: 29/03/2007, 07h45
  5. boucle ouverte alim à découpage
    Par invite90ee81d4 dans le forum Électronique
    Réponses: 13
    Dernier message: 09/09/2006, 18h41
Découvrez nos comparatifs produits sur l'informatique et les technologies.