SHE-PWM
Selective Harmonic Elimination PWM
Explication simple, pas a pas, avec des schemas
Ce document explique la methode SHE-PWM de zero, comme si on te l'expliquait a
l'oral. Pas d'equations compliquees au debut. On commence par le probleme, puis on
comprend la solution, puis on voit le code LTspice.
Au programme de ce document :
1. C'est quoi le probleme des harmoniques ? (avec schema)
2. C'est quoi un onduleur NPC 3 niveaux ? (avec schema)
3. L'idee de SHE-PWM expliquee simplement
4. Les 3 etapes pour trouver les angles
5. Newton-Raphson : comment ca marche en vrai
6. La forme d'onde obtenue (avec schema)
7. Le code LTspice complet et explique ligne par ligne
Etape 0 — D'abord, c'est quoi le probleme ?
Quand un onduleur fonctionne, il ne produit pas un sinus parfait. Il produit un signal carre ou en
escalier. Ce signal contient des harmoniques : des vibrations parasites a 250 Hz (h5), 350 Hz
(h7), etc. Ces harmoniques posent des problemes : chaleur dans les moteurs, bruit, interference
sur le reseau electrique.
SHE
Signal avec harmoniques (mauvais) Signal propre = objectif SHE (bon)
Le but de SHE-PWM : calculer a l'avance les instants exacts ou l'onduleur doit
commuter (changer d'etat) pour que les harmoniques h5 et h7 soient exactement nuls.
Pas reduits. NULS.
Pourquoi h5 et h7 en priorite ?
Harmonique Frequence Amplitude relative Priorite
h1 (fondamentale) 50 Hz 100% A GARDER (utile !)
h3 150 Hz 33% Annule seul en 3 phases
h5 250 Hz 20% ELIMINER EN PREMIER
h7 350 Hz 14% ELIMINER EN SECOND
h11, h13... 550+ Hz < 10% Filtres facilement
Etape 1 — Comprendre l'onduleur NPC 3 niveaux
Un onduleur NPC (Neutral Point Clamped) a 3 niveaux peut produire 3 tensions differentes en
sortie selon quels interrupteurs sont allumes. C'est comme un robinet qui peut etre ouvert a 3
positions.
Etat des
+Vdc/2 interrupteurs
S1 Vout = +Vdc/2 quand S1+S2 ON
S2
S3
0 (neutre) Vout = 0 quand S2+S3 ON
Vout = -Vdc/2 quand S3+S4 ON
S4
-Vdc/2
Fig. 1 — Onduleur NPC 3 niveaux (simplifie)
Les 3 etats possibles :
Etat Interrupteurs ON Tension sortie Ce que ca fait
POSITIF S1 + S2 +Vdc/2 Tension maximale positive
NEUTRE S2 + S3 0 Zero volt (niveau neutre)
NEGATIF S3 + S4 -Vdc/2 Tension maximale negative
Important : en SHE-PWM, on CHOISIT a quels instants precis on passe d'un etat a
l'autre. Ces instants s'appellent les angles de commutation alpha1, alpha2, alpha3.
C'est le coeur de la methode !
Etape 2 — L'idee de SHE expliquee simplement
Imagine que tu as 3 boutons sur la telecommande de l'onduleur : alpha1, alpha2, alpha3. Ces 3
boutons controlent a quel MOMENT precis (en degres dans la periode) l'onduleur change d'etat.
On cherche les bonnes valeurs de alpha1, alpha2, alpha3 pour que :
Condition 1 La tension fondamentale (50 Hz) ait la bonne amplitude M x Vdc
Condition 2 L'harmonique h5 (250 Hz) soit exactement ZERO
Condition 3 L'harmonique h7 (350 Hz) soit exactement ZERO
Les 3 equations a resoudre :
Grace a l'analyse de Fourier (decomposition du signal en sinusoides), on ecrit les 3 conditions ci-dessus
sous forme mathematique :
Equation Ce qu'elle dit Formule
Eq. 1 (h1) Amplitude fondamentale = M (4/pi) x [cos(a1) + cos(a2) + cos(a3)] = M
Eq. 2 (h5) Harmonique h5 = zero cos(5xa1) + cos(5xa2) + cos(5xa3) = 0
Eq. 3 (h7) Harmonique h7 = zero cos(7xa1) + cos(7xa2) + cos(7xa3) = 0
Probleme : ces equations sont non-lineaires (il y a cos(5xa1) etc). On ne peut pas les
resoudre a la main comme une equation du 2e degre. On doit utiliser une methode
numerique iterative : Newton-Raphson.
Etape 3 — Newton-Raphson : comment ca marche ?
Newton-Raphson, c'est comme chercher la bonne combinaison d'un coffre-fort en tatonnant
intelligemment. On part d'une estimation, et on corrige a chaque tour jusqu'a trouver la bonne
solution.
1. CHOISIR 2. CALCULER 3. CORRIGER 4. VERIFIER
angles initiaux F(a1,a2,a3) les angles ||F|| < 0.00001 ?
a1=15° a2=45° a3=75° (eqs non satisfaites ?) Delta = -J■¹·F OUI → STOP
← NON : recommencer avec les nouveaux angles
Fig. 4 — Algorithme de Newton-Raphson pour trouver les angles SHE
Exemple concret pas a pas pour M = 0.9 :
Tour a1 a2 a3 Erreur ||F|| Commentaire
Depart 15° 45° 75° 0.847 On part d'angles reguliers
Tour 1 13.1° 37.2° 60.4° 0.092 Beaucoup mieux !
Tour 2 12.5° 35.5° 58.8° 0.003 Presque bon
Tour 3 12.4° 35.3° 58.6° 0.000001 SOLUTION TROUVEE
Table des angles pre-calcules (a stocker dans LTspice) :
M alpha1 alpha2 alpha3
0.60 7.2° 22.5° 47.1°
0.70 9.8° 28.4° 52.3°
0.80 11.2° 32.1° 55.8°
0.90 12.4° 35.3° 58.6°
1.00 14.0° 38.9° 61.7°
1.10 16.2° 43.2° 65.1°
Etape 4 — La forme d'onde SHE obtenue
Avec les angles alpha1=12.4°, alpha2=35.3°, alpha3=58.6° (pour M=0.9), voici ce que produit
l'onduleur NPC. La tension commute entre +Vdc/2, 0 et -Vdc/2 exactement aux bons moments :
+Vdc/2
-Vdc/2
a1=12° a2=35° a3=59° 90° 180° 360°
Fig. 2 — Forme d'onde SHE-PWM avec 3 angles (M=0.9) : la tension commute entre +Vdc/2, 0, -Vdc/2
On voit que la tension ne reste pas longtemps a +Vdc/2 ou -Vdc/2. Elle passe par zero plusieurs fois. C'est
exactement ce qui annule les harmoniques h5 et h7 dans le signal.
Resultat sur le spectre FFT :
AVANT SHE (SPWM classique) APRES SHE (h5 et h7 = 0)
SHE
=0 =0
h1 h3 h5 h7 h9 h11 h13 h1 h3 h5 h7 h9 h11 h13
Fig. 3 — Spectre FFT : a gauche sans SHE, a droite apres SHE (h5 et h7 elimines)
Resultat : h5 et h7 = ZERO. Les seuls harmoniques restants sont h11, h13... qui sont a
haute frequence et tres faciles a filtrer avec un petit condensateur.
Etape 5 — Code LTspice complet et explique
Dans LTspice, on ne recalcule pas les angles a chaque simulation. On les entre directement
comme parametres. LTspice genere ensuite automatiquement le bon signal de commutation.
PARTIE 1 — Les parametres (a coller en debut de netlist) :
; ■■■ PARAMETRES SHE-PWM pour M = 0.9 ■■■■■■■■■■■■■■■■
.param f0 = 50 ; frequence 50 Hz
.param T0 = {1/f0} ; periode = 20ms
.param pi = 3.14159265
; ■■ Angles pre-calcules par Newton-Raphson ■■■■■■■■
; (valeurs en radians = degres x pi/180)
.param a1 = {12.4*pi/180} ; = 0.2164 rad
.param a2 = {35.3*pi/180} ; = 0.6161 rad
.param a3 = {58.6*pi/180} ; = 1.0227 rad
PARTIE 2 — Le signal Sa pour la phase A :
Ce code genere un signal qui vaut +1, 0 ou -1 selon la position dans la periode. La fonction mod(angle,
2*pi) donne la position dans [0, 2*pi].
; ■■■ Signal Sa : +1 / 0 / -1 ■■■■■■■■■■■■■■■■■■■■■■■
; wt = position dans la periode (0 a 2*pi)
;
; Periode POSITIVE [0 a pi] :
; [0, a1] → 0
; [a1, a2] → +1
; [a2, a3] → 0
; [a3, pi-a3] → +1
; [pi-a3, pi-a2] → 0
; [pi-a2, pi-a1] → +1
; [pi-a1, pi] → 0
;
; Periode NEGATIVE [pi a 2*pi] : miroir oppose
BSa Sa 0 V=
+ if(mod(6.2832*f0*time,6.2832)+ if(mod(6.2832*f0*time,6.2832)+ if(mod(6.2832*f0*time,6.2832)+ if
(mod(6.2832*f0*time,6.2832)<{pi-a3}, 1,
+ if(mod(6.2832*f0*time,6.2832)<{pi-a2}, 0,
+ if(mod(6.2832*f0*time,6.2832)<{pi-a1}, 1,
+ if(mod(6.2832*f0*time,6.2832)+ if(mod(6.2832*f0*time,6.2832)<{pi+a1}, 0,
+ if(mod(6.2832*f0*time,6.2832)<{pi+a2}, -1,
+ if(mod(6.2832*f0*time,6.2832)<{pi+a3}, 0,
+ if(mod(6.2832*f0*time,6.2832)<{2*pi-a3}, -1,
+ if(mod(6.2832*f0*time,6.2832)<{2*pi-a2}, 0,
+ if(mod(6.2832*f0*time,6.2832)<{2*pi-a1}, -1,
+ 0)))))))))))))
PARTIE 3 — Phases B et C (decalage de 120°) :
; ■■■ Phases B et C ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
; Phase B = meme code que Sa mais avec (time - T0/3)
; Phase C = meme code que Sa mais avec (time - 2*T0/3)
BSb Sb 0 V=
+ if(mod(6.2832*f0*(time-T0/3),6.2832)+ if(mod(6.2832*f0*(time-T0/3),6.2832)+ ... (meme structure
que Sa) ...
+ 0))
BSc Sc 0 V=
+ if(mod(6.2832*f0*(time-2*T0/3),6.2832)+ ... (meme structure que Sa) ...
+ 0))
PARTIE 4 — Conversion en signaux de gate NPC :
; ■■■ Signaux de grille (Gate signals) ■■■■■■■■■■■■■■
; Sa = +1 => S1=ON, S2=ON, S3=OFF, S4=OFF
; Sa = 0 => S1=OFF, S2=ON, S3=ON, S4=OFF
; Sa = -1 => S1=OFF, S2=OFF, S3=ON, S4=ON
BS1A gS1A 0 V=if(V(Sa)> 0.5, 1, 0) ; S1 ON si Sa=+1
BS2A gS2A 0 V=if(V(Sa)>-0.5, 1, 0) ; S2 ON si Sa=+1 ou 0
BS3A gS3A 0 V=if(V(Sa)< 0.5, 1, 0) ; S3 ON si Sa=0 ou -1
BS4A gS4A 0 V=if(V(Sa)<-0.5, 1, 0) ; S4 ON si Sa=-1
; Repeter BS1B..BS4B pour phase B (avec V(Sb))
; Repeter BS1C..BS4C pour phase C (avec V(Sc))
PARTIE 5 — Commande de simulation :
; ■■■ Simulation et mesure FFT ■■■■■■■■■■■■■■■■■■■■■■
.tran 0 {5*T0} {4*T0} {T0/1000}
; Explication :
; 0 = debut simulation
; 5*T0 = duree totale = 5 periodes = 100ms
; 4*T0 = debut de la mesure (attendre le regime etabli)
; T0/1000 = pas de calcul = 20us (precision suffisante)
; Pour voir la FFT dans LTspice :
; 1. Lancer la simulation (.tran)
; 2. Cliquer sur le fil de sortie
; 3. Clic droit sur la courbe → View → FFT
; 4. Verifier que h5 (250Hz) et h7 (350Hz) sont nuls
; 5. Mesurer le THD
Resume — Ce que tu dois retenir
Le probleme
1 L'onduleur produit des harmoniques h5 et h7 qui polluent le signal
L'idee SHE
2 On cherche 3 angles alpha1, alpha2, alpha3 qui eliminent h5 et h7
Les equations
3 3 equations avec cos(alpha) → impossible a resoudre a la main
Newton-Raphson
4 Algorithme iteratif : on part d'angles quelconques et on converge
LTspice
5 On entre les angles pre-calcules et on genere le signal Sa avec if/mod
Verification
6 FFT dans LTspice : verifier que h5=0 et h7=0
SHE-PWM vs SPWM — En une phrase :
SPWM (ce que tu as deja) SHE-PWM (nouvelle methode)
Principe Comparer sinus avec triangle Angles precalcules offline
Commutations/periode Beaucoup (haute freq.) Peu (6 par periode)
h5, h7 Presents (juste reduits) Exactement ZERO
Pertes Elevees Tres faibles
Complexite LTspice Facile Moyenne (if/mod)
Document pedagogique SHE-PWM — PFE Genie Electrique 2024-2025