Passer au contenu principal

Suez

Modélisation de l’usure des canalisations
Suez par Agence Web Kernix

Client

Suez

Expertises

Modélisation mathématique,
audit de code

Technos

Matlab
Python

Année

2022
Kernix a accompagné Suez dans l'audit et la refonte de leur système d'équation permettant la surveillance du réseau de distribution d'eau.

Contexte

Le département Engineer – Water and Materials in Distribution du CIRSEE, le centre de recherche et d’innovation de l’entreprise Suez, cherche à modéliser l’usure de son réseau de distribution d’eau en fonction du désinfectant utilisé.

Les temps de rupture et de fragilisation des canalisations sont calculés grâce à la résolution d’un système d’équations différentielles obtenu d’après l’étude de la cinétique de la réaction chimique entre le désinfectant, l’eau et le matériau. Une version de cet algorithme a été développée par Suez en 2007 sur le logiciel MatLab.

Aujourd’hui, le département cherche à étendre son modèle à d’autres désinfectants et à industrialiser ses algorithmes pour les rendre accessibles via une interface web. C’est en prévision de cette industrialisation et pour résoudre les dysfonctionnements du code dans ces nouvelles tâches que Suez s’est tournée vers Kernix.

  • Suez par Agence Web Kernix
  • Suez par Agence Web Kernix
  • Suez par Agence Web Kernix
  • Suez par Agence Web Kernix

Réalisation

Une première phase d’audit du code originel MatLab vise à mettre en lumière des points de vigilance en vue d’une industrialisation.

Pour aider Suez à adapter son code à de nouveaux produits, une phase rigoureuse de debug a ensuite été nécessaire. Celle-ci nous a amenés à nous intéresser au fonctionnement théorique du modèle et au système d’équations. Nous avons pu effectuer quelques correctifs dans les équations et suggérer des propositions d’évolutions du modèle en soulignant l’impact bénéfique que pourrait avoir la prise en compte des stabilisants chimiques dans leur système ainsi que certains réactifs originels. Compte tenu des conclusions de l’audit, des problématiques de temps d’exécution et de consommation de mémoire posées par la complexification du modèle, nous avons recommandé à Suez de procéder à la migration de son code en Python.

La migration en langage Python

Nous avons migré le code MatLab en Python. Loin d’être une traduction littérale, il s’agissait en réalité d’une restructuration globale du code. Nous en avons donc profité pour factoriser, documenter, packager, paralléliser ce code de manière à préparer son industrialisation.

Nous avons ensuite implémenté une api destinée à être exploitée par une plateforme plus globale de gestion des canalisations produite par Mahido. Cette API alimente également une interface graphique que nous avons développée à destination de l’équipe recherche.

Évolution du modèle

Le modèle repose au départ sur un système d’équations chimiques qui décrit la cinétique de la réaction des désinfectants (Dioxyde de Chlore ou Javel) avec les espèces présentes dans l’eau ou le tube de polyéthylène. Ces équations sont ensuite transcrites en un système d’équations différentielles. Ce système est particulièrement complexe puisqu’il doit être résolu sur toute l’épaisseur de la conduite avec un maillage pouvant atteindre plusieurs centaines de points. Nous avons donc un système de plusieurs centaines voire milliers d’équations différentielles non linéaires et dont les quantités varient de manière très hétérogène, ce qui a pour effet de “rigidifier” le système.

On ne peut donc pas utiliser des méthodes de résolution classique et avons dû investiguer en profondeur pour trouver le bon solveur à utiliser en python.

Nos recommandations à l’issue de la phase d’audit ont, de plus, augmenté le nombre d’équations de 50%, rendant le système insoluble. Nous avons donc dû faire appel à notre expertise mathématique et calculatoire pour modifier astucieusement le système sans le dénaturer et ainsi pouvoir le résoudre.

Résultats

Au début de la mission, Suez disposait :

  • d’un modèle pour le dioxyde de chlore fonctionnel mais comportant des erreurs,
  • d’un modèle pour la javel dysfonctionnel,
  • d’un code rédigé en matlab, mal fonctionnalisé, mal documenté,
  • d’une interface graphique datant de 2007

À l’issue de cette mission, Suez dispose désormais :

  • d’un modèle pour le dioxyde de chlore fonctionnel sans erreur et optimisé,
  • d’un modèle pour la javel encore imparfait mais plus fonctionnel, donnant du moins des approximations plus valables
  • d’un code python fonctionnalisé, documenté, packagé, rédigé selon les bonnes pratiques de développement et prêt à passer en production,
  • d’une api exploitable par une future plateforme permettant d’industrialiser le modèle,
  • d’une interface graphique spécifique à destination des chercheurs du CIRSEE.
Prochaine réalisation

Adequancy

Site institutionnel
Haut de page
Haut de page