IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

PID pour pompe péristaltique et capteurs de force


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    sous marinier
    Inscrit en
    Janvier 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : sous marinier

    Informations forums :
    Inscription : Janvier 2018
    Messages : 37
    Par défaut PID pour pompe péristaltique et capteurs de force
    Bonjour !

    Suite aux réglages de ma pompe et de ma jauge de contrainte (capteurs de force), me revoici pour l'étape cruciale, l'asservissement !

    Je souhaite régler correctement un PID à l'aide de la bibliothèque PID_v1 d'Arduino, hélas, j'ai un peu de
    mal à faire les réglages en fonction de mes besoins.

    Mon projet : Faire tourner une pompe plus ou moins vite, en fonction d'un capteur de force qui pèserait un liquide contenu dans une poche (cette dernière bien sur rattaché à la pompe) . La pompe devrait diminuer ses tours par minute quand la poche se vide et augmente sa rotation quand la poche se remplit.

    Je ne sais pas comment donner une fourchette de valeur à la consigne "setpoint", et j'aimerais aussi que le moteur ait un RPM par défaut que je pourrais définir dans le serial.

    Voici le premier jet de mon programme (Il a en gros la logique de fonctionnement, mais il me manque le rmp par défaut, la fourchette de valeur, ainsi que la précision que je reglerais à la fin en modifiant les trois K) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <PID_v1.h>
    #include "HX711.h" //Utiliser la librairie modifiée
     
    HX711 scale(A2, A3);  //Prise de la tension differentielle entre A2 et A3 
     
    const int rotation = 2; //Pilote de la rotation branché sur la broche 2
    const int stopAndRun = 4; //Pilote du maeche/arret branché sur la broche 4
    const int motorPin = 5; //Pilote du moteur connecté sur la branche 5
     
    double Setpoint, Input, Output;
    double Kp=2, Ki=0, Kd=0;
     
    PID myPID(&Input, &Output, &Setpoint,Kp, Ki, Kd, REVERSE);
     
    void setup()
    {
    TCCR0B = TCCR0B & B11111000 | B00000001; //changement de la frequence du pwm pour faire depasser la fc du passe bas
    Serial.begin(9600); //initialise la liaison série
    pinMode(stopAndRun, OUTPUT); //pin du parametre STOP/RUN en sortie
    pinMode(rotation, OUTPUT); //pin du parametre SENS HORAIRE en sortie
    pinMode(motorPin, OUTPUT); //pin du parametre VITESSE du moteur en sortie
    Serial.begin(9600);
    scale.tare();                // Tare du capteur
    scale.set_scale(2165.f);     // Calibration de l'echelle du capteur
     
    Input = analogRead(0);
    Setpoint = 20;
    myPID.SetMode(AUTOMATIC);
    }
     
    void loop()
    {
    Input = (scale.get_units(230));
     
    Serial.println(Input);
     
    myPID.Compute();
    analogWrite(5,Output);
     
    }
    La logique de fonctionnement est la mienne, si vous en avez une autre en tête n'hésitez pas à me la suggérer...

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 248
    Billets dans le blog
    48
    Par défaut
    Bonsoir,

    comprends pas Dans l'autre discussion j'ai fini par comprendre que tu avais deux pompes, avec deux poches et deux capteurs de force. Et j'ai cru comprendre qu'il fallait en fait que les deux poches se vident/remplissent en même temps. Là tu ne parles que d'une seule pompe, d'une seule poche...

    Citation Envoyé par P1GOU1 Voir le message
    [...] le circuit fermé sera composée de deux pompes, (pompant mes deux poches de liquides), et ces deux pompes risquent d'être désynchronisée en vitesse l'une par rapport à l'autre.

    Du coup au début ça risque de ne pas se voir, mais au bout d'un litre ou deux d’écoulement, l'une risque d'être plus remplie que l'autre, et c'est ce que je ne veux pas.

    La perturbation serait donc mesurée par la perte de poids d'une poche en comparaison de l'autre avec ma jauge de contrainte, et en fonction, une des deux pompes accélère, ou décélère peu importe, pour ajuster le débit.

  3. #3
    Membre actif
    Homme Profil pro
    sous marinier
    Inscrit en
    Janvier 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : sous marinier

    Informations forums :
    Inscription : Janvier 2018
    Messages : 37
    Par défaut
    Oui a terme il y aura bien deux exemplaires de chacun des composants que tu viens de citer, d’où l'utilité d'asservir.

    Mais je test sur une pompe au début puis j'aurais qu'à copier/coller si cela marche correctement sur la deuxième pompe...

    Avec le recul je reconnais que c'est n'est pas très clair si on à lu mes posts précèdents, mais heureux de voir que tu suis ^^

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 248
    Billets dans le blog
    48
    Par défaut
    Dans ce cas, c'est ton capteur de force qui doit donner une image de la vitesse de rotation (proportionnelle au débit). Il doit permettre d'estimer le débit de remplissage de la poche (litre ou kg/s). L'Arduino peut le calculer en mesurant la variation de poids de la poche entre deux tics.

  5. #5
    Membre actif
    Homme Profil pro
    sous marinier
    Inscrit en
    Janvier 2018
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : sous marinier

    Informations forums :
    Inscription : Janvier 2018
    Messages : 37
    Par défaut
    Comment écrirais/symboliserais tu ces deux tics dans le programme ?

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 248
    Billets dans le blog
    48
    Par défaut
    Tu peux calculer le débit de façon approchée : q = (P(t+dt) - P(t)) / dt

    dt : intervalle de temps entre deux mesures du poids P, voir la fonction millis().

Discussions similaires

  1. Capteur de force à 3 fils
    Par Marmoton dans le forum Hardware
    Réponses: 4
    Dernier message: 18/03/2016, 00h13
  2. Z-monitor pour les réseaux de capteurs sans fil
    Par mrewaabd dans le forum Protocoles
    Réponses: 1
    Dernier message: 22/07/2014, 01h59
  3. programme pour calibrage d'un capteur
    Par inf2013 dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 24/10/2013, 13h06
  4. simulateur pour les réseaux de capteurs sans fil
    Par ama.10 dans le forum Hardware
    Réponses: 1
    Dernier message: 27/06/2013, 18h43
  5. UWB pour les réseaux de capteurs sans fil
    Par imane_it dans le forum MATLAB
    Réponses: 0
    Dernier message: 15/12/2010, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo