# Développement d'un émulateur photovoltaïque open-source à l'aide de la suite technologique OwnTech

Noemi Lanciotti, Loic Queval, Giacomo Galli, Gabriel Ceolin de Brito

► To cite this version:

Noemi Lanciotti, Loic Queval, Giacomo Galli, Gabriel Ceolin de Brito. Développement d'un émulateur photovoltaïque open-source à l'aide de la suite technologique OwnTech. Symposium de Génie Électrique SGE 2025, cnrs, ups, Jul 2025, Toulouse, France. hal-05495779

HAL Id: hal-05495779

https://hal.science/hal-05495779v1

Submitted on 5 Feb 2026

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
# Développement d'un émulateur photovoltaïque open-source à l'aide de la suite technologique OwnTech

Gabriel Ceolin de Brito<fnref n="1" />, Dorian Bretaudieu<fnref n="1" />, Pierre Grenouillet<fnref n="1" />, Amine Radi<fnref n="1" />, Vitor Henriques Mazur Matheus<fnref n="1" />, Noemi Lanciotti<fnref n="1" />,<fnref n="2" />, Giacomo Galli<fnref n="1" />,<fnref n="2" />, Loïc Queval<fnref n="1" />,<fnref n="2" />

**RESUME** – Les émulateurs photovoltaïques (PV) sont essentiels pour tester les systèmes solaires et avancer dans l'optimisation de la conversion, mais leur coût élevé limite leur accessibilité. Dans ces travaux un émulateur PV *open-source* a été développé et embarqué sur une carte *open-hardware OwnTech*, offrant une alternative économique et flexible. Implémenté en langage C, il reproduit le comportement d'un panneau solaire à partir des points connus dans une caractéristique courant-tension (*I* – *V*). Cette solution vise à démocratiser les outils de recherche pour accélérer le développement de technologies solaires durables et accessibles.

*Mots-clés* – Emulateur PV, Open-source, Interpolation linéaire, Jumeau numérique, C embarqué.

## 1. INTRODUCTION

Selon l'IEA (*International Energy Agency*), la production solaire photovoltaïque a augmenté de manière record en 2022, avec une hausse de 270 TWh (+26 %), atteignant près de 1 300 TWh [1]. Il s'agit de la plus forte croissance absolue parmi les énergies renouvelables, surpassant pour la première fois l'éolien. Ce rythme de croissance est conforme aux objectifs du scénario « Net Zéro 2050 ». L'attractivité économique croissante du photovoltaïque, le développement massif des chaînes d'approvisionnement et le soutien politique accru, notamment en Chine, aux États-Unis, dans l'Union Européenne et en Inde, devraient encore accélérer cette croissance dans les années à venir.

Parmi les recommandations de l'IEA, la nécessité de maintenir la réduction des coûts du solaire photovoltaïque passe par des efforts continus en *R&D*, notamment pour améliorer l'efficacité. Les jumeaux numériques des systèmes de puissance représentent une technologie prometteuse pour améliorer la fiabilité, l'efficacité et la durabilité des systèmes énergétiques du futur [2]. Les travaux présentés dans cet article concernent le développement d'un émulateur photovoltaïque *open-source*, c'est-à-dire un convertisseur d'électronique de puissance conçu pour reproduire le comportement électrique d'un module photovoltaïque.

Bien que des émulateurs photovoltaïques soient disponibles commercialement, la mise au point d'un équivalent *open-source* vise à démocratiser l'accès à cette technologie, en facilitant son utilisation dans les domaines de la recherche et du développement d'innovations en efficacité énergétique. Cela a été abordé auparavant dans la littérature, à partir par exemple d'une carte Raspberry Pi [3] couplée avec un jumeau numérique du PV implémenté sous MATLAB Simulink. L'écart avec la solution ici proposée est d'une part, en termes de puissance. En effet elle permet de délivrer une puissance comparable à celle d'un panneau photovoltaïque réel. De plus, cette fonctionnalité sera implémentée en utilisant des outils totalement *open-accès*. Pour ce faire, un émulateur PV a été implémenté en utilisant une carte

électronique de puissance basée sur la suite technologique Own-Tech [4]. Reposant sur un matériel partagé (*open-hardware*) et des logiciels libres (*open-software*), et bénéficiant d'un accès ouvert à son dépôt Git ainsi qu'à une communauté active (*open-access*), ce convertisseur de puissance constitue une alternative permettant de réduire à la fois les coûts d'acquisition et la complexité de mise en œuvre par rapport aux émulateurs commerciaux.

Dans cet article, la suite technologique OwnTech est présentée en section 2. Un modèle électrique simplifié de panneau photovoltaïque et son implémentation numérique sont décrits en section 3. L'émulateur *open-source* développé est détaillé en section 4, avec des essais en laboratoire pour valider le système et une comparaison avec un émulateur commercial.

## 2. PRÉSENTATION DE LA SUITE OPEN-HARDWARE ET OPEN-SOftware OWnteCH

Le choix d'implémenter cet émulateur via la solution Own-Tech repose sur son engagement en faveur de l'ouverture, offrant une compatibilité et un accès à des solutions ouvertes, tant matérielles (*open-hardware*) que logicielles (*open-software*). La fondation CNRS associée vise à créer une communauté qui partagera les codes implémentés et les éventuelles modifications des plans pour telle ou telle application des utilisateurs.

Pour les travaux présentés dans cet article, la carte utilisée est constituée d'un convertisseur de puissance TWIST associé à une carte de commande SPIN (Fig. 1). Tous les schémas associés à ces deux cartes sont librement disponibles sur l'espace Git de la fondation [5].

<figure><img src="image_2.png" /><figcaption>FIG. 1. Schéma GPIO de la carte de commande SPIN.</figcaption></figure>

La carte SPIN, intègre un microcontrôleur STM32, permettant de générer les signaux PWM (*Pulse Width Modulation*) destinés à commander les interrupteurs, ainsi que de traiter les me-

<footnote n="1">¹Université Paris-Saclay, CentraleSupélec, CNRS, GeePs, 91192, Gif-sur-Yvette, France.</footnote>

<footnote n="2">²Sorbonne Université, CNRS, GeePs, 75252, Paris, France.</footnote>
sures issues des capteurs intégrés à la partie puissance (TWIST). Ceci permet de connaître à tout moment les valeurs des courants et des tensions à l'entrée et à la sortie de la carte. Elle est compatible à la fois avec le convertisseur DC/DC (TWIST) et avec la version triphasée (OWNVERTER) développée par l'entreprise toulousaine. La partie puissance utilisée dans le cadre de cette étude est illustrée à la figure 2.

<figure><img src="image_3.png" /><figcaption>FIG. 2. Convertisseur de puissance TWIST.</figcaption></figure>

Les plages de fonctionnement des grandeurs d'entrée et de sortie du convertisseur TWIST sont indiquées ci-dessous :

- $V_{high}$ : de 12 à 100 V.

- $V_{low}$ : de 12 à 72 V.

- $I_{high, low}$ : courant maximal à 8 A par side.

Ces valeurs définissent ainsi les limites de puissance de l'émulateur solaire présenté dans cet article et soulignent l'importance de comprendre les caractéristiques électriques des panneaux photovoltaïques, en particulier la courbe caractéristique $I-V$.

### 3. MODÈLE DE PANNEAU PHOTOVOLTAÏQUE

Le comportement d'un panneau photovoltaïque est généralement décrit par sa courbe caractéristique courant-tension ($I-V$). Les paramètres clés, tels que la tension à vide ($V_{oc}$) et le courant de court-circuit ($I_{sc}$), dépendent des propriétés des cellules, bien que des facteurs externes comme l'ombrage, la température et les conditions environnementales puissent aussi influencer les performances. Le point de puissance maximale ($I_{MPP}$, $V_{MPP}$) correspond à l'instant où le produit tension-courant est maximal. Cette courbe peut être approximée par des fonctions mathématiques, plusieurs modèles étant proposés dans la littérature.

La sous-section 3.1 présente le modèle retenu pour cette application, tandis que la sous-section 3.2 en décrit l'intégration numérique, en mettant en évidence ses principales limitations.

#### 3.1. Représentation mathématique de la courbe $I-V$

Afin de modéliser numériquement la courbe $I-V$ de modules photovoltaïques sans recourir à des modèles physiques complexes, une approche mathématique simplifiée a été adoptée. Celle-ci s'appuie uniquement sur les quatre grandeurs caractéristiques des courbes $I-V$, précédemment évoquées. La relation analytique retenue, présentée dans l'Équation (1), permet d'approximer le comportement $I-V$ en ajustant un paramètre $c$ de manière à ce que la courbe passe par le point de puissance maximale.

$$I(V) = I_{sc} \cdot \left(1 - e^{-\frac{V-V_{oc}}{c}}\right) \quad (1)$$

Le paramètre $c$ est alors calculé selon l'Équation (2).

$$c = \frac{V_{oc} - V_{MPP}}{\ln\left(1 - \frac{I_{MPP}}{I_{sc}}\right)} \quad (2)$$

Ce modèle constitue une approximation continue et cohérente du comportement $I-V$, sans nécessiter de paramètres spécifiques supplémentaires au module. Bien qu'il ne reproduise pas fidèlement l'ensemble des non-linéarités de la courbe réelle, il présente l'avantage d'être simple à implémenter tout en offrant une précision suffisante pour des applications embarquées ou à visée pédagogique.

#### 3.2. Implémentation numérique du modèle mathématique

Dans le cadre de l'implémentation numérique du modèle mathématique décrit par les Équations (1) et (2), il a été décidé de recourir à des techniques d'interpolation. Trois types d'interpolation, issus de la littérature, sont présentés ci-après. Le premier repose sur une interpolation linéaire des données, permettant une reconstruction simple de la courbe $I-V$. Le deuxième utilise une interpolation quadratique, assurant une transition plus douce autour du point de puissance maximale. Enfin, le troisième type s'appuie sur une interpolation cubique, offrant une approximation plus précise de la caractéristique $I-V$. Le Tableau 1 résume les principales caractéristiques, ainsi que les avantages et inconvénients de chaque méthode présentée.

<table><caption>TABLEAU 1. Comparaison des trois méthodes d'interpolation.</caption><thead><tr><th>Critères d'interpolation</th><th>Interpolation linéaire</th><th>Interpolation quadratique</th><th>Interpolation cubique</th></tr></thead><tbody><tr><td>Complexité calculatoire</td><td>1 multiplication<br>1 addition</td><td>2 multiplications<br>2 additions</td><td>3 multiplications<br>3 additions</td></tr><tr><td>Espace en mémoire</td><td>Réduit<br>(points uniquement)</td><td>Réduit<br>(coeff. quadratiques)</td><td>Important<br>(coeff. cubique)</td></tr><tr><td>Précision</td><td>Faible<br>(segments linéaires)</td><td>Modérée<br>(approximation simple)</td><td>Très bonne</td></tr><tr><td>Continuité caractéristique</td><td>Non</td><td>Non</td><td>Oui</td></tr><tr><td>Calculs hors-ligne</td><td>Aucun</td><td>Calcul<br>simple coeff.</td><td>Calcul<br>complexe<br>coeff.</td></tr><tr><td>Adapté à l'embarqué</td><td>Très<br>adapté</td><td>Adapté</td><td>Moins<br>adapté</td></tr></tbody></table>

En se référant au Tableau 1, il apparaît clairement que la meilleure approximation est obtenue par interpolation cubique. Cependant, cette méthode requiert un nombre plus élevé d'opérations, la rendant moins adaptée à des applications embarquées. L'interpolation quadratique représente un compromis pertinent entre précision et complexité. Toutefois, compte tenu de l'objectif de concevoir un émulateur assez simple, économique et adapté à l'embarqué, il a été décidé d'utiliser une interpolation linéaire pour approximer la caractéristique $I-V$. des panneaux photovoltaïques. Ce choix s'appuie également sur différents exemples de la littérature, où des émulateurs basés sur une interpolation linéaire ont démontré des performances satisfaisantes [6].
### 3.2.1. Discrétisation par interpolation linéaire

Pour rendre ce modèle exploitable dans un environnement nu-
mérique contraint (tel qu’un microcontrôleur), la courbe $I-V$ est
discrétisée par interpolation linéaire par morceaux. Un ensemble
de 11 points d’échantillonnage $V_i$ (avec $i \in \{0, \dots, 10\}$), ré-
partis sur l’intervalle $[0, V_{oc}]$ avec une densité accrue autour de
$V_{MPP}$, permet de mieux représenter cette zone critique. Les va-
leurs de tension sont déterminées à partir des expressions du Ta-
bleau 2.

<table><caption>TABLEAU 2. Définition des points d'échantillonnage $V_i$</caption><thead><tr><td>$i$</td><td>Expression des points $V_i$</td></tr></thead><tbody><tr><td>0</td><td>0</td></tr><tr><td>1</td><td>0,2 · $V_{MPP}$</td></tr><tr><td>2</td><td>0,4 · $V_{MPP}$</td></tr><tr><td>3</td><td>0,6 · $V_{MPP}$</td></tr><tr><td>4</td><td>0,8 · $V_{MPP}$</td></tr><tr><td>5</td><td>0,9 · $V_{MPP}$</td></tr><tr><td>6</td><td>$V_{MPP}$</td></tr><tr><td>7</td><td>$\frac{V_{MPP}+V_{oc}}{2}$</td></tr><tr><td>8</td><td>0,9 · $V_{oc}$</td></tr><tr><td>9</td><td>0,95 · $V_{oc}$</td></tr><tr><td>10</td><td>$V_{oc}$</td></tr></tbody></table>

Ces points délimitent 10 segments linéaires consécutifs.

### 3.2.2. Choix du nombre de segments

Le choix de 10 segments résulte d'un compromis entre com-
plexité de calcul et précision. Des simulations comparatives ont
été réalisées pour différentes granularités d'interpolation (8, 10
et 12 segments). Les Figures 3, 4 et 5 illustrent les résultats ob-
tenus.

<figure><img src="image_4.png" /><figcaption>FIG. 3. Interpolation linéaire à 8 segments de la courbe $I-V$.</figcaption></figure>

<figure><img src="image_5.png" /><figcaption>FIG. 4. Interpolation linéaire à 10 segments de la courbe $I-V$.</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>FIG. 5. Interpolation linéaire à 12 segments de la courbe $I-V$.</figcaption></figure>

Comme le montrent les figures, l'interpolation à 8 segments
manque de précision, en particulier à proximité du point de puis-
sance maximale. L'ajout de segments supplémentaires (jusqu'à
12) n'apporte qu'un gain marginal en fidélité, tout en augmen-
tant la complexité de traitement. L'utilisation de 10 segments
apparaît ainsi comme un compromis pertinent, offrant un bon
équilibre entre précision et simplicité d'implémentation, parti-
culièrement adapté aux systèmes embarqués contraints en res-
sources.

Finalement, un code capable de calculer les 10 segments li-
néaires approchant la courbe $I-V$ de n'importe quel panneau,
à partir des seuls paramètres $V_{oc}$, $I_{sc}$, $V_{MPP}$ et $I_{MPP}$, a été conçu
puis téléversé sur la SPIN d'une carte OwnTech. Cela permet
l'intégration directe de ce modèle dans le processus d'émula-
tion.

## 4. ÉMULATEUR PHOTOVOLTAIQUE BASÉ SUR UN HACHEUR BUCK SYNCHRONE

Dans le cadre de ce projet, une carte OwnTech associée à
une source de tension continue a été utilisée pour concevoir
un système capable de reproduire le comportement électrique
d'un panneau photovoltaïque. Sa partie puissance (TWIST) a été
configurée pour fonctionner comme deux hacheurs Buck syn-
chrones en parallèle (voir Fig. 6).

<figure><img src="image_7.png" /><figcaption>FIG. 6. Schéma électrique de la carte OwnTech.</figcaption></figure>

Le principe de fonctionnement de l'émulateur repose sur le
contrôle du rapport cyclique $\alpha$, défini comme le rapport entre la
durée de conduction des interrupteurs électroniques et la période
totale de commutation. Le pilotage du rapport cyclique $\alpha$ est as-
suré par la carte de commande SPIN, programmée au préalable
à l'aide d'un algorithme écrit en langage C.

### 4.1. Algorithme

Cet algorithme a été développé dans un environnement virtuel basé sur *PlatformIO*, accessible via the logiciel *Visual Studio Code*.
*Code.* Il est ensuite transféré sur la carte SPIN via une connexion USB, où il s'exécute en boucle dans un mode embarqué.

L'algorithmme conçu propose trois modes de fonctionnement. Le mode Puissance (touche 'P') permet à la carte de fonctionner comme un hacheur Buck synchrone classique. Un régulateur PID y contrôle soit un rapport cyclique $\alpha$ prédéfini, soit une tension de sortie de référence $V_s$. Le mode Idle (touche 'I') désactive la conversion, aucune puissance n'étant alors délivrée à la charge. Enfin, le mode Émulateur (touche 'E') permet à la carte de reproduire le comportement électrique d'un panneau photovoltaïque alimentant une charge résistive. Dans ce mode, l'utilisateur saisit d'abord les paramètres caractéristiques $V_{oc}$, $I_{sc}$, $V_{MPP}$ et $I_{MPP}$, à partir desquels la carte calcule localement les équations linéaires approchant la courbe $I-V$, selon la méthode présentée en section 3.

Le fonctionnement détaillé du Mode Émulateur est illustré dans l'algorigramme de la Fig. 7, qui met en évidence les principales tâches exécutées par le code. Il convient de noter que, dans ce mode, la période d'exécution des tâches est fixée à 500 µs.

<figure><img src="image_8.png" /><figcaption>FIG. 7. Algorigramme du Mode Émulateur.</figcaption></figure>

La nomenclature utilisée dans l'algorigramme est reportée ci-dessous :

- $\alpha_0$: rapport cyclique initial imposé, afin de calculer la valeur de la résistance de charge.

- $V_s, I_s$: valeur de la tension et du courant de sortie, mesurés aux bornes de la charge.

- $R$: valeur calculée de la résistance de la charge.

- $V_s^*, I_s^*$: valeur de la tension et du courant correspondant au point de fonctionnement sur la caractéristique $I-V$ du panneau à émuler.

Comme illustré par l'algorigramme, une fois que l'utilisateur

entre en mode émulateur, le rapport cyclique est automatiquement réglé à une valeur initial $\alpha_0$. Afin d'éliminer les oscillations causées par le bruit, l'algorithmhe enregistre les valeurs mesurées par les capteurs de la carte pendant une durée de 500 µs et en calcule les moyennes temporelles, permettant ainsi d'obtenir des valeurs plus fiables de $V_s$ et $I_s$. Après avoir calculé et enregistré deux valeurs successives du courant $I_s$ (autrement dit, après deux cycles complets de l'étape précédente), le programme entre dans une boucle durant laquelle il attend que la valeur absolue de la différence entre ces deux dernières mesures de $I_s$ soit inférieure à 0,45. Cette condition assure que le régime permanent a bien été atteint après le réglage initial du rapport cyclique. Lorsque la condition de régime permanent est satisfaite, le programme utilise les dernières valeurs mesurées de $V_s$ et $I_s$ pour calculer la valeur de la résistance $R$ de la charge. Graphiquement, cette résistance correspond à une droite de charge reliant l'origine du plan $I-V$. au point de fonctionnement ($V_s, I_s$) mesuré avec $\alpha = \alpha_0$. L'expression mathématique correspondante à cette droite de charge est donnée par l'Équation (3).

$$I(V) = \frac{1}{R} \cdot V \qquad (3)$$

À partir de l'équation de la droite de charge, l'algorithmhe recherche, parmi les équations des segments linéaires approximant la courbe caractéristique du panneau photovoltaïque étudié, le point d'intersection ($V_s^*, I_s^*$). Ce point correspond en pratique au point de fonctionnement effectif du modèle de panneau avec la charge utilisée. Le code est ensuite actualisé afin que le régulateur PID de la carte suive la tension de référence : le PID ajuste ainsi le rapport cyclique jusqu'à ce que $V_s = V_s^*$, permettant finalement au système d'émuler le comportement d'un panneau photovoltaïque.

Si, ultérieurement, la charge connectée au système est modifiée par l'utilisateur, l'algorithmhe s'adapte automatiquement à ce changement. Cela est rendu possible par une tâche périodique exécutée toutes les 500 µs, durant laquelle une valeur de résistance, nommée $R_{candidate}$, est calculée à partir des dernières mesures de $V_s$ et $I_s$. Ensuite, l'erreur relative entre $R_{candidate}$ et $R^*$ est déterminée selon la formule présentée par l'Équation (4).

$$\text{Érreur} = \frac{|R_{candidate} - R^*|}{R^*} \qquad (4)$$

Si l'erreur calculée par l'Équation (4) dépasse 2% pendant deux cycles consécutifs de la tâche (soit pendant 1000500 µs au total), l'algorithmhe détecte un changement de charge et réinitialise le rapport cyclique à $\alpha_0$, relançant ainsi le processus d'adaptation. Il est important de souligner que la condition d'erreur persistante pendant deux cycles permet d'éviter les déclenchements intempestifs causés par les fluctuations temporaires dues au bruit ou à l'ondulation (ripple).

Afin de faciliter la compréhension du fonctionnement du code, la Fig. 8 a été élaborée afin de mettre en évidence l'évolution de la tension et du courant lors du fonctionnement de l'émulateur.

Dans la Fig. 8, les points numérotés représentent les étapes clés du fonctionnement de l'algorithmhe :

1. Le rapport cyclique initial $\alpha = \alpha_0$ est appliqué, ce qui génère une droite de charge passant par l'origine.

2. Le PID ajuste alors le rapport cyclique pour atteindre le point de fonctionnement ($V_s^*, I_s^*$) sur la courbe $I-V$.

3. Si la charge est modifiée, le point de fonctionnement se déplace vers (3), mais, étant $\alpha$ fixe, la tension de consigne $V_s^*$ reste inchangée, entraînant uniquement une variation du courant.

4. Si l'erreur relative entre l'ancienne et la nouvelle charge dépasse 2%, le programme détecte un changement de charge et réinitialise le rapport cyclique à $\alpha_0$.
<figure><img src="image_9.png" /><figcaption>FIG. 8. Visualisation du fonctionnement du mode Émulateur.</figcaption></figure>

5. Le PID réajuste ensuite le rapport cyclique pour stabiliser $V_s^*$, permettant au système de fonctionner à nouveau comme un émulateur photovoltaïque.

Pour valider l'émulateur développé et en évaluer la robustesse, plusieurs essais ont été réalisés en laboratoire.

## 4.2. Validation expérimentale

Pour réaliser les expérimentations en laboratoire, le système représenté à la Fig. 9 a été mis en place. Il se compose des éléments suivants :

- Une alimentation $V_e$ en courant continu de 50 V;

- La carte OwnTech, programmée avec l'algorithme assurant le fonctionnement en mode Émulateur;

- Un ampèremètre connecté en série avec la charge, permettant la mesure du courant $I_s$;

- Un voltmètre connecté en parallèle avec la charge, permettant la mesure de la tension $V_s$.

<figure><img src="image_10.png" /><figcaption>FIG. 9. Configuration de l'essai.</figcaption></figure>

Il est important de souligner que la carte OwnTech présente une limitation de courant de sortie $I_s$ de 16 A, ce qui doit impérativement être pris en compte lors du choix du modèle de panneau à émuler — en particulier, le courant de court-circuit $I_{sc}$ doit rester inférieur à cette valeur. Par ailleurs, les limites des capteurs externes (c'est-à-dire l'ampèremètre et le voltmètre), ainsi que celles de la charge utilisée, doivent également être prises en considération afin de garantir que les équipements auxiliaires ne soient pas exposés à des conditions de fonctionnement dangereuses.

Deux types d'essais majeurs ont été réalisés : tout d'abord, une comparaison du fonctionnement de l'émulateur avec deux valeurs différentes de $\alpha_0$, puis une comparaison entre la courbe $I-V$ obtenue à partir de l'émulateur développé et celle mesurée avec un émulateur commercial.

### 4.2.1. Analyse de l'influence du rapport cyclique initial $\alpha_0$ par mesures éxperimetales

Afin de respecter l'ensemble des limites imposées au système, il a été choisi d'émuler le modèle de panneau photovoltaïque Schutten Solar STM5-165 W. Les caractéristiques de ce panneau, sous un éclairement de 1000 W/m², sont : $V_{oc} = 44$ V, $I_{sc} = 5,1$ A, $V_{MPP} = 35,8$ V et $I_{MPP} = 4,61$ A.

Une fois que l'utilisateur a saisi ces valeurs dans l'algorithme et qu'il l'a téléversé sur la carte, il est possible de reconstruire la caractéristique courant-tension ($I-V$) du panneau en mesurant les tensions $V_s$ et les courants $I_s$ pour différentes charges R dynamiquement modifiées. Cette procédure a d'abord été effectuée avec un rapport cyclique initial $\alpha_0 = 0,9$. La Fig. 10 illustre la reconstruction de la courbe $I-V$ pour cette valeur de $\alpha_0$; elle met en évidence les droites de charge correspondant aux différentes résistances R utilisées, ainsi que les points de test (mesures réalisées pour $\alpha_0 = 0,9$) et les points de fonctionnement effectifs du modèle émülé.

<figure><img src="image_11.png" /><figcaption>FIG. 10. Courbe $I-V$ du panneau Schutten Solar STM5-165 W reconstruite par l'émulateur PV pour différentes valeurs de R ($\alpha_0 = 0,9$).</figcaption></figure>

Les résultats montrent que l'émulateur parvient à reproduire efficacement la caractéristique $I-V$ du panneau étudié. Un effet de saturation est toutefois observé sur les points de test. Cet effet apparaît comme étant directement proportionnel à l'intensité du courant $I_s$ ainsi qu'au rapport cyclique $\alpha$.

À partir des points d'émulation mesurés, l'erreur de l'émulateur a également été évaluée afin d'estimer la robustesse du système. Pour ce faire, la résistance virtuelle fournie par l'émulateur a été comparée à la résistance réelle de la charge, déterminée expérimentalement à l'aide d'un voltmètre et d'un ampèremètre. L'écart relatif a ensuite été exprimé en pourcentage. Le Tableau 3 présente ces résultats pour un rapport cyclique $\alpha_0 = 0,9$.

<table><caption>TABLEAU 3. Comparaison des résistances mesurées et calculées ($\alpha_0 = 0,9$).</caption><thead><tr><td>V<sub>s</sub><sup>*</sup> (V)</td><td>I<sub>s</sub><sup>*</sup> (A)</td><td>R<sup>*</sup> (Ω)</td><td>R (Ω)</td><td>Érreur (%)</td></tr></thead><tbody><tr><td>23,63</td><td>5,08</td><td>4,65</td><td>4,55</td><td>2,23</td></tr><tr><td>27,39</td><td>5,05</td><td>5,42</td><td>5,32</td><td>1,95</td></tr><tr><td>30,96</td><td>4,96</td><td>6,24</td><td>6,14</td><td>1,66</td></tr><tr><td>33,80</td><td>4,79</td><td>7,06</td><td>7,42</td><td>4,90</td></tr><tr><td>36,39</td><td>4,45</td><td>8,18</td><td>8,14</td><td>0,46</td></tr><tr><td>38,20</td><td>3,97</td><td>9,62</td><td>9,59</td><td>0,34</td></tr><tr><td>39,13</td><td>3,73</td><td>10,49</td><td>10,48</td><td>0,10</td></tr><tr><td>40,33</td><td>3,23</td><td>12,49</td><td>12,45</td><td>0,29</td></tr><tr><td>40,99</td><td>2,85</td><td>14,38</td><td>14,49</td><td>0,74</td></tr><tr><td>41,77</td><td>2,39</td><td>17,48</td><td>18,56</td><td>5,84</td></tr><tr><td>42,26</td><td>1,88</td><td>22,48</td><td>22,89</td><td>1,80</td></tr><tr><td>42,63</td><td>1,48</td><td>28,80</td><td>29,38</td><td>1,96</td></tr><tr><td>42,95</td><td>1,13</td><td>38,01</td><td>39,12</td><td>2,84</td></tr><tr><td>43,31</td><td>0,74</td><td>58,53</td><td>61,44</td><td>4,74</td></tr><tr><td>43,57</td><td>0,46</td><td>94,72</td><td>100,67</td><td>5,91</td></tr><tr><td>43,76</td><td>0,26</td><td>168,31</td><td>189,44</td><td>11,16</td></tr></tbody></table>

Les erreurs relatives décrites dans le Tableau 3 sont principalement liées aux erreurs de mesure intrinsèques des capteurs de tension et de courant de la carte OwnTech, ainsi qu'à celles des appareils de mesure externes (voltmètre et ampèremètre). L'analyse de ce tableau montre que l'erreur relative de l'émulateur reste globalement faible. Cependant, cette erreur commence
à croître de manière significative lorsque la résistance de charge devient importante, notamment au-delà de $R = 100 \Omega$. Ce comportement s'explique principalement par le fait que plus le courant circulant dans la carte descend en dessous de 1 A, plus la précision des capteurs de la carte se détériore.

Par la suite, les deux mêmes essais ont été réalisés, cette fois en utilisant un rapport cyclique correspondant au point de test $\alpha_0 = 0,45$. Le Tableau 4 présente les résultats de ce deuxième test.

<table><caption>TABLEAU 4. Comparaison des résistances mesurées et calculées ($\alpha_0 = 0,45$).</caption><thead><tr><th>V<sub>o</sub><sup>*</sup> (V)</th><th>I<sub>o</sub><sup>*</sup> (A)</th><th>R<sup>*</sup> (Ω)</th><th>R (Ω)</th><th>Érreur (%)</th></tr></thead><tbody><tr><td>10,83</td><td>5,10</td><td>2,12</td><td>2,12</td><td>0,17</td></tr><tr><td>18,90</td><td>5,09</td><td>3,71</td><td>3,73</td><td>0,45</td></tr><tr><td>25,34</td><td>5,06</td><td>5,01</td><td>5,02</td><td>0,24</td></tr><tr><td>29,46</td><td>5,01</td><td>5,88</td><td>5,95</td><td>1,17</td></tr><tr><td>31,74</td><td>4,94</td><td>6,43</td><td>6,39</td><td>0,55</td></tr><tr><td>34,27</td><td>4,74</td><td>7,23</td><td>7,29</td><td>0,82</td></tr><tr><td>35,74</td><td>4,62</td><td>7,74</td><td>7,96</td><td>2,81</td></tr><tr><td>36,83</td><td>4,34</td><td>8,49</td><td>8,82</td><td>3,78</td></tr><tr><td>38,35</td><td>3,93</td><td>9,76</td><td>10,25</td><td>4,80</td></tr><tr><td>39,87</td><td>3,50</td><td>11,39</td><td>12,07</td><td>5,62</td></tr><tr><td>40,70</td><td>3,01</td><td>13,52</td><td>14,85</td><td>8,95</td></tr><tr><td>41,39</td><td>2,61</td><td>15,86</td><td>17,88</td><td>11,31</td></tr><tr><td>42,09</td><td>2,07</td><td>20,33</td><td>25,43</td><td>20,04</td></tr><tr><td>42,86</td><td>1,23</td><td>34,85</td><td>51,24</td><td>32,00</td></tr><tr><td>43,22</td><td>0,84</td><td>51,45</td><td>99,83</td><td>48,46</td></tr><tr><td>43,52</td><td>0,52</td><td>83,69</td><td>393,18</td><td>78,71</td></tr></tbody></table>

L'analyse des résultats pour $\alpha = 0,45$ montre que l'émulateur continue de fonctionner, mais présente une faible robustesse face à l'augmentation de la résistance $R$. En effet, l'erreur relative augmente sensiblement à mesure que la résistance augmente. Cette différence importante par rapport aux résultats obtenus pour le cas $\alpha_0 = 0,9$ s'explique principalement par deux raisons :

- Pour une même résistance, le point de test correspondant à $\alpha_0 = 0,9$ présente un courant $I_s^*$ plus élevé que celui obtenu avec $\alpha_0 = 0,45$. Cela influence les mesures des capteurs de la carte électronique, augmentant ainsi l'erreur de mesure, et par conséquent, l'erreur d'émulation.

- Lorsqu'on trace une droite entre deux points, plus ces points sont éloignés, plus la droite obtenue est robuste face aux erreurs de mesure. Autrement dit, la droite tracée à partir des points de test pour $\alpha_0 = 0,45$ est plus sensible aux imprécisions des capteurs de la carte OwnTech.

Pour mieux comprendre ce phénomène, ainsi que l'effet de saturation observé dans la Fig. 10, une analyse électrique plus approfondie de la carte OwnTech serait nécessaire. Celle-ci devrait inclure les pertes afin de déterminer le gain statique. Ces aspects feront l'objet de travaux futurs.

### 4.3. Comparaison avec un émulateur commercial

Afin de comparer directement les performances de l'émulateur open-source développé dans ce projet à celles d'un émulateur commercial, le modèle Agilent Technologies Modular Solar Array Simulator Series E4360 a été utilisé. Le choix du panneau à émuler a été contraint par le courant maximal délivrable par cet appareil ($I_{sc,max} = 5,1$ A). En conséquence, la courbe caractéristique I-V du panneau Schutten Solar STM5-165 W a été reconstruite pour différentes valeurs de résistance $R$, à l'aide des deux émulateurs. Le résultat de cette comparaison est présenté en Fig. 11.

Il est à noter que, compte tenu des faibles erreurs relevées dans le Tableau 3, la valeur $\alpha_0 = 0,9$ a été retenue pour cet essai.

<figure><img src="image_12.png" /><figcaption>FIG. 11. Schutten Solar STM5-165 W - Comparaison entre l'émulateur commercial et l'émulateur open-source.</figcaption></figure>

L'analyse de cette figure met en évidence une erreur significative entre les deux émulateurs, principalement liée à la simplification du modèle mathématique utilisé (Équations (1) et (2)). Conçu pour les systèmes embarqués, ce modèle favorise la légèreté au détriment de la précision. Une amélioration nécessiterait l'adoption d'un modèle plus fidèle au comportement réel des panneaux.

## 5. CONCLUSIONS

Dans cet article, il est proposé d'implémenter un émulateur photovoltaïque open-source. Cet émulateur permettra, partout dans le monde, de tester différentes solutions en développement dans le domaine du solaire, dans le but d'améliorer l'efficacité de ces systèmes énergétiques et de soutenir les efforts en R&D. Cela sera possible grâce à la suite technologique OwnTech, tout en utilisant des outils libres tels que Git et le langage C. Parmi ses avantages : un coût maîtrisé par rapport à un émulateur commercial, une prise en main simplifiée, ainsi que la possibilité de reproduire de façon simple et rapide des tests partout dans le monde. Un dépôt Git a été mis en place afin de partager les avancées liées à ce travail [7]. Cet émulateur se base sur la superposition de plusieurs approximations linéaires de la caractéristique $I-V$ d'un panneau photovoltaïque, à partir de paramètres connus : tension à vide ($V_{oc}$), courant de court-circuit ($I_{sc}$), tension et courant au point de puissance maximale ($V_{MPP}$ et $I_{MPP}$). L'algorithme de fonctionnement a été présenté et ses limites ont été identifiées, notamment la valeur initiale du rapport cyclique utilisée pour la mesure de la résistance. Dans la comparaison entre l'émulateur conçu et un émulateur commercial, une erreur significative a été mise en évidence dans l'intervalle de tension ($V_{MPP} - V_{oc}$). Cependant, l'algorithme montre que le système mis en place est capable de reproduire la caractéristique $I-V$, approximée par des droites. Dans les perspectives, il serait intéressant de tester un large éventail de panneaux photovoltaïques. L'impact du changement de modèle mathématique utilisé pour approximer la courbe $I-V$ mériterait également d'être étudié, tant du point de vue de la complexité de calcul que de la précision.

## 6. RÉFÉRENCES

[1] International Energy Agency Report, «Renewables 2023 Analysis and forecast to 2028», revision janvier 2025.

[2] Z. Song et al., «Digital Twins for the Future Power System: An Overview and a Future Perspective», Sustainability 15, no. 6: 5259, 2023.

[3] L. Mollineda et J. García, «Digital Twin of a photovoltaic system», ITEGAM-JETIA 2024, 10(47), 159-171.

[4] M. Longuet et al., «Adaptation des méthodes de l'IOT pour le design des convertisseurs de puissance reprogrammables», Sympposium Génie Electrique, Lille, 2023.

[5] Github Ozwtech, 2025, https://gitlab.laas.fr/owntech

[6] Dylan D.C. Lu, A.N. Nguyen, «A photovoltaic panel emulator using buck-boost DC/DC converter and a low cost micro-controller», Solar Energy, Volume 86, Issue 5, 2012, Pages 1477-1484.

[7] Github Emulateur solaire, 2025, https://github.com/owntech-foundation/solar_emulator