Applications maquette d'étude EPK GÉNÉRAER PWM VM RIPHAÉ POR MOER BLDC CHÉMA E DECRIPION POR EPLD L'acronyme VM provient de "pace Vector Modulation". Il s'agit d'un procédé de PWM permettant d'appliquer au moteur une tension entre phases de forme sinusoïdale et d'amplitude égale à la tension DC appliquée aux bras de l'interface de puissance. Le gain est de 5% par rapport au procédé PWM sinusoïdal conventionnel.. Objectifs Étudier, mettre en œuvre et tester des structures proches de celles intégrées dans les microcontroleurs MICROCHIP destinées à piloter des moteurs BLDC (brushless à courant continu). Le moteur utilisé pour les tests est en fait une machine "synchro" de PRECILEC qui comportent un stator et un rotor triphasé à paire de pôles (modèle 5M). Le rotor est alimenté en DC entre phase pour le magnétiser, le stator est alimenté par une source DC de V via bras PWM.
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC. Principe de la modulation V On utilise la structure classique des bras de commutateurs commandés par comparateurs. Le signal de référence est de forme triangulaire et de fréquence F PWM très grande devant la fréquence des signaux ua, ub et uc (au moins x). CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC Dans ces conditions on peut écrire (commutateurs parfaits) : E E E an moy u a, bn moy u b et cn moy uc Les valeurs instantanées de ua, ub et uc doivent rester à l'intérieur des valeurs crêtes de la porteuse ("carrier). En éliminant les composantes harmoniques (fréquences multiples de F PWM ), et si F PWM est très grande devant la fréquence des signaux ua, ub et uc, on peut confondre an moy et an.. PWM sinusoïdal On produit consignes sinusoïdales déphasées de : 4 u a m sinωt u b m sinωt u c m sinωt m : indice de modulation compris entre et Il en résulte : E E E 4 an m sinωt bn m sinωt cn m sinωt CQFD Les tensions entre phases sont : E ab m sinωt 6 E 5 bc m sinωt 6 E ca m sinωt E L'amplitude maximum entre phases est donc de, soit 86,6% de E pour m=. CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC. Modulation pace Vector Les 6 commutateurs peuvent prendre états différents représentés dans la figure ci-contre. Ces 8 états sont codés de à. La modulation "V" consiste à piloter les commutateurs en PWM pour passer progressivement d'un état au suivant. Les sorties a, b et c alimentent les phases du moteur qui créent des champs magnétiques déphasés de. On peut alors représenter l'orientation du champ magnétique pour chacun des 8 états. Ces états se transforment alors en vecteurs de tension ( à sur la figure ci-contre). Les états et ne créent pas de champ magnétique, les vecteurs et ont donc une longueur nulle. Les autres vecteurs ont une longueur de et respectent les relations suivantes : 4 5 6 5 Objectif : créer un vecteur de longueur constante qui suit, pour sa valeur maxi, le cercle en pointillé de rayon. Pour cela on module en conséquence les rapports cycliques de conduction des commutateurs dans chacun des 6 secteurs. En notant à la durée de chaque état à sur une période PWM, on obtient la relation vectorielle suivante (on suppose que la fréquence PWM est très grande devant la vitesse de rotation du vecteur : 4 5 6 4 5 6 Avec = + + + + 4 + 5 + 6 + : période PWM Pour respecter cette relation à la lettre et donc atteindre l'objectif, il faut calculer les durées à pour chaque position angulaire de. On en déduit les consignes de tension ua, ub et uc nécessaires. Ce procédé n'est pas utilisé car il provoque de trop nombreux changements d'états ( par période PWM) et les pertes par commutation deviennent excessives. olution adoptée : Le diagramme vectoriel est divisé en 6 secteurs de 6 Dans chaque secteur, seuls 4 vecteurs i sont utilisés pour produire (les vecteurs qui encadrent le secteur, ainsi que et ) : secteur I : Avec = + + + : période PWM CREMMEL Marcel Page 4/5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC CREMMEL Marcel Page 5/5 électronique - /8/6 secteur II : Avec = + + + secteur III : 4 4 Avec = + + 4 + secteur IV : 5 5 4 4 Avec = + 4 + 5 + secteur V : 6 6 5 5 Avec = + 5 + 6 + secteur VI : 6 6 Avec = + 6 + + A un instant donné, l'angle magnétique du moteur se trouve dans un des 6 secteurs. On calcule alors les rapports cycliques nécessaires pour placer le vecteur dans cette position. Cette solution ne nécessite que changements d'états par période PWM (pertes plus faibles) et réduit aussi le nombre de calculs nécessaires. Par exemple, dans le secteur I : Avec = + + + : période PWM Quand le vecteur se déplace de à 6, la durée de varie du max à tandis que la durée de varie de au max. On choisit généralement : = pour des raisons de symétrie et limiter les composantes harmoniques. Pour obtenir un vecteur de longueur m (m est l'indice de modulation), on calcule,, et à partir du diagramme vectoriel : t ω π sin m π sin m t ω sin m sin m
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC CREMMEL Marcel Page 6/5 électronique - /8/6 On en déduit : PWMa PWMb - PWMc Pour ne pas obtenir des durées et négatives (irréalisables!), le vecteur doit rester à l'intérieur de l'hexagone. Le cas limite est obtenu à = : on obtient = = / et = = quand le vecteur est sur le cercle en pointillé de rayon. L'indice de modulation m doit donc rester inférieur à m max = =,866 Pour cette valeur m max, on obtient : amplitude de a, b et c = E,4 E 4 m E max amplitude de ab, bc et ca = E m E max Conclusion : les amplitudes sont augmentées de 5,5% par rapport au PWM sinusoïdal conventionnel.. Durées des états des commutateurs dans chaque secteur ne simple transposition d'angle permet de calculer les durées à des états à dans chacun des secteurs : ecteur I ecteur II ecteur III ( /) (/ /) (/ ) π m.sin.π m.sin m.sin m.sin m.sin m.sin 4.. 4. ecteur IV ecteur V ecteur VI ( 4/) (4/ 5/) (5/ ) 4π m.sin 4 5π m.sin 5 m.sin 6 m.sin 5 4 m.sin 6 5 m.sin 5 4. 6 5. 6. On constate que les calculs donnent des résultats identiques dans chaque secteur ce qui simplifie la réalisation du modulateur.
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC.4 uccession des états des commutateurs dans chaque secteur Les solutions sont multiples, mais on s'impose le critère suivant : pas de changement d'état simultané de bras. On obtient les résultats suivants : ecteur VI ecteur V ecteur IV ecteur III ecteur II ecteur I Etats () () () () () () () Durées / / / / / / an bn cn Etats () () () () () () () Durées / / / / / / an bn cn Etats () () 4 () () 4 () () () Durées / / 4/ 4/ / / an bn cn Etats () 5 () 4 () () 4 () 5 () () Durées / 5/ 4/ 4/ 5/ / an bn cn Etats () 5 () 6 () () 6 () 5 () () Durées / 5/ 6/ 6/ 5/ / an bn cn Etats () () 6 () () 6 () () () Durées / / 6/ 6/ / / an bn cn.5 Calculs des rapports cycliques dans chaque secteur Ces calculs étant numériques, il est nécessaire de fixer la résolution de l'angle magnétique du moteur. Dans l'exemple qui suit la résolution choisie est de 6/(6x56)=,4. Il serait possible de calculer les rapports cycliques de chaque bras pour les 6x56=56 angles élémentaires et les ranger dans une table en mémoire morte. Cette solution est rejetée car la taille de la table excède les possibilités de l'epld. Celle-ci n'intègre que 88 bits alors que la table nécessite 56xx8 bits ( rapports cycliques codés sur 8 bits) = 6864 bits. CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC CREMMEL Marcel Page 8/5 électronique - /8/6 Les symétries dans le diagramme vectoriel permettent de réduire la taille de la table, mais au détriment de calculs supplémentaires que l'epld doit exécuter. Les tables utilisées permettent de déterminer les rapports cycliques A / et B / dans un secteur : able A : π sin m A able B : sin m B pour La correspondance entre les temps i et A ou B est donnée dans le tableau ci-dessous : an bn cn ect. Période PWM A B PWMa PWMb PWMc I = + + + A II = + + + B III = + 4 + + 4 A IV = 4 + 5 + + 4 5 B 5 V = 5 + 6 + + 5 6 A 5 VI = 6 + + + 6 B Le rapport cyclique / est calculé comme suit : B A B A.
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC.6 imulation Excel Le tableur Excel est utilisé pour valider les tables de valeurs des rapports cycliques. Le fichier "able_a_b_.xls" comporte les tables et les formules de calcul décrites précédemment. On obtient les résultats suivants sur 6 magnétiques : Les rapports cycliques,9,8,,6,5,4 PWMb PWMa PWMc,,, 6 8 4 6 a-b,8 c-a Les tensions inter-phases (relativement à E) a-b b-c,6,4, -, -,4 -,6 -,8-6 8 4 6 CREMMEL Marcel Page 9/5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC. chéma principal OP GND LINE PIN_9 CODA PIN_ CODB PIN_9 LIMI LIMI[5..] inst5 COL INP INP INP NO inst PIN_ imul_hall EN_COD H CODA H CODB H _8M4 EN_K5 inst Reg_Niveau EN_COD NIV[..] CODA CODB _8M4 EN_K5 Gene VM H YNC H PO[..] H EC[..] M[..] PWM[..] LIM[5..] PWM[..] _8M4 PWM[..] EN_K inst DELAY DELAY[5..] Generateur_PWM PDC[..] PDC[..] PDC[..] DELAY[5..] _8M4 _EN inst PMR[..] E PWMD PWM PWMD PWM PWMD PWM OP OP OP OP OP OP OP OP OP OP OP OP OP OP OP H H H YNC E PWMD PWM PWMD PWM PWMD PWM E E PIN_6 PIN_6 PIN_64 PIN_4 MAGN_PO[..] EC[..] PIN_ PIN_ PIN_ PIN_5 PIN_48 PIN_49 PIN_5 PIN_5 PIN_5 PIN_54 PIN_8 PIN_6 PIN_66 PIN_6 PIN_68 PIN_69 PIN_ PIN_ PIN_ PIN_4 inst inst4 OP _CNAPIN_64 PIN_9 _8M4 INP Gene 8M4 EN_K5 EN_K EN_4M68 Note : le moteur actuellement utilisé n'étant pas équipé de capteurs à effet Hall, on utilise un simulateur ("imul_hall") qui produit les signaux H, H et H déphasés de 6. La fréquence est réglable avec le codeur incrémental et détermine la vitesse de rotation du moteur. Fonction : le codeur incrémental règle indépendamment la tension appliquée au moteur (quand LINE est à "") et la vitesse de rotation du moteur (quand LINE est à ""). Les signaux PWMD à PWM pilotent une interface de puissance (voir schéma plus loin) qui produit les tensions inter-phases sinusoïdales d'alimentation des stators du moteur. Avec le moteur utilisé ( paire de pôles), la vitesse de rotation est réglable entre et 84tr/mn avec une résolution de,9tr/mn. La consigne de niveau (NV) a une résolution de 8 bits. Le signal d'horloge _8M4 est produit par l'oscillateur à quartz OC et vaut 8,4MHz. 4. Gene 8M4 inst INP Div_ Div_56 inst EN inst DIV_4 O O EN_ OP OP OP EN_K5 EN_K EN_4M68 On cherche à rendre l'ensemble du schéma synchrone avec l'horloge 8,4MHz. La fonction "Gene_" produit des signaux de validation d'horloge (durée = période 8,4MHz) avec une fréquence déterminée en fonction des besoins : EN_K5 :,5KHz EN_K : khz EN_4M68 : 4,68MHz inst CREMMEL Marcel Page /5 électronique - /8/6
4. DIV_4 Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC subdesign DIV_4 ( : input; EN_ : output; ) variable Q[..] : DFF; begin Q[].clk=; Q[].d=Q[].q+; EN_=Q[].q==; end; 4. DIV_56 BDEIGN Div_56 ( : INP; O : OP; ) VARIABLE Q[..] : DFF; BEGIN Q[].=; Q[].D=Q[].Q+; O=Q[].Q==; END; 4. DIV_ BDEIGN Div_ ( : INP; EN : input; O : OP; ) VARIABLE Q[4..] : DFFE; BEGIN Q[].=; Q[].ena=EN; Q[].D=Q[].Q+; O=(Q[].Q==)&EN; END; 5. imul_hall EN_COD INP AND CODA CODB INP INP inst4 NO inst NO inst Anti_rebonds IN O EN inst Anti_rebonds IN O EN decod_a_b A DIR B inst5 CP_D D inst5 PO[6..] EN NCO_H FREQ[6..] inst H H H OP OP OP H H H inst _8M4 EN_K5 INP INP Les signaux CODA et CODB produits par le codeur incrémental passent par des fonctions anti-rebonds indispensables compte-tenu de la fréquence d'horloge. Le sens de chaque cran est détecté par la fonction "decod_a_b" : DIR indique le sens au moment du sur : "" : CW et "" : CCW CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC Les sur sont comptés ou décomptés par la fonction CP_D : PO[6..] : nombre de crans. Initialisé à au moment de la configuration de l'epld. EN : indique le sens du nombre de crans ("" : CW, "" : CCW) La fonction CP_D pilote un oscillateur numérique commandé (NCO) qui produit en interne un signal carré de fréquence proportionnelle à PO[]=FREQ[] : F_8M4 FH FREQ[]. oit une résolution de,9hz et une fréquence max de 8,4Hz Cette fréquence est appliquée à un compteur bits modulo 6 dont les sorties sont décodées pour produire les signaux H, H et H déphasés de 6. La fréquence de ces signaux est donc réglable de Hz à,hz avec une résolution de,66hz. 5. Anti_rebonds IN EN Les premières bascules D permettent d'éliminer les effets des rebonds plus courts que périodes d'horloge validées : soit /,5kHz = 889µ 5. Decod_a_b BDEIGN decod_a_b ( A, B : INP; DIR, : OP; ) VARIABLE DIR_FF : DFF; BEGIN DIR_FF. = B; DIR_FF.D = A; DIR = DIR_FF.Q; = A & B; END; L'information de direction est échantillonnée sur A au de B. Le signal est produit par une fonction E entre A et B. 5. CP_D INP INP INP DFFE PRN D Q ENA inst DFFE PRN D Q ENA inst inst4 AND subdesign CP_D ( D, : input; PO[6..] : output; EN : output; ) variable Q[..] : dff; begin Q[].clk=; if D then Q[].d=Q[].q+; else Q[].d=Q[].q-; end if; if Q.q then PO[6..]=!Q[6..]; else PO[6..]= Q[6..]; end if; EN=Q.q; end; Les sur sont comptés ou décomptés par la fonction CP_D : OR inst AND inst5 AND inst6 OR inst DFFE PRN D Q ENA inst8 NO inst9 OP O CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC PO[6..] : nombre de crans. Initialisé à au moment de la configuration de l'epld. EN : indique le sens du nombre de crans ("" : CW, "" : CCW) 5.4 NCO_H subdesign NCO_H ( FREQ[6..] : input; : input; H,H,H : output; ) variable REG[..] : dff; FREQW[..] : node; QH[..] : dff; begin FREQW[..]=gnd; FREQW[6..]=FREQ[6..]; REG[].d = REG[].q + FREQW[]; REG[].clk = ; QH[].clk = REG.q; if QH[].q==5 then QH[].d=; else QH[].d=QH[].q+; end if; H=(QH[].q==) or (QH[].q==) or (QH[].q==); H=(QH[].q==) or (QH[].q==) or (QH[].q==); H=(QH[].q==) or (QH[].q==) or (QH[].q==4); end; La structure est classique. Le registre et l'additionneur ont une taille de bits pour obtenir la résolution de réglage voulue. La sortie REG.q est utilisée comme signal d'horloge d'un compteur bits modulo 6. Les sorties sont décodées pour produire les signaux H, H et H déphasés de 6. 6. Reg_Niveau EN_COD INP AND CODA CODB INP INP inst4 NO inst NO inst Anti_rebonds IN EN inst Anti_rebonds IN EN O O decod_a_b A DIR B inst5 inst Cpt_D_Niv updow n clock up/down q[..] OP NIV[..] inst _8M4 EN_K5 INP INP La structure est similaire à la fonction "imul_hall", mais elle ne comporte pas de fonction NCO. La fonction de comptage des crans diffère aussi; elle ne nécessite pas de commentaires supplémentaires. CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC. Gene_VM Capteur_Hall OP OP YNC PO[..] H H H INP INP INP H H H _8M4 EN_K inst EC[..] PLE_H M_PO[..] ROM_A address[..] q[..] inst ROM_B address[..] q[..] inst8 OP Modulation A[..] B[..] M[..] EC[..] AM[..] BM[..] M[..] INP inst CALC_VM LIMI_PWM EC[..] A[..] B[..] PWM_R[..] PWM_Y[..] PWM_B[..] IN[..] IN[..] IN[..] O[..] O[..] O[..] OP OP OP PWM[..] PWM[..] PWM[..] LIM[5..] _8M4 EN_K INP INP INP inst9 LIM[5..] EN inst4 La fonction produit signaux numériques VM codés en Bd sur 8 bits et déphasés de. Ils sont synchronisés sur les signaux des capteurs à effet Hall : H, H et H. Leurs niveaux sont réglables avec les entrées NIV, NIV et NIV codées en C (-8 à +). La structure utilise ROM (taille = 56 octets) contenant les tables A et B (voir ). Les ROM sont adressées par M_PO[..] qui représente la position angulaire du moteur dans un des 6 secteurs. Le codage sur 8 bits donne une résolution de 6/56=,5 magnétique. Le secteur actuel est donné par EC[..] qui évolue entre et 5. Cette information est utilisée par la fonction "CAL_VM" qui calcule les rapports cycliques permettant de produire la tension d'alimentation adéquate du moteur. La fonction "Modulation" multiplie les valeurs A[] et B[] (en BN) avec l'indice de modulation M[] et réalise donc le réglage de niveau. On ne garde que l'octet de poids fort du résultat. La fonction "LIMI_PWM" évite d'obtenir les rapports cycliques extrêmes de % et % et bloquer le hachage des courants dans le moteur. CREMMEL Marcel Page 4/5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC. Capteur_Hall Anti_rebonds Cpt_ect_VM up counter sclr modulus 6 H H H _8M4 INP INP INP INP inst IN EN IN EN O Anti_rebonds inst4 IN EN O Anti_rebonds O Pulse_Hall H H H inst6 PLE_ PLE_H clock clk_en inst Cpt_Magn_pos up counter sclr clock clk_en cnt_en inst NO inst q[..] q[..] cout OR OP OP OP EC[..] PLE_H M_PO[..] EN_K INP inst5 Cpt_Mesure_H up counter sclr inst clock cnt_en q[5..] Periode_H DFF data[5..] clock q[5..] enable inst8 inst Div_prog_6b down counter sload data[5..] clock q[5..] cout inst9.. Anti_rebonds Fonctions déjà décrites ( 5.).. Pulse_Hall DFF XOR H INP D PRN Q inst NO AND OP PLE_ inst inst8 inst H INP DFF D PRN Q XOR inst4 OR inst OP PLE_H inst DFF XOR H INP INP D PRN Q inst6 inst5 Cette fonction détecte les changements d'états de H, H et H pour produire : sur PLE_ : une impulsion de largeur /F au de H sur PLE_H : une impulsion de largeur /F au ou de H, H ou H Le signal PLE_ met à zéro de façon synchrone le compteur de secteurs et réalise donc la synchronisation 6 " de l'alimentation du moteur. Le signal PLE_ met à zéro de façon synchrone le compteur de position dans un secteur pour l'initialiser à chaque détection de secteur. IMPORAN : on peut améliorer la fonction de synchronisation en codant les signaux H, H et H et en affecter le compteur de secteurs à chaque transition. Le plus simple serait de remplacer le compteur par une machine d'états qui produit signaux similaires à H, H et H. CREMMEL Marcel Page 5/5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC.. Cpt_ect_VM Il est incrémenté au début de chaque secteur grâce au signal PLE_H...4 Cpt_Magn_pos Compteur 8 bits synchrone à raz synchrone. La sortie CO permet de bloquer le compteur quand il atteint 55. Il est incrémenté à un rythme tel que son état évolue entre et une valeur aussi proche que possible de 55 dans un secteur. Le rythme est calculé à la fin de chaque secteur par les fonctions "Cpt_Mesure_H", "Periode_H" et "Div_prog_6b"...5 Cpt_Mesure_H Ce compteur est incrémenté au rythme de khz grâce au signal EN_K. Il est mis à de façon synchrone avec PLE_H, donc au début de chaque secteur. on état juste avant cette raz est donc proportionnel à la durée EC du dernier secteur : Etat final Cpt_Mesure_H =. EC Exemples : Vitesse de rotation magnétique EC Etat final Cpt_Mesure_H 66, tours/mn 5m 8 tours/mn m 6 La vitesse de rotation magnétique doit être comprise entre tr/mn et tr/mn pour éviter le dépassement du compteur et obtenir un résultat supérieur à (précision meilleure que %)...6 Periode_H a fonction est simplement de mémoriser le résultat. EC au moment adéquat... Div_prog_6b Il s'agit d'un décompteur synchrone 6 bits à prépositionnement synchrone. L'horloge est le signal _8M4 de fréquence 8,4MHz. La sortie CO passe à "" quand le compteur est à. a fréquence est donc de : F_8M4 84 56 FCO EC EC EC Cette fréquence incrémente le compteur "Cpt_Magn_pos" qui est mis à zéro au début de chaque secteur, donc avec une périodicité de EC. Ainsi, quand le moteur tourne à vitesse constante, le compteur atteint tout juste la valeur 55 à la fin de chaque secteur, quelle que soit cette vitesse : CQFD.. ROM_A Cette ROM de 56 octets contient la table A vue au.5. Elle est mise à l'échelle : A π M_PO.. π able A : 56 sin 56 ROM pour M_PO[] 55 Extrait du fichier "able_a.mif" (adresse à gauche, donnée à droite) : WIDH = 8; DEPH = 56; ADDRE_RADIX = DEC; DAA_RADIX = DEC; CONEN BEGIN : ; : ; : ; : ; 5 : 4 ; 5 : ; 54 : ; 55 : ; END; CREMMEL Marcel Page 6/5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC. ROM_B Cette ROM de 56 octets contient la table B vue au.5. Elle est mise à l'échelle : B M_PO.. π able B : 56 sin 56 ROM pour M_PO[] 55 Extrait du fichier "able_b.mif" (adresse à gauche, donnée à droite) : WIDH = 8; DEPH = 56; ADDRE_RADIX = DEC; DAA_RADIX = DEC; CONEN BEGIN : ; : ; : ; : ; 4 : 4 ; 5 : 8 ; 5 : 9 ; 5 : ; 5 : ; 54 : ; 55 : ; END;.4 Calc_VM Cette fonction effectue les calculs décrits dans le tableau du.5 pour obtenir les rapports cycliques PWMa, PWMb et PWMc. Les calculs dépendent du secteur dans lequel se trouve l'axe magnétique du moteur; cette information est fournie par EC[..]. Dans le tableau du.5, les valeurs des rapports cycliques PWMa, PWMb et PWMc sont comprises entre et. Dans la solution proposée, les rapports cycliques correspondants PWM_R, PWM_Y et PWM_B sont des entiers positifs codés sur 8 bits, donc de valeurs comprises entre et 55. subdesign CALC_VM ( EC[..]:input; A[..]:input; B[..]:input; PWM_R[..]:output; PWM_Y[..]:output; PWM_B[..]:output; ) variable _x[..]:node; [..] :node; begin _x[]=55-a[]-b[]+; -- + pour éviter les dépassements [6..]=_x[..]; []=GND; case EC[] is when => PWM_R[]=[]; PWM_Y[]=[]+A[]; PWM_B[]=55-[]; when => PWM_R[]=[]+B[]; PWM_Y[]=[]; PWM_B[]=55-[]; when => PWM_R[]=55-[]; PWM_Y[]=[]; PWM_B[]=[]+A[]; when => PWM_R[]=55-[]; PWM_Y[]=[]+B[]; PWM_B[]=[]; when 4 => PWM_R[]=[]+A[]; CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC PWM_Y[]=55-[]; PWM_B[]=[]; when 5 => PWM_R[]=[]; PWM_Y[]=55-[]; PWM_B[]=[]+B[]; end case; end;.5 Modulation La fonction "Modulation" multiplie les valeurs A[] et B[] (en BN) avec l'indice de modulation M[] et réalise donc le réglage de niveau. On ne garde que l'octet de poids fort du résultat. Multiply_8x8 A[..] INP dataa[..] datab[..] inst result[..] nsigned multiplication OP AM[..] Multiply_8x8 B[..] M[..] INP INP dataa[..] datab[..] inst result[..] nsigned multiplication OP BM[..].6 Limit_PWM Cette fonction évite d'obtenir les rapports cycliques extrêmes de % et % et bloquer le hachage des courants dans le moteur. subdesign LIMI_PWM ( IN[..]:input; IN[..]:input; IN[..]:input; LIM[5..]:input; :input; EN :input; O[..]:output; O[..]:output; O[..]:output; ) variable LIM8[..]:node; O[..]:dffe; O[..]:dffe; O[..]:dffe; begin LIM8[..6]=GND; LIM8[5..]=LIM[5..]; O[].clk=; O[].ena=EN; O[].clk=; O[].ena=EN; O[].clk=; O[].ena=EN; if IN[]>55-LIM8[] then O[]=55-LIM8[]; else if IN[]>=LIM8[] then O[]=IN[]; else O[]=LIM8[]; end if; end if; if IN[]>55-LIM8[] then O[]=55-LIM8[]; else if IN[]>=LIM8[] then O[]=IN[]; else O[]=LIM8[]; end if; end if; if IN[]>55-LIM8[] then O[]=55-LIM8[]; else if IN[]>=LIM8[] then O[]=IN[]; CREMMEL Marcel Page 8/5 électronique - /8/6
end if; end; Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC end if; else O[]=LIM8[]; La fonction opère une sorte d'écrêtage sur les entrées : i l'entrée est inférieure à LIM[] alors la sortie vaut LIM[] i l'entrée est supérieure à 55-LIM[] alors la sortie vaut 55-LIM[] Dans les autres cas : sortie = entrée Les sorties sont synchronisées sur l'horloge _8M4 pour éviter l'apparition d'états parasites. 8. Generateur_PWM D_Counter _PWM _EN PMR[..] OP PMR[..] inst Comp_PWM unsigned compare Dead_ime OP E PDC[..] INP dataa[..] datab[..] inst8 agb COMP _PWM _EN DELAY[5..] PWMD PWM OP OP PWMD PWM Comp_PWM unsigned compare inst4 Dead_ime PDC[..] INP dataa[..] datab[..] inst agb COMP _PWM _EN DELAY[5..] PWMD PWM OP OP PWMD PWM PDC[..] DELAY[5..] _8M4 _EN INP INP INP INP Comp_PWM unsigned compare dataa[..] datab[..] inst agb Cette fonction produit les 6 signaux PWM destinés à commander les 6 transistors des bras de commutateurs de l'interface de puissance. Les rapports cycliques de ces signaux sont déterminés par les niveaux des signaux numériques PCD[] à PCD[]. Le cœur de la structure est le compteur-décompteur "D_Counter" qui détermine la période des signaux PWM et la résolution de réglage des rapports cycliques. Elle produit le signal numérique PMR[] de forme triangulaire. Ce signal est comparé aux entrées PCD[] à PCD[] par fonctions "Comp_PWM". Les sorties respectives passent à "" quand le signal PMR[] est supérieur à PCDx[]. Ces sorties pourraient piloter directement les commutateurs des bras s'ils étaient parfaits. Malheureusement les transistors qui les constituent ne commutent pas instantanément et il faut insérer des temps morts à chaque transition pendant lesquelles les commutateurs du pont sont simultanément ouverts. On améliore ainsi considérablement le rendement du bras. inst Dead_ime inst COMP _PWM _EN DELAY[5..] PWMD PWM OP OP PWMD PWM CREMMEL Marcel Page 9/5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC 8. D_Counter NO _PWM _EN INP INP inst p_down_cpt updow n clock clk_en up/down q[..] inst Comp_p compare OP PMR[..] dataa[..] datab[]=54 inst aeb RFF PRN Q Comp_Down compare R inst4 dataa[..] datab[]= aeb On utilise un compteur-décompteur synchrone dont le mode de fonctionnement est déterminé par l'état de la bascule R synchrone : état "" : p_down_cpt compte. La bascule est mise à "" de façon synchrone quand l'état du compteur est 54. Celui-ci passe alors à 55 avant de décompter. état "" : p_down_cpt décompte. La bascule est mise à "" de façon synchrone quand l'état du compteur est. Celui-ci passe alors à avant de compter. Conclusion : évolution du compteur : 5-54-55-54-5-5- ------- 54-55-54- Note : le signal _EN ne passe à "" qu'une période sur 4 de _PWM à cause de la fonction "Div_4" (voir page 4). La fréquence de comptage-décomptage de p_down_cpt est donc de 8,4MHz/4 = 4,68MHz. La fréquence du signal numérique PMP[] est donc de 4,68MHz/(54*)=9Hz. Les signaux PWM ont la même fréquence : valeur satisfaisante. 8. Comparaisons : relevés expérimentaux inst PDC[] proche de 8 ortie du comparateur PMP[] converti par le CNA de la carte d'étude CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC PDC[] proche de 55 ortie du comparateur PMP[] converti par le CNA de la carte d'étude PDC[] proche de ortie du comparateur PMP[] converti par le CNA de la carte d'étude 8. Dead_ime chéma original NO inst6 AND DFFE PRN D Q OP PWMD COMP _PWM _EN DELAY[5..] INP INP INP INP DFFE PRN D Q ENA inst XOR inst Dead_ime_Cpt sload data[5..] down counter inst AND inst ENA inst9 DFFE PRN D Q ENA inst OP PWM clock clk_en cnt_en q[5..] cout inst NO inst5 CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC chéma de test OP LOAD OP COMPR OP D NO inst6 AND DFFE PRN D Q OP PWMD COMP _PWM _EN DELAY[5..] INP INP INP INP DFFE PRN D Q ENA inst XOR inst Dead_ime_Cpt sload data[5..] down counter inst AND inst ENA inst9 DFFE PRN D Q ENA inst OP OP PWM D clock clk_en cnt_en q[5..] cout OP OP Q[5..] CO inst NO inst5 Résultats de simulation : Pour simplifier, on a utilisé une horloge _PWM de 4MHz avec _EN constamment à "". Le décompteur "Dead_ime_Cpt" est monté en monostable à déclenchement synchrone. Le déclenchement est provoqué à chaque transition du signal COMP par le signal LOAD produit par la bascule D et la porte XOR associée. Le décompteur est prépositionné à la valeur DELAY[] au déclenchement du monostable. La sortie CO passe alors à "" jusqu'à ce que le compteur atteigne l'état : la durée à l'état bas de CO est de DELAY[]xPériode_PWM. Le signal CO est combiné avec COMPR pour produire les signaux D et D conformes au résultat attendu : temps mort entre les transitions (qd D et D sont à ""). Les signaux D et D sont synchronisés avec l'horloge pour supprimer les "glitchs". Le temps mort dure DELAY[] périodes d'horloge. Note : le retard entre COMP et les signaux PWM est sans effet car tous les 6 signaux PWM sont retardés de façon identique. Attention : la structure ne fonctionne plus si la durée du signal COMP est plus courte que le temps mort désiré. CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC Relevés expérimentaux (DELAY[]=) : COMP PWMD PWM On mesure un temps mort de 45n, conforme avec la valeur DELAY[] : /4,68MHz Le retard de PWMD est dû aux bascules D de synchronisation. COMP PWMD PWM Résultats conformes. CREMMEL Marcel Page /5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC ne période complète (dans les mêmes conditions) : PWMD PWM PMR[] converti par le CNA de la carte d'étude 9. Résultat final (avant interface de puissance) Les sorties PWMD à PWMD de l'epld sont appliquées à filtres passe-bas du ordre (R=K, C=nF) de fréquence de coupure Fc=59Hz. On observe ainsi les valeurs moyennes de ces signaux. Conditions : LIMI[]=4 DELAY[]= ynchro externe sur de la sortie H Bleu = PWM Rouge = PWM Noir = PWM La fréquence des phases est suffisamment basse (,9Hz) pour passer le filtre passe-bas sans atténuation. Le résultat est conforme! CREMMEL Marcel Page 4/5 électronique - /8/6
Application maquette d'étude EPK Générateur VM triphasé pour moteur BLDC Relevés des tensions différentielles: PWM-PWM PMW-PWM PWM-PWM ensibilité : V/div CREMMEL Marcel Page 5/5 électronique - /8/6