Académique Documents
Professionnel Documents
Culture Documents
Objectifs
Savoir implémenter la commande MLI ou sPWM (PWM de type sinusoïdal)
Savoir implémenter la commande décalée (deux techniques)
Savoir le schéma d’un onduleur triphasé
Savoir les caractéristiques d’un onduleur
Savoir choisir les transistors de la partie puissance
Savoir commander un onduleur triphasé
Savoir implémenter la commande d’un onduleur triphasé
Savoir augmenter les performances de son code & améliorer la fréquence maximale de
l’onduleur
Etc.
Applications
Alimentation AC à partir d’une source DC (Alimentation à panneaux solaires, batteries,
etc.)
Conversion de réseaux : Monophasé vers triphasé, monophasé vers un réseau
polyphasé, etc.
Convertisseur de fréquence d’un réseau 50 Hz vers 60 Hz, 50 Hz vers 400 Hz, etc.
Variateur de vitesse des machines asynchrones
Etc.
Fonctionnement
La commande MLI (Modulation de Largeur d’Impulsion) de type sinusoïdal sPWM est
largement utilisée dans la commande des convertisseurs (AC/DC, DC/AC, AC/AC, etc.). Elle
permet de synthétiser un signal qui s’approche du signal sinusoïdal à partir d’un signal tout
ou rien (signal carré). En effet, un signal carré est une combinaison linaire d’une multitude
des harmoniques (f0, 2f0, 3f0,…, nf0). Un signal carré est simple à générer via les
composants de puissances. En revanche, il n’est pas efficace en termes du rendement et
pertes dus aux harmoniques secondaires. Le transfert de puissance est maximale lorsque le
signal est constitué d’une seule harmonique (sinus pur).
Les aspects théoriques de la modulation MLI sont abordés dans le projet onduleur
monophasé. Concernant l’onduleur triphasé, il suffit de générer trois sinusoïdes décalées de
60°. La technique consiste d’utiliser un seul tableau pour les phases contenant les
échantillons d’une demi période du signal sinusoïdal. Ensuite, utiliser trois indices décalés les
uns par rapport aux autres de 60°. Si le tableau est constitué de N échantillons, alors le
décalage 60° est équivalent à N/6 échantillons. Durant l’initialisation des indices, on définit :
I_Phase1=0, I_Phase2=N/6 et I_Phase3=2*N/6. Voir le tuto pour plus de détails.
Programme complet
/*
* Commande Symétrique : SetCMD1() & SetCMD2()
* Commande Décalée : SetCMD3() & SetCMD4()
* Commande PWM(MLI) : Voir le programme
*/
void setup()
{
// Pinout
Trans[0]=Tr11; Trans[1]=Tr12;
Trans[2]=Tr21; Trans[3]=Tr22;
Trans[4]=Tr31; Trans[5]=Tr32;
for (int i=0;i<6; i++)
{
pinMode(Trans[i], OUTPUT);
digitalWrite(Trans[i], LOW);
}
// Ou bien: Init du port A en sortie
//DDRA =0xff; PORTA=0x00;
// Affichage
Serial.begin(9600);
pinMode(3,OUTPUT);
}
void loop()
{
/*
SetCMD1(Trans);
SetCMD2(Trans);
SetCMD3(Trans);
SetCMD4(Trans);
delayMicroseconds(T0_us);
return;
*/
/*
delayMicroseconds(11);
digitalWrite(3, sinePolar[0]);
*/
// Génération de la commande
for (int i=0; i<3; i++)
{
// 1. Incrémentation du Timer du signal : Compteur long (signal sinusoïdal)
i_sin[i]+=1;
if (i_sin[i]>N) i_sin[i]=0;
}
}
return 0;
}
PORTA=Cmd[I];
I++;
//I%=6; // Fréquence: +
//I=I*(I<6); // Fréquence: ++
if (I>=6)I=0; // Fréquence: +++
return 0;
}
return 0;
}
B00100100,
B00100100,
B00000110,
B00000110,
B00010010,
B00010010,
B00011000
};
PORTA=Cmd[I];
I++;
if (I>=12)I=0;
return 0;
}
Nous Soutenir