# Une nouvelle approche MLI basée sur le principe des réseaux de neurone pour la commande des onduleurs

Amar Guellal¹, Chérif Larbès² et Linda Hassaine ¹

¹ Division Energie Solaire Photovoltaïque, ‘DESP’

Centre de Développement des Energies Renouvelables, ‘CDER’

B.P. 62, Route de l'Observatoire, Bouzaréah, Alger, Algérie

² Département d'Electronique, Ecole Nationale Polytechnique, 'ENP'

10 Avenue Hassen Badi, B.P. 182, El Harrach, Alger, Algérie

(reçu le 27 Janvier 2012 – accepté le 30 Mars 2012)

**Résumé** - Les onduleurs sont des convertisseurs statiques continu/alternatif qui assurent des échanges d'énergie entre une source et une charge. Ces onduleurs sont utilisés pratiquement dans toutes les applications photovoltaïques (autonomes, hybrides et connectées au réseau). Les techniques de modulation de largeur d'impulsion (MLI) sont primordiales aux bonnes performances des onduleurs. Le but de ce travail est de démontrer un nouvel algorithme MLI en temps réel basé sur le principe des réseaux de neurone qui présente une précision de calcul pratiquement égale à celle de la technique de Patel et al., permettant ainsi une élimination des premiers harmoniques sélectionnés et un asservissement du fondamental.

**Abstract** – The inverters are static converters DC / AC that provide energy exchange between a source and a load. These inverters are used in virtually all photovoltaic applications (stand-alone, hybrid and grid connected). The techniques of pulse width modulation (PWM) are essential to good performance of inverters. The aim of this study is to demonstrate a new algorithm PWM in real time based on the principle of neural networks that present a calculation accuracy nearly equal to that of the technique of Patel et al., allowing removal of the first harmonics selected and feedback control of fundamental.

**Mots clés:** MLI‘PWM‘ - Onduleur – Photovoltaïque – Conversion - Réseaux de neurones.

## 1. INTRODUCTION

Dans le monde, le parc solaire photovoltaïque croît en moyenne de 35 % par an depuis 1998. Fin 2010, la capacité totale installée était évaluée entre 36 000 et 39 000 MW, contre 1 500 MW en 2000 (Fig. 1). Le rythme d'installation de nouvelles capacités de production, en constante augmentation, a désormais dépassé les 12 000 MW par an.

Les premières centrales solaires de grande capacité (plusieurs dizaines, voire centaines de MW) ont vu le jour et leur nombre se multiplie. En termes économiques, le marché mondial de l'industrie solaire photovoltaïque a représenté environ 50 milliards de dollars en 2010 [1].

Cette croissance exceptionnelle, due principalement aux systèmes photovoltaïques raccordés au réseau de distribution d'électricité, se traduit bien évidemment par des innovations technologiques et une baisse de coûts des modules photovoltaïques, mais aussi à des efforts importants de recherche et développement dans le domaine de l'électronique de puissance [2].
En effet, les performances techniques et la fiabilité des onduleurs utilisés dans toutes les applications photovoltaïques (autonomes, hybrides et connectées au réseau) sont des paramètres qui peuvent très fortement faire varier la production d'énergie et donc la rentabilité financière d'un système.

Les performances des onduleurs sont affectées par la technologie des composants de puissance (IGBT, MOSFET) et par sa commande MLI (modulation de largeur d'impulsion) [3].

Le but de ce travail est de démontrer un nouvel algorithme MLI temps réel basé sur le principe des réseaux de neurone [4, 5], qui présente une précision de calcul pratiquement égale à celle de la technique de Patel et al., [6-8], permettant ainsi une élimination des premiers harmoniques sélectionnés et un asservissement du fondamental.

<figure><img src="image_1.png" /><figcaption>Fig. 1: Développement de la capacité photovoltaïque mondiale (MW)</figcaption></figure>

Source: EPIA

## 2. TECHNIQUE MLI CALCULEE
TECHNIQUE DE PATEL ET HOFT [4, 5]

### 2.1 Description

Soit la tension de sortie à deux états de l'onduleur demi-pont de la figure 2. On suppose que la tension de sortie est périodique et d'amplitude égale à l'unité (Fig. 3).

<figure><img src="image_2.png" /><figcaption>Fig. 2: Schéma synoptique de l'onduleur demi-pont</figcaption></figure>

Dans ce cas, la tension de sortie $f(\alpha)$ ou $V_{a0}$ peut s'écrire en série de Fourier:
$$f(\alpha) = a_0 + \sum_{n=1}^{\infty} [a_n \times \sin(n\alpha) + b_n \times \cos(n\alpha)] \quad (1)$$

Les coefficients $a_n$ et $b_n$ sont donnés par les relations suivantes:

$$ 
\begin{align*}
a_0 &= \frac{1}{2\pi} \int_0^{2\pi} f(\alpha) \times d\alpha \\
a_n &= \frac{1}{\pi} \int_0^{2\pi} f(\alpha) \times \sin(n\alpha) \times d\alpha \tag{2} \\
b_n &= \frac{1}{\pi} \int_0^{2\pi} f(\alpha) \times \cos(n\alpha) \times d\alpha
\end{align*}
$$

D'après les propriétés de la tension $f(\alpha)$, (antisymétrie demi-onde, symétrie quart d'onde), on trouve après simplification que:

$$ 
\begin{gather*}
b_n = 0 \\
a_n = \frac{4}{n\pi} \times \left[ 1 + 2 \sum_{k=1}^{m} (-1)^k \times \cos(n\alpha_k) \right] \tag{3}
\end{gather*}
$$

Où, $n$ est un nombre impair, devant être différent d'un multiple de 3 pour les montages triphasés et $m$ représente le nombre de commutations par quart d'onde ou alors le nombre de découpages par demi-onde.

<figure><img src="image_3.png" /><figcaption>Fig. 3: Graph d'une tension MLI calculée</figcaption></figure>

Enfin la tension $f(\alpha)$ peut s'écrire sous la forme:

$$f(\alpha) = \sum_{n=1}^{\infty} a_n \times \sin(n\alpha) \quad (4)$$

La relation (4) possède $m$ variables inconnues $\alpha_1, \alpha_2, \alpha_3, \dots, \alpha_m$, appelées angles de commutation.
Notre but est de calculer les valeurs de ces angles qui permettent d'assigner une valeur déterminée au fondamental $a_1$ et d'annuler les amplitudes $a_n$ des $(m-1)$ premières harmoniques.

Ces équations sont non linéaires. On utilisera la méthode de Newton-Raphson pour résoudre ce système de m équations non linéaires à m inconnues.

## 2.2 Calcul des valeurs exactes des angles de commutation par la méthode de Newton-Raphson

La relation (4) est un système de m équations non linéaires $\alpha_1, ..., \alpha_m$. On désire assigner une valeur déterminée im, appelée 'indice de modulation', à l'amplitude $a_1$ du fondamental et annuler les amplitudes $a_n$ des $(m-1)$ premières harmoniques.

On obtient donc un système de m équations non linéaires à m inconnues de la forme:

$$ 
\begin{align} 
f_1(\alpha_1, \alpha_2, \alpha_3, ..., \alpha_m) &= \frac{4}{\pi} \left[ 1 + 2 \sum_{k=1}^{m} (-1)^k \cos(\alpha_k) \right] + im = 0 \nonumber \\ 
f_2(\alpha_1, \alpha_2, \alpha_3, ..., \alpha_m) &= \frac{4}{5\pi} \left[ 1 + 2 \sum_{k=1}^{m} (-1)^k \cos(5\alpha_k) \right] = 0 \tag{5} \\ 
f_m(\alpha_1, \alpha_2, \alpha_3, ..., \alpha_m) &= \frac{4}{n\pi} \left[ 1 + 2 \sum_{k=1}^{m} (-1)^k \cos(n\alpha_k) \right] = 0 \nonumber 
\end{align} 
$$

Pour résoudre ce système, on utilise la méthode itérative de Newton-Raphson. De plus, on utilisera l'algorithme 'on-line' de Taufik et al., [8] pour estimer rapidement les valeurs initiales de la solution du système non linéaire.

La figure 4 donne, à titre d'exemple, le graphe des angles de commutation exacts calculés pour m égal à 3 et 5.

<figure><img src="image_4.png" /><figcaption>Fig. 4: Courbes des angles de commutation exacts pour m égal à 3 et 5</figcaption></figure>
# 3. LE NOUVEL ALGORITHMNEURONAL

## 3.1 Description

Notre but est de construire un réseau de neurones multicouche [4, 5] qui génère à ses sorties, les angles de commutation d'un signal MLI. Ces derniers doivent être proches des angles exacts calculés par la technique de Patel et al., afin de commander un onduleur destiné pour les applications photovoltaïques.

Pour simplifier l'architecture, on choisit un réseau de neurones composé d'une couche d'entrée, d'une couche cachée et d'une couche de sortie.

<figure><img src="image_5.png" /><figcaption>Fig. 5: Architecture de la commande MLI neuronal</figcaption></figure>

L'architecture de notre réseau est représentée sur la Figure 5 où :

* im : représente l'entrée de notre réseau im

* W1 : une matrice des poids entre la couche d'entrée et la couche cachée

* W2 : une matrice des poids entre la couche cachée et la couche de sortie

* b1 : une matrice des seuils entre la couche d'entrée et la couche cachée

* b2 : une matrice des seuils entre la couche cachée et la couche de sortie

* ai : représente la sortie de notre réseau.

De plus, pour les fonctions d'activation, on a utilisé la fonction tangente sigmoïde entre la couche d'entrée et la couche cachée, et la fonction linéaire entre la couche cachée et la couche de sortie, (Fig. 6).

<figure><img src="image_6.png" /><figcaption>Fig. 6: les fonctions d'activation utilisées</figcaption></figure>
## 3.2 Architecture

L'indice de modulation, 'im', qui est l'entrée de notre réseau de neurone varie de 0 à 1. On le fait varier par pas de 0.01 pour qu'on puisse générer 100 valeurs de fréquence.

Les valeurs des angles de commutation qui forment la sortie de notre réseau de neurones dépendent de l'indice, im selon le système d'équations de Patel et al., (5).

Pour que notre solution soit efficace et pour permettre la convergence de l'étape d'apprentissage et la bonne estimation des paramètres de notre réseau (poids et seuils), on divise l'intervalle de variation de im en six intervalles et pour chaque intervalle, on construit un réseau de neurone spécifique (poids et seuils).

Le choix du nombre d'angles de commutation (le nombre des harmoniques à éliminer) dépend de l'effet des harmoniques. Comme ce dernier augmente lorsque im diminue, on fait le choix qui est représenté dans le **Tableau 1**.

<table><caption>**Tableau 1:** Choix du nombre d'angles de communication</caption><thead><tr><th>Indice de modulation<br>'im'</th><th>Nombre d'angles de commutation<br>par quart de période</th></tr></thead><tbody><tr><td>0 &lt; im &lt; 0.1</td><td>23</td></tr><tr><td>0.1 &lt; im &lt; 0.2</td><td>19</td></tr><tr><td>0.2 &lt; im &lt; 0.4</td><td>15</td></tr><tr><td>0.4 &lt; im &lt; 0.6</td><td>7</td></tr><tr><td>0.6 &lt; im &lt; 0.8</td><td>5</td></tr><tr><td>0.8 &lt; im &lt; 1</td><td>3</td></tr></tbody></table>

## 3.3 Les bases de données

Afin de calculer les paramètres (poids et seuils) de nos six réseaux, on fait un programme qui résoudre le système d'équations (5) de Patel et al., et qui permet de générer les six bases de données qui seront utilisées dans l'étape d'apprentissage de nos systèmes neuronaux.

Le **Tableau 2** montre la base des données des angles exacts de commutation calculés par notre programme, lorsque 'im' varie de 0.41 à 0.6.

<table><caption>**Tableau 2:** Base des données des angles exacts de commutation lorsque 'im' varie de 0.41 à 0.6</caption><thead><tr><th>im</th><th>α<sub>1</sub></th><th>α<sub>2</sub></th><th>α<sub>3</sub></th><th>α<sub>4</sub></th><th>α<sub>5</sub></th><th>α<sub>6</sub></th><th>α<sub>7</sub></th></tr></thead><tbody><tr><td>0.41</td><td>12.2871254</td><td>16.0823964</td><td>27.1428592</td><td>31.8130231</td><td>42.1221432</td><td>47.3539922</td><td>57.2871686</td></tr><tr><td>0.42</td><td>12.2191183</td><td>16.1069726</td><td>27.0697321</td><td>31.855101</td><td>42.0485869</td><td>47.4108418</td><td>57.2192738</td></tr><tr><td>0.43</td><td>12.1510037</td><td>16.1313951</td><td>26.9963877</td><td>31.8970126</td><td>41.9748079</td><td>47.467643</td><td>57.1512634</td></tr><tr><td>0.44</td><td>12.0827799</td><td>16.1556575</td><td>26.9228208</td><td>31.9387512</td><td>41.9007994</td><td>47.5243934</td><td>57.0831341</td></tr><tr><td>0.45</td><td>12.0144448</td><td>16.1797532</td><td>26.8490258</td><td>31.9803099</td><td>41.8265548</td><td>47.5810904</td><td>57.0148823</td></tr><tr><td>0.46</td><td>11.9459965</td><td>16.2036752</td><td>26.7749968</td><td>32.0216814</td><td>41.752067</td><td>47.6377311</td><td>56.9465043</td></tr><tr><td>0.47</td><td>11.8774331</td><td>16.2274166</td><td>26.700728</td><td>32.0628581</td><td>41.6773285</td><td>47.6943127</td><td>56.8779961</td></tr><tr><td>0.48</td><td>11.8087523</td><td>16.2509698</td><td>26.626213</td><td>32.1038319</td><td>41.6023316</td><td>47.750832</td><td>56.8093537</td></tr><tr><td>0.49</td><td>11.739952</td><td>16.2743273</td><td>26.5514453</td><td>32.1445946</td><td>41.5270681</td><td>47.8072859</td><td>56.7405729</td></tr><tr><td>0.50</td><td>11.6710301</td><td>16.297481</td><td>26.4764181</td><td>32.1851373</td><td>41.4515294</td><td>47.8636707</td><td>56.671649</td></tr></tbody></table>
<table><tr><td>0.51</td><td>11.6019841</td><td>16.3204227</td><td>26.4011244</td><td>32.2254508</td><td>41.3757066</td><td>47.9199828</td><td>56.6025774</td></tr><tr><td>0.52</td><td>11.5328117</td><td>16.3431437</td><td>26.3255567</td><td>32.2655255</td><td>41.2995903</td><td>47.9762183</td><td>56.5333531</td></tr><tr><td>0.53</td><td>11.4635103</td><td>16.365635</td><td>26.2497073</td><td>32.3053511</td><td>41.2231707</td><td>48.0323731</td><td>56.4639709</td></tr><tr><td>0.54</td><td>11.3940774</td><td>16.3878875</td><td>26.1735682</td><td>32.3449169</td><td>41.1464372</td><td>48.0884426</td><td>56.3944252</td></tr><tr><td>0.55</td><td>11.3245103</td><td>16.4098912</td><td>26.097131</td><td>32.3842118</td><td>41.069379</td><td>48.1444223</td><td>56.3247102</td></tr><tr><td>0.56</td><td>11.2548063</td><td>16.4316362</td><td>26.0203869</td><td>32.4232237</td><td>40.9919846</td><td>48.2003071</td><td>56.2548197</td></tr><tr><td>0.57</td><td>11.1849624</td><td>16.4531118</td><td>25.9433267</td><td>32.4619403</td><td>40.9142418</td><td>48.2560917</td><td>56.1847473</td></tr><tr><td>0.58</td><td>11.1149756</td><td>16.474307</td><td>25.8659408</td><td>32.5003483</td><td>40.8361378</td><td>48.3117704</td><td>56.114486</td></tr><tr><td>0.59</td><td>11.0448428</td><td>16.4952103</td><td>25.7882191</td><td>32.5384337</td><td>40.7576592</td><td>48.3673371</td><td>56.0440285</td></tr><tr><td>0.60</td><td>10.9745607</td><td>16.5158096</td><td>25.710151</td><td>32.5761818</td><td>40.6787917</td><td>48.4227854</td><td>55.9733672</td></tr></table>

De plus, la figure 7 montre l'évaluation de ces angles en fonction de 'im'.

<figure><img src="image_7.png" /><figcaption>Fig. 7: Angles de commutation pour m = 7</figcaption></figure>

### 3.4 L'apprentissage

Cette étape permet de calculer les paramètres de nos six réseaux qui sont les poids (weights) et les seuils (bias).

Pour chaque réseau de neurone, on fait entrer sa base de données (calculée précédemment) dans un programme d'apprentissage qui est basé sur la méthode du gradient. Ce programme d'itération possède deux conditions d'arrêt: la performance et le nombre d'itérations. On lance l'apprentissage jusqu'à ce que l'une de ces conditions soit vérifiée.

Le **Tableau 3** donne un exemple des poids et seuils calculés par le programme, lorsque im varie de 0.41 à 0.6 (Le nombre des angles de commutation m = 7).

<table><caption>**Tableau 3:** Les poids et les seuils pour m = 7</caption><thead><tr><th>W1</th><th>W2</th><th>b1</th><th>b2</th></tr></thead><tbody><tr><td>-0.9486436</td><td>1.1044259</td><td>0.49285027</td><td>0.48368996</td></tr><tr><td></td><td>-1.1013565</td><td></td><td>0.53339166</td></tr><tr><td></td><td>1.10418357</td><td></td><td>0.48638628</td></tr><tr><td></td><td>-1.1046779</td><td></td><td>0.52793608</td></tr><tr><td></td><td>1.10404012</td><td></td><td>0.48674086</td></tr><tr><td></td><td>-1.1046711</td><td></td><td>0.52109015</td></tr><tr><td></td><td>1.1042117</td><td></td><td>0.48426608</td></tr></tbody></table>
### 3.5 Simulation

Des résultats de simulation sont présentés dans le **Tableau 4** et sur les figures 8, 9 et 10.

<table><caption>**Tableau 4:** Angles exacts et approximés pour ‘im’ = 0.5 et m = 7</caption><thead><tr><td>Angles exacts</td><td>Angles approximés</td><td></td></tr></thead><tbody><tr><td>11.67103009</td><td>11.6724438</td><td>-0.00141372</td></tr><tr><td>16.297481</td><td>16.2928275</td><td>0.00465346</td></tr><tr><td>26.47641812</td><td>26.4757616</td><td>0.00065649</td></tr><tr><td>32.1851373</td><td>32.1792789</td><td>0.0058584</td></tr><tr><td>41.45152938</td><td>41.4505927</td><td>0.00093673</td></tr><tr><td>47.86367067</td><td>47.8596118</td><td>0.00405887</td></tr><tr><td>56.671649</td><td>56.6726525</td><td>-0.00100348</td></tr></tbody></table>

<figure><img src="image_8.png" /><figcaption>Fig. 8: Comparaison entre l'angle exact et l'angle approximé pour m = 7</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>Fig. 9: Exemple de tension simple obtenue en simulation pour ‘im’ = 0.5 et m = 7</figcaption></figure>
<figure><img src="image_10.png" /><figcaption>Fig. 10: Spectre de la tension simple
obtenue en simulation pour 'im' = 0.6 et m = 7</figcaption></figure>

**3.6 Interprétation**

D'après le **Tableau 4** et la figure 8, on voit bien que les angles de commutation calculés par notre réseau neuronale sont très proches des angles exacts et l'erreur maximale est inférieure à 0.006 degrés.

La figure 9 montre que la tension est périodique de fréquence 25 Hz pour im = 0.5, et on voit bien l'existence des sept angles de commutation par quart de période. L'analyse spectrale (Fig. 10) montre l'élimination des harmoniques 5, 7, 11, 13, 17 et 19 pour m = 7.

Donc, on peut dire que notre algorithme MLI neuronale présente une grande précision dans le calcul des angles de commutation et il donne une efficacité dans l'élimination des harmoniques voulus.

**4. CONCLUSION**

L'objectif de notre étude est la commande en tension et en fréquence d'un onduleur destiné pour des applications photovoltaïques.

Pour atteindre cet objectif, on utilise généralement une commande MLI programmée avec élimination sélective d'harmoniques et asservissement du fondamental de Patel *et al.*, [6]. Mais l'utilisation d'une telle commande en fonctionnement temps réel, 'on-line', est impossible à cause d'un temps de calcul des angles très élevé. La technique de Patel *et al.*, est de ce fait une technique 'off-line'.

Il fallait donc mettre au point un nouvel algorithme 'on-line' pour pallier cet inconvénient. C'est ce qui a été fait dans notre étude, où nous avons proposé une nouvelle méthode basée sur le principe des réseaux de neurone pour approximer les angles de commutation exacts. Il a été montré que la méthode proposée présente un taux d'harmoniques négligeable par élimination sélective des harmoniques. Ce résultat est pratiquement le même que celui de l'algorithme de Patel *et al.*, [6].
Enfin, dans le présent travail, nous avons démontré la possibilité de générer une commande MLI calculée, avec élimination sélective d'harmoniques et asservissement du fondamental, 'on-line' en se basant sur le principe des réseaux de neurones.

## REFERENCES

[1] Report, 'Global Market Outlook for Photovoltaics until 2015', EPIA, May 2011.

[2] V. Didier, 'Les Onduleurs pour Systèmes Photovoltaïques, Fonctionnement, Etat de l'Art et Etude des Performances', HESPUL, Août 2007.

[3] M. Pinard, 'Convertisseurs et Electronique de Puissance: Commande, Description, Mise en Œuvre', Ed. Dunod, pp. 127 – 153, Paris, 2007.

[4] C. Eliasmith and C.H. Anderson, 'Neural Engineering: Computation, Representation, and Dynamics in Neurobiological Systems', The MIT Press, Computers, 376 p., Sep. 2004.

[5] M. Veerachary, T. Senjyu and Katsumi Uezato, 'Neural-Network-Based Maximum-Power-Point Tracking of Coupled-Inductor Interleaved-Boost-Converter-Supplied PV System using Fuzzy Controller', IEEE Transactions on Industrial Electronics, Vol. 50, N°4, pp. 749 – 758, August 2003.

[6] H.S. Patel and R.G. Hoft, 'Generalised Techniques of Harmonic Elimination and Voltage Control in Thyristor Inverters, Part I: Harmonic Elimination', IEEE Transactions on Industry Applications, Vol. IA-9, N°3, pp. 310 - 317, May 1973.

[7] H.S. Patel and R.G. Hoft, 'Generalised Techniques of Harmonic Elimination and Voltage Control in Thyristor Inverters, Part II: Voltage Control Techniques', IEEE Transactions on Industry Applications, Vol. IA-10, N°5, pp. 666 – 673, September 1974.

[8] J.A. Taufiq, B. Mellitt and C.J. Goodman, 'Novel Algorithm for Generating Near Optimal PWM Waveforms for AC Traction Drives', Proceedings IEE, Pt. B, Electric Power Applications, Vol. 133, N°2, pp. 85 – 94, March 1986.