PHILIPPE LE-HUY
SIMULATION TEMPS RÉEL DE
CONVERTISSEURS DE PUISSANCE À L'AIDE DE
FPGA
Mémoire présenté
à la Faculté des études supérieures de l'Université Laval dans le cadre du programme de maîtrise en génie électrique
pour l'obtention du grade de maître es sôiences (M.Se.)
DÉPARTEMENT DE GÉNIE ÉLECTRIQUE ET DE GÉNIE INFORMATIQUE FACULTÉ DES SCIENCES ET DE GÉNIE
UNIVERSITÉ LAVAL QUÉBEC
2006
Ce mémoire présente l'étude de faisabilité d'un simulateur numérique temps réel de convertisseur de puissance à pas multiple utilisant un circuit Field Programmable Gâte
Array. Un faible pas de calcul est utilisé pour augmenter la précision de la simulation de
l'électronique de puissance et des autres éléments hautes fréquences. La partie sans commutation du réseau étudié est simulée avec un pas de 50 us sur un PowerPC 405D5. La partie rapide, le convertisseur et la modulation de la largeur d'impulsion, utilise un pas de calcul de 5 \xs et est simulée par un circuit FPGA dédié. Le tout est réalisé dans un
Virtex II Pro VP30 de Xilinx.
Les résultats obtenus avec ce simulateur sont présentés et validés à l'aide de
SimPowerSystems (MATLAB). L'effet du découplage entre la partie 50 u,s et la partie 5 p,s
est observé. L'ajout d'éléments réactifs aux points de découplage permet de réduire cet effet.
Avant-propos
Je tiens à remercier mon directeur de recherche, Hoang Le-Huy de l'Université Laval, mon codirecteur, Louis A. Dessaint de l'École de technologie supérieure, ainsi que les membres du Laboratoire de simulation de réseau de l'IREQ, plus particulièrement Sylvain Guérette, pour leur support et toute l'aide apportée. Sans leur contribution je n'aurais pu mener à terme ce projet.
Mes remerciements s'adressent aussi aux membres du LEEPCI pour toutes les discussions et pour leurs contributions, directes ou indirectes, à mes travaux de recherche. Finalement, je remercie le Conseil de recherches en sciences naturelles et en génie du Canada ainsi que la Chaire de recherche TransEnergie sur la simulation et la commande des réseaux électriques pour le financement de mes travaux de recherche.
Résumé ii Avant-propos iii Table des matières iv Liste des figures vi Liste des tableaux viii Chapitre 1 Introduction à la simulation des systèmes de puissance 1
1.1 Historique de la simulation des systèmes de puissance 1 1.2 Problématique actuelle de la simulation numérique des systèmes de puissance 4
1.3 Description du projet de recherche 5 Chapitre 2 Méthodes de simulation et modélisation des systèmes de puissance 8
2.1 Formulation des équations du réseau 8 2.1.1 Méthode des variables d'état 9
2.1.2 Méthode nodale 11 2.2 Méthodes d'intégration numérique 14
2.3 Modélisation des éléments de base 18 2.4 Modélisation des interrupteurs de puissance 21
2.5 Simulation numérique des systèmes de puissance 23 2.5.1 Méthode des variables d'état numérique 24
2.5.2 Méthode nodale numérique 25 2.5.3 Implémentation de la méthode nodale en temps réel 29
Chapitre 3 Technologie et environnement de développement des FPGA 32
3.1 Technologie FPGA 33 3.1.1 Structure interne 33 3.1.2 Ressources logiques 34
3.1.3 Routage 36 3.2 Technologie SoC 39
3.2.1 Noyaux IP (Intellectual Property Cores) 40
3.2.2 Flot de conception SoC 41 3.3 Langage de description de matériel VHDL 43
3.3.1 Historique 43 3.3.2 Description du VHDL 44
3.3.3 Flot de conception FPGA 45 3.4 Plateforme de développement utilisée 47
3.4.1 Virtex II Pro VP30 47 3.4.2 Logiciels de développement 48
Chapitre 4 Développement d'un simulateur temps réel sur FPGA 50
V
4.2 Représentation des nombres 53 4.3 Description du noyau de simulation 56
4.4 Description du modulateur MLI implémenté 60
4.5 Description du cadenceur 62 4.6 Simulateur à long pas PPC 62 4.7 Couplage entre le PPC et le noyau de simulation 66
Chapitre 5 Implémentation finale : résultats et analyse 68
5.1 Réseau test implanté dans leFPGA 68 5.1.1 Réseau avec commutation 69 5.1.2 Réseau sans commutation 72 5.2 Validation des résultats à l'aide de SimPowerSystems 74
5.2.1 Simulation de précision avec un pas de calcul de 1 fxs 74 5.2.2 Simulation de validation du fonctionnement du système à pas multiple 74
5.3 Résultats comparés pour le réseau test 75
5.4 Réseau test modifié 89 5.5 Ressources FPGA utilisées 100
5.6 Analyse temporelle du cycle d'opération 101
Chapitre 6 Conclusion 103 Liste de références 106
Figure 2.1 Circuit à trois états pour illustrer la méthode des variables d'état 9
Figure 2.2 Réseau analysé pour présenter la méthode nodale 12 Figure 2.3 Sinusoïde et les aires considérées pour l'intégration numérique 16
Figure 2.4 Résultat de l'intégration numérique 17 Figure 2.5 (a) Résistance linéaire et (b) non-linéaire 18
Figure 2.6 Modèle discret de l'inductance 19 Figure 2.7 Interrupteur L/RC (a) en conduction et (b) bloqué 22
Figure 2.8 Comportement de 2e ordre lors des commutations avec le modèle L/RC 23
Figure 2.9 Organigramme d'un simulateur de base utilisant l'approche nodale [12] 27
Figure 3.1 : Coupe transversale d'un FPGA Xilinx [38] 34 Figure 3.2 (a) Configurable Logic Block (CLB) et (b) tranche d'un CLB de la compagnie
Xilinx [31] 35
Figure 3.3 Détail de la partie supérieure d'une tranche Xilinx [31] 35 Figure 3.4 Structure interne d'un FPGA Xilinx de la famille Virtex [31] 37
Figure 3.5 Connexions possibles entre deux CLB [31] 38 Figure 3.6 : SoC dans un FPGA Virtex II Pro de Xilinx [42] 40
Figure 3.7 Flot de conception SoC simplifié 42 Figure 3.8 Illustration du flot de conception FPGA 46 Figure 3.9 Schéma de la carte de développement Amirix AP130 ainsi que du SoC dans le
FPGA Xilinx [43] 47 Figure 3.10 Logiciels utilisés au cours de ce projet et leurs fonctions 49
Figure 4.1 Représentation simplifiée d'un système STATCOM 51 Figure 4.2 Représentation vectorielle simplifié du fonctionnement du fonctionnement du
STATCOM [50] 51 Figure 4.3 Implémentation de la modulation de la largeur d'impulsion 52
Figure 4.4 Exemple de modulation de la largeur d'impulsion (porteuse : 2 kHz;
modulante sinusoïdale : 60 Hz, phase A, m = 0.9) 53 Figure 4.5 Oscillations divergentes provenant de la méthode d'intégration numérique.. 54
Figure 4.6 Troncature effectuée suite à une multiplication 55 Figure 4.7 Diagramme fonctionnel de l'algorithme de simulation 57
Figure 4.8 Module arithmétique servant au calcul des tensions nodales 58 Figure 4.9 Réalisation FPGA du générateur d'onde sinusoïdale et triangulaire 61
Figure 4.10 Diagramme d'état du cadenceur du noyau de simulation 63 Figure 4.11 Diagramme fonctionnel de l'algorithme de simulation du PPC 65 Figure 4.12 Couplage entre les deux parties du simulateur à pas multiple 66
Figure 5.1 Réseau test simulé à pas multiple 69 Figure 5.2 Réseau simulé dans la partie rapide du simulateur 69
Figure 5.3 Réseau simulé dans le PPC 72 Figure 5.4 Implémentation SPS du réseau sans commutation 75
Vil
Figure 5.6 Comparaison de la tension Vi entre le FPGA et les réseaux SPS (m=0.9) 76 Figure 5.7 Comparaison de la tension V4 entre le FPGA et les réseaux SPS (m=0.9) 76 Figure 5.8 Comparaison de la tension VA entre le FPGA et les réseaux SPS (m=0.9).... 77
Figure 5.9 Comparaison du courant Ijpa entre le FPGA et les réseaux SPS (m=0.9) 77
Figure 5.10 Comparaison de la relation entre la tension V4 et le courant Ijpa entre le FPGA
et les réseaux SPS (m=0.9) 78 Figure 5.11 Comparaison de la tension Vi entre le FPGA et les réseaux SPS (m=0.3)... 78
Figure 5.12 Comparaison de la tension V4 entre le FPGA et les réseaux SPS (m=0.3)... 79
Figure 5.13 Comparaison de la tension VA entre le FPGA et les réseaux SPS (m=0.3).. 79
Figure 5.14 Comparaison du courant Ijpa entre le FPGA et les réseaux SPS (m=0.3) 80
Figure 5.15 Comparaison de la relation entre la tension V4 et le courant Iipa entre le FPGA
et les réseaux SPS (m=0.3) 80 Figure 5.16 Spectre de puissance de la tension VA (m = 0.9) 82
Figure 5.17 Spectre de puissance de la tension V4 (FPGA, m = 0.9) 83 Figure 5.18 Spectre de puissance de la tension V4 (SPS découplé, m = 0.9) 83
Figure 5.19 Spectre de puissance de la tension V4 (SPS 1 us, m = 0.9) 84 Figure 5.20 Spectre de puissance de la tension V4 (FPGA, m = 0.3) 86 Figure 5.21 Spectre de puissance de la tension V4 (SPS découplé m = 0.3) 87 Figure 5.22 Spectre de puissance de la tension V4 (SPS 1 us, m = 0.3) 87
Figure 5.23 Réseau test modifié 90 Figure 5.24 Tension Vj du réseau test modifié (m = 0.9 et C = 750 uF) 91
Figure 5.25 Tension V4 du réseau test modifié (m = 0.9 et C = 750 uF) 91 Figure 5.26 Tension VA du réseau test modifié (m = 0.9 et C = 750 uF) 92 Figure 5.27 Courant Ijpa du réseau test modifié (m = 0.9 et C = 750 uF) 92
Figure 5.28 Relation entre la tension V4 et le courant Ijpa du réseau test modifié (m = 0.9
etC = 750uF) 93 Figure 5.29 Tension Vi du réseau test modifié (m = 0.3 et C = 750 uF) 93
Figure 5.30 Tension V4 du réseau test modifié (m = 0.3 et C = 750 uF) 94
Figure 5.31 Tension VA du réseau test modifié (m = 0.3 et C = 750 uF) 94
Figure 5.32 Courant Ijpa du réseau test modifié (m = 0.3 et C = 750 uF) 95
Figure 5.33 Relation entre la tension V4 et le courant Iipa du réseau test modifié (m = 0.3
etC = 750uF) 95 Figure 5.34 Contenu spectral de la tension V4 (FPGA, m = 0.9, C = 750 uF) 96
Figure 5.35 Contenu spectral de la tension V4 (SPS découplé, m = 0.9, C = 750 uF) 97 Figure 5.36 Contenu spectral de la tension V4 (SPS 1 us, m = 0.9, C = 750 uF) 97 Figure 5.37 Contenu spectral de la tension V4 (FPGA, m = 0.3, C = 750 uF) 98
Figure 5.38 Contenu spectral de la tension V4 (SPS découplé, m = 0.3, C = 750 uF) 98 Figure 5.39 Contenu spectral de la tension V4 (SPS 1 us, m = 0.3, C = 750 uF) 99
Figure 5.40 Représentation temporelle de l'algorithme du PPC 102 Figure 5.41 Représentation temporelle de l'algorithme du noyau de simulation 102
Tableau 3.1: Caractéristiques du Xilinx Virtex II Pro VP30 -6 FF896 [44] 48
Tableau 5.1 Paramètres du réseau avec commutation 70 Tableau 5.2 Paramètres du réseau sans commutation 73
Tableau 5.3 Composantes spectrales de VA comparées (m = 0.9) 82
Tableau 5.4 Liste du contenu fréquentiel de V4 pour m = 0.9 85
Tableau 5.5 Liste du contenu fréquentiel de V4 pour m = 0.3 88 Tableau 5.6 Ressources FPGA utilisées pour l'implémentation du simulateur temps réel.
Chapitre 1
Introduction à la simulation des
systèmes de puissance
Ce chapitre présente le contexte de ce projet en commençant par un historique de la simulation des systèmes de puissance. Puis la problématique actuelle de la simulation numérique temps réel des systèmes de puissance est discutée et finalement l'apport du présent projet est présenté.
1.1 Historique de la simulation des systèmes de puissance
Depuis plus d'un siècle, la simulation des systèmes de puissance constitue un phénomène d'intérêt. Au début du 20e siècle, les outils de simulation étaient limités à des méthodes analytiques et aux analyseurs de réseaux analogiques. Parmi les outils analytiques on compte diverses représentations et méthodes de calcul afin de rendre possible l'analyse de réseaux électriques d'envergure telles la notation phaseur et la représentation symétrique. Ces outils permettent de réduire l'étude d'un système polyphasé à l'analyse de phaseurs monophasés.
Les analyseurs analogiques sont utilisés pour simuler l'équivalent monophasé du système étudié. Ce dernier est représenté par un ensemble d'éléments discrets (résistances, condensateurs, inductances, etc.) assemblés pour modeliser les divers équipements que l'on retrouve dans les systèmes étudiés tels les transformateurs, les lignes de transport et les charges. Des sources alternatives ajustables en amplitude et en phase servent
d'alimentation pour le réseau équivalent. Les analyseurs analogiques servent principalement à l'étude de défaut en régime sinusoïdal permanent et à l'étude d'écoulement de puissance. Cependant ils ne peuvent fournir d'information sur le régime transitoire [26].
L'émergence d'équipement ayant des temps de réaction faibles a motivé le développement de la génération suivante de simulateurs. Les analyseurs de transitoire de réseaux ont été développés au milieu des années 50. Similaires à leurs prédécesseurs, ils représentent le système étudié à l'aide d'éléments discrets mais ils sont en mesure de fournir les informations nécessaires au développement et au test d'équipements rapides. Les tests sont effectués à des échelles de tension, de courant et de puissance plus faibles afin de faciliter la réalisation physique (ex. 735 kV est représenté par 100 V). Des modèles analogiques complets de machines et d'équipements complexes tels les convertisseurs de puissance ont été développés mais certains phénomènes ne peuvent être représentés à cause de la différence d'échelle de puissance et de dimensions physiques, particulièrement au niveau des non-linéarités magnétiques [28].
Les inconvénients reliés aux analyseurs de transitoire (coûts d'opération, espace, entretien, changements de topologie longs et coûteux, etc.) ont motivé le développement des premiers simulateurs numériques à la fin des années 60. Le ElectroMagnetic
Transient Program (EMTP), développé par Hermann Dommel, permet la simulation des
systèmes de puissance en temps différé avec une largeur de bande limitée uniquement par le pas de calcul utilisé pour effectuer les simulations [6, 27]. Une vaste quantité de logiciels ont été développés en utilisant les algorithmes de Dommel. EMTP et ses dérivés sont utilisés pour produire des jeux de données propres à certaines situations. Par la suite, ces jeux de données sont utilisés pour générer les stimuli nécessaires pour tester la réponse de divers équipements.
Puisque les simulations sont effectuées en temps différé, n'importe quel ordinateur en mesure d'exécuter EMTP peut être utilisé pour effectuer la simulation. Le temps de calcul est proportionnel à la complexité du système simulé et inversement proportionnel à la longueur du pas de calcul et à la puissance de calcul de l'ordinateur utilisé.
3
Le besoin d'interaction entre le simulateur et l'équipement testé a poussé le développement de la seconde génération de simulateur numérique. Afin de tenir compte des réactions de l'équipement, la simulation est effectuée en temps réel et en boucle fermée (Hardware In the Loop, HIL). C'est-à-dire que les calculs et la communication entre le simulateur et l'équipement sont exécutés en un laps de temps égal ou inférieur au pas de calcul choisi. Par exemple, si on désire tester un contrôleur de convertisseur de puissance, le simulateur fournirait au contrôleur les tensions et courants nécessaires à son algorithme de commande tout en lisant de ce dernier les signaux de commande pour le convertisseur. Le simulateur, qui simule le convertisseur, ajustera la simulation en fonction des signaux de commande provenant du contrôleur. Au pas de calcul suivant, les nouvelles conditions d'opération seront envoyées au contrôleur. À toute fin pratique, si la précision de la simulation est adéquate, le contrôleur se comportera exactement comme s'il était réellement connecté à un convertisseur de puissance. Il est alors possible de valider son comportement et d'y apporter des modifications si les résultats ne sont pas satisfaisants.
Cependant les performances des engins de calcul utilisés limitent grandement la complexité des systèmes simulés ainsi que la modélisation de certains éléments nécessitant beaucoup de calculs (modèle complet de centrale électrique (système de vannes, turbine, alternateur et systèmes de régulation), électronique de puissance, etc.). Afin d'alléger le fardeau de calcul, certains éléments du système simulé étaient réalisés analogiquement, à l'instar des analyseurs analogiques et des analyseurs de transitoires, rendant ainsi possible la simulation en temps réel. On parle alors de simulateurs temps réel hybrides.
Au début des années 90, avec l'évolution des processeurs et des techniques de communication de données, les performances des engins de calcul ont progressé énormément : des ordinateurs monoprocesseurs utilisés pour les simulations en temps différé aux structures complexes de superordinateurs multiprocesseurs utilisées par Hypersim [21, 22 et 52], RTDS [23, 24 et 26] et Opal-RT [20 et 25] par exemple. Les simulateurs sont donc devenus totalement numériques, à l'exception de la circuiterie nécessaire à la communication avec l'équipement testé.
1.2 Problématique actuelle de la simulation numérique des systèmes de puissance
Tel que mentionné précédemment, la largeur du pas de calcul utilisé dans les algorithmes numériques dicte directement la largeur de bande représentable avec le simulateur. Ainsi l'augmentation des performances des engins de calcul a entraîné la diminution du pas de calcul. Aujourd'hui, la valeur standard pour simuler un système opérant à 60 Hz est d'environ 50 (O.S. Cependant la simulation de phénomènes transitoires hautes fréquences, telle la simulation de dispositif d'électronique de puissance commutée à des fréquences de l'ordre des kHz, requiert un pas de calcul beaucoup plus faible, de l'ordre des microsecondes. Pour simuler ce genre de dispositifs tout en conservant un pas de calcul de 50 fis, il faut utiliser un modèle moyen, qui fait abstraction des commutations, ou une méthode d'interpolation qui permet de tenir compte des commutations entre les pas de calcul.
Afin de représenter adéquatement les phénomènes hautes fréquences, un pas de calcul inférieur à 50 (as est nécessaire. Cependant, pour le reste du système simulé, qui opère à basse fréquence, un tel pas de calcul est inutile. De plus, l'engin de calcul n'est pas nécessairement en mesure d'opérer en temps réel s'il simule tout le système avec un pas de calcul aussi faible. De plus, la limite inférieure du pas de calcul est généralement imposée par des contraintes temporelles de communication et de synchronisation provenant de l'architecture du calculateur utilisé. Cette limite est généralement de l'ordre de 20 |is, rendant impossible la simulation avec des pas de calcul de l'ordre des microsecondes.
Afin de palier à ces limitations, la simulation à pas multiple est une approche intéressante telle qu'illustrée en [29]. Cette méthode consiste à scinder le réseau à simuler en deux parties, la lente (< -200 Hz) et la rapide (> -200 Hz), et de les simuler séparément à deux pas de calcul différents'. Ainsi, un pas de calcul approprié pourrait être utilisé afin de maximiser la précision tout en gardant un l'effort de calcul acceptable pour chacune des parties.
1 La limite de 200 Hz a été établie en fonction d'une résolution temporelle de 1% avec un pas de calcul de 50 us. Théoriquement, un tel pas de calcul permet de représenter des signaux de fréquence allant jusqu'à 10 kHz mais la résolution sera alors peu intéressante.
5 1.3 Description du projet de recherche
Ce mémoire est une étude de faisabilité de l'implémentation de la méthode à pas multiple à l'aide d'un Field Programmable Gâte Array (FPGA) comme calculateur pour la partie rapide. La plateforme FPGA est configurée pour effectuer les calculs nécessaires pour la simulation d'un convertisseur de puissance triphasé avec un pas de calcul de 5 u.s pendant que le reste du réseau de puissance est simulé avec un engin de calcul conventionnel avec un pas de 50 (as. Les apports de ce projet résident dans la méthode de simulation utilisée ainsi que dans la réalisation d'un simulateur temps réel sur FPGA.
* Méthode de simulation à pas multiple
Telle que présentée en [29], la méthode à pas multiple s'avère être une bonne solution pour augmenter la précision pour la simulation des dispositifs hautes fréquences de plus en plus utilisés dans les systèmes de puissance. Le présent projet se trouve à explorer cette approche pour une éventuelle implémentation dans les logiciels de simulation du Laboratoire de simulation de réseau de l'Institut de Recherche en Électricité du Québec (IREQ). Les avantages ainsi que les désavantages rencontrés résultant de cette méthode sont discutés au chapitre 5.
• Simulateur temps réel sur FPGA
L'engin de calcul utilisé en [29] pour implémenter la méthode à pas multiple consiste en une carte dédiée munie de deux processeurs très hautes performances ainsi que de plusieurs périphériques optimisant la communication entre les deux processeurs et le reste du simulateur. Une telle structure physique, quoique très performante, est très coûteuse en temps de développement et en argent. Afin de réduire ces deux aspects, ce projet est réalisé en utilisant des composantes commercialement disponibles (Commercial Off The
Shelf, COTS), soit un ordinateur personnel et une carte de développement FPGA Amirix.
L'utilisation de FPGA pour la simulation des systèmes de puissance n'est pas nouvelle [53-54] mais elle demeure peu explorée. En [30] on présente l'utilisation d'un FPGA
comme engin de calcul pour un simulateur temps réel sans toutefois réaliser le dit simulateur. L'utilisation d'un FPGA est motivée par la nature « malléable » de ces puces, c'est-à-dire qu'elles peuvent être optimisées spécifiquement pour la tâche à accomplir, contrairement à un processeur ou un Digital Signal Processor (DSP) conventionnel. Cela implique que tous les registres, bus de communication et les mémoires ont exactement la taille nécessaire, ce qui maximise l'utilisation des ressources disponibles.
Généralement, un processeur conventionnel exécute séquentiellement un programme, qui est une suite d'instructions réalisant une tâche ou une certaine fonction. Pour exécuter une multiplication matricielle par exemple, chaque sous-produit doit être évalué séquentiellement ainsi que leur somme. Dans le cas d'un FPGA, il est possible d'exécuter toutes les multiplications simultanément et par la suite toutes les additions. Ce traitement parallèle permet d'effectuer les calculs nécessaires à la simulation temps réel beaucoup plus rapidement puisque ces derniers se composent principalement d'opérations mathématiques de base répétées à plusieurs reprises.
Cependant, les processeurs conventionnels sont généralement beaucoup plus précis puisqu'ils sont munis d'unités d'arithmétique et de logique traitant des nombres en virgule flottante de 32 ou de 64 bits. À l'instar de beaucoup d'éléments dans la conception sur FPGA, la précision utilisée à chaque étape du traitement doit être définie par le concepteur. La conception sur FPGA n'échappe pas à l'éternel compromis rapidité/précision/ressources utilisées. Il est impossible d'optimiser ces trois aspects en même temps : l'optimisation d'un de ces aspects se fait toujours au détriment des deux autres. De plus, les FPGA excellent au traitement de plusieurs flots de données indépendants et leur performance diminuent considérablement en fonction du nombre d'échange entre les flots.
Le présent mémoire se divise ainsi : le chapitre 2 présente les méthodes de simulation numérique des systèmes de puissance ainsi que la modélisation utilisée tandis que le troisième chapitre discute de la technologie FPGA ainsi que du développement de System
7 utilisant la méthode de simulation à pas multiple à l'aide d'un FPGA; le chapitre 5 présente les résultats obtenus par le simulateur temps réel implémente et discute de la validité de ses résultats et finalement, le chapitre 6 termine ce mémoire en soulignant les points principaux et en présentant les possibilités futures de ce projet.
Méthodes de simulation et
modélisation des systèmes de
puissance
Ce chapitre présente les bases de la simulation numérique en commençant par la formulation des systèmes d'équations représentant le réseau électrique. Par la suite il sera question de la modélisation des éléments de base ainsi que de la modélisation des interrupteurs de puissance pour finalement discuter de la simulation numérique des systèmes de puissance et de certaines considérations pour l'implémentation en temps réel de la méthode nodale.
2.1 Formulation des équations du réseau
Plusieurs méthodes ont été développées pour analyser les systèmes de puissance. La méthode nodale et la méthode des variables d'état, ainsi que tous leurs dérivés, sont les plus utilisées [1-5, 19, 29-30] puisqu'elles présentent une précision acceptable tout en étant peu complexe à implémenter et rapide à exécuter. Les deux méthodes seront présentées ici. Une attention plus particulière sera portée à la méthode nodale puisqu'elle est utilisée dans le cadre de ce projet.
<)
2.1.1 Méthode des variables d'état
Le principal avantage de cette méthode est la possibilité de modéliser et de simuler simultanément tous les éléments d'un système de puissance (éléments linéaires, éléments non-linéaires, systèmes de commande et l'électronique de puissance) de façon unifiée. Selon cette méthode, un système est défini par les équations suivantes :
x = Ax + Bu
y=Cx + Du (2-1)
où x est le vecteur de variables d'état, u le vecteur d'entrées, y le vecteur de sorties et A,
B, C et D sont les matrices d'états. Dans un réseau électrique, les variables d'état
représentent les courants circulant dans les inductances et les tensions aux bornes des condensateurs. À l'instar de la méthode nodale, les lois de Kirchoff sont utilisées pour construire les matrices d'état. L'analyse du circuit de la figure 2.1 est faite afin de présenter la méthode.
VCH
Figure 2.1 Circuit à trois états pour illustrer la méthode des variables d'état.
Ce circuit comprend trois états, iu, iu et vc, puisqu'il contient trois éléments réactifs indépendants. Le courant de source, la tension aux bornes de la charge composée de Rj. et
L2 ainsi que le courant circulant dans le condensateur sont les sorties du système, y.
L'entrée du système consiste de la valeur de la source de tension. Maintenant que les variables d'état, les entrées et les sorties sont définies, il faut établir les matrices d'état A,
B, C et D. Afin de déterminer ces matrices, il faut débuter par les relations
vL=L ic =C diL dt dvc dt (2-2)
Puis, en utilisant la loi des mailles et la loi des nœuds, on trouve les équations du système. En mettant en évidence les états de ce circuit on trouve les équations suivantes :
(2-3) (2-4) (2-5) diu _{vs-vc) dt
h
diL2 Avc-R2hi) dt L2 dvc dt _ (»u ~ki) , (vs~vc C RXC )En remaniant légèrement les équations précédentes afin d'obtenir un système d'équation de la forme x = Ax + Bu on obtient : d ki dt .vc_ 0 0
-i/A
"
H\ -l/L, 0 ~RllL2 1/L2 ki + 0 1/C-\lc
-i//?,cj
yc.
1/R.CM-
(2-6)On exprime le courant de la source, le courant du condensateur et la tension de la charge en fonction des variables d'état et de l'entrée :
h =ki+(vs-vc)/R\
k=ki - ki+(v, - vc y Ri
(2-7) (2-8) (2-9) Pour compléter le jeu d'équations modélisant le circuit de la figure 2.1, il faut ramener les équations sous la forme
11
y = Cx + Du
On obtient alors le système d'équations décrivant les sorties du système :
[ v j . (2-10)
La construction des matrices d'état n'est pas triviale et ne peut se faire aisément par inspection contrairement à la construction de la matrice d'admittance de la méthode nodale.
2.1.2 Méthode nodale
La méthode nodale est basée sur l'application de la loi des nœuds et de la loi des mailles de Kirchoff. Ses avantages résident dans le fait que le système d'équations relatif à une certaine topologie peut être établi rapidement par inspection et que le système étudié peut être segmenté en plusieurs sous-systèmes plus simples à résoudre. La majorité des simulateurs temps réel sont basés sur la méthode nodale [1, 2, 4, 13]. L'implantation logicielle est généralement similaire.
Principe de base
La méthode de résolution nodale consiste des étapes suivantes [46 et 55] : 1. Définir les tensions nodales ainsi que le nœud de référence.
2. Exprimer les tensions de branches en fonction des tensions nodales.
3. Écrire les équations de courant pour tous les nœuds à l'exception du nœud de référence.
'CH
1 0 -\/Rx h\ 1/tf,
1 - 1 1/tf, lL2 1
V*.
4. Insérer les relations v-i des éléments et les équations de l'étape 2 dans les équations de l'étape 3 pour obtenir le système d'équation représentant le système étudié.
5. Manipuler les équations afin d'obtenir un système de la forme Yv =i où F est la matrice d'admittance, v le vecteur de tension nodale et i le vecteur d'injection de courant.
6. Inverser la matrice Y.
7. Résoudre le système v = Y~H.
L'obtention des matrices et vecteurs décrivant le système est beaucoup plus aisée que dans le cas de la méthode des variables d'état. Afin d'illustrer la méthode nodale, l'analyse du réseau présenté à la figure 2.2 sera effectuée. Les tensions nodales y sont déjà spécifiées ainsi que le nœud de référence.
R1 L1 L3 L2 R2 Vs1
r
L
-VW- « - ' W - —J^^Tnnn—
£ ci
W^*
^ C21
T
©Vs2
Figure 2.2 Réseau analysé pour présenter la méthode nodale. Suite à l'exécution des étapes 2 à 4, on obtient le système d'équations suivant :
v
sl-v
A_v
A-v
B K, L,sM
=
v i
+
,
c
L{s L3s A T VD+VCC2S JLVÎ I 3 2 (2-11) (2-12) (2-13)13
V,
L2s
VD-Vs2
(2-14)
On regroupe les termes relatifs aux tensions nodales d'un côté de l'égalité et de l'autre les termes relatifs aux sources. On obtient ainsi un système de la forme Yv = i.
/A 1 Lxs 0 0 1 + + C{s L,5 L3s L3i' 0 L3s 1 ^ • + + C,s ' M > * ' ' ' ' ' L2s 0 0 'VA" Vn ~VSi~ 0 1 Vc 0 L2s 1 * 1 + — L2s R2 Va. VS2 - R2 „ (2-15)
On remarque que la matrice d'admittance peut être obtenue par inspection et que si le système possède plusieurs nœuds qui ne sont pas reliés, la matrice d'admittance sera creuse. Cette caractéristique facilite la segmentation du réseau analysé en plusieurs sous-réseaux de plus petite taille, ce qui scinde la tâche de calcul en plusieurs parties qui peuvent être effectuées sur différents processeurs. Ainsi, la méthode nodale se prête bien à une implémentation multiprocesseur.
Finalement, il ne reste qu'à inverser la matrice d'admittance et à la multiplier avec le vecteur d'injection de courant pour obtenir les tensions nodales.
Traitement des non-linéarités
Dans la méthode nodale, les non-linéarités sont traitées comme une modification de la matrice d'admittance ou du vecteur d'injection de courant. Les trois cas suivants illustrent bien l'idée.
Premièrement, pour le cas des éléments saturables, telle l'inductance de magnétisation d'un transformateur par exemple, ils peuvent être modélisés par une admittance variable. Selon les conditions d'opération, le simulateur détermine la région de fonctionnement de l'élément saturable et modifie son admittance s'il y a un changement de zone d'opération.
L'admittance non-linéaire de l'élément saturable est donc approximée par plusieurs régions linéaires. Dans ce cas, les dimensions de la matrice d'admittance ne varient pas, mais son contenu est modifié et son inverse doit être recalculé.
Deuxièmement, il est aussi possible de modéliser certains éléments non-linéaires par une impédance constante en parallèle avec une source de courant commandée par les conditions d'opération de l'élément. Dans ce cas, la matrice d'admittance est constante tout au long de la simulation et c'est uniquement au niveau de l'injection de courant que les non-linéarités se manifestent. Ce genre de traitement est très intéressant pour les applications temps réel puisqu'une modification au vecteur d'injection de courant est beaucoup moins coûteuse qu'une modification au niveau de la matrice d'admittance qui implique une nouvelle inversion de matrice pour pouvoir poursuivre la simulation.
Troisièmement, les interrupteurs de puissance peuvent être traités comme des interrupteurs idéaux, c'est-à-dire impédance nulle lorsqu'ils conduisent et infinie lorsqu'ils sont ouverts. Le réseau se trouve donc réduit d'un nœud lorsqu'un interrupteur conduit, ce qui a comme effet de réduire la taille du système d'équations modélisant le réseau d'une équation. Une nouvelle matrice d'admittance doit être calculée par la suite. Lorsque cet interrupteur s'ouvre, le système d'équation revient à sa taille originale. Il s'agit alors d'un traitement avec topologie variable. Cette approche est beaucoup moins intéressante pour une implémentation en temps réel parce qu'il faut reformuler le système d'équation puis inverser la nouvelle matrice d'admittance.
2.2 Méthodes d'intégration numérique
Plusieurs techniques d'intégration numérique peuvent être utilisées pour la simulation numérique des systèmes de puissance. Cependant, elles ne peuvent pas toutes s'appliquer en temps réel de par leur nature itérative ou leur complexité qui les rendent trop coûteuses en temps de calcul. Les plus communément utilisées pour les simulateurs temps réel sont la méthode trapézoïdale et la méthode d'Euler arrière.
15 Ces deux méthodes proviennent de la série de Taylor tronquée au deuxième terme. La méthode Euler arrière évalue le point futur d'une fonction en utilisant la dérivée de la fonction au point futur contrairement à la méthode Euler avant qui utilise la dérivée au point présent pour effectuer l'estimation du point futur.
y(n + l)=y(n) + T-y'{n + l) (2-16)
où T est la longueur du pas de calcul employé et n l'indice de temps. On trouve de cette dernière équation un équivalent pour l'opérateur s :
(z-l)
Î S ^ . (2-17)
T-z
La méthode Euler arrière entraîne une erreur d'estimation proportionnelle à r [49]. Cela implique que si le pas de calcul est réduit de moitié, l'erreur sera divisée par quatre. La méthode trapézoïdale, qui est un cas particulier de la méthode Runge-Kutta d'ordre deux, utilise plutôt la moyenne de la dérivé au point présent et au point futur, ce qui implique une erreur d'estimation proportionnelle à T [49].
y(n + l)=y(n)+T.[y'{n)+rtn + l)] (2-18)
On peut donc en déduire une autre approximation de l'opérateur de dérivation.
s = -< Z~
r ai
(2-19)
Ces deux méthodes sont dites implicites puisqu'elles nécessitent la connaissance d'informations relatives au point recherché tandis qu'une méthode explicite, la méthode Euler avant par exemple, ne nécessite que les données disponibles provenant des pas de calcul précédents. Cette distinction est importante parce que les méthodes implicites sont plus précises que les méthodes explicites mais leur résolution est un peu plus complexe. De plus, la méthode Euler arrière est de premier ordre tandis que la méthode trapézoïdale est de deuxième ordre. Plus l'ordre d'une méthode d'intégration numérique est élevé,
plus la précision est élevée. Évidemment, la complexité des algorithmes augmente aussi avec l'ordre. Cependant il est important de noter qu'une méthode d'ordre supérieur impose plus de restriction sur les conditions d'utilisation afin d'assurer la stabilité de l'algorithme, notamment la valeur du pas de calcul [14].
Les figures suivantes illustrent l'intégration d'une onde sinusoïdale avec les méthodes Euler avant, Euler arrière et trapézoïdale. En observant la figure 2.3, on note que l'aire sous la courbe considérée pour la méthode Euler avant est en retard sur la forme d'onde intégrée contrairement à celle employée pour la méthode arrière qui est en avance. L'aire considérée pour la méthode trapézoïdale est la moyenne de celles utilisées pour les deux méthodes Euler comme on peut le voir à la figure 2.3.
Intégration numérique
17
Intégration numérique: résultat
81 1 ; 1 1 1 1 1 1 T
Temps (s)
Figure 2.4 Résultat de l'intégration numérique.
La figure 2.4 compare le résultat de l'intégration numérique avec ces trois méthodes à la solution analytique. On constate que la méthode trapézoïdale donne de très bons résultats dans ce cas-ci tandis que les deux autres méthodes présentent des résultats erronés. Cet exemple illustre bien la différence de précision des trois méthodes lorsqu'elles sont utilisées avec un même pas de calcul. En diminuant le pas de calcul, la précision des méthodes Euler arrière et avant augmenterait. Ainsi, en diminuant la valeur du pas de calcul, il serait possible d'obtenir la même précision qu'avec la méthode trapézoïdale telle qu'illustrée. De plus, on constate encore une fois que les résultats obtenus avec la méthode Euler avant sont en retard et que ceux obtenus avec la méthode Euler arrière sont en avance. On constate donc que dans cet exemple, la méthode Euler avant sous-estime l'air sous la courbe tandis que la méthode arrière la sursous-estime, ce qui entraîne dans les deux cas une erreur d'approximation.
2.3 Modélisation des éléments de base
En 1969 H. W. Dommel posa les bases du ElectroMagnetic Transient Program (EMTP) [27]. Cet algorithme qui implante la méthode nodale de résolution fut premièrement utilisé pour la simulation numérique des systèmes de puissance en temps différé puis, lorsque la puissance des engins de calcul fut suffisante, cet algorithme fut utilisé pour réaliser les premiers simulateurs numériques en temps réel.
Résistance
La modélisation de résistances linéaires est simple. Leur valeur d'admittance est directement utilisée dans la matrice d'admittance et elles ne participent pas à l'injection de courant.
Il est possible de modéliser une résistance non-linéaire en mémorisant la tension à ses bornes et en ajustant la valeur de résistance utilisée dans la matrice d'admittance en fonction des conditions d'opération. À chaque changement d'admittance, une nouvelle matrice doit être calculée. Plusieurs éléments non-linéaires sont modélisés de façon similaire.
(a) (b)
Inductance
Figure 2.5 (a) Résistance linéaire et (b) non-linéaire.
Les inductances sont modélisées par une résistance en parallèle avec une source de courant dont la valeur dépend des conditions précédentes aux bornes de l'élément.
19
IL
v
LZ
L> f^JhistiXn-l)
J
Figure 2.6 Modèle discret de l'inductance.
La modélisation EMTP utilise la relation v-i de l'inductance, suite à une transformation de Laplace, comme point de départ et y applique l'intégration numérique trapézoïdale
(2-19): 1 Ls V, ^ = - / , r z - 1 z + 1 LK ' 2L/T (2-20) (2-21) (2-22)
En ramenant (2-22) dans le domaine du temps et en décalant cette équation d'un pas de calcul on obtient
■;H=
v
-
(
y^;(H)
h(n) = ^ ; + histL(n-l) (2-23) (2-24) où hist, (n -1) = -J^~■—- + i. (n -1) (2-25)La résistance équivalente d'une inductance avec l'intégration trapézoïdale est de 2L/T et à l'instant n la source de courant en parallèle avec la résistance a une valeur de
histL(n — l).
Si on utilise la méthode Euler arrière en substituant (2-17) dans (2-20) et en effectuant les mêmes manipulations que précédemment, l'inductance sera représentée par
histL(n-l) = iL(n-\). (2-27)
iL{n) = ^ + histL{n-l) (2-26)
Avec cette méthode, on constate que la valeur de l'impédance équivalente est de L/T et que la source de courant est directement égale au courant qui circulait dans l'inductance au pas précédent.
Condensateur
La modélisation des condensateurs est similaire à celle des inductances. Ainsi un condensateur est représenté par les équations suivantes lorsque la méthode trapézoïdale est utilisée :
ic{n) = ^ + histc(n-l) (2-28)
histc{n-\) = -V-^0--ic{n-\). (2-29)
L'impédance équivalente a donc une valeur de T/2C et la source de courant a une forme similaire à celle de la représentation de l'inductance.
En utilisant la méthode Euler arrière, on obtient
21
hist
c{n-l) = -
V-^0. (2-31)
où le terme T/Cest la valeur de l'impédance équivalente.
2.4 Modélisation des interrupteurs de puissance
Les interrupteurs de puissance peuvent être représentés de plusieurs manières qui varient au niveau de la précision de la représentation du comportement physique ainsi qu'au niveau de la complexité du traitement. Les trois modèles présentés ici, soit le modèle idéal, le modèle à deux impédances et le modèle L/RC, sont fréquemment utilisés pour la simulation temps réel.
Modèle idéal
Ce modèle consiste à représenter un interrupteur en conduction par un court-circuit (Ron =
0) et un interrupteur bloqué par un circuit ouvert (R0ff = infini). Malgré la simplicité de ce
modèle, son implémentation n'est pas triviale puisqu'à chaque fois qu'un interrupteur change d'état le système est modifié, une nouvelle matrice d'admittance doit être calculée. On parle alors d'une modélisation à topologie variable. De plus, ce modèle d'interrupteur néglige totalement le comportement physique des interrupteurs de puissance puisqu'il ne tient pas compte de la chute de tension aux bornes de l'interrupteur, de l'impédance, du temps de réaction ainsi que du comportement non-linéaire des interrupteurs de puissance.
Modèle Ron/ R0ff
En utilisant le modèle idéal et en utilisant une résistance en conduction non nulle et une résistance de blocage extrêmement importante mais finie, cela permet de conserver la topologie du système. Un changement d'état d'interrupteur entraîne un changement du
contenu de la matrice d'admittance, ce qui peut être problématique lorsque la simulation est effectuée en temps réel puisqu'il est alors nécessaire de recalculer Y1. Ce modèle est
intéressant pour les systèmes qui ne contiennent pas beaucoup d'interrupteurs. Une valeur non nulle et finie pour l'impédance de l'interrupteur permet de modeliser la chute de tension aux bornes de l'interrupteur ainsi que les courants de fuite lorsque ce dernier est bloqué.
Modèle L/RC
Initialement présenté dans [45], ce modèle a été récemment modifié en [29]. Un interrupteur en conduction est représenté par une inductance et un interrupteur bloqué est représenté par un circuit RC. Les valeurs des composantes de ce modèle sont choisies de telle manière que l'admittance équivalente de l'inductance, selon la modélisation EMTP, soit égale à l'admittance équivalente de la branche RC, toujours selon la modélisation EMTP (voir (2-32)). Ainsi, la matrice d'admittance demeure inchangée lors des commutations. On tient compte de l'état des interrupteurs seulement lors du calcul du vecteur d'injection de courant.
1 1
(a) (b)
Figure 2.7 Interrupteur L/RC (a) en conduction et (b) bloqué.
11 T
— = R + — (2-32) T 2C
Ce modèle est intéressant au point de vue algorithme parce qu'une seule inversion est requise pour effectuer toute la simulation mais il introduit un comportement de 2e ordre
lors des commutations lorsqu'il est utilisé pour modeliser le bras d'un pont. En tout temps chaque bras du pont contient un interrupteur ouvert et un fermé. On se retrouve avec un
2:5
circuit RLC par bras du pont. Si les valeurs ne sont pas bien choisies, il est possible d'observer un sur-amortissement ou même un manque d'amortissement, ce qui entraîne une erreur de représentation du comportement physique de l'interrupteur. De plus, selon la méthode d'intégration numérique, il est possible que les commutations introduisent des oscillations numériques qui proviennent de la représentation des interrupteurs mais aussi de la précision de la représentation utilisée.
150 100-1,0 ■ 50100
-I n v t] V "
0.0242 0.0244 0.0246 0.0248 Temps (s) 0.025 0.0252 0.0254Figure 2.8 Comportement de 2e ordre lors des commutations avec le modèle L/RC.
2.5 Simulation numérique des systèmes de puissance
Pour qu'une méthode de simulation numérique soit appropriée pour la simulation de systèmes de puissance en temps réel, elle doit être rapide à exécuter et/ou être exécutable en parallèle. Plusieurs méthodes numériques offrent une grande précision mais souvent ces méthodes sont itératives ou très complexes. Dans le cadre d'une application temps réel, les méthodes itératives sont inacceptables puisqu'il est impossible de prévoir de façon déterministe le temps d'exécution d'une telle méthode. En ce qui concerne les méthodes très complexes, il est habituellement impossible de les exécuter assez
rapidement pour maintenir le fonctionnement temps réel ou de les scinder efficacement pour diviser le fardeau de calcul sur plusieurs processeurs. C'est pourquoi les méthodes de simulations utilisées sont relativement simples. La discrétisation de la méthode des variables d'état sera présenté ainsi que la discrétisation de la méthode nodale puis il sera question de l'implémentation en temps réel de la méthode nodale.
2.5.1 Méthode des variables d'état numérique
Pour discrétiser le système d'équations d'état, il faut premièrement choisir une méthode d'intégration numérique. La méthode trapézoïdale est généralement utilisée et elle sera utilisée pour le développement suivant. En appliquant la transformation de Laplace sur la première équation de (2-1), on obtient
sx = Ax + Bu (2-33)
En utilisant l'approximation suivante, qui correspond à la méthode trapézoïdale,
s = — T 2(z-l
z + 1 (2-34)
on obtient le système d'équations suivant
A T* J3T1
(z-l)x= (z + l)-x+ (z + l)-« (2-35)
qui peut aussi être exprimé dans le domaine temporel comme
A T U T1
x(n +1)- x(n) = [x(n +1)+ x(n)]+ [u(n +1) + u(n)]. (2-36)
Un nouveau vecteur d'état est défini2 en groupant tous les termes de l'instant n+1 :
2 Ce changement de variable permet un développement plus élégant puisque le résultat final en (2-41) ne contient que des termes en n pour déterminer le résultat en n+1. Cependant cette méthode introduit un délai d'un demi pas de calcul dans l'intégration numérique, ce qui n'est pas le cas si on conserve une forme ayant une dépendance aux termes précédents n.
25
/ A AT i A BT , A i v AT i v # 7 , v
jt(n + l) x(n + l) a(n + l) = jc(n) + x(n) + «(n)
w(n + l)=x(n + l) x(n + l) «(n + l)
En isolante de (2-38) à l'instant n au lieu de n+1 on obtient :
x{n) = AT^'1 w (n)+ f , ATV AT u(n). (2-37) (2-38) (2-39)
Puis en substituant ce résultat dans la partie droite de (2-37) et après quelques manipulations on trouve
w (n + 1):
ATY. ATX1 Mf . AJTV1
/ +
w (»)+ \ - J I — V 2 B7ii(n) H»(n +1) = <ï> • w(n) + r - «(n). (2-40) (2-41) Pour obtenir les équations pour les sorties du système, on substitue (2-39) dans la deuxième équation de (2-1) : >(/») = C / - AT 2 j wM+
D + C ' A T v " 2 ^-1 BT u(n). y(n) = H •M'(n)+7 -«(n). (2-42) (2-43) [17] discute du Power System Blockset, l'ancêtre de SimPowerSystems, et explique plusieurs concepts de modélisation pour la méthode des variables d'états numériques. La modélisation et la simulation en temps réel d'un entraînement de machine avec la méthode des variables d'états sont effectuées en [18].2.5.2 Méthode nodale numérique
La discrétisation de la méthode nodale est beaucoup plus simple que celle de la méthode des variables d'état. En utilisant les modèles présentés préalablement, le système d'équation a alors la forme
v(n) = F"1(n)-ï(n). (2-44)
Le vecteur d'injection de courant tient compte des sources de courant représentant l'historique et c'est dans le calcul de ces sources de courant que la méthode d'intégration se manifeste. Pour calculer les tensions nodales à l'instant n, il suffit de déterminer l'injection de courant, qui dépend des conditions à l'instant n-\ via les sources de courant historique, et la matrice d'admittance inverse pour cet instant et d'effectuer la multiplication.
L'application de cette méthode pour un simulateur numérique est illustrée à la figure 2.9. Lors de l'initialisation de la simulation, le simulateur effectue la segmentation du réseau, la répartition des tâches (si c'est un simulateur multiprocesseur), le calcul des matrices d'admittance et de leur inverse ainsi que toutes autres actions nécessaires à la simulation (initialisation des communications, des coprocesseurs, etc.). Une fois le temps de simulation incrémenté d'un pas, le vecteur d'injection de courant est mis à jour et les systèmes d'équations sont ensuite résolus afin de déterminer les tensions nodales pour cet instant. Par la suite, les sources commandées sont mises à jour en utilisant les conditions présentes et passées. Ensuite, il y a vérification des conditions d'opération présentes afin de déterminer si un changement de topologie est nécessaire. Cette étape vise particulièrement les éléments non-linéaires et les interrupteurs. Si un changement de topologie est nécessaire il y a modification des systèmes d'équations pour en tenir compte. Finalement, l'algorithme boucle sur lui-même jusqu'à ce que la simulation se termine ou, pour certains simulateurs, qu'il y ait une erreur fatale (perte du temps réel, erreur de représentation, problèmes de communication, etc.).
27
Oscillations numériques
La modélisation utilisée pour les éléments réactifs peut engendrer des instabilités lorsque la méthode trapézoïdale est employée. En observant l'équation modélisant une inductance
on constate que si le courant devient nul pour quelques pas de calcul, la tension aux bornes de l'inductance passera d'une valeur positive à une valeur négative dès que le courant à l'instant n et n-l seront nuls :
vL(n) = -vL{n-l)
Ainsi, la tension oscillera avec une amplitude correspondant à la valeur précédant l'interruption du courant. Ce phénomène d'oscillation numérique se manifeste aussi au niveau du courant dans les condensateurs.
icW = ^ ^ - . c ( - l ) (2-46,
Les oscillations numériques résultent souvent de discontinuités dans les signaux. L'utilisation de la méthode d'intégration numérique Euler arrière permet d'éviter le phénomène d'oscillation numérique. Cependant la précision de cette méthode est moindre que celle de la méthode trapézoïdale pour un même pas de calcul. C'est pour cela que plusieurs méthodes ont été explorées pour amortir ou pour supprimer ces oscillations [6]. La méthode la plus simple consiste à modéliser les éléments en parallèle avec une résistance pour ajuster l'amortissement des oscillations. Évidemment, plus l'amortissement est fort, plus le comportement du circuit est modifié de sa réponse physique. Une autre méthode consiste à implanter un changement de technique d'intégration lorsque l'on détecte une situation provoquant des oscillations. Par exemple, lorsqu'une discontinuité est détectée, le simulateur effectue deux pas de calcul de T/2 avec la méthode d'Euler arrière pour tout le réseau simulé. Cela a pour effet de supprimer
29 les oscillations, mais augmente considérablement le nombre de calcul à effectuer. Cette technique se nomme Critical Damping Adjustment (CDA) [15].
2.5.3 Implémentation de la méthode nodale en temps réel
La méthode nodale est intéressante pour des simulations en temps réel à cause de sa simplicité et du fait que son traitement peut aisément être parallélisé. On remarque cependant la nécessité d'inverser la matrice Y afin de résoudre le système d'équations. Pour la simulation d'un réseau à topologie fixe sans élément non-linéaire, cela ne pose aucun problème mais pour une topologie variable ou pour un réseau contenant des éléments non-linéaires, l'inversion de la matrice d'admittance peut causer certains problèmes pour maintenir le temps réel. Si un changement de matrice d'admittance est nécessaire en cours de simulation, il faut calculer son inverse. L'inversion de matrice est une opération relativement complexe et coûteuse qui a une complexité algorithmique de o(n3), où n est le nombre de nœuds. On comprend donc que calculer l'inverse de la
nouvelle matrice d'admittance est une tâche longue et que cela peut entraver le fonctionnement en temps réel du simulateur. En effet, si un changement de topologie est possible lors de la simulation, il faut être en mesure d'effectuer l'inversion de matrice à l'intérieur d'un pas de calcul afin de conserver le fonctionnement en temps réel. Ainsi la longueur du pas de calcul doit tenir compte du temps requis pour l'inversion de matrice, ce qui impose une limite inférieure à la longueur du pas de calcul. Plus le pas de calcul est petit plus la simulation sera précise c'est donc pour cela que plusieurs stratégies sont employées pour palier à ce problème.
Le découplage du réseau, que ce soit en utilisant les lignes de transmission [1-2] ou les éléments réactifs [11], a pour but de scinder le réseau étudié en plusieurs parties afin de réduire le nombre de nœuds traité dans chaque sous-réseau. L'inversion de cette matrice d'admittance réduite est donc plus rapide. De plus, si l'engin de calcul utilisé est multiprocesseur, les tâches de simulation peuvent être réparties sur plusieurs processeurs afin de réduire le temps de calcul. Une méthode de partitionnement est présentée en [2].
Afin de réduire le temps de calcul, l'utilisation de modélisations particulières [7, 29, 45] permet de traiter certains éléments non-linéaires sans qu'ils ne causent de changement de topologie ou de changement dans la matrice d'admittance, ainsi il n'est pas nécessaire de calculer son inverse en cours de simulation. De plus, les propriétés des matrices creuses et/ou diagonales [8] ainsi que des techniques d'inversion de matrice telles la factorisation de Cholesky [10] et la technique Sherman-Morrison-Woodbury [9, 16] peuvent être employées pour accélérer l'inversion de matrice. La technique Sherman-Morrison-Woodbury s'écrit
(A + BCy =A'1 -A-lB(lm +CA-lB)~lCA-1 (2-47)
où A est la matrice d'admittance et BC représente le changement de la matrice d'admittance. Cette dernière méthode, aussi connue comme le lemme d'inversion de matrice, est intéressante puisqu'elle permet de calculer l'inverse d'une matrice (A + BC)
a partir de A-1 et ce calcul a une complexité algorithmique de 0[n2) comparativement à
0\ni) pour l'inversion ordinaire. Cependant en [16] on note certains désavantages liés à
cette technique : 1) les manipulations successives de la matrice d'admittance causent une accumulation de l'erreur due à la précision limitée du processeur et 2) le gain, en terme de temps de calcul, diminue rapidement en fonction du nombre de changements simultanés à effectuer. Pour limiter l'accumulation de l'erreur, les auteurs proposent de sauvegarder la matrice A pour quelques topologies. Lorsque le réseau revient à une de ces topologies, la version sauvegardée est utilisée. En ce qui concerne le deuxième point, ils suggèrent de limiter à un changement par pas de calcul. Toutefois il n'est pas toujours possible de limiter le nombre de changements.
Une dernière solution au problème de l'inversion de matrice consiste à calculer et à placer en mémoire les matrices inverses correspondant à toutes les topologies possibles du réseau à simuler. Lors d'un changement, il suffit de charger la matrice qui correspond à la configuration présente du réseau. Cette méthode est efficace en terme de temps de calcul lors de la simulation mais la quantité de mémoire requise augmente rapidement en fonction du nombre de topologies possibles. Si le réseau à simuler compte k interrupteurs,
31
le nombre de topologies différentes est de 2k, et ce sans compter les autres éléments
non-linéaires. Il faut cependant noter que ces 2* topologies ne sont pas nécessairement toutes utilisées lors du fonctionnement normal de ce réseau.
Technologie et environnement
de développement des FPGA
Le développement des systèmes sur les FPGA est différent du développement de systèmes conventionnels puisqu'il fait appel à la conception physique mais également à la conception logicielle. L'utilisation d'un langage de description de matériel, qui partage certains aspects avec les langages de programmation conventionnels, n'est pas triviale. Ce langage sert à définir physiquement le circuit au niveau d'abstraction choisi par le concepteur. Ainsi les stratégies de développement sont différentes de la conception logicielle qui décrit généralement un traitement séquentiel. La frontière entre le développement matériel et logiciel est encore moins évidente lorsqu'il s'agit du développement de SoC.En premier lieu, les caractéristiques de base de la technologie FPGA sont présentées à la prochaine section tandis que les SoC sont discutés à la section 3.2. La section 3.3 porte sur les langages de description de matériel mais plus particulièrement sur le
Very-High-Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL).
Finalement la section 3.4 présente les logiciels utilisés lors de ce projet ainsi que la carte de développement FPGA qui a servi pour l'implémentation du simulateur temps réel.
33 3.1 Technologie FPGA
Les circuits intégrés Field Programmable Gâte Array contiennent une grande quantité d'éléments de base, qui servent à synthétiser des fonctions logiques ou mathématiques, connectés entre eux par une matrice programmable d'interconnexions. Moins rapide et plus gourmand en puissance et en surface de silicium qu'un circuit intégré dédié
(Application-Spécifie Integrated Circuit, ASIC), un FPGA a l'avantage d'être
reprogrammable ainsi que d'être moins coûteux en temps et en coût de développement. Cependant, une fois le produit développé, un FPGA sera toujours plus coûteux qu'un ASIC. On s'attarde principalement sur la structure des FPGA Xilinx puisque c'est un
Virtex II Pro VP30 de Xilinx qui est utilisé pour la réalisation de ce projet.
3.1.1 Structure interne
Les FPGA sont composés, comme tous les circuits intégrés, d'un substrat de silicium ayant plusieurs régions dopées N ou P pour fabriquer les transistors ainsi que de polysilicium pour réaliser la grille des transistors. Actuellement, la résolution varie entre
150 et 90 nm. Par la suite, plusieurs couches de métal, entre sept et neuf et habituellement en cuivre [36, 37 et 39 à 41], constituent les couches supérieures. Ces couches métalliques servent à effectuer les connexions entre les transistors pour former les fonctions plus complexes. Tel qu'illustré à la figure 3.1, selon la compagnie et le modèle de FPGA, il y a des modules embarqués dédiés (Hard-IP) tel que des processeurs, des multiplicateurs ou de la mémoire par exemple.
Figure 3.1 : Coupe transversale d'un FPGA Xilinx [38]. 3.1.2 Ressources logiques
Dérivés des Complex Programmable Logic Device (CPLD), les FPGA ont été développés au milieu des années 80. Les FPGA partent du même principe que les CPLD c'est-à-dire des connexions internes programmables, mais pousse le concept plus loin en n'imposant aucune structure de base contrairement au CPLD qui impose une structure « somme de produit ». De plus, les unités de base des FPGA sont plus complexes que celles des CPLD, principalement diverses portes logiques. Un exemple d'unité de base
(Configurable Logic Block, CLB) de FPGA Xilinx est présenté à la figure 3.2. On peut
observer qu'une unité de base contient quatre sous éléments nommés tranche agencés en deux colonnes pour la propagation rapide de la retenue lors d'une addition. Ces tranches sont directement reliées à la matrice d'interconnexions pour les connexions longues ainsi qu'à une structure permettant une connexion rapide avec les voisins immédiats de ce CLB. La figure 3.2 (b) illustre la structure interne d'une tranche. Elle contient deux tables de correspondance (Look-Up Table, LUT) de 16 bits qui peuvent être utilisées pour implanter une fonction logique booléenne ayant quatre entrées et moins, un registre à décalage ou une mémoire RAM ou ROM. De plus, il y a des ressources logiques, des portes logiques et des multiplexeurs dédiés entre autres, qui permettent de créer des fonctions plus complexes ayant plus d'entrées et qui utilisent plus d'une tranche. Un registre, pouvant être utilisé comme une bascule ou un verrou de différents types, complète chacune des tranches.
35 Swlteh Matrix > T B U F X0Y1 >TBUFXOYO COUT Sllca X1Y1 COUT Sllce X1Y0 L SHIFT î Sllce X0Y1 CIN Sllce XOYO ;::IN RAM16
\£>
8RL1*>. RAM1S Fast Connecte to ne Ig h bore DSstti1_S2_1Ci|6CO ORCY MUXFxn
CY HoglotorP
V S R L 1 * , MUXF5 LUTN F ^I
CY Raglslai ) ArHhmatlc Logic C«OJI. 31 IWOWFigure 3.2 (a) Configurable Logic Block (CLB) et (b) tranche d'un CLB de la compagnie
Xilinx [31].
SORNO
SOPOUT
ODIG
Mim^otj taiœ
Figure 3.3 Détail de la partie supérieure d'une tranche Xilinx [31].
Plusieurs autres compagnies fabriquent des FPGA et selon les applications visées, la granularité des unités de base variera. Des unités logiques de base plus simples, et donc plus petites, se prêtent mieux à l'optimisation des ressources tandis que des unités de base plus complexes, capables d'implémenter des fonctions plus complexes avec moins de connexions et de routage, rendent l'amélioration des performances temporelles plus aisée.
Xilinx [31] et Lattice Semiconductor [33] utilisent des structures à granularité moyenne
tandis que Actel fabrique des FPGA à granularité plus fine. L'unité logique de base de cette dernière compagnie peut être configurée pour réaliser soit une fonction logique de trois à cinq entrées selon le modèle, un verrou ou une bascule dont le type dépend du modèle de FPGA [35, 37].
Des structures alternatives permettent d'allier ces deux stratégies, mais ce au prix de plus d'espace sur le silicium. Par exemple, la compagnie Altéra offre avec sa gamme Stratix II des unités de base nommées Adaptative Logic Modules (ALM) qui permettent différentes configurations internes pour supporter des LUT avec un nombre variable d'entrées [32]. Afin d'améliorer les performances des FPGA pour certaines applications, plusieurs types de ressources dédiées sont embarquées à même la puce de silicium. Généralement ces ressources sont réalisables à partir d'unités logiques de base mais elles en requièrent un très grand nombre et les délais de routage sont alors très élevés. Ainsi les fabricants ont jugé bon d'inclure directement sur la puce de silicium ces éléments. Le type et la quantité
d'éléments embarqués dépendent du marché visé. La figure 3.4 en illustre quelques-uns provenant de l'architecture du Virtex II Pro de Xilinx : les Input/Output Blocks (IOB) implémentent les fonctions d'entrées/sorties du FPGA, essentielles pour toutes les applications; les Digital Clock Managers (DCM) implémentent toutes les fonctions relatives à l'horloge, que ce soit une multiplication de l'horloge ou la génération d'un signal d'horloge déphasé par exemple; les blocs SelectRAM sont des mémoires RAM à double port tandis que le bloc Multiplier est un multiplicateur 18 bits par 18 bits dédié, très utile pour les applications de traitement de signal. De plus, sur certains modèles de FPGA, il est même possible d'avoir à même le silicium des processeurs embarqués comme les PowerPC (PPC) 405D5 qui se retrouvent sur les FPGA Virtex II Pro et Virtex
IV de Xilinx. Les autres compagnies de FPGA utilisent aussi cette stratégie.
3.1.3 Routage
On constate en observant la figure 3.4 que les FPGA Xilinx regorgent de ressources d'interconnexions sous forme de matrices d'interconnexions (Switch Matrix).
37 Switeh Matrix IOB Switeh Matrix IOB Switeh Matrix IOB Switeh Matrix DCM Switeh Matrix Switeh Matrix IOB Switeh Matrix CLB Switeh Malrlx CLB Switeh Matrix Switeh Matrix IOB Switeh Matrix CLB Switeh Matrix CLB Switeh Malrix Switeh Matrix IOB Switeh Matrix CLB Switeh Matrix CLB Switeh Matrix Switeh Matrix IOB Switeh Matrix CLB Switeh Matrix CLB Switeh Malrix Switeh Matrix Switeh Malrix Switeh Malrix Switeh Matrix
Figure 3.4 Structure interne d'un FPGA Xilinx de la famille Virtex [31].
Il est intéressant de noter que les ressources de routage sont entrelacées avec les ressources logiques. D'autres compagnies, telle que Actel, ont réservé les couches supérieures de leurs puces pour les ressources de routage tandis que les ressources logiques sont situées aux couches inférieures. Les matrices d'interconnexions permettent de connecter les tranches de deux CLB. Les lignes longues (Long Lines) s'étendent verticalement et horizontalement de bord en bord du FPGA, permettant une connexion bidirectionnelle entre deux CLB lointains. Les lignes Hex (Hex Lines) relient un CLB à son troisième et/ou sixième voisin verticalement et horizontalement. La communication sur ce lien est unidirectionnelle mais le signal peut être lu au point milieu. Similaires aux lignes Hex, les lignes doubles (Double Lines) forment un lien entre un CLB et son voisin immédiat et/ou son deuxième voisin. Les connexions directes (Direct Connections) permettent de relier un CLB à tous ses voisins immédiats, incluant les voisins en diagonale et finalement les liens Fast Connects relient la sortie d'un LUT à l'entrée d'un LUT voisin. Les FPGA Xilinx sont munis en plus de ressources de routage dédiées pour l'horloge et pour la propagation de retenue lors d'opérations mathématiques. En ce qui concerne l'horloge, ces ressources dédiées permettent de l'acheminer partout dans la puce avec de très faibles délais et une déformation minimale de la forme d'onde. Pour la propagation de la retenue, toutes les tranches d'une même colonne sont reliées entre elles