Contrôle électronique
Étude de cas : Contrôle électronique. Recherche parmi 300 000+ dissertationsPar kevin.piccand • 24 Novembre 2013 • Étude de cas • 1 371 Mots (6 Pages) • 606 Vues
Electronique de commande
TP1 : DC_Motor_Control
Etudiants Piccand Kevin
Beaud Benjamin
Classe E3n
Professeur Claude Magliocco
Date 28.10.2013
Table des matières
1 Table des matières
2 Table des illustrations 3
3 Introduction 4
4 Objectif 4
5 Le projet 5
6 Description partiel d’une entity 7
6.1 Mapping Cmd_Pont avec DC_Motor_Control 7
6.2 Code d’une machine d’état 8
7 Low level 10
7.1 Sample 10
7.2 Cmd_Pont 10
7.2.1 Registre 10
7.2.2 Synchro 10
7.2.3 Count_modulo255 11
7.2.4 Comparator 11
7.2.5 Cmd_Pont_M_etat 11
7.2.6 Synchro_AB 12
7.3 QEI_M_etat 12
7.4 QEI_Cnt 12
7.5 Synchro_PV 13
7.6 F_Reg 13
8 Top level 14
8.1 Régulateur_PI 14
9 Compilation du Code VHDL 15
10 Simulation (.do) TOP LEVEL 15
11 Synthèse (Xilinx) 16
12 test Moteur 16
Nous avons testé notre programme à l’aide du montage mis à disposition par le prof. Nous avons téléchargé le programme sur la carte du labo et avons pu le testé avec un moteur. Nous avons effectué plusieurs manipulations accompagnées du prof pour contrôler que tout était fonctionnel. 16
13 Conclusion et remarques 17
14 Sources 17
15 Annexes 17
2 TABLE DES ILLUSTRATIONS
Figure 1 : DC_Motor_Control TOP Level 5
Figure 2 : Cmd_Pont LOW Level 6
Figure 3 : Machine d’état Cmd_Pont_M_etat 8
Figure 4 : Bloc Sample 10
Figure 5 : Bloc Registre 10
Figure 6: Bloc Synchro 10
Figure 7 : Bloc Count_modulo255 11
Figure 8 : Bloc Comparator 11
Figure 9 : Bloc Cmd_Pont_M_etat 11
Figure 10 : Bloc Synchro_AB 12
Figure 11 : Bloc QEI_M_etat 12
Figure 12 : Bloc QEI_Cnt 12
Figure 13 : Bloc Synchro_PV 13
Figure 14 : Bloc F_Reg 13
Figure 15 : Bloc du régulateur PI 14
Figure 16 : Compilation finale du code 15
Figure 17 : Simulation finale réussi 15
Figure 18 : Génération du programme par Xilinx 16
Figure 19 : Bouton de consigne sur la carte 16
3 INTRODUCTION
Ce laboratoire a pour but d’utiliser nos connaissances tant en programmation VHDL et également en régulation. Nous devrons réaliser sous forme de code un régulateur PI afin d’exécuter un réglage de vitesse ou de position de notre moteur en courant continu.
La modélisation de ce circuit se fera sur le logiciel « ModelSim » pour le code VHDL et la programmation (la synthèse) sur Xilinx.
Ce TP s’est déroulé sous 4 séances, nous avons répartis le travail de façon à pouvoir tester toutes les parties du code au fur et à mesure. A chaque fin de séance, nous avons rendu des données attestant le bon avancement du codage.
Une fois l’ensemble du code écrit, nous avons pu via le logiciel « Xilinx » notre code compilé de façon qu’il soit compris par notre carte ; suite à cela le moteur DC à été tester afin de vérifier l’ensemble des fonctions codées.
Nous allons expliquer en gros l’ensemble des blocs et leurs fonctions ainsi qu’une explication d’un bout de code VHDL.
4 OBJECTIF
• Concevoir et modéliser en VHDL un circuit numérique pour la régulation en position ou en vitesse d’un moteur DC.
• A l’aide de Modelsim et des 14 testbenchs automatiques livrés, compléter et tester le circuit.
• Réaliser et tester le montage
5 LE PROJET
Nous avons reçu plusieurs documents afin de nous guider à travers le code. Le projet a été découpé en plusieurs parties afin de simplifier la tâche.
Nous allons voir qu’il existe un TOP level et un LOW level et que chacun de ses niveaux contient à leurs tours des machines d’états remplissant divers instructions.
Figure 1 : DC_Motor_Control TOP Level
Sur la figure ci-dessus, on observe le TOP level de notre système, il s’agit du DC_Motor_Control, on y retrouve divers blocs qui sont décrits par des machines d’états. A cet étage là, on y retrouve un bloc qui nous a occupé longuement, il s’agit du Cmd_Pont qui à lui-même contient divers sous blocs, c’est le LOW level. (Voir figure 2)
Chaque bloc est relié à un autre bien destiné par divers branchements qui se feront par le biais du code, c’est cela que nous appelons le Mapping.
Nous pouvons observer les blocs suivants :
• Sample
• Cmd_Pont (figure 2)
• Synchro_AB
...