Proiectarea si implementarea FPGA a comenzilor PWM multinivel

download Proiectarea si implementarea FPGA a comenzilor PWM multinivel

of 45

description

Proiectarea sistemelor numerice complexe nu este posibila fara utilizarea sistemelor CAD în timpul tuturor fazelor procesului de proiectare. Majoritatea sistemelor numerice actuale sunt implementate sub forma circuitelor integrate LSI sau VLSI. Pe masura evolutiei tehnologice de la integrarea pe scara redusa (SSI sau MSI) la integrarea pe scara larga, cerintele impuse sistemelor CAD au crescut substantial. Tipul utilitarelor de proiectare s-a diversificat în mod semnificativ. De exemplu, este impor¬tant simularea functionarii circuitului înaintea fabricatiei.

Transcript of Proiectarea si implementarea FPGA a comenzilor PWM multinivel

UNIVERSITATEA POLITEHNICA BUCURESTIFACULTATEA DE INGINERIE ELECTRICA

MODELAREA SI COMANDA CONVERTOARELOR STATICE

-PROIECT-

PROIECTAREA SI IMPLEMENTAREA FPGA A COMENZILOR PWM MULTINIVEL

MASTER EPA 1

Profesor indrumatorProf. dr. ing. Dan Floricau

MasterandAdrian Mateianu

- 2014 -1. Scopul proiectului

In cadrul proiectului se studiaza si se implementeaza comanda numerica PWM a unui invertor multinivel. Pentru implementare se utilizeaza programul Quartus si limbajul de programare VHDL (Very High Speed Integreated Circuit Hardware Description Language). Testarea se va face cu ajutorulul unei cartele FPGA (Field Programmable Gate Array). Convertorul utilizat pru teste experimentale este un invertor pe trei nivele de tensiune 3L-ANPC (Active Neutral Point Clamped).

Notiuni introductive

Proiectarea sistemelor numerice complexe nu este posibila fara utilizarea sistemelor CAD n timpul tuturor fazelor procesului de proiectare. Majoritatea sistemelor numerice actuale sunt implementate sub forma circuitelor integrate LSI sau VLSI. Pe masura evolutiei tehnologice de la integrarea pe scara redusa (SSI sau MSI) la integrarea pe scara larga, cerintele impuse sistemelor CAD au crescut substantial. Tipul utilitarelor de proiectare s-a diversificat n mod semnificativ. De exemplu, este important simularea functionarii circuitului naintea fabricatiei.

Exista diferite tipuri de circuite VLSI utilizate actualmente. Se pot distinge urmatoarele categorii importante de circuite VLSI: Retele de porti Celule standard Macro-celule (blocuri constructive) Retele logice programabile (PLA - Programmable Logic Array) Dispozitive logice programabile (PLD - Programmable Logic Device) Retele de porti programabile (FPGA - Field-Programmable Gate Array)

Circuitele FPGA (Field-Programmable Gate Array) sunt circuite integrate programabile de catre utilizator care permit un acces rapid la circuite VLSI configurabile. Un circuit FPGA consta dintr-o retea de celule logice care pot fi interconectate prin comutatoare de rutare programabile. Circuitele FPGA combina facilitatile retelelor de porti programabile prin masti MPGA (Mask Programmable Gate Array) si a dispozitivelor logice programabile PLD (Programmable Logic Device). De la circuitele MPGA s-a adoptat structura retelei bidimensionale de celule logice, iar de la circuitele PLD s-a preluat programabilitatea de catre utilizator.Dupa introducerea lor de catre firma Xilinx, circuitele FPGA au evoluat n mod considerabil pe masura ce au fost dezvoltate diferite noi tipuri de dispozitive. Utilizarea circuitelor FPGA s-a raspndit pe scara larga, ceea ce se datoreaza duratei reduse de productie si costului relativ redus al acestor dispozitive programabile. Reprezentnd un mediu de implementare pentru circuite VLSI configurabile, circuitele FPGA ofera urmatoarele avantaje fata de tehnologiile alternative (MPGA, celule standard, macrocelule):

Circuitele FPGA permit o reducere semnificativa a ciclului de proiectare si productie;Circuitele FPGA asigura o reducere a costului de productie al circuitelor VLSI.

Aceste avantaje, care se datoreaza programabilitatii de catre utilizator a circuitelor, asigura o reducere a duratei de proiectare, deoarece se pot realiza ntr-un timp scurt iteratii multiple de proiectare. Totusi, programabilitatea de catre utilizator are si dezavantaje: densitatea logicii si performantele de viteza ale circuitelor FPGA sunt considerabil mai reduse dect ale celorlalte alternative. Desi mbunatatirile din ultimii ani au permis cresterea performantelor circuitelor, sunt necesare nca eforturi de cercetare pentru a dezvolta arhitecturi optime pentru circuitele FPGA.

Cercetarile din ultimii ani legate de circuitele FPGA au ncercat sa evalueze modul n care arhitectura acestor circuite afecteaza cele doua metrici importante: suprafata totala a circuitului si performantele de viteza. Pentru experimentele efectuate asupra diferitelor arhitecturi propuse, cercetatorii au dezvoltat si utilitare de proiectare asistata de calculator n scopul implementarii sistemelor numerice cu ajutorul circuitelor propuse. Pentru diferiti parametri ai arhitecturilor (complexitatea blocurilor logice, flexibilitatea interconexiunilor etc.), au fost evaluate performantele acestor arhitecturi, ajustndu-se n mod iterativ arhitectura circuitelor, ct si utilitarele CAD. Sunt descrise n continuare unele aspecte de cercetare legate de circuitele FPGA.

2. Etapele proiectului

a) Modelare PSIM a structurii 3L-ANPCb) Notiuni elementare de programare VHDL utilizand mediul Quartus c) Elemente necesare implementarii unei comenzi numerice PWMc1) Implementare divizor de frecventa utilizand programul Quartusc2) Generare semnal triunghiular de frecventa si amplitudine prestabilite d) Implementare comanda numerica PWM pentru o celula de comutatie 2Ld1) Implementare comparator si comandad2) Testare comanda numerica PWM 2L pe macheta experimentalae) Inplementare comanda numerica PWM pentru convertorul multinivel 3L-ANPCe1) Programare Quartuse2) Testare comanda numerica PWM 3L pe macheta experimentala f) Evaluare

3. Mod de realizare

Celula de comutatie 3L-ANPC este alctuita dintr-o celula de comutatie 3L bidirectionala si o celula de comutatie 2L. Mai intai se va efectua simularea structurii elementare 2L utilizand o strategie PWM sinusoidala. Scopul acestei simulari consta in fixarea elementelor specifice comenzii pentru a fi urmarite/implementate cu usurinta in cadrul programului Quartus.Pentru elaborarea acestei comenzi se vor compara 2 semnale : unul de referinta (Sr) si unul purtator (Sd). Semnalul purtator triunghiular are frecventa fsw. Cele doua intreruptoare T1 si T2 se comanda complementarObs. : Nu se implementeaza intervalele de garda . Acestea sunt deja implementate in macheta experimentala (~3.5 us) prin intermediul driverelor SKHI 22A.

Figura 1: Invertorul monofazat de tensiune in montaj semipunte

Se analizeaza ondulatiile curentului de sarcina pentru a putea fi comparate cu structura multinivel.

Aceste ondulatii sunt maxime pentru un raport ciclic =0.5;

De asemenea, se analizeaza tensiunea comutata de intreruptoare si se efectueaza transformarea Fourier (FFT) pentru tensiunea la bornele sarcinii (uAO).

Figura 2: Comanda unei celule elementare de tip invertor 2L

Figura 3: Analiza FFT a tensiunii la bornele sarcinii

In partea a doua a acestei etape se simuleaza convertorul 3L-ANPC , publicat pentru prima data in 2001. Aceasta structura poate fi comandata cu diferite strategii PWM. In cadrul acestui proiect se implementeaza si se testeaza experimental strategia PWM-3. Principalul avantaj al acesteia consta in dublarea frecventei aparente de comutatie la iesirea convertorului.

Figura 4: Schema de principiu a structurii 3L-ANPC

Strategia PWM-3 este prezentata in detaliu in figura urmatoare . Semnalul de referinta Sr este comparat cu 2 semnale purtatoare triunghiulare Sd1 si Sd2. Semnalele purtatoare sunt defazate cu TSW/2 (PS- Pase-shifted PWM).

Figure 5: Schema implementata in Psim a strategiei PWM-3

Figura 6: Tensiunea si curentul de sarcina (10*Is)

Rezultatele simularii pentru invertorul 3LPentru calculul ondulatiilor maxime ale curentului se utilizeaza relatia:

Figura 7: Analiza FFT a tensiunii la bornele sarcinii (fsw=500Hz)

b)Notiuni elementare de programare VHDL utilizand mediul QuartusLimbajul VHDL permite programarea, simularea si conceptia circuitelor sau sistemelor numerice. Este un limbaj care prezinta un nivel ridicat de abstractizare ( nu face referinta la componenta sau la structura pentru care este utilizat) si este , in particular, bine adaptat la programarea circuitelor numerice tip FPGA.Aceasta etapa are ca obiectiv cunoastera limbajului VHDL si a mediului de dezvoltare Quartus pentru a putea sintetiza si simula comenzi numerice PWM complexe.

Entitatea si arhitecturaIn cadrul VHDL, o structura logica este descrisa cu ajutorul unei entitati si o arhitectura, dupa cum urmeaza in descrierea generala:ENTITY Nume_entitate ISDescrierea intrarilor si iesirilor structurii explicand pentru fiecare dintre ele numele, directia (IN, OUT si INOUT) si tipul.

END Nume_entitate;

ARCHITECTURE Nume_arhitectura OF Nume_entitate IS

Zona de declaratii variabile

BEGIN

Descrierea structurii logiceExemple de tipuri de variabile si operatori VHDL:clk: in STD_LOGIC;intrare logica (1 sau 0)S1: out STD_LOGIC_VECTOR (7 downto 0);iesire pe 8 bitiS2: out STD_LOGIC;iesire logica (1 sau 0)

Libraria IEEE furnizeaza numerosi operatori:and, or, nor, xor, xnor, not ,=, /=, < , , >=, +, =, & ,- ,*, /, **,absrising_edge(): detectarea unui front crescator. Ex.: rising_edge(clk)

Alocari:a este un vector (a:STD_LOGIC_VECTOR (7 downto0);) atunci afectarea se face de tipul : a:=11111001; a=(505)

b este o variabila logica (b: STD_LOGIC;) atunci afectarea se face de tipul: b:=0c si d sunt 2 variabile logice : pentru a afecta valoarea c lui d, scriem : dNew->Verification/Debugging Files->Vector Waveform ). Fisierul se salveaza sub acelasi nume cu proiectul. Din meniul Assignments- Settings se selecteaza pentru Simulation Mode modul Functional Din meniul Processing se selecteaza Generate Functional Simulation Netlist Din meniul Processing se selecteaz Start Simulation

Se atribuie semnalului de intrare frecventa clk_FPGA de 16MHz si se verific cu atentie buna functionare a divizoarelor (perioadele semnalelor clk_4MHz i clk_l 5625Hz).Exemplu de calcul al raportului efectiv de conductie pentru N=8 .Pentru N=8, pasul minim care se poate obtine este 1/N, adic 0.125. Dac se doreste un raport de conductie = 0.35, se poate alege raportul de conductie numeric Rcnum =3, iar raportul de conductie real este : real= 3*0.125=0.375.Valoarea efectiva a raportului de conductie se calculeaza cu expresia generalizata:ef=(2*Rcnum-1)/(2*N-2)Dac Rcnum=3 real = 0.375, iar ef =(2*Rcnum-1)/(2*N-2) = 0.357

Numarul N defineste precizia temporara a rampei (semnalul purtator triunghiular). Perioada de comutatie este decupata in (2N-2) intervale. Acest numar defineste, de asemenea, precizia semnalului de referinta. Inaltimea referintei este decupata in N intervale. Raportul 1/N reprezinta precizia cu care se poate modifica semnalul de referinta numeric si trebuie sa fie mai mica de 0.5%.

c2) Generare semnal triunghiular de frecventa si amplitudine prestabilite

Definirea semnalului purtator triunghiularSe realizeaza un bloc care numara crescator si descrescator intre 0 i N-l. Acest bloc are ca marime de intrare un ceas (Tclk). Se sincronizeaza incrementarea si decrementarea contorului pe frontul crescator al ceasului. Se prevede un semnal care indica sensul de numarare (crescator sau descrescator).

i.Se deschide un nou fisier VHDL in cadrul aceluiasi proiect Celula_2L :FileNewDesign Files (VHDL File)ii.Se copiaza programul VHDL urmator, care defineste semnalul purtator triunghiular.

library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity purtatoare isport (clk_4MHz:in STD_LOGIC;Rampa: out STD_LOGIC_VECTOR (7 downto 0);Sens: out STD_LOGIC);end purtatoare;architecture F3 of purtatoare isbeginprocess(clk_4MHZ)variable compt:STD_LOGIC_VECTOR(7 downto 0);variable test:STD_LOGIC;beginif rising_edge(clk_4MHZ) thenif(compt=0) thensens