Sunteți pe pagina 1din 13

Desfăşurarea aplicaţiei

1

ANALIZA FUNCŢIONĂRII CIRCUITELOR ELECTRONICE DE PUTERE CU AJUTORUL SIMULATORULUI DEDICAT PSIM

1. OBIECTUL APLICAŢIEI

Aplicaţia are ca scop familiarizarea cu modalităţile de analiză şi proiectare cu ajutorul unui simulator dedicat circuitelor electronice de putere, PSIM.

Prezentarea PSIM:

PSIM este constituit dintr-un pachet de programe conceput special pentru circuite electronice de putere. Producătorul este Powersim Inc. Viteza mare de simulare, interfaţa utilizator prietenoasă şi funcţiile dedicate asigură un mediu de simulare performant şi avantajos pentru circuite electronice de putere, comandă şi reglare analogică / digitală şi acţionări electrice.

Mediul

integrat

de

simulare

PSIM

este

constituit

la

bază

din

următoarele

componente:

 
Desf ăş urarea aplica ţ iei 1 ANALIZA FUNC Ţ ION Ă RII CIRCUITELOR ELECTRONICE DE

Structura circuitului:

Un circuit este reprezentat în PSIM prin 4 blocuri de bază, intercorelate precum urmează:

Circuit de putere

Comanda Senzori comutatoarelor
Comanda Senzori comutatoarelor

Comanda

Senzori

comutatoarelor

Comanda Senzori comutatoarelor
Comanda Senzori comutatoarelor

Circuit de control

Circuitul de putere este constituit din dispozitive comutatoare, ramuri RLC, transformatoare. Circuitul de control poate folosi pe lângă componentele electronice uzuale analogice şi digitale, blocuri cu funcţii de transfer definite în domeniile s sau z, componente neliniare (cum ar fi multiplicatoare şi divizoare), controlere PID, etc. Senzorii măsoară tensiunile şi curenţii din circuitul de putere şi transmit valorile circuitului de control. Acesta generează impulsurile de comandă care sunt transmise apoi comutatoarelor de putere.

Programul încorporează, pe lângă elementele unui simulator clasic, următoarele module specializate:

Motor Drive Module: modul de acţionări electrice cu modele predefinite ale diverselor maşini electrice şi sarcini mecanice, Digital Control Module: modul de control digital cu elemente discrete cum ar fi blocuri de eşantionare şi memorare, funcţii de transfer în domeniul z, blocuri de cuantizare, filtre digitale. SimCoupler Module: modul de interfaţă între PSIM şi Matlab/Simulink, pentru simulare corelată (co-simulare), în care o parte din sistemul electronic este simulată în PSIM şi o altă parte este simulată corelat în Matlab/Simulink. Thermal Module: permite calculul pierderilor în dispozitivele semiconductoare MagCoupler Module: asigură interfaţa între PSIM ş i programul de analiză a câmpului electro-magnetc, JMAG. SimCoder Module: permite generarea automată de cod C.

Desfăşurarea aplicaţiei

3

În plus, PSIM poate fi conectat la alte aplicaţii software prin blocuri DLL.

O imagine mai completă a mediului de simulare PSIM este următoarea:

Desf ăş urarea aplica ţ iei 3 În plus, PSIM p oate fi conectat la alte

În variantele mai noi, PSIM include şi:

Modulul TI-F28335 Hardware Target: Deşi SimCoder permite generarea de cod C pornind de la schema electrică, c odul are un caracter universal şi nu va rula ca atare pe procesoarele de semnal menite să îl implementeze fizic. Acest modul va genera însă direct cod C care va rula apoi ca atare pe plăci DSP care folosesc procesoarele în virgulă mobilă TI F283335. Extensia la Pachetul Renewable Energy, care cuprinde modelele şi blocurile necesare pentru aplicaţii de energie solară şi energie eoliană, cum ar fi celule solare, turbine eoliene, etc. Capacitate de simulare interactivă: se pot schimba valorile parametrilor şi vedea evoluţia tensiunilor şi curenţilor în mijlocul unei simulări, asemenea reacţiei unui modul de test fizic.

2. DESFĂŞURAREA APLICAŢIEI:

Vom analiza cu ajutorul PSIM câteva circuite electronice de putere. 2.1. Redresor monalternanţă. Pentru familiarizare, începem cu un circuit simplu, un redresor monoalternanţă:

! Deschideţi programul PSIM. Va apare următoarea
!
Deschideţi
programul
PSIM.
Va
apare
următoarea

interfaţă:

  • ! Deschideţi un nou circuit din meniul File / New.

  • ! Toate componentele se găsesc în meniul Elements şi în submeniurile sale. Componentele uzuale se găsesc şi în bara de jos, de unde pot fi selectate direct.

  • ! Desenăm circuitul redresorului, aducând componentele pe rând în spaţiul de lucru.

! Deschideţi programul PSIM. Va apare următoarea interfa ţă : ! Deschide ţ i un nou
  • ! Faceţi click pe componente pentru a le selecta. Faceţi dublu-click pentru a schimba valorile, şi alegeţi valori realiste pentru acest circuit. Tot aici determinaţi dacă se vor afişa sau nu valorile şi denumirile componentelor. Faceţi click-dreapta pentru a roti componenta. Interconectaţi componentele prin elementul wire (bara de sus). Este necesară şi

introducerea unei sonde de tensiune tensiunea în nodul respectiv, faţă de masă.

! Deschideţi programul PSIM. Va apare următoarea interfa ţă : ! Deschide ţ i un nou

pentru a putea vizualiza

Desfăşurarea aplicaţiei

5

  • ! Înainte de a începe simularea, selectaţi Simulation Control din meniul Simulate şi plasaţi simbolul ceasului într-un loc convenabil pe ecran. Apoi setaţi parametri simulării şi închideţi fereastra Simulation Control.

Desf ăş urarea aplica ţ iei 5 ! Înainte de a începe simularea, selecta ţ i
  • ! Simulate, Run Simulation sau apăsaţi F8 sau butonul Run Simulation din bara de sus. La sfârşitul simulării fereastra SIMVIEW se va deschide automat. Dacă nu se deschide, apăsaţi Alt+F8.

  • ! Selectaţi parametrul de reprezentat, în cazul acesta tensiunea V1.

Desf ăş urarea aplica ţ iei 5 ! Înainte de a începe simularea, selecta ţ i
  • ! Exploraţi opţiunile disponibile de zoom, cursor, selecţie axe, calcul FFT, calcul THD.

2.2. Redresor monoalternanţă comandat, cu sarcină rezistivă. Realizaţi următorul circuit, construind cele patru blocuri de bază :

Desf ăş urarea aplica ţ iei 5 ! Înainte de a începe simularea, selecta ţ i
  • ! Circuitul de putere

    • - Sursă de tensiune alternativă, 220 Vef, 50 Hz,

    • - Tiristor,

    • - Rezistenţă de sarcină 10 Ohm,

    • - Simbol de masă,

    • - Voltmetre şi ampermetre,

  • ! Senzori

    • - Voltage sensor. Citeşte valoarea tensiunii de alimentare şi realizează

  • separaţia dintre circuitul de putere şi circuitul de comandă şi control.

    • ! Circuit de control

      • - Comparatorul va genera semnal de sincronizare (high) pe durata alternanţei pozitive a tensiunii de alimentare.

    • ! Comanda comutatoarelor

      • - Alpha controller: Din meniul Elements/Other/Switch Controllers/. Este folosit pentru controlul unghiului de comandă în cazul tiristoarelor. Făcând dublu-click pe simbol se setează doi parametri: Frecvenţa cu

    care se dau impulsurile de comandă şi durata semnalului de comandă (în grade electrice). Controlerul are trei intrări:

    • ! Valoarea unghiului de comandă alpha (centru jos)

    • ! Semnal de sincronizare (stânga jos)

    • ! Semnal enable/disable (dreapta) pentru întregul controler.

    Tranziţia semnalului de sincronizare de la low (0) la high (1) marchează momentul de referinţă de la care se calculează unghiul de comutaţie alpha. Un semnal de comandă va fi generat la ieşirea controlerului cu o întârziere de alpha grade.

    • - Sursă de tensiune continuă: valoarea sursei (V) semnifică exact valoarea unghiului alpha (grade electrice).

    • - Sursă de tensiune treaptă, activă din momentul 0.

    • - Conectaţi ieşirea controlerului alpha prin intermediul etichetelor ( label) la poarta tiristorului.

    • - Simboluri de masă. Atenţie: deşi simbolul de masă poate fi acelaşi ca la circuitul de putere, simulatorul ştie să separe galvanic circuitele de comandă şi cel de putere, deci punctele de masă sunt şi ele distincte!

    Desfăşurarea aplicaţiei

    7

    • ! Setaţi alpha = 30 grade. Obţineţi:

    Desf ăş urarea aplica ţ iei 7 ! Seta ţ i alpha = 30 grade. Ob
    • ! Setaţi alpha = 90 grade, alpha = 120 grade. Ce modificări apar în formele de undă de la ieşire?

    • ! Schimbaţi sarcina rezistivă (R=10 Ohm) cu o sarcină rezistiv-inductivă (R-L), din Meniul Elements/Power/RLC Branches/RL, de valoare R=10 Ohm, L=10 mH. Ce observaţi în urma simulării?

    2.3. AC Sweep

    Răspunsul în frecvenţă al unui circuit sau al unei bucle de comandă poate fi obţinut cu ajutorul unei analize AC Sweep. Un avantaj al analizei AC în PSIM este acela că circuitul poate rămâne în versiunea sa originală, cu elemente în comutaţie, ne fiind necesar un model mediat. Prezenţa unui model mediat va scurta totuşi timpul de analiză. Principiul unei analize ac constă în injecţia unui semnal mic de excitaţie şi acelaşi semnal, de aceeaşi frecvenţă dar de altă amplitudine e extras la ieşire. Pentru a obţine rezultate valabile, amplitudinea semnalului de excitaţie trebuie să fie destul de mică pentru ca perturbaţia să rămână în regiunea liniară şi trebuie să fie suficient de mare ca semnalul de ieşire să nu fie afectat de erori numerice. În general, un sistem fizic are atenuare slabă la frecvenţe joase şi atenuare mare la frecvenţe înalte. Uneori, după efectuarea unei analize ac, este afişat următorul mesaj de avertizare:

    Warning: The program did not reach the steady state after 60 cycles. See File “message.doc” for more details.

    Acest mesaj apare atunci când programul eşuează în detectare punctului static de funcţionare după 60 de cicluri. Pentru a rezolva această problemă putem

    creşte atenuarea în circuit, de exemplu prin introducerea de rezistenţe parazite) sau să ajustăm amplitudinea sursei de excitaţie, sau să reducem pasul de simulare.

    Fişierul “message.doc” ne indică frecvenţa la cere se produce această eroare cât şi eroarea relativă, care indică cât de departe suntem de valoarea stabilă. Ca aplicaţie, să analizăm un convertor Buck în buclă deschisă, cu următoarele elemente:

    • ! Circuitul de putere: Sursă de tensiune continuă Vdc=12V, comutator realizat cu IGBT cu diodă în antiparalel, dioda, L=0,1 mH, C=47 uF, R=5 Ohm.

    • ! Senzori: nu avem, comanda realizându-se în buclă deschisă.

    • ! Circuit de comandă: impulsul de comandă pentru IGBT se obţine prin intersecţia unei tensiuni triunghiulare de frecvenţă 50 kHz şi amplitudine 1 V cu o tensiune continuă.

    • ! Comanda comutatorului: Observăm că la ieşirea comparatorului apare obligatoriu şi un On-off switch controller care face trecerea de la circuitul de comandă la cel de putere.

    cre ş te atenuarea în circuit, de exemplu prin introducerea de rezisten ţ e parazite) sau

    Efectuăm o simulare pe o durată de 3 ms şi observăm valoarea tensiunii de ieşire, corespunzător relaţiei Vout = D * Vin, D fiind factorul de umplere al impulsului de comandă. Observăm modul de formare al impulsurilor de comandă şi măsurăm D. În continuare vom efectua o analiză AC Sweep:

    • ! Introducem o sursă de excitaţie sinusoidală Vacsweep,

    • ! Plasăm elementul de măsură ACSWEEP_OUT în punctul de măsură dorit ( la ieşirea convertorului), din meniul Elements/Other/Probes/AC sweep probe.

    • ! Plasăm elementul .ACSWEEP (Elements/Other/.ACSWEEP) lângă circuitul electric şi setăm valorile pentru analiza ac: Start Frequency=200Hz, End Frequency=20kHz, No. Of points: 50, Flag=0 (distribuţie logaritmică a punctelor de măsură), Source Name = Vacsweep, Start Amplitude=End Amplitude=0.1V.

    • ! Rulăm PSIM.

    Desfăşurarea aplicaţiei

    9

    Desf ăş urarea aplica ţ iei 9 Rezultatul analizei AC arat ă r ă spunsul în

    Rezultatul analizei AC arată răspunsul în buclă deschisă al tensiunii de ieşire în funcţie de semnalul de modulaţie.

    2.4. Folosirea blocurilor DLL

    În acest capitol vom urmări să folosim blocuri de tip DLL (Dynamic Link Library) pentru a conecta cod C/C++ cu PSIM.

    1.Construiţi în PSIM următorul circuit:

    Desf ăş urarea aplica ţ iei 9 Rezultatul analizei AC arat ă r ă spunsul în

    Vom calcula valoarea efectivă (rms) a tensiunii unei surse de 220 V, 50 Hz atât cu ajutorul blocului integrat în PSIM (Elements/Control/Computational Blocks/RMS) cât şi prin intermediul unui bloc DLL (Elements/Other/Function Blocks/DLL Block (1-input)), care foloseşte un fişier de tip DLL generat dintr-o rutină C/C++. Codul acesteia este conţinut în fişierul msvc_dll.c şi este:

    //"This"sample"program"calculates"the"rms"of"a"5 05Hz"input"in[0],"and"

    //"stores"the"output"in"out[0]."

    "

    //"You"may"change"the"variable"names"(say"from""t""to""Time")."

    //"But"DO"NOT"change"the"function"name,"number"of"variables,"

    variable"type,"and"sequence."

     
     

    //"Variables:" //""""""t:"Time,"passed"from"PSIM"by"value" //"""delt:"Time"step,"passed"from"PSIM"by"v alue" //"""""in:"input"array,"passed"from"PSIM"by"reference " //""""out:"output"array,"sent"back"to"PSIM"(Note:"the"values"of"out[*]"can " //"""""""""be"modified"in"PSIM)"

     
     

    //"The"maximum"length"of"the"input"and"output"array""in""and""out""is"30."

     
     

    //"Warning:"Global"variables"above"the"function"ms_user0"(t,delt,in,out)"

    //""""""""""are"not"allowed!!!"

     
     

    #include"<math.h>"

     
     

    declspec(dllexport)"void"simuser"(t,"delt,"in,"out)"

     

    //"Note"that"all"the"variables"must"be"defined"as""double""

     

    double"t,"delt;"

    double"*in,"*out;"

     
     

    {"

    //"Place"your"code"here ............ begin" " //""Define""sum""as""static""in"order"to"retain"its"value." " static"double"nsum=0.,"sum=0.,"rms;" " double"Tperiod;" " " Tperiod=1./60.;" " " " "
    //"Place"your"code"here
    ............
    begin"
    "
    //""Define""sum""as""static""in"order"to"retain"its"value."
    "
    static"double"nsum=0.,"sum=0.,"rms;"
    "
    double"Tperiod;"
    "
    "
    Tperiod=1./60.;"
    "
    "
    "
    "
    "
    "
    "
    if"(t">="nsum*Tperiod)"
    {"
    " nsum=nsum+1.;"
    " rms"="sqrt(sum*delt/Tperiod);"
    " sum=0.;"
    }"
    "
    "
    out[0]"="rms;"
    "
    sum=sum+in[0]*in[0];"
    "

    Desfăşurarea aplicaţiei

    11

    //"Place"your"code"here

    ............

    end"

    }"

    2.Salvaţi circuitul în alt director, de exemplu C:/Temp/dll-rms.sch

    • 3. Copiaţi codul msvc_dll.c în acelaşi director (C:/Temp/msvc_dll.c)

    • 4. Folosind un compilator C, de exemplu Visual C++, generăm din sursa msvc_dll.c

    un fişier dll, test_msvc_dll.dll pe care îl salvăm în acelaşi director C:/Temp. Acest

    pas este deja efectuat şi găsiţi fişierul test_msvc_dll.dll în directorul C:/Temp.

    • 5. În circuit specificaţi numele fişierului DLL folosit (dublu-click pe blocul DLL).

    "
    "
    • 6. Rulaţi simularea şi comparaţi rezultatele.

    Precizări:

    • - PSIM cheamă rutina DLL la fiecare pas de simulare. Dacă intrările blocului DLL sunt conectate la ieşirile unui bloc discret (zero-order hold ZOH, unit delay UDELAY, integrator I_D, differentiator D_D, z-domain transfer function block TFCTN_D, sau filtre digitale), atunci blocul DLL este considerat şi el un element discret şi va fi apelat numai la momente discrete, fiind astfel inclus automat în simularea discretă a elementelor menţionate mai sus.

    • - Blocul DLL primeşte de la PSIM valori ca date de intrare, realizează calculele şi întoarce rezultatele către PSIM. Nodurile de intrare sunt la stânga şi cele de ieşire la dreapta. Dacă avem mai multe i ntrări, se citesc de sus în jos.

    • - Numele fişierului DLL poate fi arbitrar, dar fişierul trebuie să fie plasat în acelaşi director ca fişierul de circuit din care este apelat.

    2.5. Analiza parametrică Vom urmări să realizăm o analiză parametrică, deci varierea valorii unei componente pentru a constata influenţa acesteia asupra funcţionării circuitului.

    Blocul Param Sweep îl g ă si ţ i în Elements/Other/.PARAMSWEEP . Face ţ i dublu

    Blocul Param Sweep îl găsiţi în Elements/Other/.PARAMSWEEP. Faceţi dublu-click pe acest bloc şi setaţi:

    • - Valoarea de început, Start Value,

    • - Valoarea de sfârşit, End Value,

    • - Pasul de incrementare, Increment Step,

    • - Numele parametrului de variat, Parameter to be Swept

    Blocul Param Sweep îl g ă si ţ i în Elements/Other/.PARAMSWEEP . Face ţ i dublu

    Rezistenţa de sarcină va avea în loc de valoare, numele parametrului care va fi variat.

    Desfăşurarea aplicaţiei

    13

    Desf ăş urarea aplica ţ iei 13 2. Efectua ţ i o simulare pe durata de

    2. Efectuaţi o simulare pe durata de 3ms şi vizualizaţi formele undă pentru cele 4 valori ale rezistenţei.

    Precizări:

    Într-un circuit pot fi variaţi următorii parametri:

    • - Rezistenţe, inductanţe şi capacităţi

    • - Amplificarea blocurilor proporţionale (P)

    • - Constantele de timp ale integratoarelor (I)

    • - Amplificarea şi constantele de timp ale controlerelor PI

    • - Amplificarea, frecvenţa de tăiere şi factorul de amortizare pentru filtre de ordinul 2 (FILTER_LP2/FILTER_HP2)

    • - Amplificarea, frecvenţa centrală şi banda de trecere/oprire pentru filtre trece-bandă şi opreşte-bandă (FILTER_BP2/FILTER_BS2)