# Mise au point d'un régulateur de charge / décharge de batterie avec seuils adaptatifs de tension pour les applications photovoltaïques

Lotfi Messikh, Sid-Ali Chikhi, Fethya Chikhi et Toufik Chergui

Unité de Recherche en Energie Renouvelable en Milieu Saharien
B.P. 478, Route de Reggane, Adrar, Algérie

(reçu le 10 Mars 2008 – accepté le 30 Juin 2008)

**Résumé** - Cet article présente le travail de mise au point d'un régulateur de charge/décharge pour une batterie au plomb 24 V installée dans un système photovoltaïque de faible puissance. Ce régulateur, piloté par un microcontrôleur ST62E25, permet la protection de la batterie contre les phénomènes de surcharge, de décharge profonde, et les dérives de températures à l'aide d'un algorithme qui compare la tension de batterie à des seuils compensés en température ou en courant. Une nouvelle méthode pour le calcul du seuil de limitation de décharge a été proposée. Outre la fonction de protection, ce régulateur permet aussi d'afficher numériquement les grandeurs utiles du système et communiquer ses données à l'ordinateur via une liaison RS232. Des résultats expérimentaux ont été aussi présentés pour illustrer le fonctionnement du régulateur de charge/décharge proposé.

**Abstract** - This article presents the development work of a 24 V lead-acid battery regulator installed in a low power photovoltaic system. This regulator, controlled by ST62E25 microcontroller, allows battery protection from overcharging, deep discharging and temperature drifts using an algorithm which compares the battery voltage to four thresholds compensated in temperature or in current. A new method for the deep discharge threshold evaluation is proposed. In addition to the protection functions, this regulator can numerically display some useful system parameters and communicates these parameters to a computer via a RS232 connection. Experimental results were also reported to illustrate the work of the proposed regulator.

**Mots clés:** Régulateur de charge - Batterie au plomb - Seuils de régulation - Compensation en courant - Compensation en température - Microcontrôleur - Liaison RS232.

## 1. INTRODUCTION

Les batteries rechargeables sont largement utilisées dans les systèmes photovoltaïques autonomes pour emmagasiner le surplus d'énergie et pour alimenter les charges de faible et moyenne puissance. Les batteries de type plomb - acide sont de loin les plus employées en raison de leur faible coût, leur simple maintenance et leur adaptation à tout type d'application. Ces batteries sont cependant si fragiles devant les phénomènes de surcharge, de décharge profonde et les dérives de température et de courant qu'il faut leur associer un régulateur de charge approprié pour assurer leur protection.

L'importance d'un régulateur de charge dans un système photovoltaïque autonome n'est donc plus à discuter. Il doit cependant être réalisé avec le plus grand soin pour répondre aux exigences de coût, de simplicité, de généralité et de fiabilité.

Lors de la mise au point d'un tel composant, un certain nombre de problèmes se posent notamment parce qu'il existe plusieurs schémas possibles pour le contrôle de charge [1-2] (charge à intensité maximale de courant avec contrôle de la tension de batterie, charge à tension constante avec contrôle du courant de batterie, charge avec intensité ajustable avec contrôle de la tension de batterie, etc.) et la décharge de batteries [1] (contrôle directe de la tension de batterie, contrôle de la tension de batterie avec compensation ou non du courant de décharge, contrôle de la décharge à travers l'état de charge de batterie) et plusieurs façons pour les mettre en œuvre (solution analogique, numérique ou mixte).
Les contraintes supplémentaires imposées au régulateur de charge, telles que la possibilité de varier les paramètres de l’algorithme de contrôle, d’afficher numériquement les grandeurs utiles du système et la possibilité d’analyser son fonctionnement par ordinateur apportent des complications supplémentaires au problème de mise en œuvre et favorisent les solutions à base de microcontrôleurs.

L'objet de cet article est de présenter les étapes de mise en œuvre d'un régulateur de charge/décharge de batterie 24 V, de type on/off série, fonctionnant sous le contrôle du microcontrôleur ST62E25 et offrant la possibilité d'afficher numériquement les grandeurs utiles du système ou de les envoyées à un ordinateur qui les reçoit à travers une liaison RS232 asynchrone. La vitesse de transmission a été fixée à 1200 bauds (8 bits sans parité, 1 stop).

## 2. DEVELOPPEMENT DE LA PARTIE HARDWARE DU REGULATEUR

Le régulateur de charge que nous avons réalisé est partagé en quatre modules (Fig. 1): la carte de commande, la carte de puissance, la carte d'affichage numérique et le driver de la liaison RS232.

<figure><img src="image_1.png" /><figcaption>Fig. 1: Photo du régulateur de charge/décharge proposé</figcaption></figure>

### 2.1 Carte de commande

La figure 2 montre le schéma de la carte de commande, qui comporte essentiellement le microcontrôleur 'ST62E25' et son circuit d'horloge à 8 MHz, le système de mesure de la température à base du circuit LM35DZ, deux potentiomètres de réglage, deux touches de contrôle et la touche d'initialisation du microcontrôleur, un régulateur de tension 7805 et deux connecteurs femelles.

Le connecteur K1 rassemble tous les signaux de commande nécessaires de la carte de puissance et du système d'affichage.

Le connecteur K2 rassemble les entrées de mesure de tension et de courant (intensité en valeur absolue et signe) de batterie, les lignes de dialogue avec le PC et l'entrée d'une tension d'alimentation de 12 V.

Le schéma de mesure de température utilise le capteur LM35DZ qui est capable de mesurer une plage de température allant de 0 à 100 °C avec une tension proportionnelle de 10 mV/°C. La
tension de mesure est amplifiée par 5 à l'aide d'un amplificateur opérationnel à base du LM324 afin de couvrir la totalité de la plage de tension exploitable par le CAN.

Le régime de fonctionnement linéaire de cet amplificateur ne permet de mesurer dans ces conditions qu'un intervalle de température entre 0 et environ 70 °C, ce qui est largement suffisant pour l'application.

<figure><img src="image_2.png" /><figcaption>Fig. 2: Schéma de la carte de commande</figcaption></figure>

## 2.2 Carte de puissance

La carte de puissance comporte quatre blocs (Fig. 3): le bloc d'alimentation, le bloc de commande de charge, le bloc de limitation de la décharge et le bloc de mesures des tensions et des courants de la batterie.

Le bloc d'alimentation génère une tension d'alimentation continue de 12 V, destinée pour le fonctionnement du microcontrôleur et du bloc de mesure de la carte de puissance. La diode 1N4007 et le fusible se trouvant à l'entrée du bloc d'alimentation protègent la carte de commande contre les erreurs d'inversion de polarité de la batterie.

Les blocs de commande de charge et de limitation de la décharge de la batterie utilisent des commandes simples de type on/off série pour le contrôle de la charge et de la décharge de la batterie. Le signal CCH (resp. CUT) contrôle l'ouverture/fermeture du Mosfet IRFP150 du bloc de commande de charge (resp. de limitation de décharge) à travers un driver à base du circuit 4N35 (resp. du transistor bipolaire 2N2222A).

Quant au dernier bloc, il se charge de mesurer la tension et le courant de batterie. La récolte de la tension de batterie utilise un simple diviseur de tension, tandis que la mesure du courant utilise deux capteurs de courant du type LA25-NP pour accéder à sa valeur absolue et un circuit LM311N pour dériver son signe.

Lors de la conception du circuit de mesure de courant de batterie, il fallait mesurer un courant bipolaire (courant de charge et courant de décharge) pour un meilleur contrôle du système et utiliser le seul type de capteur de courant qui est à notre disposition, le LA25-NP, pour cette mesure.

A cet effet, nous avons élaboré une architecture utilisant une alimentation unipolaire de 12 V et deux capteurs de courant du type LA25-NP débitant sur une même résistance de sortie (Fig. 3),
chose qui nous a permis de mesurer des courants allant de 0,6 A à 11,6 A avec une erreur absolue strictement inférieure à 0.15 A.

<figure><img src="image_3.png" /><figcaption>Fig. 3: Schéma de la carte de puissance</figcaption></figure>

## 2.3 Carte d'affichage numérique

Le système d'affichage numérique proposé (Fig. 4) est une adaptation de celui de la référence [3]. Il comporte quatre afficheurs à Led à 7 segments pilotés par un affichage à accès série. L'un de ces afficheurs est utilisé pour éditer le signe ou pour désigner la présence d'une anomalie de fonctionnement du système.

La commande des afficheurs utilise trois lignes de port que sont PA0, PA1 et PA2, toutes trois programmées en sortie. Elles pilotent ainsi, sous forme série, les trois registres à décalage huit bits que sont les 4094.

Les trois mots de huit bits parallèles disponibles en sorties de ces circuits représentent le code d'allumage des sept segments des afficheurs et du point décimal. Les Darlingtonts intégrés de type ULN2803 amplifient le courant de sortie des registres à décalage en vue d'allumer correctement les afficheurs.

## 2.4 Driver de la liaison RS232

Le dialogue entre l'ordinateur et la carte de commande utilise trois fils à savoir Tx (Transmission), Rx (Réception) et GND (masse). Ce dialogue est assuré par une transmission série asynchrone des informations selon la norme RS232.

L'adaptation de niveaux entre les signaux logiques 0V / 5V reçus ou émis par le microcontrôleur et les signaux -12 V / +12 V reçus ou émis par l'ordinateur est assurée par le driver de la figure 5 [4]. Ce dispositif assure en même temps les fonctions d'isolation galvanique, d'inversion et de mise à niveau. L'isolation galvanique est remplie par une paire d'optocoupleurs de type H11A1.

La réalisation des fonctions d'inversion et de mise à niveau est énormément simplifiée par l'utilisation d'optocoupleurs et par l'alimentation de ces optocoupleurs du côté de l'ordinateur par le signal DTR qui fournit +12V, et le signal RTS qui fournit -12V. La fonction d'inversion devrait permettre de travailler directement avec les données reçues ou transmisses par l'ordinateur ou par le microcontrôleur sans avoir à utiliser des inversions logiques par logiciel.
<figure><img src="image_4.png" /><figcaption>Fig. 4: Schéma de la carte de commande</figcaption></figure>

<figure><img src="image_5.png" /><figcaption>Fig. 5: Schéma du driver de la liaison RS232</figcaption></figure>

Signalons finalement que nous avons été amenés à augmenter les valeurs originales des résistances du côté microcontrôleur pour réduire l'intensité du courant débité lors de l'émission et assurer des niveaux de tension compatible avec la norme TTL à la réception. Les tests de transmission d'un signal carré depuis la broche Tx (uC) vers la broche Rx (PC) montre que ce driver permet d'acheminer sans peine des signaux avec une cadence pouvant dépasser 9600 bauds.
# 3. DEVELOPPEMENT DE LA PARTIE SOFTWARE DU REGULATEUR

## 3.1 Algorithme de contrôle proposé

Durant la charge, le Mosfet IRFP150 du bloc commande de charge se comporte comme un court-circuit et tout le courant du générateur PV est utilisé pour charger la batterie. Une fois que sa tension atteint la tension de régulation (Voltage Regulation setpoint) [2]:

$$V_R = 28.8 - 0.042 \times (T - 25) \qquad (1)$$

Le microcontrôleur va agir sur le Mosfet pour hacher le courant de charge et maintenir en conséquence la tension batterie en deçà de la tension $V_R$. Cette opération permet au régulateur de protéger la batterie contre les phénomènes de surcharge. La charge de batterie est de nouveau activée lorsque sa tension chute au dessous de la valeur (Voltage Regulation Reconnect setpoint):

$$V_{RR} = 27 - 0.042 \times (T - 25) \qquad (2)$$

Le régulateur de charge conçu protège aussi la batterie contre les décharges profondes. Dès que la tension de la batterie, de tension nominale 24 V et de capacité nominale $C_{10}$, atteint une valeur trop faible (Low Voltage Disconnect setpoint) évaluée par l'expression proposée suivante:

$$V_{LVD} = 12 \times V_{\text{ref}} + 12 \times \alpha \times \frac{I}{C_{10}} \qquad (3)$$

où le courant de décharge $I$ est supposé négatif, le microcontrôleur va agir sur le Mosfet IRFP150 du bloc de limitation de décharge pour déconnecter l'utilisation de la batterie et arrêter en conséquence sa décharge. L'établissement de cette connexion est réalisé automatiquement lorsque la batterie a repris un niveau de tension correct (Low Voltage Reconnect setpoint) :

$$V_{LVR} = 25.8 - 0.042 \times (T - 25) \qquad (4)$$

autorisant de nouveau le fonctionnement de l'utilisation. Notons que les seuils de tension $V_{LVR}$ et $V_{RR}$ à 25 °C correspondent à ceux de la référence [5], où la compensation de température n'est pas indiquée.

La batterie est aussi protégée contre les effets indésirables de température. Dès que la température ambiante dépasse 40 °C, le générateur PV est déconnecté de la batterie et le contrôle de charge est gelé jusqu'à ce que cette température devienne inférieure à 38 °C. A ce moment, le seuil maximal de température est de nouveau restauré à la valeur 40 °C.

## 3.2 Détermination des paramètres de contrôle

Dans le modèle de Copetti, la décharge d'un accumulateur au plomb est donnée par [6, 7]:

$$V = [2.085 - 0.12 \times (1 - \text{SOC})] + \frac{1 - 0.007 \Delta T}{C_{10}} \times \left( \frac{4}{1 + (-1)^{1.3}} + \frac{0.27}{\text{SOC}^{1.5}} + 0.02 \right) I \qquad (5)$$

où le courant de batterie est supposé négatif et $\Delta T = (T - 25)$. L'analyse de ce modèle montre que la protection de la batterie contre les décharges profondes, c'est-à-dire contre la diminution de la valeur de l'état de charge, SOC, au dessous d'un niveau donné, $SOC_{ref}$, en comparant directement la tension V avec une seuil fixe de tension n'est pas valable (Fig. 6). Par contre, si pour une température de batterie donnée cette tension V est compensée en courant de la manière suivante:

$$V_C = V - \alpha \times \frac{I}{C_{10}} \qquad (6)$$

où $\alpha$ est la constante de compensation, alors les courbes $V_C$ vont se rejoindre dans une zone étroite du plan ($SOC_{ref}$, $V_C$) appelée zone de regroupement centrée au point ($SOC_{ref}$, $V_{ref}$). La
détection de la position du SOC de la batterie par rapport à la valeur SOC<sub>ref</sub> se fait par une
simple opération de comparaison de la tension V<sub>C</sub> avec la tension V<sub>ref</sub> (Fig. 6).

<figure><img src="image_6.png" /><figcaption>Fig. 6: Principe de la protection contre les décharges profondes
($\alpha$, $C_{10}$, $\Delta T$) = (2,270 Ah, 0 °C) et $-I = 1, 3, 5, 6, 8, 9, 11, 13, 15 A$</figcaption></figure>

Le problème consiste maintenant à chercher les valeurs de V<sub>ref</sub> et de α qui remplissent la fonction de protection désirée. Pour cela, nous définissons le point du centre de la zone de regroupement (SOC<sub>ref</sub>, V<sub>ref</sub>) par les relations suivantes:

$$
\begin{align*}
g(\text{SOC}) &= (13.5)^{-1} \int_{1.5}^{15} V_C(I, \Delta T, \text{SOC}, C_{10}) \cdot dI \\
\text{SOC}_{\text{ref}} &= \operatorname*{arg\,min}_{\text{SOC}} \int_{1.5}^{15} \left[ V_C(I, \Delta T, \text{SOC}, C_{10}) - g(\text{SOC}) \right]^2 \cdot dI \tag{7} \\
V_{\text{ref}} &= g(\text{SOC}_{\text{ref}})
\end{align*}
$$

L'analyse numérique de ces relations montre que la valeur du SOC<sub>ref</sub> dépend de la valeur de α et de l'écart de température (Fig. 7). Comme l'augmentation de la température fait chuter la valeur du SOC<sub>ref</sub>, il est plus intéressant de chercher à déterminer la valeur de α en tenant compte de la courbe des valeurs minimales du SOC<sub>ref</sub> qui peut être approchée par:

$$
\mathrm{SOC}_{\Delta T=20} = (0.04963 \alpha + 0.412) / (\alpha + 0.2308) \quad (8)
$$

Le choix de α = 2 conduit alors à assurer un état de charge de la batterie supérieure à 22 % pour une gamme de température allant de 5 à 45 °C. Cette analyse montre également, pour α = 2, que la valeur de V<sub>ref</sub> dépend à la fois de l'écart de température ΔT et de la capacité nominale C<sub>10</sub> (Fig. 8). En gardant uniquement l'influence de la capacité, nous pouvons évaluer V<sub>ref</sub>, pour un écart nul de température, par la relation approchée:

$$
(12 V_{\text{ref}})_{\Delta T=0} = 23.96 - 28.99/C_{10} \quad (9)
$$
<figure><img src="image_7.png" /><figcaption>Fig. 7: Variation du SOC<sub>ref</sub> en fonction de α et ΔT</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>Fig. 8: Variation du SOC<sub>ref</sub> en fonction de C<sub>10</sub> et ΔT, cas où α = 2</figcaption></figure>

### 3.3 Description du programme

L'organigramme associé à l'algorithme de contrôle proposé est décrit à la figure 9. Le programme intégré au microcontrôleur ST62E25 gère les opérations de protection de la batterie contre l'excès de température et les phénomènes de surcharge et de décharge profonde.

Dans les régions utiles de variation de la température ambiante et de l'intensité de courant de batterie, les quatre seuils V<sub>LVD</sub>, V<sub>LVR</sub>, V<sub>RR</sub> et V<sub>R</sub> se présentent toujours dans un ordre croissant, ce qui justifie l'utilisation d'une mise en cascade des procédures de contrôle. Ce programme gère aussi l'affichage numérique des informations utiles du système (température ambiante, courant de batterie, tension de batterie, états des interrupteurs de charge et de décharge, seuils de contrôle) et transmet ses informations avec une vitesse de 1200 bauds (8 bits sans parité, 1 stop), via une liaison RS232 asynchrone si une demande lui parvient de la part d'un ordinateur.

<figure><img src="image_9.png" /><figcaption>Fig. 9: Organigramme associé à l'algorithme de contrôle proposé</figcaption></figure>
Un programme informatique en langage Visual Basic pour Windows a été développé pour que l'ordinateur puisse émettre une demande de transmission d'informations au microcontrôleur. Cette demande est réalisée grâce à la génération d'une impulsion de durée d'environ 240 ms sur la ligne d'émission Tx(PC) de l'interface sérielle.

Les informations reçues sont affichées sous forme numérique et/ou graphique avec la valeur de l'état de charge, évaluée à partir de l'inversion du modèle de Copetti [6-7]. Pour accéder à l'interface sérielle, nous avons utilisé la bibliothèque de liens dynamique Port.DLL de BERNDT [8], car elle simplifie énormément la programmation.

## 4. RESULTATS PRELIMINAIRES OBTENUS

La méthode de contrôle décrite précédemment a été utilisée avec un système photovoltaïque autonome comportant un générateur photovoltaïque (04 branches en parallèle composées chacune de 02 panneaux de type PWX500 en série) et une batterie au plomb-acide 24V de capacité 270Ah.

<figure><img src="image_10.png" /><figcaption>Fig. 10: Processus de contrôle de charge d'une batterie plomb-acide 24 V, 270 Ah</figcaption></figure>

La figure 10 montre un exemple de fonctionnement du régulateur de charge proposé. Au début, la batterie est chargée avec tout le courant du générateur photovoltaïque, la tension de batterie augmente alors progressivement. Arrivée à la valeur du seuil $V_R$, le microcontrôleur déconnecte le générateur de la batterie, chose qui force la tension de batterie à diminuer.

Lorsque cette dernière atteint le seuil $V_{RR}$, le microcontrôleur rétablie la connexion précédente et le cycle se répète de nouveau. Il est à noter que le seuil $V_{LVD}$ dépend du courant de charge et que la batterie atteint un état de charge de 89 %.
## 5. CONCLUSION

Le coût total d'un système photovoltaïque autonome peut être réduit par un contrôle approprié de la charge et de la décharge de la batterie. Dans cet article, nous avons proposé la mise en œuvre d'un régulateur de charge/décharge pour batterie au plomb-acide 24 V.

Ce régulateur, conçu autour du microcontrôleur 'ST62E25' s'appuie sur des comparaisons de la tension de batterie avec quatre seuils dont l'un d'eux, le seuil de limitation de décharge, a été optimisé par une méthode originale.

Outre les fonctions de protections, le régulateur proposé permet aussi de communiquer avec un ordinateur via une liaison RS232 asynchrone.

## REFERENCES

[1] E.P. Usher and M.M.D. Ross, 'Recommended Practices for Charge Controllers', Report IEA PVPS T3-05, August 1998.

[2] E. Koutroulis and K. Kalaitzakis, 'Novel Battery Charging Regulation System for Photovoltaic Applications', IEE Proc. Electr. Power Appl., Vol. 151 N°2, pp.191 - 197, March 2004.

[3] C. Tavernier, 'Applications Industrielles des PIC', Ed. Dunod, Paris, 2001.

[4] P. André, 'Les Drivers RS232', CD Electronique Pratique, N°210, Janvier 1997.

[5] Ducument, Total Energie, 'Charge and Discharge Controllers TR10A', Notice Technique, 1997.

[6] N. Aïchabou, A. Malek et N. Bacha, 'Modélisation de la Batterie au Plomb-Acide dans un Système Photovoltaïque', 1er séminaire sur la Contribution de l'Energie Solaire et Eolienne dans le Développement Durable, Adrar, Algérie, 30 au 31 octobre 2001.

[7] A. Ould Mohamed Yahia, A. Ould Mahmoud et I. Youm, 'Modélisation d'un Système de Stockage Intégré dans un Système Hybride (PV/Eolien/Diesel)', Revue des Energies Renouvelables, Vol.10, N°2, pp. 205-214, 2007.

[8] B. Kainka, 'Petites expériences avec mon PC', Publitronic, 2001.