Model-driven co-simulation of Cyber-Physical Systems / Sahar Guermazi ; sous la direction de Sébastien Gérard

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : anglais / English

Ingénierie dirigée par les modèles

UML (informatique)

Internet des objets

Gérard, Sébastien (1971-.... ; informaticien) (Directeur de thèse / thesis advisor)

Pierre, Laurence (Président du jury de soutenance / praeses)

Vangheluwe, Hans (1963-....) (Rapporteur de la thèse / thesis reporter)

Babau, Jean-Philippe (Rapporteur de la thèse / thesis reporter)

Cuccuru, Arnaud (1979-....) (Membre du jury / opponent)

Dhouib, Saadia (Membre du jury / opponent)

Boulanger, Frédéric (19..-.... ; directeur de thèses en informatique) (Membre du jury / opponent)

Buffoni, Lena (Membre du jury / opponent)

Université Paris-Saclay (2015-2019) (Organisme de soutenance / degree-grantor)

École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....) (Ecole doctorale associée à la thèse / doctoral school)

Laboratoire d'intégration des systèmes et des technologies (Gif-sur-Yvette, Essonne ; 2001-....) (Laboratoire associé à la thèse / thesis associated laboratory)

Université Paris-Sud (1970-2019) (Autre partenaire associé à la thèse / thesis associated third party)

Résumé / Abstract : Les CPS intègrent des composants physiques et des composants logiciels. Ils sont particulièrement difficiles à modéliser et à vérifier. En effet, de par la nature hétérogène de leurs composants, leur conception nécessite l’utilisation de différents formalismes de modélisation. Les modèles de ces systèmes combinent à la fois des formalismes à temps continu, et d’autres à événements discrets, pour représenter respectivement leurs composants physiques et logiciels. La vérification de l'ensemble du système nécessite donc la composition de ces composants. La vérification globale peut être réalisée par co-simulation des différents composants. En particulier, la norme FMI offre une interface normative pour coupler plusieurs simulateurs dans un environnement de co-simulation, nommé « Master ». Celui-ci est chargé de fournir un algorithme pour une synchronisation efficace des différents composants du système, nommés FMU. Cependant, FMI est initialement conçu pour la co-simulation des processus physiques, avec un support limité des formalismes à événements discrets qui est modèle de calcul et de communication largement utilisé dans les environnements de modélisation spécifiques au logiciel. En particulier, aucune des solutions actuelles de co-simulation basées sur FMI ne permet de le prendre en considération les modèle UML. La thèse défendue dans ce document est que l'ingénierie système en général bénéficierait de l’intégration des modèles UML dans une approche de co-simulation basée sur la norme FMI. Cela permettra à un grand nombre de concepteurs logiciels d’évaluer le comportement de leurs composants logiciels dans un environnement simulé, et donc de les aider à faire les meilleurs choix de conception le plus tôt possible dans leur processus de développement. Cela pourrait également ouvrir de nouvelles perspectives intéressantes pour les ingénieurs système des CPS, en leur permettant d'envisager l’utilisation d’un langage largement utilisé pour la modélisation des composants logiciels de leurs systèmes. L'objectif de cette thèse est de définir et formaliser un environnement de co-simulation basé sur la norme FMI pour les CPS et intégrant des modèles UML pour la partie logicielle. Nous abordons principalement la question d’adaptation entre la sémantique d’exécution définie dans UML et celle de FMI. Notre contribution intervient à deux niveaux : localement, au niveau des modèles UML, et globalement au niveau du « Master ». Localement, nous mettons en place une approche incrémentale où nous abordons différents types de systèmes à événements discrets caractérisant les composants logiciels. Nous basons nos propositions sur les normes OMG fUML et PSCS qui définissent une sémantique d’exécution précise pour un sous-ensemble de UML. Ces deux normes constitue notre socle de définition nous donne une base intéressante et formelle pour l'intégration des modèles UML dans les approches de co-simulation de CPS. Pour chaque type de système, nous identifions d'abord un ensemble de règles pour le modéliser avec UML et les éventuelles extensions à fUML dans le cas où la sémantique d'exécution des éléments UML requis n’est pas définie dans fUML. Ensuite, au niveau global, nous proposons un algorithme de « Master » pour chaque type de systèmes. Les algorithmes de « Master » reposent sur l'adaptation de la sémantique d’exécution des modèles UML et celle de FMI. Sur cette base, le « Master » est capable de propager les données entre les composants et de les stimuler aux bonnes dates durant la simulation. L'approche est illustrée par des cas d'utilisation du domaine des bâtiments intelligents, où l’objectif est d’évaluer différentes stratégies de gestion d'énergie. Ces stratégies représentent des composants logiciels à différents niveaux de contrôle d’un bâtiment pour des fins d’optimisation de son auto-consommation en électricité.

Résumé / Abstract : Cyber Physical Systems (CPS) are integrations of physical and computational components. CPS are difficult to model and verify because the heterogeneous nature of their components requires many different modeling formalisms. The global verification of the system can be achieved by co-simulation. FMI standard offers a standard interface to couple two or more simulators in a co-simulation environment, known as master. This latter is responsible for providing an algorithm with efficient orchestration and synchronization of the involved components, known as FMUs. However, FMI was originally intended for co-simulation of physical processes, with limited support for formalisms such as DE and Dara-Flow, even if this kind of formalisms are commonly used to model the logic of software parts of a system. In particular, while UML is the reference standard for software modeling and is very commonly used in industry, none of the present-day FMI-based co-simulation solutions consider UML models. Our thesis is that system engineering in general would greatly benefit from the consideration of UML in FMI-based co-simulation approach. It would indeed enable a significant number of software designers to evaluate the behavior of their software components in their simulated environment, as soon as possible in their development processes, and therefore make early and better design decisions. It would also open new interesting perspectives for CPS system engineers, by allowing them to consider a widely used modeling language for the software parts of their systems. In this context, the objective of this work is to define an FMI-based co-simulation environment for CPS with integration of UML models for software part. Our contribution is twofold: locally at the level of UML models, and globally at the master level. At the local level, we set up an incremental approach where we address different kinds of discrete event systems characterizing the computational components. We base our proposals on OMG standards fUML and PSCS which define precise execution semantics for a subset of UML. They provide an interesting and formal basis for the integration of UML models in CPSs co-simulation approaches. For each kind of system, we first identify a set of rules to model it with UML and potential extensions to fUML in case where execution semantics of the required UML elements are not defined by fUML. Then, at the global level, we propose a master algorithm for each kind of systems. The proposed masters take into account not only external and internal dependencies between components and their capabilities, but also and especially their models of time. They rely on adaptation of fUML semantics to that of the FMI API. Based on these adaptations, the master algorithm is able both to propagate data between components and to trigger them at the correct points of time. The approach is illustrated with use cases from the energy domain where the purpose is to verify energy management strategies defined as software components at different levels of the control module of an energy system.