Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Referat #1
L1: Utilizarea blocurilor DLL programabile în C pentru implementarea
comenzilor numerice în cadrul programului de simulare PSIM
2017
Introducere
În cadrul acestor două lucrări au fost folosite blocuri DLL programabile în limbajul
de programare C pentru implementarea comenzilor numerice în programul de simulare
PSIM.
Prima parte (L1) presupune elaborarea unui proiect în mediul de simulare Visual
C++ și implementarea comenzii PWM sinusoidală cu eșantionare regulată simetrică pentru
invertorul trifazat de tensiune cu funcționare continuă doar în zona 1 de liniaritate.
A doua parte (L2) presupune implementarea comenzii numerice PWM cu
funcționare discontinuă pe 3 sectoare cu funcționare continuă în zonele de liniaritate
extinsă 1+2.
Structura laboratorului este următoarea:
• 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.
• implementarea strategiei PWM sinusoidală cu eșantionare regulată simetrică
pentru invertorul trifazat de tensiune.
• 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ă.
• implementarea strategiei numerice DPWM (Discontinuous Pulse Width
Modulation) pe 3 sectoare. Studiul rapoartelor de conducție şi a valorii efective a tensiunii
de fază.
Modul de experimentare
În programul de simulare Visual C++ a fost implementat programul de mai jos, din
care a rezultat modului DLL folosit în continuare.
După implementarea acestuia a fost studiată strategia PWM sinusoidală cu
eșantionare regulată simetrică.
-2-
#include<math.h>
_declspec(dllexport) void simuser (t, delt, in, out)
double t, delt;
double *in, *out;
{
// numara pasii de calcul delt
static int count=100;
// numarul total de pasi de calcul ce se efectuiaza intr'o perioada de comutatie
static double Ncount=100;
// rapoartele de conductie pentru intreruptoarele supeioare ale bratele A, B si C
static double con_A,con_B, con_C;
// tensiunile sinusoidale de referinta
static double ref_A, ref_B, ref_C;
// timpul curent intr-o perioada de comutatie
double Eps;
// comenzile PWM pentru cele trei brate ('on' = '1', 'of' = '0')
int PWM_A, PWM_B, PWM_C;
// momentul de comutatie
static double FC[3], FD[3];
if(count==Ncount)
{
// initializare counter
count = 0;
// initializare tensiuni referinta
ref_A = in[0];
ref_B = in[4];
ref_C = in[8];
if(con_B<0.05){con_B = 0.05;}
if(con_B>0.95){con_B = 0.95;}
if(con_C<0.05){con_C = 0.05;}
if(con_C>0.95){con_C = 0.95;}
// iesiri DLL
out[0] = PWM_A;
out[2] = PWM_B;
out[4] = PWM_C;
out[6] = con_A;
out[8] = con_B;
out[10] = ref_A;
}
-3-
În continuare a fost implementat modelul în programul de simulare PSIM,
reprezentat în figura de mai jos.
-4-
Figură 3 - Forma de undă a tensiunii de fază
-5-
În continuare a fost implementată strategia de comandă DPWM (Discontinuous
Puise Width Modulation) pe 3 sectoare. Pentru calculul rapoartelor de conducție se
consideră 3 sectoare de câte 120°el., iar pentru fiecare sector se obține un set de ecuații.
Sectoarele determină faza folosită ca referință. Astfel, pe sectorul pe care o anumită fază
este mai negativă decât celelalte două, faza respectivă este folosită ca referință.
Sectorul 1 – referință faza A
-6-
Figură 7 - Sistemul trifazat de referințe și funcțiile generatoare de comutații
Figură 8 - Formele de undă ale tensiunii de fază, tensiunii de linie și a curentului prin faza A
-7-