Académique Documents
Professionnel Documents
Culture Documents
net/publication/282613570
CITATION READS
1 2,437
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Francois Auger on 06 October 2015.
ECOLE DOCTORALE
SCIENCES ET TECHNOLOGIES
Année 2005
Zoheir BOULBAIR
Ingénieur de l’Institut d’Electronique de l’Université de Constantine (Algérie)
le 14 décembre 2005
Directeurs de thèse : Pr. Luc LORON, IREENA – 37, Bd de l’Université – BP 406 – 44602 Saint-Nazaire Cedex
Pr. Jean-François DIOURIS, IREENA – rue C. Pauc, BP 50609, 44306 Nantes cedex 03
Co-encadrant : François AUGER, IREENA – 37, Bd de l’Université – BP 406 – 44602 Saint-Nazaire Cedex
Composante de rattachement des directeurs de thèse : Ecole Polytechnique de l’Université de Nantes
N° ED 0366-235
Remerciements
Les travaux présentés dans ce mémoire ont été effectués à l’institut de Recherches en
Electrotechnique et Electronique de Nantes-Atlantique (IREENA). Ils ont été financés par le
Conseil Général de la Loire Atlantique.
Je tiens à remercier tous ceux qui m’ont aidé en contribuant à l’aboutissement de cette thèse, et
tout particulièrement :
Monsieur Olivier SENTIEYS, Professeur des Universités à l’ENSSAT Université de Rennes 1,
pour l’honneur qu’il m’a fait en acceptant de présider le jury de soutenance.
Je remercie Monsieur Eric MONMASSON, Professeur des Universités à l’Université de Cergy-
Pontoise, et Monsieur Jean Philipe DIGUET, chargé de recherches au CNRS, LESTER Lorient,
qui ont accepté de juger ce travail et d'en être les rapporteurs.
Je suis très sensible à la présence dans ce jury de Monsieur René AUBREE, Ingénieur de
recherche et développement de la société ATMEL Nantes, pour avoir apporté lors de ma
soutenance de thèse un regard industriel sur le travail présenté.
Je remercie Mr Luc LORON et Monsieur Jean-François DIOURIS Professeurs des Universités à
l’Ecole Polytechnique de l’Université de Nantes d’avoir accepté la direction de ma thèse.
Je souhaite enfin adresser mes plus sincères remerciements à Monsieur François AUGER, Maître
de conférences à l’Institut Universitaire et Technologique de Saint-Nazaire, pour ses qualités
scientifiques et humaines, pour sa rigueur scientifique et ses idées.
Un grand merci également à tous les membres du laboratoire IREENA et aux membres du
laboratoire GEM. En particulier Cédric, Madani, Samir, Toufik, Tarek, Abdellah.
Enfin au-delà du laboratoire, il y a les miens, qui ont tous, sans en être conscients, joué à leur
échelle un rôle important en m’apportant conseils et soutiens pendant les périodes d’incertitude.
Merci à mes parents à qui je dédie aujourd’hui ce travail ainsi qu’à tous mes frères et sœurs. Une
pensée toute particulière à mon épouse Fouzia qui m’a apporté une aide inestimable pour finaliser
ce travail de thèse.
Table des Matières
5
2.2.2.1. Modélisation du processus et synthèse des correcteurs--------------------42
2.2.2.2. Discrétisation et choix de la période d’échantillonnage -------------------45
2.2.2.3. Développement des calculs----------------------------------------------------49
2.2.2.4. Mise en œuvre d’un partage de ressources ----------------------------------51
2.2.2.5. Mesure des extremums et normalisation des signaux----------------------52
2.2.2.6. Quantification et choix de la largeur des bus -------------------------------59
2.2.2.7. Quantification et codage des constantes -------------------------------------64
2.2.3. Conception architecturale -----------------------------------------------------------66
2.2.3.1. Codage en VHDL et test des codes ------------------------------------------66
2.2.3.2. Détermination automatique de la largeur des bus d’une architecture à
virgule fixe ------------------------------------------------------------------------------------66
2.2.3.3. Détermination de la fonction objectif ----------------------------------------71
2.2.3.4. Validation du modèle HDL ---------------------------------------------------74
2.2.4. Validation expérimentale ------------------------------------------------------------75
2.3. Conclusion-----------------------------------------------------------------------------------76
CHAPITRE 3 : IMPLANTATION DE LOIS DE COMMANDE DE MACHINES ELECTRIQUES SUR FPGA ------ 79
3.1. Introduction ---------------------------------------------------------------------------------79
3.2. Présentation du banc d’essais -------------------------------------------------------------79
3.2.1. Les machines --------------------------------------------------------------------------80
3.2.2. Le convertisseur statique ------------------------------------------------------------80
3.2.3. Le matériel de mesure----------------------------------------------------------------80
3.2.4. Le matériel informatique ------------------------------------------------------------80
3.2.5. Les interfaces--------------------------------------------------------------------------82
3.2.5.1. Interface codeur incrémental --------------------------------------------------82
3.2.5.2. Interface génératrice tachymétrique CAN-----------------------------------82
3.2.5.3. Interface capteur de courant CAN--------------------------------------------83
3.2.5.4. Interface carte FPGA commande rapprochée du convertisseur ----------83
3.3. Asservissement de vitesse et de courant d’un moteur à courant continu ------------83
3.3.1. Cahier des charges--------------------------------------------------------------------83
3.3.2. Conception fonctionnelle ------------------------------------------------------------84
3.3.2.1. Modélisation du processus ----------------------------------------------------84
3.3.2.2. Synthèse des régulateurs-------------------------------------------------------86
3.3.2.3. Discrétisation et choix de la période d’échantillonnage -------------------89
6
3.3.2.4. Développement des calculs----------------------------------------------------91
3.3.2.5. Mesures des extremums et normalisation des signaux---------------------91
3.3.2.6. Quantification et choix de la largeur des bus -------------------------------97
3.3.3. Conception architecturale -----------------------------------------------------------98
3.3.3.1. Codage VHDL et Test des codes ---------------------------------------------98
3.3.3.2. Choix de la largeur optimale des bus ----------------------------------------98
3.3.3.3. Validation du modèle HDL ------------------------------------------------- 101
3.3.4. Validation expérimentale ---------------------------------------------------------- 101
3.3.5. Conclusion--------------------------------------------------------------------------- 103
3.4. Contrôle scalaire d’un moteur asynchrone -------------------------------------------- 104
3.4.1. Cahier des charges------------------------------------------------------------------ 104
3.4.2. Conception fonctionnelle ---------------------------------------------------------- 104
3.4.2.1. Modélisation du processus -------------------------------------------------- 105
3.4.2.2. Synthèse du régulateur ------------------------------------------------------- 117
3.4.2.3. Discrétisation et choix de la période d’échantillonnage ----------------- 117
3.4.2.4. Développement des calculs-------------------------------------------------- 118
3.4.2.5. Mesures des extremums et normalisation des signaux------------------- 119
3.4.2.6. Quantification et choix de la largeur des bus ----------------------------- 121
3.4.3. Conception architecturale --------------------------------------------------------- 121
3.4.3.1. Conception architecturale en vue d’une implantation sur FPGA------- 122
3.4.3.2. Conception architecturale pour un microcontrôleur---------------------- 124
3.4.4. Validation expérimentale ---------------------------------------------------------- 124
3.4.5. Conclusion--------------------------------------------------------------------------- 128
3.5. Problèmes souvent rencontrés lors de la validation expérimentale ---------------- 128
3.5.1. Problèmes provenant de la machine---------------------------------------------- 128
3.5.2. Problèmes provenant de l’onduleur ---------------------------------------------- 129
3.5.3. Problèmes provenant de l’interface entre la machine et la carte numérique 129
3.5.4. Problèmes provenant de l’interface entre la commande et l’onduleur ------- 129
3.5.5. Problèmes provenant de la structure de la commande ------------------------- 130
3.6. Conclusion--------------------------------------------------------------------------------- 130
CONCLUSION GENERALE --------------------------------------------------------------------------------------- 132
BIBLIOGRAPHIE -------------------------------------------------------------------------------------------------- 135
7
Liste des figures
8
Figure 2.23 : Modèle architectural du régulateur---------------------------------------------------66
Figure 2.24 : Méthodologie d’optimisation de la largeur des bus --------------------------------67
Figure 2.25 : Evaluation du rapport signal sur bruit de quantification --------------------------68
Figure 2.26 : Affectation des variables aux signaux de l’architecture ---------------------------71
Figure 2.27 : Variation du RSBq en fonction de la largeur de bus-------------------------------72
Figure 2.28 : Variation du nombre de cellules en fonction de la largeur de bus ---------------72
Figure 2.29 : Solution optimale-----------------------------------------------------------------------74
Figure 2.30 : Résultats de simulation du modèle en virgule flottante et du modèle en virgule
fixe dans le cas de la configuration optimale : courants obtenus dans les deux cas (en
haut) et différences entre les deux courants (en bas)-----------------------------------------74
Figure 3.1: Structure générale du banc d’essais, configuré pour la régulation de vitesse d’une
MCC.-----------------------------------------------------------------------------------------------79
Figure 3.2 : Carte mère de système de commande à FPGA. Source : [Warnes 04]------------81
Figure 3.3 : Structure général du module Heron-IO2. Source : [Warnes 04] -------------------82
Figure 3.4 : Modélisation par blocs fonctionnels du moteur à courant continu à aimants
permanents ----------------------------------------------------------------------------------------85
Figure 3.5: Schéma bloc de régulation d’une MCC------------------------------------------------86
Figure 3.6 : Schéma bloc du régulateur IP continu-------------------------------------------------87
Figure 3.7 : Schéma bloc des deux boucle de régulation------------------------------------------87
Figure 3.8: Structure du régulateur IP discret-------------------------------------------------------89
Figure 3.9: Régulateur IP avec l’action anti-saturation de l’action intégrale. ------------------90
Figure 3.10 : Réponses de vitesse et de courant avec et sans limitation-------------------------91
Figure 3.11 : Numérotation des signaux du régulateur de vitesse--------------------------------92
Figure 3.12 : Numérotation des signaux du régulateur de courant -------------------------------92
Figure 3.13 : Augmentation de la résolution du codeur incrémental, reconstitution de la
position---------------------------------------------------------------------------------------------93
Figure 3.14 : Normalisation des signaux du régulateur de vitesse -------------------------------95
Figure 3.15 : Normalisation de la structure du régulateur de courant
Ke 1 K ii 1 K pi 1
K1 = × , K2= × , K3= × ---------------96
Gmes ω Gsortie Gmes court G sortie Gmes court Gsortie
9
Figure 3.19.a : Réponse de vitesse ----------------------------------------------------------------- 100
Figure 3.20 : Validation du régulateur de courant------------------------------------------------ 102
Figure 3.21 : Résultats expérimentaux pour un asservissement de vitesse-------------------- 102
Figure 3.22 : Structure générale de la chaîne d’entraînement ---------------------------------- 105
Figure 3.23 : Variation de la tension statorique en fonction la fréquence à flux constant -- 108
Figure 3.24 : Schéma global d’un asservissement de vitesse de la machine asynchrone --- 109
Figure 3.25 : Structure général d’un onduleur ---------------------------------------------------- 110
Figure 3.26 : Vecteurs de tension statorique dans le plan (α , β ) ------------------------------ 111
Figure 3.27 : Détermination de l’angle θ ′ -------------------------------------------------------- 114
Figure 3.28 : Séquence d’application des vecteurs de tensions--------------------------------- 115
Figure 3.29 : Détermination des seuils de comparaisons---------------------------------------- 116
Figure 3.30 : Réponse de vitesse, couple de charge---------------------------------------------- 118
Figure 3.31 : Partage de ressources dans le cas de la MLI naturelle -------------------------- 118
Figure 3.32 : Partage de ressources dans le cas de la MLI vectorielle------------------------- 119
Figure 3.33 : Structure d’inversion de sens de rotation du moteur----------------------------- 122
Figure 3.34 : Réponse de la vitesse (algorithmes en virgule fixe et en virgule flottante) --- 123
Figure 3.35 : Résultats expérimentaux dans le cas d’une implantation sur FPGA - stratégie de
MLI vectorielle --------------------------------------------------------------------------------- 126
Figure 3.36 : Résultats expérimentaux dans le cas d’une implantation sur microcontrôleur –
stratégie de MLI vectorielle ------------------------------------------------------------------- 126
Figure 3.37 : Résultats expérimentaux obtenus sur une FPGA par une MLI vectorielle (a) et
par une MLI naturelle (b). --------------------------------------------------------------------- 127
Figure 3.38 : Résultats expérimentaux obtenus sur un microcontrôleur par une MLI avec
injection d’un harmonique 3 (a) et par une MLI naturelle (b) ---------------------------- 127
10
Liste des tableaux
Tableau 1.1 : Performances des commandes de machines triphasées avec capteur mécanique.
------------------------------------------------------------------------------------------------------27
Tableau 1.2 : Performances des régulations de vitesse de machines asynchrones sans capteur
mécanique. ----------------------------------------------------------------------------------------27
Tableau 1.3 : Comparaison des différents solutions technologiques-----------------------------36
Tableau 2.1 : Règles de détermination du domaine de définition, avec
z = (min( x) min( y ) , min( x) max( y ) , max( x) min( y ) , max( x) max( y ) ) .---------------------53
Tableau 2.2 : Mesure des extremums des signaux -------------------------------------------------57
Tableau 2.3 : Mesure des extremums après insertion des gains d’entrée et de sortie----------58
Tableau 2.4 : Codage des différentes constantes du régulateur de courant ---------------------65
Tableau 3.1 : Valeurs extrêmes des différents signaux du régulateur de vitesse ---------------92
Tableau 3.2 : Valeurs extrêmes des différents signaux du régulateur de courant --------------92
Tableau 3.3 Relevé des extremums des signaux du régulateur de vitesse après normalisation
------------------------------------------------------------------------------------------------------96
Tableau 3.4 : Relevé des extremums des signaux du régulateur de courant après
normalisation--------------------------------------------------------------------------------------96
Tableau 3.5 : Combinaisons de vecteurs de tension d’un onduleur trois bras idéal, moteur
branché en étoile (0 : interrupteur ouvert, 1 : interrupteur fermé)------------------------ 112
Tableau 3.6 : Détermination des rapports cyclique ---------------------------------------------- 113
Tableau 3.7 : Calcul des seuils de comparaison -------------------------------------------------- 116
Tableau 3.8 : Relevé des extremums du régulateur de vitesse---------------------------------- 119
Tableau 3.9 : Relevé des extremums (régulateur de vitesse) après normalisation ----------- 121
Tableau 3.10 : Ressources du FPGA utilisées par le dispositif de commande --------------- 125
Tableau 3.11 : Ressources du microcontrôleur utilisées par le dispositif de commande --- 125
11
Introduction générale
Introduction Générale
La thématique de recherche de ce travail de thèse s’inscrit dans le cadre des actions transversales
entre le pôle systèmes et le pôle énergie de l’Institut de Recherche en Electronique et
Electrotechnique de Nantes Atlantique (IREENA), et présente un caractère pluridisciplinaire,
alliant des compétences en génie électrique, en électronique numérique et en automatique.
Toutefois, si l’implémentation sur des cibles logicielles est abondamment documentée, que ce soit
dans des travaux scientifiques ou des notes d’application de constructeurs, l’implémentation
matérielle l’est beaucoup moins. Afin de tirer le meilleur parti de ces circuits, le concepteur doit
donc être aidé par une démarche rationnelle pour développer son application.
Le but recherché dans notre travail est donc de proposer aux concepteurs de commandes des
systèmes électriques une méthodologie d’intégration qui tient compte des différentes contraintes de
mise en œuvre. Cette méthodologie est ensuite validée à travers la réalisation de quelques
exemples typiques de commande des machines électriques.
Dans le premier chapitre nous présenterons un bref historique sur les principaux événements qui
ont marqué l’histoire des machines électriques à vitesse variable. Un accent particulier sera mis sur
les principales fonctionnalités et sur les performances des variateurs de vitesse récents ainsi que
sur les différentes solutions technologiques utilisées pour leur mise en œuvre. Nous y définirons
les différents critères de choix des cibles d’implantation.
Dans le chapitre suivant, nous présenterons ce qui nous semble être l’une des principales
contributions de ce travail, et qui correspond à une méthodologie d’implantation des algorithmes
de commande des systèmes électriques sur FPGA. Cette méthodologie, visant à simplifier le travail
13
Introduction générale
d’un concepteur, comporte différentes étapes, que nous détaillerons dans ce chapitre et que nous
illustrerons sur un exemple concret. La première étape correspond à l’analyse ou à la participation
à l’établissement d’un cahier des charges qui spécifie le système à concevoir. L’étape suivante, qui
correspond à la conception des différents blocs fonctionnels du système, est validée par la
simulation du système dans les cas de fonctionnement les plus extrêmes définis par le cahier des
charges. L’étape suivante correspond à la réalisation de l’architecture du dispositif de commande,
qui est également validée par des simulations qui tiennent compte du codage en virgule fixe, sur un
nombre de bits limité et sur une cible matérielle donnée du dispositif de commande. Nous
montrerons qu’il est possible de réduire la durée de conception par un algorithme de détermination
de la largeur optimale des signaux de l’architecture à implanter. La dernière étape de la
méthodologie proposée est la validation expérimentale du dispositif sur un banc d’essai
comprenant le processus réel.
Le troisième chapitre sera consacré à la validation de notre méthodologie au moyen de deux études
de cas complètes. La première correspond à une régulation de vitesse et de courant d’une machine
à courant continu. La seconde correspond à la commande scalaire d’une machine asynchrone, que
nous avons implantée sur un FPGA et sur un microcontrôleur dédié à la commande des machines
électriques, afin de pouvoir faire des comparaisons. Un accent particulier sera également mis sur
les différentes contraintes susceptibles d’être rencontrées lors de la phase des tests expérimentaux.
14
Historique et état de l'art de la variation de vitesse
Ce chapitre présente un état de l’art des technologies utilisées pour la commande des
systèmes électriques et plus particulièrement des machines triphasées. Il comporte trois
parties. La première rappelle la chronologie des principaux événements qui ont contribué au
développement de la variation de vitesse des machines électriques. La seconde présente les
principales fonctionnalités et les performances des variateurs de vitesse récents. Enfin, la
dernière partie aborde la comparaison des différentes techniques d’implémentation de lois de
commande, afin de situer les solutions dites « matérielles » (à base de circuits logiques
programmables), par rapport aux solutions logicielles utilisant des microcontrôleurs ou des
processeurs de signaux.
15
Historique et état de l'art de la variation de vitesse
utiliser un rhéostat placé en série avec l’induit d’une machine à courant continu ou connecté
aux bagues rotoriques d’une machine asynchrone. Mais ces solutions étaient d’autant moins
efficaces que l’on désirait une grande plage de variation de vitesse.
1896. Le 18 novembre 1896, Ward Leonard présente le groupe qui porte son nom à la 110ème
conférence de l’American Institute of Electrical Engineers à New York. Ce groupe
comporte deux machines (une machine alternative qui entraîne une génératrice à
excitation contrôlée) pour réaliser la source continue variable qui alimente une 3ème
machine dont on fait varier la vitesse.
Malgré sa complexité, le groupe Ward Leonard a été très employé et certaines installations
sont encore en service. Le principal défaut de cette solution est de nécessiter deux machines
supplémentaires, de puissance égale à celle de la machine à alimenter. En outre, deux des
trois machines sont des machines à collecteur. Au début du 20ème siècle, différentes solutions
basées sur des machines asynchrones à bagues ont été proposées. Le contrôle de la vitesse ou
du couple de la machine est alors réalisé à partir du contrôle de la puissance rotorique. Pour
ne pas gaspiller cette puissance, des machines auxiliaires permettent de la réinjecter sous
forme mécanique sur l’arbre de la machine principale ou sous forme électrique au réseau.
1904. Krämer propose d'utiliser deux MCC auxiliaires : une MCC particulière, utilisée
comme redresseur, et une seconde qui reçoit la puissance délivrée par la première et qui
est accouplée à la MAS.
1907. La solution présentée par Scherbius contrôle la puissance rotorique à l’aide d’une
machine spéciale à collecteur qui entraîne un alternateur relié au réseau d’alimentation.
1911. Le Moteur Schrage est une machine asynchrone modifiée pour intégrer les machines
auxiliaires qui réalisent la réinjection d’énergie. La puissance est contrôlée par la
position mécanique des balais (ce moteur est aussi appelé moteur à décalage de balais).
1896. John Ambrose Fleming invente le tube diode. Ce redresseur permet la transformation
du courant alternatif en continu.
16
Historique et état de l'art de la variation de vitesse
1908. Lee De Forest crée le tube triode en ajoutant une grille entre les deux électrodes du
tube diode. L’utilité de ce tube amplificateur ne sera reconnue qu’après 1912.
1928. Le Thyratron mis au point par Hull (General Electric) permet de réaliser les premiers
redresseurs commandés de forte puissance [Jahns 01]. Le thyratron est une triode
contenant un gaz (vapeurs de mercure, xenon, hydrogène…). Son comportement est
similaire à celui du thyristor.
Début des années 30. On voit apparaître les premiers onduleurs utilisant un bus continu et
les premiers cycloconvertisseurs pour le contrôle des machines triphasées. On imagine
l'autopilotage de la machine synchrone.
1938. Les machines auxiliaires des systèmes Krämer et Scherbius commencent à être
remplacés par des redresseurs à tubes.
1947. John Bardeen, Walter Brattain et William Shockley (du Bell Laboratories) inventent le
transistor à pointes.
17
Historique et état de l'art de la variation de vitesse
1959. Steven Hofstein et Frederic Heiman (RCA) parviennent à réaliser le premier transistor
MOSFET qui avait été imaginé par Lilienfeld en 1925 [Lilen 03].
Années 70. Le thyristor de puissance blocable par inversion de la tension de gâchette (le
thyristor GTO) devient opérationnel (auparavant, il était très limité en puissance).
1984. Le transistor bipolaire à grille isolée (IGBT) fait son apparition. Combinant la facilité
de commande d'un transistor MOSFET et la faible chute de tension d'un transistor
bipolaire, l'IGBT deviendra rapidement la solution privilégiée des convertisseurs
statiques de puissance moyenne.
1990. Mitsubishi développe des modules de puissance « intelligents » qui intègrent les
drivers et les protections des interrupteurs de puissance.
1959. Jack Kilby (Texas Instruments) et Robert Noyce (Fairchild Semiconductors) inventent
le circuit intégré.
1971. Ted Hoff (Intel) réalise le premier microprocesseur : le 4004, qui est en fait un
microcontrôleur 4 bits de 2300 transistors MOS cadencé à 108 kHz.
1972. Intel commercialise le premier microprocesseur 8 bits : le 8008, qui compte 3500
transistors et utilise une horloge à 200 kHz.
18
Historique et état de l'art de la variation de vitesse
Début des années 1970. Les premiers circuits intégrés bipolaires configurables par
l’utilisateur apparaissent. Parmi ceux-ci, le Programmable Logic Array (PLA) a été
inventé par Monolithic Memories. Viendront ensuite le Programmable Logic Device
(PLD), puis ses versions plus complexes dont le CPLD.
1976. Intel présente le 8748, premier microcontrôleur 8 bits intégrant notamment une
EPROM.
1979. Bell Labs propose le premier processeur de signal performant qui intègre un
multiplieur câblé.
1982. Intel lance le 8096, microcontrôleur 16 bits qui sera très utilisé dans le monde
industriel.
Début des années 2000. On observe le développement des composants hybrides associant la
puissance de calcul des DSP et les fonctionnalités d’interfaçage des microcontrôleurs.
Certains de ces composants, (proposés notamment par Texas Instruments, Microchip,
Analog Devices et Motorola), sont dédiés à la commande des machines électriques.
19
Historique et état de l'art de la variation de vitesse
1868. En étudiant la stabilité du régulateur à boules de Watt, James Clerk Maxwell pose les
fondations de la commande des systèmes. Il montre qu'un système linéaire est stable si
les racines de son équation caractéristique sont à partie réelle négative [Maxwell 1868].
1877. Quelques années plus tard, E.J. Routh établit le critère qui permet de déterminer si les
racines d'une équation caractéristique sont stables [Routh 1877].
1927. Harold S. Black (Bell Telephone Lab.) découvre l'intérêt de la contre-réaction négative
en cherchant à améliorer les performances des amplificateurs utilisés en téléphonie
[Black 1934].
1932. Harry Nyquist (Bell Telephone Lab.) définit son critère de stabilité, basé sur le lieu de
la boucle ouverte dans le plan complexe [Nyquist 32].
1938. Hendrik Bode (Bell Telephone Lab.) propose une nouvelle approche basée sur les
diagrammes de gain et de phase et introduit la notion de marges de stabilité [Bode 40].
Années 50. La théorie des systèmes échantillonnés est établie à l'Université de Columbia.
Les premières commandes numériques sont envisagées. Les travaux de C.E. Shannon
(Bell Telephone Lab.) révèlent les problèmes posés par l'échantillonnage des signaux.
1969. K. Hasse propose un nouveau principe de commande basée sur une modélisation
vectorielle de la machine asynchrone. Il propose un principe de commande qui repose
sur un changement de repère nécessitant un résolveur [Hasse 69].
1972. F. Blaschke généralise l’approche de Hasse aux machines alternatives et en déduit une
méthode de découplage du flux et du couple [Blaschke 72].
A partir de la fin des années 70. Werner Leonard contribue activement au développement
industriel de la commande vectorielle des machines triphasées [Leonhard 85],
[Leonhard 96].
20
Historique et état de l'art de la variation de vitesse
Années 30. Les tubes à gaz permettent de réaliser les premiers convertisseurs statiques :
redresseurs commandés, onduleurs, cycloconvertisseurs. La fragilité, l’encombrement
et la faible efficacité des tubes ont fortement limité leur développement.
Fin des années 50. Les composants de puissance à base de silicium commencent à remplacer
avantageusement les tubes dans les convertisseurs statiques. Les circuits de commande
sont évidemment analogiques. Seule la machine à courant continu bénéficie d’une
commande de plus en plus performante (augmentation de la dynamique et de la plage
de variation de vitesse), en raison de sa simplicité d’alimentation et de contrôle.
1974. ASEA présente l'IRB6 : le premier robot entraîné exclusivement par des actionneurs
électriques. Sa commande numérique utilise un microprocesseur 8 bits (le 8008 d'Intel
qui n'a que deux ans).
1981. Le TGV Sud-Est est mis en service. Il utilise 12 machines à courant continu de
500 kW.
1987. Télémécanique lance la gamme MASAP associant une machine synchrone à aimant à
un autopilotage par commande analogique (les changements de repère s'appuyaient sur
21
Historique et état de l'art de la variation de vitesse
les signaux en quadrature générés par un résolveur). Bien que le variateur intègre un
microcontrôleur, celui-ci est avant tout dédié aux fonctions de communication.
1988. Control Techniques et General Electric proposent la même année le premier variateur à
IGBT.
1989. Les premiers variateurs industriels basés sur le contrôle vectoriel de flux apparaissent
enfin. En France, ce type de variateur sera distribué par CEGELEC au début des années
90, sous la référence VNTV (voir figure 1.2). Il exploite le 8096 d’Intel
(microcontrôleur 16 bits) et des transistors IGBT.
1989. Le TGV Atlantique est propulsé par 8 machines synchrones autopilotées de 1.1 MW.
La partie puissance se compose d'un redresseur commandé et d'un onduleur de courant,
tous deux à thyristors. La commande est numérique.
Années 90. On assiste au développement des commandes sans capteurs mécaniques pour les
machines triphasées et notamment pour les machines asynchrones.
1993. La technologie du TGV évolue encore : cette fois, l'Eurostar utilise 12 machines
asynchrones de 1 MW, des onduleurs de tension à GTO et une commande vectorielle.
1996. Les premiers variateurs universels pour machines triphasées apparaissent. Ces
variateurs réalisent aussi bien les commandes scalaires et vectorielles de la machine
asynchrone que l'autopilotage de la machine synchrone.
22
Historique et état de l'art de la variation de vitesse
23
Historique et état de l'art de la variation de vitesse
24
Historique et état de l'art de la variation de vitesse
Par ailleurs, les objectifs de réduction de consommation énergétique et les normes sur les
perturbations et la compatibilité électromagnétique tendent à ce que le variateur gère mieux
l'énergie qu'il échange avec le réseau. Un variateur comporte usuellement un simple
redresseur à diodes qui présente de multiples inconvénients : il est non réversible, il injecte
des perturbations harmoniques sur le réseau et son facteur de puissance n'est pas optimal.
Malheureusement, si l'atténuation des harmoniques peut être obtenue par un simple filtrage
passif, la réversibilité demande un redresseur actif, beaucoup plus coûteux qu'un redresseur à
diodes.
Enfin, le variateur doit également assurer des fonctions de protection qui concernent aussi
bien ses propres composants (étage de puissance) que la machine ou la charge entraînée. La
protection des composants électroniques demande une grande rapidité d'intervention. Cette
25
Historique et état de l'art de la variation de vitesse
tâche est donc confiée à des systèmes analogiques et certains modules de puissance, dits
"intelligents", intègrent leur propre protection. Les machines performantes sont souvent
équipées de sondes de température, afin d'assurer leur protection thermique, mais ceci
demande un câblage supplémentaire. Certains variateurs offrent une protection basée sur un
modèle thermique, souvent très simplifié, de la machine. Sur le plan mécanique, tous les
variateurs permettent de définir les accélérations et décélérations maximales. Il est
généralement possible d'interdire certaines plages de vitesse, pour éviter des points de
fonctionnement préjudiciable pour l'entraînement : vitesse critique, résonance mécanique…
Pour les faibles et moyennes puissances, les variateurs de vitesse destinés aux machines
triphasées sont de plus en plus souvent des systèmes polyvalents : ils acceptent
indifféremment de piloter une machine synchrone ou asynchrone. Ils autorisent différentes
commandes : en couple ou en vitesse, scalaire ou vectorielle, avec ou sans capteur
mécanique. Ils proposent une connectique souple, par des entrées-sorties programmables et
des interfaces optionnelles (codeur ou résolveur, bus de terrain, liaison par câble ou fibre
optique…). Ils intègrent généralement une boucle externe supplémentaire qui permet de
piloter la vitesse de la machine pour diverses applications : asservissement de position,
contrôle de température par ventilation, régulation de niveau de liquide par pompage… Dans
un variateur industriel, ces fonctionnalités complémentaires requièrent en fait plus de
ressources, notamment en termes de mémoire, que la commande de la machine elle même.
Les tableaux 1.1 et 1.2 présentent les ordres de grandeur des principales caractéristiques
des variateurs de vitesse récents pour machines triphasées. Le tableau 1.1 indique les
performances pouvant être obtenues avec un capteur mécanique [Bonnal 98]. On obtient
alors des plages de vitesse très étendues, ce qui permet de réaliser des asservissements de
position très performants. Néanmoins, la machine synchrone à aimants est mieux à même de
répondre aux exigences extrêmes des machines-outils et de la robotique [Wyss 89]. Le
tableau 1.2 indique les performances des commandes de machine asynchrone sans capteur
[Vas 98]. Pour ces applications, la principale difficulté est de garantir une maîtrise
satisfaisante du couple aux très basses vitesses avec une charge entraînante : si la fréquence
des courants statoriques est nulle, la vitesse n'est plus observable et le variateur "décroche".
La précision en vitesse dépend fortement du glissement nominal de la machine. La pulsation
26
Historique et état de l'art de la variation de vitesse
Tableau 1.1 : Performances des commandes de machines triphasées avec capteur mécanique.
Tableau 1.2 : Performances des régulations de vitesse de machines asynchrones sans capteur mécanique.
27
Historique et état de l'art de la variation de vitesse
également possible d’implémenter des multiplications, le coût élevé de ces opérateurs réduit
fortement leur utilisation. Une grande partie des régulateurs analogiques est basée sur les
actions proportionnelle, intégrale et dérivée de l’erreur. Même avec des structures
relativement simples, les régulateurs analogiques permettent d’atteindre de très bonnes
performances.
Cependant, le vieillissement et les contraintes thermiques inhérentes à ce type de réalisation
sont à l’origine des variations comportementales des composants analogiques. Cette
contrainte physique peut nécessiter un réajustement régulier des paramètres du régulateur. En
outre, la fiabilité d’un système électronique décroît avec l’augmentation du nombre de
composants, et sa réalisation peut s’avérer délicate compte tenu des contraintes liée aux
tolérances des composants. En conclusion, les problèmes décrits ci-dessus et le coût de
maintenance pour un système totalement câblé deviennent vite un handicap. De plus, la
complexité croissante des algorithmes de commande des systèmes électriques impose des
calculs de plus en plus difficiles à gérer par une technologie purement analogique. La
commande vectorielle de la machine asynchrone en est un exemple typique. La mise en
œuvre de ces algorithmes entraîne progressivement l’abandon pur et simple de cette voie
d’implantation. L’orientation vers d’autres solutions s’impose donc naturellement.
28
Historique et état de l'art de la variation de vitesse
une vitesse de conversion propre. Ils ne restituent donc pas parfaitement l’information
analogique d’origine et génèrent des imprécisions (erreur de quantification). De plus,
l’implantation de certains algorithmes ne peut être réalisée que par l’utilisation d’outils de
calcul puissants et souvent très coûteux.
Suivant la nature de la cible utilisée, l’implémentation des lois de commandes peut être
scindée en trois catégories : implémentation logicielle, implémentation matérielle et
implémentation conjointe.
Lorsque l’on fait appel au remplacement d’un régulateur analogique par un régulateur
numérique, les DSP et les microcontrôleurs dédiés s’imposent comme cibles privilégiées
pour la plupart des concepteurs. Basées sur de la programmation, ces solutions effraient
moins les concepteurs et nécessitent peu de temps de développement [Monmasson 02]. Le
terme dédié indique ici que ces cibles ont été conçues pour des applications bien précises.
Malgré une unité de calculs simplifiée, l’ajout de périphériques internes aux microcontrôleurs
fait d’eux des circuits adaptés à la commande de processus. Ces périphériques sont
principalement : des mémoires ROM (Read Only Memory), EPROM (Erasable
Progammable Read Only Memory), des compteurs, des générateurs programmables de
modulation de largeur d’impulsion (MLI), des convertisseurs analogiques-numériques et,
plus rarement, des convertisseurs numériques-analogiques. Un exemple de microcontrôleur
mis récemment sur le marché des composants dédiés à la commande machines est
l’AT90PWM3 de la société ATMEL [Atmel 05]. Il s’agit d’un processeur 8 bits à
architecture RISC muni d’un multiplieur câblé. Il comporte un bloc mémoire de 8 koctets de
mémoire flash, 512 octets de mémoire EEPROM, 3 sorties MLI, un compteur 16 bits, un
compteur 8 bits, un convertisseur analogique-numérique 10 bits à 11 canaux d’entrée et un
convertisseur numérique-analogique 10 bits monocanal. La programmation de ce type de
microcontrôleur s’effectue en assembleur ou en langage C. Dans les deux cas, un compilateur
approprié traduit le programme en code exécutable qui est stocké dans l’EEPROM.
Les DSP intègrent en général une unité de calcul plus performante que les microcontrôleurs.
Ils permettent ainsi le calcul en temps réel d’algorithmes souvent fort complexes. Ils
possèdent une mémoire de données séparée de la mémoire du programme (architecture
Harvard). Les DSP dédiés à la commande des machines électriques possèdent les mêmes
périphériques internes que ceux intégrés dans les microcontrôleurs (générateur de signaux
29
Historique et état de l'art de la variation de vitesse
MLI, CAN,…). La série TMS320C24x est l’une des familles DSP les plus utilisées dans le
domaine de la commande des machines électriques [Ahmed 95, Toliyat t 04]. Ces DPS
travaillent sur des données de 16 bits, en virgule fixe, à 20 millions d'instructions par
seconde.
En raison de leur capacité initiale limitée, les cibles matérielles n’ont été utilisées pour
l’implémentation des algorithmes de commande numérique des systèmes électriques qu’au
début des années 90. On entend par cibles matérielles, les cibles de type FPGA ou ASIC.
Deux tendances se démarquent des derniers travaux de recherche sur l’intégration de la
commande. Nous les définissons par « l’intégration partagée » et « l’intégration unique ». Il
s’agit respectivement de techniques d’intégration sur plusieurs ou un seul circuit intégré.
Intégration partagée : face au manque de ressources pour la mise en œuvre d’une loi de
commande complète dans un même circuit, la solution multi circuits a été adoptée. Cette
dernière consiste à associer plusieurs circuits (intégrant chacun une partie des fonctions de
l’algorithme) pour construire le dispositif global de commande. Cette solution permet, non
seulement, l’implantation matérielle mais également elle offre à l’architecture un aspect
modulaire. Les qualités d’un tel système sont principalement liées la souplesse de conception
et de test. Son handicap réside dans le besoin d’établir la gestion de la communication entre
les différents circuits et de l’augmentation du coût global de l’architecture.
Implantation sur un circuit unique : la possibilité, d’acquérir aujourd’hui des FPGA
possédant des capacités qui frôlent le 20 millions de portes logiques permet l’implémentation
entière de la plupart des algorithmes de commande sur le même circuit. Le prix a
dramatiquement baissé (2$ pour 100 000 portes logiques pour le SPARTAN-3E [Xilinx]).
Les avantages de cette solution ne sont pas à démontrer : elle permet de réduire le coût global
de l’application, de réduire l’encombrement du système global notamment pour les systèmes
embarqués, et de réduire l’effet des perturbations électromagnétiques sur les signaux
d’interconnexion. Nous reviendrons, plus en détail, dans ce qui suit sur la description des
FPGA, afin de montrer le besoin d’une adéquation entre l’algorithme et l’architecture de la
cible dans le cas de l’implémentation des algorithmes de commande numérique des systèmes
électriques sur FPGA.
30
Historique et état de l'art de la variation de vitesse
31
Historique et état de l'art de la variation de vitesse
programmés électriquement. Ils sont principalement composés d'une matrice d'éléments plus
ou moins complexes pouvant être configurés, ainsi que d'un réseau complexe de connexions
également configurables. Bien qu'il existe actuellement plusieurs fabricants de circuits FPGA
dont Xilinx et Altera sont les plus connus, nous illustrerons ce concept à partir des circuits
Xilinx que nous avons employés. L'architecture, retenue par Xilinx, se présente sous forme
de deux couches [Bajard 04, Thoma 05] :
• une couche appelée circuit configurable,
• une couche réseau mémoire SRAM.
La couche dite "circuit configurable" est constituée d'une matrice de blocs logiques
configurables (CLB) permettant de réaliser des fonctions combinatoires et des fonctions
séquentielles. Autour de ces blocs logiques configurables, nous trouvons des blocs
d'entrées/sorties (IOB) dont le rôle est de gérer les entrées-sorties réalisant l'interface avec les
modules extérieurs (voir Figure 1.5). La programmation du circuit consistera, par le biais de
l'application d'un potentiel adéquat sur la grille de certains transistors à effet de champ, à
interconnecter les éléments des CLB et des IOB afin de réaliser les fonctions souhaitées et
d'assurer la propagation des signaux. Ces potentiels sont tout simplement mémorisés dans le
réseau mémoire SRAM.
La configuration du circuit est mémorisée sur la couche réseau SRAM et stockée dans une
ROM externe. Un dispositif interne permet à chaque mise sous tension de charger la SRAM
interne à partir de la ROM.
La mise au point d'une configuration s'effectue en deux temps : une première étape, purement
logicielle, consiste à établir une description de l’architecture à implanter (en langage VHDL
32
Historique et état de l'art de la variation de vitesse
33
Historique et état de l'art de la variation de vitesse
En plus des blocs logiques, la plupart des FPGA à l’heure actuelle comprennent différents
blocs additionnels : des blocs mémoires, des multiplieurs, voire des cœurs de DSP. Un FPGA
Virtex 4FX de Xilinx comporte 192 multiplieurs 18x18 bits et 9936 kbits de mémoire ainsi
que deux cœurs PowerPC. Une des applications principales des blocs mémoires dans le
domaine de la commande des machines à courant alternatif est l’implémentation de la
fonction sinus [Tzou 97].
34
Historique et état de l'art de la variation de vitesse
Jusqu’à l’heure actuelle, il n’existe pas de règle universelle permettant de déterminer vers
quelle cible la migration d’un algorithme doit être réalisée. Cependant, à partir des avantages
et des inconvénients des différentes cibles et de la nature de l’algorithme à implémenter, il est
possible d’apprécier l'adéquation entre une cible et un algorithme. Nous présentons au
35
Historique et état de l'art de la variation de vitesse
tableau 1.3 quelques avantages et inconvénients des principaux composants utilisées dans le
domaine du génie électrique.
Facilité de
Temps de mise
Technologie Performances Prix Flexibilité l’outil de
sur le marché
développement
DSP Très bon Bonnes Bon* Très bonne Bonne
Microcontrôleur Très bon Faibles Excellent Très bonne Bonne
FPGA Bon Très bonnes Moyen* Bonne Moyen
ASIC Très long Excellentes Excellent Nulle Pauvre
Tableau 1.3 : Comparaison des différents solutions technologiques
36
Historique et état de l'art de la variation de vitesse
- Les microcontrôleurs offrent de faibles puissances de calcul. Pour des tâches qui
nécessitent de fortes densités de calcul, ces derniers se révèlent insuffisants. Bien que
les processeurs Pentium soient très largement médiatisés de par leurs positions
dominantes dans le marché des PC ou les stations de travail, les microcontrôleurs
dominent toujours le marché du point de vue du volume de vente [Adams 02]. C’est
cette grande popularité qui contribue en grande partie à les rendre imbattables par
rapport aux prix d’autres composants. Etant une cible logicielle, les microcontrôleurs
bénéficient d’une flexibilité comparable à celle des DSP.
- Les FPGA sont des cibles matérielles. Ils permettent donc un calcul structurellement
parallèle ce qui leur permet dans ce cas d’atteindre des performances très élevées.
Leurs caractéristiques de reconfiguration permettent de faire la mise à jour des
architectures à implémenter par le simple téléchargement du fichier de configuration.
Ils offrent, par conséquent, un temps de mise sur le marché faible. Toutefois, la mise
en oeuvre d’un algorithme sur une cible de type FPGA nécessite une double
compétence. Car il ne suffit pas d’avoir des compétences en développement logiciel
mais aussi il faut avoir des compétences en développement matériel et notamment la
connaissance de l’électronique numérique (au niveau matériel). Un autre handicap qui
peut freiner l’utilisation des FPGA est que les outils de conception standard pour
FPGA ne sont pas adaptés pour réaliser des applications complexes. C’est au
concepteur de réaliser ces fonctions à partir des outils de base du FPGA ou de les
acquérir auprès des fournisseurs de blocs IP (Intellectual property).
Il ne nous semble pas possible d’opter définitivement pour une solution ou autre. En
effet, les données du marché international des composants électroniques changent à une
vitesse assez élevée. Néanmoins, en nous basant sur les données actuelles, il semblerait que
l’avenir proche soit favorable aux FPGA. En effet, les principales limitations dont ce type de
composants soufrait, il y a peu de temps encore, ont disparu (ressources insuffisantes et prix
élevés).
1.4. Conclusion
Ce chapitre nous a permis de resituer chronologiquement les principales étapes de
l’évolution des commandes de machines électriques. Nous avons également présenté un bref
37
Historique et état de l'art de la variation de vitesse
état de l’art des variateurs industriels pour machines triphasées. Enfin, nous avons comparé
les différentes solutions technologiques utilisées pour l’implémentation des lois de
commande des systèmes électriques. Cette comparaison montre que chaque solution présente
des avantages et des inconvénients. Pour chaque application à réaliser, il sera donc nécessaire
de réaliser le meilleur compromis entre les contraintes des performances et le coût du
dispositif.
A l’heure actuelle, il nous semble que les FPGA sont devenus des concurrents de taille
pour les microcontrôleurs et les DSP, que se soit sur le plan des performances ou du prix : la
tendance actuelle du marché montre qu’il y a une rude concurrence causée par la baisse
spectaculaire des prix des FPGA.
38
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
2.1. Introduction
Les concepteurs de dispositifs de commande de systèmes électriques ont très rapidement
pris la mesure de l’apport des techniques VLSI (Very Large Scale Integration) dans leurs
problématiques d’implantation. En effet, les composants du type ASIC ou FPGA offrent à
ces derniers des solutions efficaces. On prendra par exemple l’algorithme de la MLI qui est
très souvent intégré sous forme matérielle, le reste de la commande étant alors implémenté
sur cible logicielle [Foussier 98]. Le nombre de portes logiques disponibles et le prix des
FPGA constituaient il y a encore quelques années les principaux obstacles pour l’intégration
complète des lois de commande sur une seule puce FPGA. Cependant l’avènement récent de
nouveaux FPGA avec des capacités qui dépassent les 20 millions portes logiques et qui sont
proposés à des prix sans cesse décroissants (2$ pour 100k portes logiques pour le Spartan-
3E) [Xilinx] a fait évoluer cette situation en faveur des FPGA.
Aujourd’hui, les concepteurs de dispositifs de commande numérique sont amenés à
relever le défi sur différents aspects. Ils doivent faire face à un marché très exigeant aussi
bien au niveau des performances qu’au niveau des coûts. Ils sont également confrontés à un
marché de la micro électronique et de l’électronique de puissance, submergé chaque jour par
de nouveaux composants avec de nouvelles performances et de nouveaux prix. Enfin, ils
doivent faire face à une complexité sans cesse croissante des algorithmes. Relever tous ces
défis sans la disposition d’une méthode rationnelle de conception parait à nos yeux une tâche
fastidieuse.
Toutefois, aussi bien au niveau industriel que dans la littérature scientifique, peu de
personnes font état de l’implémentation de la commande entière sur un seul circuit FPGA. En
effet, cette démarche nécessite une parfaite maîtrise des processus et des outils de
développement. C’est ce savoir faire méthodologique que l’on retrouve chez les concepteurs
évoluant dans des secteurs d’activités comme les télécommunications et l’informatique
[Meyer-Baese 01, Kum 01, Kotteri 04].
Pour mener à bien nos objectifs de recherche, nous allons consacrer ce chapitre à la
présentation d’une méthodologie de conception de dispositifs de commande numérique des
systèmes électriques sur FPGA que nous avons établie et pratiquée. En effet, celle-ci est le
résultat d’une expérience acquise dans le domaine à travers différentes réalisations [Guibert
03, Boulbair 05a, Boulbair 05b]. Cette méthodologie est structurée en neuf étapes, qui sont
présentées en détail au paragraphe suivant, et illustrées sur un exemple choisi pour sa
simplicité.
39
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
40
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
41
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
pourquoi le client, tout en restant maître de ses choix, peut avoir intérêt à associer le
concepteur à la rédaction, ou du moins à la finalisation, du cahier des charges
[placeaudesign].
Dans les applications de commande de machines électriques, le cahier des charges comporte
essentiellement une liste de contraintes : contraintes de définition, contraintes dynamiques,
contraintes d’environnement et des contraintes économiques [Grellet 97]. Les contraintes de
définition déterminent les grandeurs nominales nécessaires pour satisfaire les besoins de
l’application (puissance utile, vitesse, couple). Les contraintes dynamiques fixent les
performances désirées aux régimes transitoires (accélération maximale, temps de réponse,
dépassements …). Les contraintes d’environnement imposent parfois des limitations sur la
masse ou le volume de l’actionneur ou de l’ensemble de la chaîne, l’ambiance de travail
(température, pression, humidité, bruit électromagnétique…). Les contraintes économiques
portent sur le coût de l’application.
Exemple d’illustration
Pour illustrer chaque étape de la méthodologie présentée, nous allons nous intéresser au
problème de la régulation du courant d’alimentation d’une charge (R, L) alimentée par un
onduleur de tension. Cet exemple peut paraître excessivement simple, mais il correspond
pourtant à des problématiques industrielles réelles, comme par exemple une torche de
soudage. La réalisation de cet exemple doit répondre aux contraintes suivantes:
- mette en œuvre une régulation permettant d’imposer des consignes de courants aussi bien
positives que négatives ;
- avoir un temps de réponse du système en boucle fermée inférieur à 30 ms ;
- atteindre un niveau de précision suffisant (inférieure à 5%) ;
- réduire le coût de l’application pour l’intégration de cette fonction sur un FPGA de petite
capacité.
42
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Exemple d’illustration
Pour satisfaire les besoins du cahier des charges de l’exemple d’illustration, nous proposons
d’opter pour le dispositif dont la structure générale est présentée dans la Figure 2.2. Notre
choix d’utiliser un onduleur en montage en pont est justifié par le besoin d’appliquer des
consignes de courant aussi bien positives que négatives. La mesure du courant est fournie par
un capteur de courant à effet Hall, dont le signal de sortie est filtré puis conditionné à l’aide
d’un circuit de changement d’échelle. Enfin, il est converti en un signal numérique à l’aide
d’un convertisseur analogique numérique. Le calcul de la commande va être implémentée sur
un FPGA dont des sorties logiques piloteront les interrupteurs de l’onduleur par modulation
de largeur d’impulsion (PWM).
43
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Le modèle mathématique de la charge (R, L) peut être exprimé par la fonction de transfert
d’admittance suivante
I ( s) 1/ R
G ( s) = = (2.1)
U ( s) L
s +1
R
U (s) K
Gc ( s ) = = K p (1 + i ) (2.2)
I ref ( s) − I ( s) s
44
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Gc G K K p (s + K i )
G BF ( s ) = = 2 (2.3)
1 + Gc G s + K K p s + K K p K i
Un système de commande ne peut être implémenté sur une cible numérique que si il est
conçu dans le domaine des signaux à temps discret. Car en effet, dans une cible numérique,
l’information ne circule pas d’une façon continue dans le temps.
Classiquement, la commande d’un système est réalisée d’abord dans le domaine des signaux
à temps continu. Ensuite, à l’aide d’un processus de discrétisation, cette commande est
transformée dans le domaine des signaux à temps discret. Toutefois, il est possible d’établir
le modèle de la commande directement dans le domaine des signaux à temps discret, après
avoir effectué la discrétisation du modèle mathématique de processus. Cependant, l’intérêt du
passage par l’étape de conception dans le domaine des signaux à temps continu est la
possibilité d’avoir une interprétation physique directe des différentes grandeurs (temps de
montée, temps de premier dépassement, marge de gain, marge de phase, etc.) [Santina 98a,
Prodic 01].
Parmi les méthodes les plus couramment utilisées pour la transformation du modèle à temps
continu d’une fonction de transfert H (s ) au modèle à temps discret H (z ) on peut citer les
suivantes [Santina 98a, Ahmed 95]:
¾ approximation numérique des équations différentielles du modèle
¾ méthode de l’invariance impulsionnelle
¾ méthode de l’invariance des pôles et des zéros (Pole-zero matching)
45
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Même si ils sont présentés dans différents travaux, il parait à nos yeux très utile de rappeler
les principaux critères à prendre en compte lors du choix de la fréquence d’échantillonnage.
Car c’est un élément qui influe à la fois sur le choix de la cible d’implémentation et sur la
qualité du signal de sortie du système. Lors du choix de la fréquence d’échantillonnage il faut
tenir compte des critères suivants:
a) Selon le théorème de Shannon, le choix de la fréquence d’échantillonnage f e doit satisfaire
la condition
f e ≥ 2 f max (2.4)
Avec f max fréquence maximale du signal à discrétiser. Toutefois, cette condition est
applicable seulement si le spectre du signal à échantillonner est nul à l’extérieur de la bande
[− f max , + f max ] ( X ( f max ) = 0 ) [Egon 01]. Cette condition pourrait être utilisée à condition
de disposer d’un filtre anti-repliement idéal, qui est malheureusement irréalisable. Il faut
donc se contenter d’une solution de compromis, visant à remplacer le filtre idéal par un filtre
causal d’ordre raisonnable (inférieur à 10). Ceci implique un choix de la fréquence
d’échantillonnage légèrement supérieure à celle préconisée par le théorème de Shannon
b) Il ne faut pas que la période d’échantillonnage soit plus petite que le temps global
nécessaire à l’exécution de l’algorithme à implémenter.
c) Même si l’augmentation de la fréquence d’échantillonnage à l’avantage de réduire
l’influence des perturbations sur les régulations de courants et d’améliorer la qualité des
signaux (un échantillonnage plus fréquent permet d’avoir une résolution plus fin), elle a tout
de même l’inconvénient d’augmenter les grandeurs de commande lors des transitoires
[Monmasson 93] et d’amplifier les bruits lors des opérations de dérivations.
d) Un autre problème lié à la réduction de la période d’échantillonnage est que lorsque
Te → 0 , le modèle discret du processus tend vers un modèle trivial. Pour un modèle d’état
[de Larminat 00], les matrices de transition et de commande à temps discret deviennent en
effet :
Te
Ad = e ATe ≈ I et Bd =
∫
0
e A t B dt ≈ 0
Un autre critère pouvant être utilisé pour déterminer la fréquence d’échantillonnage est celui
basé sur la connaissance du temps de réponse du système en boucle fermée. Une méthode
46
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Te
Gc ( z ) = K p 1 + K i (2.7)
1 − z −1
47
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
48
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
En se basant sur ces différentes constatations, il est donc possible d’approuver le dispositif de
commande développé.
De part la spécifité de la réalisation des opérations sur des cibles de type FPGA ou ASIC, il
est nécessaire de simplifier l’algorithme à implémenter le plus possible ainsi que de trouver
la meilleure adéquation entre algorithme et architecture. Cela peut se faire par :
- la simplification des calculs jusqu’à ne plus avoir que des opérations élémentaires à deux
ou trois opérandes ;
- la recherche de la forme la moins coûteuse en nombre d’opérations ;
- la recherche du chemin optimal des données ainsi que la bonne position des gains.
49
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
2.2.2.3.2. Choix de la position des gains et détermination du chemin optimal des données
Dans les chaînes de traitement d’information en électronique analogique, si le signal doit
subir plusieurs amplifications en cascade, il faut placer le quadripôle ayant le plus grand
rapport signal sur bruit et le plus grand gain en tête de chaîne, afin que le bruit du signal de
sortie soit le plus faible possible. De même, si dans la même chaîne de traitement, il est
nécessaire de réaliser à la fois des opérations d’amplification et d’atténuation, il est important
de placer d’abord les circuits amplificateurs puis les circuits atténuateurs. Une telle
configuration permet d’avoir le plus grand rapport signal sur bruit.
Dans les dispositifs de commande numérique, il est fréquent de faire appel à des opérations
de multiplication de signaux par des constantes. En arithmétique en virgule fixe, ce type de
processus est souvent source de bruits (voir § 2.2.2.6). Le rapport signal sur bruit du signal de
sortie (résultat de la multiplication) dépend principalement de la valeur du signal à l’entrée
du multiplieur, de la largeur de bus du signal de sortie et de la valeur du gain. Afin de réduire
l’incidence du bruit généré sur le signal de sortie du dispositif de commande, il est important
de repousser dans la mesure du possible les blocs de multiplication par les gains inférieurs à
1 vers la sortie du système. La multiplication d’un signal faible par un gain inférieur à 1
engendre en effet un bruit plus important que celui d’une multiplication par un gain supérieur
à 1.
Considérant la réalisation du transfert d’un régulateur PI suivant:
U ( z) K Te
= K p 1 + i −1 (2.9)
E( z) 1− z
50
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
La recherche du chemin optimal des données d’une architecture consiste d’abord à construire
son graphe de dépendance de données (graphe flot de données GFD) à partir des équations
mathématiques de l’algorithme, puis à réaliser la factorisation des motifs répétitifs de calcul
de l’algorithme [Monmasson 02]. L’avantage principal de cette démarche est la minimisation
des ressources physiques. Cependant, son inconvénient est l’augmentation du temps global
de l’exécution de l’algorithme. Si on considère par exemple l’algorithme qui réalise les
calculs suivants :
Va* = Vsm sin(θ )
* 2π
Vb = Vsm sin(θ − )
3
* 4π
Vc = Vsm sin(θ − 3 )
A première vue, il semble que le calcul des tensions Va* ,Vb* ,Vc* fait appel à trois
multiplications et trois calculs du sinus d’un angle. Cependant, si on utilise le procédé qui
consiste à factoriser les motifs répétitifs, il sera possible de n’utiliser qu’un seul multiplieur
et un seul système de calcul de sinus. Le schéma du système envisagé est représenté dans la
Figure 2.8. Il est clair ici que la fréquence maximale à laquelle le calcul de trois tensions peut
se faire va être divisée par trois.
51
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Exemple d’illustration
Puisque la valeur du gain K p est supérieure à 1 et que la valeur de K i Te est inférieure à 1 il
est préférable de choisir la structure présenté dans la Figure 2.7.b afin d’avoir une bonne
précision. La seule ressource qui pourrait être partagée serait un additionneur et la mise en
œuvre du partage de cette ressource ne ferait qu’augmenter la complexité de l’architecture.
Aucun partage de ressources ne va donc être effectué dans cet exemple.
2.2.2.5. Mesure des extremums et normalisation des signaux
Les formats courants de représentation des nombres dans un circuit numérique sont le codage
en virgule fixe et le codage en virgule flottante. Généralement les nombres implémentés dans
les FPGA sont codés en virgule fixe, car la synthèse d’opérateurs en virgule flottante est une
opération compliquée et consomme un nombre important de circuits élémentaires du FPGA.
Le codage d’algorithmes en virgule fixe a l’avantage d’être facile à implémenter sur une
cible numérique. Mais il a aussi l’inconvénient de présenter certains défauts, en particulier
lors des opérations de multiplication où le problème de dépassement de capacité est souvent
rencontré. Pour remédier à cet handicap, différentes méthodes peuvent être présentées. La
plus utilisée consiste à normaliser les signaux de sorte que leur amplitude soit ramenée dans
l’intervalle [-1, 1[ [Bomar 98, Istepanian 01]. La multiplication de deux nombres inférieurs à
1 donne toujours un nombre inférieur à 1. Pour normaliser un signal il faut suivre les étapes
suivantes :
 D’abord, il faut déterminer la valeur absolue maximale et donc la dynamique de chaque
signal à normaliser. Deux techniques peuvent être utilisées pour déterminer les valeurs
absolues maximales d’une architecture :
• l’une basée sur des simulations et l’autre basée sur des calculs analytiques [Ménard
02a]. Cette méthode consiste à déterminer les domaines de définition (valeurs
extrêmes) des différents signaux d’une architecture à partir de la connaissance des
domaines de définition des signaux en entrée de cette dernière [Coors 02]. Le domaine
de définition d’un signal de sortie d’un opérateur est déterminé à partir du domaine de
définition de ses opérandes. Les règles utilisées pour la détermination des domaines de
définitions des différents signaux au sein d’une architecture sont illustrées sur le
Tableau 2.1. Considérant par exemple l’algorithme qui réalise les opérations :
52
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Cette méthode permet d’avoir de bons résultats si on a une parfaite connaissance des
domaines de définition des signaux en entrées de l’algorithme. Son inconvénient vient
du fait qu’elle n’est pas facilement applicable aux processus non linéaires, car la
détermination du minimum et du maximum devient difficile.
53
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
changement d’échelle qui doit être placé en amont du CAN d’autre part. Le gain K u quant à
lui, est formé par le gain propre du convertisseur numérique analogique est de l’interface de
puissance qui doit être placée en aval de ce dernier (gain de l’onduleur).
Figure 2.10 : (a) système asservi. - (b) système asservi après normalisation
Gc
Gc′ = (2.10)
K y Ku
U ( z ) b0 + b1 z −1 + ... + bn z − n
Gc ( z ) = = (2.11)
E ( z ) 1 + a1 z −1 + ... + a n z −n
1
X ( z) = E( z)
1 + a1 z −1 + ... + a n z −n (2.12)
U ( z ) = B( z ) X ( z )
1
avec b′j = b j
K y Ku
On déduit de la Figure 2.10 et des équations 2.13 les relations suivantes :
54
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
E ′ = K y E
1
U ′ = U ( 2.14)
Ku
X ′= K y X
Pour évaluer K y et K u on simule d’abord le modèle fonctionnel afin d’avoir E max et U max
ensuite on résout le système d’inéquations suivant :
K y E max <1 1
K y <
1 ⇒ E max (2.15)
K U max < 1 K >U
u u max
Il est préférable de laisser une plage de sécurité lors du choix des paramètres de
normalisation, car en effet, il suffit qu’il y ait une perturbation qui vienne se superposer sur la
mesure pour provoquer le dépassement de capacité (overflow).
L’introduction des gains en entrée permet de normaliser le signal E mais elle ne conduit pas
forcément à la normalisation de tous les signaux internes du système. Dans ce cas, il est
nécessaire de faire intervenir des gains internes afin de normaliser tous les signaux qui ont
des amplitudes qui n’appartiennent pas à l’intervalle [-1, 1[. Pour ce faire, il est recommandé
d’utiliser des gains en puissance de 2, car sur une cible numérique la multiplication ou la
division par une puissance de 2 revient à faire un décalage arithmétique à gauche ou à droite.
Sur une cible de type PFGA, il n’est pas nécessaire de faire appel à des registres de décalage
pour effectuer des opérations de multiplication ou de division par des puissances de deux, il
suffit de mettre les signaux qui correspondent aux bits de poids fort/faible au niveau logique
bas.
Un autre aspect de la normalisation qui peut être abordé ici est son incidence sur
l’augmentation de la précision des calculs. Si on veut effectuer des opérations sur des
signaux qui ont des amplitudes très faibles, le résultat peut se noyer dans le bruit généré par
le processus de quantification. Afin de remédier à ce genre de problèmes, il est souhaitable
de rehausser les niveaux des signaux en entrée des opérateurs, d’effectuer l’opération et de
diviser par le même gain en sortie du processus ensuite. Pour mettre en lumière cette
technique on considère l’exemple suivant : on veut calculer la position du rotor d’un moteur
électrique θ [k ] à partir de la connaissance de sa vitesse de rotation ω[k ] . Si on considère que
le moteur tourne à une vitesse constante ω =100 π rad/s et que les mesures de vitesse sont
prélevées à des intervalles de temps réguliers Te =10 −4 s, la position peut être ainsi calculée
par :
55
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Sachant que la position est une fonction périodique de période 2 π , la valeur maximale que
peut prendre θ [k ] est doncθ max = 2π . La normalisation de l’équation (13) se fait ainsi :
θ [k ] θ [k − 1] ω[k ]Te
= +
θ max θ max θ max (2.17)
θ ′[k ] = θ ′[k − 1] + ω ′[k ]T
e
ω[k ]Te
pour ω = 100 π et Te =10 −4 ⇒ ω ′[k ]Te = = 0,005 = (0,00000000101) 2
θ max
La représentation binaire sur 7 bits du terme ω ′[k ]Te sera donc nulle et la position n’évoluera
jamais. Pour résoudre ce problème, on va rehausser la valeur du signal ω ′[k ]Te par un gain
interne de façon à avoir un calcul plus précis. Cela peut être réalisé de la manière suivante
( )
θ ′[k ] = 2 n θ ′[k − 1] + 2 n ω ′[k ]Te 2 − n (2.18)
Certes, la multiplication du signal d’entrée ω ′[k ]Te par un gain va augmenter la résolution,
mais elle nécessite d’augmenter la largeur de bus des signaux. Pour une multiplication par 8,
il faut ajouter trois bits pour la représentation des signaux
0 , 005 × 2 3 = ( 0 , 0000101 ) 2
Le choix du gain (la puissance n ) dépendra de la réalisation d’un compromis entre la
précision de calcul souhaitée et de la surface de silicium allouée à cette application. Ce
compromis sera étudié ultérieurement de façon plus approfondie (§ 2.2.3.2).
56
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Exemple d’illustration
Afin de normaliser les différents signaux du système de commande, nous commençons
d’abord par l’évaluation des extremums de chaque signal. Pour cela nous appliquons une
consigne de courant variant entre − I max et I max avec I max = 10 A. Pour la numérotation
des signaux présentée dans la Figure 2.13, le prélèvement des extremums des signaux (S1..S9)
est donné par le Tableau 2.2.
Signal Extremum
S1 9.9
S2 10,95
S3 19,8
S4 1799
S5 361.4
S6 153.4
S7 1845
S8 155
S9 1690
S10 1690
Tableau 2.2 : Mesure des extremums des signaux
Pour connaître la valeur des gains qu’il faut insérer afin de normaliser les différents signaux
de la structure de commande, il faut d’abord évaluer les différents gains de l’interface
d’entrée (chaîne d’acquisition de la mesure) et de l’interface de sortie (interface de
puissance : onduleur).
Dans le cadre de cet exemple, l’information sur la mesure de courant est d’abord prise par un
capteur à effet Hall de gain 1/10. Afin de réduire les effets des perturbations
électromagnétiques et éviter le problème de repliement dû à l’échantillonnage, cette mesure
de courant est par la suite filtrée avec un filtre passe-bas de fréquence de coupure égale à 1
kHz. Enfin, puisque l’entrée du CAN est une tension comprise entre -1 et +1 V, il est
nécessaire de multiplier le signal de sortie du filtre par un gain afin de le normaliser. Le
calcul de celui-ci se fait en fonction du gain du capteur et de la valeur max du courant. Dans
le cas présent, le courant maximal est de 10 A et le gain du capteur est de 0.1 V/A. Afin
57
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
d’avoir une marge de sécurité, il est nécessaire d’insérer un gain de 1/2 par exemple à la
sortie du filtre. Ce qui vient à un gain global de 1/20.
Le signal de sortie du régulateur sert de tension de référence pour l’onduleur. Le gain
introduit par celui-ci est égal à la moitié de la tension du bus continu (155 volts).
L’insertion d’un gain à l’entrée d’un bloc doit être suivie par l’insertion du gain inverse à la
sortie du même bloc. La division des entrées du régulateur par 20 impose la division des
niveaux de saturation par 20 également. Puisque le signal de sortie est multiplié par un gain
de 155, on va insérer un gain de 1/155 au niveau du gain K p ce qui permet d’avoir
directement une structure normalisée sans l’ajout de gains internes. Dans ce cas aussi, il ne
faut pas oublier de diviser le niveau de saturation par 155. La nouvelle structure est celle
présentée dans la Figure 2.14.
En toute rigueur, la division du gain proportionnel K p par 155 conduit à une valeur
inférieure à 1, donc à un changement de la topologie de réalisation par celle de la Figure
2.7.a. Ce changement ne va pas être présenté ici, afin de ne pas alourdir cette présentation.
Figure 2.14 : Structure générale après l’insertion des gains d’entrée et de sorite
58
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Comme il est montré sur le Tableau 2.3, l’insertion des gains d’entrée et de sortie a permis la
normalisation de tous les signaux de la structure.
2.2.2.6. Quantification et choix de la largeur des bus
Multiplication
Pour une multiplication, les deux opérandes doivent posséder la même représentation mais le
nombre de bits réservés pour la chaque partie peut être différent (voir Figure 2.16).
59
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
L’opération de multiplication est une des opérations les plus gourmandes en ressources
physiques.
Multiplexage, retard
Le signal de sortie d’un multiplexeur ou d’un bloc de retard doit garder le même type et le
même format que les signaux d’entrée [Kum 01] (voir Figure. 2.17).
60
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Lois de quantification
Un signal représenté en arithmétique en virgule fixe ne peut prendre que des valeurs
quantifiées dont la plus petite valeur strictement positive est égale au pas de quantification
(résolution). Le pas de quantification d’un signal signé codé sur n bits est égale à q = 2 −( n −1) .
Si un signal a une valeur qui situe entre deux niveaux de quantification, son codage en
arithmétique en virgule fixe impose de ramener sa valeur à un multiple du pas de
quantification. Le passage vers le niveau supérieur de quantification ou vers le niveau
inférieur dépendra de la loi de quantification utilisée. Les trois lois de quantification utilisées
classiquement [Bomar 98] sont la loi de quantification par arrondi, la loi de quantification par
troncature et la de quantification par troncature de la norme. Dans le premier cas, l’erreur de
quantification eq = Q ( x) − x , où Q(x) est la valeur quantifiée du signal, elle est comprise
q q
entre − et + . Dans le deuxième cas, elle est comprise entre − q et zéro. La différence
2 2
entre la quantification par arrondi et la quantification par troncature est que la quantification
par arrondi permet d’avoir une meilleure précision d’approximation mais elle présente
l’inconvénient d’être plus coûteuse en termes de ressources. La quantification par troncature,
quant à elle, est moins précise mais elle plus simple à implémenter.
Dans le cas où l’on suppose que le bruit généré par le processus de quantification est
stationnaire, blanc et non corrélé avec l’entrée, sa modélisation peut être faite par un système
linéaire où le signal quantifié est égal à la somme du signal d’origine et d’un bruit
uniformément distribué [Bomar 98, Santina 98c].
61
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Si on considère que la quantification par arrondi Q( x) du signal x (codé sur n bits est égale à
la somme du signal d’entrée avec une variable aléatoire e, appelée bruit de quantification,
q q
dont la densité de probabilité est uniforme sur l’intervalle − , , ( q = 2 − ( n −1) étant le pas
2 2
de quantification), le moment du premier et du second ordre de l’erreur de quantification sont
données par :
µ e = 0
2 q2 (2.20)
σ e =
12
De même, les expressions des moments du premier et du second ordre lors d’utilisation d’une
loi de quantification par troncature sont données par [Bomar 98, Santina 98c, Ménard 02]:
q
µ e = − 2
2
(2.21)
σ 2 = q
e 12
La modélisation des quantificateurs nous permet de connaître leurs influences sur les signaux
et donc de mieux choisir leurs emplacements. On considère le calcul du signal y tel que :
y = K1 x1 + K 2 x2
avec K1 et K2 deux constantes signées codées sur n bits et x1 et x2 deux signaux signés codés
en n bits également. Afin de réduire la taille de silicium nécessaire à la réalisation de ce
calcul, il est possible d’adopter une des trois topologies suivantes : quantification de chaque
sortie des multiplieurs (voir Figure 2.20.a), quantification de la sortie de l’additionneur
uniquement (voir Figure 2.20.b) ou quantification des sorties des multiplieurs et de
l’additionneur au même temps (voir Figure 2.20.c). On considère que chaque processus de
quantification introduit un bruit de quantification de variance σ 2 (bruit ajouté au signal de
sortie de chaque quantificateur). A partir du schéma présenté dans la Figure 2.20, il est
possible de constater que la première approche génère une erreur de quantification totale
de 2 σ 2 , tandis que la deuxième ne conduit qu’à une erreur de quantification de σ 2 .
Toutefois, si l’additionneur utilisé dans la deuxième configuration travaille sur des signaux
62
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
de ( 2 n -1) bits, l’additionneur de la première structure lui, ne travaille que sur des signaux de
n bits. Il nécessitera donc moins de ressources logiques et prendra moins de temps pour
l’exécution d’une opération d’addition. La troisième approche, quant à elle, peut être
considérée comme une combinaison des deux premières configurations. Si on arrive à
trouver les valeurs adéquates de n et m, on peut réaliser ainsi un compromis entre la précision
de calcul et la surface de silicium.
Figure 2.20 : Quantification des sorties des multiplieurs (a), de la sortie de l’additionneur (b) et des
sorties des multiplieurs et de l’additionneur (c)
Exemple d’application
Puisque chaque multiplication d’un signal par une constante conduit à une augmentation de
la largeur de bus, il est nécessaire de quantifier chaque sortie des multiplieurs de la structure.
Le choix de la largeur de bus des signaux d’entrée ( I ref et I ) dépend du nombre de bits du
CAN (12 bits signé). La largeur de bus du signal de sortie dépend de la largeur de bus du
système de génération des signaux PWM (système de génération de la porteuse). En ce qui
concerne le choix de la largeur des autres signaux, il est possible de se contenter dans un
premier temps d’un choix arbitraire tout en respectant les règles du codage en arithmétique
63
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
64
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
- Après avoir fixé le nombre de bits sur lequel cette constante va être codée, on commence
d’abord par la quantification de la constante réelle. Le maximum de précision est obtenu
dans le cas de la quantification par arrondi.
- On cherche ensuite la suite de sommes ou de différences de nombres en puissance de 2 la
plus courte qui réalise la valeur de cette constante. La Figure 2.22 illustre l’utilisation de
deux manières différentes pour coder la multiplication d’un signal x par une constante
k = 93 [Meyer-Bease 01].
Comme il est montré sur la Figure 2.22.a, la réalisation d’une multiplication requiert trois
additionneurs et trois registres à décalage, alors que celle de la Figure 2.22.b ne nécessite que
deux additionneurs et deux registres à décalage. Tant du point de vue du nombre de
ressources utilisées que du retard de propagation du circuit, il semble que la deuxième
structure soit plus intéressante. Dans certains cas, il est nécessaire de faire un compromis
entre les performances temporelles et le nombre de ressources globales consommées.
Exemple d’application
65
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Exemple d’illustration
Le diagramme fonctionnel du régulateur (Figure 2.21) peut être décomposé en six couples
entité-architecture, trois multiplications par des gains, trois additionneurs/soustracteurs, un
intégrateur et une fonction de saturation. Le plan d’ensemble est présenté Figure 2.23.
Comme il a été déjà signalé précédemment, l’implémentation des algorithmes au sein d’une
architecture en virgule fixe nécessite de réaliser une conversion de la description de
l’algorithme en virgule flottante en une réalisation en virgule fixe. Cette conversion est une
66
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
tâche fastidieuse, longue et source d’erreurs, si elle est effectuée manuellement. A nos yeux,
elle correspond à la phase la plus coûteuse en temps de développement. Car en effet, la
conversion de l’algorithme en virgule fixe nécessite de déterminer le format de chaque
donnée et de vérifier si la réalisation en virgule fixe obtenue permet toujours de satisfaire les
niveaux de performance requis par l’application.
La réduction du temps de mise sur le marché des applications exigeant l’utilisation d’outils
de développement de haut niveau afin d’automatiser certaines tâches, des méthodologies de
codage automatique des données en virgule fixe ont été proposées. Dans [Kum 01,
Constantinidès 00] les auteurs nous présentent une méthodologie de conversion en virgule
fixe sans prendre en considération l’architecture. La prise en compte des contraintes de
surface lors de la phase de conversion montre l’influence de celles-ci sur la précision des
calculs [Boulbair 05c]. Ainsi, nous présentons dans cette section, la démarche que nous
avons adopté pour la détermination de la largeur optimale des différents signaux d’une
architecture.
Partant du souhait de concevoir un dispositif de commande assurant à la fois un niveau de
précision et une occupation minimale de la surface silicium du FPGA, l’algorithme évalue,
pour une configuration donnée, la précision des calculs par simulation du modèle fonctionnel
et la surface silicium par compilation du modèle HDL. Puis, à l’aide d’une méthode de
recherche heuristique, il détermine la configuration qui satisfait au mieux les deux critères au
même temps (voir la Figure 2.24).
67
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Py
RSBq(dB) = 10 log( ) (2.22)
Pb
où Py est la puissance du signal de mesure non bruité (signal non quantifié) et Pb la puissance
du bruit de quantification. Pour apprécier l’incidence des quantificateurs sur la qualité de la
régulation, nous avons choisi d’évaluer le rapport signal sur bruit de quantification du signal
de mesure. Deux approches peuvent être utilisées pour évaluer la précision d’un système en
virgule fixe : la méthode analytique ou la méthode basée sur la simulation [Ménard1 02] :
- L’approche analytique consiste à déterminer l’expression analytique de la puissance du
bruit de quantification en sortie d’un système. Son avantage réside dans le fait que, une fois
l’expression analytique déterminée, elle nécessite un temps de calcul très réduit.
- L’approche basée sur la simulation consiste à calculer la puissance du bruit de
quantification à partir de la différence entre la mesure du signal en virgule flottante et la
mesure du signal en virgule fixe. Dans ce cas, l’implémentation en virgule flottante est
utilisée comme référence car pour l’erreur liée à l’utilisation de l’arithmétique à virgule
flottante est négligeable par rapport à celle due à l’arithmétique à virgule fixe (voir Figure
2.25).
Le calcul de la puissance moyenne d’un signal discret de N points peut être donné par
N
∑ ( y [k ])
1 2
Py = i (2.23)
N
i =1
68
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
L’évaluation des ressources se fait par la synthèse du modèle VHDL établi à partir du modèle
fonctionnel codé en arithmétique en virgule fixe. A l’issue d’une opération de synthèse,
l’outil de développement génère un rapport contenant, entre autres, le nombre de cellules
logiques et la cadence maximale à laquelle les opérations peuvent être exécutées. Par
conséquent, il suffit d’une simple lecture automatique du rapport généré par le compilateur
pour connaître le nombre de cellules logiques nécessaires à la réalisation de l’algorithme.
Pour répondre aux exigences présentées précédemment, nous avons opté pour la méthode de
recherche Tabou. Cette dernière permet en effet de travailler sur des variables discrètes, de
détecter un optimum global et d’avoir un temps de convergence convenable par rapport à
d’autres algorithmes tels que les algorithmes génétiques par exemple. Les différentes étapes
de la méthode de recherche Tabou sont les suivantes [Berthiau 02]:
69
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Il est inutile d’affecter à chaque signal de l’architecture une variable indépendante (une
largeur de bus). Car en effet, les règles du codage en virgule fixe eux mêmes imposent un
certain choix des variables à respecter. Une affectation explicite des variables doit être donc
réalisée en premier lieu. Parmi ces différentes affectations on retient les suivantes : tous les
signaux d’entrée d’un même additionneur doivent avoir la même largeur de bus (la même
variable). Les multiplexeurs, démultiplexeurs et retards gardent la même largeur de bus en
entrée qu’en sortie. La largeur de bus du signal de sortie d’un multiplieur est égale à la
somme des variables d’entrée.
Exemple d’application
70
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Il semble, à première vue, que le problème à résoudre ici est un problème multi objectifs. A
vrai dire, même si on a deux fonctions à optimiser, il ne s’agit pas d’un problème multi
objectifs. On cherche à maximiser la fonction f1 qui décrit le rapport signal sur bruit de
quantification et de minimiser celle qui décrit le nombre de ressources utilisées f 2 .
Sachant que le calcul minimum d’une fonction peut être remplacé par le calcul du maximum
de la même fonction en signe opposé ( min( f ( x)) = max(− f ( x)) ), le problème de
maximisation de f1 et de minimisation de f 2 peut se réduire donc à un problème de
maximisation d’une seule fonction F qui sera la somme des deux fonctions f1 et f 2
où r est un coefficient de pondération et f1norm et f 2norm sont les versions normalisées des
fonctions f1 et f 2 . La normalisation des deux fonctions f1 et f 2 se fait par rapport à une
configuration extrême de l’architecture à optimiser (largeur maximale des bus).
Le choix du coefficient r dépend principalement des exigences du cahier des charges. Si les
exigences imposées sont plus sévères sur la précision que sur le coût, il est donc nécessaire
de choisir r < 1 . Par contre si les contraintes sur le coût sont plus rigoureuses, il faut
prendre r > 1 . Le cas intermédiaire correspond au choix r = 1 .
Exemple d’application
71
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Afin de trouver les valeurs extrêmes permettant de normaliser les fonctions f1 ( RSBq ) et f 2
(nombre de cellules logiques) nous commençons d’abord par une simulation du modèle
fonctionnel et une compilation du modèle VHDL en choisissant un format unique pour toute
l’architecture (même largeur de bus). Pour une variation de la largeur de bus entre 6 et 20
bits, le tracé de la variation du rapport signal sur bruit de quantification est donné par la
Figure 2.27. D’après cette figure, on constate qu’à partir d’une largeur de bus de 12 bits le
RSBq est presque constant. La variation du nombre de cellules logiques, quant à elle, est
présentée dans la Figure 2.28. Les résultats de synthèse présentés dans cette figure, obtenues
par le logiciel MAX+plus II d’Altera, sont exprimés en cellules logiques
.
Figure 2.27 : Variation du RSBq en fonction de Figure 2.28 : Variation du nombre de cellules en
la largeur de bus fonction de la largeur de bus
72
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Une fois la solution optimale trouvée, il importe d’effectuer une dernière simulation du
modèle fonctionnel pour avoir une idée de l’allure du signal de sortie du système et
d’apprécier ainsi la précision et le nombre de cellules logiques utilisées.
Exemple d’application
En fixant la largeur de bus du signal de sortie du régulateur à 12 bits (cette largeur dépend du
nombre de bits du compteur-décompteur du système de génération de la PWM), l’emploi de
l’algorithme de d’optimisation se restreint à la détermination de deux variables N1 et
N 2 seulement. La valeur maximale de N1 est donnée par le nombre bits du convertisseur
analogique numérique utilisé pour faire la conversion du courant, mais rien n’empêche de
prendre une valeur plus petite.
β
Pour un rapport = 1 , l’exécution de cet algorithme nous a permis d’obtenir une solution qui
α
correspond à N1 =12 et N 2 =14 (voir Figure 2.29). Afin de tester la reproductibilité des
résultats obtenus, nous avons procédé à la réexécution de l’algorithme plusieurs fois en
choisissant des solutions initiales différentes. Il est clair qu’il est possible de trouver le bon
choix sans l’utilisation de cet algorithme, mais il cela nécessite beaucoup plus de temps que
si on utilise l’algorithme de détermination automatique (temps d’exécution de l’ordre de 15
minutes).
L’intérêt de cette procédure d’optimisation serait mis d’avantage en évidence sur un
algorithme plus complexe que celui qui a été utilisé pour illustrer les étapes précédentes.
Pour la solution optimale trouvée, les résultats de simulation du modèle fonctionnel sont
montrés sur Figure 2.30. D’après cette figure, on peut constater que les contraintes de
précision sont toujours garanties. Le rejet de perturbation montre bien le bon fonctionnement
de la fonction de régulation. La différence entre les résultats de l’algorithme en virgule fixe et
ceux de l’algorithme en virgule flottante est inférieure à 6 mA en valeur absolue. Les
exigences en terme de performances (temps de réponse) sont toujours garanties (inférieur à
30 ms).
La synthèse du modèle VDHL par le logiciel MAX+plusII nous montre que le nombre de
cellules logiques nécessaires à la réalisation de ce régulateur est de 337.
73
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Figure 2.30 : Résultats de simulation du modèle en virgule flottante et du modèle en virgule fixe dans le
cas de la configuration optimale : courants obtenus dans les deux cas (en haut) et différences entre les
deux courants (en bas)
74
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
détérioration des équipements. Toutefois, plus le système devient complexe, plus cette
approche montre ces limites avec une très forte augmentation des temps de simulation.
Pour vérifier le bon fonctionnement du modèle VHDL établi, nous avons opté pour une
stratégie qui repose sur les deux principes suivants:
- Nous vérifions le système par morceaux c'est-à-dire que nous vérifions d’abord chaque
composant du système, puis le système global.
- Nous optons pour la stratégie de comparaison de modèle, c'est-à-dire que nous prenons le
modèle fonctionnel comme référence et comparons les résultats de simulation des
modèles VHDL et fonctionnel. Les mêmes stimuli doivent être utilisés dans les deux
simulations.
Exemple d’application
75
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
- le choix des stimuli ne doit jamais commencer par des cas de fonctionnement extrêmes.
Les tests aux régimes nominaux doivent être effectués en dernier lieu.
La validité du dispositif de commande global se mesure par la satisfaction des exigences
énumérées dans le cahier des charges.
2.3. Conclusion
L’intégration complète d’un dispositif de commande sur FPGA nécessite d’étudier puis
d’intégrer sur la même puce de silicium tous les blocs constituant le dispositif de commande.
Ce travail long et pointu justifie le besoin d’une méthodologie rationnelle capable de guider
le concepteur durant toutes les phases de conception.
Afin d’atteindre cet objectif, nous avons élaboré une méthodologie de conception
descendante que nous avons adapté à nos travaux de recherches. Les différentes phases de
conception ont alors été détaillées et illustrées chaque fois par un exemple. La nécessité d’un
temps de développement conséquent pour trouver la configuration (largeur de bus) qui réalise
à la fois une bonne précision et une faible occupation de la surface silicium nous a incité à
développer un algorithme permettant d’automatisation de cette tâche.
Partant de l’ensemble des exigences imposées dans le cahier des charges qui sont bien
souvent une commande et un type de contrôle [Pinard 04], le concepteur détermine les
spécifications du système à réaliser. Notamment le type d’actionneur, le type de commande à
utiliser et bien entendue la cible d’implémentation.
Ensuite, à partir des spécifications système il établit les spécifications fonctionnelles en
commençant par le développement du modèle mathématique du processus à commander, la
synthèse des correcteurs utiliser dans la chaîne de régulations et bien évidemment le choix de
la cadence sur laquelle le système numérique va travailler. A ce stade de conception, il est
important d’étudier en simulation le comportement du système commandé et de voir sa
réaction envers des éventuelles perturbations.
De part la spécifité de l’implémentation des algorithmes sur FPGA, il est nécessaire
de prendre garde à certaines contraintes. Notamment, celles du codage en arithmétique
virgule fixe où le problème de dépassements de capacités (Overflow) est souvent rencontré.
Afin de palier ce type de problèmes, une des méthodes couramment utilisée consiste
normaliser les signaux de l’architecture de telle sorte que leurs amplitudes soient comprises
entre -1 et 1, d’où l’étape de normalisation des signaux. Afin de réduire la surface silicium
nécessaire à l’implémentation de l’algorithme, il est important de réduire la taille des bus de
l’architecture à implémenter. Une quantification des signaux est donc nécessaire.
Une fois l’étape de conception fonctionnelle achevée, il est possible d’entamer la phase de
conception architecturale. Celle-ci commence d’abord par la traduction de l’algorithme
développé en un langage de description haut niveau (VHDL par exemple). Ensuite, en
utilisant un des outils de développement, il faut vérifier l’intégrité du code VHDL élaboré.
76
Méthodologie de mise en œuvre des algorithmes de commande numérique sur FPGA
Puisque la précision de calcul d’un algorithme en virgule fixe est compromise par la taille
des bus, seul un choix optimal permet l’obtention à la fois d’une bonne précision de calculs
et d’une faible occupation de la surface silicium sur le FPGA.
Puisque la commande des machines est un thème central et particulièrement représentatif des
besoins rencontrés en génie électrique, nous allons nous intéresser au chapitre suivant à
l’implantation de dispositifs de commande de machines électriques sur des FPGA, afin de
montrer la pertinence de la méthodologie proposée dans ce contexte.
77
Implantation des lois de commande des machines électriques sur FPGA
3.1. Introduction
Dans le chapitre précédent, nous avons présenté les différentes étapes de la méthodologie
d’implantation des commandes numériques sur FPGA. Pour montrer l’adéquation de cette
méthodologie avec des problèmes concrets, en particulier dans le domaine de la commande
des machines électriques, nous allons consacrer ce troisième chapitre à la réalisation et à la
validation expérimentale d’un dispositif de commande de deux types de machines
couramment utilisées en génie électrique. Nous allons nous intéresser tout particulièrement à
l’asservissement de vitesse et de courant d’une machine à courant continu et à la commande
scalaire d’une machine asynchrone. Pour la machine asynchrone, nous comparons cette
implantation avec une implantation sur microcontrôleur. Un accent particulier sera mis sur
les différentes difficultés et contraintes susceptibles d’être rencontrées lors de la phase de
validation expérimentale.
Figure 3.1: Structure générale du banc d’essais, configuré pour la régulation de vitesse d’une MCC.
79
Implantation des lois de commande des machines électriques sur FPGA
Développé par la société Hunt Engineering Ltd [Warnes 04], la carte de commande à FPGA
que nous avons utilisée est composée d’une carte mère HPEC9 (voir Figure 3.2) qui peut
supporter jusqu’à 4 modules à FPGA. Possédant un bus de type PCI, celle-ci s’enfiche
directement sur le port PCI de l’ordinateur. En sus de la possibilité d’établir la
communication avec le PC, la carte mère permet également l’interconnexion et la
communication entre les différents modules qui peuvent être installés là-dessus.
80
Implantation des lois de commande des machines électriques sur FPGA
Figure 3.2 : Carte mère de système de commande à FPGA. Source : [Warnes 04]
Notre carte mère comporte deux modules Heron-IO2V et un module Heron-IO2S. Dans notre
application, seul un des deux premiers modules est utilisé pour l’implémentation des
différents algorithmes.
Le module Heron-IO2V supporte un FPGA Virtex 2 de chez Xilinx qui possède une capacité
de 1 million portes logiques, deux convertisseurs analogique-numérique 12 bits avec une
vitesse de conversion de 125 M échantillons/s, deux convertisseurs numérique-analogique 14
bits avec une vitesse de conversion de 125 M échantillons/s, 8 connexions d’entrée/sortie et
trois entrées pour les signaux d’horloge externes. La structure générale de ce module est
donnée par la Figure 3.3.
81
Implantation des lois de commande des machines électriques sur FPGA
Puisque le module Heron-IO2V possède déjà une horloge interne de 100 MHz, il ne sera pas
nécessaire d’utiliser une horloge externe. Seul des diviseurs de fréquence sont utilisés pour
obtenir la fréquence voulue.
Pour configurer le FPGA une interface est utilisée (Hunt Engineering FPGA configuration).
Cette dernière peut être installée sous l’environnement Windows. L’outil de développement
utilisé est le logiciel ISE (version 6.2) de Xilinx.
Le codeur incrémental est alimenté en 5 volts (par une source extérieure). Les signaux des
voies A, B et C sont d’amplitude 5 volts, il faut donc les adapter pour qu’ils puissent être
supportés par les entrées logiques du FPGA (0-3,3 volts). Donc la carte d’interface réalise
l’adaptation de tension (5 volts Æ 3,3 volts). La solution que nous avons adoptée consiste à
utiliser des diodes Zener rapides.
3.2.5.2. Interface génératrice tachymétrique CAN
Etant donné que la tension de sortie maximale de la génératrice tachymétrique est de 180
volts et que le convertisseur analogique-numérique n’accepte que des tensions entre -1 et +1
volts avec un offset de 3 volts, il faut obligatoirement interfacer la sortie de la génératrice et
l’entrée du CAN. Utilisant un simple diviseur de tension (pont diviseur à résistance) il est
possible de ramener la valeur de la tension maximale de la sortie de la génératrice
tachymétrique à 1 volts.
82
Implantation des lois de commande des machines électriques sur FPGA
Pour parvenir à une impédance infinie à la sortie du pont diviseur il est nécessaire d’utiliser
un montage d’adaptation d’impédance (un montage suiveur à amplificateur opérationnel par
exemple). L’ajout de l’offset de 3 volts est réalisé par un montage sommateur à amplificateur
opérationnel.
Enfin, pour éviter les problèmes de repliement créés par l’échantillonnage et éliminer les
perturbations causées par le collecteur de la machine à courant continu, un filtre passe-bas
d’ordre 4 et de fréquence de coupure 1 kHz est utilisé.
3.2.5.3. Interface capteur de courant CAN
Pour les même raisons que celles présentées pour l’interface génératrice tachymétrique CAN,
la sortie du capteur de courant est d’abord adaptée en impédance ensuite filtrée par un filtre
passe-bas d’ordre 4 (fréquence de coupure égale à 4 kHz) et enfin additionnée à un offset de
3 volts.
3.2.5.4. Interface carte FPGA commande rapprochée du convertisseur
83
Implantation des lois de commande des machines électriques sur FPGA
Le modèle mathématique d’une machine à courant continu à excitation par aimant permanent
est décrit par le système d’équations [Pinard 04]:
dI
U = R I + L dt + K e Ω
(3.1)
K I = J dΩ + f Ω + T
e dt
v ch
E = Ke Ω Te = K e I Ke = k φ
84
Implantation des lois de commande des machines électriques sur FPGA
constante de couple. Dans le domaine de Laplace, le système précédent peut se mettre sous la
forme
K e I ( s ) − Tch ( s ) U ( s ) − K e Ω( s )
Ω( s ) = I ( s) = (3.2)
J s + fv Ls+R
La représentation du modèle d’une machine à courant continu par des blocs fonctionnels peut
être donnée par la Figure 3.4. Cette figure nous montre qu’il s’agit ici d’un système en boucle
fermée où une force électromotrice proportionnelle à la vitesse mécanique du moteur
s’oppose à la tension d’alimentation du moteur.
Figure 3.4 : Modélisation par blocs fonctionnels du moteur à courant continu à aimants permanents
U −RI
Ke = (3.3)
Ω
85
Implantation des lois de commande des machines électriques sur FPGA
τ m =1.47 s.
86
Implantation des lois de commande des machines électriques sur FPGA
Etant donné que les régulateurs IP font partie des régulateurs couramment utilisés dans le
domaine du génie électrique, il est possible de confier la régulation de courant et de la vitesse
à ce type de régulateurs. En effet, les régulateurs IP présentent l’avantage d’avoir une
architecture simple mais aussi ils permettent d’annuler le zéro introduit dans la chaîne de
commande lors de l’utilisation d’un régulateur de type PI. Ce type de régulateur schématisé à
la Figure 3.6 utilise une action proportionnelle sur la mesure et une action intégrale sur
l’erreur pour l’annulation de l’erreur statique (erreur en régime permanent).
La synthèse des correcteurs d’une chaîne de régulation en cascade se fait par étapes
successives traitées séparément. Pour cela, il faut commencer d’abord par la boucle la plus
rapide et passer ensuite à la boucle la plus lente.
La fonction de transfert liant le courant d’induit à la tension d’alimentation dans ce cas est :
1 1/ R
G I , BO ( s ) = = (3.4)
R + L s 1+τ e s
87
Implantation des lois de commande des machines électriques sur FPGA
avec τ e la constante de temps électrique. La fonction de transfert en boucle fermée est ainsi :
K i,I
Rτ e ω n2, I
G I , BF ( s ) = = (3.5)
2 K p,I + R K i,I s 2 + 2 ξ I ω n, I s + ω n2, I
s + s+
Rτ e Rτ e
Les gains du régulateur sont obtenus par analogie entre les deux fonctions de transfert en
imposant le coefficient d’amortissement ξ I et la pulsation naturelle ω n, I . Ceci conduit aux
expressions suivantes :
K i , I = L ω n2, I
(3.6)
K p, I = 2 ξ I L ω n, I − R
Ke 1/ fv
GΩ, BO ( s ) = = (.3.7)
f v + J s 1+τ m s
avec τ m la constante de temps mécanique, donnant ainsi une fonction de transfert en boucle
fermée du second degré, comme dans le cas précédent :
K e K i ,Ω
fv τ m ω n2,Ω
GΩ, BF ( s ) = = (3.8)
2 K e K p ,Ω + f v K i ,Ω s 2 + 2 ξ Ω ω n,Ω s + ω n2,Ω
s + s+
fv τ m fv τ e
Les gains du régulateur IP sont obtenus par l’analogie entre les deux fonctions de transfert en
imposant le coefficient d’amortissement ξ Ω et la pulsation naturelle ω n,Ω . Cela conduit aux
expressions définies ci-dessous :
88
Implantation des lois de commande des machines électriques sur FPGA
K i ,Ω = J ω n2,Ω / K e
(3.9)
K p,Ω = (2 ξ Ω J ω n, I − f v ) / K e
La pulsation ω n,Ω est choisie en fonction du temps de réponse souhaité en boucle fermée
(contraintes imposées dans le cahier des charges).
3.3.2.3. Discrétisation et choix de la période d’échantillonnage
Dans le cas d’un système possédant plusieurs boucles de régulation (avec différentes
dynamiques), il est possible d’utiliser la même fréquence d’échantillonnage pour tout le
système comme il est possible de travailler avec des fréquences différentes. Dans le cas de
l’utilisation d’une même fréquence d’échantillonnage, seule la dynamique la plus rapide
contribue au choix de celle-ci. Dans le cadre de cet exemple, on a choisi d’utiliser la même
fréquence d’échantillonnage pour les deux boucles afin de n’utiliser qu’une seule horloge.
Comme préconisé par [Santina 98b], le choix de la période d’échantillonnage d’un système
du second ordre peut être réalisé par la résolution de l’inéquation:
0.06 Tr ≤ Te ≤ 0.4Tr
3.33
Pour ξ = 0.707 , Tr = , où Tr est le temps de montée du système en boucle fermée entre 5
ωn
et 95 % du régime permanent. La résolution de cette inéquation nous a permis de définir la
fréquence d’échantillonnage f e = 1024 Hz.
89
Implantation des lois de commande des machines électriques sur FPGA
Enfin, pour valider la structure de commande et avoir une idée du comportement du système
en boucle fermée, notamment après l’insertion de blocs de saturation, il est important
d’effectuer des simulations en appliquant des consignes qui correspondent à des cas de
fonctionnement extrêmes (fonctionnement en régime nominal). La Figure 3.10 représente les
réponses de vitesse et de courant dans le cas de régulateurs avec et sans saturation. Cette
figure permet de constater que le temps de réponse de la boucle de vitesse est inférieur à 0,3
ms. Les contraintes du cahier des charges en matière de performances sont donc respectées.
Lors de l’application d’une perturbation de couple (couple de charge), on peut voir que la
réponse de vitesse présente une erreur de l’ordre de 200 tours/min. Cela montre bien que le
90
Implantation des lois de commande des machines électriques sur FPGA
Etant donné que la structure d’un régulateur IP est simple et développée, aucune
simplification n’est nécessaire. De plus, contrairement à un régulateur PI, la structure d’un
régulateur IP avec saturation ne permet pas de modifier les emplacements des gains. Pour les
deux régulateurs, seul un additionneur peut être partagé. Toutefois la mise en œuvre d’un tel
partage ne ferait qu’augmenter la complexité du système.
3.3.2.5. Mesures des extremums et normalisation des signaux
Dans le but de travailler qu’avec des signaux possédant des amplitudes comprises entre -1 et
1 et d’éviter ainsi les problèmes de dépassement de capacité lors du codage en arithmétique
91
Implantation des lois de commande des machines électriques sur FPGA
en virgule fixe, on procède à la normalisation des tous les signaux de l’architecture. Pour
cela, il est nécessaire tout d’abord de connaître les valeurs extrêmes de chaque signal.
92
Implantation des lois de commande des machines électriques sur FPGA
Parmi les méthodes de détection des extremums, nous avons utilisé la technique de
simulation. La mise en œuvre d’un système de détection des valeurs extrêmes d’un signal
nous a permis de prélever les mesures présentées Tableau 3.1 et Tableau 3.2. La désignation
des différents signaux des deux régulateurs est présentée Figure 3.11 et Figure 3.12. Comme
il est possible de le constater sur les deux tableaux, tous les signaux ont des valeurs
supérieures à 1.
93
Implantation des lois de commande des machines électriques sur FPGA
03]. Dans le présent exemple, la première approche est adoptée. La vitesse est considérée
constante entre deux périodes d’échantillonnage, et est donc calculée de la manière suivante :
θ [k ] − θ [k − 1] θ [k ] − θ [k − 1] 30
ω= , N=
Te Te π
Pour ne pas effectuer une opération de division par Te , il est préférable d’évaluer ω Te au lieu
de ω . Sans calcul, ω Te peut être obtenue à la sortie du compteur à condition de faire la
remise à zéro du contenu de ce compteur à chaque front montant (ou descendant) de
l’horloge d’échantillonnage.
En tenant compte du nombre d’impulsions par tour du codeur incrémental, de la
multiplication de la résolution par 4 et du fait qu’on évalue ω Te , le gain total introduit par le
4 × 1024
système de reconstruction de la vitesse sera donc Gcodeur = Te . Puisque ce système
2π
est directement implémenté sur le FPGA il est nécessaire d’évaluer la largeur de bus
minimale N min qui assure une représentation du signal sans perte d’information. La
détermination de N min peut se faire en résolvant l’inéquation suivante :
4 × 1024
2 N min −1 < ω max × Te ≤ 2 N min
2π
Pour que la valeur de Gcodeur ω soit égale à 1 quand ω = ω max , il faut diviser ce signal par
Gbus = 2 N min .
En conclusion, le gain global introduit sur la chaîne de mesure de vitesse est
4 × 1024 1
Gmesω = Te ×
2π Gbus
Puisque l’insertion du gain Gmesω au niveau des entrées du régulateur de vitesse requiert la
multiplication de sa sortie par son inverse, il est préférable de faire la multiplication au
1
niveau des deux gains K pv et K iv par plutôt que de la faire en sortie du régulateur
Gmesω
sortie afin de réduire la surface de silicium allouée à l’application.
 La chaîne de mesure de courant est constituée d’un capteur à effet Hall possédant un gain
Gcapteur , d’un filtre anti-repliement de gain unitaire (filtre passe-bas d’ordre 4 et de
fréquence de coupure égale à la moitié de la fréquence d’échantillonnage) et d’un circuit de
changement d’échelle. Le rôle attendu du circuit de changement d’échelle est de faire
correspondre la valeur maximale du signal mesuré et filtré à la valeur maximale de la tension
d’entrée admissible du convertisseur analogique-numérique (dans le cadre de cet exemple
c’est une tension entre -1 V et +1 V). Donc, le calcul du gain de ce circuit ( Gchang _ échelle )
94
Implantation des lois de commande des machines électriques sur FPGA
On multiplie par le même gain l’entrée de référence et par le gain inverse le gain
proportionnel et intégral.
Une fois les différents gains définis, il nous reste à les intégrer dans structure de commande
et on prélève de nouveau les extremums. Les nouvelles structures des deux régulateurs sont
montrées dans la Figure 3.14 et Figure 3.15.
On considère ici que la mesure de vitesse est déjà multipliée par le gain Gmesω .
95
Implantation des lois de commande des machines électriques sur FPGA
Le prélèvement des extremums des différents signaux du régulateur de vitesse Tableau 3.3
nous apprend que pour une consigne de vitesse allant de − ω max à + ω max et un couple de
charge nominal, l’amplitude du signal S 4 du régulateur de vitesse possède une très faible
valeur. Ce qui, dans ce cas, conduit forcément à des imprécisions sur le calcul de la partie
intégrale lors d’une implémentation en arithmétique virgule fixe. Pour pallier ce problème,
une des solutions envisagées consiste à rehausser l’amplitude du signal d’entrée de
l’intégrateur en le multipliant par un gain en puissance de 2 ( Gbinaire ) et de diviser ensuite la
sortie de l’intégrateur par le même gain. Pour avoir plus de précision, il est judicieux de
1
placer le gain après la réinjection de la sortie du bloc de saturation vers le bloc de
Gbinaire
calcul de la partie intégrale.
S1 0.3906 S1 0.6366
S2 0.4276 S2 0.6387
S3 0.7813 S3 0.5375
S4 0.0457 S4 0.1002
S5 0.8641 S5 0.4122
S6 0.1407 S6 0.9435
S7 0.0062 S7 0.9435
S8 0.8456 S8 0.3004
S9 0.8641 S9 0.4122
S10 0.4122
Tableau 3.3 Relevé des extremums des signaux
S11 0.2138
du régulateur de vitesse après normalisation
S12 0.9171
96
Implantation des lois de commande des machines électriques sur FPGA
Afin de limiter la taille des bus et optimiser ainsi la surface de silicium, il est nécessaire de
quantifier au fur et à mesure les différents signaux de l’architecture à implémenter, en
particulier après les opérations de multiplication. Pour cela, un bloc de quantification doit
être placé après chaque multiplieur (voir Figure 3.16 et Figure 3.17).
De part la nature des éléments constituant la chaîne de commande, une quantification
naturelle s’impose d’elle-même. D’une part, l’acquisition de la mesure de courant est réalisée
par un convertisseur analogique-numérique, ce qui conduit donc forcément à une
quantification de la mesure. D’autre part, la mesure de vitesse est reconstituée à partir des
signaux de sortie du codeur incrémental qui impose à leur tour une quantification sur la
position et par voie de conséquence une quantification de la vitesse.
La présence d’un bloc de saturation dans la structure des deux régulateurs (courant, vitesse)
permet de limiter les grandeurs de sortie de chaque régulateur. Toutefois, l’insertion de blocs
de quantification en amont ou en aval du bloc de saturation n’affecte pas la précision du
signal de sortie (S7) tant que la valeur de signal S6 reste au dessus du seuil de saturation
(amplitude (S7) = Vmax ). Par contre, si le signal S6 est en dessous du seuil de saturation,
l’insertion d’une quantification après le bloc de saturation permet d’avoir plus de précision
sur le calcul de la partie intégrale.
97
Implantation des lois de commande des machines électriques sur FPGA
L’application des lois de codage en virgule fixe nous permet d’effectuer le choix déductif de
certaines largeurs de bus
Régulateur de vitesse
n ( S1 ) = n ( S 3 ) = n ( S 3 ) , n ( S 4 ) = n ( S 5 ) = n ( S10 ) = n ( S 8 ) , n ( S 6 ) = n ( S 7 ) .
Régulateur de courant
n ( S1 ) = n ( S 3 ) = n ( S 3 ) , n ( S12 ) = n ( S 4 ) = n ( S 5 ) = n ( S10 ) = n ( S 8 ) , n ( S 6 ) = n ( S 7 ) .
Le nombre de bits du signal S13 du régulateur de courant dépend du nombre de bits du
compteur qui sert à la génération du signal PWM.
La structure de la commande à implanter comporte deux régulateurs qui ont presque la même
structure. Il est donc utile d’établir un modèle générique, dont l’utilisation ne nécessite que
de changer les noms des ports d’entrée-sortie et les valeurs des constantes. En effet, cette
généricité permet de réduire le temps de développement et de tests des codes. La structure
globale du modèle architectural (Figure 3.18) comporte cinq blocs : les deux blocs du
régulateur de courant et de vitesse, un bloc de génération de consigne de vitesse, un bloc de
codeur incrémental et un bloc de génération du signal PWM.
Après avoir effectué un choix préliminaire de la largeur des différents bus de l’architecture,
nous allons nous intéresser maintenant à la recherche de la configuration optimale qui réalise
à la fois une bonne précision de calcul en un minimum de ressources physiques. Pour cela, on
utilise l’algorithme d’optimisation présenté au chapitre précédent.
98
Implantation des lois de commande des machines électriques sur FPGA
En effet, la recherche de la largeur optimale des bus d’une architecture comportant plusieurs
blocs en cascade n’est pas sans contraintes. Plus le nombre de bus (nombre de variables) est
élevé plus le temps d’exécution de l’algorithme d’optimisation est long. Afin de pallier ce
type de problème, il est possible de se contenter dans un premiers temps d’un choix sous
optimal. C’est-à-dire, au lieu de chercher la solution optimale du système global, on cherche
la solution optimale de chaque sous-système séparément (optimisation séparée de
l’architecture du régulateur de vitesse et de courant). Si la solution sous-optimale trouvée
satisfait les contraintes du cahier des charges, il est donc possible de l’approuver et de
construire ainsi le modèle architectural final à partir de cette solution.
La détermination de la configuration optimale des deux régulateurs nécessite l’exécution des
tâches suivantes :
Dans un premier temps on commence par la détermination de la configuration optimale du
régulateur de vitesse en utilisant l’algorithme d’optimisation des largeurs de bus développé
au chapitre précédent. L’évaluation du nombre de cellules logiques utilisées ne tient compte
que de l’architecture du régulateur de vitesse. La détermination de la précision de la mesure,
elle aussi, ne dépend que de la précision de calcul dans le régulateur de vitesse. Le régulateur
de courant est implanté en arithmétique virgule flottante seulement.
Ensuite, en fixant la largeur des bus du régulateur de vitesse sur la configuration optimale
trouvée, on passe à la détermination de la configuration optimale du régulateur de courant.
Dans ce cas, le rapport signal sur bruit de quantification dépend de la précision de calcul du
régulateur de vitesse et du régulateur de courant. Par effet de propagation, une erreur de
quantification qui se trouve au niveau du régulateur de vitesse va forcément affecter le signal
de sortie du régulateur de courant (structure cascade). L’évaluation du nombre de cellules
logiques, quant à elle, ne dépend que du nombre de cellules du régulateur de courant.
Dans les deux cas, la largeur maximale des signaux d’entrées des deux régulateurs dépend de
la largeur des bus des dispositifs de mesure (nombre de bits du CAN pour la mesure de
courant et du nombre de bits du codeur incrémental pour la mesure de position ou de vitesse).
La largeur du signal de sortie du régulateur de courant est imposée par le nombre de bits du
compteur qui sert à la génération du signal PWM ( n( S13 ) =12 bits.
La configuration sous-optimale trouvée correspond à la configuration suivante : n( S1 ) = 12
bits et n( S 4 ) =14 bits pour le régulateur de vitesse et n( S1 ) =12 bits et n( S 4 ) =14 bits pour
le régulateur de courant. En effet, même si il est possible d’obtenir ces résultats sans
l’utilisation de cet algorithme, le gain en temps de développement n’est pas sans atouts.
Pour vérifier si la solution sous optimale trouvée satisfait les besoins de cahier des charges,
nous avons établi la simulation du modèle fonctionnel en virgule fixe (architecture fixée sur
la solution trouvée) en appliquant une consigne de vitesse qui varie entre − N max et + N max
pour un couple de charge nominal. Les résultats obtenus sont montrés sur la Figure 3.19.
99
Implantation des lois de commande des machines électriques sur FPGA
Cette figure nous révèle que la différence entre la réponse du système en virgule fixe et le
système en virgule flottante est inférieur à 30 tours/min (donc une erreur de l’ordre de 1%,
voir Figure 3.19.b). Lors de l’application d’une perturbation de couple, l’erreur relative entre
la consigne et la mesure reste toujours inférieure à 7% (contraintes de précision satisfaites).
Quel que soit le régime de fonctionnement du moteur le courant mesuré ne dépasse pas le
courant nominal de la machine (5A).
Puisque les contraintes du cahier des charges sont respectées, il est donc possible
d’approuver la solution sous-optimale et de l’utiliser pour la conception du modèle
architectural que l’on va implanter sur le FPGA.
Figure 3.19 b: Différence de vitesse entre les systèmes en virgule fixe et en virgule flottante
100
Implantation des lois de commande des machines électriques sur FPGA
Comme la conception architecturale du modèle VHDL a été basée sur une approche
modulaire, sa validation aussi sera basée sur la même technique. En effet, une telle approche
permet simplifier la vérification des différents blocs et de réduire son temps. La validation du
modèle VHDL est basée sur la comparaison des résultats des simulations du modèle
fonctionnel (utilisé comme référence) et du modèle VHDL. Pour cela, il est nécessaire de
commencer par le choix des stimuli à appliquer aux entrées des deux modèles, ce qui n’est
pas facilité par la difficulté de reproduire sur un simulateur VHDL les mêmes stimuli que
ceux que l’on peut générer avec Matlab Simulink. La validité du modèle VHDL dépendra de
la concordance exacte des résultats des deux simulations.
Puisque l’onduleur utilisé est un onduleur de tension, il n’est pas possible d’appliquer à la
machine une commande en courant. Par conséquent, la validation du régulateur de vitesse
vient nécessairement après la validation de la boucle de courant.
101
Implantation des lois de commande des machines électriques sur FPGA
A l’issue de la phase de validation expérimentale des différents blocs, nous avons effectué le
test du système global (régulation de vitesse et de courant à la fois). Un fonctionnement à
vide et une consigne de vitesse variant entre ± 480 tours/min sont donc imposés. Les
résultats expérimentaux obtenus sont montrés dans la Figure 3.21. A partir de l’allure de la
vitesse (courbe à gauche de la figure), il est possible de constater que le temps de réponse du
système est de l’ordre de 0,2 s. Cela montre bien que le dispositif de commande répond aux
besoins du cahier des charges en termes de performances. En ce qui concerne la réponse de
courant, on peut constater que son allure présente des pics dont la valeur ne dépasse pas 5 A
(valeur du courant nominal de la machine). Par conséquent, on peut considérer que le
dispositif assure la protection de la machine vis-à-vis du dépassement du courant nominal.
Les oscillations présentes sur l’allure des deux réponses (vitesse, courant) proviennent d’un
problème mécanique au niveau de la fixation du codeur incrémental sur l’arbre du moteur.
C’est la raison pour laquelle nous n’avons pas poussé la machine à son régime de
fonctionnement nominal. Le nombre total de portes logiques réservés à la réalisation du deux
régulateurs, codeur incrémental et bloc PWM est de 5502 portes, soit un taux d’occupation
du composant de moins 1%. Un PFGA de faible taille peut contenir l’architecture.
102
Implantation des lois de commande des machines électriques sur FPGA
3.3.5. Conclusion
Mis à part les oscillations présentes sur l’allure du courant, les résultats expérimentaux
viennent confirmer les résultats de simulation. Les exigences imposées dans le cahier des
charges sont respectées, donc il est possible d’approuver la validité du dispositif de
commande réalisé. A l’exception de quelques problèmes rencontrés lors de la validation du
bloc de mesure de vitesse (problème mécanique), la réalisation de ce travail a été faite dans
un temps très court, ce qui montre l’intérêt de notre méthodologie de travail. La réalisation
d’une régulation à la fois de courant et de vitesse est suffisamment présentative pour pouvoir
être étendue à la commande d’une machine à courant alternatif.
103
Implantation des lois de commande des machines électriques sur FPGA
104
Implantation des lois de commande des machines électriques sur FPGA
105
Implantation des lois de commande des machines électriques sur FPGA
( Vs = Vsm e j ωs t ) aux enroulements statoriques d’un moteur asynchrone est accompagné par le
passage d’un courant sinusoïdal avec une même pulsation I s = I sm e j (ωs t +ϕ s ) dans les
enroulements statoriques et par la création de courants induits dans le circuit rotorique avec
la même pulsation ( I r = I rm e j (ωs t +ϕr ) ). Dans un référentiel lié au stator, les équations
électromagnétiques de la machine asynchrone, exprimées sous forme complexe, se résument
aux équations suivantes [Leonhard 96, Seguier 94, Boulbair 05b] :
dφ s
dt + Rs I s =Vs
dφr − j ω φ + R I = 0
dt m r r r
φ s = Ls I s + Lm I r (3.10)
φ = L I + L I
r r r m s
3p *
Te = 2 Lm Im(I s I r )
Rr + j Lr ω slp j Lm ω slp
Is = Vs Ir =− Vs (3.11)
∆ ∆
Lm Rr
φr = Vs (3.12)
∆
106
Implantation des lois de commande des machines électriques sur FPGA
Si on suppose que le moteur tourne à une vitesse suffisamment importante et que la chute de
tension ohmique aux bornes des enroulements statoriques est négligeable, il est possible
d’écrire ∆ ≈ j Rr L s ω s . Dans ce cas, les nouvelles expressions du flux rotorique et du couple
deviennent :
Lm Rr L V
φrm ≈ Vsm = m sm (3.13)
Rr Ls ω s Ls ω s
2
3 p φ rm
Te = ω slp (3.14)
2 Rr
L’équation (3.14) nous montre que si on maintient constant l’amplitude du flux φrm , il est
possible de piloter le couple électromagnétique en agissant seulement sur la pulsation de
glissement ω slp = ω s − ω m . D’après l’équation (3.13), ceci peut être obtenu en maintenant le
Vsm
rapport constant.
ωs
2 Rr
ωs = ωm + 2
Te (3.15)
3 p φ rm
Toutefois, cette relation n’est pas valable pour les faibles valeurs de la pulsation ω s car la
chute de tension ohmique due à la résistance des enroulements statorique n’est plus
Lm
négligeable devant le terme inductif ( ∆ ≈ R s Rr et φ r ≈ Vs ). C’est ainsi qu’on envisage
Rs
sur la plupart des variateurs une compensation de cette chute de tension en augmentant
l’amplitude des tensions statoriques pour les faibles valeurs de ω s (Figure 3.23) de façon à
107
Implantation des lois de commande des machines électriques sur FPGA
 Test en court circuit : permet d’évaluer la valeur des inductances de fuite statorique et
rotorique ;
 La mesure des paramètres mécaniques est déjà présentée dans le cadre de l’identification
de la machine à courant continu.
La réalisation de ces tests nous a permis d’obtenir les paramètres suivants : Rs = 11 Ohms,
comme le montre l’équation (3.14). Il s’agit donc d’un contrôle indirect du couple. Le
régulateur de vitesse élabore ω slp à partir de l’erreur de vitesse. La fréquence statorique est
obtenue par la loi d’autopilotage ω s = ω slp + ω m . Pour garder le flux constant, il est donc
108
Implantation des lois de commande des machines électriques sur FPGA
Le rôle attendu du bloc PWM est de déterminer les instants de commutation des interrupteurs
de l’onduleur qui alimente le moteur. Parmi les techniques les plus utilisées dans le domaine
de la commande des machines, nous avons opté pour l’utilisation de la MLI naturelle et la
MLI vectorielle. Bien que le principe de ces deux techniques soit largement exposé, nous
allons nous intéresser plus particulièrement à leur implémentation plutôt qu’à l’évaluation de
leurs performances.
MLI naturelle
Cette technique est basée sur la comparaison entre une onde de modulation à faible
fréquence, et une onde porteuse de forme triangulaire à fréquence plus élevée. Les instants de
commutation sont déterminés par les points d’intersection entre la porteuse et la modulante.
La génération de l’onde modulante est réalisée à partir de la multiplication du signal de sortie
du bloc Vs / ω s par un signal sinusoïdal de pulsation ω s . Puisqu’il s’agit d’un moteur
2π
décalés de :
3
2π 4π t
Va* = Vsm sin(θ ) , Vb* = Vsm sin(θ −
3 3 ∫
) , Vc* = Vsm sin(θ − ) et θ (t ) = ω s (τ ) dτ
0
109
Implantation des lois de commande des machines électriques sur FPGA
La génération du signal sinusoïdal sin(θ ) peut être réalisée par la sauvegarde des valeurs de
la fonction sinus dans une table d’allocation ou par l’utilisation d’un oscillateur en quadrature
[Boulbair 05a]. Si une table de sinus est utilisée pour générer le signal sinusoïdal, il est
particulièrement simple d’ajouter au fondamental du signal un harmonique du rang 3, et de
1
sauvegarder sin(θ ) + sin(3θ ) dans la table au lieu de sin(θ ) . Cette technique trouve tout
6
son intérêt si l’amplitude du fondamental de la tension nécessaire pour obtenir une vitesse
désirée dépasse la tension nominale de l’onduleur [Freescale 03, Boulbair 05a].
MLI vectorielle
L’algorithme de MLI vectorielle est largement utilisé dans le domaine de la commande
moderne des machines électriques [Nec 03, Toliyat 04, Tzou 97, Yu 98]. Son principe est
r
basé sur la construction de la tension statorique Vs à partir de huit vecteurs de tension
correspondant aux huit états possibles de l’onduleur. Nous allons décrire, dans ce qui suit, la
technique employée par cet algorithme pour la détermination des instants de commutation
des interrupteurs [Boulbair 05b]. Sur la Figure 3.25, nous représentons un onduleur idéal à
trois bras (c'est-à-dire un onduleur sans temps morts et sans retards de commutation)
alimentant les enroulements statoriques d’un moteur asynchrone.
Pour un tel onduleur, il n’existe que huit configurations possibles selon l’état de ses
interrupteurs, ce qui correspond à huit combinaisons de tension entre ligne et donc huit
tensions statoriques applicables au moteur, dont deux sont nulles et 6 ont un module égal à
E . Les extrémités des vecteurs de tension non nuls forment les sommets d’un hexagone (voir
Figure 3.26). Dans le plan complexe, les huit vecteurs tension peuvent être écrits sous la
forme
110
Implantation des lois de commande des machines électriques sur FPGA
π
j(k−1)
Vk = E e 3 (3.16)
avec ( k = 1,...6 ) et V0 = V7 = 0 V.
1 1 V
an
1 − −
Vα 2 2
V = Vbn (3.18)
β 0 3 3
− Vcn
2 2
où Van , Vbn et Vcn sont les tensions de ligne (tension entre phase et neutre). Si le neutre est
isolé, Van + Vbn + Vcn = 0 V, donc 3Vn = Va + Vb + Vc . Le Tableau 3.5 résume les différentes
combinaisons de tension que peut fournir l’onduleur de tension.
111
Implantation des lois de commande des machines électriques sur FPGA
L’onduleur ne peut fournir de façon exacte et instantanée que des tensions de type Vk . La
génération d’une tension quelconque ne peut donc être réalisée qu’en valeur moyenne. Pour
cela, il faut appliquer sur une période de commutation Tcom un vecteur Vi pendant une durée
0 0 0 S0 0 0 0 0 0 0 0 0 V0
1 1 1 S7 0 0 0 0 0 0 0 0 V7
Tableau 3.5 : Combinaisons de vecteurs de tension d’un onduleur trois bras idéal, moteur branché en
étoile (0 : interrupteur ouvert, 1 : interrupteur fermé)
La réalisation du vecteur tension Vs par les vecteurs tensions les plus proches (tensions qui
délimitent le secteur dans lequel le vecteur tension Vs se situe) permet d’optimiser le nombre
de commutations des interrupteurs (pertes de commutation de l’onduleur), ce qui fait partie
des principaux objectifs de la MLI vectorielle.
Si la somme des durées d’application des vecteurs Vi et Vi +1 est inférieure à Tcom
( d k + d k +1 < Tcom ), alors on complète la séquence par les vecteurs tensions nuls. Le vecteur
Vs = δ i Vi + δ i +1 Vi +1 + δ 0 V0 + δ 7 V7 (3.19)
112
Implantation des lois de commande des machines électriques sur FPGA
d0 d 1 − δ i − δ i +1
avec δ 0 = , δ 7 = 7 et δ 0 = δ 7 = .
Tcom Tcom 2
Suivant la position du vecteur tension Vs dans le cercle angulaire, on résume dans le Tableau
3.6 les différentes expressions des différents rapports cycliques à appliquer.
Numéro de
θ dk d k +1
secteur
π 2 Vsm π 2 Vsm
1 0, 3 sin( − θ ) sin(θ )
3 E 3 3 E
π 2π 2 Vsm π 2 Vsm 5π
2 3 , 3 sin( + θ ) sin( + θ )
3 E 3 3 E 3
2π 2 Vsm 2 Vsm 4π
3 3 ,π sin(θ ) sin( +θ)
3 E 3 E 3
4π 2 Vsm 5π 2 Vsm
4 π , 3 sin( + θ ) sin(2π − θ )
3 E 3 3 E
4π 5π 2 Vsm 4π 2 Vsm 2π
5 3 , 3 sin( +θ) sin( +θ)
3 E 3 3 E 3
5π 2 Vsm 2 Vsm π
6 3 , 2π sin(2π − θ ) sin( + θ )
3 E 3 E 3
Une analyse fine des différentes expressions des rapports cycliques, présentées dans le
tableau précédant, permet de constater que quel que soit la position du vecteur tension (et
quel que soit le numéro de secteur), le calcul des différents rapports cyclique dépend toujours
du calcul du sinus d’un angle qui varie entre 0 et π / 3 . On peut en effet réécrire toutes les
expressions précédentes sous la forme :
2 Vsm 2 Vsm
δ k = da = sin(θ ′′) δ k +1 = d b = sin(θ ′) (3.20)
3 E 3 E
113
Implantation des lois de commande des machines électriques sur FPGA
π π
avec θ ′′ = − θ ′ et θ ′ = θ − (k − 1) .
3 3
Ce résultat permet non seulement un gain en simplicité algorithmique (le calcul des rapports
cycliques ne dépend pas du numéro de secteur) mais aussi une réduction du domaine de
π
définition de la fonction sinus utilisée (calcul du sinus des angles variant entre 0 à
3
seulement). La détermination de l’angle θ ′ peut être réalisée par un simple calcul en modulo
π
de de l’angle θ (voir Figure 3.27). Signalons enfin qu’aucune des publications que nous
3
avons consultées lors de cette étude ne présente ce résultat.
Une fois les durées d’application calculées, il faut déterminer les instants de commutation des
interrupteurs, le problème étant qu’il est possible de déterminer plusieurs séquences de
commutations qui correspondent aux temps calculés. Pour un même fondamental à la sortie
de l’onduleur, chaque séquence produit des harmoniques et des pertes de commutation
différentes.
Dans notre exemple, nous utilisons une MLI avec des impulsions centrées au milieu de la
période de commutation. Ce type de modulation limite le contenu harmonique des tensions
générées. La méthode pour déterminer les instants de commutation consiste à distribuer le
114
Implantation des lois de commande des machines électriques sur FPGA
successivement V0 puis les vecteurs non nuls, puis V7 , puis des vecteurs non nuls, puis V0 .
Figure 3.28, nous présentons le séquencement d’applications des différents vecteurs de
tensions dans le cas du secteur numéro 1.
Utiliser des tests logiques pour déterminer les instants de changement de vecteur est une
tâche très fastidieuse pour un système de calcul. C’est pourquoi, les DSP et les
microcontrôleurs dédiés à la commande de machine sont souvent dotés d’un compteur
décompteur et de trois comparateurs rapides (implantés matériellement). Au lieu donc de
déterminer les instants de commutation, on va déterminer des seuils de commutation des
sorties des comparateurs. La sortie de chaque comparateur pilote l’ouverture ou la fermeture
des interrupteurs (voir Figure 3.29).
115
Implantation des lois de commande des machines électriques sur FPGA
Selon les différents secteurs, le Tableau 3.7 résume les valeurs des seuils de changement des
sorties des trois comparateurs ( C a , Cb , Cc ). Ce tableau nous montre qu’en fonction du
numéro de secteur, le calcul des valeurs de C a , Cb et de C c ne fait appel qu’à une opération
d’addition ou de soustraction des rapports cycliques. Le calcul du numéro de secteur est
réalisé par un compteur circulaire (modulo 6). Il est incrémenté ou décrémenté à chaque fois
π π
que l’angle θ ′ passe de 0 à ou de à 0.
3 3
Numéro 4 4 4
Ca − 1 Cb − 1 Cc − 1
de secteur Ts Ts Ts
1 − d a − db da − db d a + db
2 − d a + db − da − db d a + db
3 d a + db − da − db d a − db
4 d a + db − d a + db − d a − db
5 da − db d a + db − d a − db
6 − da − db d a + db − d a + db
116
Implantation des lois de commande des machines électriques sur FPGA
Comme nous l’avons présenté au paragraphe 2.2.2.2 le passage du modèle à temps continu
au modèle à temps discret a été réalisé en effectuant le changement de l’opérateur de
dérivation s par une approximation en z , par une approximation d’Euler (remplacement de
1 − z −1
l’opérateur s par ). La période d’échantillonnage a été déterminée en suivant la
Te
démarche présentée au paragraphe 2.2.2.2. En suivant les règles préconisées dans
[Santina98b], nous avons choisi f e = 512 Hz.
117
Implantation des lois de commande des machines électriques sur FPGA
Etant donné que la structure de commande utilisée ici ne requiert pas des calculs matriciels ni
des calculs factorisés, il n’est pas nécessaire de faire appel à cette tâche. Cependant, selon la
technique de génération du signal PWM que l’on peut adopter, il possible d’effectuer un
partage de ressources.
118
Implantation des lois de commande des machines électriques sur FPGA
D’après la Figure 3.31, le calcul des trois tensions de référence ( Va* , Vb* , Vc* ) est réalisé par la
multiplication du signal Vsm par trois signaux sinusoïdaux d’amplitude unitaire. Par
conséquent, leurs valeurs maximales ne dépendra que de la valeur maximale de Vsm :
119
Implantation des lois de commande des machines électriques sur FPGA
Ce tableau nous montre que seul deux signaux ont des amplitudes maximales inférieure à 1
(S4 et S8), le reste des signaux ne l’est pas. Afin de les normaliser tous les signaux et éviter
ainsi les problèmes de dépassement de capacité (Overflow) lors des opérations de
multiplication, on doit modifier les gains en entrée et en sortie du correcteur (et
éventuellement en interne). Pour connaître les valeurs des gains à introduire, il est nécessaire
de connaître d’abord les différents gains inhérents à la chaîne d’entraînement, c’est-à-dire les
gains introduits par la chaîne d’acquisition de la mesure et par l’interface de puissance.
Dans le cadre de cet exemple, la mesure de la vitesse est réalisée par la machine à courant
continu (utilisée comme génératrice tachymétrique). Puisque sa tension de sortie ne peut pas
être directement exploitée par le convertisseur analogique-numérique, il est nécessaire de
conditionner sa sortie par le circuit de changement d’échelle. Pour réduire les perturbations
créées par le collecteur de la machine et éviter le problème de repliement, un filtre passe-bas
d’ordre 4 est utilisé. Sa fréquence de coupure est égale à 256 Hz (moitié de la fréquence
d’échantillonnage). Enfin le signal filtré est converti en un signal numérique à l’aide d’un
convertisseur analogique-numérique 12 bits. Pour connaître la valeur du gain du circuit de
changement d’échelle Gnorm , on détermine d’abord la valeur maximale de la tension de
sortie de la machine à courant continu. Quand celle-ci est entraînée par un moteur à une
vitesse ω m , la valeur de la tension qu’elle peut débiter à vide est donnée par :
U = K e ωm
120
Implantation des lois de commande des machines électriques sur FPGA
Une fois déterminés les différents gains imposés par la chaîne d’acquisition de la mesure et
par l’interface de puissance, il ne reste qu’à les reproduire dans le schéma fonctionnel et de
prendre les nouvelles mesures des extremums des différents signaux. Le Tableau 3.9 montre
les nouveaux extremums des signaux internes du régulateur de vitesse après insertion des
gains.
Signal Extremum
S1 0,452
S2 0,455
S3 0,90
S4 0,001
S5 0,099
S6 0,026
S7 0,025
S8 0,0006
S9 0,086
A partir de ce tableau, on constate que les signaux (S4, S5, S6, S7, S8, S9) ont des
maximums très faibles, ce qui signifie qu’il est nécessaire de les coder sur un nombre de bits
important pour réduire les effets des erreurs de quantification. Pour palier ce problème, nous
avons rehaussé les amplitudes de ces signaux par le biais de l’insertion de gains internes, en
particulier au niveau des gains K p et K i Te . On rappelle ici que l’insertion de n’importe quel
gain en amont du bloc de saturation doit être accompagnée par la multiplication des niveaux
de saturation de celui-ci par le même gain. Après la multiplication des gains K p et K i Te par
2 3 et du signal de sortie du régulateur (S7) par 2 −3 , tous les signaux ont un maximum de
niveau convenable.
A ce stade, la fixation de la largeur des bus ne sert que d’initialisation. Un choix approprié
sera présenté dans le paragraphe § 3.4.3.1.2. Néanmoins, il nécessaire de montrer que le
largeur de certains bus peut être déterminée explicitement et ne dépend pas d’un choix
arbitraire mais des contraintes imposées par le codage en virgule fixe :
n ( S1 ) = n ( S 3 ) = n ( S 3 ) , n ( S 4 ) = n ( S 5 ) = n ( S10 ) = n ( S 8 ) , n ( S 6 ) = n ( S 7 ) .
121
Implantation des lois de commande des machines électriques sur FPGA
sauvegarder que les valeurs du sinus des angles qui appartiennent au premier quadrant du
cercle angulaire. La détermination du sinus des angles n’appartenant pas à ce secteur se fait
par application des propriétés du calcul trigonométrique.
π
Dans le cas de l’algorithme de MLI vectorielle, seul le sinus des angles entre 0 et est
3
mémorisé (voir page 110).
L’inversion du sens de rotation d’une machine triphasée peut être obtenue par la simple
permutation de deux de ses phases (permutation des signaux de commande des interrupteurs
de l’onduleur). Donc, il est possible de coder les différents signaux des blocs en aval du
régulateur de vitesse avec des nombres non signés et d’utiliser un commutateur pour assurer
l’inversion du sens de rotation (voir Figure 3.33).
122
Implantation des lois de commande des machines électriques sur FPGA
est le bloc de calcul des seuils de comparaison. Ce bloc peut être lui-même décomposé en
plusieurs sous blocs utilisables à la fois par les systèmes de MLI naturelle et vectorielle. En
particulier, le multiplexeur, le démultiplexeur, le multiplieur, le système de calcul de la
fonction sinus.
123
Implantation des lois de commande des machines électriques sur FPGA
Dans le but de tester les performances d’un microcontrôleur dédié à la commande des
machines récemment commercialisé, l’AT90PWM3 de la société Atmel, une implantation de
la structure de commande présentée dans la Figure 3.33 a été réalisée [Boulbair 05b]. Pour ne
pas alourdir notre présentation, on ne présente ici que l’algorithme de la MLI vectorielle.
Début
- calcul de la tension Vsm ;
124
Implantation des lois de commande des machines électriques sur FPGA
l’amplitude et la fréquence des trois tensions de référence Va* , Vb* , Vc* , il est possible de
vérifier les différents signaux PWM servant à piloter les interrupteurs de l’onduleur. A ce
niveau, la vérification peut se faire en amont et en aval de l’onduleur (test des signaux PWM
ou tests des signaux de sorties de l’onduleur). Pour visualiser le signal à la sortie de
l’onduleur, il est nécessaire de disposer d’un filtre passe-bas afin d’éliminer les fréquences
dues au découpage. Dans le cas où les signaux de sortie de l’onduleur forment un système
triphasé, d’amplitude et de fréquence égales à celles des tensions de référence, on peut
considérer que le système en boucle ouverte est validé. La dernière étape du cycle de tests
expérimentaux est le test du système en boucle fermée. Pour des raisons de sécurité des
équipements, il est important de commencer toujours ce type de tests par des consignes qui
correspondent à des cas de fonctionnement à vide et à faible vitesse.
Le Tableau 3.10 montre les résultats de synthèse du modèle VDHL du dispositif de
commande utilisant la technique de MLI naturelle et vectorielle. A partir de ce tableau, il est
intéressant de constater que l’implantation de l’algorithme de MLI vectorielle nécessite
moins de ressources que la MLI naturelle.
Ressource
MLI naturelle MLI vectorielle
FPGA
Slice 5120 307 288
Flip flop 10240 232 211
4 input LUT 10240 525 485
18x 18 multiplier
40 1 1
block
La Figure 3.35 montre les résultats expérimentaux obtenus pour une variation de vitesse entre
± 700 tours/min à vide dans e cas d’une de la MLI vectorielle (implantation sur FPGA).
125
Implantation des lois de commande des machines électriques sur FPGA
Cette figure nous montre que le temps de réponse est légèrement supérieur à 1 s. Une des
contraintes du cahier des charges n’est donc pas respectée. L’allure de la tension montre que
pour des vitesses inférieures à N boost = 0.1 N nominale = 280 tours/min, l’amplitude de la
Figure 3.35 : Résultats expérimentaux dans le cas d’une implantation sur FPGA - stratégie de MLI
vectorielle
Figure 3.36 : Résultats expérimentaux dans le cas d’une implantation sur microcontrôleur – stratégie de
MLI vectorielle
126
Implantation des lois de commande des machines électriques sur FPGA
La Figure 3.36 montre les résultats expérimentaux obtenus pour une variation de la vitesse de
-700 tours/min à +700 tours/min avec une implantation de la MLI vectorielle sur
microcontrôleur. A partir de cette figure, on peut constater que le temps de réponse du
système en boucle fermée est de l’ordre de 1 s ce qui remplit bien les objectifs du cahier des
charges.
La Figure 3.37 nous montre les résultats expérimentaux obtenus sur un FPGA pour une
variation de vitesse entre 700 et 1400 tours/min dans le cas d’utilisation d’une MLI
vectorielle (voir Figure 3.37.a) et d’une MLI naturelle (voir Figure 3.37.b). On constate que
le dispositif de commande assure, dans les deux cas, le même fonctionnement à vitesse
variable mais pour des tensions d’alimentation différentes. Dans le cas de MLI vectorielle la
valeur maximale de la tension fournie est inférieure à celle du MLI naturelle. Cela nous
montre bien un des rôles attendus de la MLI vectorielle.
(a) (b)
Figure 3.37 : Résultats expérimentaux obtenus sur une FPGA par une MLI vectorielle (a) et par une MLI
naturelle (b).
(a) (b)
Figure 3.38 : Résultats expérimentaux obtenus sur un microcontrôleur par une MLI avec injection d’un
harmonique 3 (a) et par une MLI naturelle (b)
127
Implantation des lois de commande des machines électriques sur FPGA
Comme on peut le voir sur la Figure 3.38, pour la même vitesse de rotation, la valeur
maximale de la tension de ligne dans le cas de l’utilisation d’une MLI avec injection d’un
harmonique 3 (Figure 3.38.a) est inférieure de celle de la MLI naturelle (Figure 3.38.b).
3.4.5. Conclusion
Malgré une complexité apparente de l’algorithme de MLI vectorielle, l’originalité de notre
façon d’implanter cet algorithme nous montre bien la parfaite adéquation des FPGA avec
l’implantation de tel algorithme. Bien qu’il soit l’algorithme le plus simple, l’algorithme de
MLI naturelle requiert plus d’éléments logiques que celui de MLI vectorielle (Tableau 3.10).
Cependant, il nous reste à réaliser des petits ajustements pour répondre aux exigences de
cahier des charges en termes de performances.
L’implantation sur microcontrôleur, quant à elle, nous montre que l’AT90PWM3 peut
parfaitement accomplir la tâche de régulation en utilisant la technique de MLI vectorielle.
Contrairement à ce qui est fréquemment affirmé, la puissance de calcul d’un DSP n’est donc
pas nécessaire pour cet algorithme.
128
Implantation des lois de commande des machines électriques sur FPGA
129
Implantation des lois de commande des machines électriques sur FPGA
3.6. Conclusion
Après une présentation détaillée de la méthodologie de mise en œuvre des algorithmes de
commande numérique sur FPGA, effectuée dans le chapitre 2, ce troisième chapitre a été
consacré à sa mise en pratique à sa validation expérimentale au moyen de la réalisation d’une
régulation de courant et de vitesse d’une machine à courant continu et d’une commande
scalaire d’une machine asynchrone. A travers la réalisation du premier exemple, nous avons
montré la parfaite adéquation de notre méthodologie avec la réalisation et la validation
expérimentale d’un système de commande de machine à courant continu. L’application de
notre méthodologie à la commande d’une machine asynchrone triphasée a également prouvé
son grand intérêt.
Dans les différentes publications étudiées, la MLI vectorielle est implantée de manière plus
au moins complexe. Dans ce chapitre, nous avons montré que grâce à une analyse détaillée
de cet algorithme, il est possible de l’implanter sur un FPGA en utilisant moins de ressources
physiques qu’il n’en faut pour l’implanter un algorithme de MLI naturelle. Cela montre donc
bien l’intérêt de l’analyse des algorithmes de commande des machines électriques pour
améliorer leur adéquation aux particularités des FPGA
130
Implantation des lois de commande des machines électriques sur FPGA
La dernière partie de ce chapitre a été consacrée à la présentation de quelques problèmes
typiques de mise en œuvre, à savoir les problèmes de modélisation, les problèmes
d’utilisation d’un onduleur, les problèmes d’interfaçage entre la carte numérique et la
machine et les problèmes inhérents à la structure de commande.
En ce qui concerne les problèmes liés à la modélisation de la machine nous avons vu que leur
résolution nécessite la synthèse des lois de commande en se basant sur un modèle le plus fin
possible de la machine. Pour les problèmes dus à l’onduleur (notamment les problèmes dus
aux temps morts), nous avons opté pour une augmentation des tensions de référence. Les
problèmes d’interfaçage entre la carte de commande et la machine peuvent être atténués en
respectant les règles de compatibilité électromagnétique. Concernant les problèmes dus à
l’action intégrale, ils peuvent être résolus par l’insertion de blocs de saturation et par la
gestion d’anti-saturations.
Dans le but de tester de notre méthodologie sur des applications plus complexes, nous
envisageons d’implanter la commande sans capteur d’une machine synchrone à aimants
permanents. Une étude comparative des différents algorithmes a déjà été réalisée et a fait
l’objet d’une validation expérimentale sur carte dSPACE [Boulbair 04]. Il a notamment été
montré que la méthode adaptative permet d’avoir de meilleurs résultats avec un faible coût
algorithmique. Il reste à implanter cette technique sur un FPGA en suivant la méthodologie
présentée dans ce mémoire.
131
Conclusion générale
L’objectif que nous nous sommes fixé dans cette thèse est double. Nous avons d’abord tenté
de proposer aux concepteurs de dispositifs de commande numérique des systèmes électriques
une méthodologie qui leur permet de concevoir plus aisément et plus rapidement des
systèmes. Puis nous avons appliqué et validé expérimentalement cette méthodologie sur des
exemples courants du domaine de la commande des machines.
Pour atteindre ces objectifs, nous avons commencé par situer la position des FPGA dans le
domaine de l’implantation des lois de commande des systèmes électriques. Nous avons donc
consacré le premier chapitre de ce travail à une description succincte de l’historique des
variateurs de vitesse des machines électriques, en particulier les variateurs des machines à
courant alternatif, et de leurs moyens technologiques de mise en œuvre. Nous avons montré
que les prix et les capacités initiales des FPGA étaient les obstacles principaux de la
vulgarisation des FPGA dans un domaine aussi exigent que celui de la commande des
systèmes électriques. Enfin, nous avons montré qu’à l’heure actuelle, il n y a pas de
dominance absolue d’une technologie sur une autre. La chute spectaculaire des prix des
FPGA instaure aujourd’hui une rude concurrence.
132
- valider le modèle architectural ;
- valider l’ensemble sur un banc d’essai expérimental.
Comme perspective de ce travail, il nous paraîtrait intéressant d’étudier l’incidence des outils
de génération automatique de code, apparus récemment, sur la conception des dispositifs de
commande sur FPGA. Nous aimerions en particulier savoir si l’utilisation de ces outils doit
nous amener à modifier la méthodologie proposée, si des techniques d’optimisation peuvent
être intégrées dans ces outils, et dans quelle mesure la réduction de la durée de conception
apportée par ces outils se traduit par une diminution des performances de la solution obtenue.
Après une présentation de notre méthodologie dans un cas général, nous avons consacré la
troisième partie de ce travail au test de cette méthodologie sur deux exemples de commande
de machines électriques. A travers la réalisation du premier exemple, nous avons pu montrer
que notre méthodologie s’applique parfaitement à l’implantation d’une commande en vitesse
et en courant de la machine à courant continu. Le deuxième exemple a été consacré à
l’implantation de la commande scalaire de la machine asynchrone. La réalisation de cet
exemple a permis de montrer encore une fois la bonne adéquation de notre méthodologie
pour l’implantation des lois de commande des machines à courant alternatif. Il a également
permis de montrer l’apport de l’utilisation des FPGA pour la commande des machines à
courant alternatif. En effet, l’adoption d’une structure originale pour l’implantation de
l’algorithme de MLI vectorielle a permis l’obtention d’un taux d’occupation sur le
composant plus faible que celui d’une MLI naturelle.
Bien que ces deux exemples nous permettent de valider notre méthodologie, nous estimons
que certaines étapes de la méthodologie ne sont pas suffisamment exploitées, notamment
l’algorithme de détermination automatique de la largeur des bus. Il nous parait donc justifié
133
d’étudier l’application de cette méthodologie à des exemples de commande plus complexes.
Nous pensons en particulier à l’implantation de la commande sans capteur mécanique des
machines à courant alternatif pour lesquels des travaux de validation sur carte dSPACE ont
déjà été réalisés.
134
Bibliographie
[ABB 1] ABB, “La technologie DTC ou le contrôle direct du couple”, Guide technique n°1,
disponible sur le site www.abb.com.
[Adams 02] L. Adams, “Choosing the right architecture for real signal processing designs”,
Texas Instruments, White paper, SPRA879, November 2002
[Ahmed 84] M. E. Ahmed, P. R. Belanger, “Scaling and Roundoff in Fixed-Point
Implementation of Control Algorithms”, IEEE Transactions on Industrial Electronics, Vol
31, No 3, pp 228-234, 1984.
[Ahmed 95] I. Ahmed, “Digital control applications with the TMS320 Family”, Selected
application notes, Texas Instruments, 1995.
[Airiau 98] R. Airiau, J. M. Bergé, V. Olive, J. Rouillard, “VHDL : langage, modélisation,
synthèse”, Presses polytechniques et universitaires romandes, 1998.
[Altera] Altera Inc – FLEX 10K, Data sheet. V4.1 2001.
[Åström 87] K.J. Åström, B. Wittenmark, “Computer controlled systems”, Prentice Hall,
Englewoods Cliffs, 1987.
[Åström 95] K.J. Åström, H. Steingrimsson, “Implementation of a PID Controller on a
DSP”, Digital Control Applications with the TMS320 Family. Selected Applications Notes.
Texas Instruments. Pag. 205-215, 1995.
[Atmel] http://www. Atmel.com
[Atmel 05] http://www.atmel.com/dyn/resources/prod_documents/doc4317.pdf
[Auger 03] F. Auger, Z. Boulbair, F. Miqueau, “Estimation par maximum de vraisemblance
de la dérivée d’un signal bruité, Application à la caractérisation de vérins pneumatiques”,
GRETSI’03 - Colloque GRETSI sur le Traitement du Signal et des Images, Paris, pp 178-
181, septembre 2003.
[avrfreaks] http://www.avrfreaks.net/
[Bajard 04] J. C. Bajard, J. M Muller, “Calcul et Arithmétique des Ordinateurs”, Traité IC2
Information - Commande – Communication, Edition Hermes, 2004.
[Bednara 03] M. Bednara, K. Danne, O. Oberschelp, F. Slomka, J. Teich, “Design and
Implementation of Digital Linear Control Systems on Reconfigurable Hardware”, EURASIP
Journal on Applied Signal Processing, pp 594-602, 2003.
[Bennett 01] S. Bennett, “The past of PID controllers”, Annual Reviews in Control n°25,
135
pp43-53, 2001.
[Berthiau 01] G. Berthiau, P. Siarry, “Etat de l’art des méthodes d’optimisation globale”,
Rairo Operations Research, Vol 35, pp 329-365, 2001.
[Black 34] H.S. Black, “Stabilized Feedback Amplifiers”, Bell Syst. Tech. J., 1934.
[Blaschke 72] F. Blaschke, “The principle of field orientation as applied to the new
Transvector closed-loop control system for rotating-field machines”, Siemens review, Vol.
39, no 5, 1972.
[Bode 40] H.W. Bode, “Feedback Amplifier Design”, Bell System Tech. J., vol. 19, p. 42,
1940.
[Bomar 98] B. W. Bomar, “Finite Worldlength Effects”, The Control Handbook, Chap 3, pp
1-18, CRC Press / IEEE Press, 1998.
[Bonnal 98] J. Bonnal, G. Séguier, “Entraînement électriques à vitesse variables - Tome 2 :
Rappels d'électronique de puissance et d'automatique, les variateurs électroniques de
vitesse”, Editions Tec&Doc, 1998.
[Boulbair 04] Z. Boulbair, M. Hilairet, F. Auger, L. Loron, “Sensorless control of a PMSM
using an efficient extended Kalman filter”, proc ICEM 2004.
[Boulbair 05a] Z. Boulbair, R. Aubrée, E. David, F. Auger, L. Loron, “A comparison of
microcontroller– and FPGA-based implementations of three-phase induction motor control
strategies”, proc Electrimacs’05, April 2005.
[Boulbair 05b] Z. Boulbair, R. Aubrée, F. Auger, E. David, L. Loron, “Comparing
Microcontroller- and FPGA-Based Implementations Of The Space Vector Control Algorithm
Of Three-Phase Induction Motors”, proc Electromotion’05, September 2005.
[Boulbair 05c] Z. Boulbair, “Algorithme d’optimisation des largeurs de bus d’une
architecture en virgule fixe pour les systèmes de commande numérique des systèmes
électriques”, JCGE 2005, Montpellier.
[Caron 95] Caron J.-P., Hautier J.-P., Modélisation et commande de la machine asynchrone,
Editions Technip, Paris, 1995.
[Castro 03] A. D. Castro, P. Zumel, O. Garcia, T. Riesgo, J. Uceda, “Concurrent and Simple
Digital Controller of an AC/DC Converter with Power Factor Correction Based on an
FPGA”, IEEE Transactions on Power Electronics, Vol 18, No 1, pp 334-343, January 2003.
[Chang 99] K. C. Chang, “Digital Systems Design with VHDL and Synthesis: An integrated
approach”, IEEE Computer Society, 1999.
[Chujo 02] N. Chujo, “Fail-safe ECU System Using Dynamic Reconfiguration of FPGA”,
R&D Review of Toyota CRDL, Vol 37, No 2, pp 54-60, Jun 2002.
136
[Constantinides 00] G. A. Constantinides, P. Y. K. Cheung, W. Luk, “Roundoff-Noise
Shaping Filter Design”, IEEE International Symposium on Circuits and Systems, ISCAS
2000, pp IV.57-IV.60, 2000.
[Coors 02] M. Coors, H. Keding, O. Lüthje, H. Meyr, “Design and DSP Implementation of
Fixed-Point Systems”, EURASIP Journal on applied Signal Processing, pp 908-925, 2002.
[Coquerelle 99] J. L. Coquerelle, “C.E.M et Electronique de Puissance”, Collection Sciences
et Technologies, Editions Technip, 1999.
[de Larminat 00] P. de Larminat, “Automatique : Commande des Systèmes Linéaires”, 2éme
édition, Hermès, 2001.
[Delta 1] T. Delta, “Motion And Control Ring Optical (MACRO)”, Documentation
disponible à www.deltatau.com
[Delta 2] T. Delta, Carte PMAC, Documentation disponible à www.deltatau.com
137
[Hunt] http://www.hunt-dsp.com
[Istepanian 01] R. Istepanian, J. F. Whidborne, “digital controller implementation and
fragility: A modern perspective”, Springer, 2001.
[IAR] http://www.iar.com/
[Jahns 01] T. Jahns, E. Owen, “AC adjustable-speed drives at the millennium : how did we
get here”, IEEE Trans. on Power Electronics, Vol. 10, n°1, jangada 2001.
[Kamen 98] A.W. Kamen, “Fundamentals of Linear Time varying Systems”, The Control
Handbook, Chap 25, pp 451-468, CRC Press / IEEE Press, 1998.
[Kessler 58] C. Kessler, “Das Symmetrische Optimum”, Regelungstechnik, Vol. 6, 1958.
[Kim 98] S. Kim, K. I. Kum, W. Sung, “Fixed Point Optimization Utility for C and C++
Based Digital Signal Processing Programs”, IEEE Transactions on Circuits and Systems- II:
Analog and Digital Signal Processing, Vol 45, No. 11, pp 1455-1462, 1998.
[Kotteri 04] K. A. Kotteri, A. E. Bell, J. E . Carletta, “Quantized FIR Filter Design: A
Collaborative Project for Digital Signal Processing and Design Courses”, Proceedings of the
2004 American Society for Engineering Education Annual Conference & Exposition, 2004,
Virginia.
[Kovacs 59] P. K. Kovacs, “Transiente Vorgänge in Wechselstrom Maschinen”, Verlag der
Ungarischen Akademie der Wissenschaften, Budapest, 1959.
[Kum 01] K. I. Kum, W. Sung, “Combined Word-length Optimization and High-Level
Synthesis of digital Signal Processing Systems”, IEEE Transactions On Computer-Aided
Design of Integrated Systems, Vol 20, No 8, pp 921-930, 2001.
[Langlois 99] J. M. P. Langlois, D. Al-khalili, R. J. Inkol, “A high performance, wide
bandwidth, low cost FPGA-based quadrature demodulator”, Electrical and Computer
Engineering, IEEE Canadian Conference in ECE, Vol 1, pp 497-502, May 1999.
[Leonard 96] W. Leonard, “Controlled AC drives”, a successful transition from ideas to
industrial practice, Control Eng. Practice, Vol. 4, no 7, p. 897-908, 1996.
[Leonhard 85] W. Leonhard, “Control of electrical drives”, Springer-Verlag, Berlin, 1985
(1ère édition).
138
[Lorentz 94] D.L. Lorentz, T. A. Lipo, D.W. Novotny, “Motion control with induction
motors”, IEEE Proc., Vol. 82, no 8, August 1994.
[Loron 97] L. Loron, “Tuning of PID controllers by the non-symmetrical optimum method”,
Automatica, Vol. 33, n°1, 1997.
[Loron 99] L. Loron L, “Compte-rendu des essais complémentaires d’Identification de la
Machine à rotor bobiné de l'IRCyN avec analyse des effets de saturation sur l'estimation des
paramètres”, 1999, disponible sur le site : http://www.irccyn.ec-
nantes.fr/hebergement/BancEssai/RapportEssais.html
[Mathworks] http://www.mathworks.com/products/modelsim/
[Maxwell 1868] J.C. Maxwell, “On Governors”, Proc. Royal Soc. London, vol. 16, pp. 270-
283, 1868.
[Menard 02a] D. Menard, “Méthodologie de compilation d’algorithmes de traitement du
signal pour les processeurs en virgule fixe sous contrainte de précision”, thèse de doctorat de
Rennes 1, décembre 2002, Rennes.
[Menard2 02b] D. Menard, O. Sentieys, “Automatic Evaluation of the Accuracy of Fixed-
point Algorithms”, DATE’02, Paris, March 2002.
[Mentor] http://www.mentor.com
[Meyer-Baese 01] U. Mayer-Baese, “Digital Signal Processing With Field Programmable
Gate Arrays”, Springer-Verlag Berlin Heidelberg, 2001.
[Microchip] http://www.microchip.com
[Minorsky 22] N. Minorsky, “Directional Stability and Automatically Steered Bodies”, J.
Am. Soc. Nav. Eng., vol. 34, p. 280, 1922.
[Monmasson 02] E. Monmasson, Y. Chapuis, “New Technology Contribution of FPGA to
the Control of Electrical Systems, a Review”, IEEE Industrial Electronics Society
Newsletter, Vol 49, No 4, pp 8-15, 2002.
[Monmasson 93] E. Monmasson, “Architecture de Dispositifs de Commande Numérique –
Application à la variation de vitesse, Réalisation à l’aide de prédiffusés reprogrammables”,
thèse de doctorat de l’INPT, 1993, Toulouse.
[Nec 03], Nec Corp., “An Introduction to Space Vector Modulation using NECs 8-bit Motor
Control Microcontrollers,” Document No. U16699EE1V0AN00, May 2003. Disponible sur
le site : http : //www .ee.nec.de/products / micro/0178k/78k0/index.html
[Nyquist 32] H. Nyquist, “Regeneration Theory”, Bell Syst. Tech. J., 1932.
[Pinard 04] M. Pinard, “Commande Electronique des Moteurs Electriques”, Dunod, 2004
[Pirsch 95] P. Pirsch, N. Demassieux, “VLSI Architectures for Video Compression - A
Survey”, Proceedings of the IEEE, Vol 83, No 2, pp 220-246, February 1995.
139
[placeaudesign] http://www. Placeaudesign.com
[Prodic 01] A. Prodic, D. Maksimovic, R. W. Erickson, “Design and Implementation of a
Digital Controller for a High- Frequency Switching DC-DC Power Converter”, ICON’01, pp
893-898, 2001.
[Rivoire 89] M. Rivoire, J. L. Ferrier, “Traitement du Signal Systèmes”, Edition Eyrolles,
1989.
[Routh 1887] E.J. Routh, “A Treatise on the Stability of a Given State of Motion”, London:
Macmillan & Co., 1877.
[Santina 98a] M. S. Santina, A. R. Stubberud, G. H. Hostetter, “Discrete-time Equivalents to
Continuous-time Systems”, The Control Handbook, Chap 13, pp 265-279, CRC Press / IEEE
Press, 1998.
[Santina 98b] M. S. Santina, A. R. Stubberud, “Sample Rate Selection”, The Control
Handbook, Chap 16, pp 313-321, CRC Press / IEEE Press, 1998.
[Santina 98c] M. S. Santina, A. R. Stubberud, “Quantization Effects”, The Control
Handbook, Chap 15, pp 301-311, CRC Press / IEEE Press, 1998.
[Seguier 94], G. Seguier, F. Notelet, “Electrotechnique Industrielle”,Editons Tec & Doc,
1994.
[Sicot 97] L. Sicot, “Contribution à l’Intégration de Limitations dans les Lois de Commandes
de la Machine Synchrone à Aimants Permanents: Approche théorique et réalisation
expérimentales, Commande sans capteur mécanique”, thèse de doctorat de l’Université de
Nantes, GE44, janvier 1997, Saint Nazaire.
[Stefani 98] B. T. Stefani, W. A. Wolovich, “Analysis methods”, The Control Handbook,
Chap 8, pp 115-130, CRC Press / IEEE Press, 1998.
[Steinbuch 94] M. Steinbuch, G. Schootstra, H. T. Goh, O. Bosgra, “Closed Loop l1 Scaling
for Fixed-point Digital Control Implementation”, Proceeding of the American Control
Conferences, pp 1157-1161, 1994.
[Sung 95] W. Sung, K. Kum, “Simulation Based Word Length Optimization Method for
fixed point Digital Signal Processing Systems”, IEEE Transactions on Signal Processing, Vol
43, No 12, pp 3087-3090, 1995.
[Takahashi 02] T. Takahashi, “New Digital Control Method for High Performance AC
Servo Motor Drive, Accelerator Servo Drive Development for Military Application”,
Military Electronics Conference, Sept 24-25, 2002.
[Thoma 05] Y. Thoma, “Tissu numérique cellulaire à routage et configuration dynamiques”,
thèse de doctorat de l’Ecole Polytechnique Fédérale de Lausanne, 2005, Lausanne.
140
[Toliyat 04] H.A. Toliyat, S.G. Campbell, “DSP-based electromechanical motion control”,
[Tzou 97] Y. Y. Tzou, H. J. Hsu, ”FPGA Realization of Space-Vector PWM Control IC for
Three-Phase PWM Inverters”, IEEE Transactions on Power Electronics, Vol 12, No 6, pp
953-936, November 1997.
[Vas 90] P. Vas, “Vector control of AC machines”, Oxford University Press, Oxford, 1990.
[Vas 98] P. Vas, “Sensorless vector and direct torque control”, Oxford University Press,
Oxford, 1998.
[Warnes 04] P.Warnes, T.Hollis, “Heron-IO2 version 2 user manual”, HUNT
ENGINEERING, Document Rev H, March 25, 2004.
[Wheatley 93] C. T. Wheatley, “Drives”, EPE'93, Brighton, 13-16 September 93.
[Wilson 62] T.G Wilson, P.H. Trickey, “DC machine with solid State commutation”, AIEE
paper n°CP62-1372, oct 7, 1962.
[Wyss 89] W. Wyss, “AC servo drives”, EPE'89, Aachen, Germany, 9-12 October 1989.
[Xilinx] http://www.xilinx.com
[Yaskawa 1] Yaskawa, “Sigma II Series Servo System - User’s Manual”, Documentation
constructeur disponible à www.yaskawa.com.
[Yu 98] Z. Yu, D. Figoli, “AC induction motor control using constant V/Hz principle and
space vector PWM technique with TMS320C240,” Application Note SPRA284A Disponible
sur le site http://www.ti.com, april 1998.
141
Implantation d’algorithmes de commande sur FPGA :
une méthodologie pour les systèmes électriques
L’apparition ces dernières années de nouveaux composants FPGA, possédant des capacités
fortement accrues et proposés à des prix très compétitifs, a fait de ces composants une alternative
très sérieuse aux solutions logicielles dans le domaine de la commande numérique des systèmes
électriques. Cependant, si l’implémentation sur des cibles logicielles est abondamment
documentée, que ce soit dans des travaux scientifiques ou des notes d’application de constructeurs,
l’implémentation matérielle l’est beaucoup moins. Pour réduire le temps de développement d’une
application sur FPGA et travailler avec plus d’efficacité, il est pourtant nécessaire de disposer
d’une méthodologie rationnelle, qui guide le concepteur pendant toutes les phases de conception.
C’est dans ce sens qu’une méthodologie de mise en œuvre des algorithmes de commande
numérique des systèmes électriques sur FPGA a été proposée. Sa validité a été testée sur différents
algorithmes de commande numérique des machines électriques, notamment la variation de vitesse
et de courant de la machine à courant continu ainsi que la commande scalaire de la machine
asynchrone. Les résultats obtenus montrent l’intérêt de notre méthodologie pour réduire le temps
de conception. L’implémentation de la MLI vectorielle est l’un des algorithmes qui montre que les
FPGA conviennent particulièrement pour la commande des systèmes électriques. Une comparaison
entre l’implémentation de cet algorithme sur microcontrôleur et sur FPGA a donc été réalisée.
Mots-clés :
Méthodologie de mise en œuvre, optimisation de la largeur des bus, implémentation sur FPGA,
implémentation sur microcontrôleurs, adéquation algorithme architecture.
Implementing digital control algorithms on FPGAs : A methodology for variable speed drives
The era of dominance of microcontroller and digital signal processors (DSP) on digital controllers
is maybe over. In the past, the use of FPGAs was constrained by their small number of gates and
their high cost. But nowadays, the international market is explosed by the advent of new FPGAs
with a large number of gates and very competitive prices. However, the main problem for the
implementation of control algorithms on these components is their complexity and their long
conception time. In this thesis, we propose a top-down methodology for the design of digital
controllers on FPGA. This methodology was confirmed by several case studies, such as speed and
current regulation of DC machines and scalar control of induction motors. FPGAs match
particularly well for the digital control of electrical drives, as can be seen in many examples, one
of them being the Space Vector Modulation. For the latter algorithm, a comparison between
microcontroller- and FPGA-based implementations has been performed.
Keywords:
FPGA, microcontroller, design and implementation of digital control algorithms, word length
optimization, variable speed drives.
N° : ED 366-235