Optimisation photovoltaïque #3 : Contrôle numérique du variateur de puissance

Sommaire

Cet article fait partie d’une série de posts ayant pour objectif de rendre rentable l’utilisation de panneaux solaires photovoltaïque dans un contexte domestique. Pour bien comprendre ce dont il s’agit, il est recommandé de lire les articles dans l’ordre. En voici la liste :

Étude d’un régulateur de puissance SCR

La variation de la puissance s’effectue grâce à un gradateur à base de SCR. Initialement le modèle choisi est piloté par un petit panneau muni d’un afficheur et de deux boutons +/-. Ce genre de commande électronique est ce qu’il nous faut : l’absence de pièce mécanique rend le système précis, fiable et rapide. Il n’en reste pas moins manuel : pour faire varier la puissance quelqu’un doit appuyer sur les boutons.

Ma première approche pour contrôler cet appareil a distance a consisté à simuler des appuis sur les boutons en “court circuitant” les boutons à l’aide d’optocoupleurs. Le principe est simple et peu invasif. En plus on conserve l’afficheur qui affiche la puissance fournie. Malheureusement la technique s’est avérée inadaptée car le panneau de contrôle limite la fréquence d’appui sur les boutons à environ 2Hz (debounce). En d’autres termes il n’est pas possible de modifier rapidement la consigne car il faut environ 50 secondes pour passer de 100% à 0%. C’est beaucoup trop. Pour ne rien arranger on ne sait pas de quelle consigne on démarre. En cas de perte de connexion (une coupure de courant ou de wifi, redémarrage du système). Il faut piloter la consigne à 0 puis seulement après à la valeur voulue. Ceci peut poser des problèmes de fiabilité.

Pour ces différentes raisons j’ai changé mon approche. Il se trouve que le panneau de contrôle est connecté au gradateur proprement dit par une petite nappe de 4 fils. Le rôle de chaque fil est directement inscrit sur la carte (voir la photo ci-dessous). C’est inespéré ! Et comme tout le circuit de contôle semble être implémenté dans ce panneau, il y a fort à parier que les signaux peuvent être reproduits facilement.

Analyse de la communication gradateur // panneau de contrôle

Deux connexions ont une signification évidente : GND et +5V. Elles servent à alimenter le circuit du panneau de contrôle. Un rapide contrôle au multimètre confirme ces libellés.
Les deux autres signaux, ZERO et SCR, sont moins clairs pour un profane comme moi. Quelques recherches sur le fonctionnement d’un gradateur SCR permettent d’éclaircir le rôle de ces broches. Pour comprendre, il suffit de jeter un coup d’oeil au diagramme suivant : on y visualise le courant alternatif en forme de sinusoïde et l’effet du SCR.

Principe du SCR

A chaque alternance, le SCR laisse passer le courant pendant une fraction du temps seulement. Comme la puissance active en courant alternatif est une intégrale de Intensité x Tension (quand les deux sont en phase, une description correcte ici) il en résulte que l’énergie électrique qui passe dans le conducteur est fonction de la durée d’activation du SCR. Faire varier la puissance consiste à faire varier cette durée. Plus le courant passe longtemps plus la puissance fournie est, en moyenne, élevée. Réciproquement, moins le courant a de temps pour passer, plus la puissance est faible.

Ce qu’il faut bien comprendre, c’est que la puissance varie à chaque instant du fait de l’alternance du courant et peut atteindre le même pic, SCR ou pas. Au final c’est la quantité d’énergie transmise sur chaque période qui change. Comme on fait varier la quantité d’énergie sur un laps de temps “assez grand” et qu’on en tire une moyenne, on dit de manière un peu abusive qu’on régule la puissance mais c’est inexact, on régule plutôt la quantité d’énergie. Un tel mécanisme de hachage du courant suppose un système capable d’amortir les pics en amont. Il risque aussi de déformer la sinusoïde du courant et de créer des parasites sur le circuit. En dépit de ses qualités ce type de variateur SCR n’est toutefois pas idéal. Une variation plus “douce” et homogène de la puissance peut se faire par variation de la tension : on appelle ce genre d’équippement auto-transformer ou variac.

Variateur de puissance par la tension

Malheureusement ce type de variateur est beaucoup plus cher à puissance maximale équivalente et surtout se pilote mécaniquement (une commande rotative faisant varier les caractéristiques du bobinage). Je n’ai pas trouvé mieux, quelqu’un a une meilleure idée ?

Revenons aux broches ZERO et SCR pour lesquelles on peut maintenant comprendre le rôle. ZERO est le signal de passage par zéro de la tension, il est fourni par le circuit du gradateur. SCR est la commande d’activation : il est actionné par le circuit de contrôle après chaque signal ZERO, avec un délai qui est fonction de la puissance de consigne. Pour une consigne de 100%, la commande est émise tout de suite après le passage par zéro pour laisser passer le courant un maximum de temps. Pour une consigne de 0% il n’y a pas de commande, de telle sorte que le courant ne passe jamais. Il reste à vérifier ces hypothèses à l’oscilloscope (après avoir vérifié les tensions au multimètre…).

Utilisation d’un oscilloscope pour étudier les signaux ZERO et SCR

L’utilisation d’une breadbord permet d’exposer les signaux le temps de l’analyse. Ici on vient repiquer la masse (GND en noir), le passage par zéro (ZERO en blanc) et la commande du SCR (en gris et vert).

Mise en garde : débrouillez vous pour mettre en sécurité l’installation avant tout raccordement au réseau électrique. Ne manipulez pas le boitier lorsqu’il est sous tension. Isolez les connexions. Ne laissez pas trainer les fils. Ces précautions ne sont jamais du temps perdu.

La capture ci-dessous présente les signaux pour une consigne affichée à “53” sur le panneau de contrôle :

Visualisation du passage par zéro et de la commande du SCR (53%)

La courbe en bleu est le signal de passage par zéro : plus précisément le signal indique la polarité de la tension (positif ou négatif). Chaque changement de valeur indique une inversion de polarité, donc un passage par zéro. La fréquence du courant alternatif en France est 50Hz, soit 20ms par période. Ça correspond parfaitement aux quatres graduations de 5ms entre chaque créneau.

La courbe en jaune est la commande du SCR. Il s’agit d’un signal en créneau d’environ 3ms émis après chaque passage par zéro. A chaque front montant de SCR le courant est “libéré” jusqu’au prochain passage par zéro de la tension. L’émission de ce top départ à peu près à la moitié du temps entre deux zéros correspond à la consigne de 53.

Ci-dessous une autre capture des signaux, cette fois avec une consigne de “86” :

Visualisation du passage par zéro et de la commande du SCR (86%)

On constate ici que le top SCR est plus rapproché du signal zéro. Une plus grande quantité d’énergie peut passer à chaque oscillation. On constate aussi que la consigne de “86”, pour laquelle j’ai volontairement omis de préciser l’unité, ne correspond pas à 86% de la puissance, mais 86% du temps. La courbe étant sinusoïdale, ce n’est pas pareil. La différence est susceptible de varier encore plus en cas de déphasage ou de déformation de la courbe de courant. De toute manière il va falloir penser à faire une conversion.

Enfin, voici une dernière capture, cette fois avec une consigne de 25 :

Visualisation du passage par zéro et de la commande du SCR (25%)

Le pas de temps est diminué à 2ms au lieu de 5ms pour “zoomer” un peu. De façon un peu surprenante, on constate que le signal SCR change de durée. D’un créneau d’environ 3ms il passe maintenant à un pulse très court. Au dessus de 50% le top dure 3ms. En dessous de 50% il dure seulement quelques dizaines de microseconde. Je ne connais pas la raison de cette différence car un top court semble suffisant sur toute la plage de fonctionnement. Il s’agit peut être d’une facilité de réalisation du circuit de contrôle mais dans le doute j’ai choisi de reproduire ce comportement dans le programme du microcontroleur qui est décrit ci-dessus.

Réplication du circuit de contrôle avec pilotage “WiFi”

Le fonctionnement de notre régulateur de puissance étant maintenant bien compris il est possible de substituer au panneau de contrôle notre propre dispositif qui, en plus de piloter le signal SCR en fonction du signal ZERO, sera capable de recevoir les consignes par WiFi et MQTT.

Circuit

La solution retenue ici s’appuie sur un micro controleur ESP8266, implanté sur un module ESP-01. Il est très bon marché, rapide, facile à programmer avec Arduino et le peu d’entrées/sorties de l’ESP-01 n’est pas un problème car il nous suffit d’une broche en entrée et d’une autre en sortie.

L’ESP-01 à droite et son programmeur USB à gauche

Seul problème : la sortie ZERO du gradateur est en 5V alors que l’ESP-01 fonctionne en 3.3V (on en discute un peu plus loin). Pour alimenter l’ESP-01 en 3.3V j’utilise un module tout prêt HLK-PM003 qui convertit directement du 220V AC en 3.3V CC. On trouve ci-dessous un schéma de connexion de principe.

Schéma de connexion de l’ESP-01 au gradateur SCR (version “bête”)

Il y a dans ce circuit un problème important : les signaux du gradateur sont en 5V or l’ESP-01 fonctionne en 3.3V. Une surtension peut endommager le micro controleur. En ce qui concerne la commande SCR il n’y a pas de danger, car ce signal est en sortie. Il se peut que le niveau de tension ne soit pas suffisant pour faire commuter le SCR mais il se trouve qu’ici en particulier, c’est suffisant. En revanche le signal ZERO est plus problématique puisqu’il est en entrée. Cependant on peut facilement abaisser la tension du signal avec un pont diviseur 10kΩ + 20kΩ (non mentionné sur le schéma ci-dessus).

Par ailleurs, il est possible, voire souhaitable) d’alimenter plus efficacement l’ESP-01 grace à l’alimentation 5V fournie par le gradateur, et un régulateur de tension 3.3V. Comme je n’avais pas de régulateur sous la main et que l’alimentation du gradateur ne m’inspiraient pas confiance, j’ai utilisé directement le HKL-PM003.

Logiciel

Je ne vais pas entrer dans le détail du programme car il est relativement simple et vous pouvez le consulter et l’adapter librement. L’ensemble du logiciel est sous license Apache 2.0.

https://github.com/pierrehebert/photovoltaic_optimizer

Note : la repository contient deux autres versions du programme de contrôle mais pour Arduino Nano (elles peuvent s’appliquer à d’autres AVR). La première version, purement locale, était destinée à valider le principe : la puissance est modifiée par boutons poussoir et la valeur actuelle est affichée sur un écran oled. La deuxième version est contrôlée sans fil via un module NRF24L01+. J’ai finalement opté pour un ESP-01 plus simple à déployer.

Calibration

Nous avons rapidement évoqué le fait que la consigne entre 0 et 100 se traduisait par un pourcentage de la durée d’une demi période, soit entre 10ms et 0ms. Ce n’est pas un pourcentage de la puissance puisque la courbe du courant est sinusoïdale. En effet, pour une même durée, il y a moins d’énergie qui passe sur les portions “aplaties” que sur les portions à “pente raide”.

Pour convertir une consigne “puissance” en consigne “pourcentage de temps” on peut soit modéliser mathématiquement la réponse du gradateur soit l’étalloner en faisant varier la consigne de 0 à 100 et en mesurant la puissance réellement transmise.

J’ai choisi la deuxième option qui permet de prendre en compte les imperfections du système. Un programme basique de calibration se trouve dans le projet photovoltaic_optimizer. Pour le mettre en œuvre je suggère de connecter le gradateur à un équippement de forte puissance (un radiateur électrique dont la puissance maximale est connue par exemple). Un tableau CSV de données est généré : il suffit de le copier dans un tableur et d’en calculer une régression linéaire.

Add a Comment

Your email address will not be published. Required fields are marked *