COFFEE vise en particulier à capitaliser et exploiter via le langage de script python un ensemble d’outils dédiés à l’optimisation des systèmes. Il s’agit par exemple de la méthodologie d'optimisation non linéaire basée sur le calcul du Jacobien, historiquement développées pour l’outil CADES et maintenant en version open-source dans l'outil NoLOAD (Non Linear Optimization using Automatic Differentiation). Il s'agit également de la méthodologie de modélisation de problèmes d'optimisation linéaires développée spécifiquement pour le domaine applicatif de la planification multi-énergies des quartiers avec l'outil OMEGAlpes.
OMEGAlpes (Optimization ModEls Generation As Linear Programs for Energy System)
Il s’agit d’un modeleur open-source de problème d'optimisation énergétique à l'échelle quartier.
OMEGAlpes a été créé pour aider les parties prenantes à quantifier le potentiel de projets impliquant plusieurs vecteurs energétiques et les aider à prendre des décisions. Écrit en Python, OMEGAlpes s’appuie sur le concept orienté objet pour composer des unités énergétiques (producteurs, consommateurs, stockage) et générer le problèmes d’optimisation global. Une couche d’abstraction est basée sur le package PuLP afin de transposer les cas d'étude vers différents solveurs (CBC, CPLEX, Gurobi, etc.) via deux formats disponibles (MPS et LP).
Disponible à l'adresse https://gricad-gitlab.univ-grenoble-alpes.fr/omegalpes, cette bibliothèque Python est accessible en open-source avec une licence permissive pour une contribution non restrictive. Plus d'info ici : OMEGAlpes
Auteurs : B. Delinchant, S. Hodencq, Y. Marechal, L. Morriet, C. Pajot, V. Reinbold, F. Wurtz.
NoLOAD (Non Linear Optimization using Automatic Differentiation)
Il s'agit d'un outil d'optimisation dans lequel le concepteur décrit le modèle paramétré du système qu'il souhaite dimensionner, ainsi que le cahier des charges (domaine d'exploration, les contraintes, les objectifs) et permet d'obtenir une solution optimale répondant aux objectifs.
L'outil s'appui pour cela sur la technique de dérivation automatique de code qui a beaucoup évoluée ces dernière années et a permis en particulier les avancées significatives de l’intelligence artificielle qui s’appuie sur cette technique lors des phases d’apprentissage.
NoLoad s'appui sur AutoGrad pour la derivation automatique de code. Le package SciPy pour l'optimisation et des librairies de post-processing (matplotlib, plotly). Le code source de NoLoad est accessible depuis le Cloud de l'université de Grenoble (https://gricad-gitlab.univ-grenoble-alpes.fr/design_optimization/noload). Par ailleurs, il est possible d'utiliser NoLoad sans installer l'infrastructure d'execution (Python+Libraries), pour cela, utiliser des notebooks depuis JupyterHub (jupyterhub.u-ga.fr) ou d'autres environnement cloud tels que Binder, CoCalc ou GoogleColab.
https://gricad-gitlab.univ-grenoble-alpes.fr/design_optimization/noload
Exemple d'utilisation en ligne de NoLoad pour le dimensionnement PV :
https://tinyurl.com/DimensionnementPV