Ce mémoire présente un outil de co-simulation utilisé pour lier plusieurs instances du logiciel Electromagnetic transients program (EMTP, version RV) à travers une ou plusieurs lignes (ou câbles) de transmission en parallèle. Le délai de propagation intrinsèque des lignes de transmission en font des points de découplage naturels d’un grand réseau de transmission en plusieurs sous-réseaux plus petits. Ces sous-réseaux peuvent ainsi être résolus en parallèle à chaque pas de temps et sans approximation dans les calculs. Un processus dit de co-simulation est alors établi, où chaque instance d’EMTP résolvant un sous-réseau est traitée par une unité de calcul (cœur) distincte et partage à chaque pas de temps les informations requises à travers la ligne de transmission de découplage. Ce type de parallélisation permet une réduction du temps de simulation d’un réseau donné. L’outil présenté ici permet une séparation arbitraire gérée par l’utilisateur, mais les gains de performance dépendent de la grandeur et des modèles contenus dans les sous-réseaux. Cet aspect est analysé dans le mémoire. D’autres aspects, tels que les délais de communication, sont également abordés.
L’outil de co-simulation présenté est développé selon une architecture extensible et permet donc d’ajouter des modèles ou des extensions aux méthodes actuelles. Les fichiers sources responsables du partage des données sont basés sur la norme européenne Functional Mock-Up Interface (FMI), utilisée pour la création d’une interface de co-simulation entre logiciels de simulation selon un schéma de communication maître-esclave(s).
La méthode de partage de données a été implémentée en utilisant des primitives de synchronisation de bas niveau appelées sémaphores. Les sémaphores sont largement utilisés dans les programmes informatiques pour résoudre des situations de concurrence critique lors de partage de données entre plusieurs programmes ou fils d’exécution. Ils sont utilisés autant pour verrouiller l’accès aux données utilisées par un fil d’exécution que comme variable de compétition (en anglais, condition variable), afin de gérer et de protéger les opérations de lecture et d’écriture des variables partagées. Dans cet outil, plusieurs sémaphores sont utilisés pour implémenter les opérations d’initialisation et de communication du maître et des esclaves.
L’approche présentée est testée sur des réseaux de référence réels. Les réseaux soumis peuvent être utilisés par la communauté scientifique pour vérifier les gains obtenus par la méthode de parallélisation utilisée dans ce mémoire et d’autres approches. Plusieurs de ces réseaux ont amené des gains notables de performance lors de la parallélisation. Deux cas, soit une variante des réseaux IEEE-39 barres et un réseau réel de grandes dimensions, ont donné des améliorations du temps de simulation de plus de 40% sur un ordinateur de travail standard à quatre cœurs. Les réseaux de référence présentés comportent des modèles détaillés de machines synchrones avec régulation de tension (excitatrice) et régulation de vitesse (gouverneur), des modèles de transformateurs avec données de magnétisation du noyau, des modèles exponentiels de charge et des modèles de lignes de transmission à paramètres constants.
This thesis presents a co-simulation tool used to link multiple instances of the Electromagnetic Transients Program (EMTP, RV version) through one or more transmission lines or cables. The intrinsic propagation delays of transmission lines allow to naturally decouple a large network into several separate subnetworks. The subnetworks can then be solved in parallel and without approximations. A co-simulation process is established, where each instance of EMTP running on a separate processing unit, solves its own subnetwork and shares data through linking transmission lines at every time-step. The resulting parallelization allows reducing the computing times for the total simulation process. With this approach, the network can be separated at arbitrary locations, but the computing time gains are dependent on the size and contents of the resulting subnetworks. This aspect is analyzed in this thesis through the presented benchmarks. Other aspects, such as communication delays between decoupled networks, are also studied.
The presented co-simulation tool is developed using an extensible framework that allows easily adding models and extensions to available methods. The tool is compliant with the Functional Mock-up Interface (FMI) co-simulation standard that is used for coupling two or more simulation tools in a co-simulation environment using a master-slave communication method. The FMI standard allows extending the co-simulation setup to include other simulation packages.
The co-simulation (sharing) method has been implemented using low-level synchronization primitives known as semaphores. They are widely used in computer programming to solve concurrency problems where data is shared between multiple programs or threads. They are used both as locks and as condition variables to protect and manage read/write operations on shared variables. For this tool, a number of binary semaphores have been implemented for initialization, and master-slave operations.
The presented approach is tested with practical power system benchmarks. The contributed benchmarks can be used for testing parallelization gains on practical power grids. Many of the test cases used in this project exhibited notable performance gains when using the co-simulation tool for parallelization of the simulation. In some cases, for the IEEE-39 bus system and for a practical power system, on a standard quad-core computer, this approach reduced computing times by more than 40%. The presented systems include detailed synchronous generator models with exciter and governor controls, transformers with magnetization data, exponential load models, and constant-parameter line models.