Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (6)

 

  • Réalisé par : BOUTARF Youssef, BOUTOUIL Hamza, ELHALLAOUI Ayoub et LAMTIBBOU Adam
  • Encadré par : M. CHAFIK, M. DIOURI et M. GHOMARI
  • Ecole/Université: IGA Casablanca
  • Année scolaire: 2014/2015

Rappels des cours

Introduction

L’évolution de l’industrie des circuits intégrés durant la dernière décennie a été tellement rapide qu’il est maintenant possible d’intégrer plusieurs systèmes complexes sur une seule puce. Cette évolution vers des niveaux d’intégration de plus en plus élevés est motivée par les besoins de systèmes plus performants, légers, compacts et consommant un minimum de puissance. Dans de telles circonstances, la gestion de la complexité avec les outils d’aide à la conception traditionnels devient une tache pénible, coûteuse voire impossible, quand on considère les contraintes de mise en marché d’un produit.

Ce rapport présente le projet que nous avons réalisé encadré par nos professeurs et qui consiste à commander un moteur à courant continu en variant sa vitesse. En conduisant le moteur avec des impulsions courtes, ces impulsions varient dans le temps pour changer la vitesse du moteur donc plus les impulsions sont longues, plus les tours de moteur sont rapides, et vice versa. Le signal modulé en largeur d’impulsion récupéré à la sortie du circuit FPGA programmée en langage VHDL.

Dans ce rapport nous avons effectué l’étude théorique du moteur à courant continu et aussi la modulation de largeur d’impulsion qui permet de générer un signal de rapport cyclique variable afin de pouvoir contrôler et varier la vitesse du moteur en question. Pour ce faire, nous avons consacré trois thèmes à savoir :

  • Le circuit FPGA ( carte xilinx SPARTAN 3).
  • La Modulation de largeur d’impulsion (PWM).
  • Le Moteur à courant continu.

Plus tard dans ce rapport on traitera la partie commande du moteur, la présentation sera détaillée pour le circuit intégré spécialisé, la carte de commande et de puissance. Enfin, nous citerons le programme VHDL que nous avons pu développé et qui permet de générer les signaux permettant de commander le moteur à courant continue avec variation de vitesse.

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Schéma de principe

Le circuit FGA

La plupart des grands FPGA modernes sont fondés sur des cellules SRAM aussi bien pour le routage du circuit que pour les blocs logiques à interconnecter. Les FPGA (Field Programmable Gate Arrays ou « réseaux logiques programmables ») est un circuit intégré composer des cellules programmables, chaque cellule est capable de réaliser une fonction désiré. L’avantage de ce genre de circuit est sa grande souplesse qui permet de les réutiliser à volonté dans des algorithmes différents en un temps très court. Le progrès de ces technologies permet de faire des composants toujours plus rapides et à plus haute intégration, ce qui permet de programmer des applications importantes.

Les FPGA sont utilisés dans diverses applications nécessitant de l’électronique numérique (télécommunications, aéronautique, transports…). Ils sont également utilisés pour le prototypage d’ASIC. Pour les FPGA sont des composants qu’on peut les reprogrammer entièrement par le langage VHDL ou Verilog .Ils ne possèdent pas un programme résidant, ils sont constitués de deux cellules de base: Les cellules d’entrées/sorties appelés IOB (input output bloc), Les cellules logiques appelées CLB (configurable logic bloc). Ces différentes cellules sont reliées entre elles par un réseau d’interconnexions configurable.

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - ASIC Vs FPGA

L’intérêt de la FPGA figure à sa simplicité en pratique qu’un microcontrôleur. VHDL est le sigle de VHSIC hardware description language ; VHSIC, de very-high-speed integrated circuits, une initiative de la Défense américaine dans les années 1980 visant la construction de circuits intégrés très rapides.  Le est un langage de description du matériel utilisé en électronique. En tant que standard, il est indépendant du logiciel utilisé pour la compilation, la programmation des composants, la simulation, etc.

Il autorise plusieurs méthodologies de conception (comportemental, flot de données, structurel) tout en étant d’un très haut niveau d’abstraction en électronique (il est indépendant de la technologie utilisée : FPGA, CPLD, ASIC. Une description VHDL est composée de 2 parties indissociables : L’entité (ENTITY), elle définit les entrées et les sorties, L’architecture  (ARCHITECTURE), elle contient les instructions VHDL permettant de réaliser le fonctionnement attendu.

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Code VHDL

Les FPGA sont généralement plus lents, plus chers à l’unité et consomment davantage d’énergie que leur équivalent en ASIC (Application Specific Integrated Circuit). Cependant, ils ont plusieurs avantages : Délai de mise sur le marché plus court, car ce sont des composants standards, temps de développement plus court, car on réutilise des fonctions de base et la reconfigurabilité  autorise une validation préalable moins stricte, coût inférieur pour de petites séries (moins de 10 000 unités). Avec l’évolution technologique, cette quantité tend à augmenter : en effet, le prix d’une puce est proportionnel à sa surface, qui diminue avec la finesse de gravure, tandis que les coûts initiaux pour fabriquer un ASIC (conception, tests, masques de gravure) sont en forte augmentation.

Il est parfois possible de transformer directement un FPGA en une version ASIC plus rapide, moins chère et consommant moins (car les matrices de routage sont remplacées par une couche de métallisation fixe). Parmi les fabricants de tels circuits programmables, on trouve AboundLogic, Achronix, Actel, Altera, Atmel, Cypress, Lattice Semiconductor, Nallatech, QuickLogic, SiliconBlue, Tabula Inc., TierLogic et Xilinx. D’autres sociétés sont probablement encore à l’état de développement initial et n’ont pas publiquement annoncé de produits. La carte dont on dispose dans le laboratoire électronique  à l’IGA est  Xilinx Spartan

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Diagramme de bloc du Nexys

Voici la description de ces éléments (liste non-exhaustive) :

•200K porte Xilinx FPGA avec XC3S200 500 opération + MHz (porte 400K et 1M versions disponibles).
• port USB2 pour la configuration FPGA et les transferts de données à haut débit (en utilisant la connexion Adepte Software Suite).
• (Batteries et / ou cheville alimenté par USB peut également être utilisé).
• 16 Mo de Micron rapide PSDRAM et 4MB d’Intel StrataFlash ROM Flash.
• Plate-forme Xilinx flash ROM que les magasins Configurations FPGA indéfiniment.
• haute efficacité des alimentations à découpage (Bon pour les applications alimentées par batterie).
•scillateur 25MHz, 50MHz ,100MHz selon l’utilisation.
• Connecteur pour 1/8 VGA haute résolution graphiques Écran LCD ou 16×2 affichage caractère LCD.
• acheminé 60 FPGA I / O à l’expansion connecteurs (une haute vitesse connecteur Hirose FX2 et quatre embases à 6 broches).
• 8 LED, 4 chiffres affichage à sept segments, 4 boutons poussoirs, 8 interrupteurs à glissière.
• Navires dans un étui de transport pratique en plastique (avec câble USB).

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - carte Xilinx utilisée pour la génération du signal PWM

Fonctionnement du moteur à CC

Le moteur à courant continu est constitué d’un circuit magnétique comportant une partie fixe appelée stator, une partie tournante appelée rotor et l’entrefer qui est l’espace entre les deux parties: L’inducteur (le stator) crée les champs tournant par un bobinage. Un circuit électrique induit (rotor) subit les effets de ce champ magnétique. Le collecteur et les balais permettent d’accéder au circuit rotorique.

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Moteur à courant continu

Lorsque le bobinage d’un inducteur de moteur est alimenté par un courant continu, sur le même principe qu’un moteur à aimant permanent (comme la figure ci dessous), il crée un champ magnétique (flux d’excitation) de direction Nord-Sud. Une spire capable de tourner sur un axe de rotation est placée dans le champ magnétique. De plus, les deux conducteurs formant la spire sont chacun raccordés électriquement à un demi collecteur et alimentés en courant continu via deux balais frotteur. D’après la loi de Laplace (tout conducteur parcouru par un courant et placé dans un champ magnétique est soumis à une force), les conducteurs de l’induit placés de part et d’autre de l’axe des balais (ligne neutre) sont soumis à des forces F égales mais de sens opposé en créant un couple moteur : l’induit se met à tourner.

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Principe de création du couple moteur

Les avantages et inconvénients du moteur à courant continu sont repris ci-dessous : accompagné d’un variateur de vitesse électronique, il possède une large plage de variation (1 à 100 % de la plage), régulation précise du couple, son indépendance par rapport à la fréquence du réseau fait de lui un moteur à large champ d’application, peu robuste par rapport à la machine asynchrone, investissement important et maintenance coûteuse (entretien du collecteur et des balais.

Applications des moteurs à courant continu

  • Les moteurs les plus utilisés actuellement sont les moteurs à excitation indépendante notamment avec la commande par variateur. Autrefois on rencontrait beaucoup de moteurs shunts car ils ne nécessitaient qu’une source d’alimentation.
  • Les moteurs série fréquemment utilisés sont les démarreurs automobiles pour leur grand couple de démarrage.
  • Les moteurs à courant continu sont en forte diminution à cause de l’inconvénient du Système collecteur balais, et de l’évolution des technologies de variation de vitesse en grande puissance sur les moteurs asynchrones. Cependant les années 1990 ont vu apparaître des moteurs à aimant permanent, ces moteurs présentent l’avantage de la simplicité du raccordement, et supprime le risque d’emballement. Ils restent à ce jour les moteurs à courant continu qui sont le plus utilisés
  • (HI FI, multimédia, l’automobile).

Modulation de largeur d’impulsion MLI ou PWM

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Période MLI

Le PWM (MLI) est un signal numérique, donc la tension peut prendre deux valeurs seulement. Le signal est carré. Le niveau bas correspond généralement à 0 Volt. La période est notée T ; la durée de l’impulsion (pour laquelle la tension est celle de l’état haut) est appelée th. Plus précisément la modulation à Largeur d’impulsion « MLI » fournit un signal logique rectangulaire.

Toute l’information réside dans le rapport cyclique,  celui désignant la durée de l’état haut durant une période T, la MLI fait varier le temps de
l’état haut (que l’on appellera th).  On change ainsi le rapport cyclique (le rapport cyclique s’exprime par th/T et peut varier de 0 à 1).

Ce signal rectangulaire, de fréquence 12 Hz, présente un rapport cyclique de 10%, ce qui signifie que le niveau électrique reste à l’état haut pendant 10% du temps total d’un cycle (un cycle – ou période – durant ici 1/12 de seconde). Sa valeur moyenne est faible, par rapport à l’amplitude maximale qu’il possède quand il est à l’état haut.

Le même signal rectangulaire de fréquence 12 Hz présente ici un rapport cyclique de 50%, ce qui signifie que la durée pendant laquelle le signal reste à l’état haut, est identique à la durée pendant laquelle il reste à l’état bas. Sa valeur moyenne est égale à la moitié de l’amplitude maximale.

Le même signal rectangulaire de fréquence 12 Hz présente cette fois un rapport cyclique de 90%, il reste
plus longtemps à l’état haut qu’à l’état bas.

Circuit de puissance L298N

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Circuit de puissance L298N

Le circuit L298 bénéficie d’une technologie lui permettant de dissiper 160 W (avec une alimentation de 46 V et 2 A par pont). Une alimentation séparée 5 V pour la partie contrôle logique évite une dissipation trop importante. Elle est directement utilisable avec le 5 V du L297 ou tout autre circuit logique. Dans un but pratique, les noms des pattes des composants (du L298N et du L297) sont souvent identiques (sur les documentations) pour une meilleure compréhension globale du montage ou de l’application. Le L298N se décline dans un boîtier Multi watt à 15 pins.

Dons note cas on a utilisé le drive Moteur pont H L298N une interface complète. Qui va nous faciliter la liaison entre le moteur à courant continu et le circuit FPGA. Le circuit du moteur est basé sur le L298, qui est un double conducteur de pont complet conçu pour piloter des charges inductives telles que des relais, des solénoïdes, DC et moteurs pas à pas. Il vous permet de conduire de deux Moteurs à courant continu, commande de la vitesse et de la direction de chacun de façon indépendante.

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Circuit L298N

Schéma de câblage Arduino & L298N

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (81)

Programmation en VHDL sur Xilinx ISE

ISE (Integrated Synthesis Environment) Le logiciel Xilinx ISE est un outil de conception de circuit pour FPGA de Xilinx. Ce logiciel permet essentiellement d’effectuer les différentes étapes propres à la synthèse de circuits numériques sur FPGA. Il est alors possible d’en faire l’implémentation sur les différentes familles de puces fournies par Xilinx.

Caractéristiques

  • Elles peuvent compiler leurs désignes.
  • Réaliser une analyse du temps .
  • Examiner le diagramme RTL (Register-transfer-level).
  • Configuration et simulation du schéma avant de le réaliser.
  • RTL: est une méthode de description des architectures microélectroniques.
  • Création du projet 

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Création CHDL

  • Choisir le circuit XC3S400-FT256 correspondant à la FPGA dont nous disposon

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Création CHDL 1

 

  • Le code correspondant au cahier des charges sous Xilinx ISE

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Code VHDL 1

 

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Code VHDL 2

 

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Code VHDL 3

  • Simulation 

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Simulation

Conclusion

Au terme de ce projet nous avons été amenés à faire une commande par le circuit Xilinx sous le langage VHDL, ce qui donne une polyvalence en termes de programmation et d’utilisation des différents outils de commande numériques tels que les microcontrôleurs et les cartes électroniques. Ce projet nous a été très utile à plusieurs niveaux :

  • La maîtrise du langage VHDL.
  • Familiarisation avec la carte Xilinx.
  • Nouvelles connaissances en termes de commande des MCC.
  • Réalisation et familiarisation avec le circuit de puissance L298N.
  • Utilisation de l’outil Simulink et de modélisation de MCC sur Matlab.

Pendant ce projet nous avons confronté plusieurs contraintes en particulier l’utilisation des variables réelles sur SPARTAN3.

Photos du projet

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (1)

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (2)

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (3)

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (4)

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (5)

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (6)

Projet électronique FPGA 8 Commande d-un moteur à CC – V2 - Photos implimentation (7)

************

Un petit commentaire de vous, un Grand encouragement pour nous ?

************

Téléchargement du projet

************

Click to rate this post!
[Total: 2 Average: 3]

1 réflexion sur “Projet électronique FPGA #8 : Commande d’un moteur à CC – V2”

  1. Ping : C’est quoi le signal PWM ? – FPGA | Arduino | Matlab | Cours

Répondre à C’est quoi le signal PWM ? – FPGA | Arduino | Matlab | Cours Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

FPGA | Arduino | Matlab | Cours will use the information you provide on this form to be in touch with you and to provide updates and marketing.