الجمـهوريــة الجزائريــة الديمقراطيــة الشعبيــة REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE وزارة التعليــم العالــي و البحــث العلمـي UNIVERSITE DES FRERES MENTOURI CONSTANTINE جامعـــــــة اإلخوة منتوري قسنطينـــــــــة Faculté des Sciences de la Technologie Département : Electrotechnique كلـيــة علوم التكنولوجيا قسم االلكتروتقني N° d’ordre : …. Série : …. Mémoire Présenté en vue de l’obtention du Diplôme de Master en Electrotechnique Option Electrotechnique Thème COMMANDE D’UN MOTEUR A COURANT CONTINU VIA FPGA Présenté par : DERGHAL Smail Encadreur : Dr. MEHAZZEM Fateh Devant le jury : Président Examinateurs : Dr. KAIKAA Mohamed yazid : Prof. KHEZZAR Abdelmalek Dr. BABAA Fatima Membre de jury : Prof. KERDOUN Djallel Soutenue le 17/06/2015 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Remerciements Commande d’un MCC via FPGA 1 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Dédicace Commande d’un MCC via FPGA 2 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs SOMMAIRE Introduction générale CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN 1. Introduction ................................................................................................................................................2 2. Les FPGA ..................................................................................................................................................2 3. 2.1. L’architecture ....................................................................................................................................3 2.2. Historique ..........................................................................................................................................4 Le langage de programmation VHDL .......................................................................................................5 3.1. Définition du VHDL...........................................................................................................................5 3.2. Historique de VHDL ..........................................................................................................................5 3.3. Structure d'un module VHDL (Unité de conception) .........................................................................5 3.4. Notions de base...................................................................................................................................5 3.5. Syntaxe ...............................................................................................................................................7 3.6. Les instructions port et generic ...........................................................................................................7 3.7. Les directions......................................................................................................................................7 3.8. Les objets ............................................................................................................................................7 3.9. Notation des littéraux .........................................................................................................................8 3.10. Les types principaux en synthèse ...................................................................................................8 3.11. Les bibliothèques ............................................................................................................................8 3.12. Les opérations dans VHDL ...........................................................................................................9 3.13. Les types manipulés par VHDL ..................................................................................................10 3.14. Les constantes...............................................................................................................................10 3.15. Les variables .................................................................................................................................10 3.16. Les signaux ...................................................................................................................................11 3.17. Les commentaire en VHDL..........................................................................................................11 3.18. Les processus ...............................................................................................................................11 3.19. Les principales caractéristiques du langage VHDL .....................................................................12 3.19.1. Un langage s'appliquant à plusieurs niveaux de descriptions ................................... 12 3.19.2. Fonctionnement concurrent ...................................................................................... 12 3.19.3. Fonctionnement séquentiel ....................................................................................... 13 3.20. 4. Différences entre un langage de programmation et VHDL .........................................................13 Modèle System Generator .......................................................................................................................14 4.1. Brève description .............................................................................................................................14 Commande d’un MCC via FPGA 1 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs 5. 4.2. Méthode de développement .............................................................................................................14 4.3. Simulink ..........................................................................................................................................14 4.4. Xilinx System Generator .................................................................................................................15 Conclusion ................................................................................................................................................18 CHAPITRE II : Commande des Moteurs à Courant Continue via Les Hacheurs 1. Introduction ..............................................................................................................................................20 2. La Machine à Courant Continu (MCC) ...................................................................................................20 2.1. La Force électromotrice (f.e.m.) E ................................................................................. 21 2.2. Couple électromagnétique .............................................................................................. 21 2.3. Le moteur à excitation indépendante ............................................................................ 21 2.4. 2.5. 3. 2.3.1. Modèle électrique ..........................................................................................................21 2.3.2. Bilan énergétique et rendement .....................................................................................22 Le moteur à excitation série .......................................................................................... 22 2.4.1. Modèle électrique ..........................................................................................................22 2.4.2. Bilan des puissances et rendement ................................................................................23 Quelques considérations pour le moteur à courant continu .......................................... 23 2.5.1. Utilisation des moteurs à courant continu .....................................................................23 2.5.2. Démarrage des moteurs à courant continu.....................................................................23 LES HACHEURS ...................................................................................................................................24 3.1.Les interrupteurs électroniques ........................................................................................... 24 3.2. 3.1.1. Le transistor bipolaire ....................................................................................................24 3.1.2. Transistor MOSFET ......................................................................................................25 3.1.3. GTO ...............................................................................................................................26 3.1.4. IGBT ..............................................................................................................................26 3.1.5. La diode à jonction ........................................................................................................26 Hacheur série (abaisseur) .............................................................................................. 27 3.2.1. Principe de fonctionnement ...........................................................................................27 3.2.2. Etude du hacheur série alimentant un moteur à courant continu ..................................28 3.3. Hacheur parallèle (Elévateur) ....................................................................................... 29 3.4. Hacheur réversible ........................................................................................................ 32 3.4.1. Hacheur réversible en courant .......................................................................................32 3.4.2. Hacheur réversible en tension........................................................................................33 Commande d’un MCC via FPGA 2 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs 3.5. 4. 5. Hacheur en Pont ou 4 quadrants ................................................................................... 33 3.5.1. Schéma du montage .......................................................................................................33 3.5.2. Les 04 quadrants ............................................................................................................34 3.5.3. Analyse du fonctionnement en commande continue ....................................................35 3.5.4. Valeur moyenne de la tension aux bornes de la charge .................................................35 3.5.5. Chronogrammes ............................................................................................................35 3.5.6. Fonctionnement dans les 4 quadrants ............................................................................36 Structure de commande ............................................................................................................................36 4.1. Génération d'une MLI (PWM) ....................................................................................... 36 4.2. Principe de la commande MLI ....................................................................................... 37 Conclusion ................................................................................................................................................37 CHAPITRE III : Implémentation et résultats 1. Introduction ................................................................................................................................ 39 2. Cachier des charges .................................................................................................................... 39 3. Parite matérielle ......................................................................................................................... 39 4. 3.1. Présentation du banc d’essai ........................................................................................... 39 3.2. Schéma bloc global ......................................................................................................... 40 3.3. Les composants ............................................................................................................... 40 a) Les alimentations ............................................................................................................ 40 b) Les inductances .............................................................................................................. 41 c) Capteur de vitesse (Encodeur Incrémental).................................................................... 41 d) L’oscilloscope ................................................................................................................ 42 e) L’Hacheur un quadrant – Elévateur .............................................................................. 42 f) MCC ............................................................................................................................... 44 g) La carte DSPace 1104 .................................................................................................... 44 h) La carte FPGA – Altera DE2 ......................................................................................... 45 Partie logicielle........................................................................................................................... 47 4.1. Génération de la PWM sous Matlab/simulink ................................................................ 47 4.2. Solution sous FPGA pour Générer PWM ....................................................................... 47 a) Génération PWM avec VHDL ......................................................................................... 47 b) Génération PWM avec SYSGEN .................................................................................... 50 Commande d’un MCC via FPGA 3 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs 5. 6. Résultats ..................................................................................................................................... 51 5.1. Résultats Avec DSPace ................................................................................................... 51 a) L’allure des courants d’induit et inducteur avec les rapports cycliques =0.3 et =0.7 ............ 51 b) L’allure de la vitesse avec les rapports cycliques =0.3 et =0.7......................................... 52 5.2. Résultat Avec FPGA ....................................................................................................... 52 a) Allure du signal PWM (MLI) ......................................................................................... 52 b) L’allure des courants d’induit et inducteur avec les rapports cycliques = 0.3 et = 0.7 ........ 53 c) L’allure de la vitesse avec les rapports cycliques = 0.3 et = 0.7 ....................................... 54 5.3. Comparaison .................................................................................................................... 55 Conclusion ................................................................................................................................. 55 CONCLUSION ET PERSPECTIVES ANNEXES BIBLIOGRAPHIE Commande d’un MCC via FPGA 4 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Liste des figures CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN Figure I- 1 : Flot classique de conception FPGA. ................................................................................... 3 Figure I- 2 : Structure d’un circuit FPGA ............................................................................................... 3 Figure I- 3 : La structure typique d'une description VHDL .................................................................... 6 Figure I- 4 : les différents portes logiques .............................................................................................. 9 Figure I- 5 : Schéma d’un exemple pour le fonctionnement concurrent............................................... 12 Figure I- 6 : Le bloc System Generator ................................................................................................. 15 Figure I- 7 : La bibliothèque de Simulink ............................................................................................ 15 Figure I- 8 : Le bloc Gateway In ........................................................................................................... 15 Figure I- 9 : Le bloc Gateway Out ........................................................................................................ 16 Figure I- 10 : Aperçu de Xilinx System Generator ............................................................................... 16 Figure I- 11 : Bloc de Black Box .......................................................................................................... 17 Figure I- 12 : Le boc de Mcode ............................................................................................................. 17 Figure I- 13 : Exemple sur le Mcode & Black box ............................................................................... 17 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Figure II- 1 : Représentation des deux parties principales de la MCC ................................................ 20 Figure II- 2 : Modèle électrique d'une MCC ........................................................................................ 21 Figure II- 3 : Modèle électrique du moteur à excitation indépendante ................................................. 21 Figure II- 4 : Bilan énergétique du moteur à excitation indépendante .................................................. 22 Figure II- 5 : Modèle électrique du moteur à excitation série ............................................................... 22 Figure II- 6 : Bilan énergétique du moteur à excitation série ............................................................... 23 Figure II- 7 : Transistor bipolaire .......................................................................................................... 24 Figure II- 8 : Transistor MOSFET ........................................................................................................ 25 Figure II- 9 : Thyristor GTO ................................................................................................................. 26 Figure II- 10 : Transistor bipolaire à grille isolée (IGBT) .................................................................... 26 Figure II- 11 : Schéma d'un Hacheur abaisseur .................................................................................... 27 Figure II- 12 : Oscillogramme de la tension aux bornes de la charge................................................... 27 Figure II- 13 : Schéma d’un hacheur série alimentant un MCC ........................................................... 28 Figure II- 14 : Oscillogramme du courant d’un hacheur série .............................................................. 28 Figure II- 15 : Schéma d’un hacheur élévateur (boost)......................................................................... 29 Commande d’un MCC via FPGA 1 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Figure II- 16 : Schéma d’un Hacheur Boost quand K conduit .............................................................. 29 Figure II- 17 : Evolution de courant de l’inductance L (séquence 1) ................................................... 29 Figure II- 18 : Schéma d’un Hacheur Boost quand D conduit .............................................................. 30 Figure II- 19 : Evolution de courant de l’inductance L (séquence 2) ................................................... 30 Figure II- 20 : Hacheur Boost dans la séquence de commutation......................................................... 31 Figure II- 21 : Hacheur réversible en courant ....................................................................................... 32 Figure II- 22 : Les 02 modes de fonctionnements d’un Hacheur réversible en courant. ...................... 32 Figure II- 23 : Hacheur réversible en tension........................................................................................ 33 Figure II- 24 : Schéma d'un Hacheur 4 quadrants ................................................................................. 33 Figure II- 25 : Les 4 quadrants de fonctionnement de la machine à courant continu ........................... 34 Figure II- 26 : Un signal MLI (PWM) .................................................................................................. 37 CHAPITRE III : Impleméntation et résultats Figure III- 1 : Banc d’essai.................................................................................................................... 39 Figure III- 2 : Schéma bloc global ........................................................................................................ 40 Figure III- 3 : Alimenation d’induit ...................................................................................................... 40 Figure III- 4 : Alimentation Hacheur .................................................................................................... 40 Figure III- 5 : Alimenation stabilisé pour alimenter l’optocoupleur et le Driver .................................. 41 Figure III- 6 : Inductance de lissage ...................................................................................................... 41 Figure III- 7 : Encodeur de vitesse ........................................................................................................ 41 Figure III- 8 : Oscilloscope de type Tektronix TDS 1002C-EDU ........................................................ 42 Figure III- 9 : Schéma d’un hacheur élevateur (boost) ......................................................................... 42 Figure III- 10 : Hacheur Boost SEMIKRON ........................................................................................ 43 Figure III- 11 : Hacheur Boost réalisé localement (front de la carte) ................................................... 43 Figure III- 12 : Hacheur Boost réalisé localement ( l'arrière de la carte) .............................................. 43 Figure III- 13a : La machine à courant continu..................................................................................... 44 Figure III- 13b : les caractéristiques du MCC ....................................................................................... 44 Figure III- 14 : la carte DSPace............................................................................................................. 44 Figure III- 15 : Control panel ................................................................................................................ 45 Figure III- 16 : Diagramme de bloc de la carte ALTERA DE2 ............................................................ 45 Figure III- 17: La carte Altera DE2....................................................................................................... 46 Figure III- 18 : La carte Altera Cyclone II EP2C35F672C6 ................................................................. 46 Figure III- 19 : Modèle simulink pour générer PWM ........................................................................... 47 Commande d’un MCC via FPGA 2 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Figure III- 20 : Le bloc PWM ............................................................................................................... 47 Figure III- 21 : Schéma RTL du signal PWM ...................................................................................... 49 Figure III- 22 : Génération PWM avec System generator .................................................................... 50 Figure III- 23 : Illustration Comment programmer le PWM ................................................................ 50 Figure III- 24 : L'allure sur oscilloscope du courant d’induit avec (alpha = 0.3) ................................. 51 Figure III- 25 : L'allure sur oscilloscope du courant d’induit avec (alpha = 0.7) ................................. 51 Figure III- 26 : L'allure sur control desk du courant d’induit avec (alpha = 0.7) ................................. 51 Figure III- 27 : L'allure sur Control Desk du courant d’induit avec (alpha = 0.3) ................................ 51 Figure III- 28 : L'allure de vitesse du MCC (tour/min) _ (alpha = 0.7) ................................................ 52 Figure III- 29 : L'allure de vitesse du MCC (tour/min) _ (alpha = 0.3) ................................................ 52 Figure III- 30a : Signal MLI (PWM) avec (alpha = 0.3) ...................................................................... 53 Figure III- 30b : Signal MLI (PWM) avec (alpha = 0.7) ...................................................................... 53 Figure III- 31 : L'allure du courant d’induit avec (alpha = 0.3) ............................................................ 53 Figure III- 32 : L'allure du courant d’induit avec (alpha = 0.7) ............................................................ 54 Figure III- 33 : L'allure de vitesse du MCC (tour/min) _ (alpha = 0.3) ................................................ 54 Figure III- 34 : L'allure de vitesse du MCC (tour/min) _ (alpha = 0.7) ................................................ 54 Commande d’un MCC via FPGA 3 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Introduction générale Ce mémoire a été réalisé dans le cadre de la formation Master II, option électrotechnique, au sein du laboratoire d'électrotechnique de Constantine. L'objectif de ce projet est la commande d’un moteur à courant continu via une carte FPGA. Les moteurs et les générateurs (dynamos) à courant continu furent les premières machines électriques utilisées par les ingénieurs au milieu du 19ièmesiècle pour produire de la puissance motrice particulièrement dans le transport ferroviaire (tramways, TGV), et maintenant restent très utilisés dans le domaine de l’automobile (ventilateurs, lève-vitre, etc.) Les FPGAs, Field Programmable Gate Array ou réseau de portes programmables. Ce sont des circuits intégrés programmables (ou plutôt reconfigurables) plusieurs fois et de plus en plus dynamiquement! Ils permettent d’émuler un circuit afin de le valider avant la gravure silicium. Ce mémoire présente notre projet qui consiste à commander un moteur à courant continu par un signal modulé en largeur d’impulsion (MLI). La commande a été programmée en langage VHDL en utilisant une carte FPGA (ALTERA Cyclone II). Ce mémoire est divisé en trois chapitres, organisés comme suit: Dans le premier chapitre nous avons présentés des notions générales sur les FPGAs, son langage de programmation VHDL et on a parlé d’un nouveau outil, utilisé pour faciliter la programmation, c’est le System Generator (SYSGEN). Dans le deuxième chapitre nous avons présenté une étude théorique du moteur à courant continu et aussi des convertisseurs continu/continu ou bien les Hacheurs. Dans le troisième chapitre, nous avons présenté notre application concernant la commande d’un moteur à courant continu via une carte FPGA. Une description détaillée des parties matérielles et logicielles de l’application a été donnée, ainsi qu’aux différents résultats pratiques obtenus par les deux cartes Altera et DSPace. Ces résultats concernent les deux solutions (Simulink et VHDL-Sysgen) pour générer le signal PWM. Enfin, dans la dernière partie, nous terminons par une conclusion générale sur cette étude ainsi que les perspectives envisageables pour un travail futur. Commande d’un MCC via FPGA 1 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN CHAPITRE 1 Prototypage rapide sous FPGA - SYSGEN Commande d’un MCC via FPGA 1 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN 1. Introduction La densité croissante des circuits programmables actuels, notamment des FPGA (Field Programmable Gate Array), permet le prototypage rapide des circuits numériques à grande complexité. Aussi, il est possible de tester rapidement la validité de concepts architecturaux nouveaux: l'implémentation complète d'un processeur sur des circuits FPGA est aujourd'hui à notre portée, entraînant ainsi plus de possibilités d'évaluation que celles offertes par des simulateurs logiciels. La part de marché des FPGA dans le marché globale des circuits matériels pour l’électronique numérique ne cesse d’augmenter. Les évolutions technologiques et architecturales qui ont eu successivement lieu depuis le début des années 2000 ont fait de ces circuits de réels et rentables alternatives aux classiques ASIC. Avec ces évolutions c’est tout un nouveau domaine de l’électronique numérique qui s’est ouvert. Aujourd’hui les FPGA sont utilisés dans tous les domaines, des systèmes embarqués aux systèmes de communications, ils sont au cœur d’un important champ de recherche académique et industrielle. 2. Les FPGA[1] Les FPGA (Field Programamble Gate Array) sont des circuits numériques configurables, dédiés à l’électronique numériques. A l’état initial ils ne peuvent rien faire mais disposent d’une importante quantité (dépendant de la technologie utilisée) de ressources matérielles opérationnelles dont on peut configurer la fonction. Ces ressources sont, principalement, des blocs élémentaires logiques (pour réaliser des fonctions booléennes), des mémoires RAM, des opérateurs arithmétiques (qui travaillent en virgule fixe), des ressources de routage interne et des entrées/sorties. Ces ressources configurables sont reliées par un réseau dense de lignes de routage et de lignes de transport des horloges. Ces lignes de routage sont aussi configurables. En plus de ces ressources, un FPGA est composé d’une mémoire interne de configuration. Chaque point de cette mémoire correspond à la configuration d’un élément d’une des ressources opérationnelles. Cette mémoire est, dans la plupart des cas, réalisée avec une des trois technologies suivantes : ANTIFUSIBLE (la plus ancienne, configurable une seule fois), FLASH (non-volatile) ou SRAM (volatile, la plus utilisée, représente plus de 80 % du marché). Comme le montre la figure 1, pour réaliser une application avec un FPGA, il faut décrire le circuit électronique à réaliser avec un langage de description matérielle comme le VHDL (Very High Speed Integrated Circuit Hardware Description Langage). Puis il faut synthétiser cette description en circuit électronique. Cette étape et les suivantes peuvent se faire avec des logiciels gratuits, fournis par le fabricant de circuit. Enfin après une étape de placement et routage qui prend en compte l’architecture du FPGA, un fichier de configuration appelé bitstream est généré. Celui-ci permet de spécifier au FPGA lors de la configuration la position des points de la mémoire de configuration. Parmi les principaux fabricants de FPGA dans le monde on peut citer : Xilinx (N°1 du marché des FPGA, 53% de part de marché), Altera (N°2 du marché des FPGA, 36 % de part de marché) Commande d’un MCC via FPGA 2 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN Figure I- 1 : Flot classique de conception FPGA. 2.1. L’architecture [2] Structurés sous forme de matrices, les FPGA sont composés d’éléments logiques de base, constitués de portes logiques, présentes physiquement sur le circuit. Ces portes sont reliées par un ensemble d’interconnexions modifiables : d’où l’aspect programmable du circuit. Figure I- 2 : Structure d’un circuit FPGA Commande d’un MCC via FPGA 3 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN La structure du FPGA est composée : De cellules d’entrées sorties modifiables qui servent d’interfaces entre les broches du circuit et le cœur du FPGA pour adapter les signaux suivants : o Alimentation o Signaux d’horloge o Signaux de configuration du FPGA o Signaux de test De blocs logiques ou éléments logiques contenant les fonctions logiques combinatoires et séquentielles. La partie combinatoire permet de réaliser des fonctions de complexité moyenne avec des portes classiques ET, OU et NON de deux à une dizaine d’entrées. La partie séquentielle comporte une ou deux bascules généralement de type D. Compte tenu du nombre d’éléments logiques et de leur structure, leur association permet de réaliser tous les types de bascule. L’intérêt est de créer des mémoires élémentaires à un bit. De réseaux d’interconnexions : Ces réseaux relient entre eux les blocs logiques et les blocs d’entrées/sorties. 2.2. Historique [1] En 1984 la société américaine Xilinx fut précurseur du domaine en lançant le premier circuit FPGA commercial, le XC2000. Ce composant avait une capacité maximum de 1500 portes logiques. La technologie utilisée était alors une technologie aluminium à 2µm avec 2 niveaux de métallisation. Xilinx sera suivi un peu plus tard, et jamais lâché, par son plus sérieux concurrent Altera qui lança en 1992 la famille de FPGA FLEX 8000 dont la capacité maximum atteignait 15000 portes logiques. Depuis les années 2000 des évolutions majeures ont été apportées. Les technologies utilisées pour les FPGA sont les mêmes que celles utilisées pour les ASIC(1). Par exemple, la technologie cuivre est mise en œuvre pour la réalisation des métallisations au sein des FPGA. Elle permet une réduction d’environ 70% des temps de propagation des signaux le long des métallisations par rapport à la technologie aluminium. En 2000, les technologies utilisées étaient des technologies CMOS 0,15µm avec 8 niveaux de métallisation, aujourd’hui la technologie utilisée est la technologie CMOS 40 nm avec plus de 10 ou 12 niveaux de métallisation en cuivre. En 2000 et 2001 les deux concurrents Xilinx et Altera ont franchi une nouvelle étape au niveau de la densité d’intégration en sortant respectivement leurs circuits Virtex et Apex-II dont les capacités maximums avoisinaient les 4 millions de portes logiques équivalentes avec en plus l’introduction de larges bancs de mémoire embarquée. Aujourd’hui, les fréquences de fonctionnement de ces circuits sont de l'ordre de quelques centaines de méga Hertz. 1) Un ASIC est un circuit électronique réalisé sur mesure. Ce sont les circuits les plus performants mais aussi les plus chers et longs à réaliser. Commande d’un MCC via FPGA 4 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN 3. Le langage de programmation VHDL [3][4][5] 3.1. Définition du VHDL [3] Le VHDL (Very high speed - or scale - integrated circuits Hardware Description Language) est utilisé pour la modélisation et la synthèse de circuits numériques. La modélisation permet de simuler le comportement d'un circuit numérique, tandis que la synthèse permet de le programmer (si nécessaire). Lors du développement d'un CPLD ou d'un FPGA, la simulation du comportement de ce dernier est effectuée à l'aide d'un modèle. Celui-ci est déterminé directement par le logiciel programmation (fourni par un constructeur de CPLD) utilisé, à partir de la description VHDL entrée (simulation fonctionnelle) et en fonction du composant cible et de ses temps de propagation (simulation temporelle). Il reste seulement à définir les chronogrammes des signaux d'entrée du composant pour vérifier que le fonctionnement est bien celui souhaité. 3.2. Historique de VHDL [4] Le VHDL a été développé dans les années 80 aux USA et est devenu une norme IEEE (n° 1076) en 1987. Révisée en 1993 pour supprimer quelques ambiguïtés, cette norme est vite devenue un standard en matière d’outils de description de fonctions logiques. Le VHDL est principalement utilisé pour concevoir des ASIC, programmer des composants du type PLD, CPLD, FPGA…, et concevoir des modèles de simulation numérique ou des bancs de test. 3.3. Structure d'un module VHDL (Unité de conception) L’unité de conception (design unit) est le plus petit module compilable séparément. VHDL offre cinq types d’unités de conception : la déclaration d’entité, le corps d’architecture, la déclaration de configuration, la déclaration de paquetage et le corps de paquetage. AN : Module = Entity + Architecture 3.4. Notions de base [3] Ce langage ne fait théoriquement pas de distinction entre majuscules et minuscules. Certains outils de synthèse font cependant une distinction pour quelques cas particuliers (description de l'état haute impédance ‘Z’ – et non ‘z’ - avec le logiciel Max+plus II par exemple). Pour une meilleure lisibilité les mots réservés ont été écrits ici en minuscules et en gras, les noms donnés par l’utilisateur en majuscules. En VHDL les commentaires sont précédés par « -- » et s’arrêtent au retour à la ligne. La structure typique d'une description VHDL est donnée ci-après : Commande d’un MCC via FPGA 5 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN -- déclaration des ressources externes. library NOM_DE_LA_BIBLIOTHEQUE ; use ELEMENT_DE_LA_BIBLIOTHEQUE ; les ressources externes -- description de l’entité avec des entrées et des sorties, caractérisée par des paramètres entity NOM_DE_L’ENTITE is generic (PARAMETRES : « type »:=VALEURS_FACULTATIVES ) ; port ( NOM_DES_ENTREES_SORTIES : « direction » « type ») ; end NOM_DE_L’ENTITE ; -- description de l’architecture à l’intérieure de l’entité ; -- à une entité peut correspondre plusieurs architectures architecture NOM_DE_L’ARCHITECTURE of NOM_DE_L’ENTITE is -- déclaration si nécessaire des objets internes NOM_DES_OBJETS_INTERNES : « type »; -- déclaration si nécessaire des types type NOM_DES_TYPES is (VALEURS_POSSIBLES) ; -- description du fonctionnement begin DESCRIPTION ; end NOM_DE_L’ARCHITECTURE ; l’entité l’architecture les ressources internes de l’architecture Comme on peut le voir, la structure comprend une entité décrivant les entrées sorties, et une architecture associée à l'entité décrivant le fonctionnement. Figure I- 3 : La structure typique d'une description VHDL Commande d’un MCC via FPGA 6 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN Exemple de programme : entity ET is port (E1, E2 : in bit; S : out bit ); end ET; architecture ARCH_ET of ET is begin S <= E1 and E2; end ARCH_ET; A une entité peuvent correspondre plusieurs architectures. De cette manière, il devient possible de modifier la structure interne d'une description sans modifier la vue externe, cette propriété du VHDL devenant très intéressante dès lors que plusieurs description sont imbriquées les unes dans les autres. Les entités et architectures sont des unités de conception, dites respectivement primaires et secondaire. 3.5. Syntaxe On notera au passage la présence de points virgules à la fin de chaque ligne de déclaration et après chaque instruction. Lorsqu'une liste d'entrées, de sorties ou de paramètres est énumérée, la séparation se fait par des virgules. Comme dans la plupart des langages informatique, il est fortement conseillé de se servir des tabulations pour améliorer la lisibilité. Les outils de synthèse proposent en général l'utilisation de couleurs différentes. 3.6. Les instructions port et generic L'instruction port permet de décrire les entrées et sorties. Facultative l'instruction generic permet de spécifier certains paramètres de l'entité, comme par exemple la largeur d'un bus. 3.7. Les directions Elles permettent de préciser les sens des connexions entrantes ou sortantes de l'entité. in : entrée out : sortie inout : entrée-sortie. 3.8. Les objets Les objets sont des ressources internes à une unité de conception, qui n'apparaissent pas comme entrée ou sortie de l'entité. Il existe trois sortes d'objets : signal : le signal représente une connexion interne, déclaré dans une entité ou une architecture. Le signal permet de pallier les limitations des directions inout. variable : la variable est généralement utilisée comme index dans la génération de boucle et n'a habituellement pas de correspondance avec un signal physique. Elle ne peut être déclarée que dans un process ou un sous-programme. Commande d’un MCC via FPGA 7 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN constant : permet une meilleure lisibilité du programme. Un composant définit avec une constante de N bits pourra facilement passer de 8 à 64 bits (grâce à l'instruction generic par exemple). 3.9. Notation des littéraux - bits et caractères : entre apostrophes ; exemple '0'. - chaîne de bits et chaîne de caractères : entre guillemets ; exemple "01110". - nombre décimaux : exemple pour la valeur mille ; 1000, 1_000, 1E3, 1.00E3. - nombre hexadécimaux : entre guillemets précédés de x ; exemple x"1AFF". 3.10. Les types principaux en synthèse La notion de type est très importante en VHDL, chaque entrée, sortie, signal, variable ou constante, est associé à un type. integer : nombre entier pouvant aller de –231 à 231 (suivant les compilateurs), peut être limité entre deux extremums par la déclaration : « integer range MIN to MAX ;» La déclaration d'un entier sans préciser de valeurs limites équivaut donc à créer un bus de 32 bits à l'intérieur du composant cible. bit : deux valeurs possibles : 0 ou 1 bit_vector : un vecteur de bits est un bus déclaré par exemple pour une largeur de N bits par bit_vector(0 to N) ou bien bit_vector(N downto 0). boolean : ce type est utilisé pour les conditions (dans une boucle par exemple) et comprend deux valeurs, true (vrai) ou false (faux). 3.11. Les bibliothèques Ce sont des répertoires -au sens informatique du terme- où se trouvent des fichiers contenant des unités de conception, c'est à dire : - des entités et architectures associée, - des spécifications de paquetage, ainsi que la description du corps associé, - des configurations. Ces ressources n'auront donc pas besoin d'être décrite dans le programme principal. Il suffira d'appeler la bibliothèque avec la syntaxe : libraryNOM_DE_LA_BIBLIOTHEQUE ; Les paquetages : Un paquetage permettra d'utiliser sans avoir à les redécrire essentiellement des objets (signaux, constantes), des types et sous-types, des sous-programmes et des composants. L'appel du paquetage se fait après l'appel de la bibliothèque qui le contient. On indique alors le nom du fichier contenant le paquetage par l'instruction qui suit : use NOM_DE_LA_BIBLIOTHEQQUE . NOM_DU_PAQUETAGE.all ; Commande d’un MCC via FPGA 8 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN Il existe des paquetages prédéfinis fournis avec les outils de synthèse : - le paquetage standard qui contient la déclaration de tous les types prédéfinis de base. - le paquetage std_logic_1164 contenu dans la bibliothèque ieee qui contient entre autre la définition des types std_logic et std_logic_vector. - le paquetage std_logic_arith (très semblable au paquetage numeric_std) de la bibliothèque ieee qui permet des conversions de type (entier vers std_logic et inversement). - les paquetages std_logic_signed et std_logic_unsigned de ieee permettant des opérations arithmétiques signées ou non sur des types std_logic. On rappelle qu’un std_logic_vector sera considéré comme codé en binaire naturel si le paquetage ieee.std_logic_unsigned à été déclaré et comme codé en complément à 2 si le paquetage ieee.std_logic_signed a été déclaré. 3.12. Les opérations dans VHDL [4] L'opération d'affectation <= ---- Affectation Les opérations arithmétiques : + ---- Addition - ---- Subtraction * ---- Multiplication / ---- Divide mod / rem ---- Modulus ** ---- Power Operator (i.e. 2**8 returns 256) Les opérations logiques : Utilisées pour les objets de types Bit, booléen ou tableau uni dimensionnel de ces types. NOT ---- Invert a single-bit signal or each bit in a bus AND ---- AND two single bits or each bit between two buses OR ---- OR two single bits or each bit between two buses XOR ---- XOR two single bits or each bit between two buses XNOR ---- XNOR two single bits or each bit between two buses Figure I- 4 : les différents portes logiques Les opérations de comparaison (les opérateurs relationnels) : NOT ---- Not True AND ---- Both Inputs True OR ---- Either Input True = ---- Inputs Equal ---> sur tous les opérateurs (sauf file) /= ---- Inputs Not Equal ---> sur tous les opérateurs (sauf file) < ---- Less-than Commande d’un MCC via FPGA 9 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN <= > >= ---- Less-than or Equal ---- Greater-than ---- Greater-than or Equal 3.13. Les types manipulés par VHDL [4] Un type (type) est caractérisé par un ensemble de valeurs et un ensemble d’opérations. Il existe quatre classes de types: Les types scalaires (scalar) : entier, réel, énuméré, physique. Les types composites (composite) : tableau, enregistrement. Le type accès (access) : accès (pointeur) à des objets d’un type donné. Le type fichier (file) : fichier, séquence de valeurs d’un type donné. Les types prédéfinis sont : STD_LOGIC --'U','X','0','1','Z','W','L','H','-' STD_LOGIC_VECTOR --Natural Range of STD_LOGIC BOOLEAN --True or False INTEGER --32 or 64 bits NATURAL --Integers >= 0 POSITIVE --Integers > 0 REAL --Floating-point BIT --'0','1' BIT_VECTOR(Natural) --Array of bits CHARACTER --7-bit ASCII STRING(POSITIVE) --Array of charachters TIME --hr, min, sec, ms, us, ns, ps, fs DELAY_LENGTH --Time >= 0 Exemples de types non prédéfinis : -- types entiers: type Byte is range 0 to 255; -- intervalle ascendant type Bit_Index is range 31 downto 0; -- intervalle descendant -- types réels: type Signal_Level is range -15.0 to +15.0; -- intervalle ascendant type Probability is range 0.0 to 1.0; -- intervalle ascendant 3.14. Les constantes Une constante (constant) a par définition une valeur fixe définie une fois pour toute: constant PI: Real := 3.1416; constant INDEX_MAX: Integer := 10*N; -- N doit être déclaré avant constant Delay: Delay_Length := 5 ns; 3.15. Les variables Une variable (variable) est un objet dont la valeur est modifiable par affectation. Une déclaration de variable définit son nom, son type et éventuellement sa valeur initiale: variable count: Natural; -- valeur initiale: count = 0 (= Natural’Left) variable isHigh: Boolean; Commande d’un MCC via FPGA 10 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN -- valeur initiale: isHigh = False (= Boolean’Left) variable currentState: State := Idle; -- initialisation explicite variable Memory: Bit_Matrix(0 to 7, 0 to 1023); 3.16. Les signaux Un signal (signal) est un objet représentant une forme d’onde temporelle logique (une suite discrète de paires temps/valeurs). Les valeurs prises par le signal dépendent du type associé au signal. La déclaration de signal de base définit le nom du signal, son (sous-)type et éventuellement sa valeur initiale: signal nom: (sous-) type [ := valeur-initiale ]; Une déclaration de signal ne peut apparaître que dans le domaine des instructions concurrentes. Un signal ne peut pas être d’un type fichier ou d’un type accès. Exemples de déclarations de signaux: signal S: Bit_Vector(15 downto 0); -- valeur initiale par défaut: (others => ’0’) signal CLK: Bit := ’0’; -- valeur initiale explicite 3.17. Les commentaire en VHDL Les commentaires en langage VHDL commence toujours par ( -- ) Exemple : -- Company: <Company Name> 3.18. Les processus [4] Un processus (process) définit une portion de code dont les instructions sont exécutées en séquence dans l’ordre donné. Chaque processus s’exécute de manière asynchrone par rapport aux autres processus et aux instances de composants. Syntaxe: [ étiquette : ] process [ ( nom-signal { , nom-signal } ) ] [ is ] { déclaration-locale } begin { instruction-séquentielle } end process [ étiquette ] ; La liste optionnelle de signaux entre parenthèses après le mot-clé process définit la liste de sensibilité (sensitivity list) du processus. Un événement sur l’un de ces signaux a pour conséquence une activation du processus et une exécution de ses instructions. Un processus ayant une liste de sensibilité ne peut pas contenir d’instructions wait. Les déclarations locales suivantes sont admises: type, sous-type, constante, variable, fichier, alias, sous-programme (en-tête et corps), clause use. Les variables locales conservent leur valeur d’une activation du processus à une autre. Les instructions séquentielles admises sont: assertion, conditionnelle (if), de sélection (case), de boucle (loop, next, exit), assignation de signal et de variable, de synchronisation (wait), appel de procédure. Commande d’un MCC via FPGA 11 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN 3.19. Les principales caractéristiques du langage VHDL [5] 3.19.1. Un langage s'appliquant à plusieurs niveaux de descriptions Le langage VHDL couvre tous les niveaux partant des portes logiques de base jusqu'aux systèmes complets (plusieurs cartes, chacune comprenant plusieurs circuits). Il s'applique tout aussi bien au niveau structurel qu'au niveau comportemental, en passant par le niveau transferts de registres ou RTL (Register Transfer Logic). La description structurelle de bas niveau : Le circuit est décrit par sa structure, sous forme d’une liste de composants instanciés et des interconnexions les reliant. En fait, c’est l’équivalent littéral d’un schéma représentant l’interconnexion de portes élémentaires issues d'une bibliothèque. La description structurelle de haut niveau : Le circuit est découpé en blocs fonctionnels de haut niveau qui sont reliés entre eux. Il s’agit toujours d’un schéma, mais il représente des composants qui peuvent être écrit en comportemental ou en RTL (mais aussi en structurel bas niveau). On retrouve en général ce type de description dans le design supérieur d’une description hiérarchique (top level design). 3.19.2. Fonctionnement concurrent [5] Le comportement d'un circuit peut être décrit par un ensemble d'actions s'exécutant en parallèle. C'est pourquoi VHDL offre un jeu d'instructions dites concurrentes. Une instruction concurrente est une instruction dont l'exécution est indépendante de son ordre d'apparition dans le code VHDL. Par exemple, prenons le cas d'un simple latch, comme la montre la figure : Figure I- 5 : Schéma d’un exemple pour le fonctionnement concurrent Les deux portes constituant ce latch fonctionnent en parallèle. Une description possible de ce circuit est donnée dans le code suivant (seule l'architecture est donnée). Commande d’un MCC via FPGA 12 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN architecture comportement of VERROU is begin Q <= S nand NQ; NQ <= R nand Q; end comportement; Ces deux instructions s'exécutent en même temps. Elles sont concurrentes ; leur ordre d'écriture n'est pas significatif ; quel que soit l'ordre de ces instructions, la description reste inchangée. 3.19.3. Fonctionnement séquentiel [5] Les instructions concurrentes qui viennent d’être présentées pourraient suffire à définir un langage de description matériel. Cependant, certains circuits sont plus faciles à décrire en utilisant des instructions séquentielles similaires à des instructions de langages classiques de programmation. En VHDL, les instructions séquentielles ne s’utilisent qu’à l’intérieur des processus. Un processus est un groupe délimité d’instructions, doté de trois caractéristiques essentielles : Le processus s’exécute à chaque changement d’état d’un des signaux auxquels il est déclaré sensible. Les instructions du processus s’exécutent séquentiellement. Les modifications apportées aux valeurs de signaux par les instructions prennent effet à la fin du processus. L’exemple de la description suivante montre une architecture (seule) d’un latch D contenant un processus qui est exécuté lors du changement d’état de l’horloge CLK. architecture comportement of basc_D is begin Process (CLK) Begin If ( CLK= ‘1’) then Q <= D; End if ; End process ; end comportement; 3.20. Différences entre un langage de programmation et VHDL [5] VHDL n’est pas un langage de programmation comme le C, c’est un langage de description matériel. Il est important de bien comprendre la différence entre les deux : Un langage de programmation est destiné à être traduit en langage machine puis à être exécuté par un microprocesseur. Commande d’un MCC via FPGA 13 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN Un langage de description matériel comme VHDL décrit une réalité matérielle, c’est-à- dire le fonctionnement d’un système numérique. Il va être traduit (synthétisé) en un ensemble de circuits logiques combinatoires et séquentiels qui vont être implémentés dans un circuit intégré. Il n’y a aucun microprocesseur pour exécuter la description VHDL dans un circuit intégré. 4. Modèle System Generator [6] [7] 4.1. Brève description [6] Dans le cadre de cette recherche, le développement du prototype s'effectue avec le logiciel XSG. Il s'agit d'un toolbox développé par Xilinx pour être intégré dans l'environnement Matlab-Simulink et qui laisse l'usager créer des systèmes hautement parallèles pour FPGA. Les modèles créés sont affichés sous forme de blocs, et peuvent être raccordés aux autres blocs et autres toolbox de MatlabSimulink. Une fois le système complété, le code VHDL généré par l'outil XSG reproduit exactement le comportement observé dans Matlab. Pour le prototypage rapide, le choix de cet outil est facilement explicable. Le système de contrôle devant être vérifié et simulé souvent et rapidement pendant tout le développement, il est beaucoup plus simple d'analyser les résultats avec Matlab qu'avec les outils habituellement associés au VHDL, tel que Modelsim. Aussi, le modèle peut ensuite être couplé à des moteurs virtuels et des simulations en boucle fermée sont réalisables. Quand le prototype fonctionne, le passage vers la plateforme matérielle pour des tests sur le terrain est rapide, ce qui rend la validation du prototype un projet réalisable à court terme. 4.2. Méthode de développement [6] Avec une banque de résultats provenant de la référence établie, le développement des blocs du prototype peut se faire. L'outil XSG est utilisé afin de produire un modèle qui va tout de suite fonctionner sur le matériel une fois achevé et validé. L'avantage d'utiliser XSG pour le prototypage rapide devient plus évident lorsqu'il est nécessaire de tester un bloc achevé. Il suffit de brancher aux entrées les données intermédiaires obtenues de la référence. En simulant, on recueille les données à la sortie pour ensuite les comparer avec les données de la référence. Notons qu'il peut y avoir une certaine erreur, car une précision arbitraire selon le nombre de bits des opérandes est employée. 4.3. Simulink [7] Simulink de MathWorks qui étend MATLAB, est fondée sur le modèle d'un programme de conception et de simulation de haut niveau pour les systèmes embarqués et dynamiques. Avec son environnement graphique et des bibliothèques de blocs, il permet la mise en œuvre, la simulation et le test de manière intuitive des systèmes très simples à des systèmes encore plus complexes. La version MATLAB utilisée dans ce projet est R2011a. Commande d’un MCC via FPGA 14 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN 4.4. Xilinx System Generator [7] System Generator est un outil qui étend Simulink pour la mise en œuvre des algorithmes d’une autre façon de haut niveau, qui peut automatiquement être mis en œuvre dans un FPGA. La version utilisée dans ce travail est (ISE Design Suite 14.2). Figure I-10 montre un aperçu de System Generator (Xilinx) où les différentes parties sont expliquées ci-dessous: 1. Bloc System Generator : Ce jeton doit toujours être dans un system generator. Dans les options de compilation un bitstream ou HDL Netlist peut être créé et l'objectif pour une co-simulation est définie ici. Les options de l’horloge comme l’horloge de l’FPGA et la période du système Simulink sont également mis dans ce bloc. Figure I- 6 : Le bloc System Generator 2. La bibliothèque de Simulink Le bloc ‘Xilinx Blockset’ peut être atteint à partir d’ Ici. Tous les blocs comme par exemple des retards (delays) , additionneurs (adders), registres, etc., sont ici pour être choisi. Figure I- 7 : La bibliothèque de Simulink 3. Le bloc Gateway In La frontière entre les blocs Simulink et les blocs Xilinx. Figure I- 8 : Le bloc Gateway In Commande d’un MCC via FPGA 15 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN 4. Le bloc Gateway Out C’est la frontière extérieure entre les blocs Xilinx et les blocs Simulink. La spécification sur la cartographie de broches d'E / S peut être aussi réalisé dans ce bloc. Figure I- 9 : Le bloc Gateway Out System Generator ( MATLAB –Simulink ) 3 4 1 2 Figure I- 10 : Aperçu de Xilinx System Generator Remarque : Une conception intégrée peut être créé avec les différents blocs dans le bloc Xilinx Blockset. Certains blocs spéciaux méritent une mention pour leur possibilité de mettre en œuvre des blocs créés des fonctions déjà écrit, par exemple ‘VHDL’ ou ‘m-code’ de MATLAB. Une brève introduction sur les deux de ces blocs se trouve ci-dessous : Le bloc Black Box Le bloc Black Box, permet d’importer et de mettre en œuvre une fonction écrit en VHDL ou Verilog dans la conception. Quand on mettre le bloc Black Box dans la conception, vous êtes Commande d’un MCC via FPGA 16 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN questionner à choisir votre fichier HDL comme ajouter dans le code avant l'utilisation. ou . Certainsspéciale additionsdoit être Figure I- 11 : Bloc de Black Box Le bloc MCode Le Bloc MCode, permet de passer les valeurs d'entrée d'une fonction de MALTAB pour l'évaluation dans Xilinx de type point fixe. Les entrées et les sorties de la fonction devient les ports d’entrée et de sortie de bloc. Quand le processus est déclenchée, le m-code, qui est le bloc utilisé est traduit de manière directe en équivalent comportementale VHDL / Verilog. Figure I- 12 : Le boc de Mcode La figure suivant représente un résumé des trois différents approches considéré - Avec pur blocs (additionneurs, des multiplicateurs, registres, etc.), avec la fonction de m-Code comme un bloc de MCODE et comme une Black box créé le code VHDL. function y=triangle(t); T=4 n=length(t) for k=1:n; m=floor(t(k)/T) if t(k)>=m*T&t(k)<=T/2+m*T; y(k)=2-2*(t(k)-m*T) else y(k)=-2+2*(t(k)-2-m*T) end end LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY Gate_OR3 IS PORT (x,y: IN std_logic; F: OUT std_logic); END Gate_OR3; ARCHITECTURE Gate_OR3_beh OF Gate_OR3 IS BEGIN PROCESS(x, y, z) BEGIN F <= x OR y OR z; END PROCESS; END Gate_OR3_beh; Figure I- 13 : Exemple sur le Mcode & Black box Commande d’un MCC via FPGA 17 CHAPITRE I : Prototypage rapide sous FPGA - SYSGEN 5. Conclusion Le circuit programmable de type FPGA est l’élément le plus important dans ce projet. C’est la solution choisie pour la commande des MCC dans notre cas. C’est pourquoi on a étudié profondément ce circuit. Nous avons présenté aussi le langage de programmation VHDL et ses notions de base nécessaires pour programmer un FPGA. A la fin nous avons vu une autre méthode pour faciliter la programmation des FPGA, le modèle System Generator, qui est développé par Xilinx dans l'environnement Matlab-Simulink. Commande d’un MCC via FPGA 18 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs CHAPITRE 2 Commande Des Moteurs à Courant Continu Via Les Hacheurs Commande d’un MCC via FPGA 19 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs 1. Introduction Les moteurs à courant continu sont très utilisés dans les systèmes automatiques, qui nécessitent une régulation précise de la vitesse de rotation. Le principe de la régulation de vitesse consiste à choisir le bon convertisseur, qui est un hacheur, avec sa commande adéquate, la commande MLI. Il y a plusieurs façons de précéder pour varier la vitesse d'un moteur à courant continu. On peut la faire modifier en variant la tension d'alimentation à ses bornes mais dans ce cas une partie importante de l'énergie est consommée par le dispositif d’alimentation. Pour cette raison, on préfère l'alimenter de façon discontinue avec un hacheur et faire ainsi varier la tension moyenne à ses bornes. On parle alors de Modulation par Largeur d'Impulsions (MLI), très utilisée dans le domaine de la régulation de vitesse de rotation d’un moteur à courant continu. 2. La Machine à Courant Continu (MCC) [8] La machine à courant continu est constituée de deux parties : Une partie fixe, le stator, qui crée le champ magnétique ; c'est l'inducteur. Cet inducteur peut-être constitué d'aimants permanents ou d'une bobine alimentée par un courant continu. Une partie mobile, le rotor, qui est l'induit de la machine. Le rotor de la machine est constitué de conducteur et lorsque le rotor tourne, il se crée aux bornes de l'ensemble des conducteurs une tenson induite E. Pour faire fonctionner une machine à courant continu, on peut brancher l'inducteur en série avec l'induit : on parle alors de machine série. Si l'inducteur est alimenté de façon séparée par rapport à l'induit, on parle de machine à excitation indépendante. La machine à courant continu est une machine réversible. Elle peut fonctionner soit en génératrice, soit en moteur. Figure II- 1 : Représentation des deux parties principales de la MCC [9] Commande d’un MCC via FPGA 20 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs 2.1. La Force électromotrice (f.e.m.) E L'inducteur crée le flux magnétique ϕ en Weber [Wb]. Le rotor est composé de N conducteurs et tourne à la vitesse angulaire Ω en [rad/s] On montre que l'expression de la f.e.m. E est : Si on pose alors, ϕΩ (II. 1) Avec : ϕ en [Wb] , Ω en [rad/s], E : f.e.m induite en [V] Si le flux est constant, la f.e.m. induite E est proportionnelle à la vitesse de rotation n soit : Figure II - 2 : Modèle électrique d'une MCC 2.2. Couple électromagnétique Lorsqu'il circule une intensité I dans l'induit, la puissance électromagnétique est Le rotor tournant à la vitesse Ω , il existe un couple électromagnétique tel que Ω On montre alors que l'expression du couple électromagnétique est : (II. 2) c'est-à-dire que le couple électromagnétique est proportionnel à l'intensité qui circule dans l'induit. 2.3. Le moteur à excitation indépendante [8] Modèle électrique L'inducteur est alimenté par une tension continue u et est traversé par le courant continu i (si l'inducteur n'est pas à aimants permanents). L'induit est alimenté par une tension continue U et traversé par une intensité I. Modèle électrique du moteur à excitation indépendante : Pour ce moteur, le flux ϕ est directement proportionnel au courant d'excitation i. Équation de fonctionnement pour l'induit : (II. 3) Figure II- 3 : Modèle électrique du moteur à excitation indépendante Commande d’un MCC via FPGA 21 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Bilan énergétique et rendement Le moteur absorbe la puissance électrique ( Si le moteur est à aimant permanent, u.i = 0 ) Au niveau de l'excitation (l'inducteur), il se crée des pertes par effet Joule Pour l'induit, les pertes par effet Joule sont La puissance électromagnétique Lors d'un essai à vide, les pertes magnétiques ou pertes fer , on peut déterminer les pertes collectives ainsi que les pertes mécaniques soit : qui représentent On définit le couple de pertes par Figure II- 4 : Bilan énergétique du moteur à excitation indépendante La puissance utile disponible sur l'arbre du moteur est : Le rendement du moteur à courant continu est (II. 4) 2.4. Le moteur à excitation série [8] Modèle électrique L'inducteur est placé en série avec l'induit. L'inducteur et l'induit sont donc traversés par la même intensité I. Modèle électrique du moteur à excitation série: Équation de fonctionnement : (II. 5) Figure II- 5 : Modèle électrique du moteur à excitation série Commande d’un MCC via FPGA 22 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Bilan des puissances et rendement Le moteur absorbe la puissance électrique Au niveau de l'excitation (l'inducteur), il se crée des pertes par effet Joule Pour l'induit, les pertes par effet Joule sont La puissance électromagnétique Lors d'un essai à vide, , on peut déterminer les pertes collectives les pertes magnétiques ou pertes fer ainsi que les pertes mécaniques soit : qui représentent On définit le couple de pertes par La puissance utile disponible sur l'arbre du moteur est : Figure II- 6 : Bilan énergétique du moteur à excitation série Le rendement du moteur à courant continu est (II. 6) 2.5. Quelques considérations pour le moteur à courant continu [8] Utilisation des moteurs à courant continu Le principal avantage de ces moteurs, c'est qu'il est très facile de faire varier la vitesse de rotation par modification de la tension d'alimentation U en utilisant des ponts redresseurs commandés ou des hacheurs. Démarrage des moteurs à courant continu Nous avons vu que la f.e.m Or, au démarrage, n = 0 d'où E = 0. Pour un moteur à excitation séparée, (II. 7) Le courant de démarrage et très important. Ce courant est source de détérioration du moteur, on essaie de limiter ce courant soit par adjonction d'une résistance de démarrage qu'on diminue progressivement soit par augmentation progressive de la tension d'induit. Dès que le moteur commence à tourner, et décroît rapidement jusqu'à sa valeur nominale I. Si le moteur doit démarrer en charge avec une charge qui présente un couple résistant l'intensité de démarrage doit être , (II. 8) Commande d’un MCC via FPGA 23 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Remarque importante: Pour démarrer un moteur à excitation indépendante, on doit commence par mettre l'induit sous tension et ensuite seulement mettre l'inducteur sous tension. Si le moteur est à vide, il ne faut jamais couper la tension de l'inducteur avant celle de la tension d'induit au risque de voir l'emballement du moteur. Pour un moteur à excitation série, le moteur doit démarrer en charge. 3. LES HACHEURS [10] Un hacheur permet d’obtenir une tension unidirectionnelle de valeur moyenne réglable à partir d’une source de tension continue. C’est un convertisseur continu-continu (tension Ve continue courant is continu) dont le symbole est : Un hacheur peut être réalisé à l’aide d’interrupteurs électroniques commandables à l’ouverture et à la fermeture tels que les thyristors GTO ou les transistors bipolaires ou à effet de champ à grille isolée. 3.1. Les interrupteurs électroniques [11] Le transistor bipolaire Le transistor bipolaire est un composant électronique semi-conducteur construit généralement dans un bloc de Silicium. Il comporte 3 zones : soit deux zones N et une zone P, il s'agit alors d'un transistor NPN ; soit deux zones P et une zone N, il s'agit alors d'un transistor PNP. 𝑖𝐶 Figure II- 7 : Transistor bipolaire Caractéristique de transfert : Transistor passant = saturé Transistor bloqué 0 Courant et tension sont unidirectionnels positifs. 𝑉𝐶𝐸 Le transistor en commutation est soit bloqué, il se comporte comme un interrupteur ouvert entre les bornes C et E ; soit saturé, il se comporte comme un interrupteur fermé entre les bornes C et E. Commande d’un MCC via FPGA 24 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs L'état du transistor est déterminé par la valeur du courant de base : Etat bloqué : Le transistor est bloqué si le courant de base est nul : = 0. Le courant est nul. La tension est alors imposée par le reste du circuit. Le transistor se comporte comme un interrupteur ouvert entre les bornes C et E. Etat saturé : Le transistor est saturé si le courant de base est supérieur au courant de saturation du transistor (valeur donnée par le constructeur) : Alors la tension est nulle. La valeur de l'intensité du courant de collecteur est imposée par la charge. Le transistor se comporte comme un interrupteur fermé entre les bornes C et E. Conclusion : Le transistor bipolaire est un interrupteur électronique commandable à l'ouverture et à la fermeture : l'utilisateur peut toujours choisir l'état de l'interrupteur et ceci grâce aux courant de base, appelé courant de commande. Il est unidirectionnel : le courant de collecteur ne peut circuler que dans un seul sens. Transistor MOSFET Un transistor à effet de champ (à grille) métal-oxyde est un type de transistor à effet de champ ; on utilise souvent le terme MOSFET, acronyme anglais de metal oxide semiconductor field effect transistor. Comme tous les transistors ou même les tubes à vide, le MOSFET module le courant qui le traverse à l'aide d'un signal appliqué à son électrode d'entrée ou grille. Il trouve ses applications dans les circuits intégrés numériques, en particulier avec la technologie CMOS, ainsi que dans l'électronique de puissance. Les MOSFET se divisent en deux catégories, les MOSFET à déplétion (depletion mode), les MOSFET à inversion (enhancement mode) selon leur mode d'opération. Chaque MOSFET est aussi caractérisé par la polarité de ses porteurs de charges qui détermine s'il est de type P ou N. Figure II- 8 : Transistor MOSFET Commande d’un MCC via FPGA 25 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs GTO Le Thyristor GTO (ou plus simplement GTO), de l'anglais Gate Turn-Off Thyristor, c’est-à-dire thyristor blocable par la gâchette, est un interrupteur électronique utilisé dans les dispositifs de forte puissance de l'électronique de puissance. Les applications usuelles du GTO sont les onduleurs, redresseurs et hacheurs pour la vitesse variable et la conversion d'énergie. Le GTO est un composant électronique dont la mise en conduction et le blocage sont commandés. C'est l'un des interrupteurs commandés de l'électronique de puissance pour les applications concernant les fortes tensions (quelques kV) et les forts courants (quelques kA). Son usage est fonctionnellement similaire à celui d'un transistor utilisé en commutation. Il est d'ailleurs directement en concurrence avec Figure II- 9 : Thyristor GTO l'IGBT pour ces applications. IGBT Le transistor bipolaire à grille isolée (IGBT, de l’anglais Insulated Gate Bipolar Transistor) est un dispositif semi-conducteur de la famille des transistors qui est utilisé comme interrupteur électronique de puissance, principalement dans les montages de l’électronique de puissance. Figure II- 10 : Transistor bipolaire à grille isolée (IGBT) Les caractéristiques de l’IGBT font que dans les années 2000 il s’est largement imposé dans tous les domaines de l’électronique de puissance face aux autres types de composants pour les gammes de tension 600 V à 3 300 V, et qu’il perce dans les tensions supérieures face au GTO, ainsi que dans les tensions inférieures face au MOSFET, bien qu’il soit plus lent. 𝑖𝐷 La diode à jonction La diode à jonction est un composant électronique semiconducteur construit généralement dans un bloc de Silicium. Elle comporte 2 zones : une zone P, l'anode et une zone N, la cathode. Diode passante Diode bloquée 0 𝑉𝐷 La diode est passante lorsque le reste du circuit tend à imposer une tension positive aux bornes de la diode (tension directe). Elle se comporte comme un interrupteur électronique fermé idéal ( = 0). Commande d’un MCC via FPGA 26 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs La diode est bloquée lorsque le reste du circuit impose une tension négative aux bornes de la diode (tension inverse), le courant dans la diode est alors nul. Elle se comporte comme un interrupteur ouvert. Conclusion : L'état de la diode dépend du reste du circuit : la diode n'est pas un interrupteur commandable. La diode est unidirectionnelle : le sens positif de circulation du courant ne peut être que celui fléché. 3.2. Hacheur série (abaisseur) [11] Principe de fonctionnement Il est appelé aussi abaisseur de tension, dévolteur, Buck converter. 3.2..1. Schéma de principe dans le cas d'une charge résistive C'est par exemple le mode d'alimentation d'un four électrique. L’interrupteur H est un interrupteur commandable à l'ouverture et à la fermeture. (II. 9) (II. 10) (II. 11) 3.2..2. Le rapport cyclique Figure II- 11 : Schéma d'un Hacheur abaisseur Le hacheur est commandé périodiquement. On appelle T période de hachage et f fréquence de hachage. On appelle la durée de fermeture de l'interrupteur sur une période et l'interrupteur sur une période. On a évidemment : la durée d'ouverture de Le rapport cyclique α est définit comme le rapport de la durée de fermeture et de la période de hachage : , le rapport cyclique est compris entre 0 et 1 : 0 ≤ α ≤ 1 3.2..3. Valeur moyenne de la tension aux bornes de la charge La tension aux bornes de la charge est hachée, d’où le nom du montage. On applique la méthode des aires : Où : A est l'aire de la zone hachurée : la valeur moyenne: (II. 12) Figure II- 12 : Oscillogramme de la tension aux bornes de la charge Commande d’un MCC via FPGA 27 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Le rapport cyclique est toujours inférieur à 1, de ce fait la valeur moyenne de la tension aux bornes de la charge est toujours inférieure à la valeur de la tension de source. Ce hacheur est aussi appelé hacheur dévolteur ou buck converter (pour les pays anglo-saxons). Etude du hacheur série alimentant un moteur à courant continu Pour faire varier la vitesse de rotation d'un moteur à courant continu, il faut faire varier la valeur de sa tension d'alimentation. Un moteur à courant continu doit être alimenté par un courant continu. En effet, le couple électromagnétique est proportionnel au courant ( Tem = K.Φ.I ), si le courant en haché, le couple électromagnétique aussi ce qui est inacceptable car cela cause des vibrations au moteur et une usure prématurée. Pour éviter cela, il convient de « lisser » le courant dans le moteur : on rajoute en série avec le moteur une inductance dite de « lissage ». Figure II- 13 : Schéma d’un hacheur série alimentant un MCC Chronogrammes et analyse du fonctionnement [10] H fermé H ouver (II. 13) Figure II- 14 : Oscillogramme du courant d’un hacheur série Ondulation du courant : Le courant dans la charge varie entre Imin et Imax (II. 14) Commande d’un MCC via FPGA 28 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs 3.3. Hacheur parallèle (Elévateur) [11] Définition Un convertisseur Boost, ou hacheur parallèle, est un convertisseur statique qui convertit une tension continue en une autre tension continue de plus forte valeur. Figure II- 15 : Schéma d’un hacheur élévateur (boost) Analyse du fonctionnement En première approximation, on suppose que la tension aux bornes de la charge, lissée par le condensateur C. , est idéalement Phases de fonctionnement : Séquence 1 : A l’instant t = 0, on amorce l’interrupteur K. La diode D est bloquée, donc l’interrupteur conduit seul : = 0 (hypothèse d’un interrupteur parfait).On obtient le schéma équivalent : Figure II- 16 : Schéma d’un Hacheur Boost quand K conduit La loi des mailles implique Le courant augmente : – Donc : (II. 15) La loi des mailles implique ce qui confirme que la diode est bloquée tant que l’interrupteur K est passant. Pour l’inductance L, les grandeurs électriques sont telles que : Figure II- 17 : Evolution de courant de l’inductance L (séquence 1) Commande d’un MCC via FPGA 29 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Lors de cette phase de fonctionnement, l’inductance emmagasine de l’énergie électromagnétique : phase d’accumulation inductive. On remarque immédiatement que cette phase de fonctionnement interdit au rapport cyclique de prendre la valeur 1, sinon, le courant de source croîtrait de manière infinie. Séquence de commutation : A l’instant , la commande impose le blocage de l’interrupteur K. Le courant dans l’inductance est alors maximal : ( ) Le blocage de l’interrupteur implique l’interruption brutale du courant dans l’inductance aux bornes de laquelle apparaît une surtension telle que : Dès que la diode s’amorce et le courant commute de l’interrupteur K vers la diode. A la fin de la séquence de commutation, la diode conduit seule et ( ) Séquence 2 : A l'instant , la diode conduit seule et ( ) ; Figure II- 18 : Schéma d’un Hacheur Boost quand D conduit La loi des mailles implique Le courant diminue : , Donc : ( ) Pour l’inductance L, les grandeurs électriques sont telles que : Figure II- 19 : Evolution de courant de l’inductance L (séquence 2) Lors de cette phase de fonctionnement, l’inductance restitue l’énergie électromagnétique préalablement stockée. Remarques : La valeur du courant en fin de séquence 2 est minimale : Lors de la séquence 2, l’inductance doit restituer l’énergie stockée lors de la séquence 1. Commande d’un MCC via FPGA 30 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Ceci implique que la tension à ses bornes est nécessairement négative lors de cette séquence : – donc , il s’agit bien d’un hacheur survolteur. Séquence de commutation : A l’instant , on amorce l’interrupteur K alors que La diode D et l’interrupteur K sont amorcés ensemble, cela provoque un court circuit du condensateur de sortie : Lorsque , la diode se bloque, le transistor conduit seul, on retrouve alors la séquence 1. Figure II- 20 : Hacheur Boost dans la séquence de commutation Observation des oscillogrammes Valeur moyenne de la tension aux bornes de la charge : , Comme , on retrouve que : le hacheur est bien survolteur. Ondulation du courant dans l'inductance , Si l’on suppose le courant de forme triangulaire alors : Pendant le temps de fermeture, de l’interrupteur K : (II. 16) (II. 17) Commande d’un MCC via FPGA 31 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Donc l’ondulation du courant, vérifie la relation suivante : Donc (II. 18) On remarque évidemment que plus l’inductance est grande, plus l’ondulation du courant est faible. Ondulation de tension aux bornes de la charge ∫ La deuxième relation implique que, si est périodique, et , On en déduit que : Pendant le temps de fermeture, du transistor : donc ; (II. 19) 3.4. Hacheur réversible [11] Les structures que nous avons vu précédents (Hacheur série ou Parallele) ne sont pas réversibles, ni en tension, ni en courant. L'énergie va donc toujours de la source vers la charge. Il est possible de modifier ces dispositifs pour inverser le sens de parcours de l'énergie. Ainsi, une source peut devenir une charge et inversement. Ce type de comportement se rencontre usuellement dans les systèmes électriques. Ainsi, un moteur en sortie d'un hacheur représente une charge. Cependant, si on veut réaliser un freinage, le moteur va devenir génératrice, ce qui va entraîner un renvoi d'énergie à la source. Hacheur réversible en courant Il existe deux modes de fonctionnements : soit le transfert de l’énergie s’effectue de la source vers la charge alors la machine à courant continu fonctionne en moteur. soit le transfert de l’énergie s’effectue de la charge vers la source alors la machine à courant continu fonctionne en génératrice. Il s’agit d’une phase de freinage de la MCC. Figure II- 21 : Hacheur réversible en courant Figure II- 22 : Les 02 modes de fonctionnements d’un Hacheur réversible en courant. Commande d’un MCC via FPGA 32 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Hacheur réversible en tension Lors de la première phase de fonctionnement, dans l'intervalle de temps [0 , αT] : T1 et T2 sont fermés D1 et D2 ouvertes. Uc = +E. Figure II- 23 : Hacheur réversible en tension Lors de la seconde phase de fonctionnement, sur l'intervalle de temps [αT , T],T1 et T2 sont ouvertes et D1, D2 sont fermés. Uc = -E. (II. 20) 3.5. Hacheur en Pont ou 4 quadrants [11] Ce hacheur est à la fois réversible en courant et en tension. Il permet d’alimenter un moteur à courant continu et de le faire fonctionner dans les 4 quadrants du plan couple-vitesse, c’est-à-dire de la faire tourner dans les deux sens de rotation et autoriser la récupération d’énergie lors des phases de freinage. Schéma du montage Figure II- 24 : Schéma d'un Hacheur 4 quadrants Le montage est constitué d’une source de tension continue E réversible en courant, de l’induit d’une machine à courant continu (MCC) + son inductance de lissage L et de 4 interrupteurs électroniques K1, K2, K3, K4 commandés à l’ouverture et à la fermeture et bidirectionnels en courant. La machine à courant continu est susceptible de fonctionner en moteur, le transfert d’énergie s’effectue alors de la source E vers la MCC, ou en génératrice, le transfert d’énergie s’effectue alors de la MCC vers la source E. Les interrupteurs sont constitués d’un transistor ou d’un IGBT + son circuit de commande, et d’une diode branché en antiparallèle qui permet d’assurer la possibilité du retour du courant. Commande d’un MCC via FPGA 33 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Les 04 quadrants Les 04 quadrants de fonctionnement de la machine à courant continu dans le plan ou sont donnés sur la figure cicontre. Figure II- 25 : Les 4 quadrants de fonctionnement de la machine à courant continu Quadrant 1 : la machine tourne en marche avant et fonctionne en moteur. Quadrant 2 : la machine tourne en marche avant et fonctionne en génératrice. Quadrant 3 : la machine tourne en marche arrière et fonctionne en moteur. Quadrant 4 : la machine tourne en marche arrière et fonctionne en génératrice. Commande continue Ce mode de commande est le plus souvent utilisé avec ce type de hacheur. De 0 à αT les interrupteurs K1 et K3 sont fermés alors que K2 et K4 sont ouverts ; De αT à T les interrupteurs K2 et K4 sont fermés alors que K1 et K3 sont ouverts. Avantages Inversion rapide de la tension et du courant. Pas besoin de détection du signe du courant. Inconvénients 2 fois plus de commutations par période. Variation de la tension de sortie deux fois plus grande ce qui augmente l’ondulation du courant de sortie. Commande d’un MCC via FPGA 34 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Analyse du fonctionnement en commande continue Pour 0 ≤ t < αT, on commande la fermeture de K1 et K3 donc Si , le courant circule par T1 et T3. Si , le courant circule par D1 et D3. Pour Si Si : , on commande la fermeture de K1 et K3 donc , le courant circule par D2 et D4. , le courant circule par T2 et T4. : Valeur moyenne de la tension aux bornes de la charge La méthode des aires : (II. 21) Cette tension est donc réglable de – E à + E Chronogrammes Chronogrammes pour et la machine à courant continu fonctionnant en moteur : quadrant 1 Commande d’un MCC via FPGA 35 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Remarque : pour α < ½ la machine à courant continu fonctionne en moteur : quadrant 3 Fonctionnement dans les 4 quadrants La tension aux bornes de la charge vérifie la relation : Or donc : De plus Ω et On en déduit que la vitesse de rotation est donnée par la relation : Ω (II. 22) 4. Structure de commande Circuit de commande Circuit de puissance Hacheur Machine à courant continu MCC Pour faire varier la vitesse d'un moteur on peut faire varier la tension d'alimentation à ses bornes mais dans ce cas une partie importante de l'énergie est consommée par le dispositif d’alimentation, on préfère l'alimenter de façon discontinue avec un hacheur et faire ainsi varier la tension moyenne à ses bornes. On parle alors de Modulation par Largeur d'Impulsions (MLI), ou Pulse Width Modulation (PWM). 4.1. Génération d'une MLI (PWM) Une Modulation à Largeur d'Impulsion est un signal à période constante mais à rapport cyclique réglable. La MLI (ou PWM) est utilisée dans la famille des variateurs de fréquence : les cycloconvertisseurs, les onduleurs, les redresseurs et les hacheurs. Son application dans les variateurs de vitesse de moteur à courant continu ou dans la commande de chauffage est très courante. Le variateur de fréquence étant très utilisé dans l'industrie, l'étude des MLI devient très importante. Commande d’un MCC via FPGA 36 CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs 4.2. Principe de la commande MLI [12] Le Principe de base de la Modulation de la Largeur d’impulsion MLI est fondé sur le découpage d’une pleine onde rectangulaire. Ainsi, la tension de sortie est formée par une succession de créneau d’amplitude égale à la tension continue d’alimentation et de largeur variable. La technique la plus répondue pour la production d’un signal MLI est de comparer entre deux signaux : Le premier, appelé signal de référence, est un signal continue Le second, appelé signal de la porteuse, définit la cadence de la commutation des interrupteurs statiques du convertisseur. C’est un signal de haute fréquence par rapport au signal de référence ; L’intersection de ces signaux donne les instants de commutation des interrupteurs. Figure II- 26 : Un signal MLI (PWM) 5. Conclusion Nous avons présenté dans ce chapitre des généralités sur la machine à courant continu, et on peut recenser deux types d’excitation très répandus dans les utilisations des MCC: la machine à excitation indépendante et la machine à excitation série. En même temps, on a parlé des convertisseurs continu/continu (les hacheurs) et ses différentes types utilisés pour commander la vitesse de la MCC : abaisseur (buck), élévateur (boost), réversible en courant et en tension, et enfin l’hacheur en pont (04 quadrant). A la fin nous avons vu aussi la stratégie de commande en utilisant la modulation à largeur d'impulsion (MLI) ou Pulse Width Modulation (PWM). Commande d’un MCC via FPGA 37 CHAPITRE III : Implémentation et résultats CHAPITRE 3 Implémentation et résultats Commande d’un MCC via FPGA 38 CHAPITRE III : Implémentation et résultats 1. Introduction Ce chapitre est réservé à la présentation des aspects pratiques de notre application. Commençant par la description du banc d’essais, jusqu’aux résultats pratiques. Dans la première partie, on présente une description détaillée de la partie matérielle utilisée (moteur à courant continu, la carte FPGA Altera DE2, la carte DSPace…). Ensuite, dans la deuxième partie, on présente les deux solutions (Simulink et VHDL-Sysgen) pour générer le signal PWM sous les deux cartes ( Altera DE2 et DSPace 1104). A la fin, on fait une comparaison entre les différents résultats obtenus par les deux cartes. 2. Cachier des charges Il s’agit de la commande en vitesse d’un MCC via un hacheur un quadrant (hacheur élévateur). L’implémentation de la commande est réalisée sous deux plateformes différentes : DSPace 1104 et FPGA Altera DE2. 3. Parite matérielle 3.1. Présentation du banc d’essai Notre banc d’essai est composé d’une machine à courant continu, d’un capteur de vitesse (encodeur incrémental), d’un hacheur un quadrant (SEMIKRON), de deux inductances, d’une alimentation variable, d’une carte Dspace 1104, et d’une carte FPGA Altera DE2. L’alimentation d’inducteur Le moteur à courant continu Capteur de courant L’alimentation d’induit Encodeur de vitesse Bobine de lissage Figure III- 1 : Banc d’essai Commande d’un MCC via FPGA 39 CHAPITRE III : Implémentation et résultats 3.2. Schéma bloc global Alimentation variable Hacheur Boost Alimentation d’inducteur Capteur de courant induit Inductance de lissage Hacheur Boost Altera Cyclone II Ou DSPAce 1104 Circuit de commande MCC inducteur Inductance de lissage Encodeur de vitesse Figure III- 2 : Schéma bloc global La carte Altera DE2 générer le signal de commande PWM qui entrée dans le ciruit de commande (opto-coupleur + Driver) pour assuré un isolation galvanique (isolation électrique) et augmenter le signal de commande puis envoyer vers l’IGBT de l’hacheur Boost. En met deux inductances avant l’entré de l’hacheur et aprés la sortie de l’induit pour lisser le courant ; on ajoute aussi un capteur de courant en série avec l’induit et un encodeur de vitesse pour mésurer la vitesse de rotation du MCC. 3.3. Les composants a) Les alimentations Figure III- 3 : Alimentation d’induit Figure III- 4 : Alimentation Hacheur Commande d’un MCC via FPGA 40 CHAPITRE III : Implémentation et résultats Figure III- 3 : Alimenation stabilisé pour alimenter l’optocoupleur et le Driver b) Les inductances Figure III- 4 : Inductance de lissage c) Capteur de vitesse (Encodeur Incrémental) Figure III- 5 : Encodeur de vitesse Commande d’un MCC via FPGA 41 CHAPITRE III : Implémentation et résultats d) L’oscilloscope Figure III- 6 : Oscilloscope de type Tektronix TDS 1002C-EDU e) L’ Hacheur un quadrant – Elévateur [13][14] La carte Altera DE2 générer le signal de commande PWM qui entrée dans un optocoupleur pour assuré une isolation galvanique (isolation électrique) entre la carte FPGA et le circuit de commande, Le Driver augmente le signal de commande et envoyer vers les IGBTs. Remarque : Les pins de la carte Altera DE2 fournir une tension de 3.3Volts. Pour commander un IGBT, nous nécessitons une tension de 15 Volts. Donc, On ajoute un Driver pour amplifier le signal PWM qui les pins d’Altera envoyer de 3.3V à 15V. L’hacheur fait la conversion DC/DC pour faire varier la vitesse de la MCC. Figure III- 7 : Schéma d’un hacheur élevateur (boost) Commande d’un MCC via FPGA 42 CHAPITRE III : Implémentation et résultats Figure III- 8 : Hacheur Boost SEMIKRON Alimentation 15V dc Pour l’opto-coupleur Alimentation d’Hacheur boost +15V DC L’entré du signal PWM Les bornes de l’inductance bornes sortie vers l’induit Diode (+) IN (+) OUT Opto-coupleur Radiateur IGBT GND (-) IN (-) OUT Figure III- 9 : Hacheur Boost réalisé localement (front de la carte) Figure III- 10 : Hacheur Boost réalisé localement ( l'arrière de la carte) Commande d’un MCC via FPGA 43 CHAPITRE III : Implémentation et résultats f) MCC les caractéristiques de moteur à courant continu : P = 1000 W ; la puissance du moteur. U = 220 V ; la tension d’induit. I = 5.7 A ; le courant d’induit. Uexc = 220 V ; la tension d’inducteur. Iexc = 0.32 A ; le courant d’inducteur. n = 3000 RPM (Round Per Minute) , la vitesse en tr/min. Figure III- 13a : La machine à courant continu g) Figure III- 11b : les caractéristiques du MCC La carte DSPace 1104 [15] La DS1104 est une carte installée dans le PC, associée à deux logiciels: le premier, Matlab/Simulink qui permet sa programmation à l’aide des librairies Simulink; le second, Control Desk, qui permet l’envoi des commandes et la génération de l’interface pour la visualisation en temps réel des différents signaux. La carte dispose d'un processeur principal MPC8240, avec un cœur PowerPC 603e, avec une horloge interne de 250 MHz et une capacité mémoire de 8 Mo en Flash et de 32 Mo en SDRAM. Elle dispose également de : 8 convertisseurs analogiques numériques (ANC) (4 en 16 bits, 4 en 12 bits), 8 convertisseurs numériques analogiques de 16 bits pouvant délivrer une tension +/-10V, 2 codeurs incrémentaux, 20 entrées sorties numériques, d’un DSP esclave (TMS320F240) 3 timers (32 bits) pouvant fonctionner de manière indépendante. d’une liaison série. Figure III- 14 : la carte DSPace Commande d’un MCC via FPGA 44 CHAPITRE III : Implémentation et résultats Figure III- 15 : Control panel h) Carte FPGA – Altera DE2 [16] La carte dont on dispose dans le laboratoire de la faculté est l’ALTÈRA CYCLONE II. Elle utilise un gros FPGA (33.216 LE) comme cœur et dispose de mémoire (SRAM, SDRAM et Flash), de convertisseurs audio, vidéo et TV, ainsi que d'interfaces IrDA, Ethernet et USB ; cette carte est munie d'afficheurs LED et LCD et d'un grand nombre de boutons poussoirs et des interrupteurs. Figure III- 16 : Diagramme de bloc de la carte ALTERA DE2 Cette carte dispose des éléments suivants : Un FPGA Altera Cyclone II 2C35. Un circuit de mémoire Flash série Altera EPCS16, cette mémoire permet de stocker de manière nonvolatile la configuration du FPGA. Horloges : Oscillateurs 27 et 50 MHz et entrée externe (SMA). Une interface USB-Blaster pour la programmation. Commande d’un MCC via FPGA 45 CHAPITRE III : Implémentation et résultats Les mémoires : 512-Kbyte de SRAM, 8-Mbyte de SDRAM, 4-Mbyte de mémoire Flash. Un connecteur SD Card. 4 boutons poussoirs. 18 interrupteurs. 18 LEDs utilisateur rouges , 9 LEDs utilisateur vertes. 8 Affaicheur 7-segment. Un CODEC 24-bit CD-quality avec jacks entrée ligne, sortie ligne et microphone-in Un CNA VGA (10-bit high-speed triple DACs) avec connecteur VGA-out Un décodeur TV (NTSC/PAL) avec connecteur TV-in Un contrôleur 10/100 Ethernet avec connecteur Un contrôleur USB Hôte/Esclave avec connecteurs USB type A et type B Un E/R RS-232 avec connecteur 9-broches Un connecteur PS/2 souris/clavier Un E/R IrDA 2 connecteurs d’extension 40-broches avec diodes de protection Figure III- 17: La carte Altera DE2 Figure III- 18 : La carte Altera Cyclone II EP2C35F672C6 Commande d’un MCC via FPGA 46 CHAPITRE III : Implémentation et résultats 4. Partie logicielle 4.1. Génération de la PWM sous Matlab/simulink RTI Data 1000 In1 fréquence d'hachage In2 1 cte1 PWM Figure III- 19 : Modèle simulink pour générer PWM 1 In1 10 K Ts z-1 Gain3 rem(u(1),u(2)) boolean Bad Link Data Type Conversion DS1104BIT_OUT_C12 2*pi Relay Fcn 2*pi 2 2*pi In2 Gain1 Figure III- 20 : Le bloc PWM 4.2. Solution sous FPGA pour Générer PWM a) Génération PWM avec VHDL [17] Le code VHDL permettant la génération de la PWM est le suivant : Partie 1 : -- PFE COMMANDE D'UN MCC VIA FPGA -- objectif: un signal PWM(MLI)! --------------------------------------- clk fpga Altera Cyclone II = 50 MHz -- T=1/clk = 20ns library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity pwm_dc is port ( clk : in std_logic; reset : in std_logic; btn1 : in std_logic; btn2 : in std_logic; pwm : out std_logic ); end pwm_dc; --l’horloge de la carte FPGA --bouton pour remettre le programme à zéro. --bouton pour diminuer le rapport cyclique (alpha) --bouton pour augmenter le rapport cyclique (alpha) -- **la commande MLI (PWM)** Commande d’un MCC via FPGA 47 CHAPITRE III : Implémentation et résultats architecture Behavioral of pwm_dc is constant period : integer:=50000; constant alpha_max : integer:=45000; constant alpha_min : integer:=5000; constant alpha_in : integer:=10; signal signal signal signal -- 50000*20ns=1ms /la pré-division de l’horloge /fréq.d’hachage -- 45000*20ns = 0.9 ms -- 5000*20ns = 0.1 ms --10*20ns = 0.0002 ms -- Le pas d’augmentation ou de diminution du rapport cyclique pwm_reg, pwm_next : std_logic; alpha, alpha_next : integer := 0; counter, counter_next : integer := 0; --variables d’aides pour le calcul ou pour la mémorisation. tick : std_logic; -- un signal sous forme d’impulsion de période 50000*20ns=1ms Cette première partie du programme contient l’entité où sont déclarées les entrées et sorties du programme : : Les entrées : Clk : l’horloge de la carte ALTÈRA qui est de 20 ns. Reset : bouton pour remettre le programme à zéro. btn1, btn2 : boutons pour augmenter et diminuer le rapport cyclique. pwm : la commande MLI (PWM) Les variables internes : period : constante le long du programme pour la pré-division de l’horloge de notre programme. alpha_max, alpha_min : La valeur maximum et minimum du rapport cyclique et qui restent aussi constantes le long du programme. alpha_in : Le pas d’augmentation ou de diminution du rapport cyclique par l’appuie les boutons appropriés. pwm_reg, pwm_next, alpha, alpha_next, counter, counter_next : variables d’aides pour le calcul ou pour la mémorisation. Tick : un signal sous forme d’impulsion de période 50000*20ns = 1 ms . Partie 2 : -- la pré-division de l’horloge pour avoir un signal PWM de période 1ms -----------------------------------------------------------------------------------------------begin process(clk,reset) begin if (reset='1') then pwm_reg <= '0'; counter <= 0; alpha <= 0; elsif (clk='1' and clk' event) then pwm_reg <= pwm_next; counter <= counter_next; alpha <= alpha_next; end if; Commande d’un MCC via FPGA 48 CHAPITRE III : Implémentation et résultats end process; counter_next <= 0 when counter = period else counter+1; tick <= '1' when counter = 0 else '0'; La deuxième partie du programme consiste à la pré-division de l’horloge pour avoir un signal PWM de période 1ms, au lieu de 20 ns. Partie 3 : -- la modification du rapport cyclique (alpha) du signal PWM ---------------------------------------------------------------------------------process(btn1,btn2,tick,alpha) begin alpha_next <= alpha; if (tick = '1') then if (btn1 = '0') and (alpha > alpha_min) then alpha_next <= alpha - alpha_in; elsif (btn2 = '0') and (alpha < alpha_max) then alpha_next <= alpha + alpha_in; end if; end if; end process; pwm <= pwm_reg; pwm_next <= '1' when counter < alpha else '0'; end Behavioral; --********** ************* THE END ***************************** La troisième partie du programme est consacrée à la modification du rapport cyclique du signal PWM, en appuyant sur les boutons btn1,btn2 pour augmenter et diminuer le rapport cyclique. Figure III- 12 : Schéma RTL du signal PWM Commande d’un MCC via FPGA 49 CHAPITRE III : Implémentation et résultats b) Génération PWM avec SYSGEN 0.7*256 Sy stem Generator signal de référence (signal continu) In Gateway In a ab b Out Gateway Out PWM Relational ++ signal de la porteuse (sawtooth) Out Gateway Out2 comparaison Figure III- 22 : Génération PWM avec System generator Pour déterminer les instants de fermeture et d'ouverture des interrupteurs, on utilise la technique (MLI), que consiste à comparer le signal de référence (modulante) de forme continu, à un signal triangulaire (porteuse). Fréquence d'horloge : elle dépend de type de carte FPGA ; dans notre cas la carte Alera DE2 utilisé : Fréquence avec prédiviseur (Prescale):On utilise : Timer (Compteur ): La résolution du timer dépend du timer choisi : On utilise 8 bits (soit ) Valeur de débordement : fixé en fonction du rapport cyclique souhaité Exemple : valeur = 192 donc rapport cyclique = (192/256)=0.75=75% Figure III- 23 : Illustration Comment programmer le PWM. Commande d’un MCC via FPGA 50 CHAPITRE III : Implémentation et résultats 5. Résultats 5.1. Résultats Avec DSPace Ci-dessous les résultats obtenus concernant la commande du MCC sous l’environnement Matlab/Simulink/Dspace a) L’allure des courants d’induit et inducteur avec les rapports cycliques =0.3 et =0.7 Figure III- 24 : L'allure sur oscilloscope du courant d’induit avec (alpha = 0.3) Figure III- 25 : L'allure sur oscilloscope du courant d’induit avec (alpha = 0.7) 3 2.5 2 1.5 1 0.5 0 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4 x 10 Figure III- 26 : L'allure sur control desk du courant d’induit avec (alpha = 0.7) 1 0.5 0 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4 4 x 10 Figure III- 27 : L'allure sur Control Desk du courant d’induit avec (alpha = 0.3) Commande d’un MCC via FPGA 51 CHAPITRE III : Implémentation et résultats b) L’allure de la vitesse avec les rapports cycliques =0.3 et =0.7 2000 1800 1600 1400 1200 1000 800 0 0.5 1 1.5 2 2.5 3 3.5 4 4 Figure III- 28 : L'allure de vitesse du MCC (tour/min) _ (alpha = 0.7) La Vitesse environ 1920 tr/mn x 10 2000 1800 1600 1400 1200 1000 800 0 0.5 1 1.5 2 2.5 3 3.5 4 4 Figure III- 29 : L'allure de vitesse du MCC (tour/min) _ (alpha = 0.3) La Vitesse environ 980 tr/mn x 10 5.2. Résultat Avec FPGA Ci-dessous les résultats obtenus concernant la commande du MCC sous l’environnement QuartusII/FPGA. a) Allure du signal PWM (MLI) E (Tension d’alimentation) (V) 60V Alpha 0.3 0.7 85.7 200.0 Uch_théorique (V) 104 205 Uch_mésuré (V) Tableau III- 1 : les résultats obtenu avec VHDL_FPGA Commande d’un MCC via FPGA 52 CHAPITRE III : Implémentation et résultats Tension d’alimentation E = E% × Esource E = 26% × 230V E = 60V Uch quand (Alpha = 0.3) Uch quand (Alpha = 0.7) Figure III- 30a : Signal MLI (PWM) avec (alpha = 0.3) Figure III- 30b : Signal MLI (PWM) avec (alpha = 0.7) b) L’allure des courants d’induit et inducteur avec les rapports cycliques =0.3 et =0.7 3 2.5 2 1.5 1 0.5 0 -0.5 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 Figure III- 31 : L'allure du courant d’induit avec (alpha = 0.3) 2 4 x 10 Commande d’un MCC via FPGA 53 CHAPITRE III : Implémentation et résultats 4 3.5 3 2.5 2 1.5 1 0.5 0 -0.5 -1 -1.5 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 4 x 10 Figure III- 32 : L'allure du courant d’induit avec (alpha = 0.7) c) L’allure de la vitesse avec les rapports cycliques =0.3 et =0.7 2000 1800 1600 1400 1200 1000 800 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 4 x 10 Figure III- 33 : L'allure de vitesse du MCC (tour/min) _ (alpha = 0.3) La Vitesse environ 1358 tr/mn 3000 2500 2000 1500 1000 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 4 Figure III- 34 : L'allure de vitesse du MCC (tour/min) _ (alpha = 0.7) La Vitesse environ 2800 tr/mn x 10 Commande d’un MCC via FPGA 54 CHAPITRE III : Implémentation et résultats 5.3. Comparaison Le tableau III- 2 représente une comparaison sur l’ondulation de courant d’induit Δia entre la carte Altera Cyclone II et la carte DSPace 1104. Ces valeurs sont prises sur les courbes précédentes (Figure III-26 & 27) (Figure III-31 & 32) Ondulation de Courant d’induit Δia (A) Alpha = 0.3 Alpha = 0.7 Altera Cyclone II 0.4 A 0.4 A DSPace 1104 0.4 A 0.5 A Tableau III- 2 : l’ondulation de courant d’induit Δia dans les 02 cartes On observe que l’ondulation du courant d’induit est presque la même avec les deux cartes, donc il n’y pas de différence pour la commande d’un MCC que ce soit par la carte Altera ou bien par la carte DSPace. Le tableau III- 3 représente une comparaison sur la vitesse de rotation Ω entre celle obtenue par la carte Altera Cyclone II et celle obtenue par la carte DSPace 1104. Ces valeurs sont prises sur les courbes précédentes (Figure III-28 & 29) (Figure III-33 & 34) La vitesse Ω (tr/mn) Alpha = 0.3 Alpha = 0.7 Altera Cyclone II 1385 2800 DSPace 1104 980 1920 Tableau III- 3 : La vitesse de rotation Ω du MCC VIA les 02 cartes Dans cette comparaison, on voit une nette différence entre les résultats obtenus par les deux cartes. La différence revient qu’au niveau de la carte Dspace, il ya un gain multiplié par Alpha. Par manque de temps, on n’a pas pu vérifier cette anomalie. 6. Conclusion Dans ce chapitre nous avons présentés deux solutions pour la génération du signal PWM afin de commander la variation de vitesse d’un MCC via un hacheur Boost. La première a travers un carte Dspace et la deuxième via une carte FPGA. Des résultats expérimentaux ont été exposés afin de valider nos deux solutions. Commande d’un MCC via FPGA 55 Conclusion et perspectives CONCLUSION ET PERSPECTIVES Ce travail a été pour nous, le premier pas vers un monde nouveau et complexe, mais très intéressant notre recherche bibliographique dans les domaines de l’électronique, de l’électrotechnique et de l’informatique tel que ‘les interrupteurs électroniques, les hacheurs, les machines à courant continu et la programmation vhdl ’, nous a permis d’enrichir nos connaissances et de développer notre base théorique. Dans le cadre de la préparation du Diplôme de Master en Electrotechnique, Ce travail vise à présenter une étude théorique et expérimentale. Il s’agit de la programmation d’une commande MLI numérique destinée à varier la vitesse d’un moteur à courant continu à travers un hacheur élévateur. Pour cela, il a été demandé de suivre un cahier de charge qui consiste à fournir une onde MLI par deux outils de programmation (Matlab/Simulink) et (VHDL-Sysgen). Durant l’élaboration de ce travail, notre expertise s’est renforcé dans : Réalisation d’un Hacheur un quadrant Boost Programmation de la MLI via Simulink, VHDL, et SYSGEN Perspectives Réalisation d’un hacheur 04 quadrants. Réalisation de la commande en vitesse du MCC en boucle fermée, en intégrant la routine de lecture de l’encodeur incrémental et du régulateur PI, via VHDL et SYSGEN. Commande d’un MCC via FPGA 58 Annexes ANNEXES Commande d’un MCC via FPGA Annexes Annexe A Introduction à Quartus II Etape 1 : Création d’un projet 1. Démarrer le logiciel Quartus II V7.2 Menu ‘démarrer’ de Windows 7 Tous les programmes Altera Quartus II 7.2 Web Edition Quartus II 7.2 Web Edition.exe 2. Création un nouveau projet : File New Project Wizard 3. Sélectionner le répertoire de travail et le nom de projet [ Figure 1] Working Directory E:\pwm_dc Project Name Pwm_dc Top-Level De ign Entity Pwm_dc 4. Sélectionner la famille et les paramètre de la carte. [ Figure 2] La famille, sélectionner Cyclone II. Et à la liste de ‘available devices’, sélectionner EPC235F672C6 Figure 1 : New projet 5. Next Next Finish Figure 2 : la famille et les paramètre de la carte Etape 2 : Création, ajouter et compiler le fichier de design. 1. Crée un nouveau ‘Desgin File’ [Figure 3] File New sélectionner ‘VHDL File’ à l’onglet ‘Device Design Files’ Commande d’un MCC via FPGA Annexes 2. Copie et coller notre code VHDL pour générer le signal PWM dans la fenêtre de ‘VHDL.vhd’[Figure 4] Puis sauvegarder ce fichier : File Save(CRTL + S). Garder le nom pardéfaut et clicker Sur ‘Enregistrer’. Figure 2 : la fenêtre code VHDL Figure 1 : VHDL File 3. Compilation le fichier VHDL Processing Start Compilation (CTRL + L) ou cliquer directement sur l’icon la barre d’outils. Ignorer les avertissements (warnings) qui apparaît. Figure 3 : Compilation Figure 4 : Résultat de compilation Commande d’un MCC via FPGA dans Annexes Figure 5 : rapport de compilation Etape 3 : Assignation des pins 1. Assignments ‘Pin Planner’ ou bien ‘Assignment Editor’ Figure 6 : Assignation des pins Figure 7 : Tous les pins aprés l'assignation 2. Enregistrer les assignations des pins : File save Commande d’un MCC via FPGA Annexes Etape 3 : Comment programmer la carte Altera DE2 1. Connecter la carte Altera DE2 Cyclone II comme les figures suivants monter : Figure 8 : Comment connecter la carte Altera ? 2. Pour envoyer notre programme vers la carte : Cliquer sur l’icon ‘Programmer’ sur la barre d’outils. 3. Dans ‘Hardware Setup’ sélectionner ‘USB-Blaster’. 4. A la fin cliquer sur le botton ‘Start. Et attendre la barre de progress jusqu’a 100%. La programmation est complète. Figure 9 : fenêtre de programmation Commande d’un MCC via FPGA Annexes Annexe B Réalisation d’un Hacheur Boost Figure 10 : Schéma de l'hacheur boost Figure 11 : Hacheur Boost réalisé Notre circuit de puissance contient : o L’interrupteur principale « IGBT » de type AUIRG4PH50S Figure 12 : IGBT de type AUIRG4PH50S Commande d’un MCC via FPGA Annexes o Une inductance de lissage (L) [16] Figure 13 : Inductance de lissage Dimensionnement de la bobine de stockage : ( ) A partir de : ( ) Pour trouver l’ondulation maximale du courant il suffit de résoudre l’équation : ( ( ( ) ( ( ) ) )) α = 0.5 Le dimensionnement de l’inductance L, à partir d’une ondulation en courant donnée, s’effectue à l’aide l’équation suivante : o Une diode (D) de type 1N4007 o Un Radiateur de refroidissement pour protéger l’IGBT à l’augmentation de température. Commande d’un MCC via FPGA Annexes Notre circuit de commande contient : o Un Opto-coupleur de type HCPL-3120 + 15V Pin J22 de carte Altera DE2 Vers IGBT GND GND Figure 14 : Opto-coupleur HCPL-3120 o Une Résistance de 36 Ohm, placé avant la grille de l’IGBT Commande d’un MCC via FPGA Annexes Annexe C L’encodeur de vitesse en quadrature Un encodeur est un dispositif électromécanique capable de mesurer le mouvement ou la position. La plupart des encodeurs utilisent des capteurs optiques pour fournir des signaux électriques sous forme de trains d'impulsions, lesquels peuvent, à leur tour, être interprétés comme mouvement, direction ou position. Figure 15 : Encodeur de vitesse Les encodeurs rotatifs servent à mesurer le déplacement rotatif d'un axe. La figure 18 montre les composants de base d'un encodeur rotatif : une diode électroluminescente (LED), un disque et un capteur de lumière de l'autre côté du disque. Le disque, monté sur l'axe rotatif, comporte des motifs encodés de secteurs opaques et transparents. Lorsque le disque tourne, les segments opaques bloquent la lumière alors que ceux où le verre est clair la laissent passer. Ceci génère des impulsions d'onde carrée qui peuvent ensuite être interprétées comme position ou mouvement. Figure 16 : Composants d'un encodeur optique Commande d’un MCC via FPGA Bibliographie BIBLIOGRAPHIE Commande d’un MCC via FPGA Bibliographie Bibliographie [1] Lilian BOSSUET, Les circuits matériels reconfigurables – FPGA ‘Les FPGA, Technologie, architecture et utilisation’, 2010 [2] Johanna MARIANI, Programmation et Utilisation du FPGA pour la validation et la vérification de circuits électroniques, Mémoire d'ingénieur, 2011 [3] Denis RABASTE, Programmation des CPLD et FPGA en VHDL avec Quartus II, aide mémoire, IUFM d’Aix-Marseille, 2011 [4] Kamel MESSAOUDI, Cours VHDL (Informatique industrielle), Master I Electrotechnique, Universitie de constantine, 2013 [5] C.ALEXANDRE, FPGA EPRM ,Conservatoire National des Arts et Métiers, Support de cours 2013/2014 [6] Jean-Gabriel MAILLOUX, Prototypage rapide de la commande vectorielle sur fpga a l'aide des outils simulink - system generator, mémoire d’ingénieur, Université Du Québec, 2008 [7] Maria BORGST RÖM, Case study of a Rapid Control Prototyping system based on Xilinx System Generator, Mémoire de master, Royal Institute Of Technology, 2010 [8] Y.MOREL, La Machine A Courant Continu (Cours et Exercices), Article, 2004 [9] Claude CHEVASSU, Machines électriques ‘Cours et Problèmes’, Ecole nationale supérieure maritime, livre, 2011 [10] F.BOUCHAFAA,CONVERTISSEURS DC/DC, Support de cours, Université des Sciences et de Technologie Houari Boumediene, 2010 [11] BTS Electrotechnique, Cours disponible librement à l’adresse :http://physique.vije.net/BTS [12] Amin AYAD, Etude et réalisation d’une commande MLI pilotant un hacheur série, mémoire de master, Université Abou Bekr Belkaid Tlemcen, 2014 [13] Othmane BOUTELDJA, Prédétermination des caracteristiques d’un systeme pv raccorde au reseau, Mémoire de master, Universitie de constantine, 2013 [14] Tarek BOUGUERRA, Optimisation d’un système photovoltaïque Application en continu et en Alternatif, Mémoire de magister, Universitie de constantine, 2014 Commande d’un MCC via FPGA Bibliographie [15] Iman BENCHABANE, Karima BENZAID, Synchronisation des Systèmes et cryptographie chaotiques, Mémoire de master, Universitie de constantine, 2011 [16] DE2_UserManuall, Altera Corporation, http://www.altera.com [17] Ettouhami ELYAZIDI, Commande d’un moteur à courant continu par la carte Altera, mémoire de master, Université Cadi Ayyad, Marrakech, 2014 Commande d’un MCC via FPGA CHAPITRE II : Commande Des Moteurs à Courant Continue Via Les Hacheurs Pour plus d’information sur ce projet, permettez moi de vous invitez à visiter mon channel sur YouTube : SMAIL DERGHAL MASTER II ELECTROTECHNIQUE Commande d’un MCC via FPGA 1