Prévision du Rayonnement Solaire
Prévision du Rayonnement Solaire
Elguamouz ABDERRAHMANE
Spécialité :
Génie Electrique & Contrôle Industriel
Présenté par :
ELGUAMOUZ Abderrahmane
Soutenu publiquement le 21 Juillet 2020 devant les membres de jury :
Mohammedia)
Pr. SAYOUTI Yassine ; Examinateur (Faculté des Sciences et Techniques
Mohammedia)
Dédicace
Toutes les lettres ne sauraient trouver les mots qu’il faut. Tous
les mots ne sauraient exprimer la gratitude, l’amour et le respect
que je vous dois… Aussi, je dédie ce projet de fin d’études …
À toute ma famille
Merci d’être à mes côtés, votre soutien et vos encouragements ont était
sources inépuisables et force qui m’a permis d’aller de l’avant.
I
Remerciements
Avant de commencer la présentation de ce travail, il m’est particulièrement
agréable d’exprimer ma profonde gratitude et mes sincères remerciements à tous
ceux qui, par leurs enseignements et leurs conseils, m’ont aidé pour la réalisation de
ce projet de fin d’études. Puissent ces lignes être l’expression de notre profonde
reconnaissance.
II
Résume
III
Table des matières
Remerciements..................................................................................................................... II
Résume................................................................................................................................ III
Liste des figures .................................................................................................................VII
Introduction ........................................................................................................................... 1
Chapitre I : Présentation de l’entreprise ............................................................................... 2
I.1 Présentation de l’entreprise ......................................................................................... 3
I.2 Mission de l'institut ..................................................................................................... 3
I.3 Les grands projets pilotes d’IRESEN .......................................................................... 3
I.4 Présentation de la plateforme : .................................................................................... 4
I.5 Les grands projets pilotes de la plateforme ................................................................. 5
I.6 Contexte générale du projet de stage ........................................................................... 6
Chapitre II : Le rayonnement & Gisement solaire ............................................................... 7
II.1 Introduction ................................................................................................................ 8
II.2 Le rayonnement solaire .............................................................................................. 8
II.2.2 Extinction atmosphérique du rayonnement solaire ............................................. 9
II.3 Les composantes du rayonnement solaire ................................................................ 10
II.3.1 Rayonnement solaire direct ............................................................................... 10
II.3.2 Rayonnement diffus .......................................................................................... 11
II.3.3 Rayonnement global.......................................................................................... 11
II.3.4 La fraction d’irradiation .................................................................................... 12
II.4 Mesure du rayonnement solaire ............................................................................... 12
II.4.1 Pyranomètre à thermopile ................................................................................. 12
II.4.2 Pyrhéliomètre .................................................................................................... 13
II.4.3 Pyranomètre ombragé ....................................................................................... 13
II.4.4 Site d’étude : IRESEN ...................................................................................... 13
II.5 Le gisement solaire marocain................................................................................... 13
II.5.1 Gisement solaire au Maroc ............................................................................... 14
II.5.2 Le développement de l'énergie solaire au Maroc .............................................. 14
II.6 Conclusion................................................................................................................ 14
Chapitre III : Etat de l’art de prévision du rayonnement solaire ........................................ 15
Introduction ................................................................................................................. 16
III.1 Quesque qu'une prévision ? .................................................................................... 18
III.2 Les méthodes de prévision des énergies renouvelables .......................................... 18
III.2.1 Persistance ....................................................................................................... 18
III.2.2 les modèles non linéaires ................................................................................. 19
IV
III.2.3 Les modèles de prévision numériques PNT .................................................... 20
III.2.4 Les modèles de séries chronologiques ............................................................. 21
Conclusion ...................................................................................................................... 22
Chapitre IV : Aspect théorique des séries temporelles ....................................................... 23
Introduction ..................................................................................................................... 24
IV.1 Généralité sur les séries temporelles ...................................................................... 24
IV.1.1 Définition de série temporelle ......................................................................... 24
IV.1.2 Objectifs principaux ........................................................................................ 24
IV.1.3 Caractéristiques d’une série temporelle ........................................................... 25
IV.1.4 Les étapes de traitement d’une série chronologique :.......................................... 26
IV.2 Analyse d’une série temporelle .............................................................................. 27
IV.2.1 Les opérateurs linéaires de retard, d'avance et de différenciation ................... 27
IV.2.2 Les effets des opérateurs.................................................................................. 27
IV.2.3 Modélisation des séries temporelle.................................................................. 28
Chapitre V : Méthodes de prévision ................................................................................... 31
Introduction ..................................................................................................................... 32
V.1 Ce qui caractérise un problème de prévision ........................................................... 32
V.2 Méthodes de prévision ............................................................................................. 32
V.3 Critère de validité de la méthode de prévision......................................................... 33
V.4 Régression linéaire ................................................................................................... 33
V.4.1 Principe de la régression linéaire ...................................................................... 33
V.4.2 Significativité de la régression .......................................................................... 34
V.5 Régression non linéaire ............................................................................................ 34
V.5 Construction du modèle de prévision SARIMA ...................................................... 34
V.5.2 Démarche adoptée pour la construction d’un modèle ARMA Saisonnier ........ 35
V.5.3 Identification automatique des ordres ............................................................... 36
Chapitre VI : Application ................................................................................................... 38
Introduction ..................................................................................................................... 39
VI.1 Objectifs principaux ............................................................................................... 39
VI.2 Le langage de programmation Python .................................................................... 40
VI.2.1 Définition du langage ...................................................................................... 40
VI.2.2 Justification du choix du langage .................................................................... 41
VI.2.3 Bibliothèques utilisés ....................................................................................... 41
VI.3 Présentation de l’interface application ................................................................... 42
VI.3.1 L’interface mère : ............................................................................................ 42
VI.3.2 L’interface gestion des utilisateurs .................................................................. 43
V
VI.3.3 Interface de prévision ...................................................................................... 45
VI.4 Prévision de la future d’une série temporelle ......................................................... 46
VI.4.1 Première étape : test de stationnarité ............................................................... 46
VI.4.2 Deuxième étape : détermination du degré de la moyenne mobile ................... 46
VI.4.3 Troisième étape : détermination du degré de régression ................................. 48
VI.4.5 Dernière étape : Prévision................................................................................ 49
Conclusion générale ............................................................................................................ 50
Bibliographie ...................................................................... Error! Bookmark not defined.
Annex .................................................................................................................................. 52
Code de programme de prevision ................................................................................... 52
Code de l’interface Mère : .............................................. Error! Bookmark not defined.
Code de l’interface de prévision : ................................... Error! Bookmark not defined.
Code de l’interface de gestion des utilisateurs : ............. Error! Bookmark not defined.
Les fonctions de l’interface mère : ................................................................................. 54
VI
Liste des figures
Figure 1A gauche : liste des fondateurs d’IRESEN et à droite environnement
d’IRESEN................................................................................................................................... 3
Figure 2 Vue en 3D de la plateforme d’IRESEN ................................................................. 4
Figure 3 La répartition spectrale du rayonnement ............................................................... 9
Figure 4 Interaction entre le rayonnement solaire et l’atmosphère terrestre dans
l’atmosphère (les chiffres sont des pourcentages ..................................................................... 10
Figure 5 Les différents types du rayonnement solaire. ...................................................... 10
Figure 6 Eclairement solaire d'un capteur plan horizontal. ............................................... 11
Figure 7 Pyranomètre à thermopile ................................................................................... 12
Figure 8 Pyrhéliomètre ...................................................................................................... 13
Figure 9 Pyranomètre à bille (gauche), Pyranomètre à bande (droite) .............................. 13
Figure 10 La carte mentale des modèles de prévision solaire ........................................... 17
Figure 11 Modèle de persistance appliqué directement au GHI pour une journée ciel
clair. .......................................................................................................................................... 18
Figure 12 ANN multicouche capable de cartographier ..................................................... 19
Figure 13 Méthode k-NN ................................................................................................... 19
Figure 14 Simulation de l'atmosphère terrestre à partir du modèle NWP ......................... 21
Figure 15 Classification du modèle de prévision basée sur la résolution spatiale des
données d'entrée et la résolution temporelle ............................................................................ 22
Figure 16 Algorithme de prevision ..................................................................................... 37
Figure 17 Interface mère de l'application .......................................................................... 39
Figure 18 logo du langage python ...................................................................................... 41
Figure 19 identification des composant de l'interface mère ............................................... 43
Figure 20 interface de gestion des utilisateurs .................................................................... 44
Figure 21 interface pour remplir la fiche d'identité ............................................................ 44
Figure 22 interface de prévisions ........................................................................................ 45
Figure 23 graphe d'autocorrélation ..................................................................................... 47
Figure 24 graphe d'autocorrélation après élimination de la saisonnalité ............................ 48
Figure 25 graphe d'autocorrélation partielle ....................................................................... 48
Figure 26 représentation de la prévisions d'une journée ..................................................... 49
VII
Introduction
L'intégration d'une grande quantité de centrales photovoltaïques (PV) dans le
réseau électrique pose des défis techniques en raison de la nature variable de la
ressource solaire. En raison du taux de croissance exponentiel enregistré récemment
dans le domaine des énergies renouvelables, il est de plus en plus nécessaire de
modéliser, de prévoir et d'anticiper avec plus de précision l'irradiation solaire. La
prévision de la production photovoltaïque est particulièrement utile pour les
gestionnaires de réseaux afin de mieux prendre en compte la production variable
d'électricité dans leur programmation, leur répartition et leur régulation. Les
horizons de prévision pertinents peuvent aller de 5 minutes à plusieurs jours.
Les mesures solaires les plus courantes enregistrées par les stations
météorologiques correspondent à l'irradiation totale sur une surface horizontale,
appelée irradiation horizontale globale ou GHI. Ce paramètre est nécessaire pour la
conception des applications photovoltaïques.
Selon l'horizon de prévision, différentes données d'entrée et différents modèles
de prévision sont appropriés. Les modèles de séries chronologiques avec des
données d'irradiation ou de puissance mesurées sur site comme entrée sont adéquats
pour l'échelle de temps à très court terme allant de 5 minutes à 6 heures. Les
prévisions basées sur les vecteurs de mouvement des nuages à partir d'images
satellite montrent une bonne performance pour une plage temporelle de 30 min à 6
h. Pour les horizons de prévision à partir de 6 h environ, les prévisions basées sur
les modèles de prévision numérique du temps (PNT) dépassent généralement les
prévisions basées sur les satellites.
Les modèles de prévision pour la GHI sont divisés en deux groupes principaux.
Le premier groupe est basé sur l'analyse des séries chronologiques historiques de
l'irradiation globale. Le second groupe utilise les valeurs prévues à partir d'un
modèle de prévision numérique du temps (PNT) et de l'imagerie des nuages. Les
méthodes hybrides peuvent améliorer certains aspects de toutes ces méthodes. Les
modèles du premier groupe utilisent l'approche statistique pour prévoir l'irradiation
solaire horaire moyenne. Les modèles du second groupe utilisent des variables
explicatives (principalement le mouvement et la direction moyenne horaire des
nuages dérivés de l'atmosphère) pour prédire l'irradiation globale N- pas à l'avance.
Les modèles du second groupe fournissent de bons résultats pour l'estimation de
l'irradiation solaire à plus d'un jour d'avance. Cependant, pour l'horizon à court terme
(allant de 1h à 5h de prévisions), l'influence du mouvement des nuages devient plus
importante, de sorte que l'utilisation des modèles du premier groupe devient
essentielle.
Le document est réparti sur 6 sections. Il est organisé comme suit. La section 2,
détaille les modèles de prévision physique proposés par la revue de la littérature.
Ensuite la section 3 présente et prédéfinit les approches statistiques. Ces derniers
sont détaillés au niveau de la section 4. Ensuite, la section 5 présente l’évaluation
des méthodes de prévisions. Enfin, la section 6 rassemble les livrables du projet. Elle
présente les réalisations et les résultats obtenus au cours de la période de stage.
1
Chapitre I : Présentation de l’entreprise
2
Chapitre I : Présentation de l’entreprise
I.1 Présentation de l’entreprise
L’IRESEN (Institut de Recherche en Energie Solaire et Energies Nouvelles) est
un institut de recherche créé en 2011 par le Ministère de l’Énergie, des Mines, de
l’Eau et de l’Environnement, la SIE, l’ADEREE, MASEN, l’ONEE, l’OCP,
MANAGEM, l’ONHYM, le CNESTEN… (Figure. 1), et la Fédération de l’Énergie
pour accompagner la stratégie énergétique nationale en soutenant la R&D appliquée
dans le domaine de l’énergie solaire et des énergies nouvelles. IRESEN se
positionne au niveau de la recherche appliquée et technologique dans le secteur de
l´énergie solaire et énergies nouvelles pour un transfert de technologie plus rapide
et une transposition des résultats de la recherche en produits innovateurs [4].
3
Chapitre I : Présentation de l’entreprise
▪ Centrale PV : installation d’une centrale pilote photovoltaïque utilise 5
technologies différentes pour la caractérisation des performances et
l’identification de la complémentarité climatique marocaine ;
▪ Projet de dessalement (aquasolar) : couplage de l’énergie solaire à
concentration avec le dessalement de l’eau au Maroc ;
▪ Projet MCP : Etude et développement du stockage thermique solaire par fusion
des MCP et application au chauffage passif de l'habitat au Maroc ;
▪ Projet SFlash : Développement d’un séchage Flash solaire des phosphates
▪ Projet MicroOnduleurPV: Développement d’un système de transfert et
d’optimisation d’énergie solaire PV ;
▪ Projet Digesteur : Valorisation des effluents organiques issus des industries de
papier carton au Maroc par méthanisation : réalisation d'un digesteur pilote couplé
à l'énergie solaire ;
▪ Projet MCS Bitume : Maintien en chauffe d’un stockage de bitume par des
panneaux solaires à haute énergie.
4
Chapitre I : Présentation de l’entreprise
I.5 Les grands projets pilotes de la plateforme
5
Chapitre I : Présentation de l’entreprise
I.6 Contexte générale du projet de stage
Parmi les buts de Green Energy Parck la construction d’une base de données
précises, sures, complètes, et certifiées de qualité. Ce but se poursuit selon quatre
axes ou sous-tâches dans les domaines de la ressource solaire, la standardisation et
l’intégration des banques de données complémentaires aux différents sets de
données d’irradiance, de la prévision à court et moyen terme, ainsi que
l’amélioration des modèles d’évaluation de la ressource basé sur des données
satellitaires.
Les responsables au sein de Green Energy Parck, se sont rendu compte qu’il
fallait approfondir les connaissances de certains aspects de la ressource solaire,
notamment la variabilité au pas de temps, la « banquabilité » des séries de données
pour répondre aux différents investisseurs, a travers la précision des prévisions de la
ressource à court et moyen terme.
C’est dans ce cadre que s’inscrit mon projet de fin d’étude, Les différents axes
de ce projet se déclinent en sous tâches :
▪ Compréhension de la variabilité de la ressource solaire à court terme pour
faciliter son intégration dans les réseaux électriques.
6
Chapitre I : Présentation de l’entreprise
`
7
II.1 Introduction
8
Chapitre II : Le rayonnement & Gisement solaire
Figure 3 La répartition spectrale du rayonnement
9
Chapitre II : Le rayonnement & Gisement solaire
Figure 4 Interaction entre le rayonnement solaire et l’atmosphère terrestre dans l’atmosphère (les
chiffres sont des pourcentages
11
Chapitre II : Le rayonnement & Gisement solaire
II.3.4 La fraction d’irradiation
GHI (2.3)
- Indice de ciel clair : 𝐾𝑐 = GHIc
GHI
- Indice de clarté : 𝐾𝑡 = GHIatm (2.4)
Avec :
GHIatm: Irradiation solaire globale sur plan horizontal hors atmosphère.
GHIc : Irradiation solaire globale horaire sur plan horizontal hors atmosphère.
GHI : Irradiation solaire globale horaire sur plan horizontal au sol.
12
Chapitre II : Le rayonnement & Gisement solaire
II.4.2 Pyrhéliomètre
Un pyrhéliomètre est destiné à mesurer l’irradiation solaire directe. Il est
généralement constitué par une thermopile pente en noir (donc très absorbante), fixé
à un suiveur solaire automatique sur 2-axes.
Figure 8 Pyrhéliomètre
13
Chapitre II : Le rayonnement & Gisement solaire
du mix de production électrique. Le développement d’une filière industrielle et des
programmes de formation et de recherche est aussi prévu.
II.6 Conclusion
Dans ce chapitre, nous avons présenté des notions importantes sur le gisement
solaire comme les coordonnées terrestres et horaires. Ensuite, nous avons présenté
les différents types de rayonnements (direct, diffus, et global) et les expressions
mathématiques de chaque rayonnement, et nous avons fini par la présentation du
gisement solaire marocain puis les capteurs de rayonnement utilisés ainsi que le site
de mesures.
14
Chapitre II : Le rayonnement & Gisement solaire
Chapitre III : Etat de l’art de prévision du
rayonnement solaire
15
Introduction
L'utilisation croissante de l'énergie solaire comme source d'électricité a conduit
à un intérêt accru pour la prévision du rayonnement sur de courts horizons de temps.
Les prévisions à court terme sont nécessaires pour la planification opérationnelle, le
changement de sources, la programmation de secours et les achats d'énergie à court
terme, ainsi que pour la planification de l'utilisation des réserves et l'adaptation aux
pics de charge. Les horizons temporels pertinents peuvent aller de 5 minutes à
plusieurs heures.
Dans ce chapitre on va s'intéresser premièrement au modèle de base nommé aussi
modèle du ciel clair ou modèle de persistance calculer à partir des paramètres
comme la distance terre soleil et les paramètres optique des aérosols, juste après on
aura une vue sur les deux types de prévision le premier type a imagerie prise depuis
le sol et imageries satellitaire et du deuxième type qui s'appuie sur les méthodes
statiques comme les modèles de régressions et les modèles non linéaires comme les
réseaux de neurone artificielle.
Finalement on va décortiquer un peu le modèle statique SARIMA pour avoir une
vue sur la stratégie adoptée pour faire la prévision d'après les données déjà mesuré.
16
Chapitre III : Etat de l’art de prévision du rayonnement solaire
Figure 10 La carte mentale des modèles de prévision solaire
17
Chapitre III : Etat de l’art de prévision du rayonnement solaire
III.1 Quesque qu'une prévision ?
Prévoir, c'est observer un ensemble de données qui permet d'envisager une
situation future et d'entreprendre des actions pour y parer concrètement autrement
dit c'est porter un jugement sur les évènements ou évolutions possibles à venir en
utilisant comme outils le passe et le présent.
Il en résulte que les prévisions sont toujours entachées d'erreur et qu'il est
possible d'en établir plusieurs pour un même événement à venir (qui constitue l'objet
de la prévision).
Des outils d'analyse doivent donc être développes afin de comparer et de
hiérarchiser les prévisions pour discerner ce qui fait qu'on puisse, ou non, en
qualifier certaines de " bonnes ".
Figure 11 Modèle de persistance appliqué directement au GHI pour une journée ciel clair.
18
Chapitre III : Etat de l’art de prévision du rayonnement solaire
III.2.2 les modèles non linéaires
L'intelligence artificielle (IA) est la simulation des processus de l'intelligence
humaine par des machines, en particulier des programmes informatiques. Elle utilise
des ordinateurs pour comprendre l'intelligence humaine. L'IA comporte plusieurs
branches telles que la résolution de problèmes et la planification, les systèmes
experts, le traitement du langage naturel, la vision par ordinateur, les algorithmes
génétiques, les réseaux neuronaux artificiels, etc.
Réseaux neuronaux artificiels (ANN) : Le cerveau et la moelle épinière sont
constitués de nombreuses cellules, dont les cellules des neurones. Les neurones sont
des cellules qui envoient et reçoivent des signaux vers et depuis le cerveau et le
système nerveux. Les ANN sont une simulation du cerveau humain et tentent de
reconnaître le schéma d'entrée et de sortie par le raisonnement et les calculs
numériques, comme le montre la figure 4.
19
Chapitre III : Etat de l’art de prévision du rayonnement solaire
III.2.3 Les modèles de prévision numériques PNT
Les modèles de prévision numérique du temps (PNT) utilisent des algorithmes
mathématiques, qui découlent de la physique pour simuler l'atmosphère terrestre.
Dans le modèle, l'atmosphère est supposée être composée de blocs dans lesquels les
points d'angle sont appelés points de grille, comme le montre la figure 9. Le PNT
utilise les conditions initiales recueillies par les stations locales pour prévoir l'état
futur de l'atmosphère du modèle à tous les points de grille. La PNT peut être classée
en deux catégories principales.
(a) Modèles globaux de PNT : Simuler et prévoir l'état futur de l'atmosphère
terrestre. Les modèles globaux de PNT sont également utilisés pour fournir des
conditions limites pour les modèles régionaux de PNT.
Global Forecast System (GFS) : le modèle GFS est géré par la National Oceanic
and Atmospheric Administration (NOAA) quatre fois par jour sur une grille de 28
km x 28 km pour le domaine mondial. Les pas de temps de sortie du GFS sont de 3
h à 240 h (10 jours), puis passent à des pas de temps de 12 h jusqu'à 384 h (16 jours).
Centre européen pour les prévisions météorologiques à moyen terme
(CEPMMT) : modèle du CEPMMT soutenu par la plupart des nations d'Europe. Le
CEPMMT est mis à jour deux fois par jour et les délais de sortie sont de 3 h à 10
jours à l'avance.
(b) Modèles régionaux de PNT : Simuler et prévoir l'état futur d'un sous-domaine
de l'espace mondial seulement.
North American Mesoscale (NAM) : Le modèle NAM est géré par les National
Centers for Environmental Prediction (NCEP) et est mis à jour quatre fois par jour.
Le NAM produit des prévisions sur une grille horizontale de 12 km x 12 km sur
l'Amérique du Nord. Les pas de temps de sortie du modèle NAM sont de 3 h à 84 h
(3,5 jours).
Recherche et prévisions météorologiques (WRF) : modèle WRF qui a été créé
grâce à un partenariat entre la NOAA et le Centre national pour la recherche
atmosphérique (NCAR). Le logiciel WRF est soutenu par des efforts continus,
notamment des ateliers et de la documentation en ligne. Le WRF est de conception
flexible et destiné à une grande variété d'applications de prévision avec une priorité
sur les résolutions spatiales allant de 1 à 10 km.
20
Chapitre III : Etat de l’art de prévision du rayonnement solaire
Figure 14 Simulation de l'atmosphère terrestre à partir du modèle NWP
Conclusion
Les méthodes de prévision sont nombreuses et dépond de l’horizon de prévision
et la résolution de l’espace. Pour un horizon de prévision de 6 h à 3 jours, le
CEPMMT associé à un post-traitement MOS donne les résultats les plus précis.
Cependant, dans le cas de la Réunion, le modèle WRF semble être plus pertinent.
Pour un horizon de prévision plus petit, de 5 minutes à 4 heures, ARIMA semble
présenter la meilleure précision. Et cela est réuni dans la figure suivante pour faire
la comparaison être les modèles de prévisions.
Figure 15 Classification du modèle de prévision basée sur la résolution spatiale des données d'entrée et
la résolution temporelle
22
Chapitre III : Etat de l’art de prévision du rayonnement solaire
Chapitre IV : Aspect théorique des séries
temporelles
23
Introduction
Nous abordons dans ce chapitre l'analyse de données statistiques particulière en
ce sens que les observations sont régulièrement échelonnées dans le temps. Ce genre
de données est bien connu en économie et fréquent aussi en gestion. Leur
particularité vient de l'introduction du temps dans l'analyse de ces données : on
étudie une suite de couple de la forme (Yt,t) ou Yt et l'observation de la variable à
l'instant t. Aussi ce chapitre a pour but d'étudier les différentes techniques permettant
d'analyser de modéliser et de prévoir les séries temporelles de type stationnaire ou
non saisonnière ou non.
24
Chapitre IV : Aspect théorique des séries temporelles
L'un des objectifs principaux de l'étude d'une série chronologique est la prévision
qui consiste à prévoir les valeurs futures Yt+h (h = 1; 2; 3; :::) de la série chronologique
à partir de ses valeurs observées jusqu'au temps T.
Il existe encore bien d'autres objectifs immédiats relatifs à l'étude des séries
chronologiques.
Par exemple, si deux séries (notant Xt et Yt ) sont observées, on peut se demander
quelle influence elles exercent l'une sur l'autre. Ici, deux questions se posent : tout
d'abord, la question de la causalité i.e. quelle variable (Xt) va expliquer l'autre (Yt),
ce qui amène la deuxième question, celle du décalage temporel : si une influence de
(Xt) sur (Yt) existe, avec quel délai et pendant combien de temps la variable
explicative (Xt) influence-t-elle la variable expliquée (Yt).
Fonction d'autocovariance :
Soit Yt une série de variance finie, on définit la fonction d'autocovariance de Yt
Pour tout t, par :
𝛾(h) = 𝑐𝑜𝑣(Yt, Yt + 1) = 𝐸 [(Yt − 𝐸(Yt)) (Yt − h − 𝐸(Yt + h))] 𝑎𝑣𝑒𝑐 (𝑡, ℎ) ∈ 𝑍 (4.3)
25
Chapitre IV : Aspect théorique des séries temporelles
Cette fonction mesure la corrélation des séries avec elle-même décalée de k
période.
La représentation graphique de ρ (h) est appelée corrélogramme
Fonction d’autocorrélation partielle :
L'autocorrélation partielle d'ordre k de la série Yt est égale au coefficient de
corrélation entre :
𝑌𝑡 𝑌𝑡−𝑘
𝑌𝑡 − 𝐸 ( ) 𝐸𝑡 𝑌𝑡−𝑘 − 𝐸 ( ) (4.6)
𝑌𝑡−2 ,…,𝑌𝑡−𝑘+1 𝑌𝑡−1 ,…,𝑌𝑡−𝑘+1
Modélisation : Un modèle est une image simplifiée de la réalité qui vise à traduire les
mécanismes de fonctionnement du phénomène étudié et permet de mieux les comprendre
On distingue principalement deux types de modèles :
- Les modèles déterministes : Les deux modèles de ce type les plus usités sont
les suivants
• Le modèle additif
• Le modèle multiplicatif
- Les modèles stochastiques : La classe des modèles de ce type est la plus
fréquemment utilisée est la classe des modèles ARMA (et de ses sous-modèles ARIMA,
SARIMA...).
Analyse de la série à partir de ses composantes : Une fois l'étape de modélisation effectuée,
on étudie les composantes du modèle les unes après les autres : tendance, facteurs
saisonniers et fluctuations irrégulières.
Diagnostique du modèle - ajustement au modèle : Une fois le modèle construit et ses
paramètres estimés, on vérifie que le modèle proposé est bon c'est-à-dire l'ajustement au
modèle :
- En étudiant les résidus
26
Chapitre IV : Aspect théorique des séries temporelles
- En faisant des tests
Prédiction (prévision) : Enfin, nous sommes en mesure de faire de la prédiction.
L'opérateur d'avance :
L'opérateur d'avance est l'inverse de l'opérateur de retard, noté F (Forward) il
transforme une observation en sa valeur futur, il est défini par :
∆𝑑 𝑋𝑡 = (1 − 𝐵)𝑑 𝑋𝑡 (4.10)
∆𝑠 𝑋𝑡 = 𝑋𝑡 − 𝑋𝑡−𝑠 (4.11)
En d'autres termes :
∆𝑠 = 1 − 𝐵𝑠 (4.12)
∅(𝐵) = 1 − ∅1 𝐵 − ⋯ − ∅𝑝 𝐵𝑝 (4.18)
𝜃(𝐵 = 1 − 𝜃1 𝐵 − ⋯ − 𝜃𝑞 𝐵𝑞 ) (4.19)
29
Chapitre IV : Aspect théorique des séries temporelles
Un modèle ARIMA est d'ordre (p; d; q), p correspondant au nombre de termes
autorégressifs, d au nombre de différenciations, et q au nombre de termes de
moyenne mobile, il vérifie la relation suivante :
Où : ɸ(𝐵) = 1 − ∅1 (𝐵) − ⋯ − ∅𝑝 𝐵𝑝
Et : 𝛩(𝐵) = 1 − 𝜃1 (𝐵) − ⋯ − 𝜃𝑞 (𝐵)𝑞
30
Chapitre IV : Aspect théorique des séries temporelles
Chapitre V : Méthodes de prévision
31
Introduction
Nous examinons dans ce chapitre la notion de prévision, la nécessite de prévoir
la production des énergies renouvelables ainsi les différentes approches de
prévisions pour ce type d'énergie.
Ce chapitre traite aussi les notions essentielles de la régression et discute en détail
la méthode des moindres carrés et traite ces propriétés en tant que méthode de
prévision ainsi que le modèle ARIMA.
32
Chapitre V : Méthodes de prévision
V.3 Critère de validité de la méthode de prévision
La prévision des valeurs futures d'une variable y peut se faire en utilisant
différentes méthodes. Les prévisions obtenues peuvent être comparées et appréciées
selon plusieurs critères parmi lesquels :
1
1. L'erreur moyenne (mean error) : 𝜀̅ = 𝑛 ∑ 𝜀t
1
2. Le carre moyen des erreurs (mean square error) : MSE = 𝑛 ∑ 𝜀t ²
3. L'erreur quadratique moyenne (Le root mean square error ) : RMSE =√𝑀𝑆𝐸
ɛt étant l'erreur de prévision pour un instant t (la différence entre la valeur
observée et la valeur prévue par une méthode quelconque).
La meilleure méthode est celle qui fournit les valeurs les plus faibles pour ces
critères.
33
Chapitre V : Méthodes de prévision
La méthode de MCO (moindre carrés ordinaires) estime β par la valeur qui
minimise
(𝑌 − 𝑋 ∗ 𝛽)`(𝑌 − 𝑋 ∗ 𝛽 (5.3)
Ou X’ est la transposée de X.
Le minimum est atteint pour :
𝛽̂ = (𝑋′𝑋)−1 𝑋′𝑌
(5.4)
Les vecteurs des valeurs ajustées et des résidus son respectivement définis par :
yˆ1 yˆ1
yˆ yˆ (5.5)
Yˆ = 2 = X ˆ Uˆ = 2
yˆT yˆT
36
Chapitre V : Méthodes de prévision
Figure 16 Algorithme de prevision
37
Chapitre V : Méthodes de prévision
Chapitre VI : Application
38
Introduction
Après la présentation des différentes méthodes de prévision du global horizontal
irradiance ainsi que l'intérêt de cette dernière et vu que cette prévisions doit être à la
portée des différents types d'utilisateurs on a réalisé une interface pour réduire la
complexité au maximum ainsi d'avoir une vue générale des différents paramètres
météorologique en temps réel et pour faire des prévisions avec plusieurs modèles
pour étudier aussi la fiabilité de chacun (c'est-à-dire les erreurs qui génère au cours
de chaque prévision )
Comme on a vu dans le chapitre de l'état de l'art il y a plusieurs types de modèles
et chaque type contient plusieurs modèles qui sont déjà réalisés tester avec des
sociétés et des chercheurs, dans cette application on s'est intéressé que par les
modèles statiques linéaire AR, ARMA, ARIMA, SARIMA qui se réfèrent juste aux
séries de données déjà mesurer pour faire des prévisions du futur
Il y a trois types d'interface qui sont présents dans l'application et qui sont cité
comme suivant :
L’interface gestion des utilisateurs : Une interface qui accorde les permissions à
chaque type d'utilisateur
L’interface mère “main” : elle peut prendre différentes formes qui dépend du
type d'utilisateur et les permissions qu'ils le sont accordés depuis l'administrateur
dans l'interface gestion des utilisateurs
L’interface de prévision : donne aux utilisateurs selon leur type les différents
paramètres à régler avant de faire des prévisions
40
Chapitre VI : Application
Figure 18 logo du langage python
42
Chapitre VI : Application
Figure 19 identification des composant de l'interface mère
43
Chapitre VI : Application
Figure 20 interface de gestion des utilisateurs
44
Chapitre VI : Application
VI.3.3 Interface de prévision
Pour un administrateur une simple visualisation de graphes n'est pas son but ni
le but de la réalisation de l'application elle-même car tout l'application tourne autour
de cette partie qui a été l'objectif de l'organisme d'accueil qui est un centre de
recherche dans l'intérêt de faire des études sur les résultats obtenus avec chaque type
de prévision
On a déjà noté que dans cette application on va s'intéresser que par la prévision
avec des modèles linéaires que ça soit saisonnière ou non pour les données
saisonnières on va utiliser le modèle SARIMA et pour le type de données qui ne le
sont pas on utilisera le modèle ARIMA.
On aura une vue détaillée des 2 modèles en premier temps et après on va faire
des petites des petits commentaires sur les résultats obtenus avec l’application
Cette interface est divisée en 2 grandes parties la partie gauche qui est dédié a là
visualisation des graphes de prévisions et la partie droite qui contrôle les paramètres
accordés à chaque modèle de prévision Il peut contrôler le nom du modèle et le taux
de donnée qui vont entraîner le modèle et la période de prévision ainsi que des
paramètres plus spéciaux au modèle choisis comme le nombre d’intégrations, le taux
de régressions et celui de la moyenne mobile
Cette interface donne possibilité de tracer deux graphes avec deux modèles
différents pour faire une comparaison entre les deux, et cette comparais peut être
faite de manière plus détailler avec le calcul du racine de l'erreur quadratique
moyenne
45
Chapitre VI : Application
VI.4 Prévision de la future d’une série temporelle
VI.4.1 Première étape : test de stationnarité
Le test de la stationnarité est obligatoire pour estime le degré de la différentiation
car ces modèles de régression ne sont applicables que pour les séries chronologiques
qui sont stationnaire en termes de valeur moyenne et aussi en variance
46
Chapitre VI : Application
Figure 23 graphe d'autocorrélation
47
Chapitre VI : Application
Figure 24 graphe d'autocorrélation après élimination de la saisonnalité
On remarque que X(t) n’est plus corrélé qu’avec quelque échantillant qui la
précède, donc avec une autre différentiation de période 24 il ne restera que les 5
premier point qui sont corrélé entre eu d’un modèle SARIMA de paramètre de
moyenne mobile égale a 5 sera suffisant
VI.4.3 Troisième étape : détermination du degré de
régression
Comme on a vue dans la détermination du degré de la moyenne mobile le cas de
la régression est similaire mais cette fois c’est l’autocorrélation partielle qui vas nous
aider à l’estimer
48
Chapitre VI : Application
Cette figure montre que le paramètre de régression peut être égale a 2 si on
néglige l’autocorrélation partielle avec les autres lags que les deux premiers qui
présente une forte corrélation.
VI.4.5 Dernière étape : Prévision
Arrivant a cette étape et après la détermination des différents paramètres du
modèle de prévision, on est alors sûr que les données sont stationnaires est prête à
être entrainer dans le modèle.
Comme on a vue dans la présentation des bibliothèques utilisés le package
STATSMODELS contient des méthodes prédéfinis pour appliquer la prévision,
après que l’utilisateur choisi le modèle désirer l’application effectue des prévisions
depuis le package avec ce modèle en appliquant les paramètres qui sont aussi fixé
par l’utilisateur
Remarque :
Le décalage entre les deux graphs de prévision et la mesure est fait exprès pour remarquer
la différence entre les deux traçais
49
Chapitre VI : Application
Conclusion générale
50
Bibliographies
Chow, Chi Wai, Bryan Urquhart, Matthew Lave, Anthony Dominguez, Jan
Kleissl, Janet Shields, et Byron Washom. « Intra-Hour Forecasting with a Total Sky
Imager at the UC San Diego Solar Energy Testbed ». Solar Energy 85, no 11
(novembre 2011): 2881-93. [Link]
Dambreville, Romain. « Prévision du rayonnement solaire global par
télédétection pour la gestion de la production d’énergie photovoltaïque », s. d., 149.
Diagne, Hadja Maïmouna, Mathieu David, Philippe Lauret, et John Boland.
« Solar Irradiation Forecasting: State-of-the-Art and Proposition for Future
Developments for Small-Scale Insular Grids », s. d., 8.
Facquet, Maxime, Supachai Suksamosorn, Veenakorn Suphatsatienkul, Vichaya
Layanun, et Jitkomut Songsiri. « 2102531 System Identification », s. d., 24.
Yang, Handa, Ben Kurtz, Dung Nguyen, Bryan Urquhart, Chi Wai Chow,
Mohamed Ghonima, et Jan Kleissl. « Solar Irradiance Forecasting Using a Ground-
Based Sky Imager Developed at UC San Diego ». Solar Energy 103 (mai 2014):
502-24. [Link]
Ghennioui, Pr Hicham, et Mr Abdellatif Ghennioui. « Développement d’un
modèle de prévision du rayonnement au sol par ciel clair », s. d., 80.
Madina, Benmensour, Zouaoui Selma, Cheurfa Fateh, et Berrah Yasmine.
« Pr´evision de la production d’´el´ectricit´e de type Energies Renouvelables Cas :
´eolienne et photovoltaˆıque », s. d., 83.
Mellit, Adel. « Artificial Intelligence Technique for Modelling and Forecasting
of Solar Radiation Data: A Review ». International Journal of Artificial Intelligence
and Soft Computing 1, no 1 (2008): 52.
[Link]
Voyant, Cyril. « Prédiction de séries temporelles de rayonnement solaire global
et de production d’énergie photovoltaïque à partir de réseaux de neurones
artificiels », s. d., 258.
Reikard, Gordon. « Predicting Solar Radiation at High Resolutions: A
Comparison of Time Series Forecasts ». Solar Energy 83, no 3 (mars 2009): 342-49.
[Link]
Traunmüller, Wolfgang, et Gerald Steinmaurer. « Solar Irradiance Forecasting,
Benchmarking of Different Techniques and Applications of Energy Meteorology ».
In Proceedings of the EuroSun 2010 Conference, 1-8. Graz, Austria: International
Solar Energy Society, 2010. [Link]
51
Annex
Code de programme de prevision
import pandas as pd
import os
import numpy as np
from datetime import datetime
from datetime import timedelta
from time import time
from [Link] import acf, pacf
from [Link] import SARIMAX
import [Link] as plt
from [Link] import plot_acf, plot_pacf
from [Link].ar_model import AR
from [Link] import mean_squared_error
from [Link].arima_model import ARIMA
from [Link] import adfuller
from sklearn.linear_model import LinearRegression
def predict_previous():
src=[Link]("data")
GHI = pd.read_excel("[Link]", sheet_name='sheet1', header=0,
usecols=['time','data'] )
GHI.set_index('time',inplace=True)
stat_ghi=GHI
stat_ghi["data"]=stat_ghi["data"].diff(periods=24)
stat_ghi=stat_ghi[1:]
stat_ghi=stat_ghi.dropna()
X=stat_ghi["data"]
X=[Link]()
result = adfuller(X)
print('ADF statistics : %f' % result[0])
print('p-value : %f' % result[1])
print('critical Values :')
for key,value in result[4].items():
print('\t%s: %.3f' % (key,value))
if result[0] < result[4]["5%"]:
print("stationary")
stat_ghi["data_shifted"] = stat_ghi["data"].shift()
stat_ghi=stat_ghi.dropna()
y = stat_ghi.[Link]
x = stat_ghi.data_shifted.values
train_size = int(len(x)*0.80)
x_train , x_test = x[0:train_size],x[train_size:len(x)]
y_train , y_test = y[0:train_size],y[train_size:len(x)]
x_train = x_train.reshape(-1,1)
x_test = x_test.reshape(-1,1)
lr = LinearRegression()
[Link](x_train,y_train)
y_pred = [Link](x_test)
print( len(ghic2), " ", len(X) )
return y_pred
else :
52
print("not stationary")
def predict():
src=[Link]("data")
[Link](src)
GHI = pd.read_excel("[Link]", sheet_name='sheet1', header=0,
usecols=['time','data'] )
GHI.set_index('time',inplace=True)
stat_ghi=GHI
stat_ghi=stat_ghi[1:]
stat_ghi=stat_ghi.dropna()
X=stat_ghi["data"]
result = adfuller(X)
print('ADF statistics : %f' % result[0])
print('p-value : %f' % result[1])
print('critical Values :')
for key,value in result[4].items():
print('\t%s: %.3f' % (key,value))
if result[0] < result[4]["5%"]:
print("stationary")
stat_ghi["data_shifted"] = stat_ghi["data"].shift()
stat_ghi=stat_ghi.dropna()
y = stat_ghi.[Link]
x = stat_ghi.data_shifted.values
train_size = int(len(x)*0.80)
x_train , x_test = x[0:train_size],x[train_size:len(x)]
y_train , y_test = y[0:train_size],y[train_size:len(x)]
x_train = x_train.reshape(-1,1)
x_test = x_test.reshape(-1,1)
lr = LinearRegression()
[Link](x_train,y_train)
y_pred = [Link](x_test)
else :
print("not stationary")
stat_ghi["data_shifted"] = stat_ghi["data"].shift()
stat_ghi=stat_ghi.dropna()
y = stat_ghi.[Link]
x = stat_ghi.data_shifted.values
train_size = int(len(x)*0.80)
x_train , x_test = x[0:train_size],x[train_size:len(x)]
y_train , y_test = y[0:train_size],y[train_size:len(x)]
my_order = (6,2,2)
my_seasonal_order = (0,1,1, 24)
return y_pred,y_test
class UsermanagerWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
loadUi("[Link]",self)
[Link](QIcon('GEP_LOGO.ico'))
[Link]("Users manager")
[Link](self.add_user)
self.pushButton_2.[Link]([Link])
54
def add_user(self):
[Link](get_scr().replace("\\data", ""))
[Link] = ADDUSER()
[Link]()
class MatplotlibWidgetF(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
loadUi("[Link]",self)
[Link](QIcon('GEP_LOGO.ico'))
[Link]("Forecasting window")
[Link](NavigationToolbar([Link], self))
[Link](self.update_param)
[Link](self.update_param)
#[Link].axes4.set_frame_on(False) [Link]()
[Link]() [Link]([Link])
[Link](self.update_param)
[Link]([Link])
[Link](self.update_param)
locallist=[]
def setlisteparam(self,param):
[Link] = param
def getlisteparam(self,iste=locallist):
print([Link])
return iste
def update_param(self):
55
maxforcastperiode = 3 ## 3j comme maximum
traincoef = ([Link]()+1) /100
self.label_6.setText(str([Link]())+"%")
fperiodde = (([Link]()+1)/100 ) * maxforcastperiode * 24
jnum = int(fperiodde // 24)
hnum = int(fperiodde%24)
self.label_7.setText("{} day {} hour".format(jnum,hnum))
pparam = [Link]()
dparam = [Link]()
qparam = [Link]()
algoindex = [Link]()
algotxt = [Link]()
PARAMETERS =
[algotxt,algoindex,pparam,dparam,qparam,traincoef,fperiodde,jnum,hnum]
[Link](PARAMETERS)
papapa = [Link]
print(papapa)
def runscript(self):
[Link]()
[Link]()
predictions,tested = arima_model.predict()
[Link](predictions , label="GHI
predicted",color='tab:green')
[Link](tested , label="GHI
tested",color='tab:red')
[Link](loc='upper right')
[Link].set_ylabel('irradiance W/m²')
[Link].set_xlabel('time')
[Link]()
56
class MatplotlibWidget(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
loadUi("[Link]",self)
[Link](QIcon('GEP_LOGO.ico'))
[Link]("Green energy parck")
[Link](NavigationToolbar([Link], self))
[Link](self.copy_files)
self.oneshoot_plotB.[Link](self.one_shoot)
self.upl_T1.[Link](self.select_t1)
self.upl_T2.[Link](self.select_t2)
[Link](self.slidCal1)
[Link](self.slidCal2)
self.files_path.[Link](self.file_path)
[Link](self.load_files)
[Link]([Link])
[Link]([Link])
[Link](False)
self.calendarWidget_2.setVisible(False)
[Link]()
[Link] = [Link]()
[Link](10000)
[Link](self.on_ligne)
[Link]()
[Link].axes4 = [Link]()
def update_graph(self):
self.info_label.setText('Busy')
[Link]()
57
[Link]()
[Link]()
if [Link]() == 2 :
t11 = get_scr() + "\\[Link]"
TT1 = read_excel(t11, sheet_name='sheet1', header=0,
usecols=['time','data'])
[Link](TT1["time"], TT1["data"],
label="GHI",color='tab:red')
[Link](loc='upper right')
if [Link]() == 2 :
t22 = get_scr() + "\\[Link]"
TT2 = read_excel(t22, sheet_name='sheet1', header=0,
usecols=['time','data'])
[Link](TT2["time"], TT2["data"],
label="DHI", color='tab:green')
[Link](loc='upper right')
if [Link]() == 2 :
t33 = get_scr() + "\\[Link]"
TT3 = read_excel(t33, sheet_name='sheet1', header=0,
usecols=['time','data'])
[Link](TT3["time"], TT3["data"],
label="DNI", color='tab:cyan')
[Link](loc='upper right')
if [Link]() == 2 :
t44 = get_scr() + "\\[Link]"
TT4 = read_excel(t44, sheet_name='sheet1', header=0,
usecols=['time','data'])
[Link](TT4["time"], TT4["data"],
label="TEMPRATURE",color='tab:red')
[Link](loc='upper left')
if [Link]() == 2 :
t55 = get_scr() + "\\[Link]"
TT5 = read_excel(t55, sheet_name='sheet1', header=0,
usecols=['time','data'])
58
[Link](TT5["time"], TT5["data"],
label="WIND", color='tab:blue')
[Link](loc='upper right')
[Link].set_title('Measured irradience')
#[Link].axes3.set_title('Measured Temperature and Wind
speed')
[Link].axes3.set_xlabel('time')
[Link].axes3.set_ylabel('temperature °C')
[Link].axes4.set_ylabel('wind m/s')
[Link].set_ylabel('irradiance W/m²')
[Link].set_xlabel('time')
[Link]()
self.info_label.setText('Ready')
def slidCal1(self):
[Link](True)
for i in range(192) :
[Link](281,i)
[Link]([Link])
def slidCal2(self):
self.calendarWidget_2.setVisible(True)
for i in range(192) :
self.calendarWidget_2.resize(281,i)
self.calendarWidget_2.[Link](self.printDateInfo2)
59
def printDateInfo2(self, qDate):
date_frame = '{0}-{1}-{2}'.format([Link]() , [Link](),
[Link]())
[Link](date_frame)
self.calendarWidget_2.setVisible(False)
def one_shoot(self):
try:
self.update_graph()
except:
error_dialog = [Link](self)
error_dialog.setWindowTitle("warning!")
error_dialog.showMessage('The tables have a bad form, or maybe does
not exist. Please reload all files and try again! ')
def on_ligne(self):
if self.enligne_plotB.checkState() == 2:
try:
self.update_graph()
except:
error_dialog = [Link](self)
error_dialog.setWindowTitle("warning!")
error_dialog.showMessage('The tables have a bad form, or maybe
does not exist. Please reload all files and try again! ')
def copy_files(self):
self.info_label.setText('Busy')
cheked = []
if [Link]() == 2 : cheked += ["[Link]"]
if [Link]() == 2 : cheked += ["[Link]"]
60
if [Link]() == 2 : cheked += ["[Link]"]
if [Link]() == 2 : cheked += ["[Link]"]
if [Link]() == 2 : cheked += ["[Link]"]
text4 = str([Link](self, "Select
Directory",expanduser("~")))
try:
if text4 != '':
[Link](text4)
#src_files = [Link](src)
for file_name in cheked:
full_file_name = [Link](src, file_name)
if [Link](full_file_name):
[Link](full_file_name,text4)
except :
error_dialog = [Link](self)
error_dialog.setWindowTitle("Error!")
error_dialog.showMessage('Directory path is not existent')
self.info_label.setText('Ready')
def select_t1(self):
def select_t2(self):
[Link](get_scr())
items = [Link](get_scr())
item, okPressed = [Link](self, "Select item","Items :",
items, 0, False)
if item!='' and okPressed :
if [Link](item):
buttonReply = [Link](self, 'Confirmation', "Would
you like to delete: '{}'".format(item), [Link] | [Link],
[Link])
if buttonReply == [Link]:
[Link](item)
error_dialog = [Link](self)
error_dialog.setWindowTitle("Info")
62
error_dialog.showMessage('Item deleted successfully')
def file_path(self):
text = str([Link](self, "Select Directory" ,
expanduser("~")))
if text != '':
right_path=text
try :
[Link](right_path)
change_scr(right_path)
tabFilestonewderectoy=
["[Link]","[Link]","[Link]","[Link]","[Link]"]
text2, okPressed2 = [Link](self, "Change
directory","To copy all files to the new direction, write YES or NO",
[Link], "")
if okPressed2 and text2 == 'YES' or text2=='yes':
for fileName in tabFilestonewderectoy:
fullpath = [Link](src, fileName)
if [Link](fullpath):
[Link](fullpath, right_path)
except:
error_dialog = [Link](self)
error_dialog.setWindowTitle("Error!")
error_dialog.showMessage('Directory path is not existent')
def load_files(self):
self.info_label.setText('Loading files ... This may take a few minutes.')
items = ("10min","1h","day")
item, okPressed = [Link](self, "select period","period:",
items, 0, False)
if okPressed and item:
sheetName = item
63
F = [Link]()
T = [Link]()
if F == '' or T=='' :
Messsage = [Link](self)
[Link]('Error ! ')
[Link]('No time period found. Please enter periode
you want')
return
try :
f = to_datetime(F)
t = to_datetime(T)
except :
Messsage = [Link](self)
[Link]('Error ! ')
[Link]('Bade date format. Please verify and reload !')
return
[Link](get_scr().replace("\\data", ""))
years_file = open("[Link]","r")
years_cont = years_file.readlines()
print(years_cont)
print([Link])
years_file.close()
strYear = str([Link]) + "\n"
if str([Link]) in years_cont or strYear in years_cont:
[Link](QCursor([Link]))
t1 = get_scr() + "\\[Link]"
t2 = get_scr() + "\\[Link]"
t3 = get_scr() + "\\[Link]"
t4 = get_scr() + "\\[Link]"
t5 = get_scr() + "\\[Link]"
try :
64
if [Link]() != 2 and [Link]() != 2 and
[Link]() != 2 and [Link]() != 2 and
[Link]() != 2 :
error_dialog = [Link](self)
error_dialog.setWindowTitle("Info")
error_dialog.showMessage('Nothing selected !')
if [Link]() == 2 :
GHI =
readExel("{}_{}.xlsx".format([Link],sheetName),'sheet1',[ 'Date','GHI'])
[Link] = ['time', 'data']
GHI = GHI[2:]
GHI = [Link][(GHI['time'] > f) & (GHI['time'] <= t)]
[Link]=to_numeric([Link],errors='coerce')
GHI.to_excel (r"{}".format(t1), index = False, header=True ,
sheet_name='sheet1')
if [Link]() == 2 :
DHI =
readExel("{}_{}.xlsx".format([Link],sheetName),'sheet1',[ 'Date','DHI'])
[Link] = ['time', 'data']
DHI = DHI[2:]
DHI = [Link] [(DHI['time'] > f) & (DHI['time'] <= t)]
[Link]=to_numeric([Link],errors='coerce')
DHI.to_excel (r"{}".format(t2), index = False, header=True ,
sheet_name='sheet1')
if [Link]() == 2 :
DNI =
readExel("{}_{}.xlsx".format([Link],sheetName),'sheet1',[ 'Date','DNI'])
[Link] = ['time', 'data']
DNI = DNI[2:]
DNI = [Link] [(DNI['time'] > f) & (DNI['time'] <= t)]
[Link]=to_numeric([Link],errors='coerce')
DNI.to_excel (r"{}".format(t3), index = False, header=True ,
sheet_name='sheet1')
65
if [Link]() == 2 :
temp =
readExel("{}_{}.xlsx".format([Link],sheetName),'sheet1',[ 'Date','Tamb'])
[Link] = ['time', 'data']
temp = temp[2:]
temp = [Link] [(temp['time'] > f) & (temp['time'] <= t)]
[Link]=to_numeric([Link],errors='coerce')
temp.to_excel (r"{}".format(t4), index = False, header=True ,
sheet_name='sheet1')
if [Link]() == 2 :
win = readExel("{}_{}.xlsx".format([Link],sheetName),'sheet1',[
'Date','WS'])
[Link] = ['time', 'data']
win = win[2:]
win = [Link] [(win['time'] > f) & (win['time'] <= t)]
[Link]=to_numeric([Link],errors='coerce')
win.to_excel (r"{}".format(t5), index = False, header=True ,
sheet_name='sheet1')
except :
error_dialog = [Link](self)
error_dialog.setWindowTitle("Error!")
error_dialog.showMessage('Load file error !')
else :
error_dialog = [Link](self)
error_dialog.setWindowTitle("Error")
error_dialog.showMessage('Sory no data for selected year !')
[Link]()
self.info_label.setText('Ready ')
def forcastAdmin(self) :
[Link](get_scr().replace("\\data", ""))
66
[Link] = MatplotlibWidgetF()
[Link]()
def Usersmanage(self):
[Link](get_scr().replace("\\data", ""))
[Link] = UsermanagerWindow()
[Link]()
"""
class Login([Link]):
def __init__(self, parent=None):
super(Login, self).__init__(parent)
labell = [Link](self)
pixmap = QPixmap('GEP_LOGO.ico')
[Link](pixmap)
#[Link](30,40)
[Link]("Login")
[Link](QIcon('GEP_LOGO.ico'))
[Link] = [Link](self)
[Link] = [Link](self)
[Link]([Link])
[Link] = [Link]('Login', self)
[Link]([Link])
[Link]("Enter Username Here")
[Link]("Enter Password Here")
layout = [Link](self)
[Link](labell)
[Link]([Link],0)
[Link]([Link],1)
67
[Link]([Link])
def handleLogin(self):
if ([Link]() == 'admin' and
[Link]() == 'admin'):
[Link]()
else:
[Link](
self, 'Error', 'Bad user or password')
"""
class Login([Link]):
def __init__(self, parent=None):
super(Login, self).__init__(parent)
loadUi("[Link]",self)
[Link](QIcon('GEP_LOGO.ico'))
[Link]("Login")
[Link]([Link])
def handleLogin(self):
if ([Link]() == 'admin' and
[Link]() == 'admin'):
[Link]()
else:
[Link](
self, 'Error', 'Bad user or password')
class ADDUSER([Link]):
def __init__(self, parent=None):
super(ADDUSER, self).__init__(parent)
loadUi("FicheID_UI.ui",self)
[Link](QIcon('GEP_LOGO.ico'))
68
[Link]([Link])
self.pushButton_2.[Link]([Link])
def readExel(path,SN,CN):
[Link](get_scr())
[Link]()
return read_excel(path, sheet_name=SN, header=18, usecols=CN)
def dispatchSheets(pat) :
xl = ExcelFile(pat)
sh_names = xl.sheet_names
print(xl.sheet_names)
C1=[Link](sh_names[0])
C2=[Link](sh_names[1])
C3=[Link](sh_names[2])
C4=[Link](sh_names[3])
pp1 = get_scr() + "\\2017_10min.xlsx"
pp2 = get_scr() + "\\2017_1h.xlsx"
pp3 = get_scr() + "\\2017_day.xlsx"
pp4 = get_scr() + "\\2017_month.xlsx"
#df.to_excel(r'Path where you want to store the exported excel file\File
[Link]', sheet_name='Your sheet name', index = False)
C1.to_excel (r"{}".format(pp1), index = False, header=True ,
sheet_name='sheet1')
C2.to_excel (r"{}".format(pp2), index = False, header=True ,
sheet_name='sheet1')
C3.to_excel (r"{}".format(pp3), index = False, header=True ,
sheet_name='sheet1')
C4.to_excel (r"{}".format(pp4), index = False, header=True ,
sheet_name='sheet1')
def PlotFile(pf):
[Link](get_scr())
[Link]()
locallist = []
src=[Link]("data")
'''
app = QApplication([])
window = MatplotlibWidget()
[Link]()
app.exec_()
'''
if __name__ == '__main__':
import sys
app = QApplication([Link])
login = Login()
if login.exec_()== [Link]:
window = MatplotlibWidget()
[Link]()
[Link](app.exec_())
else:
70
window = MatplotlibWidget()
window.upl_T1.setVisible(False)
window.upl_T2.setVisible(False)
[Link](False)
[Link](False)
#window.label_5.setVisible(False)
window.files_path.setVisible(False)
window.frame_4.setVisible(False)
[Link](160,10)
"""
window.oneshoot_plotB.move(640,50)
window.enligne_plotB.move(660,100)
window.label_2.move(600,30)
[Link](490,40)
[Link](490,60)
[Link](490,80)
[Link](490,100)
[Link](490,120)
[Link](240,50)
[Link](90,40)
[Link](90,60)
[Link](90,80)
[Link](90,100)
[Link](90,120)
[Link](180,30)
"""
[Link]()
[Link](app.exec_())
71
Année Universitaire : 2019 -2020
Photo auteur
Soutenance :
Mots clés :
Summary :
Due to the increasing integration of solar energy into the power grid, forecasting solar
radiation is becoming essential. Indeed, this integration can offer a better quality of
service if the variation in solar irradiation can be predicted with a high degree of
accuracy.
This document presents a presentation of current methods used to predict solar
irradiance in order to facilitate the choice of the forecast method according to the
needs. Our work begins with a presentation of physical models and techniques based
on cloud imagery; statistical approaches are detailed. Finally, we give forecast results
with an application carried out under the will of the host organization.
Key words :