je dois dans le cadre d'un projet gérer 12 moteurs. Sur base de la sortie d'un pid je démarre mes moteurs progressivement.je décompose la sotie du PID en palier 100/12 = 8.33 Jusque là ça va Donc si je pars de la situation d'un 1er démarrage. chaque fois que la sortie pid atteint 8.5 je démarre un moteur et quand elle diminue de 8.5 je stop le dernier démarrer (normalement je devrais couper le 1er démarrer mais bon calmons nous ).Si ma consigne repasse à zéro, les moteurs sont couper et lorsque la sortie du pid atteint 8.33 palier je dois démarrer le dernier moteur du cycle avant +1 et ainsi de suite.
Le type d'automate, c'est secondaire. On peut coder l'application sur n'importe quel matériel.
Perso, j'ai codé quelque chose d'equivalent sur un Omron, avec un fonctionnement circulaire premier démarré premier arrêté.
La pile la plus utilisée: la pile GIGO. Bien plus souvent que les FIFO ou LIFO.
Sinon, mettre la sortie du PID de 0 à 120% divisé par 10 puis conversion en entier ça te fait un jolie compteur du nombre de pompe à mettre en route.
Puis décalage d'un bit dans un mot pour la commande des pompes.
slts,
ça s'appelle un démarrage / arrêt en cascade,
à chaque palier dans le sens croissant forcer le bit 0 à 1 et tu décale un mot de 16 bits de 1 à gauche
et dans le sens décroissant raz du bit 0 et décalage de 1 bit à droite.
les bits 1 à 12 commandent les moteurs
principe:
sur un mot de 16 bits :
Si on force le bit 0 à 1 et on fait des décalages logique de 1 à gauche, ça remplit le registre
Et si on fait des décalages logique de 1 à droite, ça vide le registre,
Je l'ai fait sans registre.
En se déplaçant dans une table de mots contenant des images des sorties.
Ça permet, entre autres possibilités, de ne pas partir de zéro toujours avec le même matériel. Si on a terminé avec le 5, on redémarre avec le 6, par exemple.
c'était une chaudière électrique avec des résistances commutées en tout ou rien. Ça économise le premier contacteur qui peut commuter très souvent.
La pile la plus utilisée: la pile GIGO. Bien plus souvent que les FIFO ou LIFO.
Ayant régulièrement ce genre de cas, ce sujet m'intéresse car j'avais déjà pensé à utiliser ce fonctionnement, mais j'avais eu quelques incertitudes sur cette philosophie.
Donc juste une petite question pour ceux ayant déjà implémenté ça, sur, soyons fous, une régul de débit avec plusieurs pompes:
Comment gérez-vous les seuils de démarrage afin d'éviter des start/stop intempestifs ?
Si par exemple il faut démarrer une pompe supplémentaire à 20%, dès ce cap franchi, la pompe supplémentaire démarre et la mesure augmente donc très sensiblement (variateurs avec fréquence mini allant de 15 à 20Hz sur ce genre de pompe).
Suite à ça le PID diminue sa sortie en toute logique si l'erreur entre la consigne et la mesure était assez faible, et passe sous le cap des 20% et coupe le sifflet à une pompe et l'on revient donc à la situation précédente avec l'augmente de la sortie PID.
Une bande morte sur le PID suffit à palier à ce genre de problème ? ou autre astuce ?
Je n'ai jamais osé proposer ce genre de régul, n'ayant vraiment aucune assurance de son fonctionnement sur site :p
C'est un vaste sujet
mais le principe c'est de ne pas faire la régulation sur la dernière pompe mais sur plusieurs pompe en même temps.
Je m'explique :
si on a 4 pompes :
on évite l'algo 3 pompes à 100% et la dernière à 25 % qui s’arrêtent et redémarre 15 fois par heures
on fonctionne avec pompe 1 et 2 à 50Hz et pompe 3 et 4 qui régul ensemble à xxHz on évite ainsi les Marches/Arrêt fréquent d'une pompe.
Il y a surement d'autre façon de faire que je ne connais pas. Une bande morte sur le PID, tu risques d'avoir des écart entre ta consigne et ta mesure si le process le permet pourquoi pas.