[Programmation] Réalisation d'un PID pour régulation de débit en C
Répondre à la discussion
Affichage des résultats 1 à 26 sur 26

Réalisation d'un PID pour régulation de débit en C



  1. #1
    davidbroglie

    Réalisation d'un PID pour régulation de débit en C


    ------

    Pour cela je me suis aidé d'un fichier Excel. Et j'obtient des resultat étrange et c'est là que je me rend compte que je ne suis pas sûr d'avoir très bien compris l'implémentation en C. J'ai l'impression qu'il manque des éléments.

    Voici ce que j'ai fait :

    Je suis parti sur une base de une mesure toutes les secondes.
    J'ai considéré de manière probablement erronée que mon débit va monter de manière linaire pendant 10 seconde pour arriver à la valeur souhaitée en partant de 0.
    Dans un premier temps afin de simplifier la première représentation j'ai souhaité ne pas faire varier mes variables ainsi le débit cible ne change pas en fonction de la vitesse de déplacement.
    Sur les postulats précédents j'ai donc souhaité atteindre un débit de 15m3/min. Cette valeur est donc la consigne ciblée.

    J'ai donc réaliser le tableau excel suivant : Nom : excel.jpg
Affichages : 1850
Taille : 103,5 Ko

    J'ai réussi à obtenir une courbe qui ressemble à un PID normal sauf que le début ne commence pas à 0 (je ne comprend pas pourquoi il ne commence pas à 0). D'autre part je constate que si je ne joue qu'avec le Kp en placant les autre coefficient à 0 j'ai une courbe étrange que est quasiment la droite opposée à ma valeur "mesurée".

    D'autre part je ne vois pas comment avec cette donnée je suis censé influé ma commande physique qui va agir sur la position de ma vanne.

    Pourriez-vous m'éclaircir sur le sujet je ne suis pas sur de tout comprendre ?

    Merci d'avance pour votre aide.

    -----

  2. #2
    Gérard

    Re : Réalisation d'un PID pour régulation de débit en C

    Quel est le type de vanne? Pneumatique avec positionneur?
    Comment est faite la mesure du débit?
    Peux-tu expliquer ton tableau? Que représentent somme erreur et consigne envoyée?

  3. #3
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    Effectivement problème de copié coller ce qui fait que la première partie de mon message à disparue. Voici le premier message complet :

    Je souhaite réaliser un PID pour réguler un débit qui va dépendre d'une dose voulue et une vitesse de déplacement.
    J'ai fait pas mal de recherche sur ce sujet et j'ai trouvé pas mal d'article traitant cette problèmatique.
    J'ai également trouvé un algorithme pour décrire le programme en C que je devrais effectué le voici :

    Tous les x millisecondes, faire :
    erreur = consigne - mesure;
    somme_erreurs += erreur;
    variation_erreur = erreur - erreur_précédente;
    commande = Kp * erreur + Ki * somme_erreurs + Kd * variation_erreur;
    erreur_précédente = erreur

    N'ayant pas le matériel pour tester physiquement la boucle j'ai voulu simuler le comportement de l'algorithme.
    Pour cela je me suis aidé d'un fichier Excel. Et j'obtient des resultat étrange et c'est là que je me rend compte que je ne suis pas sûr d'avoir très bien compris l'implémentation en C. J'ai l'impression qu'il manque des éléments.

    Voici ce que j'ai fait :

    Je suis parti sur une base de une mesure toutes les secondes.
    J'ai considéré de manière probablement erronée que mon débit va monter de manière linaire pendant 10 seconde pour arriver à la valeur souhaitée en partant de 0.
    Dans un premier temps afin de simplifier la première représentation j'ai souhaité ne pas faire varier mes variables ainsi le débit cible ne change pas en fonction de la vitesse de déplacement.
    Sur les postulats précédents j'ai donc souhaité atteindre un débit de 15m3/min. Cette valeur est donc la consigne ciblée.

    J'ai donc réaliser le tableau excel suivant :
    Nom : excel.jpg
Affichages : 1635
Taille : 103,4 Ko
    J'ai réussi à obtenir une courbe qui ressemble à un PID normal sauf que le début ne commence pas à 0 (je ne comprend pas pourquoi il ne commence pas à 0). D'autre part je constate que si je ne joue qu'avec le Kp en placant les autre coefficient à 0 j'ai une courbe étrange que est quasiment la droite opposée à ma valeur "mesurée".

    D'autre part je ne vois pas comment avec cette donnée je suis censé influé ma commande physique qui va agir sur la position de ma vanne.

    Pourriez-vous m'éclaircir sur le sujet je ne suis pas sur de tout comprendre ?

    Merci d'avance pour votre aide.



    Concernant ta question ce sera une vanne hydraulique mais pour le moment je ne considère pas du tout le type de vanne utilisé. La mesure de débit est purement spéculative en considérant un débit linéaire.
    Concernant le tableau :
    Colonne 1 : temps en s
    Colonne 2 : Evolution du débit en fonction du temps (ici purement inventé) n'ayant pas le matériel pour tester
    Colonne 3 : Valeur de commande souhaité pour obtenir le débit
    Colonne 4 : Erreur comme indiqué sur l'algo cité ci-desus : consigne - mesure (colonne 3-colonne 2)
    Colonne 5 : Somme des erreur depuis le début
    Colonne 6 : Erreur - erreur précedente
    Colonne 7 : consigne calcule via la formule citée plus haut (commande = Kp * erreur + Ki * somme_erreurs + Kd * variation_erreur)

    Le débit sera mesuré par un débitmètre lorsque j'aurais le matériel. Ici dans la simulation je pense que l'on peut ne pas en tenir compte. (Peut-être que je trompe totalement)

    Voilà un peu ce que j'ai fait. De plus j'ai remarqué que lorsque je change la valeur cible le Kp,Ki,Kd ne permettent pas d'atteindre la consigne voulue il y a quelques chose qui m'échappe ici. C'est la première fois que je réalise un PID.
    Dernière modification par davidbroglie ; 28/06/2018 à 16h49.

  4. #4
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    Pour un peu plus d'information la formule me permettant de calculer mon débit nécessaire pour obtenir la dose est :
    Q = (vitesse * 20 * Dose voulue)/600
    avec vitesse en km/h, dose voulue en m3/hectare

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

    Re : Réalisation d'un PID pour régulation de débit en C

    Citation Envoyé par davidbroglie Voir le message
    J'ai réussi à obtenir une courbe qui ressemble à un PID normal sauf que le début ne commence pas à 0 (je ne comprend pas pourquoi il ne commence pas à 0).
    Bonsoir

    c'est le calcul de l'intégrale qui est faux.
    à la ligne 0 la valeur somme_erreur pour le calcul de l'intégrale devrait être égal à 0 et non à 15.
    Ceci parce que la valeur d'intégrale à un temps tx doit être calculé par rapport à une valeur au temps tx-1
    La valeur d'intégrale au temps t0 doit être égale à zéro puisque on suppose que le régulateur commence à agir..


    Désolé je n'ai pas le temps d' être plus clair, mais j'espère que ce sera suffisamment compréhensible.
    En tous là l'erreur vient de là ( d'où l'offset de 15)
    si j'ai le temps demain j'essaierai d'en écrire davantage.

  7. #6
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    Je comprends bien ce que tu me dis et c'est vrai que ca me semblerais plus logique, mais par rapport à l'algorythme cela signifie que l'algorithme n'est pas applicable à t0 ? Ou il y a quelques chose que je ne comprends pas ?

  8. #7
    plumele

    Re : Réalisation d'un PID pour régulation de débit en C

    Bonjour, je continue sur le sujet

    Dans un 1er temps je dirais que pour la compréhension, il est préférable de calculer les valeurs du PID séparémen afin de les visualiser.
    La résultante ( P+I+D) n'est jamais très parlante même si c'est elle qui agira.

    Ici le calul de l'intégrale est faux
    Il est important dans un programme d'initialiser certaines valeurs calculées telle qu'une intégrale.
    Comme je l'ai écrit la 1ere valeur d'intégrale ne peut être calculée qu'au temps t1

    Il faut donc écrire :
    au temps t0 valeur d'intégrale t0= 0 (initialisation de l'intégrale)
    au temps t1 on peut faire le calcul valeur intégrale t1 = valeur d'intégrale t0 + erreur*Ki
    au temps t2 valeur intégrale t2 = valeur d'intégrale t1 + erreur*Ki
    etc

    Remarques :
    - il n'est pas judicieux de recalculer la somme_erreur à chaque pas de programme.
    Comme je l'ai indiqué plus haut, la nouvelle valeur d'intégrale est raclculé depuis la précédente.

    - la valeur de la valeur d'intégrale du tableau me semble beaucoup trop importante (Ki trop grand)
    En effet une intégrale dans la pratique sert à compenser des pertes, des frottements, l'usure de pièce etc
    Ce sont des phénomènes relativement lents et il faut donc éviter que la partie intégrale ne perturbe la régulation.
    Un système parfait n'a pas besoin de valeur intégrale, mais ceci n'existe que sur papier.
    La réinitialisation d'une intégrale ne se fait pas inévitablement avec 0.
    Elle peut très bien se faire avec la valeur qui a été calculée à la dernière utilisation.
    Exemple: sur un véhicule, la valeur dintégrale de la régulation du régime de ralenti est initialisée avec la valeur calculée au dernier arrêt du moteur.


    Voilà vite fait sur un tableur les trois partie P, I telle qu'on devrait les voir (on oublie la D qui n'a que peu d'intérêt ici)
    Je n'ai pas représenté la somme qui ne m'intéresse pas outre mesure.
    J'ai utilisé d'autres valeurs de coef Kp, Ki-
    Le graphique ne correspond évidemment pas à la réalité puisque la boucle est ouverte.
    Je veux dire par là que la valeur de sortie du PID n'a ici aucune influence sur la valeur mesurée, ce qui n'est pas le cas en boucle fermée.
    C'est entre autres pour cette raison que la partie intégrale et proportionnelle croit plus rapidement qu'en boucle fermée.


    Nom : PID.JPG
Affichages : 1638
Taille : 41,3 Ko

  9. #8
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    Merci pour tous ces détails cela m'aide déjà beaucoup.

    Par rapport à tes remarques :
    - Il n'est pas judicieux de de recalculer la somme à chaque pas mais du coup quand est-ce que cela doit être fait ?

    Je viens d'essayer d'obtenir les même courbe que toi et voici le résultat :
    Nom : excel2.jpg
Affichages : 1621
Taille : 96,2 Ko

    Ce qui me parait bien pour le P et le I maintenant avec la rectification que tu m'as donné. En revanche le D n'est t'il pas erroné ?

  10. #9
    plumele

    Re : Réalisation d'un PID pour régulation de débit en C

    Citation Envoyé par davidbroglie Voir le message
    Merci pour tous ces détails cela m'aide déjà beaucoup.

    Par rapport à tes remarques :
    - Il n'est pas judicieux de de recalculer la somme à chaque pas mais du coup quand est-ce que cela doit être fait ?


    J'ai en permanence dans la tête la question : comment peut-on réaliser ceci ?
    (Je réutilise tes désignations erreur etc)

    Faire un calcul avec un tableur dans lequel toutes les Valeurs des valeurs mesurées et de consigne sont sauvegardées n'est pas un problème.
    Mais s'il fallait sauvegarder dans un montage électronique toutes ces valeurs en mémoire, surout si le système fonctionne depuis 10heures à raison de plusieurs Valeurs toutes les 10ms.
    C'est irréallisable.
    Au lieu de faire la somme des erreur , il vaut mieux calculer l'intégrale toutes les millisecondes en faisant la somme de l'intégrale au temps (t-1) soit 1ms plus tôt à laquelle on rajoute (erreur * Ki) , soit donc la valeur de l'erreur actuelle multilplée par le coef Ki.


    Citation Envoyé par davidbroglie Voir le message

    Ce qui me parait bien pour le P et le I maintenant avec la rectification que tu m'as donné. En revanche le D n'est t'il pas erroné ?
    Il s'agit d'une erreur dû au calcul avec le tableur.

    En cellule J2 la Valeur de la partie D n'est pas bonne . Pourquoi une Valeur de +1,5 ?
    tout simplement parce que la case Variation_erreur indique 15 ce qui est faux.
    Il faurait contrôler le calcul qui a été fait dans cette cellule.

    Ne pas oublier qu'il s'agit de calcul Avec tableur. Les valeurs d'initialisation sont importantes.
    Pour faire des simulations il faut souvent donner des valeurs d'initialisation, par exemple ici rajouter un ligne t-1 et y mettre une valeur d'intégrale et une valeur de consigne de 15 , valeurs qui seront utilisées à la ligne t0.

  11. #10
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    J'ai en permanence dans la tête la question : comment peut-on réaliser ceci ?
    (Je réutilise tes désignations erreur etc)

    Faire un calcul avec un tableur dans lequel toutes les Valeurs des valeurs mesurées et de consigne sont sauvegardées n'est pas un problème.
    Mais s'il fallait sauvegarder dans un montage électronique toutes ces valeurs en mémoire, surout si le système fonctionne depuis 10heures à raison de plusieurs Valeurs toutes les 10ms.
    C'est irréallisable.
    Au lieu de faire la somme des erreur , il vaut mieux calculer l'intégrale toutes les millisecondes en faisant la somme de l'intégrale au temps (t-1) soit 1ms plus tôt à laquelle on rajoute (erreur * Ki) , soit donc la valeur de l'erreur actuelle multilplée par le coef Ki.
    N'est-ce pas ce que je fais ici ? Dans mon tableau je prends mon (erreur à l'instant t - l'erreur précedente (à t-1s) *Ki.

    Effectivement il faut tout initialiser à 0 pour corriger les problèmes.

    Maintenant la grande partie qui va être la plus importante c'est comment dois-je appliquer cela dans la situation pratique. La valeur que j'obtiens avec mon PID comment dois-je la traiter ? Elle correspond à quoi par rapport au resultat voulue ?
    Est-ce un pourcentage de la consigne à appliquer ? Par exemple : mon débit cible pour respecter la dose voulu est 12m3/hectare à t=2 sur mon tableau j'obtiens 19,935. Que signifie cette valeur ?
    Nom : excel3.jpg
Affichages : 1558
Taille : 82,9 Ko
    Dernière modification par davidbroglie ; 29/06/2018 à 10h37.

  12. #11
    jiherve

    Re : Réalisation d'un PID pour régulation de débit en C

    Bonjour,
    le système est discrétisé donc les équations classiques "analogiques" ne fonctionnent pas vraiment voir ici :http://www.l2s.centralesupelec.fr/si...ter-final1.pdf
    Je ne fourni pas l'aspirine!
    JR
    l'électronique c'est pas du vaudou!

  13. #12
    plumele

    Re : Réalisation d'un PID pour régulation de débit en C

    Citation Envoyé par davidbroglie Voir le message
    N'est-ce pas ce que je fais ici ? Dans mon tableau je prends mon (erreur à l'instant t - l'erreur précedente (à t-1s) *Ki.

    Effectivement il faut tout initialiser à 0 pour corriger les problèmes.
    Nous sommes d'accord
    mais je reviens à la question de Gerard : qu'est-ce que la consigne envoyée.
    pourquoi une valeur de 24 en tout début ?
    Une consigne est une consigne. Elle peut être variable.
    La valeur de sortie du PID en est une autre.
    Les courbes semblent aussi très bizarres mais je n'ai pas approfondi.

    Citation Envoyé par davidbroglie Voir le message
    Maintenant la grande partie qui va être la plus importante c'est comment dois-je appliquer cela dans la situation pratique.
    Avant de passer à la pratique et d'appliquer, il faut d'abord concevoir un modèle robuste en ayant une vue d'ensemble su système. Pour l'instant nous n'en avons aucune idée.

    Ce que tu as représenté sur ton tableau n'est qu'une partie du problème mais il faut bien commencer par un bout
    mais il ya encore beaucoup de travail.

    Tu a représenté dans le tableau le pilotage d'une vanne qui serait tout au début fermée (valeur mesurée = 0 au temps t=0) et à qui on lui demande de s'ouvrir pour atteindre un débit de 15m3/mn. mais c'est tout.

    Le tableur décrit la phase d'ouverture de la vanne. Mais est-elle bien fermée au début ?
    Ici il faut savoir ce qu'on utilise comme vanne

    Il faut aussi se poser la question de la fréquence de calcul.
    Soit on calcule tout toutes les 10ms soit tout en 1ms. Il ne sert à rien de calculer un bout en 1ms.
    Une fréquence de calcul 1ms me paraît exagérée pour une vanne mais tout dépend de la précison de débit demandée ( 15m3/mn plus ou moins x m3/sec

    Citation Envoyé par davidbroglie Voir le message
    La valeur que j'obtiens avec mon PID comment dois-je la traiter ? Elle correspond à quoi par rapport au resultat voulue ?
    Entre ta sortie de PID et ta commande de ta vanne, il va falloir créer une interface qu'on appelle fonction de transfert (ou driver..). Pour cela, il va falloir se pencher sérieusement sur les caractéristiques de la vanne utilisée.
    Comment est-elle pilotée, par quel signal, est-elle électrique, pneumatique etc
    (d'où les questions justifiées des autres intervenants)


    Citation Envoyé par davidbroglie Voir le message
    Est-ce un pourcentage de la consigne à appliquer ? Par exemple : mon débit cible pour respecter la dose voulu est 12m3/hectare à t=2 sur mon tableau j'obtiens 19,935. Que signifie cette valeur ?
    La valeur qui sort de ton régulateur PID est à appliquer sur la vanne mais par l'intermédiaire de la fonction de transfert à developper qui trabsformera les m3 en Volt ou en rapport cyclique ou en je ne sais quoi selon la vanne utilisée.

    j'ai tenté d'aider pour un tableau excel mais sans connaître le système complet il est difficle d'en dire davantage
    et faire un cours de régulation est ici impossible.

  14. #13
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    La consigne envoyé sera un commande pwm qui pilotera une vanne hydraulique. La commande de 24 je ne sais pas pourquoi cette valeur, j'ai juste cherché à avoir un profil de PID qui ressemble à ce que j'ai vu sur internet. C'est là que je sèche un peu c'est que je ne comprends pas comment faire le lien entre ma commande électrique et la valeur que me renvoi le PID. Je ne comprends pas bien à quoi cela correspond, peut-on lui donné une unité est-ce un coefficient uniquement ?

    D'autre part la vision du système complet je l'ai mais je ne suis pas sûr que quelqu'un serait prêt à m'accompagner sur l'ensemble du système. Si c'est le cas je peux sans problème l'expliquer et le schématiser.

    J'ai traité du sujet des fonctions de transfert lors de mon cursus mais je n'ai jamais pratiqué depuis et je ne suis plus capable d'établir celle-ci. (tout du moins je ne comprends plus les cours donnés par jiherve par exemple).

    Pour résumé je veux modifié l'ouverture de la vanne via une commande pwm pour avoir un débit cible qui va dépendre de la formule que j'ai donné plus haut. Les ordres seront calculés par un calculateur codé en C. Et il y aura un débitmètre qui va renvoyer l'information du débit instantané.
    Je n'ai pas d'expérience concrète dans ce genre d'application car suite à mes études d'électronique j'ai travaillé dans l'informatique.

  15. #14
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    Ne sachant pas comment modéliser mon système mathématiquement, est-il possible de connaître sa fonction de transfert par mesure réelle ? J'ai déjà le matériel pour le système non régulé à disposition.

  16. #15
    jiherve

    Re : Réalisation d'un PID pour régulation de débit en C

    re
    la procedure est donnée dans le lien.
    JR
    l'électronique c'est pas du vaudou!

  17. #16
    plumele

    Re : Réalisation d'un PID pour régulation de débit en C

    Citation Envoyé par davidbroglie Voir le message
    Ne sachant pas comment modéliser mon système mathématiquement, est-il possible de connaître sa fonction de transfert par mesure réelle ? J'ai déjà le matériel pour le système non régulé à disposition.
    La réponse est non à moins de tester la vanne dans toutes ses conditions de fonctionnement
    On lui envoie des signaux (dont j'ignore encore tout) et on mesure ce qui se passe.


    PS:Au document de jherve, je préfère le suivant qui est plus près du concret mais c'est encore trop d'informations simutanément quand on débute.
    https://w5.siemens.com/france/web/fr...frFR_fr-FR.pdf

    Je n'ai pas encre trouvé sur internet un document qui décrit correctement et concrètement le rôle de la partie intégrale ou différentielle d'un PID. Par contre les formules longues comme le bras, il y en a.
    je n'ai pas beaucoup cherché non plus.






  18. #17
    Gérard

    Re : Réalisation d'un PID pour régulation de débit en C

    Je reprends le train en marche.
    Pour une régulation, il faut :
    - une consigne (ce que l'on souhaite obtenir)
    - une mesure (ce que l'on a)
    - un correcteur (PI ou PID ou ...)
    - un système (ce que l'on souhaite réguler)

    Si tu ne sais pas comment réagit ton système (débit dans ton cas), il n'est pas possible de définir les paramètres Kp, Ki ...
    Pour déterminer les paramètres, il faut boucler le système et faire des essais. Voir identification du processus.
    http://www.polytech-lille.fr/cours-r...que/sc00a5.htm

    La vanne intervient également, entre autre si c'est une vanne pneumatique avec positionneur.

    Bonnes lectures.

  19. #18
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    Merci pour ces documents je vais me plonger un peu plus dedans afin d'essayer de comprendre plus en profondeur les étapes à réaliser.

    Sinon j'ai réaliser le schéma suivant pour vous indiquer un peu plus le fonctionnement de mon système:
    Nom : schema.PNG
Affichages : 1621
Taille : 206,7 Ko

    La vanne est une vanne hydraulique similaire à celle du schéma, sous forme de guillotine commandée par un vérin hydraulique.

  20. #19
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    J'ai également réaliser ce schéma mais je ne suis pas sûr qu'il soit exact n'hésitez pas à me reprendre si vous constatez des erreurs :
    Nom : boucle.PNG
Affichages : 1540
Taille : 10,3 Ko

  21. #20
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    J'ai également trouvé le document suivant pour la partie identification :
    Nom : doc.PNG
Affichages : 1645
Taille : 156,7 Ko

    La boucle ouverte ici correspondait-elle à la mesure du débit pour l'ouverture complète de ma vanne manuellement ?

  22. #21
    plumele

    Re : Réalisation d'un PID pour régulation de débit en C

    On y voit un plus clair
    Il aurait fallu poster ce schéma dès le début.

    J'essaie de synthétiser:

    les valeurs d'entrée sont
    - vitesse du véhicule en km/h
    - la dose souhaitée en m3/ha
    - le débit instantané en m3/mn

    valeur de sortie
    - signal PWM en % -- min/max : 0 ...100% 0% = vanne fermée 100% = vanne ouverte

    Ici des points sont à éclaircir:
    Je n'y connais rien dans ce genre de vanne mais le débit qui traverse une vanne pour une position donnée est fonction de la différence de pression amont/aval

    1- En admettant que le débit ne soit fonction que de l'ouverture, on peut définir une courbe de débit en fonction du % du signal PWM.
    Cette courbe n'est pas inévitablement linéaire. 0% = 0 m3/mn, 10% = x1 m3/mn, etc 100% = x m3/mn
    D'où la nécessité de connaître les caractéristiques de la vanne fournies par le fabricant ou bien de faire ses propres mesures.

    2- Il n'est pas toujours conseillé de piloter une vanne en butée afin d'éviter les coincements éventuels .
    Autrement dit on évite les PWM signal de 0% et de 100% sur une vanne (cela sert aussi parfois à faire du diagnostic). On peut utilisiser une échelle de 5% à 95% par exemple.
    Ici aussi une description détaillé de la vanne est bien utile.

    Calcul à effectuer:
    a- le dosage voulu = débit de consigne en m3/mn en fonction de la vitesse et de la dose voulue (décrit dans le message 4)

    b- consigne_envoyée:
    la valeur de dosage de consigne est comparée au débit fournie par le débitmètre
    La différence est utilisée par le PID qui lui, fournit en sortie une valeur en m3/mn appelé consigne_envoyée dans le tableur.
    c- La valeur du rapport cyclique PWM pour le pilotage de la vanne:
    -soit définir une formule de conversion %PWM = f(consigne_envoyée) si c'est possiblece qui m'étonnerait car ce n'est pas normalement pas linéaire.
    -soit comme il est préférable de le faire: créer une courbe caractéristiqueavec comme valeur d'entrée la
    consigne_envoyée et comme valeur de sortie la valeur de PWM.

    Ton schéma ne correspond pas à grand chose.
    Voilà comment je le vois vite fait sur le gaz.

    Nom : System-PID.jpg
Affichages : 1845
Taille : 147,2 Ko
    Des erreurs sont possibles de ma part car réalisé assez rapidement et puis je ne vais pas tout faire quand même.

    Il reste encore d'autres thèmes non abordés:
    - période de calcul : toutes les 10ms, 20 ms , 50ms, 100 ms, 1sec ? tout dépend de la rapidité d'intervention demandé de la vanne. Il n'est pas nécessaire de calculer toutes les 10ms si les variations de débit demandées sont lentes.
    - Quantisation, ou plutôt quantification en français: s'agit-il de calcul en 8 bit ? en 16 bit.
    1 incrément de débit correspond à combien de m3/mn
    idem pour le %PWM.

  23. #22
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    Merci beaucoup ! Je commence à y voir plus clair.

    Je vais essayer de faire quelques essais sur le pilotage de la vanne en manuelle et essayer te trouver un rapport entre la position de la vanne et le débit. Je pense qu'avec plusieurs mesure ça devrait me permettre d'avoir un modèle cohérent.
    Penses-tu que mesurer l'évolution du débit pour une ouverture de 0 à 100% jusqu'à stabilisation du débit soit judicieux comme méthode ?

  24. #23
    plumele

    Re : Réalisation d'un PID pour régulation de débit en C

    Citation Envoyé par davidbroglie Voir le message
    Penses-tu que mesurer l'évolution du débit pour une ouverture de 0 à 100% jusqu'à stabilisation du débit soit judicieux comme méthode ?
    Puisque tu n'a pas de description de la vanne, c'est effectivement la seule méthode.
    C'est à dire faire une montage qui consiste à piloter la vanne de 0 à 100% par pas de 5% par exemple, et à mesurer le débit à l'aide du débitmètre pour chaque position de la vanne.

  25. #24
    Gérard

    Re : Réalisation d'un PID pour régulation de débit en C

    C'est aussi mon avis. Cette courbe permettra de savoir quelle est le rapport entre position de la vanne et débit.

  26. #25
    davidbroglie

    Re : Réalisation d'un PID pour régulation de débit en C

    Ok merci pour votre aide en tout cas.

  27. #26
    geoffrei

    Re : Réalisation d'un PID pour régulation de débit en C

    Est-il possible de faire une régul pid sur une électrovanne seulement avec les caractéristiques données dans les doc technique?

Discussions similaires

  1. [Programmation] Régulation de débit
    Par Nicolas54110 dans le forum Électronique
    Réponses: 16
    Dernier message: 27/01/2016, 11h46
  2. Réponses: 0
    Dernier message: 16/07/2012, 08h21
  3. Réalisation d'un module de régulation déclairage LED
    Par invited6f2a959 dans le forum Électronique
    Réponses: 2
    Dernier message: 07/04/2011, 10h14
  4. Regulation Débit
    Par invite422e6047 dans le forum Physique
    Réponses: 0
    Dernier message: 29/03/2011, 18h05
  5. realisation d'un pid pour réguler un débit
    Par invite49a9154c dans le forum Électronique
    Réponses: 3
    Dernier message: 18/05/2009, 16h27
Découvrez nos comparatifs produits sur l'informatique et les technologies.