Sunteți pe pagina 1din 182

CONTRIBUII

LA MONITORIZAREA CALITII
ENERGIEI ELECTRICE



Tez destinat obinerii
titlului tiinific de doctor inginer
la
Universitatea Politehnica din Timioara
n domeniul INGINERIE ELECTRONIC I
TELECOMUNICAII
de ctre




Ing. Ciprian Ovidiu Miron DUGHIR






Conductor tiinific: prof.univ.dr.ing. Alimpie Ignea
Refereni tiinifici: prof.univ.dr.ing. Radu Munteanu
prof.univ.dr.ing. Cornelia Gordan
prof.univ.dr.ing. Viorel Popescu


Ziua susinerii tezei: 28.10.2010




Seriile Teze de doctorat ale UPT sunt:
1. Automatic 7. Inginerie Electronic i Telecomunicaii
2. Chimie 8. Inginerie Industrial
3. Energetic 9. Inginerie Mecanic
4. Ingineria Chimic 10. tiina Calculatoarelor
5. Inginerie Civil 11. tiina i Ingineria Materialelor
6. Inginerie Electric



Universitatea Politehnica din Timioara a iniiat seriile de mai sus n scopul
diseminrii expertizei, cunotinelor i rezultatelor cercetrilor ntreprinse n cadrul
colii doctorale a universitii. Seriile conin, potrivit H.B.Ex.S Nr. 14 / 14.07.2006,
tezele de doctorat susinute n universitate ncepnd cu 1 octombrie 2006.




Copyright Editura Politehnica Timioara, 2010




Aceast publicaie este supus prevederilor legii dreptului de autor.
Multiplicarea acestei publicaii, n mod integral sau n parte, traducerea, tiprirea,
reutilizarea ilustraiilor, expunerea, radiodifuzarea, reproducerea pe microfilme sau
n orice alt form este permis numai cu respectarea prevederilor Legii romne a
dreptului de autor n vigoare i permisiunea pentru utilizare obinut n scris din
partea Universitii Politehnica din Timioara. Toate nclcrile acestor drepturi vor
fi penalizate potrivit Legii romne a drepturilor de autor.






Romnia, 300159 Timioara, Bd. Republicii 9,
tel. 0256 403823, fax. 0256 403221
e-mail: editura@edipol.upt.ro






Cuvnt nainte


Prezenta lucrare a fost elaborat pe parcursul programului de doctorat fr
frecven susinut n Departamentul de Msurri i Electronic Optic al Facultii de
Electronic i Telecomunicaii din cadrul Universitii Politehnica din Timioara.
Perioada desfurrii programului doctoral a fost noiembrie 2000 octombrie 2010.
Teza dezvolt o cercetare n domeniul monitorizrii calitii energiei
electrice. Detectarea i clasificarea perturbaiilor care apar n reelele de distribuie a
energiei electrice reprezint o problem de interes pe plan mondial. Detectarea
perturbaiilor utiliznd algoritmi de analiz n domeniul timp reprezint o soluie
modern i care necesit relativ puine resurse de calcul.
Programul de doctorat s-a desfurat sub conducerea domnului Prof. Dr.
Ing. Alimpie Ignea. n calitate de conductor de doctorat, domnul profesor mi-a
oferit cu profesionalism sprijin pentru a finaliza lucrarea. Am beneficiat de o
ndrumare deosebit n ceea ce privete selectarea literaturii de specialitate
adecvat, realizarea referatelor din cadrul doctoratului, scrierea i publicarea
lucrrilor tiinifice i parcurgerea etapelor de cercetare care au dus la atingerea
scopurilor propuse. Pentru toate acestea i aduc calde mulumiri.
Sincere mulumiri aduc membrilor comisiei pentru modul competent de
parcurgere a tezei de doctorat i pentru ntocmirea referatelor.
Doresc, de asemenea, s aduc mulumiri domnului Prof. Dr. Ing. Traian
Jurca, ale crui sfaturi au contribuit la soluionarea unora dintre problemele aprute
pe parcursul elaborrii tezei de doctorat.
Sunt recunosctor domnilor Prof. Dr. Ing. Dan Stoiciu i Prof. Dr. Ing. Franz
Quint pentru ajutorul nepreuit n obinerea unei burse de studii Erasmus. De
asemenea, aduc mulumiri ageniei ERASMUS pentru finanarea stagiului de
documentare la Universitatea de tiine Aplicate din Karlsruhe.
Adresez mulumiri firmei Texas Instruments pentru sprijinul material prompt
i dezinteresat, fr de care partea hardware a tezei nu putea fi realizat practic.
Mulumesc conducerii Facultii de Electronic i Telecomunicaii pentru
facilitarea deplasrii la conferine, n vederea susinerii unor lucrri tiinifice. Le
sunt recunosctor colegilor din Departamentul Msurri i Electronic Optic pentru
atmosfera de lucru plcut i sprijinul primit pe parcursul elaborrii tezei.
Nu n ultimul rnd, recunotina mea se ndreapt spre familia mea care a dat
dovad de nelegere, suport i dragoste n timpul desfurrii programului doctoral.





Timioara, octombrie 2010 Ing. Ciprian Ovidiu Miron DUGHIR

































Dughir, Ciprian Ovidiu Miron
Contribuii la monitorizarea calitii energiei electrice

Teze de doctorat ale UPT, Seria X, Nr. YY, Editura Politehnica,
2010, 182 pagini, 101 figuri, 17 tabele.
ISSN:
ISBN (10): ..; ISBN (13):
Cuvinte cheie:
Monitorizarea calitii energiei electrice, perturbaii electrice,
algoritmi pentru detectarea perturbaiilor din reelele electrice,
circuite de compresie dinamic, divizor secvenial de tensiune,
algoritmi de prelucrare a semnalelor n domeniul timp, server
web.
Rezumat:
Lucrarea abordeaz problema monitorizrii calitii energiei
electrice n reelele electrice de joas tensiune. Prezena
perturbaiilor n reelele electrice afecteaz o serie ntreag de
consumatori (att casnici ct i industriali), perturbnd buna
funcionare a acestora i putnd conduce, n cazurile cele mai
defavorabile, la defectarea acestora. Prin mbuntirea unor
algoritmi prezentai n literatura de specialitate dar i prin
dezvoltarea unor algoritmi noi de detectare a perturbaiilor
(bazai pe analiza semnalelor n domeniul timp), s-a reuit
implementarea unui sistem (hardware i software) care
detecteaz existena perturbaiilor din reelele de distribuie a
energiei electrice. Prin utilizarea unui divizor secvenial de
tensiune, se pot prelua tensiuni electrice cu o dinamic mare
(amplitudini de pn la 10 kV), fr a pierde detaliile fine din
jurul valorii nominale a tensiunii reelei. Aplicaia dezvoltat este
extrem de avantajoas din punct de vedere al preului, al
uurinei de utilizare i a acurateei detectrii perturbaiilor.


Cuprins

Lista de figuri ............................................................................................... 7
Lista de tabele.............................................................................................10
1. Introducere .............................................................................................11
1.1 Problematica tezei ...............................................................................11
1.2 Structura tezei ....................................................................................12
2. Tipuri de perturbaii i standarde pentru detectarea i monitorizarea acestora...14
2.1 Caracterizarea surselor de perturbaii .....................................................14
2.2 Standarde privind asigurarea calitii energiei electrice..............................17
2.2.1 Istoric...........................................................................................17
2.2.2 Standardul IEC 61000-4-30 .............................................................21
2.2.3 Standardul EN 50160......................................................................27
2.3 Concluzii ............................................................................................29
3. Circuite de condiionare a semnalelor ..........................................................30
3.1 Introducere.........................................................................................30
3.2 Circuit de condiionare cu transformator funcional ...................................31
3.2.1 Prezentarea circuitului.....................................................................31
3.2.2 Proiectarea circuitului de compresie cu transformator funcional ............32
3.2.3 Simularea funcionrii transformatorului funcional ..............................35
3.2.4 Algoritm pentru reducerea erorilor circuitului de precondiionare cu
transformator funcional ..........................................................................44
3.3 Circuit de compresie dinamic folosind trei canale ale convertorului analog
numeric (divizor secvenial de tensiune) ........................................................48
3.3.1 Prezentarea circuitului.....................................................................48
3.3.2 Analiza funcionrii circuitului n Matlab .............................................52
3.3.3 Aplicaii ale divizorului secvenial de tensiune n detectarea perturbaiilor
tranzitorii cu amplitudini mari...................................................................54
3.4 Concluzii ............................................................................................56
4. Sisteme de achiziie de date ......................................................................58
4.1 Introducere.........................................................................................58
4.2 Placa de achiziie NI USB 6259 ..............................................................59
4.3 Biblioteca de funcii NI-DAQmx..............................................................61
4.4 Concluzii ............................................................................................65
5. Algoritmi software pentru detectarea perturbaiilor din reelele electrice de joas
tensiune .....................................................................................................66
5.1 Introducere.........................................................................................66
5.2 Determinarea apariiei perturbaiilor tranzitorii.........................................66
5.3 mbuntirea metodei de detectare a perturbaiilor tranzitorii ...................71
5.4 Concluzii ............................................................................................76
6. Sistem de detectare i monitorizare a perturbaiilor din reelele electrice..........77
6.1 Introducere.........................................................................................77
6.2 Prezentarea sistemului hardware............................................................77
6.3 Aplicaie software pentru detectarea perturbaiilor....................................84
6.3.1 Descrierea aplicaiei........................................................................84
6.3.2 Iniializarea aplicaiei ......................................................................89
6.3.3 Memoria circular...........................................................................92
6.3.4 Detectarea i monitorizarea perturbaiilor ..........................................93
6.3.5 Interfaa cu utilizatorul....................................................................98
6 Cuprins

6.3.6 Configurarea aplicaiei ....................................................................99
6.3.7 Testarea aplicaiei software............................................................101
6.4 Server web pentru accesarea on-line a datelor nregistrate ......................105
6.5 Concluzii ..........................................................................................109
7. Rezultate experimentale..........................................................................111
8. Concluzii i contribuii .............................................................................120
Bibiliografie...............................................................................................125
Anexa 1. Programe reprezentative elaborate n PSpice ....................................131
Anexa 2. Programe reprezentative elaborate n Matlab ....................................137
Anexa 2.1 Program Matlab pentru verificarea algoritmului de calibrare a sistemului
de condiionare a semnalelor cu transformator funcional ..............................137
Anexa 2.2 Program MatLab pentru trasarea caracteristicii de transfer a divizorului
secvenial de tensiune .............................................................................143
Anexa 3. Program Visual C++ pentru monitorizarea calitii energiei electrice.....145
Anexa 3.1 Program pentru iniializarea aplicaiei i achiziia de date ...............145
Anexa 3.2 Program pentru detecia perturbaiilor din reeaua electric............156
Anexa 3.3 Program pentru implementarea memoriei circulare........................164
Anexa 3.4 Program pentru implementarea controlului grafic care afieaz starea
memoriei circulare ..................................................................................172
Anexa 4. Programe reprezentative elaborate n HTML i PHP ............................176

Lista de figuri
Fig. 1.1 Tipuri de perturbaii ..................................................................... 17
Fig. 3.1 Schema bloc a unui sistem de monitorizare a perturbaiilor din
reeaua electric de joas tensiune ................................................
30
Fig. 3.2 Transformator funcional cu amplificator operaional ......................... 31
Fig. 3.3 Caracteristica de transfer a transformatorului funcional n cadranul I.... 32
Fig. 3.4 Circuitul echivalent pentru calculul valorii rezistenei R

1
.................... 35
Fig. 3.5 Funcia de transfer a circuitului simulat n PSpice ........................... 36
Fig. 3.6 Abaterea de la caracteristica real la 500 V ..................................... 36
Fig. 3.7 Abaterea de la caracteristica real la 2 kV ....................................... 37
Fig. 3.8 Influena temperaturii asupra punctelor de frngere ale caracteristicii
circuitului de compresie dinamic a) la 500 V; b) la 2 kV; c) la 10 kV ...

38
Fig. 3.9 Semnalul de intrare triunghiular aplicat circuitului i semnalul de la
ieirea circuitului ........................................................................

39
Fig. 3.10 Semnalul de intrare triunghiular aplicat circuitului i semnalul
reconstruit de aplicaia software ..................................................

39
Fig. 3.11 Spectrele semnalelor de intrare, respectiv de ieire ale circuitului de
compresie ................................................................................

40
Fig. 3.12 Semnal biexponenial aplicat la intrare i semnalul de la ieirea
circuitului de compresie ..............................................................

40
Fig. 3.13 a) Semnal biexponenial aplicat la intrarea circuitului de compresie i
semnalul de la ieirea circuitului de decompresie, b) eroarea relativ
a semnalului de la ieirea circuitului de decompresie fa de
semnalul aplicat la intrarea circuitului de compresie .......................



41
Fig. 3.14 Spectrul semnalului de intrare biexponenial i al semnalului de ieire
dup decompresie .....................................................................

41
Fig. 3.15 Semnal de intrare sinus amortizat i semnalul de la ieirea circuitului
de compresie (linie punctat) ......................................................

42
Fig. 3.16 Semnal de intrare sinus amortizat i semnalul de la ieirea circuitului
de decompresie (linie punctat) ...................................................

42
Fig. 3.17 Eroarea relativ a amplitudinii maxime a sinusului amortizat dup
decompresie .............................................................................
43
Fig. 3.18 Spectrul semnalului sinus amortizat de la intrare i dup decompresie .. 43
Fig. 3.19 Schema bloc a circuitului propus pentru minimizarea erorilor prin
calibrare ..................................................................................

44
Fig. 3.20 Semnalul de intrare i semnalul decomprimat la 1.9 kV
a) fr corecie; b) cu corecie.....................................................

45
Fig. 3.21 Semnalul de intrare i semnalul decomprimat la 3 kV
a) fr corecie; b) cu corecie.....................................................

45
Fig. 3.22 Semnalul de intrare i semnalul decomprimat la 7 kV
a) fr corecie; b) cu corecie.....................................................

46
Fig. 3.23 Semnalul de intrare i semnalul decomprimat la 10 kV
a) fr corecie; b) cu corecie.....................................................

46
Fig. 3.24 Schema bloc a circuitului de compresie dinamic propus ................. 48
Fig. 3.25 Funcia de transfer a celor trei divizoare de tensiune utilizate .......... 49
Fig. 3.26 Funcia de transfer a divizorului de tensiune secvenial.................... 49
8 Lista de figuri

Fig. 3.27 Algoritmul software al divizorului de tensiune secvenial ................. 50
Fig. 3.28 Algoritmul de decompresie a semnalului ....................................... 51
Fig. 3.29 a) Funcia de transfer a divizorului de tensiune secvenial simulat n
Matlab; b) Funcia de transfer a divizorului mpreun cu circuitul de decompresie ...

52
Fig. 3.30 Perturbaie tranzitorie suprapus peste semnalul din reeaua electric 54
Fig. 3.31 Algoritm pentru detecia perturbaiilor tranzitorii de amplitudine mare ... 55
Fig. 3.32 Aplicaie Visual C++ pentru testarea funcionrii algoritmului de
detecie a perturbaiilor tranzitorii de mare amplitudine bazat pe
divizorul secvenial de tensiune ...................................................


56
Fig. 4.1 Componentele unui sistem de achiziie de date ................................ 58
Fig. 4.2 Placa de achiziie NI USB 6259 ...................................................... 59
Fig. 4.3 Conectarea intrrilor n modul diferenial ........................................ 60
Fig. 4.4 Conectarea intrrilor n modul unipolar ........................................... 61
Fig. 4.5 Aplicaia DAQ assistant ................................................................ 62
Fig. 5.1 Schema bloc a sistemului pentru detectarea perturbaiilor tranzitorii .. 67
Fig. 5.2 Tehnica segmentrii ..................................................................... 68
Fig. 5.3 Ordinograma algoritmului ............................................................. 69
Fig. 5.4 Aplicaie software pentru mprirea pe segmente i calculul indicilor
de regularitate pe fiecare segment ................................................

70
Fig. 5.5 Schema bloc a sistemului pentru detectarea perturbaiilor tranzitorii
modificat ...................................................................................

71
Fig. 5.6 Ordinograma algoritmului modificat .............................................. 72
Fig. 5.7 Variaia indicelui de regularitate cu frecvena ................................. 73
Fig. 5.8 Semnal sinusoidal cu perioada de 20 ms peste care s-a suprapus o
perturbaie de tip impuls .............................................................

74
Fig. 5.9 Semnal sinusoidal cu perioada de 20 ms peste care s-a suprapus o
perturbaie de tip impuls dublu ...................................................

74
Fig. 5.10 Semnal sinusoidal cu perioada de 20 ms peste care s-a suprapus o
perturbaie de tip impuls dublu ...................................................

75
Fig. 5.11 Semnal sinusoidal cu perioada de 20 ms peste care s-a suprapus un
zgomot ...................................................................................

75
Fig. 6.1 Diagrama sistemului de monitorizare al perturbaiilor ....................... 77
Fig. 6.2 Circuitul de condiionare a semnalelor ............................................ 78
Fig. 6.3 Modul de intrare izolat ................................................................. 79
Fig. 6.4 Modulul de intrare ....................................................................... 79
Fig. 6.5 Diagrama de conectare a modulelor de intrare ................................. 80
Fig. 6.6 Circuitul de condiionarea semnalelor ............................................. 81
Fig. 6.7 Conectarea circuitului de intrare n modul mas comun ................... 82
Fig. 6.8 Conectarea circuitului de intrare n modul diferenial ........................ 82
Fig. 6.9 Conectarea a dou reele electrice diferite la circuitul de intrare ......... 83
Fig. 6.10 Conectarea unei reele electrice trifazice la circuitul de intrare ......... 83
Fig. 6.11 Conectarea unei reele electrice trifazice la circuitul de intrare n mod
diferenial ................................................................................

84
Fig. 6.12 Ierarhia de clase MFC ............................................................... 86
Fig. 6.13 Fereastra principal a aplicaiei .................................................... 89
Fig. 6.14 Secvena de iniializare a aplicaiei ............................................... 90
Fig. 6.15 Diagrama rutinei soft de detectare a perturbaiilor ........................ 91
Fig. 6.16 Organizarea memoriei circulare .................................................. 92
Fig. 6.17 Afiarea grafic a strii memoriei circulare ................................... 92
Fig. 6.18 Algoritmul de detecie a perturbaiilor .......................................... 93

Lista de figuri 9

Fig. 6.19 Diagrame temporale pentru explicarea funcionrii sistemului de
detecie a perturbaiilor .............................................................

94
Fig. 6.20 Detecia duratei unei semiperioade a semnalului reelei ................. 95
Fig. 6.21 Algoritmul de detecie a perturbaiilor .......................................... 96
Fig. 6.22 Blocul de detecie a perturbaiilor ................................................ 97
Fig. 6.23 Bara de instrumente a aplicaiei .................................................. 98
Fig. 6.24 Controale pentru afiarea grafic a semnalelor .............................. 99
Fig. 6.25 Structura fiierului settings.ini .................................................... 100
Fig. 6.26 Aplicaia de generare a semnalelor .............................................. 101
Fig. 6.27 Diagrama aplicaiei de generare a semnalelor de test .................... 103
Fig. 6.28 Aplicaia de generare a semnalelor. Generarea unui semnal biexponenial 103
Fig. 6.29 Impuls biexponenial pentru diferite valori ale parametrilor a i b .... 104
Fig. 6.30 Aplicaia de generare a semnalelor. Generarea unui semnal sinusoidal
cu frecvena de 50 Hz peste care se suprapune un impuls biexponenial

104
Fig. 6.31 Aplicaia de generare a semnalelor. Generarea unui semnal sinusoidal
nsoit de zgomot ........................................................................
105
Fig. 6.32 Conectarea serverului web la Internet ......................................... 106
Fig. 6.33 Panoul de configurare a serverului web xampp ............................. 107
Fig. 6.34 Fereastra Perturbaii a aplicaiei web ........................................... 108
Fig. 6.35 Sistem de monitorizare a calitii energiei electrice ........................ 109
Fig. 7.1 Perturbaie de tip impuls tranzitoriu ............................................... 112
Fig. 7.2 Perturbaie de tip impuls tranzitoriu. a) semnal perturbat, b) detaliu .. 112
Fig. 7.3 Perturbaie de tip impuls tranzitoriu ............................................... 113
Fig. 7.4 Perturbaie de tip impuls tranzitoriu. a) semnal perturbat, b) detaliu .. 113
Fig. 7.5 Perturbaie de tip impuls tranzitoriu. a) semnal perturbat, b) detaliu .. 113
Fig. 7.6 Perturbaii de tip impuls .............................................................. 114
Fig. 7.7 Perturbaii a) cdere de tensiune, b) cdere de tensiune i impuls tranzitoriu 114
Fig. 7.8 Variaia valorii maxime a tensiunii reelei la pornirea unui motor
asincron de 18 kVA ......................................................................

115
Fig. 7.9 Semnalul din reeaua electric a Facultii de Electronic i Telecomunicaii
i spectrul acestuia ...............................................................................

115
Fig. 7.10 Semnalul din reeaua electric a Facultii de Mecanic i spectrul acestuia 116
Fig. 7.11 Semnalul reelei electrice rurale din Germania i spectrul acestuia .... 116
Fig. 7.12 Cdere de tensiune a) tensiune, b) evoluia n timp a valorii efective
a tensiunii reelei n timpul golului de tensiune ..............................

116
Fig. 7.13 Perturbaie de scurt durat ........................................................ 117
Fig. 7.14 Conectarea sistemului de monitorizare a calitii energiei electrice la
un sistem fotovoltaic ..................................................................

117
Fig. 7.15 Trecerea alimentrii laboratorului de pe sistemul energetic naional
pe sursa de energie regenerabil .................................................

118
Fig. 7.16 Semnalul reelei energetice naionale (punctat) i semnalul generat
de invertor (linie continu) .........................................................

119
Fig. 7.17 Spectrul semnalului generat de invertor a) spectrul semnalului la
frecvene joase; b) spectrul semnalului la frecvene ridicate (detaliu)

119


Lista de tabele

Tabelul 1.1 Evoluia conceptului de calitate a energiei electrice de-a lungul timpului . 19
Tabelul 1.2 Standarde pentru monitorizarea calitii energiei electrice ............. 20
Tabelul 1.3 Condiiile de referin n raport cu tensiunea msurat ................. 21
Tabelul 1.4 Plaja de funcionare a echipamentelor de clas A ......................... 22
Tabelul 1.5 Plaja de funcionare a echipamentelor de clas B ......................... 22
Tabelul 1.6 Incertitudinea de msurare ....................................................... 26
Tabelul 1.7 Condiii de referin relative la influenele externe ........................ 27
Tabelul 1.8 Domeniul de operare al instrumentelor ....................................... 27
Tabelul 1.9 Norme EN 50160: Caracteristici ale calitii energiei electrice n JT i MT 28
Tabelul 3.1 Erorile relative ale semnalului comprimat i decomprimat .............. 47
Tabelul 3.2 Energiile semnalelor ................................................................. 47
Tabelul 3.3 Valorile i numrul cuantelor de tensiune pentru diferite intervale
de valori ale semnalului de intrare ............................................. 53
Tabelul 3.4 Numrul efectiv de bii utilizai pe fiecare interval al tensiunilor de intrare . 54
Tabelul 4.1 Principalii parametrii ai plcii de achiziie NI USB 6259 .................. 60
Tabelul 6.1 Parametrii amplificatorului izolator ISO 122U ............................... 78
Tabelul 6.2 Parametrii circuitului integrat DCH010515N7 ............................... 79
Tabelul 6.3 Funciile matematice admise de aplicaie i sintaxa acestora .......... 102






1. INTRODUCERE
1.1 Problematica tezei
Cele mai multe domenii ale industriei, dar i de alt natur, se confrunt cu
problema calitii energiei electrice, n special cele care trebuie s ofere un standard
ridicat al serviciilor (internet, comunicaii de date, fabrici de componente
semiconductoare etc.). Calitatea energiei electrice poate fi definit n multe moduri,
fiecare individ avnd propria sa percepie asupra acestei noiuni, motiv pentru care
a fost nevoie de definirea clar i concis a noiunii de calitate a energiei electrice i
de standardizarea parametrilor care intervin n definirea acestei noiuni. Tensiunea
stabil, forma de und nedistorsionat (lipsa armonicilor), abateri minime de la
frecvena nominal, sunt doar cteva dintre caracteristicile pe care trebuie s le aib
un sistem electric de calitate.
Diagnosticarea prompt a problemelor care apar n ceea ce privete sistemul
de distribuie a energiei electrice conduce la corectarea prompt a acestora [1].
Folosirea unor tehnici de procesare avansat a semnalelor i monitorizarea n timp
real a perturbaiilor faciliteaz depanarea acestor sisteme i evitarea evenimentelor
neprevzute. Monitorizarea liniilor de alimentare cu energie electric poate conduce
la adoptarea de msuri fiabile pentru prevenirea producerii de perturbaii. Sistemele
de msurare digitale pot msura tensiune, curent, dezechilibre de faz, flux
magnetic, temperatur cu o acuratee foarte mare. Se pot amplasa un numr mare
de astfel de sisteme de monitorizare n diverse puncte ale sistemului energetic i
astfel, se poate realiza monitorizarea acestuia prin intermediul unei reele Ethernet
[2], [3], [4], [5], [6]. Instrumente software puternice stau la dispoziia utilizatorului
permind crearea de jurnale cu datele msurate, analiza armonic a semnalelor
achiziionate n diferite puncte ale sistemului i activarea unor alarme atunci cnd
parametrii depesc limitele normale [7], [8]. Mai mult, msurrile multiple, n
diferite puncte ale reelei, sincronizate temporal prin GPS, permit o analiz
complex i o localizare mai exact a surselor [9].
Circuitele de monitorizare prelucreaz cantiti imense de date, aceste date
provenind din diferitele puncte ale sistemului supus monitorizrii. Sunt utilizate
tehnici speciale de prelucrare a semnalelor pentru a extrage informaiile utile din
acest ocean uria de date [10]. Procedeele de prelucrare digital a semnalelor joac
un rol esenial n cadrul algoritmilor utilizai, noi tehnici matematice sunt folosite
pentru a mbunti calitatea sistemelor de monitorizare [11].
Odat detectat i clasificat perturbaia, este necesar s se cunoasc sursa
acesteia pentru a se putea lua msuri n vederea nlturrii ei. Defectarea anumitor
componente, funcionarea parial a unora dintre ele, introducerea sau scoaterea
din reea a unor echipamente electrice de putere sau variaii mari ale sarcinii sunt
cauze des ntlnite. Dup ce informaiile au fost clasificate, a fost evaluat
severitatea problemei i identificat sursa acesteia, nlturarea ei poate fi fcut de
un sistem de decizie automat sau manual. De obicei, dac defeciunea este n
amonte, problema trebuie semnalat distribuitorului de energie electric. Dac sursa
12 Introducere - 1

perturbaiei este la consumator, operatorii pot ignora defeciunea sau pot repara
echipamentul defect.
Foarte multe ri au adoptat standarde pentru asigurarea calitii energiei
electrice [12], [13], [14], [15], [16], [17].
Romnia a adoptat n 2004, odat cu ratificarea Acordului de Asociere a
Romniei la Uniunea European, directiva 89/336 EEC Compatibilitate
electromagnetic [18], directiv prin care Ministerul Economiei i Comerului a fost
abilitat printre altele s emit ordine privind lista standardelor aplicabile, list ce
trebuie actualizat periodic [19]. n acest sens, n cursul anului 2003 ASRO a
preluat n ntregime standardele din domeniul compatibilitii electromagnetice
existente la acel moment i publicate n Jurnalul Oficial al Uniunii Europene. Noua
list prezentat o nlocuiete pe cea publicat n Monitorul Oficial 62/230/2002 n
conformitate cu Ordinul comun MCTI 555/2001/MIR 409/2001. Experiena
dobndit n aplicarea Directivei CEM 89/336/CE, limitele de aplicare, precum i
evoluia domeniului electric, n special electronica i telecomunicaiile, au condus la
apariia unei noi directive CEM i anume: DIRECTIVA 2004/108/CE (DIRECTIVE
2004/108/EC OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL of 15
December 2004). Aceast directiv a fost preluat i adoptat n legislaia Romniei
prin intermediul Hotrrii Guvernului nr. 982/2007 privind compatibilitatea
electromagnetic, fiind aplicat ncepnd cu data de 20 iulie 2007.
Prin ordinul ANRDE nr. 128 din 2008 este aprobat Codul tehnic al reelelor
electrice de distribuie.
Odat cu introducerea standardizrii i n ara noastr, muli cercettori
romni i-au ndreptat atenia nspre acest domeniu [20], [21], [22], [23].
1.2 Structura tezei
Lucrarea cuprinde 8 capitole structurate dup cum urmeaz.
Capitolul 1 prezint problematica i structura tezei, trecndu-se n revist
principalele probleme ce vor fi tratate pe larg n capitolele urmtoare.
n capitolul 2 este prezentat o clasificare succint a perturbaiilor care apar
n reelele de alimentare cu energie electric. Se prezint evoluia noiunii de
calitate a energiei electrice de-a lungul timpului i sunt prezentate principalele
standarde pentru asigurarea calitii energiei electrice, cu descrierea mai
amnunit a dou dintre ele: standardul IEC 61000-4-30 i standardul EN 50160.
Capitolul 3, intitulat Circuite de condiionare a semnalelor, prezint structura
unui sistem de monitorizare a calitii energiei electrice i este orientat asupra
circuitului de condiionare a semnalelor, circuit care are rolul de a prelua semnalele
din reeaua electric i a le modifica nivelul astfel nct s fie compatibil cu intrrile
convertoarelor analog-numerice folosite pentru preluarea informaiei n form
numeric. Tot aici este prezentat problematica achiziionrii semnalelor cu o
dinamic foarte mare, soluia problemei constnd n utilizarea unui circuit de
compresie pentru a micora gama dinamic a semnalului de la intrarea convertorului
analog-numeric, astfel nct s poat fi nregistrate att semnale cu amplitudini mari
(10 kV) ct i variaii mici (de ordinul volilor) n jurul valorii nominale a tensiunii
reelei. Din categoria circuitelor de compresie clasice este prezentat un circuit de
condiionare a semnalelor realizat cu ajutorul unui transformator funcional, circuit
care prezint o serie de probleme. Autorul propune o soluie pentru rezolvarea
acestor probleme, bazat n principal pe introducerea unui modul de calibrare n
componena circuitului. Deoarece o soluie care implic circuite integrate este n
1.2 Structura tezei 13

general mai scump i nu este ntotdeauna fiabil, autorul propune utilizarea unui
circuit de compresie a semnalului mult mai simplu, utiliznd trei divizoare rezistive
de tensiune i procesarea software a semnalelor achiziionate pentru obinerea unei
caracteristici asemntoare unui circuit de compresie, aceasta fiind una dintre
contribuiile originale ale autorului.
n Capitolul 4 sunt prezentate sistemele de achiziie de date, modul de
realizare i funcionare al acestora. Este prezentat placa de achiziie utilizat i
sunt descrise principalele funcii din biblioteca NI-DAQmx care nsoete placa de
achiziie, funcii indispensabile n dezvoltarea aplicaiei.
n capitolul 5 sunt prezentai civa algoritmi originali pentru detectarea
perturbaiilor din reelele electrice bazai pe analiza semnalelor n domeniul timp.
S-a ales analiza n domeniul timp, deoarece analiza semnalelor cu ajutorul
transformatei Fourier sau Wavelet este consumatoare de timp i de resurse, autorul
dorind implementarea sistemului de monitorizare a calitii energiei electrice pe
sisteme ieftine i cu performane modeste din punct de vedere al puterii de calcul.
De asemenea, n capitolul 5 este prezentat un algoritm de detectare a perturbaiilor
bazat pe media nul pe o perioad a unui semnal sinusoidal, algoritm preluat din
literatur i mbuntit de autor prin introducerea unei memorii circulare,
putndu-se stoca astfel un numr predefinit de eantioane ale semnalului. Pornind
de la aceast idee, autorul propune n capitolul 6 o metod original de detectare a
perturbaiilor bazat pe analiza unei semiperioade a semnalului reelei. Metoda de
detectare se bazeaz, n esen, pe compararea valorilor instantanee obinute pe o
semiperioad a semnalului reelei (valoare efectiv, valoare de vrf, factor de
creast i frecven) cu mediile lor pe 10 perioade. n urma comparrii i
interpretrii valorilor obinute se ia decizia dac semnalul este sau nu perturbat. n
acest capitol este prezentat i aplicaia software care implementeaz algoritmul de
detectare a perturbaiilor. Pentru testarea acestui algoritm a fost elaborat o
aplicaie software care genereaz pe placa de sunet a calculatorului un semnal de
50 Hz avnd suprapuse diverse tipuri de perturbaii. Sistemul de monitorizare poate
fi plasat chiar i n locuri mai puin accesibile, existnd de asemenea i cazuri n care
se dorete monitorizarea de la distan a unui site, motiv pentru care a fost
implementat un server web ce permite accesul de la distan la datele msurate.
Capitolul 7 prezint Rezultatele experimentale obinute cu sistemul de
monitorizare a calitii energiei electrice propus i realizat de autor, avnd ca surse
diferite locaii ale reelei de alimentare de joas tensiune.
Capitolul 8 prezint cele mai importante concluzii generale i contribuiile
originale ale autorului n cadrul tezei de doctorat.
n anexe sunt prezentate, din programele soft elaborate de autor, secvene
reprezentative din programele elaborate n C++, PSpice, Matlab, HTML i PHP.




2. TIPURI DE PERTURBAII I STANDARDE
PENTRU DETECTAREA I MONITORIZAREA
ACESTORA
2.1 Caracterizarea surselor de perturbaii
Exist mai multe criterii pentru caracterizarea perturbaiilor care apar n
reelele de distribuie a energiei electrice [24], criterii ce caracterizeaz perturbaiile
fie n domeniul timp (durat, amplitudine, repetitivitate), fie n domeniul frecvene
(analiz Fourier sau Wavelet) [25], [26], [27].
Din punctul de vedere al duratei, perturbaiile pot fi:

1. Perturbaii tranzitorii
a. Impulsurile tranzitorii sunt de regul unidirecionale ca i
polaritate [28], [29].
b. Oscilaiile tranzitorii constau n variaii rapide ale tensiunii
sau curentului cu schimbri brute de polaritate. Cauzele
posibile ale perturbaiilor tranzitorii de tip impuls sunt:
fulgerele, fire defecte, contacte ale releelor, conectarea sau
deconectarea unei sarcini sau activarea dispozitivelor pentru
corecia factorului de putere. Cea mai comun cauz a
producerii oscilaiilor tranzitorii este introducerea n reea a
unor capaciti pentru corecia factorului de putere [30].

2. Perturbaii de scurt durat [31]
a. Golurile de tensiune includ scderile cu 10 % ale tensiunii
nominale pentru o perioad de timp care nu depete un
minut. Sunt cauzate de regul de defecte ale sistemului de
distribuie a energiei electrice sau echipamente defecte.
b. Cderile de tensiune sunt scderi ale valorilor tensiunii sau
ale curentului cuprinse n intervalul 2 ms 1 minut. Ele pot
fi cauzate de defecte n sistemul de alimentare cu energie
electric (o linie czut la pmnt - defect care va persista
pn nu va fi nlturat), pornirea-oprirea unor sarcini foarte
mari (motoare), sarcini care i modific impedana cu
tensiunea de alimentare.
c. Supracreterile de tensiune sunt creteri ale valorii efective
ale tensiunii sau ale curentului pentru intervale de timp
cuprinse ntre 0.5 cicluri ale frecvenei fundamentalei i un
minut. Amplitudinea tipic a acestor perturbaii este
cuprins ntre 110 i 180 % din valoarea tensiunii nominale
a reelei. Cuplarea i decuplarea de la reeaua electric a
unei sarcini mari sau a unei baterii de condensatoare poate
cauza astfel de perturbaii.

2.1 - Caracterizarea surselor de perturbaii 15

3. Perturbaiile de lung durat se refer la variaii ale valorii
efective pe o perioad de timp ce depete un minut.
a. Supratensiunile sunt creteri ale valorii efective (la
frecvena nominal) pentru intervale mai lungi de un minut.
Amplitudinile tipice ale acestor perturbaii sunt cuprinse
ntre 110 % i 120 % din valoarea tensiunii nominale a
reelei. Printre cauzele care genereaz astfel de perturbaii
se numr: decuplarea unor sarcini mari, variaii n
compensarea reactiv a sistemului sau reglarea defectuoas
a regulatoarelor de tensiune.
b. Subtensiunile sunt scderi ale valorii efective nominale (la
frecvena nominal) pentru intervale mai lungi de un minut.
Amplitudinile tipice ale acestor perturbaii sunt cuprinse
ntre 80 % i 90 % din valoarea nominal a tensiunii reelei.
Sunt produse de conectri ale unor sarcini mari, variaii ale
compensrii reactive a sistemului, alegerea neinspirat a
unui anumit tip de transformator, regulatoare de tensiune
ajustate incorect, suprancrcarea liniei de transmisie a
energiei electrice.
c. ntreruperile susinute de tensiune (golurile de tensiune)
sunt definite ca fiind scderi la zero a valorii tensiunii de
alimentare pentru o durat mai mare de un minut. Sunt
provocate (cel mai frecvent) de accidente care afecteaz
liniile de transmisie, transformatoarele sau sursele de
tensiune alternativ.

4. Dezechilibrele se produc atunci cnd valoarea efectiv a diferitelor
tensiuni de faz sau unghiuri de faz ntre faze consecutive nu sunt
egale [32]. Aceste anomalii sunt considerate severe dac valoarea
lor depete 5 %. Sunt generate de sarcini dezechilibrate sau de
pierderile excesive din conductoarele electrice ale liniei de
alimentare cu energie electric.

5. Distorsiunile de form sunt deviaii de la forma de und ideal
(sinusoidal) caracterizate de prezena n spectrul semnalului a
componentelor spectrale ale acestor distorsiuni. Exist cinci tipuri
de astfel de perturbaii [33]:
a. Componenta continu const n prezena unei tensiuni
suprapuse peste tensiunea liniei de alimentare. Astfel de
distorsiuni pot fi cauzate de modificrile geometrice ale
componentelor generatoarelor (stator, rotor), pornirea i
oprirea unor maini sincrone sau prezena unor surse de
alimentare n comutaie. Amplitudinea componentei
continue este destul de mare pe perioada pornirii - opririi
mainilor sincrone.
b. Distorsiunile armonice sunt perturbaii sinusoidale cu
frecvena multiplu ntreg al frecvenei sistemului de
alimentare cu energie electric. Orice dispozitiv sau sarcin
neliniar produc astfel de perturbaii [34], [13].
Consumatorii neliniari pasivi produc, de regul, armonici
impare, armonicile pare fiind produse de ctre dispozitivele
16 Tipuri de perturbaii i standarde - 2


active, dar i de ctre transformatoarele saturate cu un
curent continuu. n afara componentelor armonice, n reea
pot s apar i componente nearmonice: subarmonici sau
interarmonici produse de convertizoarele de frecven sau
de motoarele asincrone prin fenomenul de alunecare [35].
c. Intermodulaiile sunt perturbaii ale tensiunii sau curentului
care au frecvene discrete, diferite de frecvena
componentelor armonice, sau un spectru bogat. Sursele
principale ale acestor perturbaii sunt convertoarele statice
de frecven, ciclo-convertoarele, motoarele de inducie i
arcul electric [7].
d. Vrfurile de tensiune sunt distorsiuni ale tensiunii de
alimentare cauzate de operarea normal a dispozitivelor
electrice n momentul comutrii curentului de la o faz la
alta [36], [37].
e. Zgomotul include orice semnal nedorit cu componente
spectrale mai mici de 200 kHz suprapuse peste tensiunea
sau curentul din linia de alimentare [38]. Zgomotele pot fi
produse de echipamentele care produc arc electric,
circuitele de control, surse de alimentare n comutaie.

6. Fluctuaiile de tensiune (flicker) [39] sunt variaii sistematice ale
anvelopei semnalului sau o serie de schimbri aleatoare ale
tensiunii, magnitudinea acestora nedepind limita de 105 % din
valoarea nominal a tensiunii reelei. Orice sarcin care prezint
variaii semnificative ale curentului, respectiv a valorii elementului
reactiv cum ar fi arcurile electrice, poate provoca astfel de fluctuaii
[40], [41]. Flickerul produce variaii ale iluminrii n cazul utilizrii
surselor de iluminat incandescente, efectul fiind foarte deranjant
pentru ochi dac frecvena fluctuaiilor este de 8,8 Hz [42].

7. Variaiile frecvenei sunt n direct legtur cu schimbrile vitezei
generatoarelor rotative datorit dezechilibrului ntre sarcin i
capacitatea respectivului generator. Printre cauze poate fi amintit
cuplarea / decuplarea unor sarcini foarte mari. Scderea frecvenei
reelei are ca efect creterea pierderilor n transformatoare i
creterea uzurii generatoarelor, ca efect al apropierii de frecvena
de rezonan a acestora.

8. Evenimentele repetitive reprezint o serie de evenimente care se
produc la intervale regulate. Printre cauzele apariiei acestor
perturbaii se numr i dispozitivele care produc evenimente
repetitive cum ar fi: dispozitive cu vitez variabil, startere,
dispozitive de sudur cu arc.

n figura 1.1 sunt prezentate cteva dintre perturbaiile ntlnite frecvent n
reelele de alimentare cu energie electric: impulsuri tranzitorii, ntreruperi de
tensiune, supratensiuni, cderi de tensiune, fluctuaii de tensiune (flicker), variaii
ale frecvenei reelei.


2.1 - Caracterizarea surselor de perturbaii 17







Fig. 1.1 Tipuri de perturbaii
2.2 Standarde privind asigurarea calitii energiei
electrice
2.2.1 Istoric
nc de la nceputul anilor 80 numeroi productori de echipamente
electronice au nceput s produc diverse sisteme electronice pentru monitorizarea
calitii energiei electrice. n lipsa standardizrii procedurilor de msurare,
prelucrare i stocare a datelor, era aproape imposibil compararea i coroborarea
rezultatelor obinute cu diverse tipuri de echipamente.
Impulsuri tranzitorii
t
u(t)
u(t)
t
ntrerupere de tensiune
t
u(t)
Supratensiune
t
u(t)
Cdere de tensiune
u(t) u(t)
t
Fluctuaii de tensiune (flicker)
t
Variaii ale frecvenei
18 Tipuri de perturbaii i standarde - 2


O prim ncercare de standardizare a fost fcut de ctre Institute of
Electrical and Electronics Engineer (IEEE) n 1987, iniiativ ce culmineaz cu
elaborarea i publicarea standardului IEEE 1159 [43].
n 1996, un grup format ad-hoc, alctuit din specialiti n calitatea energiei
electrice din zece ri, au luat n considerare trei cerine majore n ceea ce privete
monitorizarea calitii energiei electrice:
Stabilirea unei ordini n dezordinea existent la acea dat n ceea ce
privete monitorizarea calitii energiei electrice;
Propunerea unei clasificri a nivelurilor de calitate e energiei
electrice i definirea ateptrilor consumatorilor;
Construirea unei puni de legtur ntre productorii de energie
electric, utilizatori i constructorii de echipamente.
Se spera ca discuiile grupului s conduc la dezvoltarea i impunerea de
standarde pentru calitatea energiei electrice, scop care a fost atins civa ani mai
trziu. Un alt grup de studiu a fost nfiinat n 1997 cu scopul de a defini metodele
de msurare pentru a obine rezultate sigure i repetabile indiferent de
instrumentele folosite i indiferent de condiiile de msurare. Dup numai doi ani, n
1999 a aprut primul material scris [44], realizat cu ajutorul grupului de lucru IEC
(International Electrotechnical Commission) i care prezint un raport cu progresele
nregistrate, identificnd aspectele principale ale monitorizrii calitii energiei
electrice, precum i problemele rmase nerezolvate.
nc de la nceput, documentele elaborate de IEC cuprindeau dou pri:
prima parte coninea standardele i normativele care defineau diveri parametri ai
perturbaiilor din reelele electrice, iar cea de-a doua parte cuprindea anexe
informative despre cnd, de ce, unde i cum trebuia monitorizat reeaua de
distribuie a energiei electrice.
Partea normativ din standard cuprinde [45], [46]:
Definirea scopului, documente de referin i definiii;
Organizarea msurrilor (tipuri de instrumente, parametrii ce
trebuiesc msurai);
Acurateea metodelor de testare, domeniile de operare ale
instrumentelor utilizate;
Metodele specifice de msurare pentru parametrii reelelor electrice:
frecven, tensiune, ntreruperi de tensiune, supratensiuni, cderi de
tensiune, goluri de tensiune etc.;
Caracteristici tehnice: sunt descrise dou clase de instrumente de
msurat cu specificarea limitelor de acuratee ale fiecrei clase de
instrumente n parte.

Partea informativ a standardului cuprinde:
Aplicaii pentru realizarea de msurri;
Aplicaii pentru diagnosticarea problemelor care pot s apar n
timpul exploatrii normale a sistemului de distribuie;
Aplicaii pentru determinri statistice;
Precauii de instalare;
Creteri de curent vs. creteri de tensiune;
Bibliografie.

Evoluia conceptului de calitate a energiei electrice de-a lungul timpului este
prezentat succint n tabelul 1.1 [47].

2.2 - Standarde privind asigurarea calitii energiei electrice 19

Tabelul 1.1 Evoluia conceptului de calitate a energiei electrice de-a lungul timpului
Anul Sursa Definiia
1979 T.S. Key, "Diagnosing Power
Quality Related Computer
Problems" [48]
n concluzie, rspunsul la ntrebarea: ce este
calitatea energiei electrice? poate fi gsit doar
prin studiul perturbaiilor din liniile electrice.
Aceste studii sunt primul pas spre o
diagnosticare exact a problemelor surselor de
alimentare ale calculatoarelor.
1985 Clemmensen and Ferraro,
"The Emerging Problem of
Electric Power Quality" [49]
Calitatea energiei electrice reprezint lipsa
perturbaiilor.
1987 IEC 60050,605-01 -05
International Vocabulary
(IEV)
Calitatea sursei de energie electric: o evaluare a
abaterii de la criteriile tehnice, n afara
domeniului definit (implicit sau explicit), a sursei
de energie electric sau a unui ansamblu de
surse de energie electric care provin de la mai
muli furnizori.
1988 PCIM Magazine [50] Calitatea energiei electrice reprezint nivelul de
calitate care trebuie s satisfac nevoile
consumatorilor.
1992
1995
Standardul IEEE 1100-1992
[51]
Standardul IEEE 1159-1995
[52]
Calitatea energiei electrice: conceptul alimentrii
i pmntrii echipamentelor electronice
sensibile ntr-un mod care este propice bunei
funcionri a acestor echipamente.
1995 Standardul IEEE 1250-1995
[53]

Noiunea de calitate a energiei electrice este
foarte des aplicat termenilor ca tensiune,
disponibilitate a energiei electrice i chiar
armonicilor.
1995 Eskom, Handbook on Quality
of Supply [54]
Calitatea energiei electrice: calitatea sursei de
energie care afecteaz distribuia acesteia i
totodat include elemente de calitate a tensiunii
electrice i msurri ale disponibilitii energiei
electrice, precum i a continuitii sursei de
energie.
1996 Raportul Consiliului
Consultativ n privina
Compatibilitii
Electromagnetice al IEC,
1996
Calitatea energiei electrice: un set de parametri
ce definesc proprietile sursei de energie aa
cum trebuie ea livrat consumatorilor n condiii
normale, n termeni ce definesc continuitatea
sursei de energie i caracteristicile tensiunii
furnizate de aceasta (amplitudine, frecven,
simetrie, form de und).
1999 Standardul IEEE 1100-1999
[55]

Calitatea energiei electrice: conceptul alimentrii
i pmntrii echipamentelor electronice
sensibile ntr-un mod care este propice bunei
funcionri a acestor echipamente n ipoteza
interconectrii acestora cu alte echipamente.
2000 Grupul de lucru IEC 77WG09 Calitatea energiei electrice este definit ca un set
de parametri tehnici ce descriu compatibilitatea
dintre energia furnizat ntr-o reea i
consumatorii conectai la acea reea.
20 Tipuri de perturbaii i standarde - 2


n tabelul 1.2 sunt prezentate cteva dintre standardele elaborate de-a
lungul timpului pentru monitorizarea calitii energiei electrice.

Tabelul 1.2 Standarde pentru monitorizarea calitii energiei electrice
Standard Descriere
IEC 868 Este nlocuit de standardul IEC 61000-4-15
IEEE 519
[56], [57]
Descrie nivelurile de armonici acceptate n punctele de
delimitare dintre furnizor i consumator. Este cel mai rspndit
standard folosit de furnizorii de energie electric din SUA;
SR EN 50160 Caracteristici ale tensiunii n reelele electrice publice;
IEEE 1159 [58] Este practica recomandat pentru monitorizarea i
interpretarea corect a fenomenelor electromagnetice care
cauzeaz probleme ale calitii energii electrice;
SR EN 61000-2-2 Compatibilitate electromagnetic (CEM) - Partea 2: Mediu
nconjurtor, Seciunea 2: Descrierea mediului nconjurtor.
Niveluri de compatibilitate pentru perturbaii de joas
frecven propagate prin conducie i transmisia de semnale
pe reelele publice de joas tensiune;
SR EN 61000-2-4 Compatibilitate electromagnetic (CEM) - Partea 2: Mediu
nconjurtor, Seciunea 4: Niveluri de compatibilitate n
medii industriale pentru perturbaii de joas frecven
propagate prin conducie;
CEI TR 61000-2-8 Compatibilitate electromagnetic (CEM) - Partea 2: Mediu
nconjurtor, Seciunea 8: Goluri de tensiune i ntreruperi
de scurt durat n reelele de distribuie a energiei electrice
cu rezultate statistice ale msurrilor;
SR EN 61000-4-7

Descrie o tehnic de msurare a armonicilor i
interarmonicilor astfel nct msurrile efectuate cu aparate
diferite pot fi comparate n mod corespunztor;
SR EN 61000-4-15 Standard de msurare a flickerului, care include specificaii
ce trebuiesc respectate de aparatele de msurare a
flickerului (flickermetre), cele mai multe flickermetre
bazndu-i funcionarea pe acest standard;
SR EN 61000-4-30 Compatibilitate electromagnetic (CEM). Partea 4, Seciunea
30: Tehnici de ncercare i de msurare. Metode de
msurare a calitii energiei electrice;
CEI TR 61000-2-8 Compatibilitate electromagnetic (CEM). Partea 2, Seciunea
8: Mediu nconjurtor goluri de tensiune i ntreruperi de
scurt durat n reelele de distribuie a energiei electrice;
SR EN 50065

Transmisia semnalelor prin reele electrice de joas tensiune n
banda de frecvene de la 3 kHz pn la 148,5 kHz. Cerine
generale, benzi de frecvene i perturbaii electromagnetice;
SR CEI
60364-4-44
Instalaii electrice n construcii. Partea 4, Seciunea 44:
Protecie pentru asigurarea securitii. Protecie mpotriva
perturbaiilor de tensiune i perturbaiilor electromagnetice;
SR EN 60664-1 Coordonarea izolaiei echipamentelor din reelele de joas
tensiune. Partea 1: Principii, prescripii i ncercri;
SR HD 472 S1 Tensiuni nominale ale reelelor electrice de distribuie
public de joas tensiune.

2.2 - Standarde privind asigurarea calitii energiei electrice 21

n continuare se vor prezenta succint standardele IEC 61000-4-30 i EN
50160, standarde ce definesc metodele de msurare a perturbaiilor din reelele
electrice, precum i specificaiile instrumentelor utilizate.



2.2.2 Standardul IEC 61000-4-30
Standardul IEC 61000-4-30 [59] definete metodele de msurare ale
parametrilor reelei de alimentare cu energie electric, astfel nct s se obin
rezultate repetabile i comparabile, indiferent de instrumentele folosite. Acest
standard se refer strict la instrumente i metode de msurare in-situ (la faa locului).
Standardul definete dou clase de performan pentru instrumentele de msurare:
Clasa A se refer la instrumentele de msurare pentru evaluarea calitii
energiei electrice folosite n reelele companiilor de producie a energiei electrice i
n reelele de distribuie a energiei ctre clieni.
Clasa B instrumentele din aceast clas pot fi folosite pentru
supraveghere general, diagnostic iniial, sau alte aplicaii care nu necesit
acuratee foarte mare. Instrumentele din clasa B produc rezultate mai puin exacte
dect cele din clasa A de performan.
Productorii de instrumente de msurare trebuie s precizeze care dintre
parametrii definii de acest standard sunt msurai de ctre instrumentele lor i n
ce clas de exactitate se ncadreaz instrumentul respectiv.
Standardul definete noiunea de tensiune nominal U
n
ca tensiunea cu
care un sistem este denumit sau identificat.
Condiiile de referin n raport cu tensiunea msurat sunt prezentate n
tabelul 1.3.


Tabelul 1.3 Condiiile de referin n raport cu tensiunea msurat
Mrimea Tolerana permis
Frecvena 50 Hz
Amplitudinea tensiunii 1 % din tensiunea nominal
Flicker 10 %
Supratensiuni tranzitorii 0,5 kV
Asimetrii 0,5 %
Armonici (THD) 3 % din tensiunea nominal
Interarmonici (la orice frecven) 1 % din tensiunea nominal

Aceste condiii de referin sunt valabile att pentru echipamente ce
funcioneaz n clas A, ct i pentru cele ce funcioneaz n clas B. Ca i tensiune
de intrare, tensiunea nominal U
n
poate lua valori ntre 60 V i 600 V.
n tabelul 1.4 este prezentat plaja de funcionare a instrumentelor de
msurare de clas A.






22 Tipuri de perturbaii i standarde - 2


Tabelul 1.4 Plaja de funcionare a echipamentelor de clas A
Mrimea de influen Domeniul
Frecvena 42,5 Hz 57,5 Hz
51 Hz 69 Hz
Amplitudinea tensiunii 60 180 % din U
n
Flicker 0 4 %
Asimetrii 0 5 %
Armonici (THD) De dou ori mai mari dect
IEC 61000-2-4, tab. 2, 3, 4, 5
Interarmonici (la orice frecven) De dou ori mai mari dect
IEC 61000-2-4, tab. 6
Ripluri ale semnalelor de control 0 9 % din U
n

Supratensiuni tranzitorii 6 kV
Perturbaii tranzitorii rapide 4 kV

Plaja de funcionare a instrumentelor de msur de clas B este prezentat
n tabelul 1.5.

Tabelul 1.5 Plaja de funcionare a echipamentelor de clas B
Mrimea de influen Domeniul
Frecvena 42,5 Hz 57,5 Hz
51 Hz 69 Hz
Amplitudinea tensiunii 80 120 % din U
n
Flicker 0 4 %
Asimetrii 0 5 %
Armonici (THD) De dou ori mai mari dect
IEC 61000-2-4, tab. 2, 3, 4, 5
Interarmonici (la orice frecven) De dou ori mai mari dect
IEC 61000-2-4, tab. 6
Ripluri ale semnalelor de control 0 9 % din U
n

Supratensiuni tranzitorii 6 kV

Acolo unde sunt necesare msurri cu o acuratee ridicat, de exemplu,
pentru aplicaii contractuale care pot cere s se soluioneze dispute, s se verifice
conformitatea cu standardele existente etc., trebuie sa fie utilizate instrumente de
msurare realizate s msoare n conformitate n clasa A de performan. n acest
mod, este asigurat cerina ca orice msurare a unui parametru efectuat cu dou
instrumente diferite, care sunt conforme cu cerinele clasei A, atunci cnd msoar
aceleai semnale, va produce rezultate care corespund, n interiorul intervalului de
incertitudine specificat.
n funcie de durata pe care se face msurarea, sunt definite trei intervale de timp:
timp foarte scurt: 3 secunde;
timp scurt: 10 minute;
timp lung: 2 ore.

Msurarea frecvenei reelei
Pentru instrumentele de clas A, msurarea frecvenei se face pe un interval
de timp de pn la 10 secunde i care trebuie s cuprind un numr ntreg de
perioade. Frecvena poate fi determinat prin numrarea trecerilor printr-o valoare
constant apropiat de zero ntr-un interval de 10 secunde. Standardul admite i
2.2 - Standarde privind asigurarea calitii energiei electrice 23

alte tehnici de msurare care dau rezultate echivalente. Instrumentul de msurat
trebuie s afieze o nou valoare a frecvenei la fiecare 10 secunde. Intervalele de
msurare trebuie s fie continue i s nu se suprapun.
Pentru instrumentele de clas B, se permit pauze ntre intervalele de msurare.
Productorii trebuie s precizeze pauza maxim dintre dou intervale de msurare.
Instrumentele clasei A trebuie s fie capabile s msoare frecvena cu o
incertitudine f = 10 mHz, iar cele de clas B cu o incertitudine f = 100 mHz.
Dac n timpul msurrii frecvenei apare un eveniment de tipul cdere de
tensiune, ntrerupere de tensiune, supratensiune, frecvena msurat pe acest
interval de timp va fi marcat ca fiind neconform, iar urmtoarea valoare conform
ce va fi nregistrat va fi prima valoare a frecvenei obinut n primul interval de 10
secunde de dup ncetarea perturbaiei. Prima semiperioad pozitiv a semnalului de
dup momentul ncetrii perturbaiei va marca nceputul unei noi msurri a frecvenei.

Msurarea tensiunii reelei
Instrumentele folosite trebuie s poat msura valoarea efectiv (rms) a
tensiunii reelei. Valoarea efectiv a tensiunii u(t), msurat pe un interval T se
calculeaz cu relaia:

2
0
1
( ) =

T
rms
U u t dt
T
(2.1)

Pentru instrumentele din clasa A, incertitudinea de msurare trebuie s fie
mai bun de 0,1%, iar pentru cele de clas B incertitudinea de msurare trebuie
s fie mai bun de 1%.
Intervalele de msurare pentru tensiune, prevzute de standard, sunt: 200
milisecunde, 3 secunde, 10 minute i 2 ore. Pentru sistemele trifazate, se vor
efectua trei msurri ale valorii efective pentru fiecare interval de msurare i pe
fiecare faz n parte.
Intervalul de timp de 200 milisecunde a fost ales astfel nct s cuprind un
numr ntreg de perioade ale semnalului att n cazul reelelor cu frecvena de 50
Hz, ct i n cazul celor cu frecvena de 60 Hz. Se obine astfel o fereastr de
msurare ce cuprinde 10 perioade pentru sistemele pe 50 Hz i 12 perioade pentru
cele pe 60 Hz. Pe parcursul celor 200 ms, sunt obinute N eantioane de la
convertorul analog-numeric, eantioane care sunt mediate pe baza relaiei (2.2)
pentru a se obine valoarea efectiv a tensiunii reelei pe intervalul de 200 ms.

2
1
200
=

=

N
i
rms ms
u
u
N

(2.2)

Fiecare interval de 200 ms pe care se face msurarea trebuie s fie continuu
i intervalele succesive nu trebuie s se suprapun.
n cazul clasei A de performan, dac valoarea efectiv a tensiunii pe 200
ms este mai mare de 150 % sau mai mic de 50 % din valoarea efectiv a tensiunii
nominale, intervalul respectiv va fi marcat ca fiind neconform.
Pentru msurarea valorii efective a tensiunii reelei pe un interval de 3
secunde se va folosi relaia:

24 Tipuri de perturbaii i standarde - 2


=
=

15
2
-200-
1
-3-
15
rms ms
i
rms s
U
U
(2.3)

Dac opt sau mai multe intervale consecutive de 200 ms sunt marcate ca
neconforme, atunci i intervalul de 3 secunde corespunztor este marcat ca fiind
neconform. De asemenea, intervalele de 3 secunde trebuie s fie continue i nu
trebuie s se suprapun.
n mod similar se pot defini valorile efective ale tensiunii reelei pe intervale
de 10 minute :


=

=

200
2
3
1
10 min
200
rms s
i
rms
U
U
(2.4)

i respectiv 2 ore:


=

=

12
2
10 min
1
2
12
rms
i
rms h
U
U
(2.5)

Pentru clasa B, semnalele aplicate la intrarea instrumentului de msurare
vor fi filtrate cu ajutorul unui filtru trece-jos, astfel nct s fie eliminate armonicile
mai mari de ordinul 13.

Msurarea cderilor i supracreterilor de tensiune
Pentru msurarea acestor parametri este nevoie de msurarea valorii
efective a tensiunii reelei pe fiecare semiperioad a semnalului, conform relaiei:

=
=

1
2
2
1
( )
N
i
rms
u
u
N

(2.6)

unde N reprezint numrul de eantioane ale semnalului pe semiperioada pe care se
face msurarea, iar u reprezint eantionul curent.
Pentru clasa A de performan, incertitudinea de msurare trebuie s fie:
U = 0,2 % U
n
.
Pentru clasa B de performan, incertitudinea de msurare trebuie
specificat de ctre productor, dar trebuie s fie 2 % U
n
.
Se poate introduce un prag x, exprimat n procente din tensiunea nominal,
i se pot determina n acest caz supracreterile de tensiune peste pragul de x %,
respectiv cderile de tensiune sub pragul de x % din valoarea nominal a tensiunii.


Msurarea ntreruperilor de tensiune de scurt i lung durat
Msurarea acestor parametri se face la fel ca i la msurarea cderilor de
tensiune cu un prag de 10 %. n cazul sistemelor monofazate, se consider
ntrerupere de tensiune, dac tensiunea nominal scade sub pragul de 10 %, iar n
2.2 - Standarde privind asigurarea calitii energiei electrice 25

cazul sistemelor multifazate se consider ntrerupere de tensiune, dac tensiunea
efectiv a uneia dintre faze scade sub 10 % din tensiunea de referin.
Durata de timp pe care se face observarea (pentru ambele clase) este de dou
semiperioade ale semnalului reelei (20 ms pentru 50 Hz i 18 ms pentru 60 Hz).

Msurarea supratensiunilor tranzitorii
O supratensiune tranzitorie trebuie detectat prin compararea valorii
instantanee a tensiunii pe fiecare perioad cu valoarea instantanee a tensiunii din
perioada anterioar, msurat la acelai moment de timp fa de trecerea prin zero.
Dac exist diferene mai mari de 10 % din U
n
, atunci se va incrementa un contor, n
caz contrar decrementndu-se acest contor, excepie fcnd cazul n care acest contor
este deja la valoarea zero. Dac acest contor atinge o valoare egal cu 5% din durata
unei perioade a semnalului reelei, atunci este semnalat prezena unei supratensiuni.
Instrumentele de clas A trebuie s nregistreze i s prezinte o oscilogram
a supratensiunii.
Instrumentele de clas B pot prezenta un sumar al supratensiunilor aprute n
format text, putnd folosi un algoritm aproximativ de detectare a supratensiunilor.

Msurarea asimetriilor tensiunii reelei
Instrumentele de clas A trebuie s msoare amplitudinea asimetriei
tensiunii pe un interval de 10 minute.
Asimetria tensiunii msurat pe o perioad de timp T este definit de obicei
(folosind metoda componentelor simetrice), prin raportul dintre amplitudinea
componentei negative i amplitudinea componentei pozitive, exprimat procentual:


= =

100% 100%
i
u
d
V
componentanegativ
u
V componenta pozitiv

(2.7)

Pentru calculul asimetriilor trebuie folosit doar componenta fundamental.
Toate armonicile trebuiesc eliminate utiliznd un filtru sau un algoritm DFT.
Pentru instrumentele de clas B productorul trebuie s specifice algoritmii
i metodele de determinare utilizate pentru calculul asimetriei.
Pentru clasa A de performan instrumentele trebuie s aib o incertitudine
de msurare U 0,2 % U
n
. Pentru indicatoarele de clas B se impune o
incertitudine de msurare maxim U 0,5 % U
n
.


Msurarea componentelor armonice
Standardul 61000-4-33 definete noiunea de frecven armonic ca fiind un
multiplu ntreg al frecvenei reelei electrice. Componenta armonic este valoarea
efectiv a oricreia dintre componentele armonice avnd o anumit frecven
armonic, n cazul analizei unui regim nesinusoidal prin intermediul Transformatei
Fourier Discrete (DFT).
Msurarea componentelor armonice este o msurare cvasi-staionar.
Pentru msurarea componentelor armonice, o Transformat Fourier Discret este
aplicat semnalului, pe o fereastr de exact 10 perioade n cazul reelelor de 50 Hz
i 12 perioade la 60 Hz. n ambele cazuri, fereastra de timp este de 200 ms.
Valorile de ieire ale blocului care realizeaz Transformata Fourier Discret
trebuie grupate dup cum urmeaz:
26 Tipuri de perturbaii i standarde - 2


+
=
=

1
2 2
200 10
1
( 50 )
n ms n k
k
C C sisteme pe Hz

+
=
=

1
2 2
200 12
1
( 60 )
n ms n k
k
C C sisteme pe Hz
(2.8)

n tabelul 1.6 sunt prezentate incertitudinile de msurare ale instrumentelor
folosite pentru msurarea armonicilor tensiunii reelei electrice, U
m
fiind tensiunea
msurat, iar U
n
fiind tensiunea nominal a reelei.

Tabelul 1.6 Incertitudinea de msurare
Clasa Condiii Eroarea maxim admis
A U
m
1 % U
n

U
m
< 1 % U
n

5 % U
m
0,05 % U
m

B U
m
3 % U
n

U
m
< 3 % U
n

5 % U
m
0,15 % U
m



Msurarea componentelor interarmonice
Conform standardului, componenta interarmonic reprezint valoarea efectiv
a tensiunii unei linii spectrale cu frecvena ntre frecvenele armonice, ca rezultat al
Transformatei Fourier Discrete aplicat semnalului pe o fereastr de timp dat.
Frecvena componentei interarmonice nu este multiplu ntreg al frecvenei
reelei. Un grup de frecvene interarmonice reprezint valoarea efectiv a tuturor
componentelor interarmonice dintre dou frecvene armonice consecutive.
Standardul prevede ca acele componente interarmonice care sunt adiacente
frecvenelor armonice s nu fie incuse n grupul interarmonic.
Fereastra de timp pe care se face analiza este de 200 ms, cuprinznd 10
perioade pentru semnalele de 60 Hz i 12 perioade pentru semnalele de 50 Hz.
Frecvena de eantionare trebuie s fie sincronizat cu frecvena reelei, dar suficient
de ridicat pentru a putea face posibil analiza componentelor cu frecvena de pn la
2 kHz (armonica a 40-a la 50 Hz) i pn la 2,4 kHz (armonica a 40-a la 60 Hz).
Analiza trebuie s se fac n mod continuu, fr pauze ntre ferestrele de
timp succesive. Standardul admite o pauz de maxim o perioad ntre ferestrele de
timp succesive, n cazul n care analiza acestora nu este posibil.
Valorile obinute n urma aplicrii Transformatei Fourier Discrete trebuiesc
grupate dup cum urmeaz, pentru a obine valorile reprezentative ale interarmonicilor:


+ +
=
=

4
2 2
0,5 200 10
4
( 50 )
n ms n k
k
C C sisteme pe Hz

+ +
=
=

5
2 2
0,5 200 12
5
( 60 )
n ms n k
k
C C sisteme pe Hz
(2.9)

Intervalul pe care se face afiarea interarmonicilor este de 3 secunde. Dac
pe durata ferestrei de timp pe care se face analiza componentelor interarmonice are
loc un eveniment de tipul gol, supratensiune sau ntrerupere de tensiune, atunci acel
interval de msurare a interarmonicilor va fi marcat ca fiind neconform.

2.2 - Standarde privind asigurarea calitii energiei electrice 27

Parametrii de funcionare ai instrumentelor de msurat
n standard sunt definii parametrii de funcionare ai instrumentelor de
msurat i condiiile n care se efectueaz aceste msurri, parametrii specificai n
anumite condiii de referin (tabelul 1.7).

Tabelul 1.7 Condiii de referin relative la influenele externe
Parametrul Valoarea Tolerana
Temperatura ambiant 23 C 2 C
Umiditatea 50 % 10 %
Inducia magnetic a unei surse externe
la frecvena de referin (50 sau 60 Hz) n
orice direcie
0 0,05 mT
Cmp electric extern la frecvena de
referin (50 sau 60 Hz) n orice direcie
0 0,1 kV/m
Aer Absena vaporilor corozivi

Domeniul de utilizare al instrumentelor este prezentat n tabelul 1.8:

Tabelul 1.8 Domeniul de operare al instrumentelor
Parametrul Domeniul
Clasa A
Domeniul
Clasa B
Temperatura ambiant - 10 + 45 C 0 30 C
Umiditatea 20 % - 95 % nespecificat
Inducia magnetic a unei surse
externe la frecvena de referin
(50 sau 60 Hz) n orice direcie
< 0,5 mT nespecificat
Cmp electric extern la frecvena
de referin (50 sau 60 Hz) n
orice direcie
< 1 kV/m nespecificat
Descrcri electrostatice 15 kV nespecificat
Cmpuri electromagnetice de
nalt frecven
10 V/m nespecificat
Aer Absena vaporilor corozivi

2.2.3 Standardul EN 50160
Standardul SR EN 50160 definete i prezint principalele caracteristici ale
tensiunii n punctele de conectare a instalaiilor utilizatorilor la reelele de distribuie
de joas i de medie tensiune, n condiii normale de funcionare. Unele fenomene
care afecteaz calitatea energiei n reeaua electric au caracter imprevizibil i din
acest motiv valorile specificate n acest standard pentru astfel de fenomene, cum ar
fi golurile de tensiune i ntreruperile tensiunii de alimentare, trebuie interpretate n
mod corespunztor.
ntruct exist o diversitate foarte mare n structura reelelor de distribuie
a energiei electrice n diferite zone, rezultat din diferenele de densitate de
sarcin, din dispersia populaiei, din topografia local etc., muli clieni vor
constata variaii considerabil mai mici ale caracteristicilor tensiunii dect valorile
cuprinse n acest standard.
28 Tipuri de perturbaii i standarde - 2


Standardul prevede c, n general, supratensiunile tranzitorii nu trebuie s
depeasc 6 kV valoare de vrf, dar ocazional pot s apar valori mai mari. Durata
acestora acoper un interval de la cteva milisecunde pn la mai puin de o
microsecund. Energia coninut de supratensiunea tranzitorie variaz considerabil
n funcie de locul de origine al perturbaiei. O supratensiune indus de trsnet are,
n general, o amplitudine mai mare, dar conine o energie mai mic dect o
supratensiune cauzat de comutaie, datorit n general, duratei mai mari a
supratensiunilor de comutaie. Dispozitivele de protecie la supratensiune n
instalaiile consumatorilor trebuie alese innd seama, cu mai mult exigen, de
supratensiunile de comutaie. n acest fel se acoper att domeniul supratensiunilor
de trsnet ct i al celor de comutaie.
Caracteristicile parametrilor ce definesc calitatea energiei electrice n reelele
de medie tensiune (MT) i joas tensiune (JT) sunt prezentai n tabelul 1.9.

Tabelul 1.9 Norme EN 50160: Caracteristici ale calitii energiei electrice n JT i MT
Indicator Prevederi standard EN 50160
Frecvena 50 Hz 1 %, 95 % din sptmn;
50 Hz +4 / -6 %, 100 % din sptmn;
(valori medii pe 10 secunde)
Variaia amplitudinii
tensiunii
10 %, 95 % din sptmn;
Variaii rapide (brute) Joas tensiune: 5 % n general, mai rar: 10 % pentru
95% din sptmn;
Medie tensiune: 4 % n general, mai rar: 6 % pentru
95% din sptmn;
Variaii rapide (flicker) P
lt
1 %; 95 % din sptmn;
Goluri de tensiune Cea mai mare parte a golurilor au o durat mai mic
de 1 s cu o amplitudine sub 60 %
ntreruperi de scurt
durat (mai scurte de
3 minute)
De la cteva zeci la mai multe sute pe an;
70 % dintre ntreruperi au o durat mai mic de 1 s;
ntreruperi de lung
durat (mai lungi de
3 minute)
De la 10 la maxim 50 pe an;
Supratensiuni
temporare
Joas tensiune: sub 1.5 kV rms;
Medie tensiune: 1,7 din tensiunea contractual;
Supratensiuni
tranzitorii
Joas tensiune: sub 6 kV, ocazional pot avea i valori
mai mari, timpul de cretere fiind de ordinul ms - s;
Nesimetrie 2 %, 95 % din sptmn, msurate ca medie a
tensiunii efective pe un interval de 10 minute;
3 % n unele locuri;
Armonici Armonici pn la rangul 25 i factor de distorsiune
8 %, 95 % din sptmn;
Interarmonici n studiu.

n afara supratensiunilor temporare la frecvena industrial (50 Hz sau
60 Hz), n reelele electrice pot s apar i supratensiuni tranzitorii (de impuls) n
raport cu pmntul, de origine atmosferic sau de comutaie. Supratensiunile
atmosferice se datoreaz loviturilor de trsnet n liniile electrice sau n apropierea
2.3 - Concluzii 29

acestora. Supratensiunile de comutaie pot s apar din cauza unor manevre
(comutaii) n reeaua distribuitorului de energie electric sau n reeaua
utilizatorului. Se ntlnesc frecvent supratensiuni faz pmnt de 2 sau de 3 ori
tensiunea nominal.
Protecia contra supratensiunilor tranzitorii trebuie asigurat nc din faza de
proiectare (prevederea de paratrsnete, descrctoare, etc.), att n reelele de
distribuie ct i la utilizator.
2.3 Concluzii
Calitatea energiei electrice a devenit n ultimul timp o preocupare major,
mai ales n cazul particular al consumatorilor casnici, deoarece buna funcionare a
echipamentelor electrice i electronice conectate la reeaua electric depinde n
mare msur de calitatea energiei electrice furnizate acestora.
Din punctul de vedere al consumatorilor, calitatea energiei electrice se
rezum la livrarea energiei electrice fr variaii ale tensiunii i frecvenei acesteia.
Din diverse motive, energia electric livrat consumatorilor nu este
ntotdeauna conform cu cerinele acestora, existnd o serie ntreag de evenimente
care pot s apar n sistem: scurt-circuite, cuplarea/decuplarea unor generatoare
n/din sistem, conectarea/deconectarea unor motoare sincrone, trsnete etc.,
evenimente ce pot conduce la apariia unor perturbaii: ntreruperi de tensiune,
cderi de tensiune, supratensiuni, armonici, impulsuri tranzitorii, zgomot etc.
Odat cu dezvoltarea exploziv a tehnicii de calcul i a utilizrii pe scar
larg a calculatoarelor personale, reeaua electric a devenit din ce n ce mai
poluat. Sursele de alimentare n comutaie ale calculatoarelor personale introduc n
reeaua electric perturbaii, n special impulsuri singulare de scurt durat.
Prezena acestor perturbaii n reea poate mpiedica buna funcionare a anumitor
echipamente, n special a celor medicale i a receptoarelor radio.
n trecut, datorit lipsei standardizrii instrumentelor i a metodologiei de
msurare, era imposibil compararea datelor obinute n urma monitorizrii calitii
energiei electrice de ctre diferite institute de cercetare. Astfel, nu puteau fi
coroborate datele obinute n site-uri de msurare diferite, cu instrumente diferite.
Odat cu apariia standardelor n domeniu, lucrurile s-au schimbat, fiind
posibile comparaii ntre msurrile efectuate n locaii diferite i analiza coerent a
datelor, indiferent de instrumentele folosite pentru msurarea i nregistrarea
parametrilor energiei electrice.
n cadrul grupului de lucru IEEE pentru monitorizarea calitii energiei
electrice au fost analizate ateptrile consumatorilor privind livrarea energiei
electrice, limitele de susceptibilitate ale echipamentelor electrice i electronice
conectate la reeaua electric, ajungndu-se la elaborarea unor standarde n ceea ce
privete metodele de evaluare a calitii energiei electrice i a parametrilor ce
definesc aceast noiune. Au fost definite clasele de funcionare ale instrumentelor
de msurat i modul n care trebuiesc efectuate msurrile parametrilor care
definesc calitatea energiei electrice.
Noiunea de calitate a energiei electrice, destul de ambigu cu civa zeci de
ani n urm, a fost reanalizat i redefinit n concordan cu cerinele actuale ale
consumatorilor de energie electric. Standardele adoptate n domeniu definesc o
serie ntreag de perturbaii ce pot s apar n reelele electrice i conin
recomandri pentru evitarea apariiei acestora.

3. CIRCUITE DE CONDIIONARE A SEMNALELOR
3.1 Introducere
Schema tipic a unui sistem de monitorizare a parametrilor reelelor
electrice de joas tensiune este prezentat n figura 3.1. Tensiunea preluat din
reeaua electric este aplicat unui bloc de condiionare, este convertit n
eantioane cu ajutorul unui convertor analog-numeric i apoi procesat de ctre un
sistem cu microprocesor (calculator personal sau microcontroler).


Rolul circuitului de condiionare este acela de a adapta nivelurile de tensiune
de la intrarea circuitului, la cele acceptate de ctre circuitul de conversie analog
numeric (n general 10 V).
Dei tensiunea nominal a reelei de distribuie a energiei electrice de joas
tensiune este (n Europa) de 230V, pot aprea, sporadic, perturbaii cu amplitudini
de pn la 10 kV. Se pune problema prelurii acestor semnale (perturbate sau nu)
din reeaua electric i a procesrii acestora n bune condiii astfel nct s nu se
piard date pe parcursul acestui lan de procesare. Este nevoie de o achiziie a
semnalelor cu frecven ridicat i cu o dinamic foarte mare, lucru care necesit
convertoare analog-numerice cu un numr foarte mare de bii (minim 16 bii) i rate
de eantionare ridicate (pn la 1 10 Msps). Astfel de convertoare, pe lng faptul
c sunt foarte scumpe, nici nu au numrul efectiv de bii (ENOB) egal cu numrul de
bii declarat, lucru datorat n primul rnd faptului c la peste 20 - 24 de bii, cuanta
de tensiune se apropie de valori de ordinul 10 20 V, confundndu-se cu zgomotul
din sistem.
n marea majoritate a timpului, tensiunea din reea va avea o valoare
apropiat de 230 V, destul de des (1 2 ori pe zi), exist vrfuri de tensiune cu
amplitudini pn n 2 kV i sporadic (odat pe sptmn, de 2-3 ori pe lun), vor
exista vrfuri de tensiune cu amplitudini de peste 6 kV. Cele mai multe perturbaii
au amplitudini mici, n jurul valorii de 230 V, nedepind ns 500 V [60].
Se pune problema realizrii unei compresii a semnalului, compresie mai
mic pentru semnalele cu amplitudini n jurul tensiunii nominale a reelei, mai mare
pentru tensiuni cu amplitudini cuprinse ntre 500 V i 2 kV, i o compresie mai
puternic pentru tensiuni mai mari de 2 kV. Astfel, se pstreaz un numr de bii
suficient de mare pentru tensiuni cu amplitudini n jurul tensiunii nominale a reelei,
i se asigur totodat captarea vrfurilor de tensiune de valori foarte mari cu o
Convertor
analog-numeric
Sistem
de calcul
Circuit de
condiionare
Fig. 3.1. Schema bloc a unui sistem de monitorizare a perturbaiilor din reeaua
electric de joas tensiune
3.2 - Circuit de condiionare cu transformator funcional 31

acuratee satisfctoare. Este mai important detectarea i nregistrarea acestor
vrfuri de tensiune dect msurarea cu acuratee ridicat a amplitudinii acestora.
Dac nu s-ar folosi un circuit de compresie a semnalelor n partea de
condiionare a semnalelor i s-ar conecta la intrarea convertorului analog numeric
un divizor simplu de tensiune, atunci, pentru semnale de intrare cu amplitudini de
pn la 10 kV, n cazul unui convertor analog numeric pe 16 bii, cuanta de
tensiune ar fi de aproximativ 300 mV, ceea ce conduce la un numr de doar 1000
de valori discrete n intervalul 0 - 300 V, echivalent cu folosirea unui convertor pe
10 bii pentru acest interval de tensiuni de intrare.

3.2 Circuit de condiionare cu transformator funcional
3.2.1 Prezentarea circuitului
Cel mai vechi i mai simplu circuit electronic de compresie a semnalelor este
transformatorul funcional (figura 3.2) [61], [62]. Acesta utilizeaz un circuit
integrat analogic i cteva diode n circuitul de reacie negativ, diodele avnd rol de
comutatoare comandate de tensiunea de la intrare. Atunci cnd tensiunea de la
intrarea circuitului depete un anumit prag, se deschide dioda aferent pragului
respectiv i se modific amplificarea sistemului.




Fig. 3.2. Transformator funcional cu amplificator operaional
32 Circuite de condiionare a semnalelor - 3


3.2.2 Proiectarea circuitului de compresie cu transformator
funcional
Pentru proiectarea acestui circuit s-au parcurs mai multe etape [63]:
1) Se stabilete numrul de segmente cu care se va aproxima caracteristica
de transfer. Se alege un numr de segmente egal cu 3 i se consider c eroarea
relativ maxim este aproximativ aceeai pe toate segmentele (figura 3.3).

2) Se alege amplificatorul operaional astfel nct curentul de intrare s fie
ct mai mic i rezistena de intrare ct mai mare. S-a ales un amplificator
operaional AD8616, fabricat de firma Analog Devices care are un curent de intrare
de 0.2 pA i o rezisten de intrare de 100 M. Acest curent foarte mic de intrare al
amplificatorului operaional asigur o cdere de tensiune neglijabil pe rezistena de
intrare, cdere de tensiune care nu va influena valoarea tensiunii de ieire. Se
alege valoarea rezistenei de intrare astfel nct s satisfac relaia:

100
inAO
in
R
R => 1
in
R M (3.1)


Se alege o rezisten de intrare R
in
= 1 M 1%, valoare ce satisface
relaia (3.1).

3) Se determin pantele tuturor segmentelor caracteristicii de transfer cu relaia:



+
+

1
1
ek ek
k
ik ik
U U
a
U U
, k = 0,1,2
(3.2)

rezultnd

Fig. 3.3. Caracteristica de transfer a transformatorului funcional n cadranul I
3.2 - Circuit de condiionare cu transformator funcional 33

= =

0
5 0
0.01
500 0
V V
a
V V
(3.3)

= = =

1
8 5 3
0.002
2000 500 1500
V V
a
V V
(3.4)

= = =

2
10 8 2
0.00025
10000 2000 8000
V V
a
V V
(3.5)

4) Pentru tensiuni de intrare cuprinse n intervalul (-500V, +500V) diodele D
1
,
D
2
, D
3
i D
4
sunt blocate, iar circuitul este echivalent cu un divizor de tensiune format
din rezistoarele R
in
i R
0
. Rezistena R
0
se determin pe baza relaiilor de mai jos:

=
o
o i
in
R
U U
R

(3.6)
=
0
o
i
U
a
U

(3.7)

=
0 o in
R a R
(3.8)

rezultnd

= = 0.01 10
o in
R R k
(3.9)

5) Se adopt tensiunea de alimentare a transformatorului funcional ca fiind
cu cel puin 2-3V mai mare dect tensiunea maxim de la ieirea transformatorului
funcional (10V). Se alege o valoare de 15V.
6) Considerm funcionarea transformatorului funcional n cadranul I al
caracteristicii de transfer i tensiunea de la intrare cuprins n intervalul [+0.5 kV,
+2 kV). n acest caz dioda D
1
este n conducie, iar circuitul echivalent este format
din R
in
ca i rezisten de intrare i R
0
n paralel cu R
1
ca i rezisten de reacie a
amplificatorului operaional. Astfel avem:

=
1echiv
o i
in
R
U U
R


(3.10)

=
1
o
i
U
a
U


(3.11)

=
1 1 echiv in
R a R
(3.12)

n care

=
1 0 1
||
echiv
R R R
(3.13)

din relaiile (3.5) (3.13) se obine:
34 Circuite de condiionare a semnalelor - 3




+
= =
0 1
1 0 1
1
echiv
in in
R R
R R R
a
R R

(3.14)

=

0 1
1
0 1
in
a a
R R
a a

(3.15)

nlocuind valorile numerice obinem R
1
= 2.5 k.
Deoarece caracteristica de transfer a circuitului de compresie dinamic este
simetric n cadranul III fa de cadranul I, se procedeaz similar i pentru cazul n
care tensiunea de intrare este cuprins n intervalul [-0.5 kV, -2 kV). n acest caz
dioda D
3
este n conducie, obinndu-se R
3
= 2.5 k.
7) Considerm funcionarea transformatorului funcional n cadranul I pentru
valori ale tensiunii de intrare cuprinse n intervalul [2 kV, 10 kV). n acest caz
diodele D
1
i D
2
sunt ambele n conducie i rezistena din reacia amplificatorului
operaional are valoarea:

=
2 0 1 2
|| ||
echiv
R R R R
(3.16)

n acest caz, tensiunea de ieire urmrete panta a
2
a caracteristicii i
putem scrie:
=
2echiv
o i
in
R
U U
R

(3.17)

=
2
o
i
U
a
U

(3.18)

=
2 2 echiv in
R a R
(3.19)

nlocuind relaia (3.11) n relaia (3.19) rezult:

=

1 2
2
1 2
in
a a
R R
a a

(2.20)

Rezult R
2
= 222 . Se alege pentru R
2
o valoare standardizat : R
2
= 220 .
Se procedeaz identic pentru cadranul III, rezultnd R
4
= 220 .
8) Se calculeaz valorile rezistenelor care vor asigura punctele de
deschidere ale diodelor D
1
, D
2
, D
3
i D
4
. Pentru cazul n care dioda D
1
intr n
conducie vom folosi schema echivalent prezentat n figura 3.4.
3.2 - Circuit de condiionare cu transformator funcional 35



unde cu U
D01
s-a notat tensiunea de deschidere a diodei D
1
, iar cu U
o1
s-a notat
valoarea tensiunii de la ieirea circuitului n primul punct de frngere al
caracteristicii de transfer. Acest punct reprezint momentul intrrii n conducie al
diodei D
1
. Putem scrie:

=
+ +
'
1 1
01 1 ' '
1 1 1 1
D o
R R
U E U
R R R R

(3.21)

' 01
1 1
1 01
D
o D
E U
R R
U U

(3.22)

se obine R
1
= 8,8 k.
Procednd similar se poate deduce valoarea rezistorului R
2
:

' 02
2 2
2 02
D
o D
E U
R R
U U

(3.23)

se obine R
2
= 450 .
Pentru determinarea rezistenelor R
3
i R
4
se aplic aceeai metod de
calcul. Rezult R
1
= R
3
i R
2
= R
4
.
Rezistena R
5
se alege 0 din motive de zgomot minim la ieire.

3.2.3 Simularea funcionrii transformatorului funcional
Circuitul a fost simulat utiliznd aplicaia PSpice [64]. n figura 3.5 este
prezentat caracteristica de transfer a circuitului simulat n PSpice.

R
1

R

1

+E
U
D01

U
o1

Fig. 3.4. Circuitul echivalent pentru calculul valorii rezistenei R

1

36 Circuite de condiionare a semnalelor - 3



Este interesant de observat cum se comport circuitul n punctele de
frngere ale caracteristicii de transfer, puncte n care, din cauza rezistenei
dinamice, a capacitii parazite a diodei i a tensiunilor de comutare diferite ale
diodelor, comutarea nu se face brusc (figura 3.6). Acesta este un dezavantaj major
la acest tip de circuit.

Dup cum se poate observa i din figura 3.6, caracteristica ideal (trasat
cu linie ntrerupt) este cea proiectat, primul punct de frngere fiind la U
i
= 500 V
i U
o
= 5 V, aa cum a fost proiectat. Caracteristica real a circuitului (trasat cu
linie continu) prezint o rotunjire n jurul punctului de frngere, cauzat de
caracteristica real a diodei. Exist un interval de timp n care diodele D
1
i D
2
sunt
Fig. 3.6. Abaterea de la caracteristica real la 500 V
Fig. 3.5. Funcia de transfer a circuitului simulat n PSpice
3.2 - Circuit de condiionare cu transformator funcional 37

simultan n conducie, fapt ce produce abaterea caracteristicii reale de la cea ideal
cu aproximativ 1%.
n cazul celui de-al doilea punct de frngere (figura 3.7), se constat c
eroarea este sensibil mai mare dect n cazul primului punct de frngere, acest lucru
datorndu-se i propagrii erorii din primul punct. n plus, la calculul valorii
rezistorului R
1
s-a aproximat valoarea tensiunii de deschidere a diodei D
2
. Eroarea
maxim n acest caz este de aproximativ 1.5 %.



Cel de-al treilea punct important este punctul de 10 kV. Aici lucrurile stau
destul de bine, pentru o tensiune de intrare de 10 kV, amplificatorul d la ieire o
tensiune de 9.998V, eroarea fiind de doar 0.2 %. Aceast eroare este dat de
aproximarea rezistenei dinamice a diodei D
2
, a crei valoare este de acelai ordin
de mrime ca i valoarea rezistorului R
2
. Pentru a minimiza aceast eroare, este
necesar ca valoarea rezistorului R
2
s fie de cel puin 5-10 ori mai mare dect
rezistena dinamic a diodei D
2
. Din pcate, creterea valorii lui R
2
, conduce
automat la creterea valorii rezistorului R
in
(relaia 2.20), lucru care nu este de
dorit, deoarece devine comparabil ca valoare cu rezistena de intrare a
amplificatorului operaional, ceea ce va genera erori suplimentare datorate
divizorului de tensiune de la intrarea montajului format din R
in
i rezistena de
intrare a amplificatorului.
Un alt parametru care influeneaz funcionarea acestui amplificator este
temperatura. Influena temperaturii a fost studiat n intervalul 10 C 50 C cu
un pas de 10 C.
Temperatura influeneaz valorile rezistoarelor din reacia amplificatorului
operaional, rezistena dinamic i tensiunea de prag U
D0
a diodelor. Modificarea cu
temperatura a punctelor de frngere a caracteristicii de transfer a circuitului este
prezentat n figura 3.8. Se poate observa dependena puternic cu temperatura a
caracteristicii de transfer a circuitului, fapt ce impune termostatarea acestuia.
Fig. 3.7. Abaterea de la caracteristica real la 2 kV
38 Circuite de condiionare a semnalelor - 3





Pentru a studia comportamentul dinamic al circuitului, s-a aplicat la
intrarea acestuia un semnal de tip triunghi, acest tip de semnal fiind cel mai
potrivit pentru studierea caracteristicii de transfer a circuitului. Semnalul
triunghiular are o amplitudine de 10 kV i o frecven de 1 kHz, avnd aplicat un
offset de 5 kV. S-a studiat doar comportarea n cadranul I, comportarea circuitului
n cadranul III fiind similar.
Se observ din figura 3.9, c semnalul de ieire corespunde caracteristicii de
transfer a circuitului. Pentru a decomprima semnalul obinut cu un astfel de circuit,
se folosete un modul software ce aplic o funcie invers (funcie de decompresie)
celei aplicate de ctre circuitul de compresie.
Fig. 3.8. Influena temperaturii asupra punctelor de frngere ale caracteristicii circuitului
de compresie dinamic

a) la 500 V; b) la 2 kV; c) la 10 kV
a) b)
c)
3.2 - Circuit de condiionare cu transformator funcional 39



n figura 3.10 este prezentat semnalul de la intrarea circuitului de compresie
i semnalul de la ieirea circuitului de decompresie. Se observ diferenele dintre
cele dou semnale, diferene datorate erorilor care apar n punctele de frngere ale
caracteristicii circuitului de compresie. Datorit capacitii parazite a diodelor,
tensiunea de la ieirea circuitului nu poate crete brusc, capacitile parazite
formnd, mpreun cu celelalte rezistene din circuit, un filtru trece-jos.


Prin aplicarea unui semnal dreptunghiular la intrarea circuitului de compresie
i prin evaluarea semnalului de la ieirea blocului de decompresie se poate
Fig. 3.10. Semnalul de intrare triunghiular aplicat circuitului i semnalul reconstruit de
aplicaia software
Fig. 3.9. Semnalul de intrare triunghiular aplicat circuitului i semnalul de la ieirea
circuitului
V
intrare

V
ieire

t
40 Circuite de condiionare a semnalelor - 3


determina eroarea absolut a circuitului de compresie i se poate interveni n
algoritmul sistemului de decompresie pentru a elimina aceste erori.
Analiza spectral a semnalului de la ieirea circuitului de compresie prezint
diferene mari ntre spectrele semnalelor de intrare i de ieire (figura 3.11). Astfel,
se poate observa c n spectrul semnalului de ieire apar armonici de ordin impar.


Deoarece n practic nu se ntlnesc dect foarte rar semnale triunghiulare,
n continuare se va evalua funcionarea circuitului n cazul n care la intrarea sa se
aplic semnale de tip biexponenial (figura 3.12) i sinus amortizat, cele mai multe
perturbaii din reelele electrice avnd astfel de forme.


Fig. 3.12. Semnal biexponenial aplicat la intrare i semnalul de la ieirea circuitului de
compresie
t [ms]
Fig. 3.11. Spectrele semnalelor de intrare, respectiv de ieire ale circuitului de compresie
semnalul de intrare
semnalul de ieire
f [x10 Hz]
3.2 - Circuit de condiionare cu transformator funcional 41

Semnalele de tip biexponenial ntlnite ca perturbaii n reelele de
distribuie a energiei electrice au un timp de ridicare foarte scurt, de ordinul
microsecundelor. Astfel de perturbaii sunt adesea cauzate de trsnete sau de
cuplarea/decuplarea unor sarcini inductive mari.
Dup cum se poate observa din figura 3.13, eroarea este maxim n cel
de-al doilea punct de frngere al caracteristicii.


De asemenea, se observ o cretere a numrului armonicilor de ordin
superior n spectrul semnalului decomprimat (figura 3.14).

Fig. 3.14. Spectrul semnalului de intrare biexponenial i al semnalului de ieire dup
decompresie
Fig. 3.13. a) Semnal biexponenial aplicat la intrarea circuitului de compresie i
semnalul de la ieirea circuitului de decompresie
b) eroarea relativ a semnalului de la ieirea circuitului de decompresie fa de
semnalul aplicat la intrarea circuitului de compresie
a)
b)
42 Circuite de condiionare a semnalelor - 3


Aceste armonici sunt generate, n marea lor majoritate, de ctre circuitul de
compresie la trecerea semnalului prin punctul de frngere corespunztor unei
tensiuni de intrare de 2 kV, i datorit slew-rate-ului relativ mic (1000 V/s) al
amplificatorului operaional utilizat.
Un alt tip de perturbaii ntlnite n reelele de distribuie a energiei electrice
sunt perturbaiile de tip sinus amortizat. Pentru testarea comportamentului circuitului la
astfel de perturbaii, s-a aplicat la intrarea acestuia un semnal de tipul sinus amortizat
(uneori cderile de tensiune, dar i conectarea unor baterii de condensatoare, au forma
unui sinus amortizat) cu amplitudinea maxim de 10 kV (figura 3.15).


Perturbaia n sine const ntr-un semnal sinusoidal a crui amplitudine
scade dup o lege exponenial.
Semnalul de la ieirea circuitului de compresie dinamic este aplicat
circuitului de decompresie i se obine imaginea din figura 3.16.

Fig. 3.16. Semnal de intrare sinus amortizat i semnalul de la ieirea circuitului de
decompresie (linie punctat)
Fig. 3.15. Semnal de intrare sinus amortizat i semnalul de la ieirea circuitului de
compresie (linie punctat)
3.2 - Circuit de condiionare cu transformator funcional 43

n acest caz, erorile sunt mai mici dect n cazul semnalului biexponenial,
dar au totui valori ridicate. Eroarea maxim, la 2 kV este de 12 %. n figura 3.17
este prezentat eroarea relativ a semnalului decomprimat fa de semnalul aplicat
la intrare.

n jurul valorii de 10 kV, eroarea este negativ i egal cu 9 %, fiind minim
pentru tensiuni de intrare n jurul a 6 kV i crescnd apoi din nou pentru tensiuni de
intrare n jurul a 2 kV. Se observ c erorile pentru amplitudini pozitive ale
semnalului de la intrare sunt diferite de cele pentru amplitudinile negative, lucru
datorat dispersiei tehnologice a diodelor din circuit (n simularea PSpice s-a introdus
i dispersia parametrilor). Pentru a preveni acest lucru, diodele trebuie selectate cu
atenie, att n ceea ce privete tensiunea de deschidere U
D0
, ct i n ceea ce
privete curentul de saturaie I
D0
.
La fel ca i n cazul anterior, spectrul semnalului prezint armonici de ordin
superior suplimentare (figura 3.18).


Se impune de la sine aplicarea unui algoritm de reducere a acestor erori,
algoritm ce va fi prezentat n paragraful 3.2.4.

Fig. 3.18. Spectrul semnalului sinus amortizat de la intrare i dup decompresie
Fig. 3.17. Eroarea relativ a amplitudinii maxime a sinusului amortizat dup
decompresie
44 Circuite de condiionare a semnalelor - 3


3.2.4 Algoritm pentru reducerea erorilor circuitului de
precondiionare cu transformator funcional

Pentru a reduce erorile generate de divizorul de tensiune neliniar cu
transformator funcional, autorul propune introducerea n circuit a unui modul
suplimentar de calibrare (figura 3.19) [65]. Rolul acestui modul este de a aplica la
intrarea sistemului un impuls triunghiular (sau de alt form) cu parametri
cunoscui, de a msura rspunsul sistemului de compresie-decompresie la acest
semnal i de a genera o funcie de corecie, astfel nct eroarea relativ a
semnalului de la ieirea blocului de decompresie s fie minim.


Pentru testarea funcionalitii soluiei propuse s-a folosit o aplicaie
elaborat n Matlab 7, al crui cod surs este prezentat n Anexa 2. Prin
aplicarea unui semnal triunghiular la intrarea sistemului, s-a determinat pentru
fiecare eantion al semnalului de intrare valoarea abaterii semnalului de la
ieirea blocului de decompresie i eantioanele astfel obinute au fost memorate
ntr-un fiier. Aceste eantioane sunt folosite pentru a corecta caracteristica de
transfer a circuitului, astfel nct s fie minimizate erorile din punctele de
frngere ale acesteia.
Pentru testarea sistemului propus, la intrarea sistemului s-a aplicat un
semnal de tip biexponenial. S-a urmrit comportarea circuitului pentru diverse
tensiuni de intrare, dar n special pentru tensiuni de intrare n jurul punctelor de
frngere ale caracteristicii de transfer a divizorului de tensiune neliniar.
Pentru nceput se va analiza comportamentul circuitului pentru tensiuni de
intrare de 2 kV. n intervalul tensiunilor de intrare de la 0 la 500 V, eroarea se
menine la o valoare minim i circuitul de calibrare nu are efect, deoarece ntre
aceste limite, circuitul acioneaz ca un simplu divizor de tensiune (figura 3.20).
Pentru valori ale tensiunii de intrare mai mari de 500 V efectul circuitului de
calibrare devine vizibil, eroarea relativ a tensiunii de ieire fiind mai mic dect
eroarea relativ a tensiunii de ieire fr circuitul de calibrare.
Reea
electric
Detectare
perturbaii

Compensare
eroare
nregistrare
perturbaie
u(t) u
d
(t)
Plac
de achiziie
Decompresie
semnal
u(n)
u
r
(n)
u
p
(n) u
o
(n)
Generator
triunghi
Eantioane
calibrare
Calcul eroare
absolut
Fig. 3.19. Schema bloc a circuitului propus pentru minimizarea erorilor prin calibrare
Divizor neliniar
de tensiune
3.2 - Circuit de condiionare cu transformator funcional 45

0 0.5 1 1.5
0
500
1000
1500
Semnalul de intrare si semnalul decomprimat (punctat)
timp [ms]
a
m
p
l
i
t
u
d
i
n
e
a

[
V
]
0 0.5 1 1.5
0
500
1000
1500
Semnalul de intrare si semnalul de iesire (punctat)
timp [ms]
a
m
p
l
i
t
u
d
i
n
e
a

[
V
]
0 0.5 1 1.5
-4
-2
0
2
4
timp [ms]
e
r
o
a
r
e
a

r
e
l
a
t
i
v
a

(
%
)
0 0.5 1 1.5
-2
-1.5
-1
-0.5
0
0.5
timp [ms]
e
r
o
a
r
e
a

r
e
l
a
t
i
v
a

(
%
)


n continuare, se aplic la intrarea circuitului o tensiune de intrare de 3 kV
(figura 3.21).
0 0.5 1 1.5
0
1000
2000
3000
Semnalul de intrare si semnalul decomprimat (punctat)
timp [ms]
a
m
p
l
i
t
u
d
i
n
e
a

[
V
]
0 0.5 1 1.5
0
500
1000
1500
2000
2500
3000
Semnalul de intrare si semnalul de iesire (punctat)
timp [ms]
a
m
p
l
i
t
u
d
i
n
e
a

[
V
]
0 0.5 1 1.5
-5
0
5
10
15
20
timp [ms]
e
r
o
a
r
e
a

r
e
l
a
t
i
v
a

(
%
)
0 0.5 1 1.5
-2
-1
0
1
2
timp [ms]
e
r
o
a
r
e
a

r
e
l
a
t
i
v
a

(
%
)


Pentru semnale de intrare cu amplitudini peste 2 kV se observ o scdere a erorii
relative a tensiunii de ieire u
0
(n), n cazul folosirii circuitului de calibrare.
Fig. 3.21. Semnalul de intrare i semnalul decomprimat la 3 kV
a) fr corecie; b) cu corecie

a) b)
Fig. 3.20. Semnalul de intrare i semnalul decomprimat la 1.9 kV
a) fr corecie; b) cu corecie

a) b)
46 Circuite de condiionare a semnalelor - 3


n figura 3.22 se prezint semnalele de intrare, decomprimat i de ieire pentru
un semnal de intrare cu amplitudinea de 7 kV.
0 0.5 1 1.5
0
2000
4000
6000
Semnalul de intrare si semnalul decomprimat (punctat)
timp [ms]
a
m
p
l
i
t
u
d
i
n
e
a

[
V
]
0 0.5 1 1.5
0
2000
4000
6000
Semnalul de intrare si semnalul de iesire (punctat)
timp [ms]
a
m
p
l
i
t
u
d
i
n
e
a

[
V
]
0 0.5 1 1.5
-2
0
2
4
6
8
10
timp [ms]
e
r
o
a
r
e
a

r
e
l
a
t
i
v
a

(
%
)
0 0.5 1 1.5
-1
-0.5
0
0.5
1
timp [ms]
e
r
o
a
r
e
a

r
e
l
a
t
i
v
a

(
%
)


n figura 3.23 se prezint semnalele de intrare, decomprimat i de ieire pentru
un semnal de intrare cu amplitudinea de 10 kV.
0 0.5 1 1.5
0
2000
4000
6000
8000
10000
Semnalul de intrare si semnalul decomprimat (punctat)
timp [ms]
a
m
p
l
i
t
u
d
i
n
e
a

[
V
]
0 0.5 1 1.5
0
2000
4000
6000
8000
10000
Semnalul de intrare si semnalul de iesire (punctat)
timp [ms]
a
m
p
l
i
t
u
d
i
n
e
a

[
V
]
0 0.5 1 1.5
-2
0
2
4
6
8
timp [ms]
e
r
o
a
r
e
a

r
e
l
a
t
i
v
a

(
%
)
0 0.5 1 1.5
-0.5
0
0.5
1
timp [ms]
e
r
o
a
r
e
a

r
e
l
a
t
i
v
a

(
%
)


Fig. 3.23. Semnalul de intrare i semnalul decomprimat la 10 kV
a) fr corecie; b) cu corecie

a) b)
Fig. 3.22. Semnalul de intrare i semnalul decomprimat la 7 kV
a) fr corecie; b) cu corecie

a) b)
3.2 - Circuit de condiionare cu transformator funcional 47

n tabelul 3.1 sunt prezentate erorile relative ale semnalului comprimat i
decomprimat. Se poate observa c eroarea relativ a semnalului de la ieirea circuitului,
dup aplicarea coreciei (ca urmare a calibrrii circuitului), este mult diminuat fa de
eroarea relativ a semnalului decomprimat.


Tabelul 3.1 Erorile relative ale semnalului comprimat i decomprimat
Tensiunea
semnalului de
intrare u(t)
Eroarea relativ a
amplitudinii
semnalului
decomprimat (u
r
(n))
Eroarea relativ a
semnalului de ieire
(u
c
(n))
[V] [%] [%]
230 0.43 0.43
460 0.43 0.43
650 9 2.5
1900 3.24 1.6
3000 20 1.65
5000 12.50 1.05
7000 9.51 0.70
10000 6.82 0.95

n tabelul 3.2 sunt prezentate energiile semnalului de intrare a semnalului
comprimat i a celui decomprimat, precum i erorile relative ale acestor energii
raportate la energia semnalului de intrare. Se poate observa c energia semnalului
de ieire n cazul circuitului cu calibrare se apropie de energia semnalului de intrare.

Tabelul 3.2 Energiile semnalelor
Tensiunea
semnalului
de intrare
Energia
semnalului
de intrare
Energia
semnalului
decomprimat
Energia
semnalului
de ieire
Eroarea
relativ a
energiei
semnalului
decomprimat
Eroarea
relativ a
semnalului
de ieire
[V] [mW] [mW] [mW] [%] [%]
230 47.78 47.76 47.76 -0.03 -0.03
460 88.79 88.77 88.77 -0.02 -0.02
650 132 128 131 -3.22 -1.22
1900 416 422 412 1.33 -0.99
3000 655 722 652 10.19 -0.54
5000 1050 1172 1046 11.57 -0.45
7000 1540 1680 1535 9.10 -0.36
10000 2186 2310 2180 7.61 -0.28







48 Circuite de condiionare a semnalelor - 3


3.3 Circuit de compresie dinamic folosind trei canale ale
convertorului analognumeric (divizor secvenial de tensiune)

3.3.1 Prezentarea circuitului
Circuitele de compresie a semnalelor care utilizeaz dispozitive neliniare
(dispozitive semiconductoare: diode, tranzistoare) sunt predispuse la apariia de
distorsiuni, introduc erori la modificarea temperaturii i din aceste motive, autorul a
ncercat s gseasc o alt metod de realizare a acestui tip de circuit folosind doar
componente liniare (rezistoare).
Un astfel de circuit este cel prezentat n figura 3.24. Circuitul de compresie
este compus din trei divizoare rezistive de tensiune cu rapoarte de divizare diferite.

Semnalul preluat din reeaua electric este aplicat simultan la intrrile celor
trei divizoare rezistive, iar semnalele de la ieirile divizoarelor rezistive sunt aplicate
la intrrile a trei canale ale unei plci de achiziie [66].
Circuitul de limitare (realizat cu diode Zener) are rolul de a limita tensiunea
aplicat plcii de achiziie la 10 V. Dei placa de achiziie realizeaz o limitare
hardware a semnalelor de intrarea la 10 V, deoarece valorile tensiunilor de la
ieirea divizoarelor de tensiune, n cazul n care apar perturbaii cu amplitudini de
ordinul kV sunt mult mai mari dect tensiunea maxim acceptat de intrrile plcii
de achiziie (50 V). Spre exemplu, dac la intrarea divizorului de tensiune cu
raportul de divizare de 1/50, se aplic o tensiune de 10 kV, la ieirea divizorului
avem 200V, tensiune mult prea mare pentru a putea fi preluat de ctre circuitul de
intrare al plcii de achiziie.
Funcia de transfer a divizorului secvenial de tensiune propus este
prezentat n figura 3.25, unde a
1
, a
2
i a
3
sunt pantele caracteristicilor de transfer
ale fiecruia dintre cele trei divizoare de tensiune rezistive. Punctul A este
intersecia caracteristicii celui de-al doilea divizor rezistiv cu dreapta x = 500 V, iar
punctul B este intersecia caracteristicii celui de-al doilea divizor rezistiv cu dreapta
x = 2000 V.


Circuit de compresie dinamic
Reea
electric
Divizor de
tensiune 1/50
Divizor de
tensiune 1/200

Divizor de
tensiune 1/1000

CH2
CH3
CH1
Algoritm de
decompresie

Limitator

Limitator


Limitator

A
D
C
Fig. 3.24. Schema bloc a circuitului de compresie dinamic propus
3.3 Divizor secvenial de tensiune 49


Dac considerm punctul A din figura 3.25 ca fiind caracterizat de perechea
(x
1
, y
1
) i punctul B de perechea (x
2
, y
2
), putem translata cea de-a doua
caracteristic cu cantitatea
1 1
c = 10 V - y , iar cea de-a treia caracteristic cu
cantitatea
2 1 2
c = c + 10 V - y , rezultnd caracteristica din figura 3.26.


Utiliznd un algoritm software, cele trei semnale de la ieirile divizoarelor de
tensiune pot fi convertite ntr-un singur semnal, a crui funcie de transfer s fie cea
din figura 3.26. Algoritmul software calculeaz, la iniializare, constantele c
1
i c
2
,
U
out
U
in

500V 2000V 10000V
10 V
a
1

a
2

a
3

C
1

C
2
Fig. 3.26. Funcia de transfer a divizorului de tensiune secvenial
26 V
17.5 V
U
out
U
in

500V 2000V 10000V
10V
a
1
a
2

a
3

A B
Fig. 3.25. Funcia de transfer a celor trei divizoare de tensiune utilizate
50 Circuite de condiionare a semnalelor - 3


achiziioneaz cte un eantion de pe fiecare canal al plcii de achiziie i
proceseaz eantioanele conform algoritmului prezentat n figura 3.27.

Iniializare variabile:
a1 = 0.02
a2 = 0.005
a3 = 0.001
C = 10
y1 = C*(a2/a1)
y2 = C*(a3/a2)
C1 = C-y1 = 7.5
C2 = C1 + C-y2 = 15.5
Citire eantioane ADC
CH1 -> x1[n],
CH2 -> x2[n],
CH3 -> x3[n]
x2[n] > y1
x3[n] > y2
Rezultat =
x1[n]
Rezultat =
x2[n] + C1
Rezultat =
x3[n] + C2
Analiz semnal sau
decompresie
Fig. 3.27. Algoritmul software al divizorului de tensiune secvenial
nregistrare rezultat:
Res[i] =rezultat
3.3 Divizor secvenial de tensiune 51

Eantioanele semnalului preluat de pe primul canal sunt folosite doar pentru
poriuni ale valorii semnalului de intrare cuprinse ntre -500 V i 500 V, eantioanele
preluate de pe cel de-al doilea canal fiind folosite doar n intervalul de valori ale
semnalului de intrare cuprinse ntre 0.5 kV la 2 kV, respectiv -0.5 kV la -2 kV, iar
eantioanele preluate de pe cel de-al treilea canal vor fi folosite doar n intervalul
valorilor semnalului de intrare ce depesc 2 kV, lucru care aparent face s scad
performana sistemului.
Se poate observa c dinamica semnalului este diferit de cea a circuitului de
compresie cu transformator funcional, n acest caz semnalul de la ieirea circuitului
de compresie avnd valori ntre 26 V (c
1
+ c
2
+ 10V). Valorile tensiunii de la
intrarea convertorului analog numeric rmn ntre 10 V, valorile de la ieirea
circuitului modificndu-se doar dup aplicarea algoritmului software.
Semnalul de la ieirea divizorului secvenial poate fi folosit ca atare, sau
poate fi decomprimat, rezultnd un semnal direct proporional cu tensiunea aplicat
la intrarea divizorului neliniar de tensiune. Algoritmul de decompresie (figura 3.28),
poate fi realizat de ctre un bloc de procesare independent, sau, poate fi nglobat n
algoritmul de detecie a perturbaiilor.

Citete un element din
irul Res[]
y = Res[i]
y > C
y > C + y1
es
es
Rezultat =
y/a1
Rezultat =
(y-y1) /a2
Rezultat =
(y-y2) /a3
o
o
nregistrare
Rezultat
Fig. 3.28 Algoritmul de decompresie a semnalului
Iniializare variabile:
a1 = 0.02
a2 = 0.005
a3 = 0.001
C = 10
y1 = C*(a2/a1)
y2 = C*(a3/a2)

52 Circuite de condiionare a semnalelor - 3


Decompresia semnalului se realizeaz pe semnalul numeric i nu pe
semnalul analogic de la intrare, fapt care conduce la eliminarea circuitelor electrice
complexe de compresie-decompresie a semnalului.
3.3.2 Analiza funcionrii circuitului n Matlab
Funcionarea circuitului a fost analizat cu ajutorul aplicaiei Matlab 7.
Caracteristica de transfer ideal a divizorului secvenial de tensiune simulat n Matlab
este prezentat n figura 3.29a, iar caracteristica ideal a circuitului alctuit din divizorul
de tensiune secvenial i blocul de decompresie este prezentat n figura 3.29b.

Rezult c singurele erori care intervin n acest caz sunt erorile de conversie
datorate convertorului analog-numeric.
Pentru achiziia semnalelor s-a folosit o plac de achiziie National Instruments
NI PCI 6259 cu 32 de canale de intrare pe 16 bii, avnd o rat maxim de achiziie de
1,25 Msps. Deoarece se dorete nregistrarea ct mai fidel a formei perturbaiilor, n
special a celor tranzitorii cu amplitudini foarte mari, este necesar o rat de achiziie de
U
in
[V]
U
out
[V]
U
in
[V]
U
out
[V]
a)
Fig. 3.29. a) Funcia de transfer a divizorului de tensiune secvenial simulat n Matlab
b) Funcia de transfer a divizorului mpreun cu circuitul de decompresie
b)
3.3 Divizor secvenial de tensiune 53

1 Msps. Pentru a elimina perturbaiile suplimentare care pot s apar la conectarea
divizoarelor rezistive la placa de achiziie, este necesar folosirea modului de intrare
diferenial al plcii de achiziie. Caracteristicile semnalelor achiziionate pe cele trei
canale ale plcii de achiziie sunt prezentate n tabelul 3.3, comparativ cu numrul de
bii necesari dac s-ar utiliza cuanta de tensiune minim. Trebuie menionat c n
aceast situaie, caracteristica de transfer a convertorului analog numeric echivalent
devine neliniar, echivalent cu o cuantizare neuniform.

Tabelul 3.3. Valorile i numrul cuantelor de tensiune pentru diferite intervale de valori ale
semnalului de intrare
Intervalul de tensiune 0 0.5 kV 0 2 kV 0 10 kV
Cuanta de tensiune pentru
intervalul de tensiune dat
7.63 mV
(16 bii)
30.5 mV
(16 bii)
152.6 mV
(16 bii)
Niveluri de cuantizare pentru o
cuant de tensiune de 7.63 mV
65536
(16 bii)
262123
(18 bii)
1310616
(21 bii)

Numrul cuantelor de tensiune N
q
pentru fiecare interval al tensiunilor de la
intrarea divizorului secvenial, prezentate n tabelul 3.3 a fost calculat cu formula:

q
domeniul de tensiune
N =
cuant
(3.24)

unde cuanta este definit prin:

n
domeniul de tensiune
q =
2 - 1
(3.25)

n fiind numrul de bii ai convertorului analog numeric. Numrul de bii n
pentru un anumit numr de cuante N
q
este dat de formula:

2
n = int[log (Ql) +0.5]
(3.26)

Cea mai mic cuant de tensiune (7.36 mV) se obine pentru intervalul 0
0.5 kV, iar cuanta maxim (152.6 mV) se obine pentru intervalul 0 10 kV. Prin
folosirea unui singur divizor de tensiune cu domeniul de intrare cuprins ntre 0 i 10
kV, n cazul folosirii unui convertor analog numeric pe 16 bii semnalele de
intrarea cu amplitudinea sub 0.5 kV vor avea un numr de 3276 cuante, ceea ce
este echivalent cu folosirea unui convertor analog - numeric pe 12 bii.

q
0.5 kV
N = = 3276
152.6 mV

(3.27)
2
n = int[log (3276) +0.5] = 12
(3.28)

Pentru a avea aceeai rezoluie ca i n cazul unui divizor simplu de tensiune
avnd intervalul valorilor de intrare cuprinse ntre 0 i 0.5 kV, este nevoie (conform
formulelor de mai jos) de un convertor analog numeric pe 21 de bii.

q
10 kV
N = = 1310616
7.63 mV

(3.29)
54 Circuite de condiionare a semnalelor - 3


2
n = int[log (1310616) +0.5] = 21
(3.30)

n cazul divizorului secvenial de tensiune propus de autor, folosind doar o
parte din intervalul de tensiuni de la intrare pe canalele 2 i 3 (tabelul 3.4) numrul
efectiv de bii pentru cel de-al treilea i cel de-al patrulea interval scade cu doar un bit.

Tabelul 3.4 Numrul efectiv de bii utilizai n fiecare interval al tensiunilor de intrare
Intervalul de tensiuni de intrare 0 0.5 kV 0.5 2 kV 2 10 kV
Cuanta de tensiune 7.63 mV 30.5 mV 152.6 mV
Numrul cuantelor folosite n
domeniul de intrare dat
65536 49180 52428
Numrul efectiv a biilor utilizai 16 bii 15 bii 15 bii

Folosirea a trei convertoare analog numerice de 16 bii n locul unuia de
21 de bii este o soluie mult mai ieftin i din punct de vedere financiar.
3.3.3 Aplicaii ale divizorului secvenial de tensiune n
detectarea perturbaiilor tranzitorii cu amplitudini mari
Datorit particularitilor pe care le prezint divizorul secvenial de tensiune
(limitarea valorilor semnalelor de la intrarea convertorului analog numeric la
10 V), el poate fi utilizat n detectarea perturbaiilor tranzitorii de tensiune cu
valori peste limita superioar a tensiunii preluate de pe primul canal (cel cu
intervalul tensiunilor de intrare cel mai mic) [67].
Presupunem c la un moment dat, peste semnalul reelei electrice se
suprapune o perturbaie tranzitorie cu amplitudinea maxim de cteva ori mai mare
dect tensiunea nominal. n figura 3.30 sunt prezentate formele de und ale
semnalelor preluate pe cele trei canale ale plcii de achiziie, folosindu-se, pentru
exemplificare, o perturbaie cu amplitudinea de apte ori mai mare dect tensiunea
sinusoidal aplicat la intrare.


Semnalele de pe canalele 2 i 3 ale plcii de achiziie vor suferi o limitare la 10 V,
pe cnd semnalul preluat de cel de-al treilea canal va avea o valoare corect. Se poate
10v
10v
10v
t
t
t
U
CH3
U
CH2
U
CH1
Fig. 3.30. Perturbaie tranzitorie suprapus peste semnalul din reeaua electric
3.3 Divizor secvenial de tensiune 55

detecta astfel, pe baza unui simplu test asupra valorii eantioanelor semnalelor celor trei
canale, dac exist sau nu perturbaii cu amplitudini mai mari dect valoarea limit
acceptat la intrarea canalului cu cel mai mic raport de divizare.
Algoritmul de detecie al perturbaiilor este prezentat n figura 3.31. Semnalul de la
intrarea celor trei canale ale plcii de achiziie este preluat i nregistrat ntr-o memorie
temporar, apoi preluat eantion cu eantion i analizat. Se compar eantioanele de pe
cele trei canale cu valorile limit de 10 V i n cazul n care exist limitri ale semnalului pe
unul dintre canale, blocul de decizie citete din memorie un numr de eantioane egal cu 3
perioade ale semnalului i le nregistreaz pe disc pentru a fi prelucrate/analizate ulterior.



Testarea algoritmului a fost fcut cu ajutorul unei aplicaii scrise n
Microsoft Visual C++ 6, aplicaie care preia semnalele de la trei dintre canalele de
intrare ale plcii de achiziie NI PCI 6254M i aplic asupra semnalelor de la intrare
algoritmul prezentat mai sus.
n lipsa unui generator de semnal care s genereze perturbaii cu
amplitudini de 10 kV, s-a ales soluia simulrii funcionrii circuitului prin aplicarea
de semnale cu amplitudine sczut. S-a realizat practic un divizor secvenial de
tensiune cu rapoartele de divizare 1/1, 1/4 i 1/6. La intrarea montajului a fost
aplicat un semnal sinusoidal cu amplitudinea de 7 V, peste care s-a suprapus o
perturbaie tranzitorie cu amplitudinea de 50V.
Semnalele de la cele trei intrri ale plcii de achiziie sunt reprezentate
grafic n timp real n partea stng a ferestrei aplicaiei (figura 3.32). De asemenea,
Limitare
tenisune
canal 1?
Limitare
tensiune
canal 2?
Limitare
tensiune
canal 3?
Memorie
eantioane
Plac de
achiziie
Analiza unui
eantion de pe
fiecare canal

Reea
electric


Bloc de decizie

nregistrare
semnal
da
da
da
nu
nu
nu
3
3
Fig. 3.31. Algoritm pentru detecia perturbaiilor tranzitorii de amplitudine mare
56 Circuite de condiionare a semnalelor - 3


n momentul detectrii unei perturbaii, aplicaia afieaz pe ecran perioada
perturbat (graficul marcat cu P), afind totodat i evoluia n timp a indicelui de
regularitate calculat pe o perioad a semnalului (Reg. Index).


3.4 Concluzii
Circuitele de condiionare a semnalelor sunt indispensabile n realizarea unui
sistem de monitorizare a calitii energiei electrice, ele prelund tensiunea din
reeaua electric i aducnd-o la niveluri acceptate de ctre circuitele de intrare ale
convertoarelor analog numerice ale sistemelor de achiziie de date. De asemenea,
aceste circuite au rolul de a realiza o compresie a semnalelor, n vederea prelurii
semnalelor cu o dinamic ridicat aa cum sunt semnalele din reeaua electric, fr
a pierde detaliile fine (de exemplu variaiile de tensiune).
n acest capitol autorul prezint, pentru nceput, un circuit de condiionare a
semnalelor utiliznd un transformator funcional realizat cu circuite integrate,
punnd accentul pe problemele prezentate de acest circuit i oferind o soluie pentru
rezolvarea acestora. Soluia const n aplicarea unui semnal triunghiular la intrarea
circuitului, msurarea rspunsului circuitului i construirea unei funcii de corecie, bazat
pe rezultatul obinut. Astfel, prin calibrarea circuitului, se poate mbunti caracteristica
de transfer a acestuia, caracteristica corectat apropiindu-se de cea proiectat.
Fig. 3.32. Aplicaie Visual C++ pentru testarea funcionrii algoritmului de detecie a
perturbaiilor tranzitorii de mare amplitudine bazat pe divizorul secvenial de tensiune
3.4 - Concluzii 57

O alternativ la acest circuit o reprezint divizorul de tensiune secvenial
prezentat n paragraful 3.2, implementat cu ajutorul a trei divizoare de tensiune
rezistive cu rapoarte de divizare diferite, conectate la trei canale de intrare ale unei
plci de achiziie. Un astfel de sistem realizeaz o compresie a semnalului, avnd o
caracteristic de transfer asemntoare cu cea a transformatorului funcional.
Autorul, prin calculele efectuate, demonstreaz faptul c prin conectarea acestui
divizor neliniar de tensiune la trei dintre intrrile unei plci de achiziie pe 16 bii se
obine, n urma prelucrrilor software, un semnal avnd o rezoluie echivalent cu
aceea obinut n cazul utilizrii unui convertor analog numeric pe 21 de bii.
O aplicaie direct la detectarea perturbaiilor din reelele electrice o
constituie detectarea perturbaiilor cu amplitudini mai mari dect amplitudinea
maxim admis la intrarea primului canal al divizorului neliniar de tensiune. Dac
semnalul reelei prezint o perturbaie a crei valoare este mai mare dect valoarea
limit acceptat pe primul canal (500 V n cazul prezentat), va apare o limitare a
tensiunii la intrarea acestuia, care va fi sesizat prin analiza software a semnalelor
provenite de pe cele trei canale de intrare, punndu-se astfel n eviden prezena
perturbaiei.
n Anexa 1 este prezentat programul PSpice cu ajutorul cruia s-a simulat
caracteristica circuitului de compresie cu transformator funcional, n Anexa 2.1 este
prezentat programul MatLab elaborat pentru testarea algoritmului de calibrare a
transformatorului funcional, iar n Anexa 2.2 se prezint programul MatLab pentru
trasarea caracteristicii de transfer a divizorului secvenial de tensiune prezentat n
Figura 3.29.









4. SISTEME DE ACHIZIIE DE DATE
4.1 Introducere
Achiziia de date este un proces de preluare a informaiei n form
numeric, informaie care poate fi procesat de ctre calculatoarele personale sau
sistemele cu microcontroler. Elementul cheie al unui sistem de achiziie de date
este convertorul analog numeric care are rolul de a converti semnalele electrice n
semnale numerice.
Componentele unui sistem de achiziie de date sunt (figura 4.1):
senzorii care convertesc mrimea fizic n mrime electric;
circuitele de condiionare a semnalelor care realizeaz conversia
semnalelor provenite de la senzori n semnale ce pot fi aplicate
intrrilor convertorului analog numeric;
convertorul analog numeric care transform semnalele electrice n
semnale numerice.
Aplicaiile care necesit sisteme de achiziie de date sunt de cele mai multe
ori controlate de ctre sisteme software complexe elaborate n limbaje de
programare de nivel nalt (Visual C++, Visual Basic, MatLab) sau limbaje grafice
(LabView).

Frecvena de eantionare a convertorului analog numeric trebuie aleas de
aa natur nct s fie de cel puin 2 ori mai mare dect frecvena maxim din
spectrul semnalului aplicat la intrare (Teorema lui Shannon) [68] [69]. n practic
se alege frecvena de eantionare de 5-10 ori mai mare dect frecvena maxim a
semnalului de la intrare [70].
Principalii parametri ai unei plci de achiziie sunt:
numrul de canale;
Fig. 4.1. Componentele unui sistem de achiziie de date
4.2 - Placa de achiziie NI USB 6259 59

rezoluia: depinde de numrul de cuante ale convertorului analog numeric.
frecvena de eantionare;
domeniul tensiunilor aplicate la intrare;
4.2 Placa de achiziie NI USB 6259
Pentru realizarea acestui sistem de detectare i monitorizare a perturbaiilor
din reeaua electric s-a ales o plac de achiziie NI USB 6259 produs de Naional
Instruments (figura 4.2), cu principalii parametrii prezentai n tabelul 4.1 [71].


Fig. 4.2. Placa de achiziie NI USB 6259
60 Sisteme de achiziie de date - 4


Prezentarea succint a performanelor acestei plci de achiziie de date
(tabelul 4.1) este justificat pentru alegerea modului de lucru, astfel nct s
corespund ct mai performant cerinelor impuse de sistemul de monitorizare propus.

Tabelul 4.1 Principalii parametri ai plcii de achiziie NI USB 6259
Descriere Parametru
Intrri analogice 32 (16 difereniale)
Tensiunea de intrare - 10 + 10 V
cc

Tensiunea maxim de intrare 11 V
Amplificarea 1,2,4,8
Rezoluia convertorului analog
numeric
16 bii
Frecvena maxim de eantionare 1,25 Msps pe un singur canal
1 Msps pentru mai multe canale
Transferul datelor USB 2.0
CMRR (curent continuu 60 Hz) 100 dB
Impedana de intrare 10 G || 100 pF
Banda de frecvene (-3 dB) 1,7 MHz
Memorie FIFO 4095 eantioane

Placa de achiziie NI USB 6259 ofer utilizatorului mai multe modaliti de
conectare a surselor analogice de semnal:
Modul diferenial n acest mod de conectare nici unul dintre cele dou fire
de semnal nu este conectat la masa sistemului, ele fiind conectate direct la
intrrile neinversoare, respectiv inversoare ale amplificatorului instrumental
de la intrarea plcii de achiziie (figura 4.3). Acest mod de conectare a
intrrilor de semnal contribuie la minimizarea zgomotului din sistem, n
special a perturbaiilor de mod comun.

Fig. 4.3. Conectarea intrrilor n modul diferenial
4.3 - Biblioteca de funcii NI-DAQmx 61

Modul unipolar (cu sau fr referin la mas) este un mod de conectare a
sursei de semnal n care firul de mas al sursei de semnal este conectat la
masa sistemului de achiziie (figura 4.4).

Pentru a se putea conecta mai multe intrri de semnal la un singur
convertor analog-numeric se folosesc, n amonte, circuite de multiplexare a
semnalului analogic.
4.3 Biblioteca de funcii NI-DAQmx
Pentru controlul plcii de achiziie, National Instruments pune la dispoziia
utilizatorilor o serie ntreag de drivere i aplicaii grafice, pentru a uura munca de
programare a plcii de achiziie.
La realizarea aplicaiei software de monitorizare a calitii energiei electrice
s-a folosit biblioteca de funcii NI-DAQmx versiunea 8 i utilitarul de configurare al
plcii de achiziie National Instruments Measurement & Automation Explorer.
Cu ajutorul bibliotecii de funcii NI-DAQmx se pot elabora aplicaii complexe
n limbaje de nivel nalt, fr ca programatorul s mai fie nevoit s cunoasc n
profunzime structura i configuraia plcii de achiziie. Prin nlocuirea unei plci de
achiziie cu alta similar, de cele mai multe ori, graie bibliotecilor NI-DAQmx, nu
trebuie fcut nici o modificare n aplicaia software.
nc de la lansarea NI-DAQmx utilizatorii sistemelor de achiziie de date
produse de National Instruments au profitat pe deplin de caracteristicile sale,
concepute pentru a economisi timp de dezvoltare i de a mbunti performana
aplicaiilor de achiziie de date elaborate.
O caracteristic important a NI-DAQmx, care economisete o cantitate
considerabil de timp n dezvoltarea aplicaiilor, este NI-DAQmx Application
Programming Interface (API), care ofer acelai set de funcii, indiferent de
dispozitivul folosit sau de familia de plci de achiziie utilizate. Toate componentele
unui sistem de achiziie de date multifuncional sunt programate cu acelai set de
funcii (intrrile analogice, ieirile analogice, intrrile i ieirile digitale, i
numrtoarele). n plus, att o intrare/ieire digital ct i dispozitivele de intrare
Fig. 4.4. Conectarea intrrilor n modul unipolar
62 Sisteme de achiziie de date - 4


sau ieire analogic sunt programate folosind acelai set de funcii, lucru posibil
datorit polimorfismului. O funcie polimorf accept mai multe tipuri de date pentru
unul sau mai multe dispozitive de intrare/ieire. Biblioteca API NI-DAQmx poate fi
utilizat n orice limbaj de programare Windows.
Aplicaia DAQ Assistant (figura 4.5) este o unealt software pus la dispoziie
de NI-DAQmx, care mbuntete viteza de dezvoltare a aplicaiilor software.



Acest instrument ajut utilizatorii s creeze aplicaii fr a folosi limbaje de
programare, printr-o interfa grafic ce permite configurarea de sarcini de achiziie
de date simple sau complexe. DAQ Assistant este o interfa grafic pentru crearea,
editarea i rularea interactiv de canale NI-DAQmx i sarcini virtuale.
Biblioteca de funcii NI-DAQmx definete un set de noiuni de baz:
un canal virtual NI-DAQmx const dintr-un canal fizic asociat unui
dispozitiv DAQ i informaii de configurare pentru acest canal fizic,
cum ar fi: gama valorilor de intrare, ctigul, modul de preluare a
datelor (diferenial sau unipolar)). Canalele de intrare/ieire pot fi
specificate unul cte unul (Dev0/ai0, Dev0/ai1) sau n grup
(Dev0/ai0:4 sau Dev0/ai0:Dev0/ai4).
o sarcin (task) NI-DAQmx este o colecie de canale virtuale
mpreun cu informaiile de temporizare i declanare a achiziiei,
precum i alte proprieti privind achiziia sau generarea semnalelor.
Aplicaiile de achiziie a datelor construite folosind NI-DAQmx beneficiaz de
o arhitectur conceput pentru a maximiza performana. Aceasta se bazeaz pe un
model eficient care elimin reconfigurrile inutile, fapt care ducea n trecut la
ncrcri inutile ale procesorului. Cu aceste reconfigurri eliminate, att configurarea
ct i achiziia sunt optimizate, nivelul de performan atins fiind posibil datorit
Fig. 4.5. Aplicaia DAQ assistant
4.3 - Biblioteca de funcii NI-DAQmx 63

utilizrii registrelor de memorie mapate. Utiliznd librriile de funcii NI-DAQmx, s-a
obinut o cretere a ratei de eantionare a aplicaiei de monitorizare a calitii
energiei electrice elaborate de autor.
O alt caracteristic important a bibliotecii DAQmx este arhitectura sa
multifilar. Deoarece NI-DAQmx este conceput ca un sistem multifilar, mai multe
operaiuni de achiziie de date se pot desfura simultan, mbuntind semnificativ
performana aplicaiilor care realizeaz simultan mai multe operaii i simplificnd
foarte mult programarea unor astfel de aplicaii.
Pentru achiziia de semnale trebuie urmai urmtorii pai:
1. Se creeaz un canal de intrare virtual cu ajutorul funciei
DAQmxCreateAIVoltageChan(), canal virtual cruia i este asociat o sarcin (task)
creat cu funcia DAQmxCreateTask().
Funcia DAQmxCreateAIVoltageChan() poate fi utilizat pentru crearea mai
multor canale de intrare virtuale, toate aceste canale putnd fi asociate aceleiai
sarcini. Parametrii funciei DAQmxCreateAIVoltageChan() sunt:
identificatorul activitii curente;
canalul (canalele) de intrare de pe care se face achiziia (de
exemplu: dev1/ai0);
un nume asociat de programator canalului virtual de intrare;
configuraia de intrare a canalului respectiv (unipolar sau
diferenial);
valoarea minim de intrare;
valoarea maxim de intrare;
tipul semnalului aplicat la intrare (tensiune, curent).
Mai jos este prezentat un fragment de cod care ilustreaz modul n care sunt
folosite cele dou funcii:

TaskHandle taskHandle = 0;
chan char [256] = "Dev1/ai0";
float64 min = -10, max = 10;

DAQmxCreateTask ("",& taskHandle);
DAQmxCreateAIVoltageChan( taskHandle,
Chan,
"",
DAQmx_Val_Cfg_Default,
min,
max,
DAQmx_Val_Volts,
NULL);

2. Se specific parametrii ce controleaz ceasul intern al sistemului de
achiziie prin intermediul funciei DAQmxCfgSampClkTiming() care are ca i
parametri de intrare:
identificatorul sarcinii curente;
tipul ceasului folosit la achiziie (intern sau extern);
rata de eantionare (n eantioane pe secund);
frontul pe care se face sincronizarea cu semnalul de ceas (cresctor
sau descresctor);
modul de achiziie (continuu, un numr finit de eantioane sau o
singur valoare);
numrul de eantioane coninute n memoria tampon.
64 Sisteme de achiziie de date - 4


n exemplul de mai jos ceasul de achiziie a fost configurat pentru o achiziie
continu de eantioane cu rata de eantionare de 10000 eantioane pe secund.

clockSource char [256] = "";
float64 rate = 10000;

DAQmxCfgSampClkTiming( taskHandle,
clockSource,rate,
DAQmx_Val_Rising,
DAQmx_Val_ContSamps,
1000);

3. Se pune n execuie sarcina astfel creat prin apelarea funciei
DAQmxStartTask(), al crei unic parametru l reprezint sarcina pe care vrem s o
lansm n execuie. n acest moment placa de achiziie este configurat i procesul
de achiziie se desfoar aa cum a fost programat.
4. Preluarea eantioanelor achiziionate din bufferul plcii de achiziie se
face cu funcia DAQmxReadAnalogF64(). Parametrii acestei funcii sunt:
identificatorul sarcinii curente;
numrul de eantioane ale unui canal;
timpul de ateptare pentru terminarea achiziiei numrului
prestabilit de eantioane;
modul n care sunt returnate eantioanele: eantioanele fiecrui
canal putnd fi returnate separat sau intercalat;
zona de memorie n care vor fi nscrise eantioanele achiziionate i
dimensiunea ei.
Preluarea eantioanelor achiziionate nu se face automat, ea cznd n
sarcina programatorului. O secven tipic de citire a eantioanelor din bufferul
plcii de achiziie este urmtoarea:

TaskHandle taskHandle=0;
int32 read;
float64 data[1000];

DAQmxErrChk (DAQmxCreateTask("",&taskHandle));

DAQmxReadAnalogF64( taskHandle,
1000,
10.0,
DAQmx_Val_GroupByChannel,
data,
1000, &read,
NULL);

prin care sunt citite cte 1000 de eantioane, ntr-un interval maxim de ateptare
de 10 secunde, eantioanele fiind grupate dup canalul de pe care provin.
Pentru a putea diagnostica i depana problemele ce pot s apar pe
parcursul execuiei programului, NI-DAQmx pune la dispoziia programatorilor un
set de funcii cu ajutorul crora se faciliteaz detectarea apariiei unei erori i
interpretarea corect a acesteia. Fiecare funcie din biblioteca Ni-DAQmx
returneaz, n urma execuiei sale, un cod de eroare. Pentru o execuie fr erori,
codul returnat este zero. Pentru a putea cunoate semnificaia codului de eroare
4.4 - Concluzii 65

returnat este apelat funcia DAQmxGetErrorString() care returneaz un ir de
caractere coninnd o explicaie succint a codului de eroare respectiv. Pentru a afla
mai multe informaii despre respectiva eroare i pentru a obine sugestii de
depanare a problemei se poate apela funcia DAQmxGetExtendedErrorInfo().
Deoarece, unele tipuri de perturbaii (impulsurile tranzitorii, armonicile) pot
avea componente spectrale cu frecvene de sute de kHz, este necesar utilizarea
unei rate de achiziie ridicate, de preferat peste 1 Msps.
4.4 Concluzii
nc de la apariia primelor echipamente electronice, s-a pus problema
vizualizrii i nregistrrii formelor de und ale diferitelor semnale. Primele sisteme
de monitorizare a energiei electrice foloseau ca dispozitive de afiare a perturbaiilor
osciloscoape cu remanen [72], sau nregistratoare cu hrtie. De atunci, tehnica a
evoluat foarte mult, ajungndu-se astzi la utilizarea de sisteme de achiziie de date
rapide i performante.
n zilele noastre, sistemele de achiziie de date reprezint o component
esenial n construcia unui sistem de monitorizare a calitii energiei electrice. Fr ele
nu am putea prelua i stoca informaiile sub form numeric. De parametrii sistemului
de achiziie de date depind, n bun msur, parametrii de funcionare i de
performan ai sistemului de monitorizare i detectare a perturbaiilor.
De-a lungul timpului s-au fcut progrese semnificative n ceea ce privete
performanele convertoarelor analog-numerice, crescndu-se numrul de bii i rata
de eantionare. Producerea pe scar larg a sistemelor de achiziie de date care s
integreze convertoare analog-numerice pe 16 i chiar 24 de bii, cu o rat de
eantionare de peste 1 Msps, nu mai reprezint o problem.
Pentru a uura munca utilizatorilor care doresc sa integreze sistemele de
achiziie de date n echipamentele lor, productorii de sisteme de achiziie de date
pun la dispoziia acestora medii de dezvoltare software pentru programarea i
utilizarea sistemelor de achiziie de date n parametri optimi, permind obinerea
maximului de performan. Utiliznd biblioteci de funcii specializate, programatorii
pot realiza aplicaii de achiziie de date ntr-un timp foarte scurt sau pot modifica
aplicaiile existente, nemaifiind necesar cunoaterea arhitecturii interne a plcii de
achiziie folosite. De asemenea, datorit driverelor puse la dispoziie de productori,
aplicaiile pot rula fr probleme chiar i n cazul nlocuirii unei plci de achiziie cu
un model diferit, dar cu parametri asemntori.



5. ALGORITMI SOFTWARE PENTRU DETECTAREA
PERTURBAIILOR DIN REELELE ELECTRICE DE
JOAS TENSIUNE


5.1 Introducere
n proiectarea echipamentelor pentru monitorizarea calitii sistemelor
electrice de putere se folosesc diveri algoritmi pentru detectarea i caracterizarea
perturbaiilor. Muli algoritmi folosesc transformatele Fourier sau Wavelet pentru
detecia i caracterizarea perturbaiilor, lucru care necesit foarte multe resurse din
partea sistemului de calcul utilizat. Exist la ora actual diverse sisteme de detecie
i monitorizare a perturbaiilor, unele dintre ele folosesc calculatoare personale,
altele utilizeaz sisteme embedded [73], sau procesoare digitale de semnal (DSP)
[74], [75], [76], [77], [78], [79].
Metodele cele mai uzuale citate n literatur se bazeaz pe transformarea
Fourier [80], Wavelet [81], [82] sau pe utilizarea reelelor neuronale [83].
Alte metode ncearc s detecteze apariia unor perturbaii n domeniul timp
[84], cele mai multe dintre ele bazndu-se pe faptul c semnalul sinusoidal este un
semnal a crui medie pe o perioad este zero. Astfel, dac se adun eantioanele
corespunztoare unei perioade a semnalului, rezultatul va fi zero sau o valoare
foarte apropiat de zero. n cazul n care apare o perturbaie tranzitorie, suma
eantioanelor corespunztoare unei perioade va conduce la o valoare diferit de
zero. n literatura de specialitate se indic o astfel de metod [85] n care se
presupune frecvena reelei ca fiind egal cu frecvena nominal, de aici rezultnd
un inconvenient al metodei i anume c la modificarea frecvenei reelei electrice
suma eantioanelor care se realizeaz pe o perioad egal cu 20 ms variaz n
funcie de frecvena reelei.
Alturi de alte ri, Romnia a nceput s acorde o atenie din ce n ce mai
mare asigurrii calitii energiei electrice, specialiti din mai multe domenii
ocupndu-se de monitorizarea calitii energiei electrice.
5.2 Determinarea apariiei perturbaiilor tranzitorii
n continuare se prezint o metod pentru detecia perturbaiilor tranzitorii
prezentat n literatur [85], metod care va permite o comparaie cu metoda
propus de autor.
Blocul de detectare a evenimentelor alarmeaz subsistemul dedicat
caracterizrii perturbaiei la apariia unei perturbaii tranzitorii (figura 5.1).

5.2 - Determinarea apariiei perturbaiilor tranzitorii 67



n continuare vom nota cu u(t) tensiunea liniei electrice a crei calitate
dorim s o monitorizm. Dup cum se poate observa i din figura 5.1, tensiunea
u(t), dup ce este atenuat de blocul de precondiionare a semnalului, este apoi
aplicat simultan blocului de detectare n timp real a perturbaiilor i blocului de
achiziie i prelucrare. Blocul de detectare a perturbaiilor genereaz la ieire un
semnal dreptunghiular b care ne informeaz dac semnalul u(t) este afectat sau
nu de perturbaii. n cazul apariiei unui eveniment, ieirea detectorului este
activat i semnalul b va comanda achiziia semnalului de ctre blocul de achiziie
(care funcioneaz continuu, dar salveaz datele achiziionate doar pe durata ct
semnalul de la ieirea blocului de detecie este activ pentru a economisi spaiul de
stocare). Astfel soluia propus necesit foarte puin memorie pentru stocarea
datelor i un volum foarte mic de calcul.
Algoritmul const n folosirea unui indice de regularitate r definit n
domeniul timp discret astfel:

=
=

1
[ ]
N
n
r u n
(5.1)

unde cu n s-a notat indicele eantionului curent, N reprezint lungimea secvenei
u[n], iar u[n] reprezint semnalul de intrare u(t) eantionat pe un interval de
observare egal cu perioada semnalului T sau multiplu de T.
Indicele r poate fi utilizat pentru detectarea perturbaiilor tranzitorii,
deoarece pentru un semnal u(t) n condiii stabile, el este constant, pe cnd
atunci cnd apare o perturbaie el variaz.
Algoritmul se bazeaz pe un principiu simplu i anume acela de a mpri
semnalul n mai multe segmente al cror numr l vom nota cu i verificarea
indicelui de regularitate pe fiecare segment n parte. ntotdeauna, fiecare din
cele segmente are acelai numr N
t
de eantioane, N
t
= N/.
n figura 5.2 este reprezentat procesul n timp real utilizat pentru
construcia segmentelor prin gruparea elementelor din secvena de intrare u[n].
Se observ c aceast tehnic este similar decimrii n timp a lui u[n] n timpul
acestui proces. n exemplul din figura 5.2, N = 16, = 4.
Bloc de
precondiionare a
semnalului
Bloc pentru
detectarea n
timp real a
perturbaiilor
tranzitorii
Bloc pentru
achiziia i
prelucrarea
datelor
u b
Fig. 5.1. Schema bloc a sistemului pentru detectarea perturbaiilor tranzitorii
68 Algoritmi software pentru detectarea perturbaiilor - 5



Vom presupune, pentru simplificare, (dar fr a pierde din generalitate), c
u(t) este un semnal alternativ sinusoidal i este caracterizat de indicele de
regularitate r
s
evaluat pentru cel de-al s-lea segment. Pentru fiecare indice de
regularitate r
s
se va verifica dac r
s
=0, atunci nu exist evenimente, iar dac r
s
0
atunci avem de-a face cu un eveniment tranzitoriu. Rezultatele astfel obinute
pentru indicele de regularitate r
s
sunt analizate i se determin dac semnalul este
sau nu perturbat.
Este evident c observnd i analiznd indicele de regularitate pe segmente
i nu pe ntregul semnal u[n], probabilitatea de a obine o informaie corect despre
producerea perturbaiei tranzitorii crete. Aceast probabilitate crete cu numrul de
segmente utilizate.
Algoritmul trebuie s ndeplineasc urmtoarele cerine:
Semnalul care este supus testrii, exceptnd perturbaia, trebuie s
fie periodic, nefiind necesar nici o alt informaie asupra formei
sale de und;
Algoritmul poate fi folosit i n cazul n care frecvena semnalului
difer uor fa de frecvena nominal;
n cazul n care durata perturbaiei tranzitorii este mai mare dect
intervalul de studiu, la ieirea blocului de detecie va rezulta un
singur semnal de comand pentru blocul de achiziie, semnal care
va avea durata cel puin egal cu durata perturbaiei;
Algoritmul de detecie are mari anse de reuit chiar i n cazurile
n care perturbaia are valoare medie nul, deoarece este puin
probabil ca n toate cele segmente ea s aib valoarea medie nul.
Dac se mrete numrul de eantioane, scade probabilitatea ca un
asemenea tip de eveniment s nu poat fi detectat. Numrul maxim
de segmente este din pcate limitat de necesitatea evitrii apariiei
fenomenului de aliere la calculul lui r
s
(cu ct crete numrul de
segmente cu att scade frecvena de eantionare a semnalului
u
1
u
2


u
M
u
M+1 u
M+2


u
2M

u
kM+
u
kM+

u
kM+


u[n]

Segmentul 1

Segmentul 2

...

Segmentul M

u
1
u
2


u
M
u
M+1
u
M+2


u
2M


u
kM+
u
kM+


u
kM+
Fig. 5.2. Tehnica segmentrii
5.2 - Determinarea apariiei perturbaiilor tranzitorii 69

corespunztor unui segment existnd pericolul scderii acesteia sub
frecvena Nyquist).
Algoritmul ar trebui s poat s detecteze apariia a dou sau mai
multe perturbaii tranzitorii care nu modific indicele de regularitate
al semnalului original.
Algoritmul propus n [85] este ilustrat prin ordinograma din figura 5.3.
Coninutul variabilelor este actualizat la fiecare msurare i eantionul curent este
imediat adugat variabilei corespunztoare segmentului respectiv pentru a actualiza
valoarea indicelui r
s
. Deoarece algoritmul nu necesit memorarea nici unuia din
eantioanele semnalului u(t), el memornd doar valorile curente ale indicilor r
s

(vectori de lungime prestabilit), rezult c el nu este consumator de memorie i nici
de putere de calcul, calculele pe care trebuie s le efectueze procesorul fiind simple.

Arbitrajul se face la sfritul fiecrui interval de observare care este egal cu
perioada semnalului T (n cazul nostru 20 ms), pentru a decide dac s-a produs ntr-
adevr un eveniment sau nu. Semnalul logic b de la ieirea blocului de detectare a
perturbaiilor este activat dac n timpul ultimei perioade de observaie a avut loc un
eveniment. Trebuie amintit aici c surprinderea nceputului evenimentului (care este
semnalizat cu ntrziere de o perioad de observaie), este sarcina blocului de
achiziie i nu a blocului de decizie. Prin memorarea eantioanelor corespunztoare
Iniializarea
algoritmului
Configurare CAN Bucl conversie
A/D
u(t)
Arbitraj?
Actualizare
valori
Scalare
eantioane
Lips perturbaii
Prezen
perturbaii
Mecanism
decizie
Reactualizare
afiaj
tergere variabile
b
>
s
r s /
Fig. 5.3 Ordinograma algoritmului
70 Algoritmi software pentru detectarea perturbaiilor - 5


ultimei perioade de observaie de ctre blocul de achiziie se poate remedia i
aceast problem.
Privind strict din punctul de vedere al algoritmului, nu exist diferene ntre
a considera semnalul u(t) alternativ sau nu. Din punct de vedere practic ns, lucrul
cu semnale alternative este mult mai simplu. De altfel, dac semnalul nu este
alternativ, se va modifica i condiia de detectare a perturbaiei, astfel c indicele de
regularitate r
s
nu mai poate fi comparat cu 0, ci cu o cantitate care va depinde de
natura semnalului, precum i de caracteristicile etajului de intrare al plcii de
achiziie folosite. Astfel, blocul va sesiza un eveniment dac r
s
> . Semnalul logic b
de la ieirea detectorului este activat dac mcar unul dintre segmente are indicele
de regularitate mai mare dect . Pentru a maximiza eficiena acestui algoritm el
trebuie implementat ntr-un limbaj de nivel nalt care s permit optimizri de vitez
ale codului executabil.
Din cauza efectului diverilor factori (cum ar fi zgomotul, tensiunea de offset
a etajelor de intrare), semnalul digital u[n] poate s nu fie 100 % alternativ, spre
deosebire de semnalul u(t), ceea ce conduce la rezultate eronate n detectarea
perturbaiei tranzitorii. De aceea este necesar ca indicii de regularitate s nu fie
comparai cu 0, ci cu .
Numrul segmentelor nu este arbitrar, el fiind dictat de o serie de factori:
Un numr mic de segmente conduce la scderea capacitii de
memorie necesar i la scderea frecvenei de eantionare, dar n
acelai timp trebuie avut n vedere c sub o anumit valoare pot s
apar depiri de domeniu n calculele efectuate;
Cu ct este mai mare numrul de segmente, cu att este mai mare
probabilitatea de a detecta perturbaiile tranzitorii care nu afecteaz
indicele de regularitate al semnalului. Trebuie stabilit o limit superioar
pentru pentru a minimiza numrul de alarme false care crete cu
creterea lui . n urma analizelor efectuate, a rezultat = 10.
n figura 5.4 este prezentat fereastra principal a aplicaiei Visual C++
elaborat pentru testarea algoritmului propus. Este prezentat semnalul de intrare i
semnalele corespunztoare a 2 segmente alese de ctre utilizator. n partea dreapt
a ecranului sunt prezentai indicii de regularitate ai fiecrui segment.

Fig. 5.4 Aplicaie software pentru mprirea pe segmente i calculul indicilor de
regularitate pe fiecare segment
5.3 - mbuntirea metodei de detectare a perturbaiilor tranzitorii 71

5.3 mbuntirea metodei de detectare a perturbaiilor
tranzitorii
Metoda expus n paragraful 5.2 nu ne poate furniza informaii precise
asupra prezenei sau absenei perturbaiilor n condiiile n care frecvena reelei de
alimentare se modific fa de frecvena nominal.
n cele ce urmeaz se va prezenta o metod nou, original [86], care
const n introducerea unui bloc de detectare a nceputului, respectiv a sfritului de
perioad i calculul indicilor de regularitate pe o perioad ntreag a semnalului.
Aceast abordare a problemei asigur un indice de regularitate minim, indiferent de
frecvena semnalului aplicat la intrare. n cadrul metodei prezentate anterior sunt
folosite dou canale de achiziie: unul folosit de blocul de detectare a perturbaiilor
tranzitorii i cellalt fiind folosit de blocul de achiziie a semnalelor.
n figura 5.5, blocul de condiionare al semnalului din figura 5.1 a fost nlocuit
aici de un bloc de compresie a semnalului, bloc care realizeaz o compresie neliniar a
semnalului aplicat la intrarea sa, cu scopul de a aduce perturbaiile de nivel ridicat (10
kV) la o valoare care s poat fi aplicat plcii de achiziie fr ns a atenua n
aceeai msur semnalele cu amplitudine mic (zeci de voli, sute de voli).

O contribuie original const n folosirea unui singur canal de achiziie i
folosirea acelorai eantioane att pentru detectarea perturbaiilor tranzitorii ct i
pentru prelucrrile ulterioare [87]. Prin folosirea unui singur canal se reduce mult
volumul de calcul i gradul de ocupare al procesorului [88].
Decompresia semnalului se va face ulterior n cadrul blocului de
prelucrare a datelor. Semnalul obinut n urma compresiei este eantionat,
cuantizat i apoi stocat ntr-o memorie circular care are capacitatea de a stoca
cteva perioade ale semnalului.
Memoria circular este o zon de memorie al crui pointer de sfrit coincide
cu pointerul de nceput al zonei de memorie. Avantajul utilizrii memoriei circulare
este acela c n ea se poate scrie i citi: n i din zone diferite, putnd fi utilizat
asemenea unui circuit de ntrziere controlabil.
Programul realizat n Visual C++ pentru implementarea funciei de bloc
de detectare a perturbaiilor conine dou fire de execuie care lucreaz n
paralel: unul se ocup de achiziia semnalului citind ntr-o bucl un numr
determinat de eantioane i nscriindu-le n memoria circular, iar cellalt fir de
execuie se ocup cu preluarea unui numr de eantioane egal cu o perioad a
semnalului i calculul indecilor de regularitate pentru fiecare segment n parte,
proces urmat apoi de luarea unei decizii n ceea ce privete existena sau nu a
unei perturbaii. Deoarece eantioanele corespunztoare perioadei(lor)
semnalului afectate de perturbaii exist deja n memoria circular, nu mai este
necesar un proces separat pentru achiziia acestora aa cum era nevoie n cazul
metodei iniiale. Eantioanele respective sunt preluate direct din memoria
circular mpreun cu alte dou perioade precedente. Acest lucru este necesar

Bloc de
comprimare a
semnalului
Bloc pentru
achiziia datelor i
detectarea n timp
real a
perturbaiilor

Bloc pentru
prelucrarea
datelor
u(t) y[n]
Fig. 5.5 Schema bloc a sistemului pentru detectarea perturbaiilor tranzitorii modificat
72 Algoritmi software pentru detectarea perturbaiilor - 5


datorit faptului c indicii de regularitate sunt calculai abia pe durata celei de-a
doua perioade a semnalului perturbat.
Cantitatea cu care sunt comparai indicii r
s
se determin pentru un semnal
neperturbat, ea putnd fi influenat de natura semnalului aplicat la intrare, de
offsetul etajelor de intrare i de distorsiunile armonice introduse de acestea.
n figura 5.7 este prezentat diagrama algoritmului modificat de autor
pentru detectarea perturbaiilor.


n continuare se studiaz modul n care variaz indicii de regularitate cu
frecvena pentru metoda prezentat n paragraful 5.2 i pentru metoda propus de
autor. Deoarece n cadrul metodei iniiale calculul indicilor de regularitate nu se face
ntotdeauna pe o perioad ntreag a semnalului, rezult c semnalul asupra cruia
se efectueaz calculul indicilor de regularitate nu este un semnal cu medie nul. n
acest caz, indicii de regularitate pot lua diverse valori, n funcie de frecvena
semnalului aplicat la intrare. Dup cum se poate vedea i din figura 5.7 indicele de
regularitate are valori apropiate de zero doar pentru valori ale frecvenei semnalului
egale cu frecvena nominal a reelei electrice sau pentru multipli ai acesteia.
Bucl conversie
A/D
u(t)
Perioad
ntreag ?
Detecie sfrit
de perioad
Memorie
circular

Lips perturbaii
Prezen
perturbaii

Calculul indicilor de
regularitate r
s

pe o perioad
Decompresie
semnal
tergere
variabile
y[n]
? >
s
r
Fig. 5.6 Ordinograma algoritmului modificat
nu
da
Mecanism
detectare
perturbaie
da
nu
Condiionare
semnal
u
c
(t)
u[n]
5.3 - mbuntirea metodei de detectare a perturbaiilor tranzitorii 73

0,000
0,020
0,040
0,060
0,080
0,100
0,120
0,140
0,160
0,180
0,200
4
8
4
8
,
2
4
8
,
4
4
8
,
6
4
8
,
8
4
9
4
9
,
2
4
9
,
4
4
9
,
6
4
9
,
8
5
0
5
0
,
2
5
0
,
4
5
0
,
6
5
0
,
8
5
1
5
1
,
2
5
1
,
4
5
1
,
6
5
1
,
8
5
2
Frecvena [Hz]
I
n
d
i
c
e

d
e

r
e
g
u
l
a
r
i
t
a
t
e
Metoda Initiala
Metoda Propusa

Fig. 5.7 Variaia indicelui de regularitate cu frecvena

Aceast variaie a indicelui de regularitate cu frecvena conduce la erori
destul de mari n aprecierea prezenei sau absenei perturbaiilor odat cu
ndeprtarea de frecvena nominal a reelei de alimentare. Algoritmul propus de
autor reuete s pstreze indicii de regularitate la o valoare apropiat de zero
indiferent de frecvena semnalului, n condiiile n care nu exist perturbaii.
Pentru a testa algoritmul s-au aplicat diverse tipuri de perturbaii: impulsuri
singulare, zgomot aditiv cu distribuie uniform i semnale sinusoidale de diferite
frecvene.
Testarea s-a realizat cu ajutorul unui program implementat n Visual C++.
Motivul alegerii acestui limbaj l-a constituit viteza mare de execuie a codului compilat
cu ajutorul acestui limbaj i multitudinea de funcii matematice puse la dispoziie. n
anexa 1 este prezentat codul surs al programului implementat n C++.
Programul cuprinde urmtoarele blocuri:
blocul de achiziie/generare a semnalului;
blocul de generare de zgomot cu distribuie uniform;
blocul de calcul al indicilor de regularitate.
Pe interfaa aplicaiei pot fi distinse trei controale grafice, scopul acestora
fiind acela de a afia semnalul de intrare (n partea de sus a ecranului) i a oricror
dou segmente specificate de utilizator prin selectarea lor din combo-box-urile
corespunztoare (n partea de jos a ferestrei). n partea dreapt a ferestrei sunt
afiai indicii de regularitate ai fiecrui segment n parte.
Vom studia n continuare cazul apariiei unor perturbaii de tip impuls
singular. Pentru nceput se va studia cazul unui singur impuls pe durata unei
perioade a semnalului (figura 5.8).
Menionez c segmentele reprezentate au o form puin diferit fa de
semnalul captat ca urmare a folosirii unui numr mai mic de eantioane (v. par. 5.2).
74 Algoritmi software pentru detectarea perturbaiilor - 5



Se poate observa c perturbaia a fost surprins n cadrul segmentului 6 al
crui indice de regularitate are valoarea 0.3, toi ceilali indici avnd valori nule.
Poziia perturbaiei n raport cu nceputul, respectiv sfritul perioadei nu are
importan n acest caz.
Dac ns avem dou astfel de impulsuri plasate unul pe semialternana
pozitiv, cellalt pe semialternana negativ (figura 5.9), lucrurile se complic
deoarece exist posibilitatea ca valorile celor dou impulsuri, n cazul n care ele
sunt identice i se gsesc n cadrul aceluiai segment, s se anuleze reciproc,
programul nesemnalnd n acest caz producerea unei perturbaii.


Ambele impulsuri aplicate s-au presupus avnd durata unui singur eantion,
caz foarte puin probabil n practic. n consecin, vom presupune impulsurile ca
avnd o anumit durat (3-5 perioade ale frecvenei de eantionare).
Fig. 5.9 Semnal sinusoidal cu perioada de 20 ms peste care s-a suprapus o perturbaie
de tip impuls dublu
Fig. 5.8 Semnal sinusoidal cu perioada de 20 ms peste care s-a suprapus o perturbaie
de tip impuls
5.3 - mbuntirea metodei de detectare a perturbaiilor tranzitorii 75

Se poate observa o valoare nenul a indicelui de regularitate al segmentului
7, indicnd prezena unei perturbaii (figura 5.10).



Valoarea este mic i este datorat procesului de eantionare-cuantizare care n
acest caz ne este de un real ajutor deoarece putem detecta prezena acestei perturbaii.
n figura 5.11 se prezint analiza unui semnal de intrare sinusoidal peste care
s-a suprapus un zgomot generat cu ajutorul unui program MatLab. Se pot observa
valorile diferite pentru indicii de regularitate ale diferitelor segmente, fapt ce conduce
la o detectare sigur a perturbaiei.


Pentru a putea determina mai bine apariia unui astfel de tip de perturbaie
este nevoie de lucrul cu un numr mai mare de segmente. Din pcate, aa cum s-a
Fig. 5.10 Semnal sinusoidal cu perioada de 20 ms peste care s-a suprapus o
perturbaie de tip impuls dublu
Fig. 5.11 Semnal sinusoidal cu perioada de 20 ms peste care s-a suprapus un zgomot
76 Algoritmi software pentru detectarea perturbaiilor - 5


artat mai sus, nu se poate extinde numrul de segmente la infinit din cauza
apariiei fenomenului de aliere.
5.4 Concluzii
Datorit faptului c algoritmul propus opereaz ntotdeauna asupra unei
perioade a semnalului aplicat la intrare, s-a reuit meninerea indicilor de
regularitate la o valoare foarte apropiat de zero indiferent de frecvena
fundamentalei semnalului aplicat la intrare, lucru realizat prin detectarea cu precizie
a perioadelor semnalului reelei.
Problema utilizrii unui singur canal la achiziia semnalului a fost rezolvat
prin utilizarea unei memorii circulare n care sunt stocate cteva perioade ale
semnalului. Spre exemplu, la o frecven de eantionare de 100 kHz o perioad
cuprinde un numr de 2000 de eantioane. Astfel c, pentru memorarea unui numr
de 10000 de eantioane este suficient o memorie de 20 KB (semnalul a fost
eantionat cu o rezoluie de 16 bii/eantion).
De-a lungul timpului, au fost elaborate nenumrate lucrri tiinifice care
trateaz detectarea perturbaiilor din reelele electrice.
Autorul a ales pentru detectarea perturbaiilor din reelele electrice metode de
analiz n domeniul timp, deoarece acestea necesit sisteme de calcul cu performane
relativ modeste, putndu-se astfel crete rata de eantionare a semnalului reelei,
fapt ce conduce la creterea frecvenei maxime din spectrul semnalului achiziionat.
Pe de alt parte, memorarea i stocarea informaiilor referitoare la perturbaiile
aprute, permit o prelucrare i analiz ulterioar a acestora.

6. SISTEM DE DETECTARE I MONITORIZARE A
PERTURBAIILOR DIN REELELE ELECTRICE
6.1 Introducere
Deoarece majoritatea standardelor prevd msurarea parametrilor reelelor
electrice pe o semiperioad a tensiunii, autorul a ncercat dezvoltarea aplicaiei de
detectare i monitorizare a perturbaiilor electrice pe o semiperioad a tensiunii
reelei. Toi parametrii reelei electrice (valoare efectiv, valoare maxim,
frecven), sunt determinai pe o semiperioad a semnalului i calculai conform
standardelor n vigoare.
6.2 Prezentarea sistemului hardware
Sistemul de detecie i monitorizare a perturbaiilor cuprinde urmtoarele
blocuri (figura 6.1):
blocul de condiionare a semnalelor;
placa de achiziie;
calculator personal


Circuitul de condiionare este compus din patru module de intrare
independente (figura 6.2), care preiau tensiunea din reeaua electric i o aduc la o
Fig. 6.1. Diagrama sistemului de monitorizare al perturbaiilor
78 Sistem de detectare i monitorizare a perturbaiilor - 6


valoare acceptat de placa de achiziie, realiznd totodat i o izolare a
convertorului analog numeric de reeaua electric.

Circuitul de intrare a fost proiectat ca un circuit modular compus din 4
module de intrare i partea de alimentare/conectare a acestora la sistemul de
achiziie de date. S-au folosit patru module de intrare, n ideea unor dezvoltri
ulterioare ale sistemului pentru circuite trifazate, nefiind ntotdeauna necesar
folosirea tuturor celor patru module, dup cum se va arta n continuare. Fiecare
divizor de tensiune poate fi configurat s aib un anumit raport de divizare, acest
lucru fiind posibil datorit rezistorului R
2
(figura 5.3) care se poate schimba rapid,
fiind prevzut cu borne de contact. n plus, cu ajutorul jumperului JP1, rezistena R
2

se poate nlocui cu o rezisten semireglabil multitur, acest lucru facilitnd reglajul
exact al raportului de divizare. Pentru asigurarea izolrii etajului de intrare fa de
reeaua electric (pentru a proteja utilizatorul de un eventual risc de electrocutare i
pentru a preveni apariia buclelor de mas ntre reea i masa sistemului de calcul),
s-a folosit un amplificator izolator ISO 122U [89]. Principalii parametri ai acestui
circuit integrat sunt prezentai n tabelul 6.1.

Tabelul 6.1. Parametrii amplificatorului izolator ISO 122U
Parametru Valoare
Tensiunea de izolare 1500 V
AC

Impedana de barier 10
14
|| 2 pF
Ctigul 1 0.05 %FSR
Tensiunea de intrare 10 V
Tensiunea de ieire 10 V
Banda de frecvene 50 kHz
Slew-rate 2 V/s
Tensiune de alimentare 15 V
Fig. 6.2. Circuitul de condiionare a semnalelor
6.2 - Prezentarea sistemului hardware 79

Deoarece amplificatorul izolator ISO 122 necesit dou alimentri separate
cu 15 V, una pentru circuitele de intrare, iar cealalt pentru circuitele de ieire, s-a
adoptat soluia utilizrii unui convertor DC/DC izolat pentru alimentarea prii de
intrare a ISO 122, acest lucru conducnd la un bloc de intrare complet izolat.
Convertorul DC/DC izolat folosit este DCH010515N7 [90], ai crui principali
parametri sunt prezentai n tabelul 6.2.

Tabelul 6.2. Parametrii circuitului integrat DCH010515N7
Parametru Valoare
Tensiunea de izolare 3 kV
Eficiena 78 %
Tensiunea de intrare +5 V
Tensiunea de ieire 15 V
Puterea de ieire 1 W
Frecvena de chopare 70 kHz

n figura 6.3 este prezentat schema electric a unui modul de intrare, iar n
figura 6.4 este prezentat o imagine a acestuia.


Prin plasarea pe cablajul imprimat (figura 6.4) a amplificatorului izolator i a
convertorului DC/DC izolat, s-a realizat o zon de izolare figurat punctat n figura
6.3. Per ansamblu, etajul de intrare asigur o izolare de minim 1,5 kV (pentru un
raport de divizare de 1:1) i tipic 75 kV (pentru un raport de divizare de 1:50).

Fig. 6.3. Modul de intare izolat
Fig. 6.4. Modulul de intrare
80 Sistem de detectare i monitorizare a perturbaiilor - 6


n figura 6.5 se prezint modul n care sunt conectate modulele de intrare la
intrrile, respectiv ieirile sistemului de condiionare. Se dorete alimentarea
ntregului ansamblu circuit de condiionare plac de achiziie de la o baterie de
12 V pentru ca sistemul s funcioneze independent de tensiunea reelei.


Rolul celor dou circuite integrate IC1 (LM 7805) i IC2 (DCH010515DN7)
din schem este de a obine o tensiune de +5 V stabilizat, pentru alimentarea
convertoarelor DC/DC i cele dou tensiuni de +15 V, respectiv 15 V, necesare
alimentrii prii de ieire a amplificatoarelor izolatoare. Masa semnalelor de la
intrare este separat de masa semnalelor de la ieire.
Datorit modularitii sale, circuitul de intrare poate fi conectat n mai multe
moduri la placa de achiziie n funcie de ceea ce se dorete s se msoare.
n figura 6.6 se prezint o imagine de ansamblu a circuitului de condiionare
a semnalelor, putndu-se observa modul n care sunt conectate modulele la circuitul
de msurat i la circuitul de alimentare. Circuitul este montat ntr-o carcas din PVC
cu grosimea de 5 mm, pentru a realiza o bun izolare electric. Pentru a elimina pe
ct este posibil perturbaiile ce pot s apar n circuit acesta este ecranat, fiind
introdus ntr-o cutie metalic realizat din tabl de 1 mm.
Fig. 6.5. Diagrama de conectare a modulelor de intrare
6.2 - Prezentarea sistemului hardware 81


Pentru monitorizarea unei reele de joas tensiune de 230V i 50 Hz,
intrrile celor patru module de intrare se pot conecta n paralel, fiecare modul avnd
un alt raport de divizare (pentru a se realiza un divizor de tensiune secvenial
similar cu cel prezentat n capitolul 3), iar ieirile celor patru module (n cazul
folosirii unui divizor de tensiune secvenial cu patru segmente) sunt legate la placa
de achiziie dup cum se arat n figura 6.7.
Fig. 6.6. Circuitul de condiionare a semnalelor
82 Sistem de detectare i monitorizare a perturbaiilor - 6




Dac se dorete eliminarea perturbaiilor ce pot s apar pe traseul circuit
de condiionare plac de achiziie, pe lng ecranarea cablurilor care leag cele
dou subansambluri, se recomand folosirea intrrilor plcii de achiziie n mod
diferenial (figura 6.8).



Pentru utilizarea modului de intrare diferenial, placa de achiziie trebuie
programat n consecin, lucru care este realizat de ctre aplicaia software prin
intermediul driverelor NI-DAQmx.
Sistemul poate s monitorizeze dou reele de alimentare diferite (figura
6.9), spre exemplu, una dintre ele poate fi reeaua naional, iar alta poate fi o
reea local alimentat de la panouri solare, energie eolian sau o minihidrocentral.
Se poate urmri astfel modul n care invertorul, respectiv generatorul este capabil
s se sincronizeze cu reeaua naional, i se pot studia diferenele care apar n ceea
ce privete forma tensiunii, respectiv diferena de frecven i defazajul dintre
tensiunile celor dou reele.

P
l
a
c


d
e

a
c
h
i
z
i

i
e
Fig. 6.7. Conectarea circuitului de intrare n modul mas comun
Fig. 6.8. Conectarea circuitului de intrare n modul diferenial
6.2 - Prezentarea sistemului hardware 83



Pentru cazul n care se dorete monitorizarea unei reele trifazate, exist dou
posibiliti de conectare; prima posibilitate este de a lega toate intrrile de mas ale
modulelor de intrare la nulul sistemului trifazat, n acest caz unul dintre module
rmnnd nefolosit. Cea de-a doua posibilitate este s se lege toate circuitele de
mas ale modulelor de intrare mpreun i nulul sistemului trifazat stea se leag la
una dintre intrrile de semnal ale unuia dintre modulele de intrare (figura 6.10).


n acest caz, toate circuitele de mas de la ieirea modulelor de intrare
trebuiesc legate mpreun la masa virtual a plcii de achiziie configurate n mod
diferenial. n cazul configuraiei trifazate stea, energia electric este livrat prin
intermediul a trei conductoare active (notate cu R, S i T) i a unui fir de mas (nulul,
notat cu N). Sistemul trifazat n triunghi are doar cele trei fire active (R, S i T),
lipsindu-i firul de nul, acesta fiind reconstituit ulterior prin algoritmi hardware sau
software. Circuitul de intrare poate fi configurat s funcioneze cu oricare dintre cele 2
configuraii, stea sau triunghi.
n figura 6.11 se prezint modul de conectare diferenial al circuitului de
intrare la o reea electric trifazat stea. Pentru intrrile n cele patru module s-a
realizat un nul artificial.
Fig. 6.10. Conectarea unei reele electrice trifazice la circuitul de intrare
Fig. 6.9. Conectarea a dou reele electrice diferite la circuitul de intrare
P
l
a
c


d
e

a
c
h
i
z
i

i
e
84 Sistem de detectare i monitorizare a perturbaiilor - 6



Aplicaia software va prelua semnalele de la placa de achiziie i le va
procesa astfel nct la ieire s se obin trei semnale corespunztoare celor trei
tensiuni aplicate la intrare.
Pentru achiziia semnalelor din reeaua trifazat, este necesar ca toate
modulele folosite s aib aceeai amplificare. Pentru a facilita calibrarea rapoartelor
de divizare ale celor patru module de intrare, a fost proiectat un modul software
special, care atunci cnd la intrarea celor patru module se aplic acelai semnal,
calculeaz diferenele dintre module i stabilete nite coeficieni de compensare,
astfel nct pentru aceeai tensiune de intrare, toate cele patru module s dea
aceeai valoare numeric la ieirea blocului de procesare a datelor.
Circuitul de condiionare a semnalelor a fost elaborat cu ajutorul aplicaiei
CAD Eagle, iar simulrile, efectuate pentru studierea funcionrii circuitului (nainte
de implementarea practic), au fost realizate cu ajutorul utilitarului PSpice.
6.3 Aplicaie software pentru detectarea perturbaiilor
6.3.1 Descrierea aplicaiei
Aplicaia software ce controleaz funcionarea ntregului sistem hardware,
monitorizeaz reeaua electric i detecteaz perturbaiile ce apar n aceasta, a fost
elaborat utiliznd mediul de programare Microsoft Visual C++ 7.1 (.NET) [91],
[92]. Acest mediu de programare ofer accesul la funcii low-level Windows i
permite lucrul facil cu ferestre i controale grafice prin intermediul bibliotecii de
funcii MFC (Microsoft Foundations Class) [93], [94]. Spre deosebire de alte limbaje
de programare, limbajul C++ este unul dintre limbajele cele mai versatile i ofer
posibiliti multiple de compilare i optimizare a codului executabil, astfel nct
programele elaborate i compilate n C++ s poat rula foarte rapid i fr un
consum foarte mare de resurse, lucru important pentru aplicaia realizat de autor.
nainte de a se trece la prezentarea modului n care a fost elaborat
aplicaia software se vor prezenta cteva noiuni de baz privind limbajul de
programare C++ utilizat n aceast aplicaie.
Un limbaj de programare este o modalitate de descriere a aciunilor (cu
ajutorul unor instruciuni specifice), pe care un calculator trebuie s le fac pentru a
ndeplini o anumit sarcin.
Fig. 6.11. Conectarea unei reele electrice trifazice la circuitul de intrare n mod diferenial
6.3 - Aplicaie software pentru detectarea perturbaiilor 85

Pentru a pstra un caracter modular i structurat, aplicaia software pentru
monitorizarea perturbaiilor din reelele electrice este structurat pe clase.
Clasele reprezint tipuri de date abstracte, asemntoare structurilor, care
ncapsuleaz comportamentul i datele asociate unei entiti. Comportamentul este
descris cu ajutorul metodelor (funcii incluse), iar datele, cu ajutorul atributelor. O
instan (realizare concret), a unei clase se numete obiect.
Definirea unei clase presupune declararea clasei, la care se specific:
numele clasei;
lista claselor de baz din care este derivat clasa, dac exist;
membrii clasei, att datele ct i funciile.
Metodele unei clase sunt similare funciilor obinuite, cu dou excepii:
primul parametru (adugat automat de ctre compilator), este un
pointer ctre obiectul curent;
metodele pot accesa direct atributele.
Accesul din exterior la atributele i metodele unei clase se face folosind
operatorul . (sau -> n cazul pointerilor).
Atributele i metodele unei clase pot fi grupate din punctul de vedere al
drepturilor de acces n trei categorii:
private: pot fi accesate doar din interiorul clasei;
protejate: pot fi accesate din interiorul clasei i din clase derivate;
publice: pot fi accesate att din interiorul, ct i din exteriorul clasei.
O clas poate oferi acces nerestricionat la membrii proprii prin utilizarea
cuvntului cheie friend.
Controlul accesului permite dezvoltatorului clasei limitarea modului de
utilizare al clasei i ascunderea implementrii interne a operaiilor. Prin aceasta cel
care implementeaz clasa are posibilitatea de a modifica modul n care sunt stocate
intern datele sau sunt implementate operaiile fr a afecta aplicaiile deja
construite pe baza clasei respective.
Orice obiect derivat dintr-o clas trebuie construit cu ajutorul unui
constructor i atunci cnd nu mai este folosit, trebuie distrus cu ajutorul unei funcii
speciale numit destructor. Constructorul este o funcie special apelat automat de
compilator la crearea unui nou obiect. n cazul n care nu exist nici un constructor
definit de ctre programator, compilatorul va genera un constructor implicit fr nici
un parametru. Rolul constructorului este de a iniializa atributele obiectului. O clas
poate avea mai muli constructori care pot s difere prin numrul i/sau tipul
parametrilor, n funcie de necesiti.
Destructorii sunt metode speciale apelate de ctre compilator la tergerea
din memorie a obiectului. Destructorii nu au tip returnat i nu pot primi parametri, o
clas putnd avea doar un singur destructor, fiind folosii pentru a elibera resursele
alocate (dezalocarea zonelor de memorie alocate dinamic), la distrugerea obiectului.
Pentru dezvoltarea rapid a aplicaiilor Windows, Microsoft a pus la
dispoziia programatorilor o serie de clase de funcii grupate ntr-o bibliotec de
clase numit MFC (Microsoft Foundation Class Library). Numele originar al acestei
biblioteci de funcii a fost AFX (Application Framework eXtension) i conine funcii
care ncapsuleaz poriuni din biblioteca Windows API n clase de C++, formnd o
baz pentru aplicaiile care ruleaz sub sistemul de operare Microsoft Windows [95].
Biblioteca MFC a fost introdus n anul 1992, mpreun cu compilatorul
Microsoft C/C++ 4.0 folosit pentru versiunile de Windows pe 16 bii. A fost parte a
unui efort al Microsoft de a mai ctiga din piaa de dezvoltare a produselor
software, ct i pentru a arta cteva avantaje ale programrii n C++. Limbajul
C++ era pe cale s nlocuiasc limbajul C n cadrul instrumentelor de dezvoltare
86 Sistem de detectare i monitorizare a perturbaiilor - 6


pentru aplicaii comerciale, iar C/C++ 4.0 era primul compilator al Microsoft, cu
suport pentru MFC. n figura 6.12 este prezentat ierarhia de clase MFC.


Fig. 6.12. Ierarhia de clase MFC [96]
6.3 - Aplicaie software pentru detectarea perturbaiilor 87

Versiunea 8 a MFC a fost lansat mpreun cu produsul Microsoft Visual
Studio 2005 i nu este inclus n varianta gratuit denumit Express, a produsului.
Microsoft recomand folosirea alternativei .NET pentru viitorul dezvoltrii software.
Object Windows Library (OWL), creat de ctre Borland i inclus n
compilatorul Borland Turbo C compiler, era un competitor al acelor vremuri. Din
moment ce urmrea principiile programrii orientat pe obiecte, OWL a fost mai
popular dect MFC pentru un timp, popularitate pierdut odat cu lansarea MFC de
ctre Microsoft.
Atunci cnd MFC a fost lansat, Microsoft a extins sintaxa C++ cu o serie de
macro-uri pentru a uura lucrul cu mesajele Windows, excepiile, identificri ale
tipurilor la rulare, instanierea dinamic a claselor (multe dintre aceste caracteristici
excepii sau identificarea tipurilor la rulare, spre exemplu nu au fost construite n
compilatorul Microsoft, la acea vreme, dar au aprut n versiuni ulterioare). Clasele
bibliotecii MFC pot fi clasificate dup cum urmeaz [97]:
Clasa de baz: Cobject;
Clase MFC aplicaie
o aplicaie i suport fire de execuie;
o rutare a comenzilor ;
o document;
o reprezentare vizual;
o ferestre tip ram (frame);
o ablon documente;
Ferestre, dialog-uri, i controale
o Fereastr (Windows);
o Reprezentare vizual (Windows);
o Caset de dialog;
o Clase de control;
o Bar derulant;
Desen i afiare grafic
o Ieire (ecran, imprimant);
o Instrumente de desen;
Tipuri simple de date
Tablouri, liste, i hri de mesaje
o Clase ablon pentru tablouri, liste, i hri de mesaje;
o abloane de tip tablou;
o abloane de tip list de obiecte;
Fiiere i baze de date
o Fiiere (intrare/ieire);
o DAO;
o ODBC;
o OLE DB;
Internet i reele de calculatoare
o ISAPI;
o Windows Sockets;
o Win32 Internet;
Clase OLE (object linked and embedded)
o Container OLE;
o Server OLE;
o OLE drag-and-drop i transfer de date;
o Dialog-uri OLE;
o Clase de automatizare OLE;
88 Sistem de detectare i monitorizare a perturbaiilor - 6


o Control OLE;
o Arhive de documente;
Depanare i excepii
o Suport i depanare;
o Excepii.
Aplicaia pentru monitorizarea calitii energiei electrice a fost gndit s
funcioneze pe sisteme de operare multi-tasking Microsoft Windows, sisteme ce
permit execuia multifilar.
Un program simplu este o secven de instruciuni, n orice moment, pe
durata rulrii lui existnd un singur punct de execuie.
Un fir de execuie (thread) este similar unui program secvenial:
instruciunile se execut secvenial, iar n orice moment al rulrii lui exist un singur
punct de execuie [98].
Un fir de execuie nu este el nsui un program, deoarece nu poate fi
executat de sine stttor. n schimb, firul este executat (ruleaz) ntr-un program.
Posibilitatea utilizrii mai multor fire de execuie ntr-un singur program este numit
execuie multifilar (multithreading) [99].
Aplicaia dezvoltat de autor cuprinde trei fire de execuie care ruleaz n
paralel, fiecare dintre ele avnd o sarcin foarte bine definit:
firul de achiziie de date;
firul de detecie a perturbaiilor;
firul de afiare.
Este necesar ca afiarea datelor s se fac ntr-un fir de execuie separat,
deoarece firele de execuie de interfa au de obicei o prioritate sczut, iar n
cadrul aplicaiei de monitorizare a perturbaiilor se dorete afiarea instantanee a
semnalului achiziionat, precum i a principalilor parametri ai semnalului monitorizat.
Clasele de funcii folosite la realizarea aplicaiei Power Quality Monitoring
System, elaborat de autor, sunt urmtoarele:
Clasa MFC aplicaie
o CPowerQualityMonitoringSystemApp este clasa principal a
aplicaiei care ncapsuleaz toate celelalte clase;
o CProgramParameters ncapsuleaz informaii despre
setrile aplicaiei;
o CIniHelper conine toate funciile de acces la fiiere .ini;
o CSignalParameters cuprinde toi parametrii semnalului
procesat;
o CSignalProcessing este clasa care conine algoritmul de
monitorizare a calitii energiei electrice;
o CCircularBuffer implementeaz memoria circular folosit
la stocarea temporar a eantioanelor semnalului;
o Lock implementeaz semaforizarea firelor de execuie i
accesul la memoria circular.
Ferestre, dialog-uri, i controale
o CPowerQualityMonitoringSystemDlg conine funciile ce
descriu fereastra principal a aplicaiei;
o CAboutDlg afieaz fereastra de informaie a aplicaiei.
Depanare i excepii
o SysEvent implementeaz funcii sistem.
Desen i afiare grafic
o CTextDisplay afieaz textual diverse informaii;
o CWaveScope afieaz grafic semnalele;
6.3 - Aplicaie software pentru detectarea perturbaiilor 89

o CMyToolBar implementeaz un toolbar personalizat;
o CEventsListCtrl afieaz o list cu ultimele perturbaii
detectate n sistem;
o CCircularBufferCtrl control grafic pentru afiarea strii
memoriei circulare.
6.3.2 Iniializarea aplicaiei
n figura 6.13 este prezentat fereastra principal a aplicaiei. La pornirea
aplicaiei este instaniat clasa CPowerQualityMonitoringSystemApp care are rolul de
a iniializa aplicaia i de a genera o nou instan a clasei
CPowerQualityMonitoringSystemDlg. Codul surs al acestei clase este prezentat n
Anexa 3.1.


Clasa CPowerQualityMonitoringSystemDlg iniializeaz fereastra aplicaiei i
toate controalele grafice coninute de aceasta, ndeplinind n acelai timp o serie de
alte funcii n cadrul aplicaiei (figura 6.14):
iniializarea bibliotecilor de funcii utilizate n cadrul aplicaiei;
citirea parametrilor de configurare ai aplicaiei i ai plcii de achiziie
prin intermediul clasei CprogramParameters;
iniializarea plcii de achiziie;
achiziia semnalului i procesarea acestuia n vederea detectrii
perturbaiilor;
extragerea parametrilor semnalului (frecven, valoare de vrf,
valoare efectiv);
afiarea semnalului i a parametrilor acestuia;
Fig. 6.13. Fereastra principal a aplicaiei
90 Sistem de detectare i monitorizare a perturbaiilor - 6


afiarea perturbaiilor detectate.


Prin intermediul clasei CProgramParameters aplicaia citete configuraia
modulelor de intrare dintr-un fiier .ini. n acest fiier sunt stocate toate informaiile
despre numrul de canale, modul de configurare al acestora, rata de achiziie,
precum i ali parametri necesari bunei funcionri a aplicaiei. Parametrii sunt citii
cu ajutorul funciilor API ai clasei CIniHelper.
Dup iniializare, aplicaia ateapt comenzi de la utilizator. Utilizatorul are
la dispoziie un toolbar din care poate selecta aciunea dorit. Butonul GO de pe
toolbar permite utilizatorului s porneasc monitorizarea reelei electrice, iar butonul
Stop oprete monitorizarea.
n meniul File exist un submeniu Settings prin accesarea cruia i se
permite utilizatorului s modifice parametrii de funcionare a aplicaiei.
Fig. 6.14. Secvena de iniializare a aplicaiei
6.3 - Aplicaie software pentru detectarea perturbaiilor 91

n cazul n care utilizatorul dorete nceperea monitorizrii, prin apsarea
butonului GO este creat firul de execuie achiziie de date care citete continuu date
de la placa de achiziie i le stocheaz n memoria circular (figura 6.15).


Codul surs al programului care implementeaz algoritmul de detecie al
perturbaiilor este prezentat n Anexa 3.2.
Fig. 6.15. Diagrama rutinei soft de detectare a perturbaiilor
92 Sistem de detectare i monitorizare a perturbaiilor - 6


6.3.3 Memoria circular
Memoria circular (figura 6.16), implementat n clasa CCircularBuffer este
utilizat aici datorit flexibilitii pe care o confer aplicaiei: prin intermediul ei se
poate realiza scrierea i citirea eantioanelor simultan, fr ca cele dou procese
care fac acest lucru s se deranjeze reciproc.

Astfel, firul de achiziie scrie datele n aceast memorie circular, iar firul de
detecie a perturbaiilor citete datele din alt zon a memoriei circulare. ntre cele
dou zone de scriere, respectiv de citire, exist un interval de siguran, pentru a nu
se suprapune zona de scriere cu cea de citire, fapt care ar conduce la date citite
eronat. Mrimea zonei de siguran depinde de mrimea bufferului de date care este
scris n memoria circular. Ca regul general, ca s nu apar probleme, zona de
siguran are minim mrimea bufferului de scriere. Datorit folosirii memoriei
circulare, apare o ntrziere ntre momentul apariiei perturbaiei i momentul
semnalizrii ei, ntrziere ce poate fi determinat cu acuratee.
Pentru a putea vizualiza corecta funcionare a firelor de execuie ce folosesc
memoria circular, a fost creat un control grafic (implementat n clasa
CCircularBufferCtrl) care afieaz continuu starea memoriei circulare (a zonei de
scriere i a zonei de citire) (figura 6.17).

Cele dou buffere de date (cel de scriere i cel de citire), sunt reprezentate
sub forma unor sectoare de cerc. Unghiul de deschidere al acestor sectoare de cerc
este dat de mrimea bufferului pe care l descrie, raportat la mrimea memoriei
Fig. 6.16. Organizarea memoriei circulare
C
i
t
i
r
e
Fig. 6.17. Afiarea grafic a strii memoriei circulare
6.3 - Aplicaie software pentru detectarea perturbaiilor 93

circulare. Astfel se poate observa foarte uor modul n care funcioneaz memoria
circular i se pot face reglaje fine asupra funcionrii acesteia.
Programul care implementeaz memoria circular este prezentat n
Anexa 3.3, iar programul care implementeaz controlul grafic pentru afiarea strii
memoriei circulare este prezentat n Anexa 3.4.
6.3.4 Detectarea i monitorizarea perturbaiilor
Funciile care proceseaz datele provenite de la placa de achiziie i
detecteaz perturbaiile conform algoritmului prezentat n figura 6.18 sunt
implementate n clasa CSignalProcessing.

Clasa CSignalParameters ncapsuleaz ntr-o form mai simpl principalii
parametri ai semnalului: frecvena, valoarea de vrf, valoarea efectiv i factorul de
Fig. 6.18. Algoritmul de detectare a perturbaiilor
94 Sistem de detectare i monitorizare a perturbaiilor - 6


creast. Astfel, pentru fiecare semiperioad a semnalului sunt memorate aceste
valori sub forma unei liste avnd 1000 de poziii. Prin nregistrarea pe disc a acestei
liste la apariia unei perturbaii, utilizatorul poate vedea modul n care au variat
aceti parametri nainte, n timpul i dup producerea perturbaiei, lucru util n
analiza ulterioar a perturbaiei.
Pentru a ilustra funcionarea blocului de detectare al perturbaiilor prezentat n
figura 6.18, se presupune c la intrarea sistemului se aplic un semnal de forma celui
din figura 6.19, unde v(t) este semnalul preluat din reeaua electric, v
r
(t) este
semnalul reelei redresat, z(t) reprezint trecerile prin zero ale tensiunii reelei, V
RMS
i
V
MAX
fiind valorile efectiv i respectiv maxim ale semnalului reelei, CF este factorul de
creast (crest factor), iar D reprezint prezena sau absena perturbaiilor.

v(t)
v
r
(t)
z(t)
t
t
t
t
t
v
RMS
v
max
CF

t
I

II
III

IV

V
VI

VII

VIII

D

t
Fig. 6.19. Diagrame temporale pentru explicarea funcionrii sistemului de detectare a
perturbaiilor
6.3 - Aplicaie software pentru detectarea perturbaiilor 95

Sistemul de monitorizare este plasat ntr-o zon rezidenial, conectat n
aceeai priz cu un calculator personal legat la reea prin intermediul unui UPS.
Semnal din figura 6.19 prezint opt zone distincte. Dup o perioad de funcionare
normal (zona I), n reeaua electric apar unele perturbaii (zona II), urmate de o
alt perioad normal de funcionare (zona III). La un moment dat are loc o
ntrerupere brusc de tensiune (zona IV), iar UPS-ul intr n funciune. UPS-ul
funcioneaz o perioad de timp (zona V), pn cnd bateria lui se descarc (zona
VI). Dup un timp, defeciunea aprut n reeaua electric este remediat i se reia
alimentarea cu energie electric (zona VII), apoi totul reintr n normal (zona VIII).
n cazul reelelor monofazate, detectarea perturbaiilor se face pe canalul cu
cea mai mare amplitudine, celelalte canale fiind folosite pentru a reconstrui forma
corect a perturbaiilor cu amplitudini de peste 500 V. Pentru sistemele trifazate,
analiza perturbaiilor se face pe fiecare dintre cele trei canale de intrare cu un
program software mai complex.
Semnalele provenite de la circuitul de condiionare sunt preluate de ctre
placa de achiziie (v(t)) i convertite cu o rat de eantionare de 250 ksps
(rezultnd un numr de 12500 eantioane pe fiecare perioad a semnalului pentru
reelele de 50 Hz ), n eantioane numerice (v[n]).
Semnalul v[n] este apoi redresat, obinndu-se semnalul v
r
[n]. Pentru a
separa semiperioadele semnalului v[n], semnalul v
r
[n] este aplicat blocului de
detecie a minimelor semnalului redresat. ntre dou minime avem o semiperioad a
semnalului de intrare (n lipsa perturbaiilor), (figura 6.20).


Pentru fiecare semiperioad a semnalului se calculeaz valoarea efectiv,
valoarea de vrf, factorul de creast i frecvena tensiunii aplicate la intrare.
Valoarea efectiv a tensiunii se calculeaz conform formulei 2.6, iar frecvena se
calculeaz pe baza numrului eantioanelor dintr-o semiperioad cu ajutorul
formulei de mai jos:

eantionare
f
f =
2numr eantioane semiperioad
(6.1)

n figura 6.21 se prezint algoritmul de calcul pentru determinarea frecvenei
semnalului bazat pe detecia poziiilor minimelor semnalului de intrare redresat.
Fig. 6.20. Detectarea duratei unei semiperioade a semnalului reelei
t
t
v
r
(t)
v(t)
0
T/2 T/2 T/2 T/2
96 Sistem de detectare i monitorizare a perturbaiilor - 6



Fig. 6.21. Algoritm pentru calculul frecvenei reelei
2
eantionare
f
f
N
=

6.3 - Aplicaie software pentru detectarea perturbaiilor 97



Algoritmul de detectare al perturbaiilor este prezentat n figura 6.22 i
const n compararea celor trei valori cu mediile lor pe 10 perioade ale semnalului.
Dac exist abateri de la medie, mai mari dect o valoare de prag , atunci se
semnaleaz prezena unei perturbaii.

n cazul n care exist o perturbaie care se suprapune peste semnalul de
intrare i cauzeaz detectarea unui minim fals al semnalului, aceasta este imediat
detectat de ctre sistem prin simpla comparare a frecvenei instantanee cu
frecvena medie pe 10 perioade. Pentru a se reduce numrul detectrii de minime
false datorate zgomotului prezent n sistem, odat detectat un minim, poziia
acestuia este memorat i urmtorul minim care se ia n considerare este la o
distan de minim un sfert de perioad fa de minimul detectat anterior.
n conformitate cu standardele n vigoare (prezentate n capitolul 2) sunt
calculate valorile medii ale frecvenei i tensiunii dup cum urmeaz:
media valorii efective a tensiunii reelei pe 200 ms;
media valorii efective a tensiunii reelei pe 3 secunde;
media valorii efective a tensiunii reelei pe 10 minute;
media valorii efective a tensiunii reelei pe 2 ore;
media frecvenei pe 10 secunde;
Dup ce au fost detectate, perturbaiile sunt salvate n 2 fiiere:
un fiier cu extensia .txt n care sunt nregistrate eantioanele
semnalului perturbat;
un fiier cu extensia .ext n care sunt salvate valorile parametrilor
monitorizai surprinse n momentul apariiei perturbaiei. n acest
fiier poate fi specificat fie automat de ctre aplicaia software, fie
ulterior, de ctre utilizator, locaia unde a fost detectat perturbaia,
lucru util n cazul monitorizrii mai multor situri.
Alturi de aceste dou fiiere, care conin strict date despre perturbaiile
detectate, mai sunt nregistrate i alte 2 fiiere care conin valorile tensiunii efective
Fig. 6.22. Blocul de detectare a perturbaiilor
RMS RMS
v v >
max max
v v > CF CF > f f >
98 Sistem de detectare i monitorizare a perturbaiilor - 6


i ale frecvenei (msurate pe o semiperioad a semnalului), mpreun cu momentul
de timp la care au fost msurate. Valorile corespunztoare unei zile sunt nregistrate
n acelai fiier. Momentul de timp la care apare perturbaia este nregistrat att n
numele fiierului care conine perturbaia, ct i n fiierul cu extensia .ext.
6.3.5 Interfaa cu utilizatorul
Interfaa cu utilizatorul este una dintre cele mai importante componente ale
unei aplicaii deoarece prin intermediul ei utilizatorul poate controla modul de
funcionare al aplicaiei, poate introduce comenzi i poate vizualiza rezultatele rulrii
aplicaiei.
Exist mai multe modaliti de implementare a unei interfee cu utilizatorul,
cea mai utilizat fiind Interfaa Grafic Utilizator (GUI), interfa care, aa cum i
spune i numele, este realizat n mod grafic, uurnd modul n care sunt introduse
i extrase datele din aplicaie.
Interfaa utilizator cuprinde funcii de intrare, vizualizare i ieire.
Deoarece biblioteca MFC pune la dispoziia programatorilor doar funcii de
baz pentru afiarea de text i primitive grafice, a fost nevoie de elaborarea unor
controale grafice cu ajutorul crora s fie afiat semnalul de intrare, perturbaia
aprut precum i parametrii semnalului de intrare, fiecare dintre acetia fiind
implementai ntr-o clas separat.


Bara de instrumente

Bara de instrumente este implementat n clasa CMyToolBar derivat din
clasa MFC CToolBar i creia i s-au adugat funcii specifice aplicaiei prezentate:
dou butoane personalizate GO i STOP cu ajutorul crora este
pornit/oprit achiziia datelor;
un control grafic pentru indicarea strii memoriei circulare (amplasat
n partea stng a barei de instrumente).
Controlul grafic pentru afiarea strii memoriei circulare este implementat n
clasa CCircularMemoryCtrl fiind utilizat ca i variabil membru a clasei CmyToolBar,
motiv pentru care s-a acordat o atenie deosebit redesenrii i poziionrii acestui
control pe suprafaa barei de instrumente (figura 6.23).





Afiarea semnalelor

Pentru afiarea grafic a semnalelor au fost elaborate funcii speciale
grupate n clasa CWaveScope. Fereastra aplicaiei are dou controale identice ca i
funcionalitate, unul dintre ele afind semnalul preluat de la intrarea plcii de
achiziie, iar cellalt afieaz perturbaia detectat (figura 6.24).

Fig. 6.23. Bara de instrumente a aplicaiei
6.3 - Aplicaie software pentru detectarea perturbaiilor 99


6.3.6 Configurarea aplicaiei
Aa cum s-a artat n paragraful 6.2, sistemul de achiziie poate fi configurat
n funcie de natura semnalului/semnalelor achiziionate. Deoarece se dorete o
configurare uoar a aplicaiei s-a ales configurarea acesteia bazat pe fiiere de
iniializare (.ini). Acestea sunt fiiere cu o structur special i permit configurarea
parametrilor aplicaiei ntr-o manier simpl i intuitiv, spre deosebire de
modalitatea de configurare a aplicaiei folosind regitrii sistemului de operare
Microsoft Windows. Utilizatorul poate pre-configura mai multe fiiere n funcie de
scopul urmrit, fiiere ce pot fi folosite apoi n configurarea aplicaiei. Spre exemplu,
se poate configura un fiier pentru monitorizarea tensiunii de pe o singur faz (ntr-
o cldire, laborator etc.), folosind trei divizoare de tensiune (configurat ca n figura
6.8) i un alt fiier pentru monitorizarea unui sistem trifazat (configurat ca n figura
6.11). Prin simpla nlocuire a fiierului de configurare cu unul sau altul din aceste
dou fiiere, aplicaia este configurat n modul de funcionare dorit.
Un fiier de iniializare conine urmtoarele entiti: seciuni, chei i valori. O
seciune este asemntoare unui capitol de carte, coninnd mai multe chei
(subcapitole). Seciunile sunt notate ntre paranteze drepte. O cheie codific n mod
unic o proprietate a seciunii din care face parte. Fiecare cheie are o valoare i
numai una la un moment dat. Pot exista i chei cu acelai nume dar obligatoriu n
seciuni diferite.
Seciunile, cheile i valorile corespunztoare ale acestora sunt prezentate
sub form de diagram n figura 6.25. Seciunile sunt reprezentate prin
dreptunghiuri cu chenar dublu, cheile cu chenar simplu iar valorile cu linie punctat.

Fig. 6.24. Controale pentru afiarea grafic a semnalelor
100 Sistem de detectare i monitorizare a perturbaiilor - 6




Fig. 6.25. Structura fiierului settings.ini
6.3 - Aplicaie software pentru detectarea perturbaiilor 101

n exemplul de mai jos se prezint o seciune General care are dou chei:
Cheie_1 cu valoarea 1 i Cheie_2 cu valoarea val. Tot ce este scris dup
marcajul ; reprezint comentarii. Marcajul se ntinde pn la sfritul liniei
curente.
[General] ; numele seciuni
Cheie_1 = 1 ; prima cheie
Cheie_2 = val ; a doua cheie
6.3.7 Testarea aplicaiei software
O etap important n realizarea oricrei aplicaii hardware i/sau software o
reprezint etapa de testare.
De-a lungul timpului, diveri autori au realizat sisteme hardware pentru
generarea de perturbaii electromagnetice, instrumente folosite apoi la testarea
sistemelor de detectare i monitorizare a perturbaiilor [100], [101].
Testarea aplicaiilor software se face, n general, lund fiecare funcie n
parte i studiindu-i comportamentul la aplicarea diferitelor combinaii de parametri
de intrare. Aceasta este o metod scump, laborioas i consumatoare de timp,
motiv pentru care autorul a optat pentru utilizarea unei metode mult mai simple
pentru testarea aplicaiei software.
n cazul sistemului pentru detectarea i monitorizarea perturbaiilor descris
n paragraful 6.2, datorit particularitilor acestuia, constnd n folosirea unui
sistem de achiziie de date ce preia semnale din mediul extern, se poate realiza mult
mai simplu testarea aplicaiei software prin generarea de semnale sinusoidale cu
frecvena de 50 Hz peste care se suprapun perturbaii asemntoare cu cele din
reeaua electric. Modificnd amplitudinea perturbaiei n raport cu semnalul reelei
i poziia perturbaiei n raport cu trecerea prin zero a semnalului reelei, se poate
face o acordare fin a parametrilor sistemului de detectare a perturbaiilor, astfel
nct acesta s funcioneze n parametrii optimi.
Autorul a elaborat de-a lungul timpului diverse aplicaii software pentru
testarea sistemelor, utiliznd generarea de semnale cu ajutorul plcii de sunet a
calculatorului, programate fie n MatLab [102], [103], [104], fie n Visual C++ [105].
n continuare se va prezenta o aplicaie Visual C++ pentru generarea de
semnale utilizat la testarea sistemului de monitorizare a perturbaiilor (figura 6.26).

Fig. 6.26. Aplicaia de generare a semnalelor
102 Sistem de detectare i monitorizare a perturbaiilor - 6


Aplicaia este scris n Visual C++ i folosete placa de sunet a
calculatoarelor personale pentru generarea de semnale cu perturbaii. Se pot genera
semnale utilizndu-se descrierea matematic a acestora sau semnale pre-
nregistrate n fiiere.
Fereastra aplicaiei cuprinde un afiaj grafic cu ajutorul cruia este afiat
semnalul care va fi generat, o csu de introducere a formulei matematice ce descrie
semnalul generat i o list n care se pot introduce unul sau mai multe fiiere
coninnd forme de und ale semnalelor care se doresc a fi generate. Semnalele sunt
generate continuu la ieirea plcii de sunet, repetarea secvenei de semnal dorit
fcndu-se automat. Pentru ncrcarea unui fiier coninnd eantioanele care vor fi
generate, se apas butonul Add i se selecteaz fiierul dorit, acesta aprnd n lista
de fiiere. Referirea datelor din fiier se face prin utilizarea numelui fiierului ca i
variabil de intrare pentru interpretorul de funcii.
n cazul folosirii descrierii matematice a semnalului generat, o component a
aplicaiei numit interpretor de funcii, analizeaz funcia complex introdus de
ctre utilizator i o desparte n funcii componente pe care le genereaz independent
una de alta, iar apoi aplic operatorii specificai.
Toi operatorii matematici de baz sunt admii: adunare, scdere, nmulire,
mprire i ridicare la putere. Pe lng acetia au fost implementate i cteva
funcii matematice de baz, funcii cu ajutorul crora se pot construi forme de und
complexe. n tabelul 6.3 sunt prezentate funciile matematice acceptate de aplicaie
(menionez c n aplicaie frecvena se nmulete cu 2).

Tabelul 6.3. Funciile matematice admise de aplicaie i sintaxa acestora
Funcia matematic Sintaxa utilizat n aplicaie
sin(x) sin(frecven * t + offset)
cos(x) cos(frecven * t + offset)
tan(x) tan(frecven * t + offset)
ctn(x) ctn(frecven * t + offset)
sqrt(x) sqrt(t + offset)
pow(x,y) pow(x, y, t, offset)
rand(x) rand(valoare maxim)
sinh(x) sh(frecven * t + offset)
cosh(x) ch(frecven * t + offset)
tanh(x) th(frecven * t + offset)
ctanh(x) cth(frecven * t + offset)
asin(x) asin(frecven * t + offset)
acos(x) acos(frecven * t + offset)
atan(x) atan(frecven * t + offset)
actn(x) actn(frecven * t + offset)
sign(x) sign(t + offset)
abs(x) abs(t + offset)
log(x) log(t + offset)
ln(x) ln(t + offset)
exp(x) exp(t + offset)
t (timp) t
eantioane din fiiere nume_fiier

n cazul funciilor trigonometrice se specific ca i parametru frecvena n Hz
semnalului care va fi generat, parametrul t utilizat n argumente de forma
6.3 - Aplicaie software pentru detectarea perturbaiilor 103

frecvena * t avnd rolul de a informa interpretorul de funcii asupra faptului c se
dorete desfurarea n timp a funciei respective i nu doar generarea unei valori
punctuale a funciei, lucru posibil prin omiterea parametrului t din argumentul funciei.
n figura 6.27 este prezentat diagrama de funcionare a aplicaiei.

Accesul aplicaiei la driverele plcii de sunet este asigurat de un set de
funcii API dedicate.
n figura 6.28 este prezentat fereastra principal a aplicaiei n cazul
generrii unui semnal de tipul impuls biexponenial.

Astfel de impulsuri apar n reelele electrice n cazul trsnetului sau n cazul
conectrii surselor de alimentare n comutaie [106]. Deoarece aplicaia nu pune la
dispoziia utilizatorului o funcie dedicat pentru generarea unui astfel de semnal,
implementarea semnalului biexponenial a fost fcut pornindu-se de la formula sa
matematic [107]:

( ) ( )
bt at
a b
f t e e
a b
(6.2)
Fig. 6.28. Aplicaia de generare a semnalelor. Generarea unui semnal biexponenial
Operand 1
Operand 2
Operand N



Interpretor
de funcii



M
i
x
e
r
Funcie
global
Plac de
sunet

Afiare
Funcie 1
Funcie 2

Funcie N

Fig. 6.27. Diagrama aplicaiei de generare a semnalelor de test
104 Sistem de detectare i monitorizare a perturbaiilor - 6


Aplicaia nu poate calcula funcii exponeniale cu argument negativ, motiv
pentru care s-a utilizat urmtoarea formul echivalent:

1 1
( ) ( )

bt at
a b
f t
a b e e

(6.3)

Prin modificarea coeficienilor a i b se pot obine diverse forme ale funciei
biexponeniale (figura 6.29) [107].


Aceast perturbaie biexponenial poate fi suprapus peste un semnal
sinusoidal cu frecvena de 50 Hz, constituind un punct de plecare n analiza
sistemului de detectare a perturbaiilor (figura 6.30). Poziia impulsului poate fi
modificat cu uurin de ctre utilizator prin folosirea unei funcii de translatare
t + x, unde x reprezint numrul de milisecunde cu care este ntrziat impulsul
biexponenial.

Fig. 6.29. Impuls biexponenial pentru diferite valori ale parametrilor a i b
Fig. 6.30. Aplicaia de generare a semnalelor. Generarea unui semnal sinusoidal cu
frecvena de 50 Hz peste care se suprapune un impuls biexponenial
6.4 - Server web pentru accesarea on-line a datelor nregistrate 105

Pentru ca semnalele generate s se apropie ct mai mult de semnalele din
practic, aplicaia ofer posibilitatea suprapunerii de zgomot care poate fi generat cu
ajutorul unor funcii C++ peste semnalul generat. n figura 6.31 este prezentat un
semnal sinusoidal peste care a fost aplicat un zgomot avnd o amplitudine
modulat cu ajutorul unei funcii biexponeniale, astfel nct doar dou perioade
ale semnalului s fie perturbate, celelalte rmnnd intacte.

6.4 Server web pentru accesarea on-line a datelor
nregistrate
Sistemul de monitorizare a calitii energiei electrice poate fi amplasat n orice
locaie, fie ea i greu accesibil, motiv pentru care a fost implementat un server web
ce permite consultarea valorilor curente ai parametrilor msurai, vizualizarea
perturbaiilor aprute n sistem i descrcarea datelor pe un alt calculator n vederea
analizrii acestora, fr a implica prezena utilizatorului la site-ul monitorizat. Accesul
aplicaiei la Internet poate fi asigurat de un modem GSM acolo unde exist semnal
GSM, sau de un modem radio, acolo unde nu exist semnal GSM sau alt tip de acces
Internet.
Pagina web implementat cu ajutorul serverului web poate fi accesat de o
mare varietate de clieni web: calculatoare personale sau portabile, dispozitive PDA,
telefoane mobile etc. (figura 6.32).
Pentru realizarea serverului web s-a folosit aplicaia Xampp [108], care
permite implementarea unui server web bazat pe limbajele HTML [109] i PHP
[110]. HTML este prescurtarea de la Hyper Text Mark-up Language i este codul
care st la baza paginilor web [111]. HTML este un limbaj de programare orientat
ctre prezentarea documentelor text pe o singur pagin, utiliznd un software de
redare specializat, numit n general, browser web. Limbajul HTML pune la dispoziia
programatorului mijloacele prin care coninutul unui document poate fi adnotat cu
diverse tipuri de metadate i indicaii de redare. Indicaiile de redare pot varia de la
Fig. 6.31. Aplicaia de generare a semnalelor. Generarea unui semnal sinusoidal nsoit
de zgomot
106 Sistem de detectare i monitorizare a perturbaiilor - 6


decoraii minore ale textului, cum ar fi specificarea faptului c un anumit cuvnt
trebuie subliniat, sau c o imagine trebuie introdus n text, pn la scripturi
sofisticate, hri de imagini i formulare. Metadatele pot include informaii despre titlul
i autorul documentului, informaii structurale despre cum este mprit documentul n
diferite segmente, paragrafe, liste, titluri etc. i informaii eseniale care permit ca
documentul s poat fi legat de alte documente pentru a forma astfel hiperlink-uri.
Codul HTML poate fi generat utiliznd tehnologii de codare pe partea de
server cum ar fi: PHP, JSP sau ASP. Multe aplicaii cum ar fi sistemele de gestionare
a coninutului (CMS), ERP-uri sau forumuri web genereaz pagini HTML n funcie de
context i de aciunile utilizatorului.
Numele limbajului de programare PHP provine din limba englez i este un
acronim recursiv: Php Hypertext Preprocessor. Folosit iniial pentru a produce pagini
web dinamice, este folosit pe scar larg n dezvoltarea paginilor i aplicaiilor web.
Se folosete n principal nglobat n codul HTML, dar ncepnd de la versiunea 4.3.0
se poate folosi i n mod linie de comand, permind crearea de aplicaii
independente. Este unul din cele mai importante limbaje de programare web server-
side open-source, existnd versiuni disponibile pentru majoritatea serverelor web i
pentru toate sistemele de operare. Conform statisticilor este instalat pe 20 de
milioane de situri web i pe 1 milion de servere web. Este disponibil sub Licena PHP
iar Free Software Foundation l consider a fi un software liber.
Iniial, limbajul a fost dezvoltat de inventatorul su, Rasmus Lerdorf, ns
odat cu creterea numrului de utilizatori, dezvoltarea a fost preluat de o nou
entitate, numit The PHP Group (Grupul PHP).
Aplicaia xampp este n esen un server web open-source ce conine un server
web Apache, un server de baze de date MySql, i interpretoare de scripturi PHP i Pearl.
Utiliznd toate aceste resurse, autorul a realizat un server web care permite
accesul on-line la datele nregistrate de ctre sistemul de monitorizare a calitii
energiei electrice.
Fig. 6.32. Conectarea serverului web la Internet
6.4 - Server web pentru accesarea on-line a datelor nregistrate 107

n figura 6.33 este prezentat panoul de configurare al serverului web xampp.
Dintre toate funcionalitile puse la dispoziie de aceast aplicaie este folosit doar
aceea de server web, celelalte fiind inactivate pentru a nu ocupa resurse.


Serverul web poate rula pe acelai calculator pe care ruleaz sistemul de
monitorizare a calitii energiei electrice, sau pe un alt calculator, caz n care trebuie
asigurat accesul prin reea la datele nregistrate de sistemul de monitorizare.
Aplicaia web permite realizeaz urmtoarelor funcii:
afieaz frecvena i valoarea efectiv a tensiunii (tensiunilor)
monitorizate;
afieaz un istoric al parametrilor monitorizai i traseaz grafic
variaia acestora n timp;
afieaz grafic ultimele 10 perturbaii aprute n sistem;
permite descrcarea fiierelor nregistrate de sistemul de
monitorizare;
afieaz date despre aplicaie i despre modul de funcionare a
acesteia;
n figura 6.34 este prezentat una dintre paginile aplicaiei web care
afieaz ultimele patru perturbaii aprute n sistemul monitorizat. Este prezentat
doar poriunea afectat de perturbaii, pe axa y fiind afiate valorile tensiunii n
voli. Sub fiecare grafic este trecut data i ora la care au fost detectate perturbaiile
respective.
n Anexa 4 sunt prezentate programele elaborate n HTML i PHP care
implementeaz funcionalitatea serverului web.

Fig. 6.33. Panoul de configurare a serverului web xampp
108 Sistem de detectare i monitorizare a perturbaiilor - 6











Fig. 6.34. Fereastra Perturbaii a aplicaiei web
6.5 - Concluzii 109

6.5 Concluzii
Pe baza consideraiilor prezentate s-a realizat proiectarea i execuia unui
sistem funcional pentru monitorizarea calitii energiei electrice bazat pe analiza
semnalelor n domeniul timp, sistem ce include att partea hardware ct i partea
software. Partea hardware a sistemului a fost proiectat cu ajutorul aplicaiei CAD
Eagle (versiunea 5.4). Simularea comportamentului circuitului a fost fcut cu
ajutorul utilitarului PSpice versiunea 9.2, iar prelucrarea datelor nregistrate cu
ajutorul aplicaiei a fost fcut cu programe soft elaborate n MatLab 7.
A fost elaborat i implementat un algoritm de detectarea a perturbaiilor
utiliznd analiza semnalelor n domeniul timp, reuindu-se astfel reducerea
numrului de calcule ce trebuiesc efectuate pentru detectarea perturbaiilor.
n figura 6.35 este prezentat sistemul de monitorizare a calitii energiei
electrice conectat la reeaua electric dintr-o zon rezidenial.



Sistemul const dintr-un calculator portabil pe care ruleaz ultima versiune a
aplicaiei Power Quality Monitoring System. Semnalul din reeaua electric este preluat
cu ajutorul unui sistem de achiziie de date compus din circuitul de condiionare al
semnalului prezentat n paragraful 6.2 i placa de achiziie NI USB-6259. Sistemul de
achiziie de date este alimentat de la o surs de alimentare portabil Einhell EGS 12
care poate livra la ieire un curent de 11 A la o tensiune nominal de 12 V. Sistemul
poate funciona astfel n orice condiii, alimentarea acestuia nefiind afectat de apariia
unei eventuale ntreruperi n livrarea de energie electric.
Fig. 6.35. Sistem de monitorizare a calitii energiei electrice
110 Sistem de detectare i monitorizare a perturbaiilor - 6


Conform standardului SR EN 61000-4-30, sistemul elaborat de autor se
ncadreaz n clasa A de funcionare, att n ceea ce privete msurarea valorii tensiunii
reelei, ct i n ce privete msurarea frecvenei acesteia.
Sistemul propus, proiectat i realizat, afieaz n timp real semnalul provenit
din reeaua electric, parametrii semnalului (tensiune, frecven) i ultima
perturbaie aprut. Aplicaia afieaz, de asemenea, i o list cronologic cu
ultimele perturbaii aprute n situl monitorizat.
Pentru accesul facil la datele nregistrate de sistem, acolo unde nu este
posibil accesul rapid la site-ul de msurare, aplicaia dispune de un server web cu
ajutorul cruia pot fi vizualizai online parametrii reelei electrice, evoluia n timp a
acestora i ultimele perturbaii aprute.
Pentru testarea algoritmului de detectare a perturbaiilor a fost elaborat o
aplicaie software care genereaz perturbaii asemntoare celor prezente n
reelele electrice. Perturbaiile sunt generate prin intermediul plcii de sunet a
calculatorului, semnalul generat fiind amplificat i apoi aplicat sistemului de
monitorizare a perturbaiilor. Utiliznd aceast aplicaie pentru generarea de
semnale perturbate a fost posibil reglarea fin a parametrilor aplicaiei de
monitorizare a calitii energiei electrice, precum i mbuntirea algoritmului de
detecie a perturbaiilor.
Un prim pas n portarea sistemului de monitorizare a calitii energiei
electrice pe microcontrolere a fost deja fcut, autorul reuind implementarea
aplicaiei pe un sistem cu microcontroler MSP430 [112] dar, datorit limitrilor
sistemului utilizat, rata maxim de achiziie a semnalelor a fost de doar 10 ksps,
mult prea mic fa de cerinele unui sistem de monitorizare a calitii energiei
electrice modern din punctul de vedere al frecvenei maxime a semnalelor preluate.
Se impune astfel, mrirea ratei de achiziie prin utilizarea unui sistem cu
microcontroler mai performant sau prin utilizarea unui procesor de semnal.
Autorul dorete s abordeze pe viitor oportunitatea realizrii unui sistem de
monitorizare a valorilor efective ale tensiunii reelei utiliznd voltmetrul numeric de
valoare efectiv Fluke n modul event-logging, similar sistemului de monitorizare a
cmpului electric prezentat n [113] i [114].

7. REZULTATE EXPERIMENTALE

Sistemul de monitorizare a calitii energiei electrice prezentat n capitolul 6
a fost pus n funciune pentru prima oar n cadrul Universitii Politehnica din
Timioara, sistemul fiind instalat ulterior i n alte locaii.
Sistemul a fost instalat n urmtoarele locaii:
Facultatea de Electronic i Telecomunicaii din Timioara;
Facultatea de Mecanic din Timioara;
o reedin privat din oraul Reca, judeul Timi, locaie n care
apar frecvent perturbaii n reeaua electric soldate cu defectarea
echipamentelor conectate la aceasta;
o alt zon rezidenial rural din Germania;
un sistem de producere a energiei electrice bazat pe panouri
fotovoltaice.
n toate cele cinci locaii s-au obinut rezultate interesante, msurrile
contribuind la nelegerea fenomenelor de producere a perturbaiilor, identificarea
surselor perturbatoare respectiv, motivului defectrii unor echipamente conectate la
reelele de alimentare respective.
S-au monitorizat doar reele monofazate, configuraia sistemului fiind cea
din figura 6.8, achiziia fcndu-se pe trei canale. Rata de achiziie a semnalelor a
fost de 250 ksps pentru marea majoritate a msurrilor, cu excepia unei singure
situaii, n care s-a utilizat o rat de achiziie de 1MSPS pentru a testa la maxim
performanele sistemului. Acolo unde nu se specific rata de eantionare se
presupune ca fiind de 250 ksps.
Calculatorul pe care a rulat aplicaia a fost un notebook Dell Inspiron 1525
echipat cu un procesor Intel Core 2 Duo T5550 la 1,83GHz, cu 4 GB de memorie
RAM. n cazul utilizrii aplicaiei la o rat de eantionare de 250 ksps pe canal, la
achiziia a trei canale (echivalentul eantionrii unui singur canal cu o rat de
750 ksps), gradul mediu de ocupare al procesorului a fost de 55 %, iar n cazul
eantionrii unui singur canal cu o rat de 1 Msps, gradul de ocupare al procesorului
a fost cuprins ntre 99 % i 100 %, sistemul funcionnd n parametri proiectai.
Pentru a testa funcionarea sistemului, au fost conectai la reeaua electric
diveri consumatori, cunoscui fiind ca surse de perturbaii, rezultatele fiind
prezentate n cele ce urmeaz.
n figura 7.1 se prezint un semnal perturbat cu un impuls tranzitoriu,
impuls generat de conectarea unui laptop la reeaua electric. Astfel de impulsuri
sunt frecvente n reelele electrice rezideniale i metropolitane, amplitudinile
acestor impulsuri fiind, n cazul msurtorilor efectuate, n limitele prevzute de
standarde.

112 Rezultate experimentale - 7


0 5 10 15 20 25 30 35 40 45
-400
-300
-200
-100
0
100
200
300
400
500
timp [ms]
a
m
p
l
i
t
u
d
i
n
e

[
V
]


Fig. 7.1. Perturbaie de tip impuls tranzitoriu

n figura 7.2 este prezentat un semnal perturbat cu o serie de impulsuri
generate de ctre un motor cu perii. Un detaliu al acestei perturbaii este prezentat
n figura 7.2 b).
Rata de eantionare folosit a fost de 1 Msps, pentru a avea o band de
frecvene ct mai mare.

20 40 60 80 100 120
-200
0
200
400
600
800
timp [ms]
a
m
p
l
i
t
u
d
i
n
e

[
V
]
54.85 54.9 54.95 55 55.05 55.1
-300
-250
-200
-150
-100
-50
0
50
100
150
200
timp [ms]
a
m
p
l
it
u
d
i
n
e

[
V
]

a) b)

Fig. 7.2. Perturbaie de tip impuls tranzitoriu. a) semnal perturbat, b) detaliu


n figura 7.3 se prezint o alt perturbaie de tip impuls tranzitoriu generat
la conectarea la reea a unei surse de calculator de 400 W. Se poate observa
prezena unor perturbaii mai mici ca amplitudine dect perturbaia iniial.

7 - Rezultate experimentale 113

18 19 20 21 22 23 24
-300
-200
-100
0
100
200
300
400
500
600
700
timp [ms]
a
m
p
l
i
t
u
d
i
n
e

[
V
]

Fig. 7.3. Perturbaie de tip impuls tranzitoriu

n site-ul de msurare de la Reca au fost identificate perturbaiile
prezentate n figura 7.4, perturbaii datorate intrrii n funcie a motorului unui
frigider conectat la reea pe aceeai faz cu sistemul de monitorizare.
100 110 120 130 140 150 160 170 180 190 200
-500
0
500
1000
1500
2000
timp [ms]
a
m
p
li
t
u
d
in
e

[
V
]

131.8 131.9 132 132.1 132.2 132.3 132.4 132.5 132.6 132.7 132.8
0
500
1000
1500
2000
timp [ms]
a
m
p
li
t
u
d
in
e

[
V
]

a) b)
Fig. 7.4. Perturbaie de tip impuls tranzitoriu. a) semnal perturbat, b) detaliu

Originea perturbaiei din figura 7.5 nu este cunoscut, ea fiind surprins n
timpul monitorizrii.
120 125 130 135 140 145 150 155
-400
-200
0
200
400
600
800
timp [ms]
a
m
p
li
t
u
d
i
n
e

[
V
]
138.7 138.8 138.9 139 139.1 139.2 139.3 139.4 139.5 139.6
-400
-200
0
200
400
600
timp [ms]
a
m
p
li
t
u
d
i
n
e

[
V
]

a) b)
Fig. 7.5. Perturbaie de tip impuls tranzitoriu. a) semnal perturbat, b) detaliu
114 Rezultate experimentale - 7


n figura 7.6 sunt prezentate dou detalii ale unor perturbaii nregistrate n
site-ul de msurare de la Reca.

319.5 320 320.5 321 321.5
150
200
250
300
350
400
450
500
550
600
650
timp [ms]
a
m
p
li
t
u
d
i
n
e

[
V
]
69.65 69.7 69.75 69.8 69.85 69.9 69.95 70
-600
-500
-400
-300
-200
-100
0
100
200
timp [ms]
a
m
p
li
t
u
d
i
n
e

[
V
]

Fig. 7.6. Perturbaii de tip impuls

Sistemul de monitorizare a fost amplasat i n cadrul Facultii de Mecanic,
deoarece alimentarea cu energie electric a mainilor unelte este realizat din alt
surs de energie dect cea a Facultii de Electronic. S-a dorit monitorizarea
calitii energiei electrice de aici i compararea acesteia cu cea din Facultatea de
Electronic i Telecomunicaii.
Au fost detectate cteva perturbaii pe parcursul celor dou zile ct a fost
monitorizat calitatea energiei electrice la Facultatea de Mecanic, cele mai multe
dintre ele fiind perturbaii de tipul cderilor de tensiune, generate de echipamentele
de putere conectate la reea. n figura 7.7 sunt prezentate dou perturbaii produse
de o main de testare a rezistenei la ndoire i rupere a barelor de metal.

50 100 150 200 250 300 350 400 450 500 550
-300
-200
-100
0
100
200
300
timp [ms]
a
m
p
li
t
u
d
i
n
e

[
V
]
100 200 300 400 500 600 700
-300
-200
-100
0
100
200
300
400
timp [ms]
a
m
p
li
t
u
d
i
n
e

[
V
]

a) b)
Fig. 7.7. Perturbaii a) cdere de tensiune, b) cdere de tensiune i impuls tranzitoriu

Aceast main este echipat cu o pomp hidraulic acionat de un motor
electric asincron trifazat cu puterea de 18 kVA.
Pe durata pornirii instalaiei, timp n care este pornit pompa hidraulic i
alte echipamente mecanice, au fost nregistrate cderi de tensiune i perturbaii de
tip impuls singular, evoluia n timp a valorii efective a semnalului reelei fiind
prezentat n figura 7.8. n acest caz s-a achiziionat tensiunea reelei de pe o
singur faz.
7 - Rezultate experimentale 115

0 10 20 30 40 50 60 70 80 90 100
220
240
260
280
300
320
340
360
380
400
420

Fig. 7.8. Variaia valorii maxime a tensiunii reelei la pornirea unui motor asincron de 18 kVA

n continuare se vor prezenta, spre comparaie, formele de und ale
tensiunii din site-urile msurate i o exemplificare a posibilitilor de prelucrare
ulterioar, de exemplu spectrul de frecvene.
n figura 7.9 este prezentat o perioad a tensiunii reelei electrice a Facultii
de Electronic i Telecomunicaii din Timioara mpreun cu spectrul acesteia.

30 32 34 36 38 40 42 44 46 48 50
-300
-200
-100
0
100
200
300
timp [ms]
A
m
p
l
i
t
u
d
i
n
a

[
V
]
0 50 100 150 200 250 300 350 400 450 500
0
50
100
150
200
250
300
350
Frecventa (Hz)
A
m
p
li
t
u
d
i
n
e
a

[
V
]

Fig. 7.9. Semnalul din reeaua electric a Facultii de Electronic i Telecomunicaii i spectrul
acestuia

Se observ forma distorsionat a semnalului sinusoidal, prezena unor
subarmonici i respectiv componenta armonic de ordinul 5.
n figura 7.10 este prezentat semnalul preluat din reeaua electric a
Facultii de Mecanic i spectrul acestuia care conine componentele armonice de
ordinul 5,7 i 9.

116 Rezultate experimentale - 7


30 32 34 36 38 40 42 44 46 48 50
-300
-200
-100
0
100
200
300
timp [ms]
A
m
p
li
t
u
d
i
n
a

[
V
]
0 50 100 150 200 250 300 350 400 450 500
0
50
100
150
200
250
300
350
Frecventa (Hz)
A
m
p
l
it
u
d
in
e
a

[
V
]

Fig. 7.10. Semnalul din reeaua electric a Facultii de Mecanic i spectrul acestuia

n figura 7.11 este prezentat semnalul preluat din reeaua electric a unei
zone rezideniale puin ncrcate. Se poate aprecia vizual forma semnalului, acesta
fiind cel mai apropiat de forma sinusoidal dintre toate cele trei semnale comparate.
Analiznd spectrul semnalului se observ valori foarte mici ale armonicelor de ordin
superior (practic doar componenta armonic de ordinul 5).
60 62 64 66 68 70 72 74 76 78 80
-300
-200
-100
0
100
200
300
timp [ms]
A
m
p
li
t
u
d
i
n
a

[
V
]
0 50 100 150 200 250 300 350 400 450 500
0
50
100
150
200
250
300
350
Frecventa (Hz)
A
m
p
l
it
u
d
in
e
a

[
V
]

Fig. 7.11. Semnalul reelei electrice rurale din Germania i spectrul acestuia

Perturbaii de tipul cderi de tensiune au fost nregistrate i n site-ul de
msurare din zona rezidenial n timpul unei furtuni (figura 7.12).
50 100 150 200 250 300 350 400 450 500 550
-300
-200
-100
0
100
200
300
timp [ms]
a
m
p
l
it
u
d
in
e

[
V
]
5 10 15 20 25 30
325
330
335
340
345
350
355
timp [s]
A
m
p
lit
u
d
i
n
e

[
V
]

a) b)
Fig. 7.12. Cdere de tensiune a) tensiune, b) evoluia n timp a valorii maxime a tensiunii
reelei n timpul golului de tensiune
7 - Rezultate experimentale 117

n figura 7.13 se prezint dou perturbaii de tipul impuls tranzitoriu,
suprapuse peste tensiunea reelei, nregistrate n site-ul de msurare de la Reca.
Amplitudinea relativ mic a perturbaiilor confirm sensibilitatea i performanele
sistemului realizat.
2 4 6 8 10 12 14 16 18 20
-300
-200
-100
0
100
200
300
timp [ms]
a
m
p
l
i
t
u
d
i
n
e

[
V
]

Fig. 7.13. Perturbaii de scurt durat

De asemenea, sistemul de monitorizare a perturbaiilor a fost instalat n
cadrul unui sistem fotovoltaic de producere a energiei electrice (figura 7.14), pentru
determinarea comportamentul acestuia n cazul n care energia regenerabil captat
de sistem devine indisponibil, moment n care se trece automat la alimentarea
consumatorilor cu energie electric preluat din sistemul energetic naional.



Fig. 7.14 Conectarea sistemului de monitorizare a calitii energiei electrice la un sistem
fotovoltaic
118 Rezultate experimentale - 7


Sistemul fotovoltaic capteaz energia soarelui (energie regenerabil) prin
intermediul panoului fotovoltaic i o convertete, cu ajutorul unui invertor, n
energie electric cu tensiunea de 230 V i frecvena de 50 Hz, alimentnd o serie de
consumatori din reeaua electric local a unui laborator. Energia n surplus este
stocat ntr-un acumulator de 24 V, urmnd a fi utilizat noaptea, sau atunci cnd
energia captat de panoul fotovoltaic este redus. Ct timp panoul solar genereaz
suficient energie sau ct timp exist suficient energie n baterie, invertorul preia
energia de la acestea i o convertete n tensiune electric cu valoarea efectiv de
230 V i frecvena de 50 Hz. Noaptea, dup ce energia stocat n acumulator se
epuizeaz, invertorul preia n mod automat energia electric din sistemul naional i
o livreaz consumatorilor. Atunci cnd energia provenit de la soare atinge un prag
prestabilit, invertorul folosete din nou energia soarelui pentru producerea tensiunii
de ieire. n momentul comutrii tensiunii de ieire ntre reeaua naional i sursa
de energie regenerabil, n sistemul de alimentare cu energie electric al
laboratorului pot s apar perturbaii care s deranjeze echipamentele conectate la
aceast reea. Astfel, se impune monitorizarea reelei electrice a laboratorului
pentru a detecta eventualele perturbaii ce pot s apar.
Sistemul de monitorizare a calitii energiei electrice propus de autor n
cadrul tezei de doctorat a fost conectat att la reeaua electric a laboratorului ct i
la reeaua electric naional, utiliznd configuraia de intrare prezentat n figura
6.9. Sistemul a fost conectat la ambele reele electrice pentru a urmri dac
tensiunea generat de invertor este sincron cu tensiunea reelei naionale i pentru
a se putea monitoriza perturbaiile introduse n ambele reele la comutarea de pe
sursa de energie regenerabil pe reeaua electric naional.
n urma monitorizrii celor dou sisteme electrice s-au depistat probleme la
comutarea de pe sursa de energie regenerabil pe sistemul naional, cauzate de lipsa
sincronizrii tensiunii generate de invertor cu tensiunea reelei naionale i de arcul
electric ce se produce ntre lamelele releului care asigur comutarea ntre reele.
n figura 7.15 este prezentat momentul n care are loc comutarea alimentrii
cu tensiune de la sistemul energetic naional la generatorul de tensiune bazat pe
energia regenerabil, moment n care, datorit elementelor de comutare, apare o
perturbaie de tip impuls tranzitoriu de scurt durat cu o valoare de 857 V.
200 250 300 350 400
-800
-600
-400
-200
0
200
400
timp [ms]
a
m
p
l
i
t
u
d
i
n
e

[
V
]


Fig. 7.15 Trecerea alimentrii consumatorilor de la sistemul energetic naional la sursa de
energie regenerabil
7 - Rezultate experimentale 119

n figura 7.16 se prezint comparativ semnalul reelei energetice naionale i
semnalul generat la ieirea invertorului alimentat din sursa de energie regenerabil.
80 85 90 95 100 105 110 115 120 125 130
-300
-200
-100
0
100
200
300
timp [ms]
a
m
p
l
i
t
u
d
i
n
e

[
V
]

Fig. 7.16 Semnalul reelei energetice naionale (punctat) i semnalul generat de invertor
(linie continu)

Dei semnalul generat de invertor este nsoit de zgomot, componentele
armonice se ncadreaz n limitele impuse de standard, ele fiind mai mici de 8 % din
valoarea tensiunii nominale (figura 7.17). Analiznd figura 7.17 b) se observ
prezena n spectrul semnalului generat a unor componente spectrale cu frecvene
ridicate, spectrul semnalului ntinzndu-se peste 50 kHz, putnd afecta buna
funcionare a unor echipamente mai sensibile conectate la acesta.

0 50 100 150 200 250 300 350 400 450 500
0
50
100
150
200
250
300
350
Frecventa (Hz)
A
m
p
li
t
u
d
i
n
e
a

[
V
]

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x 10
4
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
Frecventa (Hz)
A
m
p
li
t
u
d
i
n
e
a

[
V
]

a) b)

Fig. 7.17 Spectrul semnalului generat de invertor
a) spectrul semnalului la frecvene joase
b) spectrul semnalului la frecvene ridicate (detaliu)


8. CONCLUZII I CONTRIBUII
Pe parcursul ultimelor patru decenii, n domeniul monitorizrii calitii
energiei electrice s-a desfurat o activitate de cercetare intens concretizat prin
elaborarea unui numr foarte mare de articole i publicaii, precum i prin apariia
unor noi standarde n domeniu sau mbuntirea celor existente. La baza detectrii
perturbaiilor din reelele electrice stau metode matematice complexe care utilizeaz
transformatele Fourier sau Wavelet, reelele neuronale, logica fuzzy sau analiza n
domeniul timp. Preocuparea continu a multor cercettori din ntreaga lume n
elaborarea de noi metode de detectare a perturbaiilor din reelele electrice pe de o
parte i construcia de echipamente de monitorizare pe de alt parte, confirm
actualitatea temei abordate de autor.
Autorul a ales analiza n domeniul timp a tensiunii reelei, deoarece aceast
metod de analiz necesit un numr mult mai mic de calcule pentru detectarea
perturbaiilor, putndu-se realiza prelucrarea unui numr mai mare de eantioane
ale semnalului n cazul utilizrii aceluiai sistem de calcul comparativ cu celelalte
metode i prin aceasta, extinderea benzii de frecvene a aplicaiei.
Printre preocuprile actuale n ceea ce privete monitorizarea calitii
energiei electrice se numr i creterea ratei de eantionare a tensiunii reelei, fapt
care conduce la creterea spectrului de frecvene a semnalului achiziionat,
putndu-se evidenia mai bine desfurarea n timp a perturbaiilor de foarte scurt
durat.
Autorul, n urma cercetrilor i experimentelor efectuate, i-a adus
contribuia la dezvoltarea acestui domeniu dup cum urmeaz:
A realizat un studiu bibliografic amplu asupra stadiului actual al
monitorizrii calitii energiei electrice, evideniind actualitatea
temei, studiu bazat pe analiza a peste o sut de titluri bibliografice
incluznd articole, cri, standarde i site-uri web.
Pe baza cercetrilor i experimentelor efectuate, autorul a elaborat
19 lucrri tiinifice (coautor la 3 cri i autor sau coautor la 16
lucrri tiinifice, dintre care una cotat ISI).
Pentru compresia gamei dinamice a tensiunii monitorizate, s-a
analizat oportunitatea folosirii unui transformator funcional ca i
circuit de condiionare a semnalelor. Autorul a simulat circuitul
utiliznd utilitarul PSpice i a identificat principalele probleme pe
care le prezint acesta - neliniariti i comportarea la variaiile de
temperatur - elabornd n urma studiilor efectuate - o soluie
practic pentru rezolvarea acestor probleme. Soluia const n
utilizarea unui circuit de calibrare a funciei de transfer a
transformatorului funcional. Calibrarea circuitului se realizeaz prin
aplicarea unui semnal triunghiular la intrare, analizndu-se
rspunsul circuitului la acest semnal i calculndu-se apoi o funcie
de corecie a caracteristicii transformatorului funcional. Autorul a
studiat (cu ajutorul simulrilor realizate n MatLab), comportamentul
acestui tip de circuit, cu i fr circuitul de calibrare i a artat
8 - Concluzii i contribuii 121

utilitatea folosirii circuitului de calibrare propus, evideniind faptul c
i acest circuit simplu, cunoscut nc de la apariia circuitelor
integrate analogice, poate fi folosit ca i circuit de condiionare a
semnalelor.
A studiat o metod de detecie a perturbaiilor prezentat n
literatura de specialitate bazat pe media nul pe o perioad a unui
semnal sinusoidal i a mbuntit-o prin adugarea unui sistem de
detecie a perioadelor semnalului reelei, mrind astfel probabilitatea
detectrii perturbaiilor. Autorul a inclus n sistem o memorie
circular cu scopul de a memora temporar eantioanele semnalului
n vederea nregistrrii ulterioare a acestora, atunci cnd sunt
detectate perturbaii. Prin utilizarea memoriei circulare, autorul a
eliminat necesitatea folosirii unui al doilea canal de achiziie a
semnalelor i a circuitului de ntrziere n vederea nregistrrii
semnalului perturbat.
innd seama de gama dinamic mare a perturbaiilor din reelele
de alimentare, dar fr afectarea sensibilitii din jurul tensiunii
nominale, a elaborat un sistem original de compresie a semnalelor,
bazat pe utilizarea a trei divizoare de tensiune rezistive conectate la
trei intrri ale unui convertor analog numeric (divizor secvenial de
tensiune). Fiecare divizor de tensiune are un alt raport de divizare,
iar prin compunerea software a caracteristicilor de transfer ale celor
trei divizoare de tensiune se obine o caracteristic de transfer
similar cu cea a transformatorului funcional. A rezultat astfel un
circuit de compresie simplu i eficient, care poate fi folosit ca i
circuit de condiionare a semnalelor n sistemele de monitorizare a
calitii energiei electrice ntr-o gam dinamic mare.
A elaborat un algoritm software cu ajutorul cruia semnalele
preluate de la divizorul secvenial de tensiune sunt prelucrate i
procesate exploatnd la maxim dinamica semnalelor prezente n
reeaua electric. Pe baza acestui sistem, autorul propune un
algoritm extrem de simplu de detectare a perturbaiilor cu
amplitudini de peste 500 V, bazat pe intrarea n limitare a canalului
cu cel mai mic raport de divizare. Prin compararea semnalelor
provenite de la cele trei intrri ale plcii de achiziie se determin
simplu prezena unei perturbaii cu amplitudine mai mare de 500 V.
Deoarece se folosesc doar dou funcii de test if pentru detectarea
unei perturbaii, metoda este una dintre cele mai simple i rapide
metode de detectare a perturbaiilor din reelele electrice i poate fi
folosit acolo unde se dorete detectarea perturbaiilor cu
amplitudini mari (peste 500 V). Aceast metod se preteaz la a fi
implementat n cadrul sistemelor de monitorizare a calitii energiei
electrice cu microcontroler, conducnd (prin reducerea numrului de
calcule efectuate pentru detecia unei perturbaii), la creterea ratei
de eantionare, lucru benefic analizei ulterioare a formei perturbaiei
nregistrate de acestea ntr-o gam mai larg de frecvene.
A realizat un sistem de decompresie software a semnalelor provenite
de la divizorul secvenial de tensiune, bazat pe aplicarea unei funcii
matematice corespunztoare asupra semnalului comprimat,
simplificnd astfel partea electric a circuitului de condiionare a
semnalelor. Pe baza acestui sistem, prin prelucrare numeric, pot fi
122 Concluzii i contribuii - 8


analizate att detalii de interes fine, cum ar fi variaiile din jurul
valorii nominale ale tensiunii reelei, ct i perturbaiile de
amplitudine ridicat de ordinul kilovolilor.
Autorul a demonstrat, prin calcule matematice, creterea rezoluiei
sistemului de achiziie de date prin folosirea circuitului de
condiionare a semnalelor cu divizor secvenial de tensiune propus
de acesta. Dei sistemul folosete trei canale de intrare ale unui
sistem de achiziie de date pe 16 bii, din punct de vedere al
rezoluiei, acesta este echivalent cu folosirea unui sistem de achiziie
de date cu un singur canal pe 21 de bii (utiliznd un convertor
analog - numeric cu o caracteristic neliniar, similar unei
cuantizri neuniforme). Se obine astfel o cretere a rezoluiei
sistemului de monitorizare a calitii energiei electrice.
Pe baza cercetrilor efectuate, autorul a realizat practic un sistem
original i autonom de monitorizare a calitii energiei electrice
(funcionnd n Clasa A, conform standardului SR EN 61000-4-30),
sistem care include att o parte hardware, ct i dezvoltarea de
programe software care s asigure desfurarea ntregii aplicaii. Cu
un astfel de sistem se poate asigura o monitorizare continu de circa
zece zile.
De asemenea, s-a realizat un circuit de condiionare a semnalelor
modular, care poate fi reconfigurat cu uurin n funcie de
necesitile utilizatorului. Astfel, sistemul poate fi utilizat fie la
monitorizarea unei reele electrice monofazate, a unei reele
trifazate (stea sau triunghi), sau a dou sau mai multe reele
monofazate simultan, soluie ce ar putea folosit la supravegherea
sistemelor neconvenionale de producere de energie electric care
sunt cuplate la reeaua de alimentare. Sistemul de condiionare
asigur i izolarea semnalelor preluate din reeaua electric de restul
sistemului de achiziie de date, asigurnd astfel, reducerea
cuplajelor parazite, creterea nivelului de securitate i reducerea
riscului de electrocutare.
A elaborat o metod nou de detecie a perturbaiilor din reelele
electrice bazat pe analiza semnalelor n domeniul timp. Autorul
calculeaz principalii parametri ai semnalului reelei electrice
(tensiune efectiv, tensiune maxim, factor de vrf, frecven), pe o
semiperioad a semnalului reelei i compar aceste valori cu media
valorilor pe 10 perioade ale semnalului. Dac exist diferene ntre
valorile instantanee i mediile acestora, mai mari dect o valoare de
referin (stabilit la calibrarea sistemului), atunci se semnaleaz
prezena unei perturbaii n sistem. Pentru detecia semiperioadelor
semnalului reelei, autorul folosete, n locul metodei de detecie a
trecerilor prin zero, metoda deteciei minimelor semnalului redresat
al reelei, metod care reduce mult numrul de calcule.
Autorul a realizat o aplicaie software pentru monitorizarea calitii
energiei electrice, utiliznd sistemul original de detectare a
perturbaiilor prezentat n teza de doctorat. Aplicaia a fost elaborat
n Visual C++ utiliznd sistemul de clase MFC de la Microsoft.
Aplicaia poate fi reconfigurat de ctre utilizator pe baza unui fiier
de configurare. Astfel se pot modifica parametri precum: rata de
eantionare, numrul de canale, modul de conectare al canalelor de
8 - Concluzii i contribuii 123

intrare, tipul reelei electrice conectat la intrare (monofazat sau
trifazat). Aplicaia permite afiarea n timp real a semnalului
reelei, a perturbaiei detectate i a parametrilor semnalului reelei:
tensiune efectiv, tensiune maxim i frecven, afind de
asemenea i un istoric al perturbaiilor aprute n reeaua electric.
n vederea studierii ulterioare, perturbaiile detectate sunt
nregistrate n fiiere separate, marcndu-se totodat i momentul
apariiei fiecrei perturbaii. De asemenea, sistemul de monitorizare
nregistreaz valorile medii pe o semiperioad ale urmtorilor
parametri: tensiune efectiv, tensiune maxim, durat
semiperioad, pentru a putea fi analizate ulterior. nregistrarea
acestor parametri se face continuu, fr a fi perturbat de apariia
unei eventuale perturbaii.
Prin elaborarea de programe software adecvate pentru a avea o
interfa ct mai prietenoas cu operatorul, a realizat controale
grafice pentru afiarea semnalului de intrare, a perturbaiilor, i un
control grafic pentru vizualizarea strii memoriei circulare, precum i
funcii de configurare automat a aplicaiei.
n vederea verificrii sistemului, a elaborat o aplicaie Visual C++
care permite testarea funcionalitii sistemului propus, aplicaie
care asigur generarea de semnale cu frecvena de 50 Hz peste care
se pot suprapune diverse tipuri de perturbaii. Aplicaia poate rula
pe orice calculator personal pe care este instalat sistemul de operare
Microsoft Windows i care este dotat cu o plac de sunet. Datorit
interpretorului original de funcii matematice elaborat de autor,
aplicaia poate genera inclusiv semnale matematice complexe,
pornind de la funcii matematice simple i/sau de la semnale
prenregistrate n fiiere.
De asemenea, a realizat un server web care permite accesul de la
distan la parametrii nregistrai de aplicaie, vizualizarea evoluiei
lor n timp i vizualizarea ultimelor perturbaii aprute. Pentru
implementarea serverului web, autorul a folosit utilitarul xampp, pe
care l-a configurat astfel nct s corespund scopului urmrit.
Autorul a elaborat programe n limbajele HTML i PHP pentru
afiarea n timp real a datelor preluate de la aplicaia de
monitorizare a calitii energiei electrice, precum i pentru afiarea
grafic a perturbaiilor detectate n reeaua electric. Prin
intermediul serverului web pot fi descrcate de la distan fiierele
cu perturbaii i valorile parametrilor reelei electrice, mrind astfel
autonomia sistemului de monitorizare, fr a fi nevoie de prezena
unui operator uman n site-ul monitorizat.
Cu sistemul de monitorizare realizat, a efectuat experimente de
monitorizare n cinci reele electrice diferite, din dou ri europene,
n perioade de timp cuprinse ntre 15 martie 2010 - 31 august 2010
i a analizat rezultatele obinute; astfel s-a constatat eficiena
sistemului i corectitudinea soluiilor propuse de autor.
Folosind sistemul de monitorizare a calitii energiei electrice
prezentat n teza de doctorat, autorul a reuit s surprind o serie de
perturbaii din reeaua electric: impulsuri tranzitorii cu amplitudini de
circa 2 kV, cderi de tensiune, supratensiuni, goluri de tensiune.
124 Concluzii i contribuii - 8


Referitor la viteza de lucru a sistemului, s-a reuit achiziia tensiunii
reelei electrice cu o rat de un milion de eantioane pe secund i
prelucrarea acestora n timp real, lucru extrem de important pentru
nregistrarea fidel a formei de und a perturbaiilor de scurt
durat i deci, asigurarea unei benzi de frecvene a achiziiei de
ordinul sutelor de kiloheri, suficient pentru majoritatea aplicaiilor
de monitorizare.
Ca i concluzii, se poate afirma c sistemul propus i realizat de autor poate
fi mbuntit prin optimizarea algoritmilor de detectare a perturbaiilor i prin
mrirea ratei de achiziie a semnalului. Autorul preconizeaz c n urma acestor
optimizri (i prin nlocuirea plcii de achiziie utilizate cu alta cu o rat de
eantionare mai mare), aplicaia de monitorizare a calitii energiei electrice s
poat procesa n timp real semnale achiziionate cu o rat de pn la 10 Msps.
Pe viitor, autorul i propune s studieze implicaiile asupra rezoluiei
semnalului de ieire , n urma folosirii mai multor canale de achiziie n circuitul de
compresie cu divizor secvenial de tensiune.
Autorul va implementa pe viitor aplicaia de monitorizare a energiei electrice
pe sisteme de dezvoltare dotate cu procesoare digitale de semnal sisteme dedicate
(Embedded Systems) - obinndu-se astfel miniaturizarea sistemului de monitorizare,
dar i un pre de cost mai redus. Deoarece unele fenomene pot fi surprinse mult mai
bine prin analiza curentului absorbit de consumatori [115], [116], [117], autorul i
propune s dezvolte sistemul de monitorizare cu circuite de condiionare care s
accepte la intrare i cureni. Se poate realiza astfel un sistem de monitorizare care s
permit aplicarea la intrare att a unor tensiuni, ct i a unor cureni, lrgindu-se
astfel aria de aplicabilitate i oportunitile de utilizare ale acestuia.




BIBILIOGRAFIE
[1] F. D. Martzloff,T. M. Gruzs, "Monitoring Power Quality", in Powertechnics
Magazine, 1990.
[2] M. Roca, "Supravegherea centralizat a calitii energiei electrice", in A
XVI-a conferin confort, eficien, conservarea energiei i protecia
mediului Bucureti.
[3] R. P. K. Lee, L. L. Lai,N. Tse, "A Web-based multi-channel power quality
monitoring system for a large network", in Fifth International Conference on
Power System Management and Control. vol. 488, pp. 112 - 117.
[4] B. E. Kushare, A. A. Ghatol,S. Kala, "Development of web based power
quality monitoring system for handling user custom power quality query and
auto power quality monitoring report notification via email", in IET-UK
International Conference on Information and Communication Technology in
Electrical Sciences (ICTES 2007) Chennai, Tamil Nadu, India, pp. 1-7.
[5] J. Nanjing, " Power Quality Monitoring System over the Internet", in 2009
First International Conference on Information Science and Engineering.
[6] S. Nikolovski, Z. Klaic, Z. Kraus,G. Slipac, "Online Power Quality
Measurements and Voltage Sags Analysis", in 43rd International
Engineering Conference (UPEC 2008) Padova, Italy, pp. 1-5.
[7] K. M. Chan, Power Quality - REFERENCE GUIDE, 6th edition. Ontario,
Canada: In-House Energy Efficiency, 1996.
[8] S. Santoso, H. W. Beaty, R. C. Dugan,M. F. McGranaghan, Electrical Power
Systems Quality; 2 edition McGraw-Hill Professional, 2002.
[9] H. Zhijian, C. Chengxue,C. Ruifan, "Harmonic Real Time Estimation by
Artificial Neural Network Based on Network and GPS Technology", in The
7th International Power Engineering Conference. vol. 2: IPEC 2005, pp.
1182 - 1187
[10] B. Yunus,H. Li, "Analysis of Power Quality Waveform for Data Transmission
Efficiency over IEC 61850 Communication Standard", in IEEE International
Power and Energy Conference, Putra Jaya pp. 161 - 166.
[11] I. Dobson, B. A. Carreras, V. E. Lynch, O. Ridge,D. E. Newman, "Complex
Systems Analysis of Series of Blackouts: Cascading Failure, Criticality, and
Self-organization", in Bulk Power System Dynamics and Control - VI Cortina
dAmpezzo, Italy, 2004.
[12] J. D. Aspnes, B. W. Evans,R. P. Merrit, "Rural Alaska Electric Power Quality",
IEEE Transactions PAS-104, March 1995.
[13] L. Shusen, C. Xiaoyun, Z. Zhengjun,L. Liangjun, "The study 500 kV system
harmonics in Central China Power Network", in Proceedings of the 8th
International Conference on Harmonics And Quality of Power, Athens,
Greece, pp. 814 - 819.
[14] R. Belmans, H. D. Keulenaer, J. Manson,E. Schellekens, "Towards improved
electrical installations in European homes", 2004.
[15] M. F. Akram,S. M. Bajwa, "A Sample Power Quality Survey for Emerging
Competitive Electricity Market in Pakistan", in IEEE International Multi Topic
126 Bibliografie


Conference, 2001. IEEE INMIC 2001. Technology for the 21st Century.,
2001, pp. 38 - 44
[16] H. M. S. C. Herath,S. McHardy, " Power Quality Trends in EnergyAustralia
Distribution Network ", in 13th International Conference on Harmonics and
Quality of Power, 2008. ICHQP 2008., Wollongong, NSW, 2008, pp. 1 - 6.
[17] D. M. Divan, W. E. Brumsickle, G. A. Luckjiff, J. W. Freeborg,R. L. Hayes,
"Realizing a Nation-wide Power Quality and Reliability Monitoring System",
in Conference Record of the Industry Applications Conference, 2003. 38th
IAS Annual Meeting., pp. 1063 - 1067.
[18] ***, "EMC Directive 89/336/EEC ".
[19] "Ordin privind aprobarea listei cuprinzand standardele romane care adopta
standardele europene armonizate din domeniul compatibilitatii
electromagnetice": Ministerul Economiei si Ministerul Comunicatiilor si
Comertului Tehnologiei Informatiei, 2004.
[20] F. Smadu, "Sistem pentru analiza calitii energiei electrice n sistemele de
electroalimentare trifazate", in Conferina naional de instrumentaie
virtual, ediia a II-a Bucureti, pp. 29 - 32.
[21] C. Stnescu, F. Vatr, A. Poida,P. Postolache, "Power Quality in Romanian
Electricity Market", in 9th International Conference. Electrical Power Qualitz
and Utilisation Barcelona.
[22] A. Hermina, G. Carmen, N. Golovanov,E. Luminia, "Probleme actuale
privind monitorizarea calitii energiei electrice n Romnia".
[23] H. Albert, N. Golovanov, C. Golovanov, V. Rcanu,L. Elefterescu,
"Monitorizarea calitii energiei electrice".
[24] A. Ignea, M. Lascu, C. Dughir,C. Iftode, Aspecte ale compatibilitii
electromagnetice n medicin. Timisoara: Waldpress, 2005.
[25] J. F. G. Cobbe,J. F. G. Cobbe, "Classification Methodologies for Power
Quality", February 2006 2006.
[26] M. Azam, F. Tu, K. Pattipati,R. Karanam, "A Dependency Model Based
Approach for Identifying and Evaluating Power Quality Problems", IEEE
Transactions on Power Delivery, vol. 19, July 2004.
[27] G. Bucci, E. Fiorucci,C. Landi, "Digital Measurement Station for Power
Quality Analisys in Distributed Environments", IEEE Transactions on
Instrumentation and Measurement vol. 52, February 2003.
[28] M. H. J. Bollen, E. Styvaktakis,I. Y.-H. Gu, "Categorization and Analysis of
Power System Transients", IEEE Transactions on Power Delivery, vol. 20,
July 2005.
[29] J.-J. G. de-la-Rosa,A. M. Munoz, "Categorization of Power Quality Transients
using Higher-Order Statistics and Competitive Layers-based Neural
Networks", in CIMSA 2008 - IEEE International Conference on
Computational Intelligence for Measurement Systems and Applications
Istanbul, Turkey.
[30] M. H. H. M. Erhan Balci, "Effects of Source Voltage Harmonics on Power
Factor Compensation in AC Chopper Circuits", Electrical Power Quality and
Utilisation, Journal, vol. XIV, p. 7, 2008.
[31] C. Dinu,I. I. Odor, "Aspecte privind asigurarea trasabilitii la i a
instrumentaiei utilizat pentru msurarea parametrilor de calitate a
tensiunii n reelele publice de distribuie a energiei electrice", Metrologie,
vol. 1, 2010.
[32] L. Zhang,M. H. J. Bollen, "A method for characterisation of three-phase
unbalanced dips (sags) from recorded voltage waveshapes", in The 21st
Bibliografie 127

International Telecommunication Energy Conference INTELEC '99,
Copenhagen.
[33] D. Chapman, Power Quality Application Guide - Harmonics Causes and
Effects, 2001.
[34] Z. J. Paracha, A. Kalam,R. Ali, "A Novel Approach of Harmonic Analysis in
Power Distribution Networks using Artificial Intelligence", in International
Conference on Information and Communication Technologies, 2009, ICICT
'09, Karachi pp. 157 - 160
[35] A. Ignea, Compatibilitate Electromagnetic: Editura de Vest, 2007.
[36] M. H. J. Bollen, "Characterisation of voltage sags experienced by three-
phase adjustable-speed drives", IEEE Transactions on Power Delivery, pp.
1666 - 1671 Oct 1997
[37] M. H. J. Bollen, G. Yalcinkaya, J. Pellis,M. R. Qader, "A voltage sag study in
a large industrial distribution system", in IEEE Industry Applications
Conference, San Diego, CA , USA pp. 2372 - 2377.
[38] A. Sundaram, H. Mehta,V. Tahiliani, "Custom Power-EPRIs Response to
Power Quality Issues", Electric Power Research Institute.
[39] P. Teikari, "Flicker Metrology", in Power Systems Engineering, Special
Asiignment Espoo, Finland.
[40] X. X. Yang,M. Kratz, "Power System Flicker Analysis by RMS Voltage Values
and Numeric Flicker Meter Emulation", IEEE Transactions on Power
Delivery, vol. 24, pp. 1301-1318, July 2009.
[41] P. G. V. Axelberg, M. H. J. Bollen,I. Y.-H. Gu, "Trace of Flicker Sources by
Using the Quantity of Flicker Power", IEEE Transactions on Power Delivery,
vol. 23, pp. 465-471, January 2008.
[42] A. Ignea, "Compatibilitate Electromagnetica".
[43] "IEEE Standard 1159 -1995, Recommended Practice for Monitoring Electric
Power Quality".
[44] "IEC 77A/301/CD - Electromagnetic Compatibility (EMC) -Part 4-30: Testing
and measurement techniques - Power Quality Measurement Methods.".
[45] M. Radulescu,D. C. Rucinschi, "Some contributions for developing dedicated
EMC specifications for components of telecommunication networks".
[46] IEC, "IEC Guide 107 Electromagnetic compatibility - Guide to the drafting of
electromagnetic compatibility publications", 2009.
[47] F. Martzloff, "A New IEC Standard on the Measurement of Power Quality
Parameters", in Proceedings, EMC Europe 2000 Symposium, Bruges, 2000.
[48] T. S. Key, " Diagnosing Power-Quality Related Computer Problems", IEEE
Transactions, vol. LA-15, July 1979.
[49] J. M. Clemmensen,R. J. Ferraro, "The Emerging Problem of Electric Power
Quality", in Public Utilities Fortnightly, Arlington VA.
[50] G. O. Sullivan, " Lead article", in PCIM Magazine.
[51] IEEE, "IEEE Recommended Practice for Powering and Grounding Electronic
Equipment", in Std 1 100-1992
[52] IEEE, "IEEE Recommended Practice for Monitoring Electric Power Quality",
in Std 1 159- 1995
[53] IEEE, "IEEE Guide for Service to Equipment Sensitive to Momentary Voltage
Disturbances", in Std 1250-1995
[54] ***, Eskom Handbook on Quality of Supply: Eskom QOS Group.
[55] IEEE, "IEEE Recommended Practice for Powering and Grounding Electronic
Equipment", in Std 1100-1999.
128 Bibliografie


[56] T. Hoevenaars, K. LeDoux,MattColosino, "Interpreting IEEE Std 519 and
Meeting its Harmonic Limits in VFD Applications".
[57] IEEE, "IEEE Standard 519: Recommended Practices and Requirements for
Harmonic Control in Electrical Power Szstems", 1992.
[58] IEEE, "IEEE Std 1159: IEEE Recommended Practice for Monitoring Electric
Power Quality", 1995.
[59] IEC, "IEC 61000-4-30 Standard", 2007.
[60] H. Markiewicz,A. Klajn, Standard EN 50160 - Voltage Characteristics in
Public Distribution Systems. Wroclaw: European Copper Institute, 2004.
[61] G. Asch,e. collaborateurs, Les capteurs en instrumentation industrielle.
France: Imprimeie Gauthier-Villards, 1991.
[62] M. Ciugudean, Circuite integrate liniare-Aplicaii. Timioara: Editura Facla,
1986.
[63] D. Belega, C. Dughir,R. Pazsitka, Circuite Integrate Analogice -
Experimentare i Simulare: Editura Politehnica, 2008.
[64] C. Dughir,G. Gpresc, "Preconditioning Circuit for Electrical Power
System Disturbances Measurement", ETC 2006.
[65] A. Ignea, C. Dughir,G. Gpresc, "Calibration Method For Nnonlinear
Voltage Divider Used as a Preconditioning Circuit in the Electrical Power
Network Disturbances Monitoring System", ACERO 2006.
[66] C. Dughir, A. Ignea, G. Gpresc,A. Vrtosu, "Nonlinear voltage divider",
Proceedings of the IMEKO Conference, Iai, 2007.
[67] C. Dughir,G. Gpresc, "Three Channels Analysis System for Electrical
Power System Disturbances Measurement", Buletinul Institutului Politehnic
Iai, 2006.
[68] I. Naforni, A. Cmpeanu,A. Isar, Semnale Circuite i Sisteme: Editura
Politehnica Timioara, 1995.
[69] E. Creang, I. Munteanu, A. Bratcu,M. Culea, Semnale Circuite i Sisteme:
Editura Academica, Galai, 2001.
[70] T. Jurca,D. Stoiciu, Aparate electronice de masurat: Universitatea Tehnica,
Timisoara, 1993.
[71] N. Instruments, "NI 625x Specifications".
[72] F. Martzloff, "High-Speed Transient Recording System", General Electric TIS
Report 68-C-019, January 1968.
[73] P. Lu, S. Su, G. Liu, H. Rong,L. Zheng, "A new power quality detection
device based on embedded technique", in Third International Conference on
Electric Utility Deregulation and Restructuring and Power Technologies,
DRPT 2008, Nanjuing pp. 1635 - 1640.
[74] G. H. Yang,B. Y. Wen, " A Device for Power Quality Monitoring Based on
ARM and DSP ", in IEEE Conference on Industrial Electronics and
Applications, Singapore
[75] J. Mindykowski,T. Tarasiuk, "DSP-Based Instrument for Power Quality
Monitoring on Ships", XIX IMEKO World Congress Fundamental and Applied
Metrology, September 611, 2009, Lisbon, Portugal.
[76] C. Gherasim, J. V. d. Keybus, J. Driesen,R. Belmans, "DSP Implementation
of Power Measurements According to the IEEE Trial-Use Standard 1459",
IEEE Transactions on Instrumentation and Measurement, vol. 53, p. 7,
August 2004.
[77] J. Gou, B. Xie,P. Enjeti, "A DSP based real time power quality measurement
system", in Seventh Annual Applied Power Electronics Conference and
Exposition, APEC '92, Boston, MA, pp. 299 - 302
Bibliografie 129

[78] A. Lakshmikanth,M. M. Morcos, "A Power Quality Monitoring System: A Case
Study in DSP-Based Solutions for Power Electronics", IEEE Transactions on
Instrumentation and Measurement, vol. 50, pp. 724 - 731, Jun 2001.
[79] T. S. Sidhu, "Accurate Measurement of Power System Frequency Using a
Digital Signal Processing Tehnique", IEEE Transactions on Instrumentation
and Measurement, vol. 48, p. 7, February 1999.
[80] L. Stankovic, "A Method for Time-Frequency Analysis", IEEE Transactions
on Signal Processing, vol. 42, pp. 225 - 229 Jan 1994.
[81] W. G. Morsi,M. E. El-Hawary, "A New Fuzzy-Wavelet Based Representative
Quality Power Factor for Stationary and Nonstationary Power Quality
Disturbances", in IEEE Power & Energy Society General Meeting, PES '09,
Calgary.
[82] C. N. Bhende,S. Mishra, "An Integrated Approach of Wavelet-Rough Set
Technique for Classification of Power Quality Disturbances", in 13th
International Conference on Harmonics and Quality of Power, Wollongong.
[83] B. Perunicic, M. Mallini, Z. Wang,Y. Liu, "Power quality disturbance detection
and classification using wavelets and artificial neural networks", in
Proceedings of 8th International Conference on Harmonics And Quality of
Power, Athens , Greece, pp. 77 - 82.
[84] W. G. Morsi,M. E. El-Hawary, "A new fuzzy-based representative quality
power factor for unbalanced three-phase systems with nonsinusoidal
situations", in IEEE Power & Energy Society General Meeting, PES '09,
Calgary, AB
[85] M. Artioli, G. Pasini, L. Peretto, R. Sasdelli,F. Fillippetti, "Low-Cost DSP-
Based Equipment for the Real-Time Detection of Transients in Power
Systems", IEEE Transactions on Instrumentation and Measurement, vol. 53,
p. 7, August 2004.
[86] C. Dughir,T. Jurca, "Detectarea apariiei perturbaiilor n reeaua de
distribuie a energiei electrice", in Energetica, 2004.
[87] C. Dughir, "Detecting Symmetrical Disturbances in the Electrical Power
Systems", Doctor ETc 2004.
[88] A. Ignea, T. Jurca, A. D. Sabata, C. Dughir,A. Mihaiuti, Aspecte privind
monitorizarea perturbatiilor dintr-un site. Timisoara: Waldpress, 2006.
[89] "http://focus.ti.com/lit/ds/symlink/iso122.pdf".
[90] "http://focus.ti.com/lit/ds/symlink/dch010515s.pdf".
[91] Microsoft, Microsoft Visual C++ .NET Standard: Microsoft Press, 2001.
[92] D. Gosselin, Microsoft Visual C++ .NET Course Technology, 2002.
[93] "http://msdn.microsoft.com/en-us/library/d06h2x6e(VS.71).aspx".
[94] J. He, "Microsoft Foundation Class (MFC) Quick Reference".
[95] Wikipedia, "http://ro.wikipedia.org/wiki/Microsoft_Foundation_Classes".
[96] Microsoft, "http://msdn.microsoft.com/en-
us/library/ws8s10w4(v=VS.71).aspx".
[97] Microsoft, "http://msdn.microsoft.com/en-us/library/fe1cf721(VS.80).aspx".
[98] C. Hughes,T. Hughes, Object-Oriented Multithreading Using C++: Wiley,
1997.
[99] A. Williams, C++ Concurrency in Action: Practical Multithreading: Manning
Publications, 2010.
[100] F. Martzloff, "Transient Control Level Test Generators", 1977.
[101] F. Martzloff,G. Pellegrini, "Real, Realistic Ring Waves for Surge Testing", in
Proceedings, 9th International Symposium on Electromagnetic Compatibility,
Zrich, 1991.
130 Bibliografie


[102] G. Gpresc,C. Dughir, "Electromagnetic Disturbances Generator with
Graphical User Interface Bild in MATLAB", Buletinul Institutului Politehnic
Iai, 2006.
[103] G. Gpresc, C. Dughir,A. Ignea, "Studierea Perturbaiilor
Electromagnetice Folosing un Generator de Perturbaii cu GUI", ACERO,
2006.
[104] G. Gpresc, C. Dughir,L. Stoica, "Signal Generator for Usual Waveforms
and Electromagnetic Disturbances with Graphical User Interface ", Buletinul
Institutului Politehnic Petroani, 2006.
[105] C. Dughir, "Visual C++ Complex Mathematical Signal Generator",
Proceedings of the IMEKO Conference, Florence, Italy, 2008.
[106] The Electric Power Engineering Handbook: Boca Raton: CRC Press LLC,
2001.
[107] "http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/functions/".
[108] "http://en.wikipedia.org/wiki/Xampp".
[109] "http://en.wikipedia.org/wiki/Html".
[110] "http://en.wikipedia.org/wiki/Php".
[111] E. L. Stamate, Crearea i publicarea unu site web. Limbajul HTML i
elemente de web design: Paralela 45, 2005.
[112] C. Dughir, V. Groza, A. Vrtosu,G. Protean, "Electrical Power Distributions
Network Quality Monitoring using MSP430", IEEE Explore, 2009.
[113] D. Belega,C. Dughir, "Acquisition signals from electromagnetic field-meters
using digital multimeters with event logging mode", in XIX IMEKO World
Congress, Fundamental and Applied Metrology, Lisbon, Portugal.
[114] D. Belega, C. Dughir,A. Ignea, "A system for electric field measurement",
in 2nd IMEKO TC19 Conference on Environmental Measurements, Budapest,
Hungary.
[115] E. Nica, D. Stoiciu, P. Brad,C. Dughir, "Sistem de achizitie si prelucrare de
date pentru studiul unei actionari cu motor asincron", in Energetica
Oradea 1999.
[116] E. Nica, D. Stoiciu, P. Brad,C. Dughir, "Modeling and simulation study of
induction motors in unstable states", in IASTED Pittsburgh, USA, 2000, pp.
p. 129-135.
[117] E. Nica, D. Stoiciu, P. Brad,C. Dughir, "Computational pocedure to analyze
the parameters change on rotor speed estimation of the induction motor",
in Proceedings of the International Conference on Electrical Machines,
Espoo, Finland, pp. 208-212.












ANEXA 1. PROGRAME REPREZENTATIVE
ELABORATE N PSPICE
Program PSpice pentru simularea caracteristicii de transfer i a
comportamentului la aplicarea unui semnal biexponenial al
transformatorului funcional prezentat n figura 3.2.

*version 9.2 2183373009
u 566
U? 12
V? 13
R? 16
D? 11
? 8
@libraries
@analysis
.AC 0 1 0
+0 101
+1 10
+2 1.00K
.DC 0 0 0 0 1 1
+ 0 0 Vinput
+ 0 4 -10000
+ 0 5 10000
+ 0 6 10
.TRAN 1 0 1 0
+0 1us
+1 3ms
+3 10us
+4 1kHz
+6 100
.MC 0 1 2 1 0 1 0 1 1 0
+1 V(out)
.STEP 0 0 1
+ 4 10
+ 5 50
+ 6 10
.TEMP 0 20
.TF 0 V(Out) V6
.OP 0
.SENS 0 v(out)
@targets
@attributes
@translators
a 0 u 13 0 0 0 hln 100
PCBOARDS=PCB
a 0 u 13 0 0 0 hln 100
PSPICE=PSPICE
a 0 u 13 0 0 0 hln 100
XILINX=XILINX
@setup
unconnectedPins 0
connectViaLabel 0
connectViaLocalLabels 0
NoStim4ExtIFPortsWarnings 1
AutoGenStim4ExtIFPorts 1
@index
pageloc 1 0 9573
@status
n 0 107:01:08:00:04:28;1170885868
e
s 2832
107:01:08:00:04:30;1170885870 e
*page 1 0 970 720 iA
@ports
port 18 GND_ANALOG 520 680 h
@parts
part 16 D1N4148 520 370 u
a 0 sp 11 0 15 25 hln 100
PART=D1N4148
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=DO-35
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=D2
a 0 ap 9 0 15 0 hln 100 REFDES=D2
part 15 D1N4148 520 410 u
a 0 sp 11 0 15 25 hln 100
PART=D1N4148
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=DO-35
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=D1
132 Anexa 1 - Programe reprezentative elaborate n PSpice


a 0 ap 9 0 15 0 hln 100 REFDES=D1
part 4 VDC 540 640 h
a 0 sp 0 0 22 37 hln 100 PART=VDC
a 0 a 0:13 0 0 0 hln 100 PKGREF=V2
a 1 ap 9 0 24 7 hcn 100 REFDES=V2
a 1 u 13 0 -11 18 hcn 100 DC=18V
part 3 VDC 490 640 h
a 0 sp 0 0 22 37 hln 100 PART=VDC
a 0 a 0:13 0 0 0 hln 100 PKGREF=V1
a 1 ap 9 0 24 7 hcn 100 REFDES=V1
a 1 u 13 0 -11 18 hcn 100 DC=-18V
part 193 D1N4148 490 260 h
a 0 sp 11 0 15 25 hln 100
PART=D1N4148
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=DO-35
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=D5
a 0 ap 9 0 15 0 hln 100 REFDES=D5
part 195 D1N4148 490 220 h
a 0 sp 11 0 15 25 hln 100
PART=D1N4148
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=DO-35
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=D6
a 0 ap 9 0 15 0 hln 100 REFDES=D6
part 399 r 600 430 h
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100
PKGREF=R15
a 0 ap 9 0 15 0 hln 100 REFDES=R15
a 0 u 13 0 15 25 hln 100 VALUE=10k
part 9 r 690 410 h
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=R3
a 0 ap 9 0 15 0 hln 100 REFDES=R3
a 0 u 13 0 15 25 hln 100 VALUE=2.5k
part 199 r 690 260 h
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100
PKGREF=R12
a 0 ap 9 0 15 0 hln 100 REFDES=R12
a 0 u 13 0 15 25 hln 100 VALUE=2.5k
part 10 r 690 370 h
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=R4
a 0 ap 9 0 15 0 hln 100 REFDES=R4
a 0 u 13 0 15 25 hln 100 VALUE=222
part 198 r 690 220 h
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100
PKGREF=R11
a 0 ap 9 0 15 0 hln 100 REFDES=R11
a 0 u 13 0 15 25 hln 100 VALUE=222
part 13 r 650 170 v
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=R7
a 0 ap 9 0 15 0 hln 100 REFDES=R7
a 0 u 13 0 -11 39 hln 100 VALUE=450
part 196 r 600 170 v
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=R9
a 0 ap 9 0 15 0 hln 100 REFDES=R9
a 0 u 13 0 -13 39 hln 100 VALUE=450
part 355 VDC 780 100 u
a 0 sp 0 0 22 37 hln 100 PART=VDC
a 0 a 0:13 0 0 0 hln 100 PKGREF=V7
a 1 ap 9 0 24 7 hcn 100 REFDES=V7
a 1 u 13 0 -11 18 hcn 100 DC=15V
part 6 VDC 400 200 h
a 0 sp 0 0 22 37 hln 100 PART=VDC
a 0 a 0:13 0 0 0 hln 100 PKGREF=V4
a 1 ap 9 0 24 7 hcn 100 REFDES=V4
a 1 u 13 0 -11 18 hcn 100 DC=15V
part 8 r 420 560 h
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=R2
Anexa 1 - Programe reprezentative elaborate n PSpice 133

a 0 ap 9 0 15 0 hln 100 REFDES=R2
a 0 u 13 0 15 25 hln 100 VALUE=10k
part 7 r 450 470 h
a 0 u 13 0 15 25 hln 100
VALUE=1meg
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=R1
a 0 ap 9 0 15 0 hln 100 REFDES=R1
part 197 r 580 90 v
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100
PKGREF=R10
a 0 ap 9 0 15 0 hln 100 REFDES=R10
a 0 u 13 0 -7 27 hln 100 VALUE=8.8k
part 14 r 620 90 v
a 0 sp 0 0 0 10 hlb 100 PART=r
a 0 s 0:13 0 0 0 hln 100
PKGTYPE=RC05
a 0 s 0:13 0 0 0 hln 100 GATE=
a 0 a 0:13 0 0 0 hln 100 PKGREF=R8
a 0 ap 9 0 15 0 hln 100 REFDES=R8
a 0 u 13 0 -12 28 hln 100
VALUE=8.8k
part 561 VEXP 390 510 u
a 0 a 0:13 0 0 0 hln 100
PKGREF=V12
a 1 ap 9 0 20 10 hcn 100
REFDES=V12
a 1 u 0 0 0 0 hcn 100 DC=0
a 1 u 0 0 0 0 hcn 100 V1=0
a 1 u 0 0 0 0 hcn 100 AC=
a 1 u 0 0 0 0 hcn 100 TC1=0.5ms
a 1 u 0 0 0 0 hcn 100 TD2=0.5ms
a 1 u 0 0 0 0 hcn 100 TC2=0.5ms
a 1 u 0 0 0 0 hcn 100 TD1=0.01ms
a 1 u 0 0 0 0 hcn 100 V2=15800
part 565 AD8616 520 470 h
a 0 sp 11 0 14 70 hcn 100
PART=AD8616
a 0 s 0:13 0 0 0 hln 100 PKGTYPE=
a 0 a 0:13 0 0 0 hln 100
PKGREF=U11
a 0 ap 9 0 56 8 hcn 100 REFDES=U11
part 1 titleblk 970 720 h
a 1 s 13 0 350 10 hcn 100
PAGESIZE=A
a 1 s 13 0 180 60 hcn 100
PAGETITLE=
a 1 s 13 0 340 95 hrn 100
PAGECOUNT=1
a 1 s 13 0 300 95 hrn 100 PAGENO=1
part 498 nodeMarker 700 490 h
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=In
a 0 s 0 0 0 0 hln 100 PROBEVAR=Out
a 0 a 0 0 4 22 hlb 100 LABEL=4
part 562 nodeMarker 410 470 h
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 s 0 0 0 0 hln 100 PROBEVAR=
a 0 a 0 0 4 22 hlb 100 LABEL=7
@conn
w 397
a 0 up 0:33 0 0 0 hln 100 V=
s 520 370 650 370 59
s 650 370 690 370 350
s 650 170 650 370 348
a 0 up 33 0 652 270 hlt 100 V=
w 398
a 0 up 0:33 0 0 0 hln 100 V=
s 520 410 620 410 62
s 620 410 690 410 456
s 620 90 620 410 345
a 0 up 33 0 622 250 hlt 100 V=
w 214
a 0 up 0:33 0 0 0 hln 100 V=
s 400 20 400 200 203
a 0 up 33 0 402 110 hlt 100 V=
s 580 20 400 20 323
s 580 50 580 20 324
s 600 20 600 130 327
s 600 20 580 20 329
w 307
a 0 up 0:33 0 0 0 hln 100 V=
134 Anexa 1 - Programe reprezentative elaborate n PSpice


s 520 220 600 220 459
a 0 up 33 0 645 219 hct 100 V=
s 600 220 690 220 470
s 600 220 600 170 330
w 311
a 0 up 0:33 0 0 0 hln 100 V=
s 520 260 580 260 464
a 0 up 33 0 635 259 hct 100 V=
s 580 260 690 260 476
s 580 90 580 260 339
w 357
a 0 up 0:33 0 0 0 hln 100 V=
s 650 20 620 20 319
s 740 20 650 20 223
s 650 130 650 20 317
a 0 up 33 0 652 75 hlt 100 V=
s 620 50 620 20 314
s 740 60 740 20 410
s 780 60 740 60 416
w 411
a 0 up 0:33 0 0 0 hln 100 V=
s 780 510 600 510 366
s 600 510 600 590 368
s 600 590 570 590 370
s 570 590 570 680 372
s 570 680 540 680 374
s 540 680 520 680 19
s 520 680 490 680 21
s 420 680 490 680 136
s 420 560 420 680 77
s 780 100 780 510 364
s 290 680 420 680 79
s 290 240 290 510 86
a 0 up 33 0 292 375 hlt 100 V=
s 290 240 400 240 519
s 290 510 290 680 556
s 290 510 390 510 554
w 558
a 0 up 0:33 0 0 0 hln 100 V=
s 390 470 410 470 557
a 0 up 33 0 420 469 hct 100 V=
s 450 470 460 470 559
s 410 470 450 470 563
w 29
a 0 up 0:33 0 0 0 hln 100 V=
s 540 640 540 460 28
a 0 up 33 0 542 550 hlt 100 V=
s 540 460 560 460 30
w 23
a 0 up 0:33 0 0 0 hln 100 V=
s 490 630 490 640 26
s 560 630 490 630 24
s 560 520 560 630 22
a 0 up 33 0 562 575 hlt 100 V=
w 70
a 0 up 0:33 0 0 0 hln 100 V=
s 490 260 490 220 194
s 490 470 490 430 386
a 0 up 33 0 492 440 hlt 100 V=
s 490 410 490 370 395
s 490 430 490 410 402
s 490 430 600 430 428
s 520 510 490 510 442
s 490 510 490 470 444
s 490 370 490 260 485
w 158
a 0 sr 0:3 0 670 488 hcn 100
LABEL=Out
a 0 up 0:33 0 0 0 hln 100 V=
s 600 490 700 490 499
a 0 sr 3 0 670 488 hcn 100
LABEL=Out
s 740 490 740 430 200
a 0 up 33 0 742 450 hlt 100 V=
s 740 260 740 220 273
s 740 260 730 260 239
s 740 220 730 220 240
s 740 370 740 260 276
s 740 370 730 370 249
s 740 410 740 370 282
s 740 410 730 410 254
s 740 430 740 410 405
s 640 430 740 430 403
s 700 490 740 490 504
w 437
a 0 up 0:33 0 0 0 hln 100 V=
s 460 560 510 560 436
s 510 560 510 470 438
a 0 up 33 0 512 515 hlt 100 V=
s 510 470 520 470 440
@junction
j 650 370
+ w 397
+ w 397
j 650 170
+ p 13 1
+ w 397
j 730 260
+ p 199 2
+ w 158
j 740 260
+ w 158
Anexa 1 - Programe reprezentative elaborate n PSpice 135

+ w 158
j 740 370
+ w 158
+ w 158
j 740 410
+ w 158
+ w 158
j 740 430
+ w 158
+ w 158
j 540 640
+ p 4 +
+ w 29
j 690 410
+ p 9 1
+ w 398
j 730 410
+ p 9 2
+ w 158
j 620 90
+ p 14 1
+ w 398
j 620 410
+ w 398
+ w 398
j 650 20
+ w 357
+ w 357
j 650 130
+ p 13 2
+ w 357
j 620 50
+ p 14 2
+ w 357
j 690 370
+ p 10 1
+ w 397
j 730 370
+ p 10 2
+ w 158
j 730 220
+ p 198 2
+ w 158
j 690 260
+ p 199 1
+ w 311
j 580 90
+ p 197 1
+ w 311
j 580 260
+ w 311
+ w 311
j 580 50
+ p 197 2
+ w 214
j 580 20
+ w 214
+ w 214
j 690 220
+ p 198 1
+ w 307
j 600 220
+ w 307
+ w 307
j 400 200
+ p 6 +
+ w 214
j 700 490
+ p 498 pin1
+ w 158
j 640 430
+ p 399 2
+ w 158
j 520 410
+ p 15 1
+ w 398
j 520 370
+ p 16 1
+ w 397
j 520 260
+ p 193 2
+ w 311
j 520 220
+ p 195 2
+ w 307
j 490 220
+ p 195 1
+ w 70
j 490 260
+ p 193 1
+ w 70
j 490 370
+ p 16 2
+ w 70
j 490 410
+ p 15 2
+ w 70
j 490 430
+ w 70
+ w 70
j 600 430
+ p 399 1
136 Anexa 1 - Programe reprezentative elaborate n PSpice


+ w 70
j 490 470
+ p 7 2
+ w 70
j 460 560
+ p 8 2
+ w 437
j 780 60
+ p 355 -
+ w 357
j 490 640
+ p 3 +
+ w 23
j 520 680
+ s 18
+ w 411
j 540 680
+ p 4 -
+ w 411
j 490 680
+ p 3 -
+ w 411
j 420 560
+ p 8 1
+ w 411
j 780 100
+ p 355 +
+ w 411
j 420 680
+ w 411
+ w 411
j 400 240
+ p 6 -
+ w 411
j 290 510
+ w 411
+ w 411
j 450 470
+ p 7 1
+ w 558
j 600 170
+ p 196 1
+ w 307
j 600 130
+ p 196 2
+ w 214
j 390 470
+ p 561 -
+ w 558
j 390 510
+ p 561 +
+ w 411
j 410 470
+ p 562 pin1
+ w 558
j 560 460
+ p 565 V+
+ w 29
j 560 520
+ p 565 V-
+ w 23
j 520 510
+ p 565 -
+ w 70
j 600 490
+ p 565 OUT
+ w 158
j 520 470
+ p 565 +
+ w 437
@attributes
a 0 s 0:13 0 0 0 hln 100 PAGETITLE=
a 0 s 0:13 0 0 0 hln 100 PAGENO=1
a 0 s 0:13 0 0 0 hln 100 PAGESIZE=A
a 0 s 0:13 0 0 0 hln 100
PAGECOUNT=1
@graphics



ANEXA 2. PROGRAME REPREZENTATIVE
ELABORATE N MATLAB
Anexa 2.1 Program Matlab pentru verificarea
algoritmului de calibrare a sistemului de condiionare a
semnalelor cu transformator funcional

% Program pentru analiza semnalelor provenite de la transformatorul funcional
% Author: Ciprian Dughir
clear;
% Citirea datelor din fiierul .XLS (datele au fost obinute cu ajutorul programului
PSpice prezentat anterior n anexe)
bIsCalibEnable = 0;
if (bIsCalibEnable == 1)
[pArr, pTxt] = xlsread('Triangle10kV_2.xls',1, 'A1:D2000');
else
[pArr, pTxt] = xlsread('10kVBiexp_1kSamples.xls',1, 'A1:D2000');
end
[pCalibArr, pTxt2] = xlsread('calib3.xls',1, 'B2:E500');
pCalibOutput = pCalibArr(:,1);
pCalibInput = pCalibArr(:,2);
pCalibTimeLine = pCalibArr(:,3) * 1000;
pCalibration = pCalibArr(:,4);
pTimeLine=pArr(:,1) * 1000;
pOut=pArr(:,2);
pIn=pArr(:,4);
nSignalLength = length(pTimeLine);
nSamplesToShow = nSignalLength
% Decompresia valorilor semnalului de ieire
nLastCalibArrPos = 0;
fCalibValue = 0;
pRecoveredOutputSignal = 1:nSignalLength;
for i=1:nSignalLength
if (pOut(i)>=0)
if (pOut(i)<=5)
pRecoveredOutputSignal(i)=100*pOut(i);
elseif pOut(i)>5
if pOut(i)<8.1
pRecoveredOutputSignal(i)=516*pOut(i)-2080;
else
pRecoveredOutputSignal(i)=4157*pOut(i)-31579;
end
end
138 Anexa 2 - Programe reprezentative elaborate n Matlab


else
if (pOut(i)>-5)
pRecoveredOutputSignal(i)=100*pOut(i);
else
if pOut(i)<=-5
if pOut(i)>=-8.1
pRecoveredOutputSignal(i)=516*pOut(i)+2080;
else
pRecoveredOutputSignal(i)=4157*pOut(i)+31579;
end
end
end
end
for j=1:271
if (pRecoveredOutputSignal(i) >= pCalibOutput(j))
fCalibVal = pCalibration(j);
end
end
if (pRecoveredOutputSignal(i) < 490)
fCalibVal = 0;
end
pRecoveredOutputSignalCalib(i) = pRecoveredOutputSignal(i) - fCalibVal;
end
% Generarea fiierului de calibrare
if (bIsCalibEnable == 1)
xlswrite('calib3.xls',pRecoveredOutputSignal','Sheet1','B2');
xlswrite('calib3.xls',pTimeLine,'Sheet1','D2');
xlswrite('calib3.xls',pIn,'Sheet1','C2');
end
% Calcularea parametrilor semnalului de ieire decomprimat
nIndexInput10 = 0;
nIndexInput50 = 0;
nIndexInput90 = 0;
nIndexOutput10 = 0;
nIndexOutput50 = 0;
nIndexOutput90 = 0;
[maxInputValue,maxInputValueIndex]=max(pIn);
[maxOutputValue,maxOutputValueIndex]=max(pRecoveredOutputSignal);
maxInputValue10=maxInputValue/10;
maxInputValue50=maxInputValue/2;
maxInputValue90=0.9*maxInputValue;
maxOutputValue10=maxOutputValue/10;
maxOutputValue50=maxOutputValue/2;
maxOutputValue90=0.9*maxOutputValue;
for i=1:maxInputValueIndex
if (pIn(i) < maxInputValue10)
nIndexInput10 = i;
end
if (pIn(i) < maxInputValue50)
nIndexInput50Start = i;
end
Anexa 2 - Programe reprezentative elaborate n Matlab 139

if (pIn(i) < maxInputValue90)
nIndexInput90 = i;
end
end
for i=maxInputValueIndex:nSignalLength
if (pIn(i) > maxInputValue50)
nIndexInput50End = i;
end
end
for i=1:maxOutputValueIndex
if (pRecoveredOutputSignal(i) < maxOutputValue10)
nIndexOutput10 = i;
end
if (pRecoveredOutputSignal(i) < maxOutputValue50)
nIndexOutput50Start = i;
end
if (pRecoveredOutputSignal(i) < maxOutputValue90)
nIndexOutput90 = i;
end
end
for i=maxOutputValueIndex:nSignalLength
if (pRecoveredOutputSignal(i) > maxOutputValue50)
nIndexOutput50End = i;
end
end
fInputSignalRiseTime = pTimeLine(nIndexInput90)-pTimeLine(nIndexInput10);
fOutputSignalRiseTime = pTimeLine(nIndexOutput90)-pTimeLine(nIndexOutput10);
fInputSignalTime50 = pTimeLine(nIndexInput50End)-
pTimeLine(nIndexInput50Start);
fOutputSignalTime50 = pTimeLine(nIndexOutput50End)-
pTimeLine(nIndexOutput50Start);

fRelativeErrorRecoveredSignalRiseTime = ((fOutputSignalRiseTime-
fInputSignalRiseTime)/fInputSignalRiseTime)*100;
fRelativeErrorRecoveredSignal50Ampl = ((fOutputSignalTime50-
fInputSignalTime50)/fInputSignalTime50)*100;
% Calculul timpului de cretere i a timpului la jumtatea amplitudinii a semnalului
% decomprimat calibrat
nIndexInput10 = 0;
nIndexInput50 = 0;
nIndexInput90 = 0;
nIndexOutput10 = 0;
nIndexOutput50 = 0;
nIndexOutput90 = 0;
[maxInputValue,maxInputValueIndex]=max(pIn);
[maxOutputCalibValue,maxOutputValueIndex]=max(pRecoveredOutputSignalCalib);
maxInputValue10=maxInputValue/10;
maxInputValue50=maxInputValue/2;
maxInputValue90=0.9*maxInputValue;
maxOutputValue10=maxOutputCalibValue/10;
maxOutputValue50=maxOutputCalibValue/2;
140 Anexa 2 - Programe reprezentative elaborate n Matlab


maxOutputValue90=0.9*maxOutputCalibValue;
for i=1:maxInputValueIndex
if (pIn(i) < maxInputValue10)
nIndexInput10 = i;
end
if (pIn(i) < maxInputValue50)
nIndexInput50Start = i;
end
if (pIn(i) < maxInputValue90)
nIndexInput90 = i;
end
end
for i=maxInputValueIndex:nSignalLength
if (pIn(i) > maxInputValue50)
nIndexInput50End = i;
end
end
for i=1:maxOutputValueIndex
if (pRecoveredOutputSignalCalib(i) < maxOutputValue10)
nIndexOutput10 = i;
end
if (pRecoveredOutputSignalCalib(i) < maxOutputValue50)
nIndexOutput50Start = i;
end
if (pRecoveredOutputSignalCalib(i) < maxOutputValue90)
nIndexOutput90 = i;
end
end
for i=maxOutputValueIndex:nSignalLength
if (pRecoveredOutputSignalCalib(i) > maxOutputValue50)
nIndexOutput50End = i;
end
end
fInputSignalRiseTime = pTimeLine(nIndexInput90)-pTimeLine(nIndexInput10);
fOutputSignalRiseTime = pTimeLine(nIndexOutput90)-pTimeLine(nIndexOutput10);
fInputSignalTime50 = pTimeLine(nIndexInput50End)-
pTimeLine(nIndexInput50Start);
fOutputSignalTime50 = pTimeLine(nIndexOutput50End)-
pTimeLine(nIndexOutput50Start);
fRelativeErrorRecoveredSignalCalibRiseTime = ((fOutputSignalRiseTime-
fInputSignalRiseTime)/fInputSignalRiseTime)*100;
fRelativeErrorRecoveredSignalCalib50Ampl = ((fOutputSignalTime50-
fInputSignalTime50)/fInputSignalTime50)*100;
% Calculul transformatei Fourier a semnalului de la ieirea sistemului
nFFTlen=2^7;
pInputSignalPeriodic = repmat(pIn,5,1);
pRecoveredOutputSignalPeriodic = repmat(pRecoveredOutputSignal,1,5);
z=fft(pInputSignalPeriodic);
z1=abs(z);
z2=max(z1);
pInputSignalFFT=(z1/z2);
Anexa 2 - Programe reprezentative elaborate n Matlab 141

pInputSignalFFT=pInputSignalFFT(1:nFFTlen);
y=fft(pRecoveredOutputSignalPeriodic);
y1=abs(y);
y2=max(y1);
pRecoveredOutputSignalFFT=(y1/y2);
pRecoveredOutputSignalFFT=pRecoveredOutputSignalFFT(1:nFFTlen);
nFFTTimeLine=1:nFFTlen;
figure(2);
subplot(2,2,2);
plot(nFFTTimeLine, 1.5+pInputSignalFFT,'r', nFFTTimeLine,
pRecoveredOutputSignalFFT,'b');
title('FFT semnal intrare (r) i FFT semnal ieire (b)');
grid on;
subplot(2,2,4);
h=bar(fRiseTiemes,'Tag','bar1');
title('Rise time and time at 50% of ampl');
set(get(h(1),'BaseLine'),'LineWidth',2,'LineStyle',':');
colormap summer % Change the color scheme
pRecoveredOutputSignal=pRecoveredOutputSignal(1:nSamplesToShow);
pIn=pIn(1:nSamplesToShow);
pTimeLine=pTimeLine(1:nSamplesToShow);
maxOutputValue10Array = maxOutputValue10* ones(nSamplesToShow);
maxOutputValue50Array = maxOutputValue50* ones(nSamplesToShow);
maxOutputValue90Array = maxOutputValue90* ones(nSamplesToShow);
maxInputValue10Array = maxInputValue10* ones(nSamplesToShow);
maxInputValue50Array = maxInputValue50* ones(nSamplesToShow);
maxInputValue90Array = maxInputValue90* ones(nSamplesToShow);
subplot(2,2,1);
plot( pTimeLine, pIn,'k','LineWidth',1);
hold on;
plot( pTimeLine, pRecoveredOutputSignal,'b--','LineWidth',2);
title('Semanlul de intrare si semnalul reconstruit (punctat)');
axis([0 1.5 0 max(maxOutputValue+10, maxInputValue + 10)]);
xlabel('timp [ms]');
ylabel('amplitudinea [V]');
grid on;
subplot(2,2,2);
plot( pTimeLine, pIn,'k','LineWidth',1);
hold on;
plot( pTimeLine, pRecoveredOutputSignalCalib,'b--','LineWidth',2);
title('Semanlul de intrare si semnalul de iesire (punctat)');
axis([0 1.5 0 max(maxOutputCalibValue+10, maxInputValue + 10)]);
xlabel('timp [ms]');
ylabel('amplitudinea [V]');
grid on;

% Calculul erorilor relative ale semnalului calibrat i decomprimat
for i=1:nSamplesToShow
if (abs(pRecoveredOutputSignal(i)-pIn(i)) < 0.001)
fRelativeError(i)=0;
else
142 Anexa 2 - Programe reprezentative elaborate n Matlab


fRelativeError(i)=((pRecoveredOutputSignal(i)-pIn(i))/maxInputValue)*100;
end
end
for i=1:nSamplesToShow
if (abs(pRecoveredOutputSignal(i)-pIn(i)) < 0.001)
fRelativeErrorCalib(i)=0;
else
fRelativeErrorCalib(i)=((pRecoveredOutputSignalCalib(i)-
pIn(i))/maxInputValue)*100;
end
end

pTimeLine=pTimeLine(2:nSamplesToShow) ;
fRelativeError=fRelativeError(2:nSamplesToShow);
fRelativeErrorCalib=fRelativeErrorCalib(2:nSamplesToShow);
subplot(2,2,3);
plot(pTimeLine,fRelativeError, 'k');
axis([0 1.5 0 maxOutputValue]);
axis 'auto y';
%title('');
xlabel('timp [ms]');
ylabel('eroarea relativa (%)');
grid on
subplot(2,2,4);
plot(pTimeLine,fRelativeErrorCalib, 'k');
axis([0 1.5 0 maxOutputValue]);
axis 'auto y';
%title('Eroarea relativa (%)');
xlabel('timp [ms]');
ylabel('eroarea relativa (%)');
grid on
% Calculul energiei semnalelor i a erorilor relative ale energiilor
fRecoveredSignalEnergy = 0;
fRecoveredCalibSignalEnergy = 0;
fInputSignalEnergy = 0;
for i=1:nSignalLength
fRecoveredSignalEnergy = fRecoveredSignalEnergy + pRecoveredOutputSignal(i);
fRecoveredCalibSignalEnergy = fRecoveredCalibSignalEnergy +
pRecoveredOutputSignalCalib(i);
fInputSignalEnergy = fInputSignalEnergy + pIn(i);
end
fRecoveredSignalEnergy = fRecoveredSignalEnergy * 0.0015
fRecoveredCalibSignalEnergy = fRecoveredCalibSignalEnergy * 0.0015
fInputSignalEnergy = fInputSignalEnergy * 0.0015
fRelativeErrorOfRecoveredSignalEnergy = ((fRecoveredSignalEnergy -
fInputSignalEnergy) / fInputSignalEnergy) * 100
fRelativeErrorOfRecoveredCalibSignalEnergy = ((fRecoveredCalibSignalEnergy -
fInputSignalEnergy) / fInputSignalEnergy) * 100



Anexa 2 - Programe reprezentative elaborate n Matlab 143

Anexa 2.2 Program MatLab pentru trasarea
caracteristicii de transfer a divizorului secvenial de tensiune

% Program MatLab pentru afisarea caracteristicii de transfer
% a divizorului de tensiune secvential

clear;

% initializare variabile
a1 = 0.02;
a2 = 0.005;
a3 = 0.001;
C = 10;
nSamples = 10000;

% genereaza esantioanele caracteristicilor de transfer
% ale celor trei divizoare de tensiune rezistive
for i=1:nSamples
x(i) = i;
x1(i) = i*a1;
if (x1(i) > 10)
x1(i) = 10;
end
x2(i) = i*a2;
if (x2(i) > 10)
x2(i) = 10;
end
x3(i) = i*a3;
end
rez2 = x1+x2+x3;

% Afiseaza caracteristicile de transfer ale
% fiecarui divizor rezistiv in parte
figure(1);
plot(x, x1, x, x2, x, x3);

% genereaza esantioanele caracteristicii de transfer
% a divizorului de tensiune secvential
y1 = C*(a2/a1)
y2 = C*(a3/a2)
delta1 = C-y1
delta2 = C-y1 + C-y2

for i=1:nSamples
if (x2(i) > y1)
if (x3(i) > y2)
rez(i) = x3(i) + delta2;
else
rez(i) = x2(i) + delta1;
end
144 Anexa 2 - Programe reprezentative elaborate n Matlab


else
rez(i) = x1(i);
end
end

% Afiseaza caracteristica de transfer a divizorului de tensiune secvential
figure(2);
plot(x, rez);
grid on;

% reconstruieste semnalul de intrare
for i=1:nSamples
if (rez(i) > 10)
if (rez(i) > 17.5)
y(i) = (rez(i) - delta2)/a3;
else
y(i) = (rez(i) - delta1)/a2;
end
else
y(i) = rez(i)/a1;
end
end

% Afiseaza semnalul reconstruit
figure(3);
plot(x, y);
grid on;







ANEXA 3. PROGRAM VISUAL C++ PENTRU
MONITORIZAREA CALITII ENERGIEI
ELECTRICE
Anexa 3.1 Program pentru iniializarea aplicaiei i
achiziia de date

Clasa CPowerQualityMonitoringSystemDlg nglobeaz funciile de interfa cu
utilizatorul i funciile de achiziie de date

//////////////////////////////////////////////////////////////////
// Power Quality Monitoring SystemDlg.cpp : implementare
//////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Power Quality Monitoring System.h"
#include "Power Quality Monitoring SystemDlg.h"
#include <math.h>
#include ".\power quality monitoring systemdlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

CPowerQualityMonitoringSystemDlg::CPowerQualityMonitoringSystemDlg(CWnd*
pParent /*=NULL*/)
: CDialog(CPowerQualityMonitoringSystemDlg::IDD, pParent) {
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

m_bStopThread = FALSE;
m_pReadDataBuffer = NULL;
m_nChannels = 3;
m_dblSampleRate = 250000.0;
m_nReadChanSamples = (int)floor(m_dblSampleRate / 40.);
}

void CPowerQualityMonitoringSystemDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_STATIC_SIGNAL_1, m_ctrlSignalScope1);
DDX_Control(pDX, IDC_STATIC_SIGNAL_2, m_ctrlSignalScope2);
DDX_Control(pDX, IDC_STATIC_TEXT_DISPLAY, m_ctrlTextDisplay);
DDX_Control(pDX, IDC_LIST_EVENTS, m_ctrlEventsList);
}
146 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice



BEGIN_MESSAGE_MAP(CPowerQualityMonitoringSystemDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_WM_DESTROY()
ON_COMMAND(ID_BUTTON_START, OnToolButtonStart)
ON_COMMAND(ID_BUTTON_STOP, OnToolButtonStop)
ON_COMMAND(ID_BUTTON_SAVE, OnToolButtonSave)
//}}AFX_MSG_MAP
ON_WM_SIZE()
END_MESSAGE_MAP()

BOOL CPowerQualityMonitoringSystemDlg::OnInitDialog()
{
CDialog::OnInitDialog();

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty()) {
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
ShowWindow(SW_MAXIMIZE);

// iniializare list evenimente
m_ctrlEventsList.Init();

// iniializare controale grafice
CreateToolbar();
InitControls();

// iniializare variabile
InitVariables();

return TRUE;
}

void CPowerQualityMonitoringSystemDlg::OnSysCommand(UINT nID, LPARAM
lParam)
{
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 147

if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}

void CPowerQualityMonitoringSystemDlg::OnPaint()
{
if (IsIconic()) {
CPaintDC dc(this);

SendMessage(WM_ICONERASEBKGND,
reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
dc.DrawIcon(x, y, m_hIcon);
}
else {
CPaintDC dc(this);
CDC dcMemory;
CBitmap bitmap;
CBitmap* pOldBitmap;
if (this->IsWindowVisible()) {
CRect rcClient;
CSize textExtent;
GetClientRect(&rcClient);
CBrush brBkBrush;
brBkBrush.CreateSolidBrush(RGB_BACK_COLOR);
dcMemory.CreateCompatibleDC(&dc);
dcMemory.SetBkColor(RGB(0,0,0));
bitmap.CreateCompatibleBitmap(&dc, rcClient.Width(),
rcClient.Height());
pOldBitmap = dcMemory.SelectObject(&bitmap);
dcMemory.FillRect(rcClient, &brBkBrush);
dc.BitBlt(0, 0, rcClient.Width(), rcClient.Height(),
&dcMemory, 0, 0, SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
}
CDialog::OnPaint();
}
}

148 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


HCURSOR CPowerQualityMonitoringSystemDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}

void CPowerQualityMonitoringSystemDlg::InitVariables()
{
m_wndToolBar.m_ctrlCircularBuffer.SetBufferSize(m_ProgramParameters.G
etCircularBufferSize());
m_CircularBuffer.Create(m_ProgramParameters.GetCircularBufferSize());
m_nChannels = m_ProgramParameters.GetChannels();
m_ctrlSignalScope1.SetChannels(m_nChannels);
m_SignalProcessing.SetChannels(m_nChannels);
}

BOOL CPowerQualityMonitoringSystemDlg::InitControls(void)
{
CRect rcClient;
int nGraphHeight,
nGraphY,
nGraphWidth;

// Repoziionare automat a controalelor pe interfa
GetClientRect(&rcClient);
nGraphHeight = ((rcClient.Height() - GRAPH_MARGIN_Y) / NO_OF_GRAPHS
- (NO_OF_GRAPHS - 1) * GRAPH_SPACING_Y );
nGraphWidth = ((rcClient.Width() - GRAPH_MARGIN_X) - 3 *
GRAPH_SPACING_X - TEXT_CONTROL_WIDTH);
nGraphY = GRAPH_MARGIN_Y;
m_ctrlSignalScope1.MoveWindow(GRAPH_MARGIN_X, nGraphY,
nGraphWidth - GRAPH_SPACING_X, nGraphHeight, TRUE);
m_ctrlTextDisplay.MoveWindow(nGraphWidth, nGraphY, rcClient.Width() -
nGraphWidth - GRAPH_MARGIN_X, nGraphHeight, TRUE);
nGraphY = GRAPH_MARGIN_Y + nGraphHeight * 1 + 1 *
GRAPH_SPACING_Y;
m_ctrlSignalScope2.MoveWindow(GRAPH_MARGIN_X, nGraphY,
nGraphWidth - GRAPH_SPACING_X, nGraphHeight, TRUE);
nGraphY = GRAPH_MARGIN_Y + nGraphHeight * 2 + 2 *
GRAPH_SPACING_Y;
//m_ctrlSignalScope3.MoveWindow(GRAPH_MARGIN_X, nGraphY, 600,
nGraphHeight, TRUE);
m_ctrlEventsList.MoveWindow(GRAPH_MARGIN_X, nGraphY, rcClient.right,
nGraphHeight, TRUE);

// foreaz redesenarea interfeei
Invalidate();
return TRUE;
}

void CPowerQualityMonitoringSystemDlg::CreateToolbar()
{
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 149

if(!m_wndToolBar.Create(this)
|| !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to Create Dialog Toolbar\n");
EndDialog(IDCANCEL);
}

CRect rcClientOld;
CRect rcClientNew;
GetClientRect(rcClientOld);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,
AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rcClientNew);
CPoint ptOffset(rcClientNew.left-rcClientOld.left,
rcClientNew.top-rcClientOld.top);
CRect rcChild;
CWnd* pwndChild = GetWindow(GW_CHILD);
while(pwndChild)
{
pwndChild->GetWindowRect(rcChild);
ScreenToClient(rcChild);
rcChild.OffsetRect(ptOffset);
pwndChild->MoveWindow(rcChild,FALSE);
pwndChild = pwndChild->GetNextWindow();
}

CRect rcWindow;
GetWindowRect(rcWindow);
rcWindow.right += rcClientOld.Width() - rcClientNew.Width();
rcWindow.bottom += rcClientOld.Height() - rcClientNew.Height();
MoveWindow(rcWindow,FALSE); // Redeseneaz fereastra
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,
AFX_IDW_CONTROLBAR_LAST,0);
}

BOOL CPowerQualityMonitoringSystemDlg::InitADC(void)
{
#define DAQmxErrChk(functionCall)
{
if(DAQmxFailed(error=(functionCall))) {
DisplayError(error); }
}

int32 error = 0;
float64 min = -10.0;
float64 max = 10.0;
char clockSource[] = "OnboardClock";
CString strBoardName;
CString strBoardChannels;

m_hTaskHandle = 0;

150 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


#ifdef _PQM_TEST
m_pReadDataBuffer = new double[200000 * sizeof(double)];
return TRUE;
#else
m_pReadDataBuffer = new double[m_nChannels * m_nReadChanSamples *
sizeof(double)];
#endif

strBoardName = m_ProgramParameters.GetBoardName();
switch (m_nChannels) {
case 1: strBoardChannels.Format("%s/ai0", strBoardName);
break;
case 2: strBoardChannels.Format("%s/ai0:1", strBoardName);
break;
case 3: strBoardChannels.Format("%s/ai0:2", strBoardName);
break;
case 4: strBoardChannels.Format("%s/ai0:3", strBoardName);
break;
default: strBoardChannels.Format("%s/ai0", strBoardName);
break;
}

DAQmxErrChk (DAQmxCreateTask("", &m_hTaskHandle));
DAQmxErrChk (DAQmxCreateAIVoltageChan(m_hTaskHandle,
strBoardChannels.GetBuffer(0),
"",
DAQmx_Val_RSE,
min,
max,
DAQmx_Val_Volts,
NULL));
DAQmxErrChk (DAQmxCfgSampClkTiming(m_hTaskHandle, clockSource,
m_dblSampleRate,
DAQmx_Val_Rising,
DAQmx_Val_ContSamps,
m_nReadChanSamples));
DAQmxErrChk (DAQmxCfgInputBuffer(m_hTaskHandle, 100000));
DAQmxErrChk (DAQmxStartTask(m_hTaskHandle));
return TRUE;
}

DWORD WINAPI CPowerQualityMonitoringSystemDlg::AquisitionThread(LPVOID
lpParam)
{
CPowerQualityMonitoringSystemDlg* pDlg =
(CPowerQualityMonitoringSystemDlg*)lpParam;

int32 pointsToRead = pDlg->m_nReadChanSamples;
int32 nPointsRead;
float64 timeout = 10.0;
int32 totalRead = 0;
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 151

char errBuff[2048];
int nError = 0;

while( !pDlg->m_bStopThread ) {
nError = DAQmxReadAnalogF64(pDlg->m_hTaskHandle,
pointsToRead,
timeout,
DAQmx_Val_GroupByScanNumber,
pDlg->m_pReadDataBuffer,
pDlg->m_nReadChanSamples * pDlg->m_nChannels,
&nPointsRead,
NULL);

// scrie eantioanele citite n bufferul circular
while(!pDlg->m_CircularBuffer.Write(pDlg->m_pReadDataBuffer,
nPointsRead / pDlg->m_nChannels));
pDlg->m_wndToolBar.SetWriteData(pDlg->
m_CircularBuffer.GetWritePos(), nPointsRead);
// permite rularea altor procese n paralel
Sleep(0);
}

pDlg->DAQmxStopTask(pDlg->m_hTaskHandle);
pDlg->DAQmxClearTask(pDlg->m_hTaskHandle);

// semnalizare sfrit fir de execuie
::SetEvent( pDlg->m_hThreadEvents[ADCThreadEvent] );

// ateapt finalizarea execuiei funciilor ce gestioneaz sfritul firului de
// execuie
Sleep(2000);
ExitThread(0);
return TRUE;
}

DWORD WINAPI CPowerQualityMonitoringSystemDlg::
ReadFromCircularBufferThread(LPVOID lpParam)
{
CPowerQualityMonitoringSystemDlg* pDlg =
(CPowerQualityMonitoringSystemDlg*)lpParam;

typedef CTypedPtrList<CObList, CSignalParameters*> CSgnParamList;

long lRead = 0;
CString strRead;
long lFirstPos = 0;
long lOldReadPos = 0;
long lSignalAnalizeLastPos = 0;
double dblFreq = 0.00;
long lRefreshRate = 0;
int nLastPert = 0;
152 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


int nCurrPert = 0;
int nOneSemiPeriodSamples = 1;
long lSamplesToReadFromBuffer;
long lSamplesToRecord = (int)(pDlg->m_dblSampleRate) / 3;
nOneSemiPeriodSamples = (int)(pDlg->m_dblSampleRate / 100.);
lSamplesToReadFromBuffer = nOneSemiPeriodSamples * pDlg->m_nChannels * 4;
SYSTEMTIME sysTime;
CString strDateTime;
double *pData;
double *pDisturbanceData;
pData = (double*)malloc(5 * pDlg->m_nReadChanSamples * pDlg->m_nChannels
* sizeof(double));
ZeroMemory(pData, 5 * pDlg->m_nReadChanSamples * pDlg->m_nChannels *
sizeof(double));
pDisturbanceData = (double*)malloc(5 * (int)(pDlg->m_dblSampleRate) * pDlg-
>m_nChannels * sizeof(double));
ZeroMemory(pDisturbanceData, 5 * (int)(pDlg->m_dblSampleRate) * pDlg-
>m_nChannels * sizeof(double));

pDlg->m_SignalProcessing.SetSampleRate(pDlg->m_dblSampleRate);
pDlg->m_SignalProcessing.SetDelta(0.6);
pDlg->m_ctrlSignalScope1.SetYAxisRange(-6, 6);
pDlg->m_ctrlSignalScope1.SetTitle("Main Signal");
pDlg->m_ctrlSignalScope2.SetYAxisRange(-6, 6);
pDlg->m_ctrlSignalScope2.SetTitle("Disturbance");

while(!pDlg->m_bStopThread) {
if (pDlg->m_CircularBuffer.Read(pData, lSamplesToReadFromBuffer)) {
lSignalAnalizeLastPos =
pDlg->m_SignalProcessing.ProcessSignalSeparateOneSemiPeriod(
pData, 0, lSamplesToReadFromBuffer);
pDlg->m_ctrlTextDisplay.SetTextValues(
pDlg->m_SignalProcessing.GetRMS(),
pDlg->m_SignalProcessing.GetMax(),
pDlg->m_SignalProcessing.GetCrestFactor(),
pDlg->m_SignalProcessing.GetFrequency(),
pDlg->m_SignalProcessing.GetAvgRMS(),
pDlg->m_SignalProcessing.GetAvgMax(),
pDlg->m_SignalProcessing.GetAvgCrestFactor(),
pDlg->m_SignalProcessing.GetAvgFrequency());

if (pDlg->m_SignalProcessing.DetectDisturbance()) {
pDlg->m_ctrlTextDisplay.SetDisturbance(TRUE);
nCurrPert++;
nLastPert = nCurrPert;
GetLocalTime(&sysTime);
strDateTime.Format(" %04d-%02d-%02d
%02d-%02d-%02d",
sysTime.wYear,
sysTime.wMonth,
sysTime.wDay,
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 153

sysTime.wHour,
sysTime.wMinute,
sysTime.wSecond);

pDlg->m_ctrlEventsList.AddData(strDateTime,
"Disturbance",
pDlg->m_SignalProcessing.GetFrequency(),
pDlg->m_SignalProcessing.GetAvgFrequency(),
pDlg->m_SignalProcessing.GetRMS(),
pDlg->m_SignalProcessing.GetAvgRMS(),
pDlg->m_SignalProcessing.GetMax(),
pDlg->m_SignalProcessing.GetAvgMax(),
pDlg->m_SignalProcessing.GetCrestFactor(),
pDlg->m_SignalProcessing.GetAvgCrestFactor());
}
else {
pDlg->m_ctrlTextDisplay.SetDisturbance(FALSE);
nLastPert = nCurrPert;
nCurrPert = 0;
}
if ((nLastPert > 0) && (nCurrPert == 0)) {
pDlg->m_CircularBuffer.GetBufferFrom(pDisturbanceData,
lOldReadPos - lSamplesToRecord / 3 , lSamplesToRecord);
pDlg->m_ctrlSignalScope2.SetSignal(pDisturbanceData,
lSamplesToRecord );
pDlg->m_CircularBuffer.SaveBufferFrom(
lOldReadPos,
lSamplesToRecord,
pDlg->m_SignalProcessing.GetFrequency(),
pDlg->m_SignalProcessing.GetAvgFrequency(),
pDlg->m_SignalProcessing.GetRMS(),
pDlg->m_SignalProcessing.GetAvgRMS(),
pDlg->m_SignalProcessing.GetMax(),
pDlg->m_SignalProcessing.GetAvgMax(),
pDlg->m_SignalProcessing.GetCrestFactor(),
pDlg->m_SignalProcessing.GetAvgCrestFactor(),
pDlg->m_dblSampleRate);
}

// actualizare indicaie control grafic memorie circular
pDlg->m_wndToolBar.SetReadData(lOldReadPos,
lSignalAnalizeLastPos);
pDlg->m_CircularBuffer.IncrementPos(
lSignalAnalizeLastPos , 0 );
lOldReadPos = pDlg->m_CircularBuffer.GetRreadPos();


// Afiare semnal reea
if ((lRefreshRate % 1000) == 0) {
lRefreshRate = 0;
pDlg->m_ctrlSignalScope1.SetSignal(pData, lSamplesToReadFromBuffer);
154 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


}

lRefreshRate++;

Sleep(0);
}

// Eliberare zone de memorie
free(pData);
free(pDisturbanceData);

// semnalizare terminare fir de execuie
::SetEvent( pDlg->m_hThreadEvents[ReadCircBufferThreadEvent] );
ExitThread(0);
return TRUE;
}

void CPowerQualityMonitoringSystemDlg::DisplayError(int nError)
{
char errBuff[2048];
if( DAQmxFailed(nError) )
DAQmxGetExtendedErrorInfo(errBuff,2048);
if(m_hTaskHandle != 0) {
DAQmxStopTask (m_hTaskHandle);
DAQmxClearTask (m_hTaskHandle);
}
if( DAQmxFailed(nError) )
AfxMessageBox( CString(errBuff));
return;
}

void CPowerQualityMonitoringSystemDlg::OnToolButtonStart()
{
InitADC();
m_hThreadEvents[ADCThreadEvent] = ::CreateEvent(
NULL, TRUE, FALSE, NULL );
m_hThreadEvents[ReadCircBufferThreadEvent] = ::CreateEvent(
NULL, TRUE, FALSE, NULL );
m_hThreadEvents[InterfaceThreadEvent] = ::CreateEvent(
NULL, TRUE, FALSE, NULL );
m_hADCThread = CreateThread( NULL,
0,
AquisitionThread,
this,
CREATE_SUSPENDED,
&m_ulADCThreadID );
m_hReadCircBufferThread = CreateThread( NULL,
0,
ReadFromCircularBufferThread,
this,
CREATE_SUSPENDED,
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 155

&m_ulReadCircBufferThreadID );

ResumeThread(m_hADCThread);
ResumeThread(m_hReadCircBufferThread);
}



void CPowerQualityMonitoringSystemDlg::OnToolButtonStop()
{
m_bStopThread = TRUE;

// ateapt oprirea firelor de execuie
DWORD dwWait = WaitForMultipleObjects( 2,
m_hThreadEvents,
FALSE,
3000 );
switch ( dwWait )
{
case WAIT_OBJECT_0:
{
::ResetEvent( m_hThreadEvents[ADCThreadEvent] );
}
}
Sleep(200);
OnCancel();
}

void CPowerQualityMonitoringSystemDlg::OnToolButtonSave()
{
m_CircularBuffer.SaveBuffer();
}

void CPowerQualityMonitoringSystemDlg::OnDestroy()
{
CDialog::OnDestroy();

int i = 0;
if (m_pReadDataBuffer) {
delete m_pReadDataBuffer;
}
m_CircularBuffer.Release();
}

void CPowerQualityMonitoringSystemDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if(this->IsWindowVisible()) {
m_wndToolBar.ReSizeControls();
InitControls();
}
156 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


}

Anexa 3.2 Program pentru detecia perturbaiilor din
reeaua electric
////////////////////////////////////////////////////////////////////////////////
// SignalProcessing.cpp: implementation of the CSignalProcessing class
////////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "../Power Quality Monitoring System.h"
#include "SignalProcessing.h"
#include <Math.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSignalProcessing::CSignalProcessing()
{
// Iniializarea buffer-elor de memorie
for (int i = 0; i < NO_OF_SIGNALS; i++) {
m_pSignalBuffer[i] = NULL;
}

for (int i = 0; i < NO_OF_PARAMETERS; i++) {
m_pSignalParameters[i] = NULL;
}

// Valorile implicite ale parametrilor
SetSampleRate(1000.0);
m_dblFreq = 50.0;
m_dblFreqDelta = 5.0;
m_lSamplesPerPeriod = 0;
m_nCurrentParamItem = 0;
m_nChannels = 1;

InitParamBuffers();
m_dblDelta = 0.5;
m_dblAvgMax = 6.0;
m_dblAvgRMS = 5.0;
m_dblAvgCrestFactor = 1.6;
m_dblAvgFreq = 50.0;
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 157

}

CSignalProcessing::~CSignalProcessing()
{
// Funcie apelat la distrugerea obiectului
// Sunt eliberate toate zonele de memorie alocate
ReleaseBuffers();

//
for (int i = 0; i < NO_OF_PARAMETERS; i++ ) {
if (m_pSignalParameters[i] != NULL) {
free (m_pSignalParameters[i]);
}
}
}

long CSignalProcessing::GetSamplesPerPeriod()
{
return m_lSamplesPerPeriod;
}

long CSignalProcessing::ProcessSignal(double *dwInputSignal, long lStart, long
lEnd)
{
double dblAbsSignalVal = 0.0;
long lLastZeroCross = 0;

for (long lIndex = lStart; lIndex < lEnd; lIndex++) {
m_pSignalBuffer[OriginalSignal][lIndex] = dwInputSignal[lIndex];
dblAbsSignalVal = abs(m_pSignalBuffer[OriginalSignal][lIndex]);
if (floor(m_pSignalBuffer[OriginalSignal][lIndex] * 10000) !=
floor(dblAbsSignalVal * 10000)) {
m_pSignalBuffer[ZeroCrossSignal][lIndex] = -1;
}
else {
m_pSignalBuffer[ZeroCrossSignal][lIndex] = +1;
}
m_pSignalBuffer[RectifiedSignal][lIndex] = dblAbsSignalVal;
if (lIndex > lStart) {
if (m_pSignalBuffer[ZeroCrossSignal][lIndex] !=
m_pSignalBuffer[ZeroCrossSignal][lIndex - 1]) {
CalculateSignalParams(lLastZeroCross, lIndex);
lLastZeroCross = lIndex;

}
}
}

return lLastZeroCross;
}

158 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


void CSignalProcessing::CalculateSignalParameters(long lStart, long lEnd)
{

CSignalParameters *sgnParam = new CSignalParameters;

double dblMax = -1000.0;
double dblRMS = 0.0;
double dblCrestFactor = 0.0;

if (lEnd - lStart <= 0) {
return;
}

for (int i = lStart; i < lEnd; i++) {
if (m_pSignalBuffer[RectifiedSignal][i] > dblMax) {
dblMax = m_pSignalBuffer[RectifiedSignal][i];
}
dblRMS += m_pSignalBuffer[RectifiedSignal][i];
}

dblRMS /= (lEnd - lStart);

sgnParam->SetMax(dblMax);
sgnParam->SetCrestFactor(dblMax / dblRMS);
sgnParam->SetRMS(dblRMS);
sgnParam->SetFirstSample(lStart);

m_obParamList.AddTail(sgnParam);
}

BOOL CSignalProcessing::ReleaseBuffers(void)
{
// elibereaz zonele de memorie alocate semnalelor
for (int i = 0; i < NO_OF_SIGNALS; i++ ) {
if (m_pSignalBuffer[i] != NULL) {
free (m_pSignalBuffer[i]);
}
}

// elibereaz toate zonele de memorie alocate, altfel acestea rmnnd
// alocate la ieirea din aplicaie
for (POSITION pos = m_obParamList.GetHeadPosition(); pos != NULL; )
{
CSignalParameters *sgnParam = m_obParamList.GetNext(pos);
delete sgnParam;
}

// terge elementele listei de obiecte
while (m_obParamList.GetCount() > 0) {
m_obParamList.RemoveAll();
}
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 159


return TRUE;
}

// Iniializarea zonelor de memorie corespunztoare parametrilor sistemului de
detecie a perturbaiilor
BOOL CSignalProcessing::InitParamBuffers()
{
for (int i = 0; i < NO_OF_PARAMETERS; i++ ){
m_pSignalParameters[i]=(double*)malloc(MAX_PARAM_ITEMS*
sizeof(double));

if (m_pSignalParameters[i] == NULL) {
return FALSE;
}
else {
for (int j = 0; j < MAX_PARAM_ITEMS; j++) {
m_pSignalParameters[i][j] = NULL;
}
}
}
return TRUE;
}

BOOL CSignalProcessing::InitBuffers(long lLength)
{
// Elibereaz zonele de memorie alocate anterior
ReleaseBuffers();

// Alocare zon de memorie
for (int i = 0; i < NO_OF_SIGNALS; i++ ){
m_pSignalBuffer[i] = (double*) malloc(lLength * sizeof(double) );

if (m_pSignalBuffer[i] == NULL) {
return FALSE;
}
}
return TRUE;
}

double* CSignalProcessing::GetZeroCrossBuffer(void)
{
return m_pSignalBuffer[ZeroCrossSignal];
}

long CSignalProcessing::ProcessSignal (double *dwInputSignal,
long lFirstSample,
long lLastSample)
{
double dblAbsSignalVal = 0.0;
int nOldSign = 0;
160 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


int nCurrentSign = 0;
long lLastZeroCross = 0;
BOOL bFirstZeroCrossDetected = FALSE;
int nDeltaZeroCrossSamples = 0;

nDeltaZeroCrossSamples = (int)(m_ulSamplesPerSemiperiod * 0.02);
m_lSamplesPerPeriod = lLastSample;
m_dblMax = -100000.0;
m_dblRMS = 0.0;
m_dblCrestFactor = 0.0;

if (!InitBuffers(lLastSample)) {
AfxMessageBox("Eroare alocare buffere!", MB_OK);
return 0;
}

for(long lIndex=lFirstSample; lIndex< lLastSample; lIndex+=m_nChannels)
{
m_pSignalBuffer[OriginalSignal][lIndex] = dwInputSignal[lIndex];
dblAbsSignalVal = abs(m_pSignalBuffer[OriginalSignal][lIndex]);
if (floor(m_pSignalBuffer[OriginalSignal][lIndex] * 10000) !=
floor(dblAbsSignalVal * 10000))
{
m_pSignalBuffer[ZeroCrossSignal][lIndex] = -1;
}
else {
m_pSignalBuffer[ZeroCrossSignal][lIndex] = +1;
}
m_pSignalBuffer[RectifiedSignal][lIndex] = dblAbsSignalVal;
if (lIndex > (lFirstSample + nDeltaZeroCrossSamples * m_nChannels))
{
if((m_pSignalBuffer[ZeroCrossSignal][lIndex] !=
m_pSignalBuffer[ZeroCrossSignal][lIndex - m_nChannels]) &&
!bFirstZeroCrossDetected)
{
bFirstZeroCrossDetected = TRUE;
// a fost detectat o trecere prin zero
for (int i = lFirstSample; i < lIndex; i += m_nChannels) {
if (m_pSignalBuffer[RectifiedSignal][i] > m_dblMax) {
m_dblMax = m_pSignalBuffer[RectifiedSignal][i];
}
m_dblRMS += m_pSignalBuffer[RectifiedSignal][i];
}
m_lSamplesPerPeriod = lIndex;
m_dblRMS /= (lIndex - lFirstSample);
if (m_dblRMS != 0) {
m_dblCrestFactor = m_dblMax / m_dblRMS;
}
else {
m_dblCrestFactor = 1.0;
}
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 161

if (m_lSamplesPerPeriod != 0) {
m_dblFreq = m_dblSampleRate / (m_lSamplesPerPeriod * 2);
}
else {
m_dblFreq = 0.0;
}

m_pSignalParameters[ParamRMSVal][m_nCurrentParamItem] = m_dblRMS;
m_pSignalParameters[ParamMaxVal][m_nCurrentParamItem] = m_dblMax;
m_pSignalParameters[ParamCrestFact][m_nCurrentParamItem]
=m_dblCrestFactor;
m_pSignalParameters[ParamFreq][m_nCurrentParamItem] = m_dblFreq;
CalculateAverageParamValues();
IncrementParamItem();
}
}
}

if (m_lSamplesPerPeriod == (lLastSample - lFirstSample)) {
// Nu s-a gasit nici o trecere prin zero
// Cel mai probabil nu avem nici un semnal aplicat la intrare.
m_dblMax = 5;
m_dblRMS = 1;
m_dblCrestFactor = 5;
m_dblFreq = 0;
m_pSignalParameters[ParamRMSVal][m_nCurrentParamItem] = 1;
m_pSignalParameters[ParamMaxVal][m_nCurrentParamItem] = 5;
m_pSignalParameters[ParamCrestFact][m_nCurrentParamItem] = 5;
m_pSignalParameters[ParamFreq][m_nCurrentParamItem] = 0;
CalculateAverageParamValues();
IncrementParamItem();
}
return m_lSamplesPerPeriod;
}

BOOL CSignalProcessing::DetectDisturbance()
{
if (abs(m_dblRMS - m_dblAvgRMS) > m_dblDelta ) {
return TRUE;
}

if (abs(m_dblMax - m_dblAvgMax) > m_dblDelta ) {
return TRUE;
}

if (abs(m_dblCrestFactor - m_dblAvgCrestFactor) > m_dblDelta ) {
return TRUE;
}

if (abs(GetFrequency() - m_dblAvgFreq) > m_dblFreqDelta ) {
return TRUE;
162 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


}

return FALSE;
}

void CSignalProcessing::CalculateAverageParamValues()
{

m_dblAvgMax = 0.0;
m_dblAvgRMS = 0.0;
m_dblAvgCrestFactor = 0.0;
m_dblAvgFreq = 0.0;

for (int i = 0; i < MAX_PARAM_ITEMS; i++) {
m_dblAvgMax += m_pSignalParameters[ParamMaxVal][i];
m_dblAvgRMS += m_pSignalParameters[ParamRMSVal][i];
m_dblAvgFreq += m_pSignalParameters[ParamFreq][i];
}

m_dblAvgMax /= (double)MAX_PARAM_ITEMS;
m_dblAvgRMS /= (double)MAX_PARAM_ITEMS;
m_dblAvgFreq /= (double)MAX_PARAM_ITEMS;
m_dblAvgCrestFactor = m_dblAvgMax / m_dblAvgRMS;
}

void CSignalProcessing::IncrementParamItem()
{
if (m_nCurrentParamItem < (MAX_PARAM_ITEMS - 1)) {
m_nCurrentParamItem++;
}
else {
m_nCurrentParamItem = 0;
}
}

double* CSignalProcessing::GetRectifiedSignalBuffer(void)
{
return m_pSignalBuffer[RectifiedSignal];
}

void CSignalProcessing::SetDelta(double dblDelta)
{
m_dblDelta = dblDelta;
}

double CSignalProcessing::GetDelta()
{
return m_dblDelta;
}

void CSignalProcessing::SetFreqDelta(double dblDelta)
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 163

{
m_dblFreqDelta = dblDelta;
}

double CSignalProcessing::GetFrequency()
{
return m_dblFreq;
}

void CSignalProcessing::SetSampleRate(double dValue)
{
m_dblSampleRate = dValue;
m_ulSamplesPerSemiperiod = m_dblSampleRate / 100.0;
}

double CSignalProcessing::GetCrestFactor()
{
return m_dblCrestFactor;
}

double CSignalProcessing::GetMax()
{
return m_dblMax * 100.;
}

double CSignalProcessing::GetRMS()
{
return m_dblRMS * 100.;
}


double CSignalProcessing::GetAvgCrestFactor()
{
return m_dblAvgCrestFactor;
}

double CSignalProcessing::GetAvgFrequency()
{
return m_dblAvgFreq;
}

double CSignalProcessing::GetAvgMax()
{
return m_dblAvgMax * 100.;
}

double CSignalProcessing::GetAvgRMS()
{
return m_dblAvgRMS * 100.;
}

164 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


long CSignalProcessing::GetListItems()
{
return (long)m_obParamList.GetCount();
}

LPARAM CSignalProcessing::GetParamList(long lItem)
{
return (LPARAM) &m_obParamList;
}

void CSignalProcessing::SetChannels(int nChannels)
{
m_nChannels = nChannels;
}


Anexa 3.3 Program pentru implementarea memoriei
circulare
//////////////////////////////////////////////////////////////////////
// CCircularBuffer.cpp
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "../Power Quality Monitoring System.h"
#include "CircularBuffer.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

CCircularBuffer::CCircularBuffer()
{
m_pData = NULL;
m_lQueSize = 0;
m_lReadPos = 0;
m_lWritePos = 0;
m_lock.createLock();
m_rxEvent.create();
m_lGlobalWritePos = 0;
m_lGlobalReadPos = 0;
}

CCircularBuffer::~CCircularBuffer()
{
Release();
}

Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 165

BOOL CCircularBuffer::Create(long lQueSize)
{
if ( lQueSize <= 0 )
return FALSE;

// alocare zon de memorie
m_lQueSize = lQueSize;
m_pData = new double[m_lQueSize * sizeof(double)];

if ( m_pData )
{
memset( m_pData, 0, m_lQueSize * sizeof(double));
m_rxEvent.create();
return TRUE;
}
else
{
m_lQueSize = 0;
return FALSE;
}
}

BOOL CCircularBuffer::Read(double *pData, long lDataLen, BOOL bWaitForWrite)
{
long lWriteToEnd = 0;
long lReadPos = m_lReadPos;
long lWritePos = m_lWritePos;

// testeaz lungimea blocului de date ce se dorete a fi citit
if ( lDataLen < 0 || lDataLen > m_lQueSize ) {
return FALSE;
}

// verific dac exist o operaie de scriere n derulare
if (bWaitForWrite) {
if (m_lGlobalReadPos + 3 * lDataLen > m_lGlobalWritePos) {
return FALSE;
}
}

// Dac nu exist nici o operaie de scriere, blocheaz accesul
// lamemoria circular pe parcursul citirii zonei de memorie
if ( !m_lock.lock() )
return FALSE;

long lLenToEnd = GetLengthToEnd(idRead);
if (lLenToEnd > lDataLen) {
lLenToEnd = lDataLen;
}

if ( lLenToEnd > 0 )
166 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


memcpy( pData, &m_pData[m_lReadPos], lLenToEnd * sizeof(double));
long lenRemaining = lDataLen - lLenToEnd;
if ( lenRemaining > 0 )
memcpy( &pData[lLenToEnd], &m_pData[0], lenRemaining *
sizeof(double));

// Deblocheaz accesul la memoria circular
m_lock.unlock();

return TRUE;
}

long CCircularBuffer::GetRreadPos()
{
return m_lReadPos;
}

long CCircularBuffer::GetWritePos()
{
return m_lWritePos;
}

BOOL CCircularBuffer::SetReadPos(long lPos)
{
if ( lPos > m_lQueSize )
return FALSE;

if (lPos < 0) {
m_lGlobalReadPos += (lPos - m_lReadPos);
m_lReadPos = m_lQueSize + lPos;
return TRUE;
}

m_lGlobalReadPos += (lPos - m_lReadPos);
m_lReadPos = lPos;
return TRUE;
}

BOOL CCircularBuffer::SetWritePos(long lPos)
{
if ( lPos < 0 || lPos > m_lQueSize )
return FALSE;
m_lWritePos = lPos;
return TRUE;
}

BOOL CCircularBuffer::Write(double *pData, long lDataLen)
{
// verific lungimea blocului de memorie care se dorete a fi scris
if ( lDataLen < 0 || lDataLen > m_lQueSize )
return FALSE;
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 167


// blocheaz accesul la memoria circular
if ( !m_lock.lock() )
return FALSE;

long lLenToEnd = GetLengthToEnd(idWrite);
if (lLenToEnd > lDataLen) {
lLenToEnd = lDataLen;
}
if ( lLenToEnd > 0 )
memcpy( &m_pData[m_lWritePos ], pData, lLenToEnd*sizeof(double));
long lLenRemaining = lDataLen - lLenToEnd;
if ( lLenRemaining > 0 )
memcpy( &m_pData[0], &pData[lLenToEnd], lLenRemaining *
sizeof(double));
IncrementPos( lDataLen, idWrite );


m_lock.unlock();
return true;
}

BOOL CCircularBuffer::IncrementPos(long lIncrement, long lOperation)
{
if ( lIncrement < 0 || lIncrement > m_lQueSize )
return FALSE;
long * lPos = &m_lWritePos;
if ( lOperation == idRead )
lPos = &m_lReadPos;
long lLenToEnd = GetLengthToEnd(lOperation);
if ( lIncrement <= lLenToEnd )
*lPos += lIncrement;
else
{
*lPos = lIncrement - lLenToEnd;
}
if (lOperation == idRead) {
m_lGlobalReadPos +=lIncrement;
}
else {
m_lGlobalWritePos +=lIncrement;
}
if (m_lGlobalWritePos > m_lQueSize * 5) {
m_lGlobalWritePos=m_lGlobalWritePos - m_lGlobalReadPos+m_lQueSize;
m_lGlobalReadPos = m_lQueSize;
}
return TRUE;
}

long CCircularBuffer::GetLengthToEnd(long lOperation)
{
168 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


// returneaz lungimea bufferului de memorie de la poziia curent
// pn la sfritul zonei de memorie alocate
if ( lOperation == idRead )
return m_lQueSize - m_lReadPos;
else
return m_lQueSize - m_lWritePos;
}

BOOL CCircularBuffer::Release()
{
if ( !m_pData )
return FALSE;
Reset();
delete[] m_pData;
m_pData = NULL;
m_lQueSize = 0;
return TRUE;
}
long CCircularBuffer::GetSize()
{
return m_lQueSize;
}

void CCircularBuffer::Reset()
{
m_lReadPos = 0;
m_lWritePos = 0;
memset( m_pData, 0, m_lQueSize );
}

void CCircularBuffer::WriteOneValue(double dblVal)
{
while(!m_lock.lock() );
m_pData[m_lWritePos] = dblVal;
IncrementPos( 1, idWrite );
m_lock.unlock();
}

BOOL CCircularBuffer::GetBufferFrom(double *pData, long lStart, long lSamples)
{
long lWriteToEnd = 0;
long lReadPos = m_lReadPos;
long lWritePos = m_lWritePos;

if (lSamples > m_lQueSize ) {
return FALSE;
}

if ( !m_lock.lock() )
if (lReadPos < lSamples) {
long lSamplesLeft = lSamples - lReadPos;
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 169

memcpy( pData, &m_pData[m_lQueSize - lSamplesLeft],
(lSamplesLeft) * sizeof(double));
memcpy( &pData[lSamplesLeft], &m_pData[0], (lSamples -
lSamplesLeft) * sizeof(double));
}
else {
memcpy( pData, &m_pData[lReadPos - lSamples], (lSamples) *
sizeof(double));
}
m_lock.unlock();
return TRUE;
}

BOOL CCircularBuffer::GetAllBuffer(double *pData)
{
if (!m_lock.lock()) {
return FALSE;
}
memcpy( pData, m_pData, m_lQueSize * sizeof(double));
m_lock.unlock();
return TRUE;
}

void CCircularBuffer::SaveBufferFrom( long lStart, long lSamples, float fFreq, float
fAvgFreq, float fRMS, float fAvgRMS, float fMax, float fAvgMax, float fCF, float
fAvgCF, float fSampleRate)
{
double *pBuffer;
FILE *pFile;
CString strWriteLine, strDateTime, strNewFile;
SYSTEMTIME sysTime;

GetLocalTime(&sysTime);

pBuffer = (double*)malloc(lSamples * sizeof(double));
ZeroMemory(pBuffer, lSamples * sizeof(double));

GetBufferFrom(pBuffer, lStart, lSamples);
strNewFile.Format("E:\\Doctorat\\%04d-%02d-%02d
%02d-%02d-%02d-%04d.txt",
sysTime.wYear,
sysTime.wMonth,
sysTime.wDay,
sysTime.wHour,
sysTime.wMinute,
sysTime.wSecond,
sysTime.wMilliseconds
);

if((pFile = fopen(strNewFile, "wt")) != NULL) {
// scriere date n fiier
170 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


for (long lIndex = 0; lIndex < lSamples; lIndex++ ) {
strWriteLine.Format("%.12f\n", pBuffer[lIndex]);
fputs(strWriteLine, pFile);
}
fclose(pFile);
}

strNewFile.Format("E:\\Doctorat\\%04d-%02d-%02d
%02d-%02d-%02d-%04d.ext",
sysTime.wYear,
sysTime.wMonth,
sysTime.wDay,
sysTime.wHour,
sysTime.wMinute,
sysTime.wSecond,
sysTime.wMilliseconds
);

if((pFile = fopen(strNewFile, "wt")) != NULL) {
CString strHelp;
strHelp.Format("Data si timp: %04d-%02d-%02d
%02d:%02d:%02d.%03d \n\r",
sysTime.wYear,
sysTime.wMonth,
sysTime.wDay,
sysTime.wHour,
sysTime.wMinute,
sysTime.wSecond,
sysTime.wMilliseconds
);
fputs(strHelp, pFile);

strHelp.Format("Locatie: \n" );
fputs(strHelp, pFile);

strHelp.Format("Comentarii: \n" );
fputs(strHelp, pFile);
strHelp.Format("rata esantionare: %.0f kSPS\n\r",
fSampleRate / 1000.);
fputs(strHelp, pFile);

strHelp.Format("frecventa: %.2f \tAverage Frequency: %.3f
\n", fFreq, fAvgFreq);
fputs(strHelp, pFile);

strHelp.Format("valoare efectiva: %.2f \tAverage RMS
Voltage: %.3f \n", fRMS, fAvgRMS);
fputs(strHelp, pFile);

strHelp.Format("valoare maxima: %.2f \tAverage Max
Voltage: %.3f \n", fMax, fAvgMax);
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 171

fputs(strHelp, pFile);

strHelp.Format("factor de creasta: %.2f \tAverage Crest
Factor: %.3f \n\n\r", fCF, fAvgCF);
fputs(strHelp, pFile);
fclose(pFile);
}

if (pBuffer) {
free (pBuffer);
}
}

void CCircularBuffer::SaveBuffer()
{
double *pBuffer;
FILE *pFile;
CString strWriteLine, strDateTime, strNewFile;
SYSTEMTIME sysTime;
GetLocalTime(&sysTime);
pBuffer = (double*)malloc(m_lQueSize * sizeof(double));
ZeroMemory(pBuffer, m_lQueSize * sizeof(double));
if(GetAllBuffer(pBuffer)) {
strNewFile.Format("E:\\Doctorat\\%04d-%02d-%02d
%02d-%02d-%02d-%04d.txt",
sysTime.wYear,
sysTime.wMonth,
sysTime.wDay,
sysTime.wHour,
sysTime.wMinute,
sysTime.wSecond,
sysTime.wMilliseconds
);

if((pFile = fopen(strNewFile, "at")) != NULL) {
fseek(pFile, 0, SEEK_END);
for (long lIndex = 0; lIndex < m_lQueSize; lIndex++ ) {
strWriteLine.Format("%.12f\n", pBuffer[lIndex]);
fputs(strWriteLine, pFile);

}
fclose(pFile);
}
if (pBuffer) {
free (pBuffer);
}
}
else {
AfxMessageBox("Eroare salvare Buffer!");
}
}
172 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


Anexa 3.4 Program pentru implementarea controlului
grafic care afieaz starea memoriei circulare
//////////////////////////////////////////////////////////////
// CircularBufferCtrl.cpp
//////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "../Power Quality Monitoring System.h"
#include "CircularBufferCtrl.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

CCircularBufferCtrl::CCircularBufferCtrl()
{
m_lReadPos = 0;
m_lWritePos = 0;
m_lReadLen = 0;
m_lWriteLen = 0;
m_lBufferSize = 0;
m_fReadStartAngle = 0;
m_fReadEndAngle = 0;
m_fWriteStartAngle = 0;
m_fWriteEndAngle = 0;
}

CCircularBufferCtrl::~CCircularBufferCtrl()
{
}

BEGIN_MESSAGE_MAP(CCircularBufferCtrl, CStatic)
//{{AFX_MSG_MAP(CCircularBufferCtrl)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CCircularBufferCtrl::OnPaint()
{
CPaintDC dc(this);
CDC dcMemory;
CBitmap bitmap;
CBitmap* pOldBitmap = NULL;
CRect rcDraw;

if (this->IsWindowVisible()) {
CRect rcClient;
GetClientRect(&rcClient);

Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 173

CBrush brBkBrush,
brReadBrush,
brWriteBrush,
brCircleBrush,
brSecondCircle,
*pOldBrush = NULL;
CPen *pOldPen = NULL,
readPen,
writePen,
circlePen,
intCirclePen,
secCirclePen;
COLORREF crReadColor,
crWriteColor,
crCircleExtColor,
crCircleIntColor,
crBkColor,
crSecCircle;

crReadColor = RGB(0,150,0);
crWriteColor = RGB(255,0,0);
crCircleExtColor = RGB(0,100,200);
crCircleIntColor = crCircleExtColor;
crSecCircle = RGB(0,0,0);
crBkColor = GetSysColor(COLOR_BTNFACE);

brBkBrush.CreateSolidBrush(crBkColor);
brReadBrush.CreateSolidBrush(crReadColor);
brWriteBrush.CreateSolidBrush(crWriteColor);
brCircleBrush.CreateSolidBrush(crCircleIntColor);
brSecondCircle.CreateSolidBrush(crSecCircle);
readPen.CreatePen(PS_SOLID, 1, crReadColor);
writePen.CreatePen(PS_SOLID, 1, crWriteColor);
circlePen.CreatePen(PS_SOLID, 3, crCircleExtColor);
intCirclePen.CreatePen(PS_SOLID, 1, crCircleIntColor);
secCirclePen.CreatePen(PS_SOLID, 1, crSecCircle);

dcMemory.CreateCompatibleDC(&dc);
dcMemory.SetBkColor(RGB(0,0,0));
bitmap.CreateCompatibleBitmap( &dc,
rcClient.Width(),
rcClient.Height());
pOldBitmap = dcMemory.SelectObject(&bitmap);
dcMemory.FillRect(rcClient, &brBkBrush);
CopyRect(&rcDraw, rcClient);
if (rcClient.Width() < rcClient.Height()) {
rcDraw.DeflateRect(5,
(rcClient.Height() - rcClient.Width()) / 2,
5,
(rcClient.Height() - rcClient.Width()) / 2);
}
174 Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice


else {
rcDraw.DeflateRect(
(rcClient.Width() - rcClient.Height()) / 2,
5,
(rcClient.Width() - rcClient.Height()) / 2,
5);
}

pOldPen = dcMemory.SelectObject(&writePen);
pOldBrush = dcMemory.SelectObject(&brWriteBrush);
dcMemory.BeginPath();
dcMemory.MoveTo( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y);
dcMemory.AngleArc( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y,
rcDraw.Height()/2,
m_fWriteStartAngle,
m_fWriteEndAngle);
dcMemory.LineTo( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y);
dcMemory.EndPath();
dcMemory.StrokeAndFillPath();
dcMemory.SelectObject(pOldBrush);
dcMemory.SelectObject(pOldPen);

pOldPen = dcMemory.SelectObject(&readPen);
pOldBrush = dcMemory.SelectObject(&brReadBrush);
dcMemory.BeginPath();
dcMemory.MoveTo( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y);
dcMemory.AngleArc( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y,
rcDraw.Height()/3 ,
m_fReadStartAngle,
m_fReadEndAngle);
dcMemory.LineTo( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y);
dcMemory.EndPath();
dcMemory.StrokeAndFillPath();
dcMemory.SelectObject(pOldBrush);
dcMemory.SelectObject(pOldPen);

pOldPen = dcMemory.SelectObject(&secCirclePen);
pOldBrush = dcMemory.SelectObject(&brSecondCircle);
dcMemory.BeginPath();
dcMemory.MoveTo( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y);
dcMemory.AngleArc( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y,
rcDraw.Height()/10,
0,
Anexa 3 - Program Visual C++ pentru monitorizarea calitii energiei electrice 175

360);
dcMemory.LineTo( rcDraw.CenterPoint().x,
rcDraw.CenterPoint().y);
dcMemory.EndPath();
dcMemory.StrokeAndFillPath();
dcMemory.SelectObject(pOldBrush);
dcMemory.SelectObject(pOldPen);
dc.BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &dcMemory, 0, 0,
SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
}
}

void CCircularBufferCtrl::SetReadData(long lReadPos, long lReadLen)
{
m_lReadPos = lReadPos;
m_lReadLen = lReadLen;

if (m_lBufferSize > 0) {
m_fReadStartAngle =
(float)((m_lReadPos * 360.00) / m_lBufferSize);
m_fReadEndAngle =
(float)(( m_lReadLen * 360.00) / m_lBufferSize);
}
Invalidate();
}

void CCircularBufferCtrl::SetWriteData(long lWritePos, long lWriteLen)
{
m_lWritePos = lWritePos;
m_lWriteLen = lWriteLen;

if (m_lBufferSize > 0) {
m_fWriteStartAngle =
(float)((m_lWritePos * 360.00) / m_lBufferSize);
m_fWriteEndAngle =
(float)(( m_lWriteLen * 360.00) / m_lBufferSize);
}
Invalidate();
}

void CCircularBufferCtrl::SetBufferSize(long lBufferSize)
{
m_lBufferSize = lBufferSize;
}



ANEXA 4. PROGRAME REPREZENTATIVE
ELABORATE N HTML I PHP
Index.php pagina de start a aplicaiei web

<?
session_start();
$disp="";
if(isset($_GET['target']))
{
switch($_GET['target'])
{
case "home":
$areaToLoad = "mainPageTemplate.php";
include("mainpage.php");
break;
case "download":
$areaToLoad = "download.php";
include("mainpage.php");
break;
case "algoritmi":
$areaToLoad = "algoritmi.php";
include("mainpage.php");
break;
case "graph":
$areaToLoad = "onlineData.php";
include("mainpage.php");
break;
case "info":
$areaToLoad = "info.php";
include("mainpage.php");
break;
case "contact":
$areaToLoad = "contact.php";
include("mainpage.php");
break;
default:
include("mainpage.php");
break;
}
}
else// if issset target
include("mainpage.php");
?>

Anexa 4 - Programe reprezentative elaborate n HTML i PHP 177

Mainpage.html pagina principal a site-ului web

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>
Monitorizarea calitatii energiei electrice
</title>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
</head>
<body class = "body">
<TABLE cellSpacing=0 cellPadding=0 border=0 width="1000px" align="center"
bgcolor = "#cdbafe">
<tr>
<td>
<table width="1000px" cellpadding="0" cellspacing="0" align="center"
border="0">
<tr>
<td valign="top" background = "./images/top.jpg" height = "150">
</td>
</tr>
<tr>
<td width = "1000px">
<table border="0" cellpadding="0" cellspacing="0" width = "100%">
<tr>
<td valign="top">
<?php include("include/topMenu.php");?>
</td>
</tr>
</table>
</td>
</tr>
<tr width="1000px">
<td valign="top" width="1000px">
<table width="1000px" border="0" cellpadding="0" cellspacing="0">
<tr width="1000px">
<td valign = "top">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" width = "190px">
<? include("include/leftData.php"); ?>
</td>
</tr>
</table>
</td>
<td align="center" width="800px" valign = "top">
<table border = "0" cellspacing = "5px" cellpadding = "0px" width =
"790px">
<tr>
<td align = "center" valign = "top">
<?php
178 Anexa 4 - Programe reprezentative elaborate n HTML i PHP


if(isset($areaToLoad))
include("include/".$areaToLoad);
else
include("include/mainPageTemplate.php");
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td collspan = "3">
<? include("pageFooter.php");?>
</td>
</tr>
</table>
</td>
</TR>
</table>
</body>
</html>


Disturbances.php afieaz perturbaiile detectate de ctre sistem n
reeaua electric

<?php

global $FileName;
$lines = file($_GET["file"], FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');

// Create the graph. These two calls are always required
$graph = new Graph(340,300);
$graph->SetScale("textlin");
$graph->SetMargin(25,10,30,30);
$graph->xaxis->SetTextTickInterval(10000,0);
$graph->xaxis->SetTextLabelInterval(2);
$graph->xaxis->HideLabels(true);
$graph->xaxis->SetLabelFormatString('My',true);

// Create the linear plot
$lineplot=new LinePlot($lines);
$lineplot->SetColor("blue");



Anexa 4 - Programe reprezentative elaborate n HTML i PHP 179

// Add the plot to the graph
$graph->Add($lineplot);

// Display the graph
$graph->Stroke();
?>



Topmenu.php afieaz meniul orizontal al paginii web

<table border=0 width="1000px" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" background = "./images/hr_green.jpg" height = "6px">
</td>
</tr>
<tr>
<td>
<table border = "0px" cellspacing = "0px" cellpadding = "0px" width =
"1000px" height = "*" bgcolor = "3f1f75">
<tr>
<td>
<div class="TopMenu">
<a href=<?php echo "index.php?target=home"?>>Home</a>
</div>
</td>
<td>
<div class="TopMenu">
<a href=<?php echo "index.php?target=graph"?>>Parametri</a>
</div>
</td>
<td>
<div class="TopMenu">
<a href=<?php echo "index.php?target=info"?>>Perturbatii</a>
</div>
</td>
<td>
<div class="TopMenu">
<a href=<?php echo "index.php?target=download"?>>
Statistici</a>
</div>
</td>
<td>
<div class="TopMenu">
<a href=<?php echo "index.php?target=algoritmi"?>>Prezentare
sistem</a>
</div>
</td>
<td>
<div class="TopMenu">
<a href=<?php echo "index.php?target=contact"?>>Contact</a>
180 Anexa 4 - Programe reprezentative elaborate n HTML i PHP


</div>
</td>
<td width = "200px">
<div class="TopMenu">
&nbsp;
</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="100%" background = "./images/hr_green.jpg" height = "6px">
</td>
</tr>
</table>




Mainpagetemplate.php afieaz coninutul paginii principale

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width = "*" valign="top" align = "center">
<table border="0" cellpadding="0" cellspacing="0" height = "436" width =
"600px">
<tr>
<td width = "*" valign="top" >
<center><h1> Sistem de monitorizare a calitatii energiei
electrice</h1></center>
<p align="justify" style = "font-family: Verdana, Arial, Helvetica, sans-
serif; font-size: 13px; line-height:'150%';">
Sistemul de monitorizare al calitatii energiei electrice a fost dezvoltat in
cadrul tezei de doctorat cu titlul: Contributii la detectarea si monitorizarea
perturbatiilor din retelele de distributie a energiei electrice, elaborata de Ing. Ciprian
Dughir.
</p>
</td>
</tr>
</table>
</td>
</tr>
</table>



Leftdata.php afieaz un meniu vertical n partea stng a paginii
<table border="0" cellpadding="0" cellspacing="0" width="*">
<tr>
<td valign="top">
Anexa 4 - Programe reprezentative elaborate n HTML i PHP 181

<? include("location.php");?>
</td>
</tr>
<tr>
<td valign="top">
<? include("parameters.php");?>
</td>
</tr>
</table>



Parameters.php afieaz parametrii cureni: tensiune efectiv i
frecven

<table border = "0" cellspacing = "5px" cellpadding = "0px" width = "200px">
<tr>
<td>
<table border = "0" cellspacing = "0px" cellpadding = "0px" width = "190px">
<tr>
<td >
<table border = "0px" cellspacing = "0px" cellpadding = "4px"
width="190" class = "radiatie_header" align="center">
<tr>
<td class="radiatie_header" width="100%" align="center"
colspan = "2"><b>PARAMETRI MASURATI</td>
</tr>
</table>

</td>
</tr>
<tr>
<td>
<table border = "0px" cellspacing = "0px" cellpadding = "0px" width =
"190px">
<tr>
<td>
<table border = "0px" cellspacing = "0px" cellpadding = "4px"
width="190" class="radiatie" align="right">
<tr><td class="radiatie" width="130"
align="left"><b>Frecventa</b></td>
<td class="radiatie" width="60" align="right"><b>50.1
Hz</b></td></tr>
<tr><td class="radiatie" width="130" align="left"><b>Valoare
efectiva</b></td>
<td class="radiatie" width="60" align="right"><b>226
V</b></td></tr>
</table>
</td>
</tr>
</table>
182 Anexa 4 - Programe reprezentative elaborate n HTML i PHP


</td>
</tr>
</table>
</td>
</tr>
</table>

S-ar putea să vă placă și