• Aucun résultat trouvé

Autresremarques Consignes Objectifs GénérateurPWMdesignauxtriphasés IUTCréteil-Vitry / GEII2A / Projet / SujetB

N/A
N/A
Protected

Academic year: 2022

Partager "Autresremarques Consignes Objectifs GénérateurPWMdesignauxtriphasés IUTCréteil-Vitry / GEII2A / Projet / SujetB"

Copied!
8
0
0

Texte intégral

(1)

Dept GEII Année universitaire 2012-2013 - Durée : 3 x 3 heures MC-ENSL1 J. VILLEMEJANE - julien.villemejane@u-pec.fr

Générateur PWM de signaux triphasés

Objectifs

– Réaliser l’architecture d’un générateur de signaux triphasés PWM (Pulse Width Modulation) pour la commande en fréquence d’un moteur synchronea, à l’aide d’un composant programmable de type FPGA.

– Signaux sinusoidaux triphasés

– Fréquence variable (0,5 à 10 Hz, par pas de 0,5 Hz) – Affichage multiplexé pour la fréquence

a. Les notions d’électrotechnique rapportées dans ce sujet de projet sont incomplètes (moteur triphasé et onduleur de tension). Elles ne sont là qu’à titre de rappel pour la suite du projet. Reportez vous à votre cours d’électrotechnique pour avoir plus de détails.

Consignes

– Chaque module devra être réalisé dans unfichier séparé.

– Chaque module devra êtrevalidépar l’enseignant.

– L’ensemble des modules devra être fourni à lafin de la dernière séanceà l’enseignant.

Autres remarques

– vous n’aurez pas à votre disposition de moteur synchrone pour l’essai. Vous devrez alors utiliser les entrées-sorties disponibles sur la carte de développement :

– les sorties PWM seront visualisées sur 3 LED ;

– la sélection de la fréquence se fera par deux bouton-poussoirs (un pour augmenter l’autre pour diminuer la fréquence) ;

– l’affichage de la fréquence se fera sur l’afficheur 7 segments.

1. Moteur synchrone (simplifié)

Figure1 –Source : Wikipedia - Machine synchrone

Les moteurs synchrones sont composés d’unrotoret d’unstator.

Le rotorest l’élément tournant. Il est soit constitué d’un aimant permanent, soit d’un enroulement (bobine) permettant de créer un champ magnétique constant.

Lestatorest généralement fixe. Il est composé de 3 enroulements (ou multiple de 3) permettant de générer des champs magnétiques par l’application d’un courant. Ces enroulements sont disposés de telle façon que l’angle entre chacun d’entre eux fasse 120˚. Ainsi, en appli- quant des tensions triphasées, on génère un champ magnétique tour- nant entraînant le rotor.

Le rotor tourne alors à la vitesse de ce champ tournant, d’où le nom de moteur synchrone.

(2)

2. Commande en fréquence d’un moteur triphasé

Lasource de tensionla plus simple à mettre en oeuvre pour alimenter un moteur synchrone est le réseau ErDF. La plupart des moteurs triphasés ont des tensions et courants nominaux adaptés à ce réseau. Cependant, il n’estpas possible de contrôler la vitesse de rotation, le réseau ErDF ayant une fréquence fixe de 50 Hz. La vitesse est alors fixe.

Figure2 –Source : Journal InterSections - Juin 1998 - Schneider

Afin de pouvoir modifier la vitesse de rotation d’une machine tournante, il faut utiliser un système permettant de modifier la fréquence des courants si- nusoïdaux injectés au niveau du stator.

L’une des structures les plus utilisées pour cela est l’association d’unonduleur de tension, d’un re- dressement non contrôlé et d’un filtre capacitif (voir figure ci-contre).

Lesonduleurs de tensionsont des structures tout- ou-rien (TOR). En effet, en fonction de la valeur de commande des différents transistors, les tensions U, V et W ne peuvent valoir que E2, 0 ou−E

2.

Il est donc impossible d’appliquer directement un signal sinusoïdal aux bornes de la machine synchrone par ce procédé.

Cependant, les moteurs ont des constantes de temps de réponse qui sont très grandes (de l’ordre de la seconde) face à une sollicitation électrique. Ce phénomène est lié à la partie mécanique du moteur ayant généralement une grande inertie.

3. Modulation de largeur d’impulsion (MLI ou PWM)

Figure 3 – Source :

www.motionsystemdesign.com - Octobre 2000

Lamodulation de largeur d’impulsionsconsiste à commander les transistors de manière à délivrer au moteur une suite d’impulsions d’am- plitude fixe (positives ou négatives) et modulées en largeur. Ainsi, après filtrage (naturel) par le moteur (si les signaux appliqués sont suffisam- ment rapides), ce dernier ne verra que la composante moyenne et non les impulsions.

La méthode la plus simple pour générer de tels signaux consiste à générer uneonde sinusoïdale de référencepar phase (dont l’amplitude et la fréquence représentent la tension de sortie) et uneonde de modu- lationde fréquence élevée de forme triangulaire ou en dent de scie.

Les transistors de puissance sont alors commandés aux instants d’in- tersection de ces 2 ondes. Ces instants sont déterminés par des compara- teurs (voir figure ci-contre).

Dans le monde numérique, on peut également utiliser ce même prin- cipe. On générera uncompteurqui remplacera le signal en dent de scie de la modulation. La valeur de ce compteur sera alors comparé à un signal numérique de référence. En fonction du résultat, la sortie prendra la valeur logique ’0’ ou ’1’.

Le signal de référence peut par exemple être stocké dans uneROM (générateur à ROM). En fonction de la vitesse de lecture de cette ROM, on pourra alors faire varier la fréquence du signal de référence et donc la fréquence de rotation du moteur relié à l’onduleur.

(3)

4. Principe de la PWM

Dans un premier temps, nous allons mettre en place les modules de base d’une commande MLI, à savoir uncomparateuret uncompteur.

Afin d’avoir une résolution suffisante sur les échantillons de référence, nous utiliserons des échantillons codés sur8 bits.

4.1. Comparateur 8 bits

Le comparateur numérique devra alors comparer deux valeurs Aet Bcodés sur 8 bits chacune. Sa sortie sera active lorsque A sera supérieur à B.

MODULE 1

Décrire un comparateur à 2 entrées de 8 bits chacune et une sortie dans un module nommé comp8bits.

4.2. Compteur générique

Le signal de modulation de la MLI sera réalisé à l’aide d’un compteur 8 bits, s’incrémentant sur un signal d’horloge (CLK).

L’intéret du VHDL est de pouvoir créer desmodules réutilisablesfacilement sans réécriture du code. Les compteurs, en particulier, sont très souvent utilisés, mais pas nécessairement en mode 8 bits.

Nous allons ici créer un module générique en VHDL permettant de spécifier le nombre de sorties souhaité sur le compteur (voir exemple d’un module générique en annexe).

MODULE 2

1. Tracer l’évolution de la valeur du compteur 8 bits en fonction de l’horloge d’entrée.

2. Quelle est la fréquence du signal de modulation (fMOD) par rapport à la fréquence du signal d’horloge (fCLK) ?

3. Décrire en VHDL un compteur générique dont le nombre de sorties est paramétrable par un entier. La valeur par défaut sera de 8. Le module sera nommécptNbits.

4.3. Diviseur de fréquence

On souhaite avoir unefréquence de modulation de 10 kHz. La carte d’étude fonctionne à une fréquence de50 MHz.

MODULE 3

1. Quelle fréquence (fCPT) doit-on appliquer en entrée du compteur précédent (8 bits) pour ob- tenir une modulation à 10 kHz ?

2. Quelle est alors la valeur de division à donner à ce diviseur de fréquence ?

3. Décrire en VHDL un diviseur de fréquence permettant d’obtenir les caractéristiques citées précédemment. Le module sera nommédivfreq.

4.4. Système de base

On peut à présent associer l’ensemble des modules pour constituer la base d’un système MLI.

Des interrupteurs seront utilisés pour réaliser la seconde entrée du comparateur. Une LED sera utilisée pour visualiser la sortie du système.

(4)

MODULE 4

1. Faire le schéma du système complet, en précisant le nom et la taille de chacun des signaux d’entrée et de sortie des modules.

2. Dans un module nommésysteme, mettre en place le système de base en VHDL.

3. Tester votre description VHDL sur la carte d’étude.

5. Générateur à ROM

On souhaite à présent générer un signal sinusoïdal à une fréquence déterminée en sortie du système pré- cédent. Il faut donc trouver un moyen de faire varier l’entrée de référence selon un motif sinusoïdal à une fréquence donnée.

Pour cela, nous allons numériser une période d’une sinusoide et la stocker dans une ROM. En fonction de la fréquence de balayage des différentes adresses de cette ROM, on pourra alors reconstituer un signal de référence sinusoïdal.

5.1. Echantillons en ROM

Dans le cadre de ce projet, nous allons découper la période de la sinusoide en 32 échantillonsdifférents, soit 25échantillons. Chacun d’entre eux devra avoir une taille de8 bitspour pouvoir etre comparé au signal de modulation.

Un exemple de réalisation d’une ROM est donné en annexe.

MODULE 5

1. Combien de fils de données sont nécessaires pour réaliser la ROM contenant le motif sinusoï- dal souhaité ?

2. Combien de fils d’adresse sont nécessaires pour réaliser la ROM contenant le motif sinusoïdal souhaité ?

3. Quelle capacité aura cette ROM ?

4. Décrire en VHDL une ROM pouvant accueillir 32 échantillons de 8 bits chacun et donner les valeurs de chacun des échantillons. Le module sera nommérom5v8.

5.2. Compteur 5 bits

Afin de pouvoir parcourir l’ensemble des échantillons de la ROM (les différentes adresses), nous allons mettre en place un compteur. La fréquence d’entrée de ce compteur déterminera la fréquence de sortie du signal.

MODULE 6

1. Tracer l’évolution de la valeur de sortie de la ROM en fonction de l’horloge d’entrée de ce compteur.

2. Quelle est la fréquence du signal de référence (fREF) par rapport à la fréquence du signal d’horloge de ce compteur (fCLK_REF) ?

3. Doit-on réécrire un tel compteur ? Justifier.

(5)

5.3. Diviseur de fréquence

MODULE 7

1. Quelle fréquence (fREF) doit-on appliquer en entrée du compteur 5 bits pour obtenir un signal de sortie sinusoidal à 1 Hz ?

2. Quelle horloge peut-on mettre en entrée de ce diviseur ?

3. Quelle est alors la valeur de division à donner à ce diviseur de fréquence ?

4. Décrire en VHDL un diviseur de fréquence permettant d’obtenir les caractéristiques citées précédemment. Le module sera nommédivfreqmae.

5.4. Générateur de sinus

On peut une nouvelle fois associer l’ensemble des modules pour constituer la base d’un générateur à ROM.

Une LED sera utilisée pour visualiser la sortie du système. Le signal de sortie sera également reporté sur la sortieB2du FPGA.

MODULE 8

1. Faire le schéma du système complet, en précisant le nom et la taille de chacun des signaux d’entrée et de sortie des modules.

2. Modifier le module nommésystemeet mettre en place le générateur à ROM en VHDL.

3. Tester votre description VHDL sur la carte d’étude.

4. Controler également la sortie de votre système (B2) à l’aide d’un oscilloscope. Obtient-on un signal sinusoidal ?

6. Modification de la fréquence

On souhaite à présent pouvoir régler la fréquence du signal de sortie, sans modifier la fréquence du signal de modulation. Pour cela, nous allons rendre le diviseur de fréquencedivfreqmaeparamétrable à partir d’une valeur numérique.

6.1. Diviseur de fréquence paramétrable

La fréquence doit etre configurable entre 0,5 et 10 Hz par pas de 0,5 Hz.

MODULE 9

1. Quelle est la fréquence du signal de sortie (fREF) par rapport à la fréquence de sortie du diviseurdivfreqmae(fCLK_REF) ? (voir paragraphe 5.2)

2. Quelle est la fréquence de l’horloge placée en entrée de ce diviseur de fréquence ?

3. Faire un tableau pour l’ensemble des valeurs de fréquences souhaitées et calculer les valeurs de divisions associées.

4. Quel principe peut-on utiliser pour stocker ces valeurs ?

5. Décrire ce système en VHDL (en modifiant le moduledivfreqmae).

6. Tester votre application, en insérant les nouveaux modules dans le module principalsysteme.

La valeur de la fréquence sera sélectionnée à l’aide de 5 interrupteurs. La sortie du diviseur de fréquence sera reportée sur la brocheC6du FPGA, pour pouvoir la visualiser à l’oscilloscope.

(6)

6.2. Gestion des bouton-poussoirs

Le changement de la fréquence de sortie doit maintenant s’éffectuer à l’aide de 2 boutons-poussoirs : l’un pour augmenter par pas de 0,5 Hz (plus), l’autre pour diminuer par pas de 0,5 Hz (moins).

Les boutons-poussoirs étant des systèmes mécaniques, ils sont le siège de phénomènes physiques appelés rebonds. Pour les éviter, il suffit de réaliser un détecteur de front montant ayant une période de rafraichissement supérieure à 10 ms.

Nous allons donc mettre en place une machine à état (simple) permettant de détecter un front montant sur le bouton-poussoirplusou le bouton-poussoirmoins et d’incrémenter ou décrémenter un compteur (corres- pondant au numéro des lignes du tableau précédent).

MODULE 10

1. Faire le diagramme d’état de la machine à état précédente.

2. Pour quel état doit-on incrémenter le compteur ? Pour quel état doit-on le décrémenter ? 3. Quelles sont les valeurs minimales et maximales de ce compteur ?

4. Décrire ce système en VHDL. Le module sera nommémaefreq.

5. Tester votre application, en insérant les nouveaux modules dans le module principalsysteme.

La sortie du diviseur de fréquence sera reportée sur la brocheC6du FPGA, pour pouvoir la visualiser à l’oscilloscope.

7. Affichage de la fréquence

Pour afficher la fréquence, nous réutiliserons l’affichage multiplexé réalisé lors des séances de TP. Nous l’incluerons comme nouveau module dans ce projet.

Afin de pouvoir afficher les bonnes valeurs, il est nécessaire de réaliser un décodeur ayant en entrée la valeur sortant de la machine à état précédente et en sortie les 4 données sur 4 bits permettant d’afficher les dizaines, unités et dixièmes de la valeur de fréquence.

MODULE 11

1. Importer les fichiers sources correspondant à l’afficheur 7 segments multiplexé.

2. Décrire le décodeur pour l’affichage dans un module nommédecodeur.

3. Tester votre application, en insérant les nouveaux modules dans le module principalsysteme.

8. Signaux triphasés

On souhaite à présent pouvoir générer des signaux triphasés.

MODULE 12

En vous inspirant des précédents modules et en vous aidant de l’annexe concernant la bibliothèque IEEE.MATH_REAL, faire une ROM paramétrable (angle de déphasage) contenant des signaux si- nusoidaux auto-générés.

Tester ensuite l’application complète.

(7)

Annexes Généricité

Décalaration d’uncomposant additionneur générique(N représentant le nombre de bits de l’additionneur - valeur par défaut de 8).

component ADD

g e n e r i c( N : p o s i t i v e r a n g e 0 t o 16 := 8 ) ; p o r t( A : i n s t d _ l o g i c _ v e c t o r ( N−1 downto 0 ) ; B : i n s t d _ l o g i c _ v e c t o r ( N−1 downto 0 ) ; S : o u t s t d _ l o g i c _ v e c t o r ( N−1 downto 0 ) ) ; end component;

Instanciation au niveau de l’architecture d’un système

inst_ADD : ADD

g e n e r i c map(N=>12)

p o r t map(A=>OP1 , B=>OP2 , S=>S ) ;

Conversion de types

– integerto_integer(unsigned) : convertit un entier non signé en une valeur entière – unsignedto_unsigned(integer) : convertit une valeur entière en un entier non signé

– std_logic_vector std_logic_vector(unsigned, N) : convertit un entier non signé vers un vecteur binaire de N bits

– unsignedunsigned(std_logic_vector) : convertit un vecteur binaire en un entier non signé Librairie IEEE.MATH_REAL

– integernatural(real) : convertit un réel en un entier – realceil(real) : arrondit un réel sans conversion de type – realreal(integer) : transforme une variable entière en un réel – realsin(real) : donne la valeur du sinus donné en radians – MATH_PI : valeur de PI

Exemple d’une conversion d’un entier vers un reel

s i g n a l i : i n t e g e r r a n g e 0 t o 1 5 ; s i g n a l r : r e a l r a n g e 0 . 0 t o 1 5 . 0 ; r <= REAL ( i ) ;

(8)

Réalisation d’une ROM

Réalisation d’une ROM de capacité16 x 8 bits(4 fils d’adressage et 8 fils de données)

l i b r a r y IEEE ;

u s e IEEE . STD_LOGIC_1164 .ALL;

u s e IEEE . STD_LOGIC_UNSIGNED .ALL; u s e IEEE . NUMERIC_STD .ALL;

u s e IEEE . MATH_REAL .ALL;

e n t i t y rom5v8 i s

P o r t ( a d r e s s e : i n STD_LOGIC_VECTOR ( 3 downto 0 ) ; d a t a : o u t STD_LOGIC_VECTOR ( 7 downto 0 ) ) ; end rom5v8 ;

a r c h i t e c t u r e B e h a v i o r a l o f rom5v8 i s

s u b t y p e v a l e u r i s i n t e g e r r a n g e 0 t o 2 5 5 ;

t y p e rom i s a r r a y( i n t e g e r r a n g e 0 t o 1 5 ) o f v a l e u r ; s i g n a l r o m s i n : rom ;

b e g i n

−− r e m p l i s s a g e a v e c l e s 16 p r e m i e r s e n t i e r s l o o p 1 : f o r i IN 0 TO 15 GENERATE

r o m s i n ( i ) <= i ; END GENERATE l o o p 1 ;

d a t a <= s t d _ l o g i c _ v e c t o r ( t o _ u n s i g n e d (

r o m s i n ( t o _ i n t e g e r ( u n s i g n e d ( a d r e s s e ) ) ) , 8 ) ) ; end B e h a v i o r a l ;

Il est également possible de remplir la mémoire de la façon suivante :

s i g n a l r o m s i n : rom = { 0 , 2 , 1 4 5 , 1 0 0 , 4 5 , 5 8 , 5 0 , 8 0 , 3 , 1 5 4 , 2 0 1 , 2 0 , 2 4 , 5 6 , 7 0 , 1 0 } ;

Références

Documents relatifs

The pulse width modulator comparator provides a means for the error amplifiers to adjust the output pulse width from the maximum percent on–time, established by the deadtime

The pulse width modulator comparator provides a means for the error amplifiers to adjust the output pulse width from the maximum percent on–time, established by the deadtime

The output is turned on under the following conditions: the oscillator triangle wave is lower than both the DTC voltage and the error-amplifier output voltage, the UVLO circuit

Ce scénario décrit les processus qui surviennent lors des interventions de maintenance précédant généralement un avis de panne pour un objet technique (vous avez également

On décompose le volume du liquide en rotation en couronnes cylindriques de rayon r, d’épaisseur dr et de hauteur z(r). Exprimer le volume dV d’une telle couronne. En supposant que

Le démarrage d’un moteur asynchrone ne peut avoir lieu que si le couple moteur est à chaque instant supérieur au couple résistant de la machine à entrainer.. (Le couple

Elle est d’autant plus importante que la masse de la charge est grande et s’oppose à la mise en mouvement. Elle est caractérisée par le moment d’inertie J, qui s’exprime en

Le tableau suivant indique les pourcentages de part de marché que la firme F peut espérer obtenir suivant les circuits choisis par elle et la concurrence :... Combien de