You are on page 1of 25

Applications maquette d'tude EP10K20

GNRATEUR PWM SVM TRIPHAS POUR


MOTEUR BLDC
SCHMAS ET DESCRIPTIONS POUR EPLD
L'acronyme SVM provient de "Space Vector Modulation". Il s'agit d'un procd de PWM permettant
d'appliquer au moteur une tension entre phases de forme sinusodale et d'amplitude gale la tension
DC applique aux 3 bras de l'interface de puissance. Le gain est de 15% par rapport au procd PWM
sinusodal conventionnel.
1. Objectifs
tudier, mettre en uvre et tester des structures proches de celles intgres dans les microcontroleurs
MICROCHIP destines 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 1 paire de ples (modle 50MT33). Le rotor est aliment en DC entre 2
phase pour le magntiser, le stator est aliment par une source DC de 12V via 3 bras PWM.
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 2/25 TS lectronique - 31/08/06
2. Principe de la modulation SV
On utilise la structure classique des 3 bras de commutateurs commands par 3 comparateurs. Le signal
de rfrence est de forme triangulaire et de frquence F
PWM
trs grande devant la frquence des signaux
ua, ub et uc (au moins 20x).
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 3/25 TS lectronique - 31/08/06
Dans ces conditions on peut crire (commutateurs parfaits) :
a moy
u
2
E
Uan = ,
b moy
u
2
E
Ubn = et
c moy
u
2
E
Ucn =
Les valeurs instantanes de ua, ub et uc doivent rester l'intrieur des valeurs crtes de la
porteuse ("carrier).
En liminant les composantes harmoniques (frquences multiples de F
PWM
), et si F
PWM
est trs grande
devant la frquence des signaux ua, ub et uc, on peut confondre Uan
moy
et Uan.
2.1 PWM sinusodal
On produit 3 consignes sinusodales dphases de 120 :
( ) t sin m u
a
=
|
.
|

\
|
+ =
3
2
t sin m u
b

|
.
|

\
|
+ =
3
4
t sin m u
c

m : indice de modulation compris entre 0 et 1


Il en rsulte :
( ) t sin m
2
E
U
aN
=
|
.
|

\
|
+ =
3
2
t sin m
2
E
U
bN

|
.
|

\
|
+ =
3
4
t sin m
2
E
U
cN

CQFD
Les tensions entre phases sont :
|
.
|

\
|
+ =
6
t sin m 3
2
E
U
ab

|
.
|

\
|
+ =
6
5
t sin m 3
2
E
U
bc

|
.
|

\
|
+ =
2
3
t sin m 3
2
E
U
ca

L'amplitude maximum entre phases est donc de 3


2
E
, soit 86,6% de E pour m=1.
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 4/25 TS lectronique - 31/08/06
2.2 Modulation Space Vector
Les 6 commutateurs peuvent prendre 2
3
tats diffrents reprsents dans la figure
ci-contre.
Ces 8 tats sont cods de S0 S7. La
modulation "SV" consiste piloter les
commutateurs en PWM pour passer
progressivement d'un tat au suivant.
Les 3 sorties a, b et c alimentent les 3
phases du moteur qui crent des champs
magntiques dphass de 120.
On peut alors reprsenter l'orientation du
champ magntique pour chacun des 8
tats. Ces tats se transforment alors en
vecteurs de tension (
0
U


7
U

sur la
figure ci-contre).
Les tats S0 et S7 ne crent pas de champ
magntique, les vecteurs 0 U

et 7 U

ont
donc une longueur nulle.
Les autres vecteurs ont une longueur de 1
et respectent les relations suivantes :
4 1
U U

=
5 2
U U

=
6 3
U U

=
0 U U U
5 3 1
= + +

Objectif : crer un vecteur U

de longueur
constante qui suit, pour sa valeur maxi, le
cercle en pointill de rayon
2
3
.
Pour cela on module en consquence les rapports cycliques de conduction des commutateurs dans
chacun des 6 secteurs.
En notant T
0
T
7
la dure de chaque tat S
0
S
7
sur une priode PWM, on obtient la relation vectorielle
suivante (on suppose que la frquence PWM est trs grande devant la vitesse de rotation du vecteur U

:
7
S
7
6
S
6
5
S
5
4
S
4
3
S
3
2
S
2
1
S
1
0
S
0
U
T
T
U
T
T
U
T
T
U
T
T
U
T
T
U
T
T
U
T
T
U
T
T
U

+ + + + + + + =
Avec T
S
=T
0
+T
1
+T
2
+T
3
+T
4
+T
5
+T
6
+T
7
: priode PWM
Pour respecter cette relation la lettre et donc atteindre l'objectif, il faut calculer les dures T
0
T
7
pour
chaque position angulaire de U

. On en dduit les consignes de tension ua, ub et uc ncessaires.


Ce procd n'est pas utilis car il provoque de trop nombreux changements d'tats (32 par priode
PWM) et les pertes par commutation deviennent excessives.
Solution adopte :
- Le diagramme vectoriel est divis en 6 secteurs de 60
- Dans chaque secteur, seuls 4 vecteurs
i
U

sont utiliss pour produire U

(les 2 vecteurs qui


encadrent le secteur, ainsi que
0
U

et
7
U

) :
secteur I :
7
S
7
2
S
2
1
S
1
0
S
0
U
T
T
U
T
T
U
T
T
U
T
T
U

+ + + = Avec T
S
=T
0
+T
1
+T
2
+T
7
: priode PWM
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 5/25 TS lectronique - 31/08/06
secteur II :
7
S
7
3
S
3
2
S
2
0
S
0
U
T
T
U
T
T
U
T
T
U
T
T
U

+ + + = Avec T
S
=T
0
+T
2
+T
3
+T
7
secteur III :
7
S
7
4
S
4
3
S
3
0
S
0
U
T
T
U
T
T
U
T
T
U
T
T
U

+ + + = Avec T
S
=T
0
+T
3
+T
4
+T
7
secteur IV :
7
S
7
5
S
5
4
S
4
0
S
0
U
T
T
U
T
T
U
T
T
U
T
T
U

+ + + = Avec T
S
=T
0
+T
4
+T
5
+T
7
secteur V :
7
S
7
6
S
6
5
S
5
0
S
0
U
T
T
U
T
T
U
T
T
U
T
T
U

+ + + = Avec T
S
=T
0
+T
5
+T
6
+T
7
secteur VI :
7
S
7
1
S
1
6
S
6
0
S
0
U
T
T
U
T
T
U
T
T
U
T
T
U

+ + + = Avec T
S
=T
0
+T
6
+T
7
+T
7
- A un instant donn, l'angle magntique du moteur se trouve dans un des 6 secteurs. On calcule alors
les rapports cycliques ncessaires pour placer le vecteur U

dans cette position.


Cette solution ne ncessite que 12 changements d'tats par priode PWM (pertes plus faibles) et rduit
aussi le nombre de calculs ncessaires.
Par exemple, dans le secteur I :
7
S
7
2
S
2
1
S
1
0
S
0
U
T
T
U
T
T
U
T
T
U
T
T
U

+ + + = Avec T
S
=T
0
+T
1
+T
2
+T
7
: priode PWM
Quand le vecteur U

se dplace de 0 60, la dure T1 de S1 varie du max 0 tandis que la


dure T2 de S2 varie de 0 au max.
On choisit gnralement : T
0
= T
7
pour des raisons de symtrie et limiter les composantes
harmoniques.
Pour obtenir un vecteur U

de longueur m(m est l'indice de modulation), on calcule T


0
, T
1
, T
2
et
T
7
partir du diagramme vectoriel :
|
.
|

\
|
= |
.
|

\
|
= t
3

sin m
3
2
3

sin m
3
2
T
T
S
1

( ) ( ) t sin m
3
2
sin m
3
2
T
T
S
2
= =
( )
2
T T T
T
T
T
T
2 1 S
S
7
S
0
+
= =
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 6/25 TS lectronique - 31/08/06
On en dduit :
S
0
T
T
PWMa =
S
0 1
T
T T
PWMb
+
=
S
7 S
S
2 1 0
T
T - T
T
T T T
PWMc =
+ +
=
Pour ne pas obtenir des dures T
0
et T
7
ngatives (irralisables !), le vecteur U

doit rester
l'intrieur de l'hexagone. Le cas limite est obtenu = 30: on obtient T
1
=T
2
=T
S
/2 et T
0
=T
7
=0
quand le vecteur U

est sur le cercle en pointill de rayon


2
3
.
L'indice de modulation m doit donc rester infrieur m
max
=
2
3
= 0,866
Pour cette valeur m
max
, on obtient :
- amplitude de Ua , Ub et Uc = E 0,433 E
4
3
m
2
E
max
= =
- amplitude de Uab, Ubc et Uca = E m 3
2
E
max
=
Conclusion : les amplitudes sont augmentes de 15,5% par rapport au PWM sinusodal
conventionnel.
2.3 Dures des tats des commutateurs dans chaque secteur
Une simple transposition d'angle permet de calculer les dures T
0
T
7
des tats S
0
S
7
dans chacun des
secteurs :
Secteur I Secteur II Secteur III
(0 s s t/3) (t/3 s s 2t/3) (2t/3 s s t)
|
.
|

\
|
=
3

m.sin
3
2
T
T
S
1
|
.
|

\
|
=
3
2.
m.sin
3
2
T
T
S
2
( ) = m.sin
3
2
T
T
S
3
( ) m.sin
3
2
T
T
S
2
= |
.
|

\
|
=
3
m.sin
3
2
T
T
S
3

|
.
|

\
|
=
3
2
m.sin
3
2
T
T
S
4

( )
S
2 1 S
S
7
S
0
2.T
T T T
T
T
T
T +
= =
( )
S
3 2 S
S
7
S
0
2.T
T T T
T
T
T
T +
= =
( )
S
4 3 S
S
7
S
0
2.T
T T T
T
T
T
T +
= =
Secteur IV Secteur V Secteur VI
(t s s 4t/3) (4t/3 s s 5t/3) (5t/3 s s 2t)
|
.
|

\
|
=
3
4
m.sin
3
2
T
T
S
4
|
.
|

\
|
=
3
5
m.sin
3
2
T
T
S
5
( ) = 2 m.sin
3
2
T
T
S
6
( ) = m.sin
3
2
T
T
S
5
|
.
|

\
|
=
3
4
m.sin
3
2
T
T
S
6

|
.
|

\
|
=
3
5
m.sin
3
2
T
T
S
1

( )
S
5 4 S
S
7
S
0
2.T
T T T
T
T
T
T +
= =
( )
S
6 5 S
S
7
S
0
2.T
T T T
T
T
T
T +
= =
( )
S
1 6 S
S
7
S
0
2.T
T T T
T
T
T
T +
= =
On constate que les calculs donnent des rsultats identiques dans chaque secteur ce qui simplifie la
ralisation du modulateur.
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 7/25 TS lectronique - 31/08/06
2.4 Succession des tats des commutateurs dans chaque secteur
Les solutions sont multiples, mais on s'impose le critre suivant : pas de changement d'tat simultan
de 2 bras. On obtient les rsultats suivants :
Etats S0 (000) S1 (100) S2 (110) S7 (111) S2 (110) S1 (100) S0 (000)
Dures T0/2 T1/2 T2/2 T7 T2/2 T1/2 T0/2
UaN
UbN
UcN
Etats S0 (000) S3 (010) S2 (110) S7 (111) S2 (110) S3 (010) S0 (000)
Dures T0/2 T3/2 T2/2 T7 T2/2 T3/2 T0/2
UaN
UbN
UcN
Etats S0 (000) S3 (010) S4 (011) S7 (111) S4 (011) S3 (010) S0 (000)
Dures T0/2 T3/2 T4/2 T7 T4/2 T3/2 T0/2
UaN
UbN
UcN
Etats S0 (000) S5 (001) S4 (011) S7 (111) S4 (011) S5 (001) S0 (000)
Dures T0/2 T5/2 T4/2 T7 T4/2 T5/2 T0/2
UaN
UbN
UcN
Etats S0 (000) S5 (001) S6 (101) S7 (111) S6 (101) S5 (001) S0 (000)
Dures T0/2 T5/2 T6/2 T7 T6/2 T5/2 T0/2
UaN
UbN
UcN
Etats S0 (000) S1 (100) S6 (101) S7 (111) S6 (101) S1 (100) S0 (000)
Dures T0/2 T1/2 T6/2 T7 T6/2 T1/2 T0/2
UaN
UbN
UcN
TS
S
e
c
t
e
u
r

V
S
e
c
t
e
u
r

V
I
S
e
c
t
e
u
r

I
S
e
c
t
e
u
r

I
I
S
e
c
t
e
u
r

I
I
I
S
e
c
t
e
u
r

I
V
2.5 Calculs des rapports cycliques dans chaque secteur
Ces calculs tant numriques, il est ncessaire de fixer la rsolution de l'angle magntique du moteur.
Dans l'exemple qui suit la rsolution choisie est de 360/(6x256)=0,234.
Il serait possible de calculer les 3 rapports cycliques de chaque bras pour les 6x256=1536 angles
lmentaires et les ranger dans une table en mmoire morte. Cette solution est rejete car la taille de la
table excde les possibilits de l'EPLD. Celle-ci n'intgre que 12288 bits alors que la table ncessite
1536x3x8 bits (3 rapports cycliques cods sur 8 bits) = 36864 bits.
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 8/25 TS lectronique - 31/08/06
Les symtries dans le diagramme vectoriel permettent de rduire la taille de la table, mais au dtriment
de calculs supplmentaires que l'EPLD doit excuter.
Les 2 tables utilises permettent de dterminer les rapports cycliques T
A
/T
S
et T
B
/T
S
dans un secteur :
Table T
A
: |
.
|

\
|
=
3

sin m
3
2
T
T
S
A
Table T
B
: ( ) sin m
3
2
T
T
S
B
= pour
3
0

s s
La correspondance entre les temps Ti et T
A
ou T
B
est donne dans le tableau ci-dessous :
UaN UbN UcN
Sect. Priode PWM T
A
T
B
PWMa PWMb PWMc
I T
S
= T
1
+T
2
+T
0
+T
7
T1 T2
S
0
T
T
S
A 0
S
1 0
T
T T
T
T T +
=
+
S
0 S
S
7 S
T
T T
T
T T
=

II T
S
= T
2
+T
3
+T
0
+T
7
T2 T3
S
B 0
S
3 0
T
T T
T
T T +
=
+
S
0
T
T
S
0 S
S
7 S
T
T T
T
T T
=

III T
S
= T
3
+T
4
+T
0
+T
7
T3 T4
S
0 S
S
7 S
T
T T
T
T T
=

S
0
T
T
S
A 0
S
3 0
T
T T
T
T T +
=
+
IV T
S
= T
4
+T
5
+T
0
+T
7
T4 T5
S
0 S
S
7 S
T
T T
T
T T
=

S
B 0
S
5 0
T
T T
T
T T +
=
+
S
0
T
T
V T
S
= T
5
+T
6
+T
0
+T
7
T5 T6
S
A 0
S
5 0
T
T T
T
T T +
=
+
S
0 S
S
7 S
T
T T
T
T T
=

S
0
T
T
VI T
S
= T
6
+T
1
+T
0
+T
7
T6 T1
S
0
T
T
S
0 S
S
7 S
T
T T
T
T T
=

S
B 0
S
1 0
T
T T
T
T T +
=
+
Le rapport cyclique T
0
/T
S
est calcul comme suit :
( )
|
|
.
|

\
|
=
+
= =
S
B
S
A
S
B A S
S
7
S
0
T
T
T
T
1
2
1
2.T
T T T
T
T
T
T
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 9/25 TS lectronique - 31/08/06
2.6 Simulation Excel
Le tableur Excel est utilis pour valider les tables de valeurs des rapports cycliques. Le fichier
"Table_TA_TB_T0.xls" comporte les tables et les formules de calcul dcrites prcdemment.
On obtient les rsultats suivants sur 360 magntiques :
Les 3 rapports cycliques
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
0 60 120 180 240 300 360
PWMa PWMb PWMc
Les 3 tensions inter-phases (relativement E)
-1
-0,8
-0,6
-0,4
-0,2
0
0,2
0,4
0,6
0,8
1
0 60 120 180 240 300 360
Ua-Ub
Ua-Ub
Uc-Ua Ub-Uc
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 10/25 TS lectronique - 31/08/06
3. Schma principal
Note : le moteur actuellement utilis n'tant pas quip de capteurs effet Hall, on utilise un simulateur
("Simul_Hall") qui produit les 3 signaux H1, H2 et H3 dphass de 60. La frquence est rglable avec
le codeur incrmental et dtermine la vitesse de rotation du moteur.
Fonction : le codeur incrmental rgle indpendamment la tension applique au moteur (quand LINE1
est "0") et la vitesse de rotation du moteur (quand LINE1 est "1"). Les signaux PWM1D PWM3U
pilotent une interface de puissance (voir schma plus loin) qui produit les 3 tensions inter-phases
sinusodales d'alimentation des 3 stators du moteur.
Avec le moteur utilis (1 paire de ples), la vitesse de rotation est rglable entre 0 et 1384tr/mn avec
une rsolution de 21,97tr/mn.
La consigne de niveau (NV) a une rsolution de 8 bits.
Le signal d'horloge CLK_18M432 est produit par l'oscillateur quartz OSC1 et vaut 18,432MHz.
4. Gene_CLK
On cherche rendre
l'ensemble du schma
synchrone avec l'horloge
18,432MHz.
La fonction "Gene_CLK"
produit des signaux de
validation d'horloge (dure =
1 priode 18,432MHz) avec
une frquence dtermine en
fonction des besoins :
EN_2K25 : 2,25KHz
EN_72K : 72kHz
EN_4M608 : 4,608MHz
VCC
CLK_18M432 INPUT
EN_72K OUTPUT
EN_2K25 OUTPUT
EN_4M608 OUTPUT
CLK OUT
Div_256
inst1
CLK
EN
OUT
Div_32
inst3
CLK EN_CLK
DIV_4
inst
PIN_110
VCC
CODA INPUT
PIN_109
VCC
CODB INPUT
PIN_91
VCC
CLK_18M432 INPUT
PIN_90
VCC
LI NE1 INPUT
PIN_48 PWM1D OUTPUT
PIN_49 PWM1U OUTPUT
PIN_50 PWM2D OUTPUT
PIN_51 PWM2U OUTPUT
PIN_53 PWM3D OUTPUT
PIN_54 PWM3U OUTPUT
PIN_103 COL1 OUTPUT
PIN_164 CLK_CNA OUTPUT
PIN_75 TEST OUTPUT
PIN_76 TEST1 OUTPUT
PIN_78 TEST2 OUTPUT
PIN_74 SYNC OUTPUT
PIN_62 H1 OUTPUT
PIN_63 H2 OUTPUT
PIN_64 H3 OUTPUT
PIN_71
PIN_72
PIN_73
SECT[2..0] OUTPUT
PIN_166
PIN_167
PIN_168
PIN_169
PIN_171
PIN_172
PIN_173
PIN_174
MAGN_POS[7..0] OUTPUT
DELAY[ 5. . 0]
DELAY
i nst4
LIMIT[5..0]
LIMIT
inst5
GND
EN_COD
CODA
CODB
CLK_18M432
EN_2K25
H1
H2
H3
Simul_Hall
i nst3
PDC1[7..0]
PDC2[7..0]
PDC3[7..0]
DELAY[5..0]
CLK_18M432
CLK_EN
PTMR[7..0]
TEST
PWM1D
PWM1U
PWM2D
PWM2U
PWM3D
PWM3U
Generateur_PWM
i nst1
CLK_18M432 EN_2K25
EN_72K
EN_4M608
Gene_CLK
inst2
EN_COD
CODA
CODB
CLK_18M432
EN_2K25
NIV[7..0]
Reg_Niveau
i nst10
NOT
i nst11
H1
H2
H3
M[7..0]
LIM[5..0]
CLK_18M432
EN_72K
SYNC
POS[7..0]
SECT[2..0]
PWM1[7..0]
PWM2[7..0]
PWM3[7..0]
Gene_3_SVM
i nst
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 11/25 TS lectronique - 31/08/06
4.1 DIV_4
subdesign DIV_4
(
CLK : input;
EN_CLK : output;
)
variable
Q[1..0] : DFF;
begin
Q[].clk=CLK;
Q[].d=Q[].q+1;
EN_CLK=Q[].q==0;
end;
4.2 DIV_256
SUBDESIGN Div_256
(
CLK : INPUT;
OUT : OUTPUT;
)
VARIABLE Q[7..0] : DFF;
BEGIN
Q[].CLK=CLK;
Q[].D=Q[].Q+1;
OUT=Q[].Q==0;
END;
4.3 DIV_32
SUBDESIGN Div_32
(
CLK : INPUT;
EN : input;
OUT : OUTPUT;
)
VARIABLE Q[4..0] : DFFE;
BEGIN
Q[].CLK=CLK;
Q[].ena=EN;
Q[].D=Q[].Q+1;
OUT=(Q[].Q==0)&EN;
END;
5. Simul_Hall
Les signaux CODA et CODB produits par le codeur incrmental passent par des fonctions anti-rebonds
indispensables compte-tenu de la frquence d'horloge.
Le sens de chaque cran est dtect par la fonction "decod_a_b" :
- DIR indique le sens au moment du | sur CLK : "1" : CW et "0" : CCW
VCC
CODB INPUT
VCC
CODA INPUT
VCC
CLK_18M432 INPUT
VCC
EN_2K25 INPUT
VCC
EN_COD INPUT
H1 OUTPUT
H2 OUTPUT
H3 OUTPUT
IN
EN
CLK
OUT
Anti_rebonds
inst2
IN
EN
CLK
OUT
Anti_rebonds
inst3
NOT
inst12
NOT
inst13
A
B
DIR
CLK
decod_a_b
inst15
UD
CLK
POS[6..0]
SENS
CPT_UD
inst5
AND2
inst4
FREQ[6..0]
CLK
H1
H2
H3
NCO_H
inst
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 12/25 TS lectronique - 31/08/06
Les | sur CLK sont compts ou dcompts par la fonction CPT_UD :
- POS[6..0] : nombre de crans. Initialis 0 au moment de la configuration de l'EPLD.
- SENS : indique le sens du nombre de crans ("0" : CW, "1" : CCW)
La fonction CPT_UD pilote un oscillateur numrique command (NCO) qui produit en interne un
signal carr de frquence proportionnelle POS[]=FREQ[] :
- FREQ[]
2
F
F
23
CLK_18M432
H
= . Soit une rsolution de 2,19Hz et une frquence max de 138,4Hz
Cette frquence est applique un compteur 3 bits modulo 6 dont les sorties sont dcodes pour
produire les 3 signaux H1, H2 et H3 dphass de 60.
La frquence de ces signaux est donc rglable de 0Hz 23,07Hz avec une rsolution de 0,366Hz.
5.1 Anti_rebonds
Les 2 premires bascules D permettent d'liminer les effets des rebonds plus courts que 2 priodes
d'horloge valides : soit 2/2,25kHz = 889S
5.2 Decod_a_b
SUBDESIGN decod_a_b
(
A, B : INPUT;
DIR, CLK : OUTPUT;
)
VARIABLE
DIR_FF : DFF;
BEGIN
DIR_FF.CLK = B;
DIR_FF.D = A;
DIR = DIR_FF.Q;
CLK = A & B;
END;
L'information de direction est chantillonne sur A au | de B.
Le signal CLK est produit par une fonction ET entre A et B.
5.3 CPT_UD
subdesign CPT_UD
(
UD, CLK : input;
POS[6..0] : output;
SENS : output;
)
variable Q[7..0] : dff;
begin
Q[].clk=CLK;
if UD then Q[].d=Q[].q+1;
else Q[].d=Q[].q-1;
end if;
if Q7.q then POS[6..0]=!Q[6..0];
else POS[6..0]= Q[6..0];
end if;
SENS=Q7.q;
end;
Les | sur CLK sont compts ou dcompts par la fonction CPT_UD :
VCC
IN INPUT
VCC
EN INPUT
VCC
CLK INPUT
OUT OUTPUT
PRN
CLRN
D
ENA
Q
DFFE
inst
PRN
CLRN
D
ENA
Q
DFFE
inst2
AND2
inst3
OR2
inst4
AND2
inst5
AND2
inst6
OR2
inst7
PRN
CLRN
D
ENA
Q
DFFE
inst8
NOT
inst9
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 13/25 TS lectronique - 31/08/06
- POS[6..0] : nombre de crans. Initialis 0 au moment de la configuration de l'EPLD.
- SENS : indique le sens du nombre de crans ("0" : CW, "1" : CCW)
5.4 NCO_H
subdesign NCO_H
( FREQ[6..0] : input;
CLK : input;
H1,H2,H3 : output;
)
variable
REG[22..0] : dff;
FREQW[22..0] : node;
QH[2..0] : dff;
begin
FREQW[22..7]=gnd; FREQW[6..0]=FREQ[6..0];
REG[].d = REG[].q + FREQW[];
REG[].clk = CLK;
QH[].clk = REG22.q;
if QH[].q==5 then QH[].d=0;
else QH[].d=QH[].q+1;
end if;
H1=(QH[].q==0) or (QH[].q==1) or (QH[].q==2);
H2=(QH[].q==1) or (QH[].q==2) or (QH[].q==3);
H3=(QH[].q==2) or (QH[].q==3) or (QH[].q==4);
end;
La structure est classique. Le registre et l'additionneur ont une taille de 23 bits pour obtenir la rsolution
de rglage voulue.
La sortie REG22.q est utilise comme signal d'horloge d'un compteur 3 bits modulo 6. Les 3 sorties sont
dcodes pour produire les 3 signaux H1, H2 et H3 dphass de 60.
6. Reg_Niveau
La structure est similaire la fonction "Simul_Hall", mais elle ne comporte pas de fonction NCO.
La fonction de comptage des crans diffre aussi; elle ne ncessite pas de commentaires supplmentaires.
VCC
CODB INPUT
VCC
CODA INPUT
VCC
CLK_18M432 INPUT
VCC
EN_2K25 INPUT
VCC
EN_COD INPUT
NIV[7..0] OUTPUT
IN
EN
CLK
OUT
Anti_rebonds
inst2
IN
EN
CLK
OUT
Anti_rebonds
inst3
NOT
inst12
NOT
inst13
A
B
DIR
CLK
decod_a_b
inst15
AND2
inst4
up/down
updown
clock q[7..0]
Cpt_UD_Niv
inst1
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 14/25 TS lectronique - 31/08/06
7. Gene_3SVM
La fonction produit 3 signaux numriques SVM cods en Bd sur 8 bits et dphass de 120. Ils sont
synchroniss sur les signaux des capteurs effet Hall : H1, H2 et H3. Leurs niveaux sont rglables avec
les entres NIV1, NIV2 et NIV3 codes en C2 (-128 +127).
La structure utilise 2 ROM (taille = 256 octets) contenant les tables TA et TB (voir 2).
Les ROM sont adresses par M_POS[7..0] qui reprsente la position angulaire du moteur dans un des 6
secteurs. Le codage sur 8 bits donne une rsolution de 60/256=0,235 magntique.
Le secteur actuel est donn par SECT[2..0] qui volue entre 0 et 5. Cette information est utilise par la
fonction "CAL_SVM" qui calcule les rapports cycliques permettant de produire la tension
d'alimentation adquate du moteur.
La fonction "Modulation" multiplie les valeurs TA[] et TB[] (en BN) avec l'indice de modulation M[] et
ralise donc le rglage de niveau. On ne garde que l'octet de poids fort du rsultat.
La fonction "LIMIT_PWM" vite d'obtenir les rapports cycliques extrmes de 0% et 100% et bloquer le
hachage des courants dans le moteur.
VCC
LIM[5..0] INPUT
VCC
CLK_18M432 INPUT
VCC
EN_72K INPUT
VCC
H1 INPUT
VCC
H2 INPUT
VCC
H3 INPUT
SYNC OUTPUT
PWM1[7..0] OUTPUT
PWM2[7..0] OUTPUT
PWM3[7..0] OUTPUT
SECT[2..0] OUTPUT
POS[7..0] OUTPUT
address[7..0] q[7..0]
ROM_TA
inst7
address[7..0] q[7..0]
ROM_TB
inst8
SECT[2..0]
TA[7..0]
TB[7..0]
PWM_R[7..0]
PWM_Y[7..0]
PWM_B[7..0]
CALC_SVM
inst9
IN1[7..0]
IN2[7..0]
IN3[7..0]
LIM[5..0]
CLK
EN
OUT1[7..0]
OUT2[7..0]
OUT3[7..0]
LIMIT_3PWM
inst4
H1
H2
H3
CLK_18M432
EN_72K
SECT[2..0]
PULSE_H
M_POS[7..0]
Capteur_Hall
inst
TA[7..0]
TB[7..0]
M[7..0]
TAM[7..0]
TBM[7..0]
Modulation
inst1
VCC
M[7..0] INPUT
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 15/25 TS lectronique - 31/08/06
7.1 Capteur_Hall
7.1.1 Anti_rebonds
Fonctions dj dcrites (5.1)
7.1.2 Pulse_Hall
Cette fonction dtecte les changements d'tats de H1, H2 et H3 pour produire :
sur PULSE_0 : une impulsion de largeur 1/F
CLK
au | de H1
sur PULSE_H : une impulsion de largeur 1/F
CLK
au | ou + de H1, H2 ou H3
Le signal PULSE_0 met zro de faon synchrone le compteur de secteurs et ralise donc la
synchronisation 360" de l'alimentation du moteur.
Le signal PULSE_0 met zro de faon synchrone le compteur de position dans un secteur pour
l'initialiser chaque dtection de secteur.
IMPORTANT : on peut amliorer la fonction de synchronisation en codant les signaux H1, H2 et H3
et en affecter le compteur de secteurs chaque transition. Le plus simple serait de remplacer le
compteur par une machine d'tats qui produit 3 signaux similaires H1, H2 et H3.
VCC
CLK_18M432 INPUT
VCC
H1 INPUT
VCC
H2 INPUT
VCC
H3 INPUT
VCC
EN_72K INPUT
PULSE_H OUTPUT
SECT[2..0] OUTPUT
IN
EN
CLK
OUT
Anti_rebonds
inst
IN
EN
CLK
OUT
Anti_rebonds
inst4
IN
EN
CLK
OUT
Anti_rebonds
inst5
down counter
sload
data[15..0]
clock
q[15..0]
cout
Div_prog_16b
inst9
up counter
sclr
clock
clk_en
cnt_en
q[7..0]
cout
Cpt_Magn_pos
inst10
NOT
inst11
DFF
data[15..0]
clock
enable
q[15..0]
Periode_H
inst8
OR2
inst12
H1
H2
H3
CLK
PULSE_0
PULSE_H
Pulse_Hall
inst6
up counter
modulus 6 sclr
clock
clk_en
q[2..0]
Cpt_Sect_SVM
inst13
up counter
sclr
clock
cnt_en
q[15..0]
Cpt_Mesure_TH
inst7
M_POS[7..0] OUTPUT
VCC
H1 INPUT
VCC
H2 INPUT
VCC
H3 INPUT
VCC
CLK INPUT
PULSE_H OUTPUT
PULSE_0 OUTPUT
CLRN
D
PRN
Q
DFF
inst
XOR
inst1
OR3
inst2
CLRN
D
PRN
Q
DFF
inst3
XOR
inst4
CLRN
D
PRN
Q
DFF
inst5
XOR
inst6
AND2
inst7
NOT
inst8
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 16/25 TS lectronique - 31/08/06
7.1.3 Cpt_Sect_SVM
Il est incrment au dbut de chaque secteur grce au signal PULSE_H.
7.1.4 Cpt_Magn_pos
Compteur 8 bits synchrone raz synchrone.
La sortie COUT permet de bloquer le compteur quand il atteint 255.
Il est incrment un rythme tel que son tat volue entre 0 et une valeur aussi proche que possible de
255 dans un secteur. Le rythme est calcul la fin de chaque secteur par les fonctions
"Cpt_Mesure_TH", "Periode_H" et "Div_prog_16b".
7.1.5 Cpt_Mesure_TH
Ce compteur est incrment au rythme de 72kHz grce au signal EN_72K.
Il est mis 0 de faon synchrone avec PULSE_H, donc au dbut de chaque secteur. Son tat juste avant
cette raz est donc proportionnel la dure T
SECT
du dernier secteur :
Etat final Cpt_Mesure_TH = 72000.T
SECT
Exemples : Vitesse de rotation magntique T
SECT
Etat final Cpt_Mesure_TH
66,7 tours/mn 150mS 10800
3333 tours/mn 3mS 216
La vitesse de rotation magntique doit tre comprise entre 11 tr/mn et 7200 tr/mn pour viter le
dpassement du compteur et obtenir un rsultat suprieur 100 (prcision meilleure que 1%).
7.1.6 Periode_H
Sa fonction est simplement de mmoriser le rsultat 72000.T
SECT
au moment adquat.
7.1.7 Div_prog_16b
Il s'agit d'un dcompteur synchrone 16 bits prpositionnement synchrone. L'horloge est le signal
CLK_18M432 de frquence 18,432MHz.
La sortie COUT passe "1" quand le compteur est 0. Sa frquence est donc de :
SECT SECT SECT
CLK_18M432
COUT
T
256
T 72000
18432000
1 T 72000
F
F =

~
+
=
Cette frquence incrmente le compteur "Cpt_Magn_pos" qui est mis zro au dbut de chaque secteur,
donc avec une priodicit de T
SECT
.
Ainsi, quand le moteur tourne vitesse constante, le compteur atteint tout juste la valeur 255 la fin de
chaque secteur, quelle que soit cette vitesse : CQFD.
7.2 ROM_TA
Cette ROM de 256 octets contient la table TA vue au 2.5. Elle est mise l'chelle :
Table T
A
:
| |
|
.
|

\
|
=
|
|
.
|

\
|
3

256
7..0 M_POS
3

sin 256
T
T
ROM
S
A
pour 0 s M_POS[] s 255
Extrait du fichier "Table_TA.mif" (adresse gauche, donne droite) :
WIDTH = 8;
DEPTH = 256;
ADDRESS_RADIX = DEC;
DATA_RADIX = DEC;
CONTENT
BEGIN
0 : 222 ;
1 : 221 ;
2 : 221 ;
3 : 220 ;

252 : 4 ;
253 : 3 ;
254 : 2 ;
255 : 1 ;
END;
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 17/25 TS lectronique - 31/08/06
7.3 ROM_TB
Cette ROM de 256 octets contient la table TB vue au 2.5. Elle est mise l'chelle :
Table T
B
:
| |
|
.
|

\
|
=
|
|
.
|

\
|
3

256
7..0 M_POS
sin 256
T
T
ROM
S
B
pour 0 s M_POS[] s 255
Extrait du fichier "Table_TB.mif" (adresse gauche, donne droite) :
WIDTH = 8;
DEPTH = 256;
ADDRESS_RADIX = DEC;
DATA_RADIX = DEC;
CONTENT
BEGIN
0 : 0 ;
1 : 1 ;
2 : 2 ;
3 : 3 ;
4 : 4 ;

250 : 218 ;
251 : 219 ;
252 : 220 ;
253 : 220 ;
254 : 221 ;
255 : 221 ;
END;
7.4 Calc_SVM
Cette fonction effectue les calculs dcrits dans le tableau du 2.5 pour obtenir les 3 rapports cycliques
PWMa, PWMb et PWMc. Les calculs dpendent du secteur dans lequel se trouve l'axe magntique du
moteur; cette information est fournie par SECT[2..0].
Dans le tableau du 2.5, les valeurs des rapports cycliques PWMa, PWMb et PWMc sont comprises
entre 0 et 1. Dans la solution propose, les rapports cycliques correspondants PWM_R, PWM_Y et
PWM_B sont des entiers positifs cods sur 8 bits, donc de valeurs comprises entre 0 et 255.
subdesign CALC_SVM
(
SECT[2..0]:input;
TA[7..0]:input;
TB[7..0]:input;
PWM_R[7..0]:output;
PWM_Y[7..0]:output;
PWM_B[7..0]:output;
)
variable
T0_x2[7..0]:node;
T0[7..0] :node;
begin
T0_x2[]=255-TA[]-TB[]+1; -- +1 pour viter les dpassements
T0[6..0]=T0_x2[7..1]; T0[7]=GND;
case SECT[] is
when 0 => PWM_R[]=T0[];
PWM_Y[]=T0[]+TA[];
PWM_B[]=255-T0[];
when 1 => PWM_R[]=T0[]+TB[];
PWM_Y[]=T0[];
PWM_B[]=255-T0[];
when 2 => PWM_R[]=255-T0[];
PWM_Y[]=T0[];
PWM_B[]=T0[]+TA[];
when 3 => PWM_R[]=255-T0[];
PWM_Y[]=T0[]+TB[];
PWM_B[]=T0[];
when 4 => PWM_R[]=T0[]+TA[];
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 18/25 TS lectronique - 31/08/06
PWM_Y[]=255-T0[];
PWM_B[]=T0[];
when 5 => PWM_R[]=T0[];
PWM_Y[]=255-T0[];
PWM_B[]=T0[]+TB[];
end case;
end;
7.5 Modulation
La fonction "Modulation" multiplie les valeurs TA[] et TB[] (en BN) avec l'indice de modulation M[] et
ralise donc le rglage de niveau. On ne garde que l'octet de poids fort du rsultat.
7.6 Limit_3PWM
Cette fonction vite d'obtenir les rapports cycliques extrmes de 0% et 100% et bloquer le hachage des
courants dans le moteur.
subdesign LIMIT_3PWM
(
IN1[7..0]:input;
IN2[7..0]:input;
IN3[7..0]:input;
LIM[5..0]:input;
CLK:input;
EN :input;
OUT1[7..0]:output;
OUT2[7..0]:output;
OUT3[7..0]:output;
)
variable
LIM8[7..0]:node;
OUT1[7..0]:dffe;
OUT2[7..0]:dffe;
OUT3[7..0]:dffe;
begin
LIM8[7..6]=GND; LIM8[5..0]=LIM[5..0];
OUT1[].clk=CLK; OUT1[].ena=EN;
OUT2[].clk=CLK; OUT2[].ena=EN;
OUT3[].clk=CLK; OUT3[].ena=EN;
if IN1[]>255-LIM8[] then OUT1[]=255-LIM8[];
else if IN1[]>=LIM8[] then OUT1[]=IN1[];
else OUT1[]=LIM8[];
end if;
end if;
if IN2[]>255-LIM8[] then OUT2[]=255-LIM8[];
else if IN2[]>=LIM8[] then OUT2[]=IN2[];
else OUT2[]=LIM8[];
end if;
end if;
if IN3[]>255-LIM8[] then OUT3[]=255-LIM8[];
else if IN3[]>=LIM8[] then OUT3[]=IN3[];
VCC
TA[7..0] INPUT
VCC
TB[7..0] INPUT
VCC
M[7..0] INPUT
Unsigned
multiplication
dataa[7..0]
datab[7..0]
result[7..0]
Multiply_8x8
inst
Unsigned
multiplication
dataa[7..0]
datab[7..0]
result[7..0]
Multiply_8x8
inst3
TAM[7..0] OUTPUT
TBM[7..0] OUTPUT
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 19/25 TS lectronique - 31/08/06
else OUT3[]=LIM8[];
end if;
end if;
end;
La fonction opre une sorte d'crtage sur les 3 entres :
- Si l'entre est infrieure LIM[] alors la sortie vaut LIM[]
- Si l'entre est suprieure 255-LIM[] alors la sortie vaut 255-LIM[]
- Dans les autres cas : sortie = entre
Les sorties sont synchronises sur l'horloge CLK_18M432 pour viter l'apparition d'tats parasites.
8. Generateur_PWM
Cette fonction produit les 6 signaux PWM destins commander les 6 transistors des 3 bras de
commutateurs de l'interface de puissance. Les rapports cycliques de ces signaux sont dtermins par les
niveaux des signaux numriques PCD1[] PCD3[].
Le cur de la structure est le compteur-dcompteur "UD_Counter" qui dtermine la priode des signaux
PWM et la rsolution de rglage des rapports cycliques. Elle produit le signal numrique PTMR[] de
forme triangulaire.
Ce signal est compar aux 3 entres PCD1[] PCD3[] par 3 fonctions "Comp_PWM". Les sorties
respectives passent "1" quand le signal PTMR[] est suprieur PCDx[].
Ces sorties pourraient piloter directement les commutateurs des 3 bras s'ils taient parfaits.
Malheureusement les transistors qui les constituent ne commutent pas instantanment et il faut insrer
des temps morts chaque transition pendant lesquelles les 2 commutateurs du pont sont simultanment
ouverts. On amliore ainsi considrablement le rendement du bras.
VCC
DELAY[5..0] INPUT
VCC
CLK_EN INPUT
VCC
PDC1[7..0] INPUT
VCC
PDC2[7..0] INPUT
VCC
PDC3[7..0] INPUT
VCC
CLK_18M432 INPUT
PWM1D OUTPUT
PWM1U OUTPUT
PWM2D OUTPUT
PWM2U OUTPUT
PWM3D OUTPUT
PWM3U OUTPUT
PTMR[7..0] OUTPUT
TEST OUTPUT
CLK_PWM
CLK_EN
PTMR[7..0]
UD_Counter
inst
unsigned compare
dataa[7..0]
datab[7..0]
agb
Comp_PWM
inst11
unsigned compare
dataa[7..0]
datab[7..0]
agb
Comp_PWM
inst12
unsigned compare
dataa[7..0]
datab[7..0]
agb
Comp_PWM
inst8
COMP1
CLK_PWM
CLK_EN
DELAY[5..0]
PWM1D
PWM1U
Dead_Time
inst2
COMP1
CLK_PWM
CLK_EN
DELAY[5..0]
PWM1D
PWM1U
Dead_Time
inst3
COMP1
CLK_PWM
CLK_EN
DELAY[5..0]
PWM1D
PWM1U
Dead_Time
inst4
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 20/25 TS lectronique - 31/08/06
8.1 UD_Counter
On utilise un compteur-dcompteur synchrone dont le mode de fonctionnement est dtermin par l'tat
de la bascule RS synchrone :
- tat "0" : Up_Down_Cpt compte. La bascule est mise "1" de faon synchrone quand l'tat du
compteur est 254. Celui-ci passe alors 255 avant de dcompter.
- tat "1" : Up_Down_Cpt dcompte. La bascule est mise "0" de faon synchrone quand l'tat du
compteur est 1. Celui-ci passe alors 0 avant de compter.
Conclusion : volution du compteur : 253-254-255-254-253-252- 3-2-1-0-1-2-3-254-255-254-
Note : le signal CLK_EN ne passe "1" qu'une priode sur 4 de CLK_PWM cause de la fonction
"Div_4" (voir page 4). La frquence de comptage-dcomptage de Up_Down_Cpt est donc de
18,432MHz/4 = 4,608MHz.
La frquence du signal numrique PTMP[] est donc de 4,608MHz/(254*2)=9071Hz. Les signaux PWM
ont la mme frquence : valeur satisfaisante.
8.2 Comparaisons : relevs exprimentaux
PDC1[] proche de 128
Sortie du 1 comparateur
PTMP[] converti par le CNA de la
carte d'tude
VCC
CLK_PWM INPUT
VCC
CLK_EN INPUT
PTMR[7..0] OUTPUT
PRN
CLRN
S
R
Q
SRFF
inst14
NOT
inst1
up/down
updown
clock
clk_en
q[7..0]
Up_Down_Cpt
inst
compare
datab[]=1
dataa[7..0]
aeb
Comp_Down
inst13
compare
datab[]=254
dataa[7..0]
aeb
Comp_Up
inst12
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 21/25 TS lectronique - 31/08/06
PDC1[] proche de 255
Sortie du 1 comparateur
PTMP[] converti par le CNA de la
carte d'tude
PDC1[] proche de 0
Sortie du 1 comparateur
PTMP[] converti par le CNA de la
carte d'tude
8.3 Dead_Time
Schma original
VCC
COMP1 INPUT
VCC
CLK_PWM INPUT
VCC
DELAY[5..0] INPUT
VCC
CLK_EN INPUT
PWM1D OUTPUT
PWM1U OUTPUT
XOR
inst1
NOT
inst5
AND2
inst3
NOT
inst6
AND2
inst7
down counter
sload
data[5..0]
clock
clk_en
cnt_en
q[5..0]
cout
Dead_Time_Cpt
inst2
PRN
CLRN
D
ENA
Q
DFFE
inst9
PRN
CLRN
D
ENA
Q
DFFE
inst10
PRN
CLRN
D
ENA
Q
DFFE
inst11
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 22/25 TS lectronique - 31/08/06
Schma de test
Rsultats de simulation :
Pour simplifier, on a utilis une horloge CLK_PWM de 4MHz avec CLK_EN constamment "1".
Le dcompteur "Dead_Time_Cpt" est mont en monostable dclenchement synchrone. Le
dclenchement est provoqu chaque transition du signal COMP1 par le signal SLOAD produit par la
1 bascule D et la porte XOR associe.
Le dcompteur est prpositionn la valeur DELAY[] au dclenchement du monostable. La sortie
COUT passe alors "0" jusqu' ce que le compteur atteigne l'tat 0 : la dure l'tat bas de COUT est
de DELAY[]xPriode_CLKPWM.
Le signal COUT est combin avec COMP1R pour produire les signaux D1 et D2 conformes au rsultat
attendu : temps mort entre les transitions (qd D1 et D2 sont "0").
Les signaux D1 et D2 sont synchroniss avec l'horloge pour supprimer les "glitchs".
Le temps mort dure DELAY[] priodes d'horloge.
Note : le retard entre COMP1 et les signaux PWM est sans effet car tous les 6 signaux PWM sont
retards de faon identique.
Attention : la structure ne fonctionne plus si la dure du signal COMP1 est plus courte que le temps
mort dsir.
VCC
COMP1 INPUT
VCC
CLK_PWM INPUT
VCC
DELAY[5..0] INPUT
VCC
CLK_EN INPUT
PWM1D OUTPUT
PWM1U OUTPUT
XOR
inst1
NOT
inst5
AND2
inst3
NOT
inst6
AND2
inst7
down counter
sload
data[5..0]
clock
clk_en
cnt_en
q[5..0]
cout
Dead_Time_Cpt
inst2
PRN
CLRN
D
ENA
Q
DFFE
inst9
PRN
CLRN
D
ENA
Q
DFFE
inst10
PRN
CLRN
D
ENA
Q
DFFE
inst11
COUT OUTPUT
SLOAD OUTPUT
D2 OUTPUT
D1 OUTPUT
Q[5..0] OUTPUT
COMP1R OUTPUT
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 23/25 TS lectronique - 31/08/06
Relevs exprimentaux (DELAY[]=2) :
COMP1
PWM1D
PWM1U
On mesure un temps mort de 435nS, conforme avec la valeur DELAY[] : 2/4,608MHz
Le retard de PWM1D est d aux bascules D de synchronisation.
COMP1
PWM1D
PWM1U
Rsultats conformes.
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 24/25 TS lectronique - 31/08/06
Une priode complte (dans les mmes conditions) :
PWM1D
PWM1U
PTMR[] converti par le CNA de la
carte d'tude
9. Rsultat final (avant interface de puissance)
Les 3 sorties PWM1D PWM3D de l'EPLD sont appliques 3 filtres passe-bas du 1 ordre (R=10KO,
C=100nF) de frquence de coupure Fc=159Hz. On observe ainsi les valeurs moyennes de ces 3 signaux.
Conditions :
LIMIT[]=4
DELAY[]=2
Synchro externe sur | de la sortie
H1
Bleu = PWM3
Rouge = PWM2
Noir = PWM1
La frquence des 3 phases est
suffisamment basse (1,092Hz) pour
passer le filtre passe-bas sans
attnuation.
Le rsultat est conforme !
Application maquette d'tude EP10K20 Gnrateur SVM triphas pour moteur BLDC
CREMMEL Marcel Page 25/25 TS lectronique - 31/08/06
Relevs des tensions diffrentielles:
PWM1-PWM2
PMW3-PWM2
PWM1-PWM3
Sensibilit : 1 V/div

You might also like