Thèse soutenue

Une nouvelle approche pour la programmation distribuée dans les smartgrids

FR  |  
EN
Auteur / Autrice : Thi Thanh Quynh Nguyen
Direction : Nouredine Hadj-Said
Type : Thèse de doctorat
Discipline(s) : Génie électrique
Date : Soutenance le 16/12/2019
Etablissement(s) : Université Grenoble Alpes (ComUE)
Ecole(s) doctorale(s) : École doctorale électronique, électrotechnique, automatique, traitement du signal (Grenoble ; 199.-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire de génie électrique (Grenoble)
Jury : Président / Présidente : Marie-Christine Rousset
Examinateurs / Examinatrices : Vincent Debusschere, Christophe Bobineau
Rapporteurs / Rapporteuses : Dave Edward Bakken, Vasile-Marian Scuturici

Résumé

FR  |  
EN

Le principal défi du contrôle et de la gestion des réseaux électriques intelligents (Smartgrids) est la quantité de données à traiter. Les techniques classiques centralisées, même si elles offrent l’avantage de facilité de gestion par leur vision globale du réseau, ne supportent pas en pratique la croissance continue des volumes de données (bande passante limitée, goulot d’étranglement, quantité de calculs à assurer, etc.). Le passage à un contrôle et une gestion décentralisée (répartie), où le système est composé d’une multitude d’unités de calcul coopérantes, offre de très bonnes perspectives (robustesse, calcul au plus près des producteurs et consommateurs de données, exploitation de toutes les ressources disponibles), mais reste difficile à mettre en place. En effet, la programmation d’algorithmes distribués nécessite de prendre en compte les échanges de données et la synchronisation des unités participantes, cette complexité augmentant avec le nombre d’unités. Dans cette thèse, nous proposons une approche innovante de programmation de haut niveau d’abstraction masquant ces difficultés.Tout d’abord, nous proposons d’abstraire l’ensemble des unités de calcul du Smartgrid (compteur intelligent, capteurs, concentrateurs de données, etc.) sous forme d’une base de données distribuées. Chaque unité de calcul hébergeant une base de données locale et seules les données nécessaires à la poursuite du calcul sont échangées avec d’autres unités, ce qui diminue l’utilisation de la bande passante disponible. L’utilisation d’un langage de manipulation de données déclaratif simplifiera la programmation des applications de contrôle et de gestion. Nous proposons également SmartLog, un langage à base de règles (basé sur le langage Datalog et ses dérivés) dédié à ces applications. Il facilite la programmation distribuée des applications Smartgrid en réagissant immédiatement à tout changement dans les données.Même avec un langage tel que SmartLog, il est nécessaire de prendre en compte les échanges de données et la synchronisation des participants. C’est pourquoi nous proposons ensuite une approche simplifiant la programmation distribuée. Cette approche, nommée CPDE pour Centralized Programmation and Distributed Execution, consiste en deux étapes : (i) programmer l’application centralisée en SmartLog, car cela est plus facile, et (ii) traduire le programme centralisé en programme distribué en se basant sur la localisation réelle des données. Pour ce faire, nous proposons un algorithme de distribution semi-automatique des règles SmartLog.Afin de démontrer l’intérêt de CPDE, nous avons mené une expérimentation exhaustive en utilisant des applications et des algorithmes réellement utilisés dans les Smartgrids, telles que le contrôle secondaire dans les micro-réseaux isolés ou la régulation de tension équitable. L’expérimentation a été réalisée sur une plate-forme de simulation de réseau électrique temps réel, avec une machine de simulation OPAL-RT, et des un réseau Raspberry-Pi représentant les unités de calcul (leurs performances sont tout à fait comparables aux équipements réels). Cette expérimentation a permis de valider les comportements et les performances des programmes distribués conçus avec CPDE comparativement à leurs versions centralisées en SmartLog et à leurs versions de référence implantés en Java. Nous avons également étudié l’impact de différents paramètres, tels que le nombre d’unités de calcul ou les différentes alternatives de répartition des données.