Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
1. Scopul lucrării
În prima parte a lucrării (L1) se studiază structura unui bloc DLL programabil în C în
vederea implementării comenzilor PWM numerice în cadrul programului de simulare PSIM.
Se elaborează un proiect în mediul de simulare Visual C++ şi se implementează comanda
PWM sinusoidală cu eşantionare regulată simetrică pentru invertorul trifazat de tensiune.
Această strategie PWM asigură o funcţionare continuă a invertorului doar în zona 1 de
liniaritate.
În partea a II-a a lucrării (L2) se va implementa o comandă numerică PWM cu
funcţionare discontinuă pe 3 sectoare, care să asigure o funcţionare a invertorului în zona de
liniaritate extinsă (1+2).
2. Chestiuni de studiat
a) Elaborarea unui proiect în mediul de simulare Visual C++ în vederea obţinerii unui
bloc programabil DLL. Studiul variabilelor specifice t, delt, in şi out.
b) Implementarea strategiei PWM sinusoidală cu eşantionare regulată simetrică pentru
invertorul trifazat de tensiune.
c) Elaborarea modelului PSIM al invertorului trifazat de tensiune care să conţină
modulul DLL specific comenzii numerice PWM sinusoidală cu eşantionare regulată
simetrică. Studiul rapoartelor de conducţie şi a valorii efective a tensiunii de fază.
d) Implementarea strategiei numerice DPWM (Discontinuous Pulse Width
Modulation) pe 3 sectoare. Studiul rapoartelor de conducţie şi a valorii efective a tensiunii de
fază.
3. Mod de experimentare
a) Pentru elaborarea unui modul DLL se urmăreşte exemplul de programare în mediul
Microsoft C/C++ 5.0 sau 6.0:
// directorul de lucru este "D:\EPA\"; în acest director se găseşte fişierul utilizator
"user.c" ; // se lansează programul Visual C++; // din meniu se alege "File" - "New" şi se
deschide pagina "Projects", se selectează "Win32 Dynamic-Link Library" şi se dă nume
proiectului "Project name", de exemplu "PWM", iar la "Location" menţionaţi directorul de
lucru "D:\EPA\"; // asiguraţi-vă că este selectat "Create new workspace" şi selectaţi "Win32"
de la "Platform" [pentru Version 6.0]; // la întrebarea "What kind of DLL would you like to
create?" se selectează "An empty DLL project"; //de la meniul "Project" se merge la "Add to
Project" - "Files" şi se selectează fişierul utilizator "user.c"; // de la panoul cu numele
proiectului selectaţi “File View”, se deschide fişierul sursă "user.c" şi se scrie codul comenzii;
// de la meniul "Build" se selectează "Set Active Configurations" şi se alege "Win32 Release";
// de la meniul "Build", se alege "Rebuild All" pentru a genera blocul DLL cu numele
"PWM.dll"; // blocul DLL generat va fi memorat în directorul "D:\EPA\PWM\release".
// Variabile:
1
L1 – L2, Master EPA - Modelarea şi Comanda Convertoarelor Statice
Prof.Dr.Ing. Dan FLORICAU – Universitatea POLITEHNICA Bucureşti
#include <math.h>
{
static int count=100, Ncount=100;
// variabila "count" este numărătorul care numără paşii de calcul delt; variabila "Ncount" reprezintă
numărul total de paşi de calcul care se efectuează într-o perioadă de comutaţie
// rapoartele de conducţie pentru întreruptoarele superioare ale invertorului: "a_A", "a_B" şi "a_C"
static double a_A, a_B, a_C;
// parametrii modelului comenzii PWM: "Eps" este timpul curent în cadrul unei perioade de comutaţie;
"PWM_A", "PWM_B" şi "PWM_C" sunt comenzile ("on"="1" şi "off"="0") pentru întreruptoarele
superioare ale invertorului; FC[3] şi FD[3] reprezintă momentele de comutaţie la nivelul perioadei de
comutaţie curente
double Eps;
int PWM_A, PWM_B, PWM_C;
static double FC[3], FD[3];
// la prima iteraţie "count = Ncount" pentru calculul rapoartelor de conducţie; rapoartele de conducţie se
calculează doar atunci când "count = Ncount", adică la începutul fiecărei perioade de comutaţie; atunci
când cele 2 variabile sunt diferite NU se execută procedura IF
if ( count == Ncount)
{
count = 0; // se iniţializează numărătorul
2
L1 – L2, Master EPA - Modelarea şi Comanda Convertoarelor Statice
Prof.Dr.Ing. Dan FLORICAU – Universitatea POLITEHNICA Bucureşti
if ((Eps>=FC[1])&&(Eps<=FD[1])) {PWM_B=1;}
else {PWM_B=0;}
if ((Eps>=FC[2])&&(Eps<=FD[2])) {PWM_C=1;}
else {PWM_C=0;}
out[0] = PWM_A;
out[1] = PWM_B;
out[2] = PWM_C;
out[3] = a_A;
out[4] = a_B;
out[5] = V_A;
}
r_A reA
up
E/2
0 t
k k+1
-E/2
T1
1
τΑ (κ)
t
Fig. 1. Strategia PWM sinusoidală cu eşantionare regulată simetrică.
Tp Tp
τ A (k ) = ⋅ r _ A(k ) +
Ud 2
Duratele de conducţie: Tp Tp (1)
τ B (k ) = ⋅ r _ B(k ) +
Ud 2
Tp Tp
τ C (k ) = ⋅ r _ C(k ) +
Ud 2
3
L1 – L2, Master EPA - Modelarea şi Comanda Convertoarelor Statice
Prof.Dr.Ing. Dan FLORICAU – Universitatea POLITEHNICA Bucureşti
r _ A(k ) 1
a A (k ) = +
Ud 2
Rapoartele de conducţie (T_A, T_B, T_C): r _ B(k ) 1 (2)
a B (k ) = ⋅+
Ud 2
r _ C(k ) 1
a C (k ) = +
Ud 2
c) Se elaborează modelul PSIM pentru invertorul trifazat de tensiune în directorul
"D:\EPA\PWM\release". Blocurile DLL necesare în reprezentarea schemei se găsesc în
"Elements" - "Other" - "Function Blocks" - DLL 6 Input. Timpul simulării este de 0.03s şi
pasul de calcul 10us. Pentru acest pas de calcul rezultă o frecvenţă de comutaţie de 1000Hz
(100 paşi * 10us = 0.001s), care justifică numărul de paşi (100) impus în modelarea comenzii.
4
L1 – L2, Master EPA - Modelarea şi Comanda Convertoarelor Statice
Prof.Dr.Ing. Dan FLORICAU – Universitatea POLITEHNICA Bucureşti
Fig. 3. Rezultate ale simulării numerice pentru strategia PWM sinusoidală cu eşantionare
regulată simetric.
a_A a_A
DPWM-1 DPWM-2
[u.r.] [u.r.]
a) t [s] t [s]
b)
Atunci când faza B este mai negativă decât celelalte 2 se obţine sectorul al 2-lea:
a_A=mB1g;
a_B=0;
a_C=mB2g;
5
L1 – L2, Master EPA - Modelarea şi Comanda Convertoarelor Statice
Prof.Dr.Ing. Dan FLORICAU – Universitatea POLITEHNICA Bucureşti
Pentru sectorul al 3-lea faza C este mai negativă. Rapoartele de conducţie rezultate
sunt următoarele:
a_A=mC1g;
a_B=mC2g;
a_C=0;
4. Întrebări recapitulative
Care este diferenţa dintre o strategie PWM cu eşantionare naturală şi una cu
eşantionare regulată?
Care sunt zonele de funcţionare liniară ale unui invertor trifazat de tensiune?
În cazul implementării unei comenzi PWM numerice cu funcţionare continuă există
comutaţii pe întregul ciclu? Dar în cazul unei comenzi PWM cu funcţionare discontinuă?
Ce se înţelege prin zone de funcţionare de supramodulare?
6
L1 – L2, Master EPA - Modelarea şi Comanda Convertoarelor Statice
Prof.Dr.Ing. Dan FLORICAU – Universitatea POLITEHNICA Bucureşti