Les chapitres Prélude IV Éléments techniques pour la mise en œuvre d'un "ventilateur intelligent"
|
4. Un troisième montage régulateur du niveau de la réserve d’air pour assurer : Yves Monfort
4.1 Comment faire l’enregistrement du niveau désiré de la réserve d’air. 4.2 Troisième programme : fichier CommandeNo2.txt. Avec ce troisième montage la régulation de niveau est définie de façon plus précise. La variation de tension fournie par le capteur de niveau, lorsqu’elle va se modifier au moment d’une demande plus grande du débit d’air, est amplifiée pour obtenir une réaction aussi énergique que le permet l’installation.
Cliquez sur l'image pour l'agrandir.
|
||||||||
La correction proportionnelle d’écart de niveau implique que le niveau désiré de la réserve d’air soit défini au préalable.
Pour indiquer que l’on veut effectuer cette tâche on utilise une broche supplémentaire de l’Arduino : la broche D6. Cette opération est nécessaire seulement la première fois que ce programme est utilisé, mais rien n’empêche de recommencer si l’on n’est pas satisfait du premier réglage.
4.1 Comment faire l’enregistrement du niveau désiré de la réserve d’air. Après la mise sous tension, l’Arduino effectue un test de la broche D6 : si elle est dans l’état bas, le programme entre en phase de réglage de hauteur. Le programme se comporte alors comme celui de la première réalisation : il envoie simplement au contrôleur du moteur brushless des impulsions dont la largeur est proportionnelle à la tension de la prise médiane du potentiomètre de niveau. Après la phase d’initialisation du contrôleur, en tournant le potentiomètre, on fait démarrer progressivement le moteur pour que la réserve d’air se gonfle. Quand le niveau augmente très lentement et qu’il arrive à la hauteur désirée, (qui sera la hauteur de référence pour le régulateur), on fait passer l’état de la broche D6 à l’état haut en arrachant le fil rouge en forme de boucle sur la photographie. Le microcontrôleur de l’Arduino détecte très rapidement ce changement d’état, enregistre dans sa mémoire EEPROM la tension donnée par le capteur optique et le niveau de puissance du moteur.
Note sur le niveau de tension de la broche D6. La photographie montre le détail des connexions de la broche D6. Une résistance de 10 kilo ohms est mise entre cette broche et la ligne +5V. Connectée ainsi cette broche configurée en entrée est portée au potentiel 5V. Au démarrage le programme reconnaît cet état, passe en fonctionnement normal : 6 secondes en mode d’initialisation du contrôleur, démarrage progressif et finalement, régulation de la hauteur de la hauteur de la réserve d’air. Quand on veut enregistrer le niveau de la hauteur d’air, pour obtenir à la mise sous tension du module, une tension de 0V sur la broche D6, on peut utiliser la méthode montrée sur la seconde photographie. On y voit une boucle de fil rouge branchée entre la sortie D6 et la ligne d’alimentation 0V. Au début du programme, le module reconnaît cet état et entre dans la phase de configuration de hauteur, comme il a été décrit un peu plus haut.
4.2 Troisième programme : fichier CommandeNo2.txt. Sans recommencer la description des fonctions du programme déjà utilisées dans les réalisations précédentes, signalons les points nouveaux introduits dans ce programme. Comme d’habitude, dans le langage Arduino, la fonction setup() fait un certain nombre d’initialisations du microcontrôleur, et c’est après la fonction loop() qui est utilisée tout le temps restant. Ensuite, c’est la même démarche que dans le programme CommandeNo1 pour l’attente des 6 secondes donnée au contrôleur pour moteur pour s’initialiser et le démarrage progressif du moteur. Après quoi, c’est le fonctionnement dans la boucle infinie qui utilise successivement les deux fonctions citées dans les programmes des autres réalisations : mesures() et faire_pulse(). Si la seconde fonction n’a rien de nouveau, la fonction mesures() fait tout le nouveau travail de régulation demandé à ce programme. À chaque fois que la fonction est appelée, (toutes les 20 millisecondes), elle mesure la tension du capteur de distance et la tension du potentiomètre de gain. (On rappelle que le potentiomètre de niveau n’est plus utilisé). Le gain unité est attribué à la position médiane du potentiomètre. Une valeur de gain comprise entre 0,25 et 1 est calculée proportionnellement à la position du potentiomètre s’il est entre 0V et la position médiane, ou entre 1 et 4 s’il est entre la position médiane et +5V. Du moins ce sont les valeurs proposées par défaut. Les commentaires inclus dans le programme permettent de modifier les formules pour utiliser d’autres valeurs de gain. La mesure de tension du capteur optique est comparée à la tension donnée par la référence de hauteur. L’écart entre les deux valeurs (positif ou négatif) est multiplié par le gain, pour être attribué à la variable nommée encore ici dist_utile, par analogie aux programmes des réalisations précédentes. Et c’est donc la somme (dist_utile + offset_puiss) qui est passée à la fonction faire_pulse() pour réguler la réserve d’air en accélérant ou ralentissant le moteur. ATTENTION : À la fin de la fonction mesures() il faut trouver les lignes qui se présentent de la façon suivante :
/*********************************************************************/
Avec ce changement de signe, la régulation fait diminuer la puissance du moteur quand l’obstacle entrainé par la hauteur de la réserve d’air s’approche du capteur optique.
/*********************************************************************/
En suivant la méthode déjà expliquée, on implante dans le module Arduino le programme de cette réalisation à partir de l’un des deux fichiers: Commande N°2.txt ou Commande N°2_bref.txt. Le premier contient beaucoup de commentaires qui peuvent compléter le descriptif précédent du programme, le second très peu, mais le programme implanté dans le microcontrôleur est le même.
Si nécessaire, ne pas oublier de modifier la ligne qui détermine le sens de la régulation avant d’effectuer la programmation. Réglage obligatoire lors du premier lancement du programme. Il est impératif de faire ce premier réglage afin que le programme sache à quel niveau il doit réguler la réserve d’air. Il vaut mieux que le potentiomètre de gain soit en position médiane. Ainsi, quand on passera en fonctionnement « normal », le gain de la boucle de réaction sera égal à 1, valeur raisonnable qui sera affinée ensuite. Il faut que la broche D6 soit mise à 0V. Il faut que ne potentiomètre de niveau ait son Il reste à faire le réglage du gain qui peut se refaire d’ailleurs à tout moment, en fonctionnement normal, par la rotation du potentiomètre de gain. On se base sur les observations suivantes : - Le plus souvent, avec un gain voisin de 1, qui est en principe celui dans lequel on a mis le potentiomètre avant le premier réglage, le niveau de la réserve d’air reste au niveau de référence. Si le jeu de l’orgue demande un flux d’air, le niveau de la réserve baisse un peu, et dès que cette demande cesse, la réserve d’air doit revenir assez rapidement à son niveau de référence. Si on estime la vitesse de retour au niveau de référence trop lente, on peut l’améliorer en augmentant le gain. Pour rendre la variation de niveau petite lors des demandes d’air de l’orgue, et le retour le plus rapide possible, le gain peut être augmenté jusqu’à une limite où apparaissent des oscillations du niveau de la réserve d’air. À ce moment on a dépassé les limites de régulation du dispositif. Il faut réduire un peu la valeur du potentiomètre de gain pour que l’ensemble moteur et niveau de la réserve d’air soient calmes quand l’orgue ne joue pas. Au second lancement du programme et les suivants... Note concernant l’étendue du réglage de gain. La boucle de régulation proportionnelle est pour l’automatique le niveau de régulation le plus élémentaire. Bien que cette régulation soit commode et plutôt satisfaisante sur les essais en « vrai grandeur » sur les orgues de Joseph Hamel, nous avons aussi testé un régulateur PID numérique, considéré comme un plus haut niveau de régulation. Effectivement, au prix d’une programmation un peu plus longue du module Arduino, mais sans aucune modification notable de la platine de test ni de modifications de liaisons vers le contrôleur du moteur ou vers le capteur optique de distance, on obtient encore un meilleur contrôle du niveau de la réserve d’air pendant le jeu de l’orgue, garantissant une meilleure régulation de la pression et la stabilité du vent. Cliquez ici pour lire la suite.
|
|||||||||
|