APOD-PWM Implementation Guide for LTspice

Telechargé par CHAYMAE FILALI
Page 1APOD-PWM — Implementation depuis POD
APOD-PWM — IMPLÉMENTATION
Passage de POD-PWM vers APOD-PWM — NPC 3 niveaux 3 phases — LTspice
NPC 3 niveaux — 3 phases — Passage de POD-PWM vers APOD-PWM
Objectif Ce document explique exactement ce qui change entre votre POD déjà implémenté et
l'APOD-PWM. Vous n'avez qu'une seule modification à faire.
POD fait Onduleur NPC 3 niveaux 3 phases avec porteuses C1 (0+1) et C2 (-10) en opposition de
phase fixe, comparées à Vref sinusoïdal.
APOD = POD + Une seule différence : la porteuse C2 alterne sa polarité à chaque cycle PWM. Cycle pair
C2 normale. Cycle impair C2 inversée.
Résumé en une ligne
POD : C2 = -C1 (inversion FIXE, permanente)
APOD : C2 = -C1 au cycle pair, C2 = +C1 au cycle impair (inversion ALTERNEE)
La seule modification dans LTspice : remplacer la formule de C2 par une expression
qui depend du numero de cycle (floor(time/Tc) mod 2).
Page 2APOD-PWM — Implementation depuis POD
1Rappel — Ce que vous avez en POD
Dans votre implémentation POD, vous avez deux porteuses triangulaires par phase (pour un onduleur 3
niveaux). Ces deux porteuses sont comparées au même signal de référence sinusoïdal Vref_a, Vref_b, Vref_c.
Structure POD que vous avez
2 porteuses par phase (total 6 porteuses pour 3 phases) :
C1_upper : triangle de 0 a +1 (demi-bande superieure)
C2_lower : triangle de -1 a 0 (demi-bande inferieure)
Les deux porteuses sont EN PHASE entre elles (meme frequence, meme origine)
C2 est simplement l'inverse de C1 : C2 = -C1 (opposition fixe)
Vref sinusoidal compare avec C1 -> signaux gates S1, S4
Vref sinusoidal compare avec C2 -> signaux gates S2, S3
Vos expressions LTspice actuelles (POD) :
Porteuses POD — expressions existantes dans votre LTspice
# Parametre globaux
.param fc = 1000 ; frequence porteuse (Hz)
.param Tc = {1/fc} ; periode porteuse
.param f0 = 50 ; frequence fondamentale
.param M = 0.8 ; indice de modulation
# Porteuse C1 UPPER : triangle entre 0 et +1
Vc1:
V = if(mod(time,Tc) < Tc/2,
2*mod(time,Tc)/Tc,
2 - 2*mod(time,Tc)/Tc)
# Porteuse C2 LOWER : triangle entre -1 et 0 (POD = opposition fixe)
Vc2_pod:
V = -V(vc1)
# References sinusoidales (3 phases)
Vref_a: V = M*sin(2*pi*f0*time)
Vref_b: V = M*sin(2*pi*f0*time - 2*pi/3)
Vref_c: V = M*sin(2*pi*f0*time + 2*pi/3)
# Comparateurs -> signaux de gate
Sa1: V = if(V(vref_a) > V(vc1), 1, 0) ; S1 phase A
Sa2: V = if(V(vref_a) > V(vc2_pod), 1, 0) ; S2 phase A
Page 3APOD-PWM — Implementation depuis POD
2La différence fondamentale : POD vs APOD
La différence entre POD et APOD se situe uniquement sur la porteuse C2. Regardons visuellement ce qui
change :
POD-PWM : C2 toujours en opposition
+1
0
-1
C1 (0 +1)
C2 (-1 0) en opposition
Vref (sinus)
APOD-PWM : C2 alterne chaque cycle
+1
0
-1
C1 (0 +1)
C2 alterne chaque cycle
Vref (sinus)
Fig. 1 — Comparaison des porteuses POD (gauche) vs APOD (droite). En APOD, C2 (orange) alterne sa polarité à chaque cycle.
Mecanisme du toggle APOD — cycle par cycle
Cycle 1
(k=0, pair)
C1: 0+1
(normal)
C2: -10
(normal)
0
Cycle 2
(k=1, impair)
C1: 0+1
(normal)
C2: 0+1
INVERSE!
1
Cycle 3
(k=2, pair)
C1: 0+1
(normal)
C2: -10
(normal)
0
Cycle 4
(k=3, impair)
C1: 0+1
(normal)
C2: 0+1
INVERSE!
1
Cycle 5
(k=4, pair)
C1: 0+1
(normal)
C2: -10
(normal)
0pair -> C2 normal
impair -> C2 inverse
Fig. 2 — Mécanisme du toggle APOD cycle par cycle. Le cercle vert/orange indique si le cycle est pair (C2 normal) ou impair (C2
inversé).
Critère POD-PWM APOD-PWM
C1 (upper) Triangle 0 +1
(fixe, toujours pareil) Triangle 0 +1
(IDENTIQUE, ne change pas)
C2 (lower) Triangle -1 0
(toujours en opposition) Alterne chaque cycle :
cycle pair -1 à 0
cycle impair 0 à +1
Relation C1/C2 C2 = -C1 permanent C2 = (-1)^k * C1
avec k = numero de cycle
Harmoniques
de bande laterale Asymetriques
(harmoniques pairs presents) Symetriques
(harmoniques pairs reduits)
THD typique Legèrement superieur Legèrement inferieur
Complexite
implem. LTspice Simple (C2 = -C1) Ajouter floor() et mod()
Page 4APOD-PWM — Implementation depuis POD
3La formule clef du toggle APOD
Toute l'implémentation APOD repose sur une seule formule pour détecter si le cycle courant est pair ou impair.
Voici comment la construire étape par étape.
Étape Formule LTspice Résultat Explication
1
Numero
de cycle floor(time/Tc) 0, 1, 2, 3, 4 ... Entier qui s'incremente
a chaque periode Tc
2
Pair ou
impair ? mod(floor(time/Tc), 2) 0, 1, 0, 1, 0 ... 0 = cycle pair
1 = cycle impair
3
Facteur
de signe 1 - 2*mod(floor(time/Tc),2) +1, -1, +1, -1 ... +1 cycle pair
-1 cycle impair
4
C2 APOD (1 - 2*mod(floor(time/Tc),2))
* V(vc1_lower) C2 alterne
chaque cycle Multiplie C2_POD
par le facteur de signe
Démonstration numérique pour fc = 1000 Hz (Tc = 1ms) :
time (ms) floor(t/Tc) mod(..., 2) 1 - 2*mod C2 APOD
0.0 1.0 0 0 +1 C2 = +C1_lower = triangle -10 (normal)
1.0 2.0 1 1 -1 C2 = -C1_lower = triangle 0+1 (inverse)
2.0 3.0 2 0 +1 C2 = +C1_lower = triangle -10 (normal)
3.0 4.0 3 1 -1 C2 = -C1_lower = triangle 0+1 (inverse)
Verification rapide a la main
A t = 0.5ms : floor(0.0005/0.001) = floor(0.5) = 0 -> mod(0,2)=0 -> facteur=+1 -> C2 normal
A t = 1.5ms : floor(0.0015/0.001) = floor(1.5) = 1 -> mod(1,2)=1 -> facteur=-1 -> C2 inverse
A t = 2.5ms : floor(0.0025/0.001) = floor(2.5) = 2 -> mod(2,2)=0 -> facteur=+1 -> C2 normal
=> Cela alterne bien a chaque periode Tc. La formule est correcte.
Page 5APOD-PWM — Implementation depuis POD
4Implémentation LTspice — Expressions complètes
Voici exactement ce qu'il faut modifier dans votre netlist LTspice. Les éléments en vert sont identiques à votre
POD. L'élément en orange est la seule modification.
Modification unique : POD APOD
POD (deja fait) APOD (a implementer)
# POD - C2 (inversion fixe) # APOD - C2 (inversion alternee)
Vc2_pod: Vc2_apod:
V = -V(vc1) V = (1 - 2*mod(
floor(time/Tc),
# Explication: 2)) * (-V(vc1))
# C2 = toujours oppose a C1 # Explication:
# opposition PERMANENTE # Cycle pair -> +1 * (-C1) = -C1
# (normal, comme POD)
# Cycle impair -> -1 * (-C1) = +C1
# (inverse !)
Netlist LTspice APOD-PWM — Parametres et porteuses
.param fc = 1000 ; frequence porteuse (Hz)
.param Tc = {1/fc} ; periode porteuse = 1ms
.param f0 = 50 ; frequence fondamentale (Hz)
.param M = 0.8 ; indice de modulation
.param Vdc = 400 ; tension bus DC (V)
# Porteuse C1 UPPER — IDENTIQUE A POD (triangle 0 a +1)
Bvc1 vc1 0
V = if(mod(time,Tc) < Tc/2,
2*mod(time,Tc)/Tc,
2 - 2*mod(time,Tc)/Tc)
# Porteuse C2 LOWER — MODIFICATION APOD (seul changement !)
# cycle pair -> C2 = -C1 (normal comme POD)
# cycle impair -> C2 = +C1 (inverse !)
Bvc2 vc2 0
V = (1 - 2*mod(floor(time/Tc), 2)) * (-V(vc1))
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!