0% ont trouvé ce document utile (0 vote)
4 vues34 pages

Système MPPT Intelligent avec Deep Learning

Ce document présente la conception d'un système intelligent de suivi du point de puissance maximale (MPPT) pour panneaux photovoltaïques, intégrant des algorithmes de deep learning pour optimiser l'extraction d'énergie. Il détaille les spécifications techniques du matériel utilisé, les contraintes de conception, ainsi que la modélisation SysML pour structurer le système. L'implémentation du système est également abordée, avec un accent sur l'efficacité énergétique et la robustesse face aux variations environnementales.

Transféré par

NOUREDDINE ELHAMRI
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues34 pages

Système MPPT Intelligent avec Deep Learning

Ce document présente la conception d'un système intelligent de suivi du point de puissance maximale (MPPT) pour panneaux photovoltaïques, intégrant des algorithmes de deep learning pour optimiser l'extraction d'énergie. Il détaille les spécifications techniques du matériel utilisé, les contraintes de conception, ainsi que la modélisation SysML pour structurer le système. L'implémentation du système est également abordée, avec un accent sur l'efficacité énergétique et la robustesse face aux variations environnementales.

Transféré par

NOUREDDINE ELHAMRI
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Table des Matières

1. Introduction
2. Présentation du HARDWARE
3. Spécifications Techniques
3.1 Panneau Photovoltaïque
3.2 Capteurs de Mesure
3.3 Microcontrôleur
3.4 Convertisseur DC-DC
3.5 Charge Électronique Programmable
3.6 Communication et Interface
4. Contraintes et Exigences
5. Modélisation SysML
5.1 Diagramme des Exigences
5.2 Diagramme de Définition des Blocs (BDD)
5.3 Diagramme Interne des Blocs (IBD)
5.4 Diagramme des Cas d’Utilisation
5.5 Diagramme d’Activité
5.6 Diagramme Paramétrique
6. Implémentation avec PlantUML
7. Conclusion
8. Annexes

1- Introduction
La transition énergétique vers des sources renouvelables est un enjeu majeur pour assurer un
approvisionnement énergétique durable et respectueux de l’environnement. Parmi ces sources,
l’énergie solaire photovoltaïque représente une solution prometteuse, mais son efficacité est
fortement influencée par des variations environnementales telles que l’irradiance et la
température. Pour maximiser l’extraction d’énergie des panneaux photovoltaïques, il est
essentiel d’utiliser des algorithmes de suivi du point de puissance maximale (MPPT – Maximum
Power Point Tracking).
Traditionnellement, les algorithmes MPPT reposent sur des méthodes heuristiques telles que
Perturb and Observe (P&O) ou Incremental Conductance (INC), qui, bien que performantes,
présentent des limitations en termes de rapidité d’adaptation et de robustesse face aux
variations soudaines des conditions climatiques. L’émergence de l’intelligence artificielle (IA) et
du deep learning ouvre de nouvelles perspectives en permettant l’optimisation dynamique du
contrôle MPPT en fonction de modèles prédictifs plus précis et adaptatifs.
Ce travail de recherche vise à concevoir un système MPPT intelligent piloté par un modèle de
deep learning. Ce système repose sur un matériel embarqué intégrant un microcontrôleur
ESP32 ou STM32, des capteurs de courant et de tension (INA219 et INA210), un convertisseur
DC-DC de type Step-up et une charge électronique programmable. L’algorithme de deep
learning, exécuté sous MATLAB, ajustera dynamiquement le signal PWM du convertisseur pour
optimiser en temps réel l’efficacité énergétique du système.
L’objectif principal de cette étude est d’explorer une méthodologie de conception efficace du
hardware en prenant en compte les contraintes techniques, énergétiques et de traitement en
temps réel. Cette recherche s’inscrit dans un cadre plus large visant à améliorer les
performances des systèmes photovoltaïques intelligents et à renforcer leur intégration dans les
réseaux électriques modernes.

2. Présentation du HARDWARE
L’objectif principal de ce projet est de concevoir un système MPPT intelligent capable d’ajuster
dynamiquement la puissance extraite d’un panneau photovoltaïque en fonction des conditions
environnementales. Le système repose sur les composants suivants :
Panneau photovoltaïque : Fournit l’énergie d’entrée.
Capteurs : Mesurent la tension et le courant à différents points du système. temperature,
rayenement globale...
Microcontrôleur : Coordonne les mesures, la communication, et le contrôle.
Convertisseur DC-DC (Step-up) : Élève la tension pour alimenter une charge.
Charge électronique programmable : Simule différentes conditions de charge.
MATLAB : Exécute un algorithme IA pour optimiser le signal PWM (modulation de largeur
d’impulsion).
Le système fonctionne en boucle continue : acquisition des données, transmission vers
MATLAB, traitement par IA, ajustement du convertisseur, et suivi en temps réel. Cette approche
garantit une adaptation rapide aux variations de lumière et de température, maximisant ainsi le
rendement énergétique.

Prérequis pour la Conception du


Hardware
3. Spécifications Techniques
3.1 Panneau Photovoltaïque
Tension nominale (Vmp) : 18 V
Courant nominal (Imp) : 1 A
Puissance nominale : 18 W
Facteur de température : -0,4 %/°C

3.2 Capteurs de Mesure


Capteurs de tension et de courant : ISL28022, INA219, INA223...

Précision requise : ±1 % sur la mesure des grandeurs électriques.


Taux d’échantillonnage : ≥ 1 kHz.
Temperature des panneaux solaire.
Rayenement globale.
3.3 Microcontrôleur
Modèle : ESP32 ou STM32
Fréquence : 80 MHz - 240 MHz
Mémoire : 512 KB RAM / 4 MB Flash
Interfaces : I2C, PWM, UART
Connectivité : WiFi

3.4 Convertisseur DC-DC (Step-up)


Tension d’entrée : 5 V - 18 V
Tension de sortie : 24 V - 48 V
Rendement : 95 %
Fréquence de découpage : 50 kHz - 200 kHz
Contrôle : PWM

3.5 Charge Électronique Programmable


Tension max : 60 V
Courant max : 5 A
Modes : Courant constant (CC), Puissance constante (CP)

3.6 Communication et Interface


Protocole : UART / WiFi , SCPI
Interface : MATLAB (visualisation et ajustement PWM)

Page 8 : 4. Contraintes et Exigences


Le système doit respecter les exigences suivantes :
Précision des mesures : ±1 % minimum.
Latence du traitement IA : < 50 ms.
Résilience : Protection contre les surtensions et surintensités.
Fiabilité : Fonctionnement en extérieur (25°C - 60°C).
Efficacité énergétique : Minimiser les pertes (rendement cible de 95 %).
Ces contraintes orientent la conception matérielle et logicielle, garantissant un système robuste
et performant.

Introduction aux diagrammes SysML pour le


système MPPT intelligent
Introduction
Le projet de conception d'un système de suivi du point de puissance maximale (MPPT)
intelligent représente un défi d'ingénierie complexe intégrant plusieurs domaines technologiques
: électronique de puissance, systèmes embarqués, intelligence artificielle et communication de
données. Pour modéliser efficacement un tel système, le langage SysML (Systems Modeling
Language) est particulièrement adapté car il permet de représenter les différents aspects d'un
système cyberphysique de manière structurée et complète.
Le cahier des charges présente un système MPPT qui utilise l'intelligence artificielle pour
optimiser l'extraction d'énergie d'un panneau photovoltaïque. Pour modéliser ce système, cinq
types de diagrammes SysML sont requis et qui capturent les aspects structurels,
comportementaux, et paramétriques du système.

Introduction au language SysML


1. Diagramme des exigences (Requirement Diagram)
Objectif : Représenter de manière structurée l'ensemble des exigences du système.
Méthode de création :
Identifier toutes les exigences explicites et implicites dans le cahier des charges
Classifier les exigences en fonctionnelles et non-fonctionnelles
Établir les relations entre les exigences (dérivation, inclusion, etc.)
Représenter chaque exigence avec un identifiant unique et un texte descriptif
Éléments clés :
L'exigence principale (Système MPPT Intelligent) est décomposée en sous-exigences
Les exigences non-fonctionnelles (précision, latence, résilience, etc.) sont liées aux
exigences fonctionnelles qui les satisfont
La relation de dérivation (<>) montre comment les fonctionnalités contribuent aux exigences
de performance

2. Diagramme de structure (Block Definition Diagram -


BDD)
Objectif : Définir la structure du système et les relations entre ses composants principaux.
Méthode de création :
Identifier tous les composants physiques et logiciels mentionnés dans le cahier des charges
Spécifier les caractéristiques techniques de chaque composant
Définir les relations entre composants (composition, association, etc.)
Ajouter les fonctions/opérations que chaque composant doit réaliser
Éléments clés :
Chaque bloc représente un composant majeur du système avec ses attributs
Les relations de composition (*--) montrent que chaque composant fait partie du système
global
Les associations entre composants indiquent les interactions (mesure, contrôle,
communication)
Les notes fournissent des détails supplémentaires sur certains composants
3. Diagramme interne (Internal Block Diagram - IBD)
Objectif : Montrer l'architecture interne du système et les flux entre composants.
Méthode de création :
Définir chaque composant comme un bloc contenant des ports
Établir les connexions entre ces ports pour montrer les flux de données et d'énergie
Indiquer la direction des flux par des flèches
Distinguer les différents types de connexions (électriques, communication, contrôle)
Éléments clés :
Les ports représentent les interfaces par lesquelles les composants interagissent
Les flux d'énergie (panneau vers convertisseur vers charge) sont distingués des flux
d'information
Les protocoles de communication (I2C, WiFi, UART, PWM) sont indiqués sur les connexions
appropriées
La disposition spatiale des composants reflète l'architecture logique du système

4. Diagramme des paramètres (Parametric Diagram)


Objectif : Modéliser les contraintes entre paramètres physiques et équations du système.
Méthode de création :
Identifier les paramètres physiques clés de chaque composant
Définir les équations et contraintes qui gouvernent le système
Établir les liens entre paramètres et contraintes
Mettre en évidence les relations critiques pour la performance
Éléments clés :
Les paramètres du panneau PV et leurs relations avec l'algorithme MPPT
L'équation de conversion du convertisseur step-up (Vout = Vin × D/(1-D))
Les contraintes de rendement et de température qui affectent la performance
Les liens entre l'algorithme IA et les paramètres qu'il doit optimiser

5. Diagrammes comportementaux
a. Diagramme d'activité
Objectif : Représenter le flux de travail du système.
Méthode de création :
Identifier les principales activités réalisées par chaque composant
Ordonner ces activités chronologiquement
Diviser le diagramme en "couloirs" pour chaque composant responsable
Indiquer les flux de contrôle entre activités

b. Diagramme de séquence
Objectif : Montrer les interactions chronologiques entre composants.
Méthode de création :
Identifier tous les acteurs et composants impliqués
Déterminer la séquence de messages échangés
Indiquer les activations de chaque composant
Structurer les interactions dans une boucle d'optimisation continue

c. Diagramme d'états
Objectif : Définir les différents états du système et leurs transitions.
Méthode de création :
Identifier les états principaux du système (initialisation, acquisition, etc.)
Décomposer chaque état en sous-états si nécessaire
Définir les transitions entre états et leurs déclencheurs
Inclure les états d'erreur et de récupération

Conclusion
Ces cinq types de diagrammes SysML offrent une vue complète et cohérente du système MPPT
intelligent sous différentes perspectives. Ensemble, ils permettent de :
Vérifier que toutes les exigences sont satisfaites
Comprendre l'architecture du système et les relations entre composants
Analyser les contraintes physiques et les équations de performance
Visualiser le comportement dynamique du système

Cette modélisation SysML constitue une base solide


pour les phases de conception détaillée,
d'implémentation et de validation du système MPPT
intelligent.

6. Implémentation avec PlantUML


Voici le code PlantUML pour le diagramme d’activité :

@startuml
skinparam monochrome true
|Sensors|
:Measure PV Voltage and Current;
:Measure Converter Current;
:Measure Output Voltage and Current;
fork
:PV_Data;
fork again
:Converter_Current;
fork again
:Output_Data;
end fork
-> |Microcontroller|
|Microcontroller|
:Collect Sensor Data;
:Transmit Data to MATLAB;
-> |MATLAB|
|MATLAB|
:Receive Data;
fork
:Run AI Algorithm\n(Latency < 50 ms);
:PWM_Optimal;
fork again
:Visualize Data;
end fork
-> |Microcontroller|
|Microcontroller|
:Receive PWM_Optimal;
:Generate PWM Signal;
-> |DC-DC Converter|
|DC-DC Converter|
:Apply PWM Signal;
:Adjusted_Power;
-> |Programmable Load|
|Programmable Load|
:Receive Power;
:Set Load Condition\n(CC or CP);
-> |Microcontroller|
|Microcontroller|
:Monitor System;
if (Is Power Optimized?) then (Yes)
:Continue Monitoring;
else (No)
-> |MATLAB|
:Adjust PWM Further;
-> |Microcontroller|
endif
note right: Overvoltage/Overcurrent\nProtection: Stop if triggered
-> |Sensors|
:Loop Back to Acquire Data;
@enduml

7. Conclusion
Ce rapport a présenté une analyse complète du système MPPT intelligent, de ses spécifications
à sa modélisation SysML et son implémentation graphique. Le système répond aux besoins
d’efficacité énergétique et de robustesse, avec une approche innovante basée sur l’IA.
8. Annexes
Références au "Cahier des Charges".
Détails supplémentaires sur les capteurs et le microcontrôleur.

Méthode d'Identification des


Composants
La sélection des composants pour réaliser le schéma électronique repose sur les exigences du
système. La méthode d’identification suit ces étapes :

1. Définition des Fonctions du Système


Chaque module du système est identifié en fonction des exigences du cahier des charges :
Acquisition des données : Capteurs de courant et tension.
Traitement et contrôle : Microcontrôleur assurant le pilotage MPPT.
Conversion d’énergie : Convertisseur DC-DC.
Charge et stockage : Charge électronique programmable.
Communication et affichage : Interface de supervision et connexion au modèle IA.

2. Sélection des Composants


Fonction Composant Justification
Candidat
Capteur de tension et INA219 Précision du ADCest de 12bits , I2C,
courant faible consommation
Capteur de tension et ISL28022 Précision du ADC est de 16bits, I2C, 60V
courant input
Microcontrôleur ESP32 / STM32 Capacité de calcul suffisante,
connectivité WiFi et UART
Convertisseur DC-DC Boost Converter Permet d’adapter la tension de sortie
Charge Électronique Programmable Test des performances du système
Load
Interface IA MATLAB Entraînement et exécution du modèle de
deep learning

3. Vérification des Compatibilités


Protocole de communication : Les capteurs utilisent I2C, compatible avec ESP32 et
STM32.
Niveau de tension : ESP32 fonctionne en 3.3V, STM32 en 3.3V ou 5V, les capteurs
doivent être compatibles.
Capacité de contrôle : Le microcontrôleur doit gérer le PWM du convertisseur DC-DC et
communiquer avec MATLAB.

Schéma électronique
1- interface de communication:
Ce schéma représente un convertisseur USB vers UART (communication série) utilisant la puce
CH340K. Permettez-moi de décomposer les principaux composants et le fonctionnement de ce
circuit :

FIG.1

Vue d'ensemble
Le schéma montre un convertisseur USB vers UART (communication série), qui permet à un
appareil avec une interface USB (comme un ordinateur) de communiquer avec un
microcontrôleur ou un autre appareil via des signaux UART (série). Le CH340K est une puce
adaptatrice USB-série couramment utilisée à cet effet.

Composants clés et connexions


1. Interface USB (Connecteur Type-B)
Le circuit commence avec un connecteur USB Type-B à gauche.
VBUS : C’est la ligne d’alimentation 5V provenant du port USB.
D+ et D- : Ce sont les lignes de données différentielles pour la communication USB.
GND : Connexion à la masse.
C1 (100nF) : Un condensateur de découplage entre VBUS et GND pour filtrer le bruit
sur la ligne d’alimentation.
2. Puce CH340K (U1)
Le CH340K est le cœur de ce circuit, gérant la conversion entre les protocoles USB et
UART.
Connexions des broches :
VCC (Broche 7) : Connectée à VBUS (5V provenant de l’USB).
UD+ (Broche 2) et UD- (Broche 10) : Connectées aux lignes D+ et D- de l’USB
pour la communication USB.
V3 (Broche 3) : C’est la sortie 3,3V générée en interne par le CH340K.
GND (Broche 11) : Masse.
EP (Broche 11) : Patin exposé, généralement connecté à la masse pour la stabilité
thermique et électrique.
TXD (Broche 8) et RXD (Broche 9) : Ce sont respectivement les lignes de
transmission (TX) et de réception (RX) UART, qui se connectent à l’appareil cible
(par exemple, un microcontrôleur).
DTR# (Broche 4), RTS# (Broche 6), CTS# (Broche 5) : Ce sont des signaux de
contrôle souvent utilisés pour le contrôle de flux matériel ou pour réinitialiser un
microcontrôleur. Dans ce schéma, CTS# n’est pas connecté (marqué d’un "X").
C5 (100nF) : Un autre condensateur de découplage entre V3 (3,3V) et GND pour
stabiliser la sortie 3,3V.
3. Circuit de signal de contrôle (DTR et RTS)
DTR et RTS sont des signaux de sortie du CH340K (broches DTR# et RTS#) qui sont
souvent utilisés pour contrôler la réinitialisation d’un microcontrôleur ou d’autres
fonctions.
Q1 et Q2 : Ce sont des transistors NPN (probablement des 2N3904 ou similaires)
utilisés pour décaler ou inverser les signaux DTR# et RTS#.
R6 (1kΩ) et R7 (1kΩ) : Résistances de rappel vers le bas pour s’assurer que les
transistors sont éteints lorsque les signaux DTR# ou RTS# ne sont pas actifs.
La broche EN (probablement une broche d’activation sur l’appareil cible) est pilotée par
Q1, et GPIO0 (une broche d’entrée/sortie à usage général, souvent utilisée pour les
modes de programmation sur des microcontrôleurs comme l’ESP8266) est pilotée par
Q2.
4. Signaux de sortie
TX, RX, DTR, et RTS : Ce sont les signaux UART et de contrôle qui se connectent à
l’appareil cible.
EN et GPIO0 : Ce sont des signaux de contrôle supplémentaires pour l’appareil cible,
souvent utilisés pour la programmation ou la réinitialisation.
Fonctionnement
Lorsque le connecteur USB Type-B est branché à un ordinateur, le CH340K communique
via USB (par les lignes D+ et D-) et convertit les données en signaux UART (TX et RX).
Le CH340K fournit également des signaux de contrôle (DTR et RTS) qui peuvent être
utilisés pour réinitialiser ou contrôler un microcontrôleur, comme pour entrer en mode
chargeur d’amorçage (bootloader) pour la programmation.
Les transistors (Q1 et Q2) s’assurent que les signaux DTR# et RTS# sont correctement
conditionnés pour l’appareil cible, souvent en inversant les niveaux logiques ou en
fournissant les niveaux de tension corrects.

Cas d’utilisation typique


Ce circuit est utilisé pour programmer ou communiquer avec l’ESP32 :
TX et RX se connectent aux broches RX et TX du microcontrôleur pour la communication
série.
DTR et RTS (via EN et GPIO0) sont utilisés pour réinitialiser automatiquement le
microcontrôleur et le mettre en mode programmation, ce qui est particulièrement utile pour
des appareils comme l’ESP8266 qui nécessitent des états spécifiques des broches pour
entrer en mode chargeur d’amorçage.

2- Alimention electrique 5V- 3.3V:


Ce schéma représente une alimentation à découpage (buck converter) qui convertit une tension
d'entrée VBUS (généralement 5V provenant d'un port USB) en une tension de sortie stable de
+3,3V. La puce utilisée est le SY8079AAC, un régulateur à découpage abaisseur (step-down).
Voici une explication en français avec des équations pour dimensionner les composants clés.
FIG.2
Analyse du schéma : Alimentation +3,3V avec
SY8079AAC:

Fonctionnement général
Le SY8079AAC est un convertisseur abaisseur qui utilise une topologie buck pour réduire la
tension d'entrée VBUS (5V) à une tension de sortie de 3,3V. Il fonctionne en mode PWM
(modulation de largeur d'impulsion) pour ajuster la tension de sortie.
VBUS : Tension d'entrée (5V typique).
+3V3 : Tension de sortie (3,3V).
U2 (SY8079AAC) : Régulateur à découplage.
IN (Broche 4) : Entrée de tension (VBUS).
EN (Broche 1) : Broche d'activation (connectée à VBUS pour activer le régulateur).
GND (Broche 2) : Masse.
LX (Broche 3) : Sortie de commutation (connectée à l'inductance L1).
FB (Broche 5) : Retour de tension pour réguler la sortie.

Dimensionnement des composants


1. Inductance L1 (1µH)
L'inductance est essentielle pour stocker l'énergie dans un convertisseur buck. La valeur de
l'inductance est choisie en fonction de la fréquence de commutation ( f
{sw} ) (typiquement 1 MHz pour le SY8079AAC), de la tension d'entrée ( V {in} ), de la
tension de sortie ( V{out} ), et du courant de sortie ( I {out} ).
La formule pour calculer l'inductance minimale est :

Où :
( V_{out} = 3,3V )
( V_{in} = 5V )
( \Delta IL ) : Ondulation du courant dans l'inductance (typiquement 20-40% de ( I {out} ),
disons 30% de 500mA = 150mA)
( f_{sw} = 1MHz )
En remplaçant :

Cependant, une inductance de 1µH est choisie ici, ce qui est inférieur à la valeur calculée. Cela
peut être acceptable pour des courants faibles ou si l'ondulation du courant est tolérée, mais
une inductance plus grande (comme 4,7µH) serait plus appropriée pour réduire l'ondulation.
2. Résistances de rétroaction R4 et R5 (453kΩ et 100kΩ)
La tension de sortie est régulée via la broche FB. Le SY8079AAC a une tension de
référence ( V_{FB} ) (généralement 0,6V). La tension de sortie est déterminée par le
diviseur de tension formé par R4 et R5 :

Où :
( V_{FB} = 0,6V )
( R4 = 453kΩ )
( R5 = 100kΩ )
En remplaçant :
Cela correspond bien à la tension de sortie cible de 3,3V (légère variation due aux tolérances
des résistances).
3. Condensateurs de sortie C2, C3, C4 (22pF, 22µF, 22µF)
C2 (22pF) : Connecté à la broche FB, il compense la boucle de rétroaction pour
améliorer la stabilité. Sa valeur est généralement choisie expérimentalement ou selon
les recommandations du fabricant.
C3 et C4 (22µF) : Condensateurs de sortie pour filtrer l'ondulation de la tension de
sortie. La capacité minimale est calculée en fonction de l'ondulation de tension
acceptable ( \Delta V_{out} ):

Une valeur de 22µF est largement suffisante pour réduire l'ondulation et assurer la stabilité.
4. Condensateur d'entrée C6 (22µF)
Ce condensateur filtre les variations de tension à l'entrée. Une valeur de 22µF est typique
pour absorber les transitoires d'entrée et réduire le bruit.

3- Convertisseur boost:
Analyse du schéma : Convertisseur Boost avec VOM1271T et
IRF3710PBF
Ce schéma représente un convertisseur boost (survolteur) qui élève une tension d'entrée (INA2)
à une tension de sortie plus élevée (INB1). Le circuit utilise un MOSFET IRF3710PBF piloté par
un optocoupleur VOM1271T, qui génère une tension pour activer le MOSFET. La fréquence
PWM est donnée à 50 kHz. Voici une explication en français avec des équations pour
dimensionner les composants clés.
fig.3

Fonctionnement général
Un convertisseur boost augmente la tension d'entrée ( V
{in} ) (INA2) pour produire une tension de sortie ( V {out} ) (INB1) plus élevée. Le MOSFET
IRF3710PBF (Q3) agit comme un interrupteur, contrôlé par un signal PWM à 50 kHz via
l'optocoupleur VOM1271T (U11). L'inductance L2 stocke l'énergie pendant la phase "ON" du
MOSFET, et la diode D1 (SS34) permet de transférer cette énergie à la sortie pendant la phase
"OFF".
INA2 : Tension d'entrée (par exemple, 3,3V si connectée à la sortie du régulateur
précédent).
INB1 : Tension de sortie (supérieure à INA2, par exemple 12V pour une application typique).
U11 (VOM1271T) : Optocoupleur photovoltaïque qui génère une tension pour piloter la grille
du MOSFET.
Q3 (IRF3710PBF) : MOSFET de puissance qui commute l'inductance.
L2 (33µH) : Inductance pour stocker l'énergie.
D1 (SS34) : Diode Schottky pour diriger le courant vers la sortie.
C21, C22 (220µF) : Condensateurs pour filtrer les tensions d'entrée et de sortie.

Dimensionnement des composants


1. Inductance L2 (33µH)
L'inductance est essentielle pour stocker l'énergie dans un convertisseur boost. La valeur de
l'inductance est choisie en fonction de la fréquence PWM ( f
{sw} = 50kHz ), de la tension d'entrée ( V {in} ), de la tension de sortie ( V
{out} ), et du courant de sortie ( I {out} ).
La formule pour calculer l'inductance minimale est :

Supposons :
( V_{in} = 3,3V ) (si connecté à la sortie du régulateur précédent).
( V_{out} = 12V ) (valeur typique pour un boost).
( \Delta IL ) : Ondulation du courant dans l'inductance (typiquement 20-40% de ( I {out} ),
disons 30% de 500mA = 150mA).
( f_{sw} = 50kHz ).
En remplaçant :

Une inductance de 33µH est largement supérieure à la valeur minimale calculée, ce qui est une
bonne pratique pour réduire l'ondulation du courant et éviter la saturation de l'inductance.
2. Résistance R19 (3,3kΩ)
La résistance R19 est connectée entre la grille et la source du MOSFET pour s'assurer qu'il
est éteint lorsque le VOM1271T ne génère pas de tension. Le VOM1271T est un
optocoupleur photovoltaïque qui génère une tension de grille ( V_{GS} ) (typiquement 5-8V)
pour activer le MOSFET. La valeur de R19 est choisie pour limiter le courant de fuite et
permettre une commutation rapide.
Le temps de décharge de la grille est donné par :

Où ( C
{iss} ) est la capacité d'entrée du MOSFET IRF3710PBF (environ 2nF d'après la datasheet).
Avec ( R
{19} = 3,3kΩ ):

À 50kHz, la période est ( T = \frac{1}{f_{sw}} = 20\mu s ). Le temps de décharge est donc


suffisamment rapide pour permettre une commutation efficace.
3. Condensateurs C21 et C22 (220µF)
C21 (220µF) : Condensateur d'entrée pour stabiliser la tension d'entrée et absorber les
transitoires.
C22 (220µF) : Condensateur de sortie pour réduire l'ondulation de la tension de sortie.
L'ondulation de tension ( \Delta V_{out} ) est donnée par :
Où ( D ) est le rapport cyclique, calculé comme :

Avec ( I{out} = 500mA ), ( C {out} = 220\mu F ), ( f_{sw} = 50kHz ):

Une ondulation de 33mV est acceptable pour la plupart des applications.


4. Résistance R17 (150Ω)
La résistance R17 limite le courant à travers la LED de l'optocoupleur VOM1271T, pilotée
par le signal GPIO2. Le courant ( I_{LED} ) est donné par :

Supposons ( V{GPIO} = 3,3V ) (logique 3,3V) et ( V {f} = 1,2V ) (tension de la LED du


VOM1271T) :

Ce courant est dans la plage typique pour activer l'optocoupleur (généralement 5-20mA).

Conclusion
Ce convertisseur boost élève la tension d'entrée (par exemple 3,3V) à une tension de sortie (par
exemple 12V) avec une fréquence PWM de 50kHz. L'inductance de 33µH est bien
dimensionnée pour limiter l'ondulation du courant, et les condensateurs de 220µF assurent une
faible ondulation de tension. Le VOM1271T pilote efficacement le MOSFET IRF3710PBF, avec
une résistance de grille de 3,3kΩ permettant une commutation rapide. La résistance R17 de
150Ω fournit un courant adéquat pour l'optocoupleur.

3- Moniteur de puissance:
Analyse du schéma : Circuit de mesure de courant et tension pour
un système PV avec MPPT
Ce schéma montre un circuit de mesure de courant et de tension utilisant deux capteurs de
courant ISL28022FUZ, connectés en amont (PV_IN, INA2) et en aval (INB1, LOAD) d'un
panneau solaire et de sa charge. Ce circuit est utilisé pour surveiller les paramètres électriques
(courant, tension, puissance) afin d'optimiser un algorithme MPPT (Maximum Power Point
Tracking) dans MATLAB. Les résistances shunt de 10 mΩ (R10 et R13) mesurent le courant, et
des filtres passe-bas (R11, R12, C14, C15 et R14, R15, C19, C20) éliminent le bruit. Voici une
explication détaillée en français avec le calcul des résistances shunt.

fig.4

Fonctionnement général
Les deux capteurs ISL28022FUZ (U6 et U9) mesurent le courant et la tension :
U6 mesure le courant et la tension en amont (côté panneau solaire, PV_IN et INA2).
U9 mesure le courant et la tension en aval (côté charge, INB1 et LOAD).
Les données mesurées (via les lignes SDA et SCL) sont envoyées à un microcontrôleur ou
un système externe (par exemple, MATLAB) pour optimiser l'algorithme MPPT.
Les résistances shunt R10 et R13 (10 mΩ) convertissent le courant en une tension
mesurable par les capteurs.
Les filtres passe-bas (R11, R12, C14, C15 pour U6 et R14, R15, C19, C20 pour U9)
réduisent le bruit haute fréquence sur les signaux mesurés.

Détails des composants et connexions


1. Capteurs ISL28022FUZ (U6 et U9)
VBUS (Broche 8) : Connectée à VBUS (5V, provenant du circuit USB précédent).
VCC (Broche 6) : Connectée à +3V3 (3,3V, provenant du régulateur précédent).
VINP (Broche 10) et VINM (Broche 9) : Entrées différentielles pour mesurer la tension
aux bornes de la résistance shunt (R10 pour U6, R13 pour U9).
SDA (Broche 5) et SCL (Broche 4) : Lignes I2C pour transmettre les données
mesurées.
A0, A1 (Broches 1, 7) : Broches d'adresse I2C (connectées à GND pour U6 et U9, mais
elles pourraient être configurées différemment pour éviter un conflit d'adresse).
EXT_CLK/INT (Broche 3) : Non utilisé ici (marqué d’un "X").
GND (Broche 2) : Masse.
2. Résistances shunt (R10, R13 : 10 mΩ)
Ces résistances mesurent le courant en convertissant le courant en une tension selon la
loi d’Ohm : ( V{shunt} = I \cdot R {shunt} ).
Elles sont placées en série avec le courant à mesurer : R10 entre PV_IN et INA2, R13
entre INB1 et LOAD.
3. Filtres passe-bas
R11, R12 (4,7 kΩ) avec C14, C15 (10 nF) : Filtre pour U6.
R14, R15 (4,7 kΩ) avec C19, C20 (10 nF) : Filtre pour U9.
Ces filtres éliminent le bruit haute fréquence sur les signaux VINP et VINM.
4. Condensateurs de découplage
C8, C9, C16, C17 (10 nF, 100 nF) : Condensateurs de découplage pour stabiliser
l’alimentation de U6 et U9.
C10, C18 (10 nF) : Condensateurs supplémentaires pour filtrer le bruit.
5. Résistances de pull-up (R8, R9 : 4,7 kΩ)
Connectées entre SDA/SCL et +3V3 pour assurer le bon fonctionnement du bus I2C.

Calcul de la résistance shunt (R10, R13 : 10 mΩ)


Les résistances shunt sont utilisées pour mesurer le courant. La tension aux bornes de la
résistance shunt est donnée par la loi d’Ohm :
L'ISL28022FUZ peut mesurer une tension différentielle maximale (full-scale range, FSR) qui
dépend de sa configuration. Typiquement, pour ce capteur, le FSR est configurable (par
exemple, ±80 mV pour une plage courante).
1. Choix de la plage de courant
Supposons que le courant maximal à mesurer (par exemple, le courant du panneau solaire
ou de la charge) est ( I{max} = 5A ). Avec ( R {shunt} = 10 mΩ ):

Une tension de 50 mV est dans la plage mesurable de l'ISL28022FUZ (par exemple, ±80
mV), ce qui est approprié.
2. Puissance dissipée dans la résistance shunt
La puissance dissipée dans la résistance shunt est donnée par :

Une résistance shunt de 10 mΩ doit donc être capable de dissiper au moins 0,25W. Une
résistance de 0,5W ou 1W est recommandée pour une marge de sécurité.
3. Précision de la mesure
La précision dépend de la résolution de l'ISL28022FUZ. Avec un FSR de ±80 mV et une
résolution de 16 bits (typique pour ce capteur), la résolution par bit est :

En termes de courant, cela correspond à :

Cela signifie que le capteur peut détecter des variations de courant aussi faibles que 0,122 mA,
ce qui est suffisant pour une application MPPT.

Analyse des filtres passe-bas


Les filtres passe-bas (R11, R12, C14, C15 et R14, R15, C19, C20) éliminent le bruit haute
fréquence. La fréquence de coupure ( f_c ) d’un filtre RC est donnée par :

Pour R11 = 4,7 kΩ et C14 = 10 nF :


La fréquence de coupure de 3,39 kHz est suffisamment basse pour filtrer le bruit haute
fréquence (par exemple, le bruit de commutation du convertisseur boost à 50 kHz), tout en
laissant passer les variations lentes du courant et de la tension du panneau solaire.

Rôle dans l’optimisation MPPT


1. Mesure en amont (U6) :
Mesure le courant du panneau solaire (via R10) et la tension PV_IN.

Permet de calculer la puissance d’entrée :


2. Mesure en aval (U9) :
Mesure le courant de la charge (via R13) et la tension INB1.

Permet de calculer la puissance de sortie :


3. Transmission des données :
Les données de courant et de tension sont transmises via I2C (SDA, SCL) à un
microcontrôleur, puis à MATLAB.
MATLAB peut utiliser ces données pour ajuster le rapport cyclique du convertisseur
boost (via GPIO2 dans le circuit précédent) afin de maximiser la puissance extraite du
panneau solaire (MPPT).

Conclusion
Ce circuit utilise deux capteurs ISL28022FUZ pour mesurer le courant et la tension en amont et
en aval d’un système PV. Les résistances shunt de 10 mΩ sont bien dimensionnées pour
mesurer un courant maximal de 5A, avec une dissipation de puissance de 0,25W et une
résolution de 0,122 mA. Les filtres passe-bas (fréquence de coupure de 3,39 kHz) éliminent
efficacement le bruit, et les données mesurées sont transmises via I2C pour une optimisation
MPPT dans MATLAB. Ce système est idéal pour surveiller et optimiser les performances d’un
panneau solaire.

3- Interface RTD:
Analyse du schéma : Mesure de température avec une RTD 4 fils et
ADS1115
Ce schéma montre un circuit de mesure de température utilisant une RTD (Resistance
Temperature Detector) à 4 fils connectée à un convertisseur analogique-numérique (ADC)
ADS1115DGSR. Une source de courant de 1 mA est utilisée pour exciter la RTD, et l'ADS1115
est configuré pour mesurer la tension différentielle entre les broches AIN0 et AIN1. Voici une
description détaillée en français avec les calculs nécessaires.
fig.5

Fonctionnement général
1. RTD 4 fils :
Une RTD 4 fils est utilisée pour mesurer la température avec une grande précision. Les
4 fils éliminent les erreurs dues à la résistance des câbles :
Deux fils (connectés à 1 mA et GND) fournissent le courant d'excitation.
Deux fils (connectés à AIN0 et AIN1) mesurent la tension aux bornes de la RTD.
La résistance de la RTD varie avec la température. Par exemple, une RTD PT100 a une
résistance de 100 Ω à 0°C et augmente d’environ 0,385 Ω/°C.
2. Source de courant (1 mA) :
Une source de courant constante de 1 mA est appliquée à la RTD pour générer une

tension proportionnelle à sa résistance, selon la loi d’Ohm :


3. ADS1115DGSR (U12) :
L’ADS1115 est un ADC 16 bits avec 4 entrées analogiques configurables.
Configuration différentielle : AIN0 et AIN1 mesurent la tension aux bornes de la RTD.
VDD (Broche 10) : Alimenté par +3V3.
SDA (Broche 9) et SCL (Broche 8) : Lignes I2C pour transmettre les données
mesurées.
ADDR (Broche 1) : Connectée à GND, définissant l’adresse I2C de l’ADS1115 (0x48
par défaut).
ALERT/RDY (Broche 2) : Non utilisé ici (marqué d’un "X").
AIN2, AIN3 (Broches 5, 6) : Non utilisées (marquées d’un "X").
C23, C24 (10 nF, 100 nF) : Condensateurs de découplage pour stabiliser l’alimentation.
4. Circuit de référence (U10, TL431) :
Le TL431 (U10) est un régulateur de tension de référence ajustable, configuré pour
fournir une tension de référence stable.
R16 (330 Ω) et R18 (2,5 kΩ) : Définissent la tension de sortie du TL431.
La tension de référence du TL431 est typiquement 2,5 V, mais elle peut être ajustée par
le diviseur de tension formé par R16 et R18.

Calculs
1. Tension aux bornes de la RTD
La RTD est excitée par un courant constant de 1 mA. La tension ( V_{RTD} ) est donnée par
la loi d’Ohm :

Supposons une RTD PT100 :

Pour ( I = 1 mA = 0,001 A ) :

La tension mesurée varie donc entre 100 mV et 138,5 mV pour une plage de température
de 0°C à 100°C.
2. Configuration de l’ADS1115
L’ADS1115 est configuré en mode différentiel entre AIN0 et AIN1. La plage de mesure (Full-
Scale Range, FSR) dépend du gain programmé. Supposons un gain de ±256 mV (typique
pour cette application) :
FSR = ±256 mV.

Résolution sur 16 bits :


La tension mesurée (100 mV à 138,5 mV) est bien dans la plage de ±256 mV, ce qui est
approprié.
La résolution en termes de résistance est :

En termes de température (pour une PT100, 0,385 Ω/°C) :


Cela signifie que l’ADS1115 peut détecter des variations de température aussi faibles que
0,01°C, ce qui est excellent pour une application de mesure de température.
3. Tension de référence (TL431, U10)
Le TL431 est configuré pour fournir une tension de référence stable. La tension de sortie ( V
{ref} ) est donnée par :

Où ( V {TL431} = 2,5 V ) (tension de référence


interne du TL431), ( R16 = 330 \Omega ), et ( R18 = 2,5 k\Omega ).

Cette tension de 2,83 V est proche de +3V3, mais elle est utilisée ici comme une référence
stable pour le circuit. Cependant, dans ce schéma, elle semble connectée à 1 mA, ce qui
pourrait indiquer que le TL431 est utilisé pour stabiliser la source de courant de 1 mA.
4. Source de courant de 1 mA
Si le TL431 est utilisé pour générer le courant de 1 mA, le courant est déterminé par la
tension aux bornes de R16 :

La tension ( V{R16} ) est la différence entre +3V3 et ( V {ref} ) :

Ce courant est légèrement supérieur à 1 mA, ce qui pourrait nécessiter un ajustement de R16
pour obtenir exactement 1 mA. Par exemple, pour ( I = 1 mA ):

Une résistance de 470 Ω pour R16 donnerait un courant plus proche de 1 mA.

Conclusion
Ce circuit utilise une RTD 4 fils pour mesurer la température avec une grande précision. La
source de courant de 1 mA génère une tension de 100 mV à 138,5 mV pour une plage de 0°C à
100°C (pour une PT100). L’ADS1115, configuré en mode différentiel entre AIN0 et AIN1, mesure
cette tension avec une résolution de 0,01°C. Le TL431 (U10) fournit une tension de référence
de 2,83 V, mais R16 pourrait être ajustée à 470 Ω pour obtenir exactement 1 mA. Les données
mesurées sont transmises via I2C (SDA, SCL) pour un traitement ultérieur, par exemple dans
MATLAB, pour des applications comme le contrôle de température dans un système PV.
3- Capteur de rayonnement globale:
Conception d’un capteur de rayonnement global avec une cellule
solaire et l’INA219
Cette section vise à concevoir un capteur de rayonnement global (irradiance solaire) en utilisant
une cellule solaire de dimensions 60 mm x 40 mm, avec ( V{mp} = 0,5 , \text{V} ) et ( I {mp} =
400 , \text{mA} ), et un capteur de courant/puissance INA219. L’objectif est de mesurer
l’irradiance solaire (en ( \text{W/m}^2 )) en se basant sur le courant de court-circuit ( I_{sc} ) de
la cellule solaire, qui est proportionnel à l’irradiance. Voici une explication détaillée en français,
avec les calculs nécessaires pour dimensionner les composants et concevoir le circuit.

Principe de fonctionnement
1. Cellule solaire comme capteur d’irradiance :
Une cellule solaire génère un courant de court-circuit ( I_{sc} ) qui est directement
proportionnel à l’irradiance solaire ( G ) (en ( \text{W/m}^2 )). La relation est donnée par :

où ( k ) est une constante de proportionnalité (en ( \text{A}/(\text{W/m}^2) )), dépendant


des caractéristiques de la cellule.
La cellule fournie a ( V{mp} = 0,5 , \text{V} ) et ( I{mp} = 400 , \text{mA} ). En général, ( I
{mp} ) est environ 80 à 90 % de ( I {sc} ), et ( V{mp} ) est environ 70 à 80 % de ( V {oc} )
(tension en circuit ouvert). Estimons donc :

2. Rôle de l’INA219 :
L’INA219 est un capteur de courant et de tension qui mesure la tension aux bornes
d’une résistance shunt (( V{shunt} )) et calcule le courant via la loi d’Ohm : ( I = V {shunt}
/ R_{shunt} ).
Pour mesurer ( I
{sc} ), la cellule solaire est mise en court-circuit à travers la résistance shunt de
l’INA219. La tension mesurée ( V
{shunt} ) permet de calculer ( I_{sc} ), et donc l’irradiance.
3. Objectif :
Mesurer ( I_{sc} ) avec l’INA219.
Calibrer le capteur pour convertir ( I_{sc} ) en irradiance ( G ).
Dimensionnement des composants
1. Résistance shunt de l’INA219
L’INA219 standard est équipé d’une résistance shunt de ( R
{shunt} = 0,1 , \Omega ). Cependant, nous devons vérifier si cette valeur convient pour
mesurer ( I
{sc} \approx 470 , \text{mA} ).
La tension aux bornes de la résistance shunt est donnée par :

L’INA219 peut mesurer une tension shunt maximale configurable (40 mV, 80 mV, 160
mV, ou 320 mV). La plage minimale supérieure à 47 mV est 80 mV, ce qui est adapté.
Cependant, pour une meilleure résolution, nous pouvons ajuster ( R
{shunt} ) pour que ( V {shunt} ) soit plus proche de la plage de 40 mV (la plus sensible).
Si nous ciblons ( V{shunt} = 40 , \text{mV} ) pour ( I {sc} = 470 , \text{mA} ) :

Une résistance shunt de 0,085 Ω est proche de la valeur standard de 0,1 Ω, mais pour
simplifier, nous pouvons conserver ( R_{shunt} = 0,1 , \Omega ), car 47 mV est
acceptable dans la plage de 80 mV.
Résolution de la mesure :
Avec ( R_{shunt} = 0,1 , \Omega ), la résolution de l’INA219 est déterminée par la plus
petite tension mesurable (LSB de l’ADC, typiquement 10 µV pour la plage de 40 mV) :

Cette résolution est excellente pour notre application.


2. Puissance dissipée dans la résistance shunt
La puissance dissipée dans la résistance shunt est :

La résistance shunt standard de l’INA219 (0,1 Ω, 2 W) peut facilement supporter cette


puissance.
3. Impact de la résistance shunt sur la mesure
En court-circuit, la tension aux bornes de la cellule est ( V
{shunt} = 47 , \text{mV} ), ce qui est très faible par rapport à ( V {oc} \approx 0,67 ,
\text{V} ). Cela garantit que la cellule est bien en condition de court-circuit, et la mesure
de ( I_{sc} ) est précise.

Calibration de l’irradiance
1. Relation entre ( I_{sc} ) et l’irradiance
L’irradiance standard sous STC (Standard Test Conditions) est ( G
{STC} = 1000 , \text{W/m}^2 ). Supposons que ( I {sc} = 470 , \text{mA} ) correspond à (
G_{STC} ).
La constante ( k ) est donc :

L’irradiance ( G ) peut alors être calculée à partir de ( I


{sc} ) mesuré par l’INA219 :

Où ( I {sc} ) est en ampères.


2. Surface de la cellule
La surface de la cellule est ( 60 , \text{mm} \times 40 , \text{mm} = 0,06 , \text{m} \times
0,04 , \text{m} = 0,0024 , \text{m}^2 ).
La puissance maximale de la cellule à ( G_{STC} = 1000 , \text{W/m}^2 ) est :

L’irradiance réelle mesurée par la cellule est cohérente avec sa petite taille, mais la
constante ( k ) est ajustée en fonction de ( I_{sc} ), pas de la surface.

Configuration de l’INA219
1. Connexion de la cellule solaire :
Connectez la borne positive de la cellule solaire à VIN+ de l’INA219.
Connectez la borne négative de la cellule solaire à VIN- de l’INA219.
Cela place la cellule en court-circuit à travers la résistance shunt de l’INA219,
permettant de mesurer ( I_{sc} ).
2. Alimentation de l’INA219 :
Alimentez l’INA219 avec +3V3 (VCC) et GND, provenant par exemple d’un
microcontrôleur comme un Arduino.
Connectez les lignes SDA et SCL à un microcontrôleur via I2C (avec des résistances de
pull-up de 4,7 kΩ si nécessaire).
3. Configuration de l’INA219 :
Configurez l’INA219 pour une plage de mesure de shunt de 80 mV (gain de 2, car (
V_{shunt} = 47 , \text{mV} )).
La plage de tension de bus peut être réglée à 16 V pour une meilleure résolution, bien
que la tension mesurée soit proche de 0 V en court-circuit.

Conclusion
Ce capteur de rayonnement global utilise une cellule solaire de 60 mm x 40 mm avec ( V
{mp} = 0,5 , \text{V} ) et ( I {mp} = 400 , \text{mA} ), et un INA219 pour mesurer ( I
{sc} ). La résistance shunt de 0,1 Ω est adaptée, générant une tension de 47 mV pour ( I {sc}
\approx 470 , \text{mA} ), mesurable avec une résolution de 0,1 mA. L’irradiance est calculée à
partir de ( I_{sc} ) avec une constante de calibration ( k = 0,00047 , \text{A}/(\text{W/m}^2) ),
permettant une mesure précise de l’irradiance solaire. Ce système est compact, économique et
idéal pour des applications de monitoring solaire.

3- schéma globale de l'interface d'aquisition:


Divers/MPPT_SOURCE/MPPT/[Link]

4- Firmware pour la gestion des interfaces avec SCPI over


Ethernet dans un système de mesure pour l’optimisation
MPPT
Introduction
Dans le cadre de cette thèse, un système de mesure avancé a été conçu pour surveiller et
optimiser les performances d’un panneau solaire via un algorithme MPPT (Maximum Power
Point Tracking). Le système intègre plusieurs interfaces matérielles, notamment un
convertisseur USB-to-UART (CH340K), un régulateur de tension (SY8079AAC), un
convertisseur boost (avec VOM1271T et IRF3710PBF), des capteurs de courant et de tension
(ISL28022), un capteur de température (ADS1115), et un capteur de rayonnement global. Ces
interfaces sont gérées par un firmware qui acquiert des données à une fréquence de 1 kHz et
implémente le protocole SCPI (Standard Commands for Programmable Instruments) over
Ethernet pour la communication avec un système externe (par exemple, MATLAB). Cette
section analyse la conception du firmware, évalue la pertinence de l’implémentation SCPI over
Ethernet, et propose des recommandations pour répondre aux exigences de l’application.

1. Architecture du système et exigences du firmware


Le système est conçu pour mesurer en temps réel les paramètres clés d’un panneau solaire
(courant, tension, température, et rayonnement global) afin d’optimiser l’extraction de puissance
via un algorithme MPPT. Les principales exigences du firmware sont les suivantes :
1. Acquisition des données : Les capteurs doivent être interrogés à une fréquence de 1 kHz,
soit une période d’échantillonnage de 1 ms.
2. Communication : Les données mesurées doivent être transmises à un système externe
pour traitement (par exemple, MATLAB) via une interface Ethernet utilisant le protocole
SCPI.
3. Synchronisation : Les acquisitions doivent être synchronisées pour garantir la cohérence
des données entre les capteurs.
4. Fiabilité : Le firmware doit gérer les erreurs potentielles (par exemple, défaillances I2C,
déconnexion Ethernet) et assurer une communication robuste.
Le microcontrôleur choisi (par exemple, un ESP32) est équipé d’une interface I2C pour
communiquer avec les capteurs (ISL28022, ADS1115, INA219) et d’une interface Ethernet pour
implémenter SCPI over Ethernet. La fréquence d’acquisition de 1 kHz impose des contraintes
strictes sur le temps de traitement et la bande passante des interfaces.

2. Analyse de l’implémentation SCPI over Ethernet


SCPI est un protocole standardisé largement utilisé pour le contrôle d’instruments de mesure.
Dans ce système, SCPI over Ethernet est implémenté via une connexion TCP/IP (port 5025),
permettant un contrôle à distance et une acquisition de données en temps réel.
2.1. Volume de données généré
Pour évaluer la faisabilité de SCPI over Ethernet, calculons le volume de données généré par
les capteurs à 1 kHz :
ISL28022 (U6 et U9) : Chaque capteur mesure le courant et la tension (2 valeurs par
capteur). En format SCPI (ASCII), une valeur (par exemple, "12.345" ) occupe environ 6
octets. Pour 2 capteurs : ( 2 \times 2 \times 6 = 24 , \text{octets par échantillon} ). À 1 kHz : (
24 \times 1000 = 24 , \text{ko/s} ).
ADS1115 (température) : Une valeur (par exemple, "23.456" ) ≈ 6 octets. À 1 kHz : ( 6
\times 1000 = 6 , \text{ko/s} ).
INA219 (rayonnement) : Une valeur (par exemple, "1000.12" ) ≈ 7 octets. À 1 kHz : ( 7
\times 1000 = 7 , \text{ko/s} ).
Total : ( 24 + 6 + 7 = 37 , \text{ko/s} ), soit ( 37 \times 8 = 296 , \text{kbps} ).
Une connexion Ethernet 100 Mbps offre une bande passante de ( 100 \times 10^6 = 100 ,
\text{Mbps} ). La charge de 296 kbps représente seulement ( 296 / 100000 = 0,296% ) de la
bande passante, ce qui est négligeable. En termes de bande passante, SCPI over Ethernet est
donc largement suffisant.
2.2. Contraintes de latence et de traitement
Bien que la bande passante soit suffisante, SCPI over Ethernet introduit des latences dues à :
Pile TCP/IP : La latence typique d’une transmission TCP/IP est de l’ordre de 1 à 10 ms, ce
qui peut poser problème pour une acquisition à 1 kHz (période de 1 ms).
Traitement des commandes SCPI : Chaque commande SCPI (par exemple,
:MEASure:CURRent? ) et sa réponse (par exemple, "12.345\n" ) nécessitent un traitement
ASCII, ce qui est plus lent qu’un protocole binaire.
Surcharge des messages : Si chaque échantillon est envoyé individuellement via une
commande SCPI, cela génère une surcharge importante (par exemple, 1000 commandes
par seconde).
Pour pallier ces limitations, il est recommandé de bufferiser les données (par exemple, 100
échantillons) et de les envoyer en un seul message SCPI (par exemple, :DATA:CURRent?
renvoyant une liste de valeurs). Cela réduit la surcharge à ( 1000 / 100 = 10 , \text{commandes
par seconde} ), ce qui est plus gérable.
2.3. Synchronisation
SCPI n’est pas conçu pour une synchronisation stricte des acquisitions. À 1 kHz, les
échantillons doivent être synchronisés pour garantir la cohérence des données (par exemple,
entre le courant et la tension pour calculer la puissance). Cela nécessite une synchronisation
logicielle dans le firmware, par exemple en utilisant un timer hardware pour déclencher les
lectures à intervalles réguliers de 1 ms.

3. Analyse des contraintes d’acquisition à 1 kHz


3.1. Capacité des capteurs
ISL28022 : La fréquence d’échantillonnage maximale dépend de la vitesse du bus I2C (400
kHz). Une lecture typique (lecture de registre + conversion) prend environ 1-2 ms. À 1 kHz
(période de 1 ms), cela est limite, mais faisable en optimisant les lectures (par exemple, en
utilisant le mode rapide I2C ou en réduisant les lectures redondantes).
ADS1115 : L’ADS1115 a un taux d’échantillonnage maximal de 860 SPS (samples per
second) en mode 16 bits. À 1 kHz, il ne peut pas suivre. Une solution consiste à réduire la
fréquence d’acquisition pour ce capteur (par exemple, 500 Hz) ou à utiliser un mode de
résolution plus faible (par exemple, 12 bits, qui permet 3300 SPS).
INA219 : L’INA219 peut échantillonner à des fréquences supérieures à 1 kHz (typiquement
3,4 kHz en mode rapide), ce qui est compatible avec l’exigence.

3.2. Bus I2C


Tous les capteurs communiquent via I2C. À 400 kHz, le bus I2C a une bande passante
théorique de ( 400 \times 10^3 / 8 = 50 , \text{ko/s} ). Avec les surcoûts (adresses, ACK, etc.), la
bande passante effective est d’environ 30-40 ko/s. Le volume de données brutes (par exemple,
2 octets par mesure) est plus faible que celui envoyé via Ethernet, mais le bus I2C peut devenir
un goulot d’étranglement si les lectures ne sont pas optimisées. Une solution consiste à utiliser
un bus I2C rapide (1 MHz, si supporté par tous les capteurs) et à séquencer les lectures de
manière efficace.
3.3. Microcontrôleur
Le microcontrôleur (par exemple, un ESP32 à 240 MHz) doit lire les capteurs, traiter les
données, et gérer la communication SCPI over Ethernet. À 1 kHz, chaque cycle prend 1 ms,
soit ( 240 \times 10^6 \times 0,001 = 240000 , \text{cycles par échantillon} ). Cela est largement
suffisant pour les lectures I2C, le traitement, et l’envoi des données, à condition que le firmware
soit bien optimisé.

4. Évaluation de la suffisance de SCPI over Ethernet


L’implémentation de SCPI over Ethernet est suffisante pour répondre aux besoins de
l’application, mais elle présente des limitations qui nécessitent des ajustements :
1. Bande passante et latence : La bande passante Ethernet est largement suffisante (296
kbps contre 100 Mbps), mais la latence TCP/IP et le traitement des commandes SCPI
peuvent introduire des délais. Une transmission en mode streaming (bufferisation des
données) est recommandée pour réduire la surcharge.
2. Synchronisation : SCPI n’offre pas de mécanisme natif pour une synchronisation stricte à
1 kHz. Une synchronisation logicielle via un timer hardware est nécessaire.
3. Fréquence d’acquisition : L’ADS1115 est limité à 860 SPS, ce qui est inférieur à 1 kHz.
Une réduction de sa fréquence d’acquisition (par exemple, 500 Hz) ou le remplacement par
un ADC plus rapide (par exemple, ADS1015) est requis.

5. Structure proposée du firmware


Pour répondre aux exigences, le firmware est structuré comme suit :
1. Initialisation :
Configuration des capteurs I2C (ISL28022, ADS1115, INA219) avec leurs adresses et
paramètres (gain, fréquence d’échantillonnage).
Initialisation de la pile TCP/IP et du serveur SCPI over Ethernet (port 5025).
Configuration d’un timer hardware pour déclencher une interruption toutes les 1 ms (1
kHz).
2. Acquisition des données :
Une interruption timer déclenche la lecture des capteurs :
ISL28022 (U6 et U9) pour le courant et la tension.
INA219 pour l’irradiance.
ADS1115 pour la température (à une fréquence réduite, par exemple 500 Hz).
Les données sont stockées dans un buffer circulaire (par exemple, 100 échantillons).
3. Communication SCPI :
Implémentation de commandes SCPI pour :
Configurer les capteurs (par exemple, :CONF:CURR:GAIN 80mV ).
Lire des données en temps réel (par exemple, :MEAS:CURR? ).
Activer/désactiver le streaming (par exemple, :DATA:STREAM:START ).
Les données bufferisées sont envoyées en un seul message SCPI pour réduire la
surcharge.
4. Gestion des erreurs :
Détection des erreurs (timeout I2C, déconnexion Ethernet).
Commande SCPI pour vérifier l’état du système (par exemple, :SYST:ERR? ).
Exemple implementation du protocole SCPI over ethernet:
Le code fourni utilise uasyncio, une bibliothèque asynchrone de MicroPython, pour gérer les
communications réseau de manière non bloquante. L’ESP32, un microcontrôleur dual-core, est
utilisé comme plateforme matérielle, et les capteurs comme l’ISL28022 supportent des
fréquences I2C élevées, ce qui offre des opportunités d’optimisation.
uasyncio permet de gérer plusieurs clients SCPI simultanément sans bloquer l’exécution du
programme. Par exemple, pendant qu’un client envoie une commande, le microcontrôleur peut
continuer à acquérir des données des capteurs via I2C.
Dans le code, await [Link](1) et await [Link]() suspendent l’exécution de
handle_client() sans bloquer les autres tâches, ce qui est crucial pour maintenir une fréquence
d’acquisition de 1 kHz.

import uasyncio as asyncio


import network
import urandom
from machine import soft_reset
import gc

[Link]()
# Simulated device data
DEVICE_ID = "PICOLAB DC POWERMON v1.2A"
TCP_PORT = 5025 # Common SCPI port (adjust as needed)

async def parse_scpi_command(cmd):


"""Parse and respond to SCPI commands"""
cmd = [Link]().upper()
if cmd == "*IDN?":
return DEVICE_ID
elif cmd == "MEAS:VOLT?":
voltage = 3.00 + ([Link]() * 0.2) # Simulated voltage
return "{:.3f}".format(voltage)
elif cmd == "SYST:ERR?":
return "0,No Error"
elif cmd == "*RST":
soft_reset()
else:
return "ERROR: Unknown command"

async def handle_client(reader, writer):


"""Handles communication with a connected SCPI client."""
print("Client connected")
buffer = bytearray()
try:
while True:
data = await [Link](1) # Read one byte at a time
if not data:
break # Client disconnected
if data in (b'\r', b'\n') and buffer:
cmd = [Link]().strip()
response = await parse_scpi_command(cmd)
[Link](f"{response}\r\n".encode())
await [Link]()
buffer = bytearray()
else:
[Link](data)
except Exception as e:
print(f"ERROR: {str(e)}")
print("Client disconnected")
await writer.wait_closed()

async def scpi_server():


"""Asynchronous SCPI server using uasyncio."""
print(f"SCPI Server running on TCP port {TCP_PORT}...")
print("Available commands: *IDN?, MEAS:VOLT?, SYST:ERR?, *RST")
server = await asyncio.start_server(handle_client, "", TCP_PORT)
while True:
await [Link](1) # Keep the server running

# Start the server


try:
[Link](scpi_server())
except KeyboardInterrupt:
print("Server stopped")

6. Recommandations pour l’optimisation


1. Mode de transmission : Implémenter un mode de streaming SCPI pour réduire la
surcharge des commandes. Par exemple, bufferiser 100 échantillons et les envoyer en un
seul message réduit la fréquence des commandes à 10 par seconde.
2. Protocole alternatif : Si SCPI over Ethernet est trop lent pour une acquisition en temps
réel, un protocole binaire plus léger (par exemple, MQTT ou UDP) peut être utilisé pour
transmettre les données brutes, tout en conservant SCPI pour le contrôle.
3. Optimisation I2C : Utiliser un bus I2C rapide (1 MHz) et séquencer les lectures pour
minimiser les délais.
4. Synchronisation : Utiliser un timer hardware pour déclencher les acquisitions à 1 kHz,
garantissant la cohérence des données.
5. Remplacement de l’ADS1115 : Si une fréquence de 1 kHz est strictement requise pour la
température, remplacer l’ADS1115 par un ADC plus rapide (par exemple, ADS1015 en
mode 12 bits, qui supporte 3300 SPS).

7. Conclusion
L’implémentation de SCPI over Ethernet est une solution viable pour gérer les interfaces et
transmettre les données à 1 kHz dans ce système de mesure pour l’optimisation MPPT.
Cependant, des ajustements sont nécessaires pour surmonter les limitations de latence, de
synchronisation, et de fréquence d’acquisition (notamment pour l’ADS1115). En adoptant un
mode de streaming, une synchronisation logicielle, et une optimisation du bus I2C, le firmware
peut répondre efficacement aux exigences de l’application. Cette analyse met en évidence
l’importance d’une conception firmware équilibrée pour les systèmes embarqués dans des
applications de mesure en temps réel, et elle fournit une base solide pour des travaux futurs
dans l’optimisation des systèmes photovoltaïques.

Vous aimerez peut-être aussi