Les chapitres Prélude IV Éléments techniques pour la mise en œuvre d'un "ventilateur intelligent"
|
5 - Un quatrième montage régulateur du niveau de la réserve d’air pour assurer
: Yves Monfort
5.2 Quatrième programme : fichier CommandeNo3.txt 5.5 Quelques mesures de temps. Cette fois, pas de nouveau schéma électrique, juste une nouvelle photographie de la platine de test qui montre une nouvelle résistance de 10 kilo ohms pour mettre la broche D4 au niveau haut. À part cet ajout, c’est le même montage que dans la réalisation précédente. Pour que le calcul PID soit effectué, le programme va vérifier que cette broche D4 est à l’état haut. Si elle est à l’état bas, en mettant un shunt entre cette broche et la ligne 0V, la régulation devient à nouveau uniquement proportionnelle, exactement comme dans la réalisation correspondant au troisième montage. Cette possibilité a été introduite, afin de pouvoir refaire, si nécessaire tous les réglages du troisième montage, sans devoir reprogrammer le module Arduino.
Cliquez sur l'image pour l'agrandir. |
||||||||
A priori, si on a fait les réglages des potentiomètres de niveau et de gain avec le montage et le programme précédents, il n’y a plus les retoucher. S’ils étaient bien faits dans le dispositif précédent, ils seront aussi les meilleurs ici. La seconde concerne l’augmentation (assez faible) de la rapidité de la réponse de la régulation, mais surtout elle permet d’avoir un intégrateur dont la réponse ne soit pas trop lente. Parce que l’intégrateur introduit un retard de phase supplémentaire dans la boucle de régulation, pour n’être pas obligé de diminuer le gain proportionnel on compense ce retard de phase par l’avance de phase d’un correcteur de type dérivateur. On évite ainsi l’apparition des oscillations de pompage.
Parce que l’on dispose d’un niveau de calcul suffisant dans le microcontrôleur de l’Arduino il n’y a pas d’implantation d’électronique supplémentaire. L’introduction de fonctions intégrales et dérivées utilise une méthode numérique et donc échantillonnée. Pour faire simple, la période d’échantillonnage, nommée Te dans le programme CommandeNo3 est de 20 millisecondes. C’est le contrôleur du moteur brushless qui impose cette cadence d’après le codage utilisé usuellement dans les télécommandes. C’est sans doute un peu rapide pour un dispositif dont la fréquence de pompage mesurée est de l’ordre de la seconde, mais avec cette cadence rapide on peut obtenir un résultat correct, en calculant le correcteur PID comme un procédé continu, puis en discrétisant le correcteur. Le but n’est pas de développer la théorie ni les calculs d’une correction PID, aussi avons-nous adopté pour déterminer ses paramètres une méthode ancienne, bien connue sous le nom de « méthode de Ziegler et Nichols ». Cette méthode a l’avantage indéniable de ne demander aucune mesure supplémentaire, par rapport à ce que l’on connaît déjà. Deux paramètres sont à noter pour cette méthode. Il faut, dans la configuration de régulation proportionnelle, (celle de la troisième réalisation), augmenter le gain de la régulation jusqu’à apparition de l’oscillation de pompage, et mesurer la période de l’oscillation de pompage. C’est le premier paramètre à retenir. Un chronomètre ou la simple trotteuse d’une montre sont bien adaptés pour cette mesure. Attention : La mesure de cette période doit se faire avec des oscillations du niveau de la réserve d’air les plus petites possibles. Si l’amplitude devient grande, il se créera dans les circuits et dans le fonctionnement du ventilateur des non-linéarités et des saturations qui allongerons exagérément la durée des périodes d’oscillations. Si la durée de période retenue est trop longue, la régulation aura un temps de réponse trop long par rapport aux possibilités de l’installation. Au contraire si la durée de période retenue est trop courte on risque d’avoir une installation qui présente des instabilités. La valeur retenue pour la période des oscillations n’a pas besoin d’une très grande précision, mais l’application d’une bonne valeur dans le calcul de la régulation optimise ses performances. Le second paramètre est la valeur du coefficient du gain proportionnel de la régulation à l’apparition de l’oscillation de pompage. Comme cette valeur numérique est calculée dans le microcontrôleur d’après le réglage du potentiomètre de gain, elle n’est pas commodément accessible. On ignorera délibérément sa valeur numérique mais on s’appliquera, comme on l’a déjà fait dans la troisième réalisation, après avoir obtenu des oscillations de pompage en mode proportionnel, à réduire un peu ce gain pour voir un ensemble ventilateur et réserve d’air raisonnablement stable. En laissant le potentiomètre de gain dans cette position on devrait obtenir de bons résultats. La méthode de calcul des coefficients du correcteur PID n’est pas développée ici. Ces coefficients et leur application dans les formules est complètement faite dans le programme. Il suffit de préciser la valeur de la période d’oscillation de pompage, mesurée ainsi qu’il est expliqué plus haut. C’est la variable Tu que l’on trouve presqu’en début de programme, et qu’il faut exprimer en seconde. On peut aussi vérifier que la variable Te est bien mise à 0.020 seconde (= 20ms), qui est logiquement la période d’échantillonnage. L’explication de la méthode peut être trouvée dans les livres d’automatique. Nous avons retenu le livre intitulé : « Synthèse d’une commande robuste » de Jean-Marie RETIF, (ed. ellipses) pour l’explication et la formulation du correcteur PID discrétisé. Les formules utilisées dans le programme appelé CommandeNo3 se trouvent à la page 139 de ce livre.
5.2 Quatrième programme : fichier CommandeNo3.txt En premier lieu, pour l’utiliser, il faut écrire dans le fichier du programme la valeur de la période mesurée pour les oscillations de pompage. Cette valeur est appelée Tu. La période d’échantillonnage est Te, en principe égale à 20 ms, ne devrait pas être modifiée. Comme les programmes précédents, ce nouveau programme assure le démarrage automatique du système, en passant par le temps d’attente pour que le contrôleur s’initialise, puis le démarrage progressif, et la régulation de hauteur au niveau désiré s’il a déjà été enregistré dans la troisième réalisation. Ceci étant fait, on peut ôter le dernier shunt qui reste sur D4, et le module Arduino passe en mode de régulation PID. Le programme réagit de la manière suivante : si la lecture de la broche D4 donne un 0, c’est dist_utile qui est envoyée à la fonction faire_pulse(), si la lecture donne un 1, c’est yn[0] qui lui est envoyée. ATTENTION :
En suivant la méthode déjà expliquée, le programme de cette réalisation est implanté dans le module Arduino à partir de l’un des deux fichiers : Commande N°3.txt ou Commande N°3_bref.txt. Il est possible encore de faire une petite retouche du potentiomètre de gain. En l’augmentant on accroît un peu la vitesse de la régulation de hauteur, mais un gain trop élevé conduira à des dépassements importants des corrections et pourrait démarrer des oscillations de pompage. C’est le signe que la valeur du gain est devenue trop grande.
La description des divers montages s’arrête ici. Il n’y a qu’à souhaiter que tout se passe aussi bien que les tests qui ont conduits à la description de ces réalisations. On peut attirer l’attention sur les différentes possibilités offertes par le programme et la platine d’essai dans la configuration de la quatrième réalisation.
5.5 Quelques mesures de temps. Il a fallu vérifier la durée nécessaire aux diverses parties du programme pour s’assurer que toutes les mesures et calculs ont le temps de s’effectuer dans chaque période de 20 millisecondes. Pour ce faire, on a introduit provisoirement des mises à l’état haut ou à l’état bas de la broche D3. L’observation de la tension de cette broche à l’oscilloscope a donné les résultats suivants : Et enfin une photographie d’un module Arduino Nano sur un prototype de circuit imprimé, pour donner une idée de ce que pourrait devenir un régulateur en utilisation. Yves Monfort
|
|||||||||
|