implémentation pid numérique
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

implémentation pid numérique



  1. #1
    fouga

    implémentation pid numérique


    ------

    Bonjour,

    J'ai ci joint l'équation d'un PID numérique sous sa forme en Z.
    Après mes recherches j'ai réussi à retrouver que pour l'implémenter dans un microcontrôleur il faut que je passe cette équation sous la forme d'une équation aux différences.

    jusque là ça va, mais pour les quelques opérations que j'ai faite dans ce genre j'avais la fonction de transfert directement (H(z)=U(z)/Y(z)) et j'appliquais z^-1 comme opérateur de retard pour trouver mon équation aux différences et ça sortait bien.
    Cependant, ici j'ai juste la forme du PID et je n'arrive pas à la mettre aisément sous une forme "classique" pour calculer mes retards, est-ce que quelqu'un pourrait m'aider à calculer l'équation aux différences pour pouvoir ensuite l'implémenter dans un microcontrôleur (robot mobile) et si il y a un truc pour éviter de remettre l'équation sous la forme U(z)/Y(z) à chaque fois?
    On peut poser pour alpha:0 si ça simplifie les choses...

    Merci!

    -----
    Images attachées Images attachées  

  2. #2
    gcortex

    Re : implémentation pid numérique


  3. #3
    invite29971eb1

    Re : implémentation pid numérique

    Cadeau, une appnote d'Atmel qui parle assez bien du sujet:
    http://www.atmel.com/dyn/resources/p...ts/doc2558.pdf

  4. #4
    stefjm

    Re : implémentation pid numérique

    Citation Envoyé par gcortex Voir le message
    Salut gcortex,
    C'est pas l'erreur qu'il faut plafonner, mais plutôt la commande. (surtout que la commande intégrale "dérive" en car d'erreur permanente)

    Si tu utilisais z, puis les équations de récurrences, tu te rendrais compte que l'intégrateur intervient sur le calcul de la correcteur dérivé et sur celui du correcteur proportionnel.

    PID = K+1/(Ti.p)+Td.p

    Au premier ordre (ce que tu fais), l'approximation de la dérivée (ou de l'intégration) donne :

    p=(1-z-1)/Te

    D'où l'apparition de terme en z-2 que tu négliges dans ton raisonnement. (A l'occasion, je comparerais les performances de ton correcteur avec celle du mien.)

    Sinon, un document pas mal :

    http://lsiit-cnrs.unistra.fr/avr-en/...rt_chap5_7.pdf

    Cordialement.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

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

    Re : implémentation pid numérique

    c'est très gentil mais je n'ai rien vu

  7. #6
    stefjm

    Re : implémentation pid numérique

    Citation Envoyé par gcortex Voir le message
    c'est très gentil mais je n'ai rien vu
    Pourquoi?
    Ce n'est pas plus difficile à implémenter et bien plus sûr car la stabilité est mieux garantie. (stable en continu reste stable en numérique si la période d'échantillonnage reste raisonnable.)
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  8. #7
    gcortex

    Re : implémentation pid numérique

    je te crois mais j'ai trop de choses à penser pour l'instant

  9. #8
    fouga

    Re : implémentation pid numérique

    Salut!

    Tout d'abord merci pour vos différentes réponses!

    En fait je dois faire cette synthèse pour l'implémenter dans un robot légo (en NXC), c'est le classique TP du "suivre la ligne noire" par terre.
    J'ai facilement implémenté la commande bangbang (TOR) et le correcteur P (facile vous me direz).

    Là on me donne plusieurs formes de PID numérique en Z. Et on me demande d'obtenir l'équation aux différences pour la forme que j'ai jointe en premier post. Et vu la pratique que j'ai dans ce domaine, je n'y arrive pas... donc pas d'implémentation possible dans le robot...

    Est-ce qu'il y a une technique particulière pour passer de Z à l'Edifférence? Parce que j'ai essayé de tomber sur U(z)/Y(z) et il me reste toujours un Y(z) qui traine dans la partie droite de l'équation!

    merci!

  10. #9
    stefjm

    Re : implémentation pid numérique

    une multiplication par z-1 correspond à un retard.

    Ex sur l'intégrateur :

    en p (ou s) :

    en z :

    en équation de récurrence :



    avec u(0) et e(0) à l'instant présent
    et u(1) au coup d'avant. (mémoire)
    Te : période d'achantillonnage.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

Discussions similaires

  1. Régulateur PID numérique
    Par invitefb79a1b8 dans le forum Électronique
    Réponses: 5
    Dernier message: 14/12/2010, 16h18
  2. implémentation en c
    Par invite0dc3f76c dans le forum Électronique
    Réponses: 1
    Dernier message: 20/09/2010, 21h08
  3. PID numérique
    Par invite2f7b8032 dans le forum Électronique
    Réponses: 10
    Dernier message: 23/02/2010, 06h36
  4. régulateur numérique PID
    Par invite158463b1 dans le forum Électronique
    Réponses: 4
    Dernier message: 12/08/2009, 13h34
  5. implementation des filtres numerique sur fpga
    Par invite30dfa2b3 dans le forum Électronique
    Réponses: 4
    Dernier message: 07/11/2008, 09h00
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...