Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

download Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

of 78

Transcript of Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    1/78

    UNIVERSITATEA TEHNICGHEORGHE ASACHI DIN IAI

    coala Doctoral a Facultii de

    Automatici Calculatoare

    SISTEME NCORPORATE CU FPGA PENTRU

    CONTROLUL PROCESELOR RAPIDE

    - REZUMATUL TEZEI DE DOCTORAT -

    Conductor de doctorat:

    Prof. univ. dr. ing. Alexandru Onea

    Doctorand:

    Ing. Bogdan Alecsa

    IAI - 2011

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    2/78

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    3/78

    UNIUNEA EUROPEAN GUVERNUL ROMNIEIMINISTERULMUNCII, FAMILIEI I

    PROTECIEI SOCIALEAMPOSDRU

    Fondul Social EuropeanPOSDRU 2007-2013 Instrumente Structurale2007-2013 OIPOSDRU UNIVERSITATEA TEHNICGHEORGHE ASACHI

    DIN IAI

    UNIVERSITATEA TEHNICGHEORGHE ASACHI DIN IAI

    coala Doctoral a Facultii de

    Automatici Calculatoare

    SISTEME NCORPORATE CU FPGA PENTRU

    CONTROLUL PROCESELOR RAPIDE

    - REZUMATUL TEZEI DE DOCTORAT -

    Conductor de doctorat:

    Prof. univ. dr. ing. Alexandru Onea

    Doctorand:

    Ing. Bogdan Alecsa

    IAI - 2011

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    4/78

    UNIUNEA EUROPEAN GUVERNUL ROMNIEIMINISTERULMUNCII, FAMILIEI I

    PROTECIEI SOCIALEAMPOSDRU

    Fondul Social EuropeanPOSDRU 2007-2013 Instrumente Structurale2007-2013 OIPOSDRU UNIVERSITATEA TEHNICGHEORGHE ASACHI

    DIN IAI

    Teza de doctorat a fost realizat cu sprijinul financiar al

    proiectului Burse Doctorale - O Investiie n Inteligen (BRAIN).

    Proiectul Burse Doctorale - O Investiie n Inteligen (BRAIN),

    POSDRU/6/1.5/S/9, ID 6681, este un proiect strategic care are caobiectiv general mbuntirea formrii viitorilor cercettori n cadrul

    ciclului 3 al nvmntului superior - studiile universitare de doctorat

    - cu impact asupra creterii atractivitii i motivaiei pentru cariera n

    cercetare.

    Proiect finanat n perioada 2008 - 2011.

    Finanare proiect: 14.424.856,15 RON

    Beneficiar: Universitatea Tehnic Gheorghe Asachi din Iai

    Partener: Universitatea Vasile Alecsandri din Bacu

    Director proiect: Prof. univ. dr. ing. Carmen TEODOSIU

    Responsabil proiect partener: Prof. univ. dr. ing. Gabriel LAZR

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    5/78

    UNIUNEA EUROPEAN GUVERNUL ROMNIEIMINISTERULMUNCII, FAMILIEI I

    PROTECIEI SOCIALEAMPOSDRU

    Fondul Social EuropeanPOSDRU 2007-2013 Instrumente Structurale2007-2013 OIPOSDRU UNIVERSITATEA TEHNICGHEORGHE ASACHI

    DIN IAI

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    6/78

    4

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    7/78

    5

    Cuvnt nainte

    Lucrarea de fa este rezultatul a trei ani de studii n cadrul colii Doctorale a Facultiide Automatic i Calculatoare, Universitatea Tehnic Gheorghe Asachi din Iai, studiisprijinite prin programul Burse doctorale o investiie n inteligen BRAIN.

    Elaborarea acestei lucrri s-a fcut sub ndrumarea atenti competent a domnului prof.dr. ing. Alexandru Onea, cruia autorul i mulumete pentru ncurajarea formrii unei atitudiniindependente i, n acelai timp, direcionarea avizat ctre rezultate semnificative.

    Autorul se simte ndatorat n mare msuri fa de colectivul Catedrei de AutomaticiInformatic Aplicat, i n special fa de conductorul acestuia, domnul prof. dr. ing. CorneliuLazr, pentru discuiile constructive i trimiterile bibliografice valoroase.

    O pondere important n aceast lucrare o are activitatea de cercetare desfurat laAnglia Ruskin University, n Cambridge, UK, la invitaia i sub supravegherea domnului prof.dr. ing. Marcian Crstea, fr a crui implicare aceast lucrare ar fi fost mult mai srac. Deasemenea, atitudinea profesionist i prietenoas a domnului dr. ing. Alin Tisan, din acelaicolectiv, a fcut posibil realizarea cu succes a experimentelor de laborator.

    Att ideea acestei lucrri, ct i primii pai n aceast direcie, au fost rezultatul unordiscuii aprinse i fructuoase cu domnul dr. ing. fiz. Aleodor Daniel Ioan, care a abordat anterioro direcie de cercetare conex.

    Nu n ultimul rnd, aceast lucrare este rezultatul unui mediu competitiv i prietenos,pentru care autorul mulumete colegilor doctoranzi.

    Publicarea unora din rezultatele acestei lucrri a fost posibil datorit eforturilordeosebite de gestionare a fondurilor grant-ului SICONA-12100/2008, n care autorul estemembru, ale directorului de proiect, domnul prof. dr. ing. Corneliu Lazr.

    Autorul recunoate c lucrarea poate fi mbuntiti este contient de unele stngcii nexprimare i lipsuri n explicaii. Se presupune totui o oarecare familiaritate a cititorului cu

    domeniul abordat, dei acesta este la confluena dintre automatic, inginerie electrici ingineriacalculatoarelor, care s-l ajute s treac peste micile neajunsuri.Pe parcursul lucrrii, toate acronimele folosite au fost definite la prima utilizare. Adesea,

    s-a reexplicat un acronim dac acesta a fost definit ntr-o seciune anterioar mai ndeprtat. ngeneral, s-a preferat utilizarea acronimului din limba englez, foarte cunoscut i n literatura despecialitate de limb romn, scznd riscul de confuzii. Tot pentru evitarea confuziilor, termeniitradui din limba englez pentru care nc nu exist un echivalent consacrat n literatura despecialitate de limb romn au fost specificai n parantez n original. De asemenea, uniitermeni au fost pstrai n englez pe tot parcursul lucrrii, fr a se ncerca traducerea (deexemplu: hardware,software).

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    8/78

    6

    Cuprins

    1. Introducere............................................................................................................................. 72. Dispozitive FPGA n controlul mainilor electrice ............................................................. 11

    2.1 Evoluia dispozitivelor FPGA .......................................................................................... 11

    2.2 Arhitecturi actuale de FPGA ............................................................................................ 122.3 Metodologia de proiectare a unui sistem de control implementat n hardware pe FPGA132.4 Sisteme de control pentru motoare electrice implementate n FPGA............................... 152.5 Concluzii........................................................................................................................... 18

    3. Unelte de dezvoltare pentru dispozitive FPGA................................................................... 193.1 Prezentare general a uneltelor de proiectare pentru FPGA............................................. 193.2 Proiectarea n mediul Simulink a structurilor hardware folosind blockset-ul SystemGenerator.................................................................................................................................. 213.3 Unelte de depanare pentru sisteme implementate n FPGA.............................................243.4 Studii de caz...................................................................................................................... 253.5 Concluzii........................................................................................................................... 35

    4. Proiectarea sistemelor cu procesoaresoftncorporate n FPGA ......................................... 374.1 Consideraii privind proiectarea de procesoaresoftpentru FPGA................................... 374.3 Co-proiectarea hardware-software n sisteme de control studiu de caz........................ 394.4 Concluzii........................................................................................................................... 41

    5. Metode moderne de modulaie pentru controlul invertorului trifazic i implementarea lor nFPGA ............................................................................................................................................ 41

    5.1 Modulaia PWM sinusoidal ............................................................................................ 425.2 Implementarea n FPGA a modulatorului PWM sinusoidal cu injecie de semnal la

    punctul neutru (ZSS)................................................................................................................ 455.3 Modulaia bazat pe vectori spaiali ................................................................................. 48

    5.4 Implementarea n FPGA a modulatorului bazat pe vectori spaiali.................................. 515.5 Comparaie ntre cele dou modulatoare.......................................................................... 535.6 mbuntirea rezoluiei modulatorului SVM................................................................... 545.7 Concluzii........................................................................................................................... 55

    6. Proiectarea unui sistem de control al vitezei pentru motorul PMSM implementabil nhardware pe FPGA....................................................................................................................... 56

    6.1 Modelarea motorului PMSM............................................................................................ 566.2 Proiectarea sistemului de control al vitezei pentru motorul PMSM................................. 586.3 Validarea sistemului de control n continuu.....................................................................606.4 Discretizarea sistemului de control................................................................................... 626.5 Factorizarea i implementarea algoritmului de control .................................................... 63

    6.6 Interfaarea senzorilor.......................................................................................................656.7 Implementarea n FPGA i rezultate experimentale......................................................... 676.8 Concluzii........................................................................................................................... 68

    7. Concluzii generale ............................................................................................................... 708. Bibliografie selectiv........................................................................................................... 71

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    9/78

    7

    1. IntroducereLucrarea de fa i propune cercetarea metodelor de proiectare a sistemelor ncorporate

    bazate pe dispozitive de tip FPGA (FieldProgrammable Gate Array) n vederea realizrii desisteme de control rapide, de nalt performan. Prin sistem ncorporat se nelege un sistemelectronic digital de dimensiuni reduse, proiectat pentru o aplicaie specific, lucrnd subincidena unor constrngeri de timp real. Termenul ncorporat, o traducere aproximativ a mult

    mai cunoscutului i acceptatului termen embedded din limba englez, se poate aplica unuisistem din mai multe puncte de vedere:

    De obicei, aceste sisteme electronice sunt ncorporate din punct de vedere fizic nprodusul final, formnd un tot unitar cu elementele electrice i mecanice cu careinteracioneaz.

    Dintr-o alt perspectiv, termenul se aplic adesea cu privire la sistemul de calculce formeaz centrul sistemului digital: acesta nu este un procesor obinuit, detipul celor utilizate n calculatoarele personale, ci ncorporeaz pe un singur cip imemorie de program i de date i circuite periferice. De obicei, aceste cipuri suntmicrocontrolere sau controlere digitale de semnal (DSC Digital Signal

    Controller). Acest din urm termen este folosit recent pentru desemnarea unorcircuite complexe de tip microcontroler, dotate deci cu periferice puternice, alcror procesor este ns proiectat special pentru a realiza eficient operaii specificedomeniului prelucrrii digitale de semnal. DSC-urile sunt aadar o combinaientre microcontrolere i procesoare digitale de semnal (DSP DigitalSignalProcessor).

    a treia accepiune a termenului ncorporat se refer la faptul c aceste sistemesunt de obicei bazate pe un procesor, iar acesta ruleaz un program ce executsarcinile sistemului. Aadar, sistemul nu este reprezentat doar de circuiteleelectronice ce-l compun, ci ncorporeazisoftware-ul ce se execut pe el.

    n aceast lucrare, ns, se va discuta despre sisteme ncorporate cu dispozitive FPGA.

    Aadar, centrul sistemului va fi un FPGA, nu un microcontroler sau DSC. Dei acest lucru poateprea n contradicie cu punctele al doilea i al treilea enunate mai sus, o privire mai atentasupra dispozitivelor FPGA va estompa aceast contradicie. Aceasta deoarece FPGA-urilereprezint actualmente platforme pentru sisteme digitale complexe i ofer elementecomputaionale din ce n ce mai sofisticate i mai numeroase. Termenul FPGA, tradus nromnete prin matrice sau arie de pori logice re-programabil, are o conotaie mai mult istoric,

    pentru c dispozitivele FPGA nu mai sunt doar circuite reconfigurabile ce pot implementa funciilogice complexe, cum erau la apariia lor, cnd se utilizau ca logic de legtur n sistemele cu

    procesor. Acum, pe un FPGA se integreaz blocuri de memorie RAM (Random Access Memory)i multiplicatoare hardware sau chiar celule DSP bazate pe operaia combinat nmulire-acumulare (MAC Multiply-Accumulate). Pe lng faptul c densitatea de integrare a dus la

    construirea de FPGA-uri cu milioane de pori logice echivalente, aceste elemente computaionaleavansate (pe un FPGA pot fi de la cteva zeci la cteva mii de celule DSP) permit transformareaFPGA-ului ntr-o main de calcul extraordinar. Aadar, FPGA-ul poate constitui unitatea de

    procesare a sistemului ncorporat. Aceasta se poate realiza prin implementarea algoritmului decontrol direct n hardware pe FPGA, dei se poate apela i la varianta clasic: n FPGA se poateimplementa un procesorsoft, iar pe acesta va rula nsoftware algoritmul.

    Faptul c dispozitivele FPGA pot constitui maini de calcul performante a condus i lainteresul acordat acestor dispozitive n domeniul controlului automat, domeniu n care algoritmiise preteaz la paralelizare i timpii de calcul pot fi critici. Acest interes este subliniat de sec iunispeciale n IEEE Transactions on Industrial Electronics, jurnalul numrul 1 n categoriaThomson Reuters Automation & Control Systems [1], consacrate utilizrii FPGA-urilor nsisteme de control industriale (volumul 54, numrul 4, august 2007 i volumul 55, numrul 4,aprilie 2008).

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    10/78

    8

    Industria dispozitivelor FPGA este, n prezent, cea mai profitabil dintre ramurileindustriei electronice (conform unui studiu publicat de Forbes, cu date de la Audit Integrity, FTInteractive Data, Thomson IBES, Thomson Reuters, Worldscope, Bloomberg, Standard &Poors, Thomson One Analytics, Value One), dou dintre cele patru companii din industriaelectronic din top sunt productorii de FPGA-uri Altera i Xilinx) [2]. Este, de asemenea, ceamai inovativ din punct de vedere tehnologic, actualmente cele mai noi procese de produc ie a

    semiconductorilor fiind testate pe dispozitive FPGA. Succesul acestei industrii se datoreaz nprimul rnd unui nou mod de a pune problema: dispozitivele FPGA ofer elemente integrate decomplexitatea celor posibile n circuitele integrate orientate pe aplicaie (ASIC - ApplicationSpecific Integrated Circuit), cu avantajul programabilitii, sau, mai bine zis, alconfigurabilitii. Se impune precizarea acestui termen: dei n denumirea FPGA apare cuvntulprogramabil, acesta duce cu gndul la un program software ce ruleaz pe un procesor i ce

    poate fi modificat. Or, n ceea ce privete FPGA-urile, aceast situaie este un caz particular nufoarte rspndit: de cele mai multe ori, sarcinile sunt executate n hardware pe FPGA. De aceea,este mai clar termenul configurabil n legtur cu posibilitatea de a redefini funcionalitateandeplinit de circuitul FPGA.

    Lucrarea este structurat pe cinci capitole i se ocup de conturarea unei metodologii

    originale de proiectare a unui sistem bazat pe FPGA pentru controlul motorului sincron cumagnei permaneni (PMSM Permanent Magnet Synchronous Machine). Sunt prezentatesintetic i informaii conexe, de la arhitectura dispozitivelor FPGA i software-ul SystemGenerator la metode de optimizare a proiectrii structurilor numerice innd cont de

    particularitile dispozitivelor FPGA.Al doilea capitol prezint locul dispozitivelor FPGA n sistemele de control moderne

    pentru motoare electrice. Pentru atingerea acestui scop, se ncepe cu o prezentare sumar adispozitivelor FPGA, ncepnd cu un scurt istoric i ajungnd la detaliile arhitecturale aledispozitivelor actuale. Astfel, n primul subcapitol este punctat istoric evoluia dispozitivelorFPGA, mprit n patru etape ce se pot separa pe baza apariiei unor noi caracteristici aledispozitivelor i uneltelor de dezvoltare pentru ele. Cel de-al doilea subcapitol reprezint otrecere n revist succint, de sintez, a familiilor actuale de FPGA-uri produse de Xilinx. Seinsist pe elementele arhitecturale ale fiecrei familii, evideniindu-se faptul c aceste dispozitivenu sunt simple arii de pori logice interconectabile, ci integreaz elemente complexe de

    procesare. n al treilea subcapitol este prezentat o metodologie general de proiectare asistemelor de control automat implementate n FPGA. Aceasta se bazeaz pe trei principiifundamentale: 1) rafinarea algoritmului, 2) modularitatea i reutilizabilitatea, 3) potrivireaoptim algoritm-hardware. n finalul capitolului, un subcapitol este dedicat prezentriisistemelor bazate pe FPGA pentru controlul motoarelor electrice recent aprute n literatur.Aceast prezentare constituie un studiu al stadiului actual al cercetrii, util att pentru a subliniaoriginalitatea i validitatea rezultatelor obinute cu aceast tez, ct i pentru a o nscrie n

    tendinele din cercetare n domeniu la nivel internaional.Capitolul 3 descrie uneltele de dezvoltare disponibile pentru proiectarea sistemelorbazate pe FPGA. n primul subcapitol, dup o prezentare a evoluiei uneltelor de dezvoltarelegat de evoluia dispozitivelor FPGA, ce a fost expus n capitolul anterior, sunt trecute nrevist principalele unelte disponibile, grupate pe trei categorii: nuclee IP, unelte pentru sistemencorporate, unelte pentru nuclee DSP. Al doilea subcapitol constituie un studiu mai amnunit al

    software-ului System Generator produs de Xilinx, ce permite proiectarea de module hardwaredirect implementabile n FPGA din mediul Matlab Simulink. Este prezentat de asemeneametoda de importare a unor module proiectate prin alte metode n Simulink i co-simularea lorfolosind combinaia de unelte Simulink-ModelSim. Cel de-al treilea subcapitol este o scurttrecere n revist a uneltelor de depanare pentru sisteme bazate pe FPGA.

    n finalul capitolului se prezint trei studii de caz originale, ilustrative pentru metodele deproiectare (i combinarea lor) folosind dispozitive FPGA. Primul dintre acestea urmreteproiectarea unui sistem de control al vitezei pentru motorul de curent continuu integrndu-l ntr-o

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    11/78

    9

    bucl cu calare pe faz. n acest sens s-a proiectat un detector de fazi frecven original, ce afost validat prin simulare n ModelSim. Apoi s-a proiectat un filtru de bucl de tip proporional-integrator i s-a integrat ntreg sistemul n FPGA. Proiectarea s-a realizat la nivel de schemlogic. Sistemul a fost verificat experimental, dovedind c este capabil de calare pe fazi decide control al vitezei.

    n al doilea studiu de caz s-a proiectat un sistem de control al vitezei pentru motorul de

    curent continuu folosind algoritmul deadbeat. Acesta a fost proiectat ca un filtru cu rspunsinfinit la impuls n Simulink, folosind blocuri System Generator. A fost validat prin simulare,folosind un model al motorului, apoi a fost implementat pe FPGA i verificat experimental.Rspunsul sistemului experimental s-a dovedit n perfect concordan cu cel al sistemuluisimulat. Pentru proiectare s-a folosit captura de schem logic pentru interfaa cu convertoareleanalog-numeric i numeric-analogic, mediul StateCAD pentru proiectarea mainilor cu stri decontrol i System Generator pentru regulator.

    Cel de-al treilea studiu de caz s-a ocupat de proiectarea unui sistem de control al vitezeipentru motorul BLDC (Brushless DC). Spre deosebire de motorul de curent continuu clasic,motorul BLDC se caracterizeaz prin faptul c tensiunea de comand trebuie comutat ntre

    perechi de nfurri ale statorului. n acest scop s-a proiectat n FPGA un set de module

    originale pentru comutarea tensiunii n motor n funcie de poziia rotorului. Acestea, proiectatela nivel de schem logic, au fost combinate cu un algoritm de control de tip PI, proiectat nSimulink. ntregul sistem a fost validat prin co-simulare Simulink-ModelSim i verificatexperimental.

    Originalitatea i actualitatea sistemelor de control prezentate n acest capitol au condus laredactarea i publicarea a 6 lucrri: [102], [103], [105], [109], [110], [111].

    n Capitolul 4 este abordat domeniul procesoarelorsoft implementabile n FPGA. Prinprocesorsoftse nelege un procesor implementat n resursele de uz general ale unui FPGA. nprimul subcapitol sunt expuse cteva consideraii teoretice cu privire la proiectarea de procesoaresoft n vederea implementrii pe dispozitive de tip FPGA, subliniindu-se modul n careproiectarea trebuie sin cont de arhitectura specific a FPGA-ului, destul de diferit de cea aunui ASIC. Cum pn la redactarea acestui capitol, autorul i-a format deja o prere privind

    perspectivele implementrii n hardware a algoritmilor de control, mult superioar din punctulde vedere al vitezei de execuie fa de implementarea n software, s-a gsit o ni unde

    procesoarele soft prezint interes n aplicaiile de control: sarcinile de monitorizare. Astfel, nultimul subcapitol se prezint un studiu de caz original: co-proiectarea hardware-software nsisteme de control. Sistemul de control al vitezei pentru motorul BLDC, prezentat n finalulcapitolului precedent, a fost completat cu sarcini de monitorizare: parametrii regulatorului suntvizualizai pe un afior alfanumeric cu cristale lichide i sunt transmii serial pe o interfaRS232 la un calculator gazd, mpreun cu valorile instantanee ale semnalelor de comandi derspuns. Problema a fost partiionat ntresoftwarei hardware: algoritmul de control se execut

    n hardware proiectat special pentru aplicaie (prezentat deja), iar sarcinile de monitorizare, curestricii de temporizare mult mai relaxate, se execut prin software pe procesoare PicoBlaze.Sistemul de control prezentat la sfritul capitolului anterior a fost aadar extins cu dou sistemecu procesorsoft. Fiecare se ocup cu una singur din cele dou sarcini, uurndu-se astfeldezvoltareasoftware-ului i interfaarea fiecrui sistem cu resursele hardware. S-a obinut astfelun sistem complex pe un singur cip, coninnd att elemente hardware, ct isoftware, originalei proiectate pentru aplicaia exemplificat. Sistemul s-a verificat experimental, obinndu-se pecalculatorul gazd o interfa n timp real cu motorul BLDC controlat.

    Sistemul a fost descris n lucrarea publicat [122].Ultimele dou capitole sunt dedicate atingerii scopului declarat al lucrrii: proiectarea

    unui sistem de control al vitezei pentru motorul sincron cu magnei permaneni. Cum acest tip de

    motor necesit tensiuni sinusoidale de alimentare a fazelor statorului, au fost studiate mai ntitehnici de modulaie pentru obinerea eficient a acestora.n acest sens, n Capitolul 5 se prezint 2 tehnici de modulaie moderne i eficiente

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    12/78

    10

    pentru controlul digital al invertoarelor trifazate: modulaia sinusoidal cu injecie de semnal lapunctul neutru i modulaia bazat pe vectori spaiali.Astfel, n primul subcapitol sunt prezentatecteva aspecte teoretice ale modulaiei sinusoidale n limea impulsurilor, pentru ca n al doileasubcapitol s se discute implementarea pe un dispozitiv FPGA a acestei tehnici de modulaie,mbuntit prin injecia de semnal triunghiular la punctul neutru. Modulatorul prezentat a fost

    proiectat folosind System Generator, implementat pe FPGA i testat experimental.

    n al treilea subcapitol este prezentat modulaia bazat pe vectori spaiali, urmat nsubcapitolul patru de proiectarea modulatorului i implementarea sa folosind System Generator.Pentru proiectare s-a folosit o variant a algoritmului bazat pe calcule geometrice simple i s-aufructificat la maximum posibilitile de paralelizare a operaiilor, obinndu-se o implementarecu un timp de calcul foarte scurt, de doar 160ns la o frecven de tact de 50MHz. i acestmodulator a fost implementat fizic i testat experimental. Al cincilea subcapitol face ocomparaie ntre cele dou modulatoare proiectate, avnd n vedere c din punctul de vedere alrezultatului ele sunt echivalente. Concluzia acestui studiu comparativ este c modulatorul bazat

    pe vectori spaiali este mult mai potrivit pentru utilizarea ntr-un sistem de control pentru unmotor de curent alternativ trifazat, datorit faptului c se execut mai repede, are nevoie de mai

    puine multiplicatoare hardware (o resurs critic n FPGA-urile de cost redus) i se aplic

    reprezentrii bifazate a semnalelor de intrare, mai apropiat de reprezentarea intern ntr-unsistem de control dect cea trifazat. n subcapitolul ase s-a extins rezoluia modulatorului bazat

    pe vectori spaiali prin tehnici caracteristice dispozitivelor FPGA, i anume utilizarea de semnalede tact defazate de o unitate de gestionare a semnalelor de tact din FPGA pentru sincronizareafronturilor impulsurilor de ieire din modulator. Modulatorul astfel mbuntit a fost testatexperimental pentru controlul unui motor de inducie, folosind tehnica n bucl deschis V/Hz.

    Originalitatea studiilor prezentate n acest capitol i validitatea rezultatelor experimentaleobinute au condus la redactarea i publicarea a 4 lucrri: [143], [144], [145], [146].

    n sfrit, n Capitolul 6 se expune proiectarea unui sistem de control al vitezei pentrumotorul sincron cu magnei permaneni. n primul subcapitol este prezentat modelareamotorului n sistemul de coordonate rotitor sincron cu rotorul. Aceast abordare simplific foartemult modelul motorului, eliminnd parametrii variabili n timp din ecua iile ce-l descriu, darcomplic sistemul de control, ce va trebui s realizeze transformrile de coordonate n timp real.n al doilea subcapitol se prezint proiectarea sistemului de control, folosind trei regulatoare:dou regulatoare PI pentru cureni i un regulator combinat PI-P pentru vitez. Parametriiregulatoarelor sunt derivai prin metoda alocrii polilor, innd cont de modelul motorului. n altreilea subcapitol, sistemul de control analogic (continuu) a fost validat prin simulare nSimulink. Apoi, n cel de-al patrulea subcapitol, sistemul de control a fost discretizat iimplementat folosind blocuri System Generator. n acest moment, s-a verificat c prindiscretizare comportarea sistemului de control rmne la fel cu comportarea sistemului decontrol continuu. Dei n acest stadiu sistemul de control realizat cu blocuri System Generator

    este direct implementabil n FPGA, el nu este utilizabil n aceast form deoarece ar necesitaprea multe resurse (mai multe multiplicatoare dect sunt disponibile n dispozitivul int,Spartan-3E XC3S500E), i ar avea nevoie de un semnal de tact separat, de 20kHz. De aceea,sistemul este factorizat pentru a folosi doar 4 multiplicatoare i reproiectat pentru a fi sincron cusemnalul de tact global, de 50MHz. Acest proces de proiectare, care este i contribuia originalmajor a capitolului, este prezentat n subcapitolul cinci. n subcapitolul ase sunt prezentaisuccint senzorii utilizai n sistem (de curent i de poziie/vitez) i modulele hardware proiectate

    pentru interfaarea lor, iar n ultimul subcapitol sunt descrise rezultatele experimentale dupimplementarea sistemului de control n FPGA. Acestea sunt n perfect concordan curezultatele obinute anterior prin simulare.

    Aadar, s-a realizat cu succes implementarea pe un dispozitiv FPGA de cost redus a unui

    sistem complet de control al vitezei pentru motorul sincron cu magnei permaneni. Acestaconine patru bucle de reacie i se execut n doar 2.14s, incluznd timpul necesar interfariicu senzorii de curent. Aadar, s-a demonstrat c dispozitivele FPGA pot implementa foarte

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    13/78

    11

    eficient algoritmi de control compleci pentru procese rapide (chiar dac motorul are un timp derspuns de cteva ms, variaia curenilor prin motor este foarte rapid, cu timpi de rspuns deordinul zecilor de s). n plus, paii prezentai n acest capitol pentru obinerea unui sistemimplementabil dintr-un model teoretic constituie o metodologie original de proiectare ce se

    poate aplica la implementarea oricrui sistem de control.Sistemul de control prezentat n acest capitol a fost descris n lucrarea [161], acceptat

    spre publicare.Fiecare capitol este ncheiat cu un subcapitol de concluzii, n care se subliniazrezultatele obinute i contribuiile originale. n finalul lucrrii, un capitol de concluzii generalesintetizeaz aceste contribuii i lanseaz cteva direcii viitoare de cercetare.

    Din acest rezumat au fost eliminate subcapitole i poriuni de subcapitole coninndinformaii mai generale, insistndu-se pe seciunile ce prezint elemente de proiectare, principalacomponent de originalitate a tezei. Meniuni referitoare la paragrafele eliminate au fost pstraten seciunile de introducere i concluzii, constituind o invitaie pentru cititor s rsfoiascversiunea complet a tezei. Numerotarea seciunilor rmase (ca i a figurilor, tabelelor iecuaiilor) s-a pstrat ca n tez, n scopul corelrii uoare ntre rezumat i tez pentru cititorulcare va dori s parcurg versiunea complet.

    2. Dispozitive FPGA n controlul mainilor electrice2.1 Evoluia dispozitivelor FPGAPrimul dispozitiv de tip FPGA a fost lansat de firma Xilinx n 1984. Acesta coninea 64

    de blocuri logice interconectate printr-o matrice de conexiuni programabile, avea 58 de pini deintrare/ieire i era implementat n tehnologie de 2m, folosind 85000 de tranzistoare [4].Avantajul acestei arhitecturi era scalabilitatea: odat cu mbuntirea procesului de fabricaie,mai multe elemente de baz puteau fi integrate pe acelai cip, crescnd posibilitile oferite deacesta. Astfel, de-a lungul anilor 1980, productorii de FPGA-uri au continuat s creascnumrul de blocuri logice, numrul nivelelor de interconectare i numrul pinilor de

    intrare/ieire.Perioada 1985 1991 poate fi astfel considerat perioada copilriei dispozitivelorFPGA. Aceasta este caracterizat prin faptul c FPGA-urile erau folosite ca logic de legtur nsisteme mai mari i programele software ce implementau circuitele proiectate n FPGA eraurelativ simple i uor de mbuntit.

    n curnd ns s-a dovedit c aceast abordare nu era suficient: odat cu cretereanumrului de blocuri logice, interconexiunile lungi i complexe dintre ele deveneau factorullimitativ al performanelor dispozitivului. De aceea, avnd n vedere c tehnologia de fabricaie

    permitea integrarea a tot mai multor tranzistoare, a aprut ideea ncorporrii de hardwarededicat. Astfel, la mijlocul anilor 1990 apar primele FPGA-uri cu blocuri de memorie RAMncorporate. Tot atunci apar primele tehnici de cretere pe cip a frecvenei de lucru, prin

    integrarea de circuite cu calare pe faz (PLL Phase LockedLoop) de multiplicare a frecvenei.Perioada 1992 1999 poate fi considerat perioada de expansiune a dispozitivelor FPGA. Lanceputul acestei perioade, multe firme productoare se retrag din domeniu (Plessey, Toshiba,Motorola, IBM) pentru c arhitecturile propuse de ele nu fac fa scalabilitii permise deavansarea rapid a tehnologiei de producie. n aceast perioad, creterea rapid a complexitiicircuitelor pune presiune pe dezvoltarea de software de sintez automat care s permit

    proiectarea uoari folosirea eficient a resurselorhardware. Totodat, FPGA-urile ncep s fiefolosite n aplicaii mai complexe, n domeniul comunicaiilori calculelor aritmetice.

    Perioada 2000 2007 poate fi considerat perioada de acumulare a dispozitivelor FPGA:se integreaz din ce n ce mai multe i mai sofisticate blocuri hardware: de la microprocesoare lacircuite de comunicaie rapid, de la funcii aritmetice specializate la blocuri dedicate procesrii

    digitale de semnal (DSP - DigitalSignalProcessing), bazate pe multiplicatoare hardware iacumulatoare. n 2000 apare primul FPGA cu procesorhardware ncorporat, bazat pe arhitectura

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    14/78

    12

    ARM. De asemenea, odat cu creterea numrului de blocuri logice integrate, a aprut tendinaproductorilor de FPGA-uri de a dezvolta procesoaresoft, implementabile economic n blocurilelogice din FPGA.

    n prezent, FPGA-urile au devenit platforme sistem: ambii mari productori de FPGA-urii descriu dispozitivele complexe n astfel de termeni. Familia Virtex 6 de la Xilinx este descrisca FPGA platform. Familia Stratix IV de la Altera este comercializat ca FPGA high end,

    capabil s implementeze un ntreg sistem pe un cip (SoC - System on a Chip). Astfel, de laepoca blocurilor logice interconectate prin conexiuni programabile, s-a ajuns la dispozitiveconfigurabile complexe, capabile s implementeze un ntreg sistem digital pe un cip, sistemcompus din mai multe procesoare hard sau soft, din motoare de procesare dedicate DSP,coprocesoare matematice, periferice de control al memoriei sau de comunicaie [5].

    Ce rezerv viitorul? Conform [7], se pare c ncepnd din 2007 am intrat n perioadaspecializrii: familii diverse de FPGA-uri, bazate pe arhitecturi diferite, vor oferi dispozitivespecializate pentru diferite tipuri de aplicaii. De asemenea, programele software de sintez lanivel nalt se vor specializa pe domenii diferite de aplicaii.

    2.2 Arhitecturi actuale de FPGA

    Aceast

    seciune va prezenta pe scurt op

    iunile arhitecturale

    i tehnologice ale firmei

    Xilinx, unul din principalii productori actuali de dispozitive FPGA. Xilinx ofer dou familiiprincipale de dispozitive FPGA, Spartan i Virtex. n acest rezumat se prezint doar familiaSpartan.

    Arhitectura familiei Spartan 6 se bazeaz pe felii logice (slice), grupate n blocuri logiceconfigurabile (CLB Configurable Logic Block). Fiecare CLB conine 2 felii alturate. Fiecarefelie conine 4 LUT-uri, 8 bistabili i logic complementar. Exist 3 tipuri de felii logice narhitectura Spartan 6: SLICEM, SLICEL i SLICEX.

    Un sfert din feliile logice ale unui dispozitiv Spartan 6 sunt de tipul SLICEM. Fiecare dincele 4 LUT-uri ale unui SLICEM poate fi configurat ca un singur LUT cu 6 intrri i o ieire sauca 2 LUT-uri cu cte 5 intrri i ieiri independente. LUT-urile pot fi folosite i ca memorie

    RAM distribuit de 64 de bii, configurat ca 64x1 sau 32x2, sau ca registre de deplasare: unregistru de 32 de bii (SRL32 ShiftRegisterLogic) sau 2 registre de 16 bii (SRL16). Ieireafiecrui LUT poate fi salvat ntr-un bistabil. Pentru operaii aritmetice, un lan de propagare atransportului de mare vitez leag ntre ele feliile logice de pe aceeai coloan din FPGA.

    Tot un sfert din feliile logice ale unui dispozitiv Spartan 6 sunt de tipul SLICEL. Acesteaau aceeai structur ca i SLICEM, cu excepia posibilitii de configurare ca memorie distribuitsau registru de deplasare.

    Celelalte felii logice dintr-un Spartan 6 sunt de tipul SLICEX, care elimin din structuraSLICEL logica de generare a transportului i multiplexoarele.

    FPGA-urile Spartan 6 conin i blocuri de memorie RAM cu port dual de 18 kbi i.Accesurile la memorie sunt sincrone cu semnalul de tact. Fiecare port poate fi configurat ca

    16Kx1, 8Kx2, 4Kx4, 2Kx8 (sau x9), 1Kx16 (sau x18), sau 512x32 (sau x36). Cele dou porturide acces la un bloc de memorie pot avea limi diferite. Configuraiile x9, x18 i x36 includ biide paritate. Fiecare bloc de RAM poate fi configurat ca dou jumti de 9kbii independente.

    Unele dispozitive ale familiei includ blocuri de control al memoriei externe (MCB Memory ControllerBlock), fiecare putndu-se interfaa la un cip de memorie DRAM de tipulDDR, DDR2, DDR3 sau LPDDR (Low Power DDR) i putnd atinge rate de transfer de 800Mb/s.

    Dispozitivele Spartan 6 dispun i de blocuri dedicate operaiilor DSP, numite DSP48A1.Fiecare astfel de bloc este alctuit dintr-un multiplicator dedicat 18x18, ce lucreaz cu numerereprezentate n complement fa de 2, i un acumulator de 48 de bii i poate opera la o frecvende lucru de 250 MHz. Blocul DSP48A1 ofer posibilitatea folosirii registrelor interne pentru

    implementarea de pipeline-uri. De asemenea, astfel de blocuri pot fi cascadate datoritmultiplelor faciliti de nlnuire a propagrii transportului. Acumulatorul poate fi folosit i pe

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    15/78

    13

    post de numrtor sincron, iar multiplicatorul poate fi folosit pentru implementarea unui circuitde deplasare cu pas selectabil (barrel shifter).

    Dispozitivele familiei Spartan 6 dispun de circuite speciale pentru generarea semnalelorde tact. Acestea sunt numite blocuri de gestionare a tactului (CMT ClockManagementTile) isunt alctuite fiecare din cte un circuit PLL i dou circuite digitale de gestionare a tactului(DCM Digital Clock Manager). Aceste componente pot fi conectate ntre ele prin trasee

    dedicate, dar pot opera i independent. Circuitul PLL poate fi folosit pentru sintetizareafrecvenelor de tact i filtrarea fluctuaiilor semnalelor de tact externe sau interne.Fiecare circuit PLL are 5 ieiri de tact. Circuitele DCM mbuntesc caracteristicile

    semnalului de tact prin eliminarea asimetriilor sau pot fi folosite pentru generarea de semnale detact defazate (maximum 8 faze: 0, 45, 90, 135, 180, 225, 270, 315) i multiplicare saudivizare de frecven. Circuitele DCM se bazeaz pe bucle cu calare pe ntrziere (DLL DelayLockedLoop).

    Unele circuite din familia Spartan 6, i anume cele din sub-familia Spartan 6 LXT, conincircuite dedicate de transmisie/recepie serial de mare vitez. Acestea suport rate de transferntre 614 Mbps i 3,125 Gbps.

    Informaiile prezentate n aceast seciune au rolul de a evidenia extraordinareleposibiliti oferite de circuitele FPGA actuale. Ele au caracter introductiv, i cititorul estendrumat ctre vasta bibliografie specific firmelor productoare: [11], [12], [13], [14], din cares-a sintetizat aici, pentru informaii mai detaliate.

    Din cele prezentate n aceast seciune se pot trage cteva concluzii: dispozitivele FPGAau devenit ntr-adevr platforme pentru implementarea de sisteme complexe n ntregime pe unsingur cip. Chiar i familiile cu pre sczut integreaz destule componente complexe pentru a

    permite aceasta. n plus, folosirea resurselor disponibile implic cunotine din multe domeniiconexe, de la procesare de semnal la microcontrolere i proiectare de software pentru sistemencorporate, de la proiectare de structuri digitale la descriere n limbaje HDL i simulare aacestora. De aici presiunea foarte mare asupra productorilor de dispozitive FPGA de a aduceuneltele software de proiectare la un nivel ct mai nalt, ct mai abstract, pentru a permitedezvoltarea ct mai rapid de proiecte complexe. Altfel, la ce bun o multitudine de resurse, dacnimeni nu reuete s le foloseasc n ntregime?

    2.3 Metodologia de proiectare a unui sistem de control implementat n hardwarepe FPGA

    Dispozitivele FPGA permit proiectarea de arhitecturi hardware specializate, cu avantajulflexibilitii mediului programabil n care se realizeaz implementarea. Acest lucru ofer un gradde libertate n plus n proiectarea de sisteme de control numeric fa de folosireamicroprocesoarelor, deoarece arhitectura hardware a sistemului de control nu e impusa priori.

    De multe ori, ns, proiectarea acestei arhitecturi este realizat intuitiv i euristic i nu

    este adaptat implementrii de algoritmi din ce n ce mai compleci. Din acest motiv se impunefolosirea unei metodologii de proiectare eficiente. O astfel de metodologie se bazeaz pe trei

    principii majore [19]: rafinarea algoritmului de control, modularitatea i potrivirea optim ntrealgoritmul ce trebuie implementat i arhitectura hardware aleas. Aceste trei concepte sunt

    prezentate n cele ce urmeaz.2.3.1 Rafinarea algoritmuluiRafinarea algoritmului este un pas necesar n proiectarea sistemelor de control cu FPGA.

    Implementarea operaiilor aritmetice n virgul mobil este posibil n FPGA, dar utilizarearesurselor nu este optim n acest caz, datorit arhitecturii de tip matrice de celule logice.Aceast matrice de celule logice este foarte potrivit pentru implementarea de operaiiaritmetice simple de tipul sumator/scztor pentru numere reprezentate n complement fa de 2,dar utilizarea reprezentrii n virgul mobil implic structuri mult mai complexe, cu ci multiplede date, logic de luare a deciziilor i activare a anumitor ci, registre de deplasare pentru

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    16/78

    14

    normalizare, etc. Aceste structuri complexe consum foarte multe resurse, n vreme cereprezentarea numerelor n virgul fix nu necesit niciun fel de resurse adiionale fa dereprezentarea numerelor ntregi n complement fa de 2. Din aceste motive s-au formulat doudirecii de lucru:

    1. Simplificarea computaional: mai ales la nceputul dezvoltrii dispozitivelor FPGA,cnd densitatea celulelor logice era limitat, au aprut algoritmi ce propuneau soluii inteligente

    de evitare a folosirii operatorilor a cror implementare necesita ocuparea unui procentsemnificativ din resursele disponibile (nmulire, mprire). Un astfel de exemplu este algoritmulCORDIC (COordinate Rotation DIgital Computer), care se bazeaz doar pe operaiilearitmetico-logice de adunare i deplasare pentru a calcula o multitudine de funciitrigonometrice, hiperbolice, liniare i logaritmice. Un alt exemplu l reprezint algoritmii dearitmetic distribuit, ce folosesc n multe cazuri tabele de cutare i a cror implementare este,n consecin, foarte potrivit arhitecturilor de FPGA-uri bazate pe LUT-uri. n general, atuncicnd nu se folosesc astfel de algoritmi speciali, simplificarea computaional se poate obine prinremodelarea algoritmului de implementat pentru a reduce numrul operaiilor ce trebuierealizate.

    2. Folosirea unui format optimizat de reprezentare a numerelor n virgul fix: aa cum s-

    a menionat mai sus, reprezentarea n virgul fix este foarte potrivit pentru implementare nFPGA, dar trebuie gsit cel mai avantajos compromis ntre numrul de bii ai fiecrei variabilede control i respectarea specificaiilor de control. n acest sens, n [23] este prezentat ometodologie de calcul a numrului de bii necesari pentru reprezentarea fiecrei cantiti asistemului de control, metodologie bazat pe normele l i 1l . A fost dezvoltat, de asemenea, untoolbox Matlab pentru analiza efectelor implementrii filtrelor digitale i a sistemelor de controlfolosind reprezentarea numeric n virgul fix [23], ce permite optimizarea alegeriireprezentrii.

    2.3.2 Modularitatea i reutilizabilitateaPentru proiectarea sistemelor complexe, principiul modularitii este esenial. Acest

    principiu se bazeaz pe conceptele de ierarhizare i regularitate. Ierarhizarea mparte un sistemmare sau complex n entiti mai uor realizabile denumite module. Regularitatea estedirecionat spre maximizarea reutilizrii modulelor deja proiectate.

    O bun modelare i ierarhizare a unui sistem, precum i folosirea de module dejaexistente, poate reduce timpul de proiectare mult mai mult dect o stpnire perfect a uneltelorde proiectare.

    Principiul modularitii poate nsemna i folosirea de blocuri IP deja proiectate, testate isintetizate de alii. n aceast categorie intr, de exemplu, procesoarele soft i blocurile IPdestinate operaiilor specifice DSP.

    Un modul poate fi definit ca un element al unei biblioteci, ce poate fi instan iat direct,fr a trebui proiectat sau modificat. Astfel, reutilizabilitatea const n folosirea elementelor de

    bibliotec celor mai potrivite pentru o anumit aplicaie. Modulele pot fi mprite n bibliotecide diferite nivele de abstracie, de exemplu la nivel RTL sau la nivel comportamental(behavioral). Reutilizabilitatea poate fi ntlnit la nivel de descriere HDL, la nivel de captur deschem sau la nivele de proiectare mai abstracte, de exemplu la nivelul proiectrii sistemelorDSP n Simulink.

    2.3.4 Potrivirea optim algoritm-hardwarePotrivirea optim dintre algoritmul ce trebuie implementat i structura hardware, mai

    ales atunci cnd aceasta din urm nu este fixat, este o problem cheie. O metodologie de gsirea acestei potriviri optime este prezentat n [24] i numit metodologia AAA (sau 3A ).Prescurtarea AAA provine de la Algorithm Architecture Adequation, iar termenul adequation

    are sensul francez de potrivire eficient, nu sensul cuvntului englezesc adequacy, ce implicdoar potrivirea suficient. Atunci cnd vorbim despre proiectare n FPGA, scopul metodologieiAAA este de a gsi o arhitecturhardware optimizat pentru un anumit algoritm, respectnd n

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    17/78

    15

    acelai timp constrngerile de timp de execuie i arie ocupat.Metodologia AAA se bazeaz pe modelarea algoritmilor cu ajutorul grafurilor, analiza pe

    graf a paralelismului potenial al algoritmului i potrivirea acestuia pe paralelismul disponibil alarhitecturii hardware alese.

    Pentru ilustrarea metodei se va folosi un exemplu din [19]: se consider c trebuieimplementat o operaie matriceal simpl de forma:

    =

    b

    a

    q

    d

    XX

    AAAA

    XX

    )()()()(

    2221

    1211

    (2.1)

    Figura 2.11. DFG corespunztor ecuaiei (2.1) [19].

    Graful fluxului de date (DFG Data FlowGraph) corespunztor ecuaiei (2.1) este prezentat nFig. 2.11. Fiecare nod al grafului reprezint o operaie ifiecare muchie reprezint o dependen de date ntreoperaii.

    Structurile repetitive din DFG pot fi factorizateapoi conform metodologiei AAA [24], pentru a satisfaceconstrngerile hardware. Fig. 2.12, reprodus tot din[19], prezint patru posibiliti de implementare derivate

    din posibilitile de factorizare ale DFG-ului.Figura 2.12. Posibiliti de implementare a operaiilor descrise de (2.1) [19].Operaiile sunt nlocuite de circuite operatoare hardware, iar fiecare operator are un cost,

    deoarece consum resurse hardware. Cele 4 posibiliti pot fi comparate din punctul de vedere allatenei (timpul dup care rezultatele sunt disponibile, exprimat n cicli de tact), al vitezei (timpulcare trece ntre disponibilitatea a 2 rezultate consecutive la ieire) i al ariei ocupate, iar cea care

    prezint compromisul cel mai avantajos este aleas.Este evident din Fig. 2.12 c structura ALU-1 este cea mai rapid, dar consumi cele

    mai multe resurse. De obicei, resursele critice sunt operatorii compleci, de tipulmultiplicatoarelor, i nu registrele sau multiplexoarele. Este de asemenea evident c structuraALU-4 ocup cele mai puine resurse hardware, dar va avea nevoie de un timp de procesare de 4

    ori mai lung dect ALU-1. ALU-2 i ALU-3 sunt soluii intermediare att din punctul de vedereal costurilorhardware, ct i al timpului de procesare.Aadar, aceste trei principii ar trebui s ghideze ncercrile de implementare a

    algoritmilor de control automat n hardware pe dispozitive FPGA.

    2.4 Sisteme de control pentru motoare electrice implementate n FPGAAceast seciune se ocup cu trecerea n revist a ctorva sisteme de control pentru

    motoare electrice bazate pe FPGA aprute n literatur. Aceast trecere n revist formeaz oidee cu privire la stadiul actual al cercetrii n domeniu i permite situarea rezultatelor obinute

    prin aceast tez n contextul cercetrii internaionale.Articolele [4], [19], [25] i [26] sunt astfel de treceri n revist, cu un spectru ceva mai

    larg. Totui, avnd n vedere c au aprut n 2007, trebuie completate cu cercetri bibliograficemai recente.

    Astfel, n [27] se prezint o abordare integrat a modelrii i implementrii n FPGA a

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    18/78

    16

    unui sistem de control fr senzori de vitez/poziie pentru motorul de inducie. Folosind unobservator n spaiul strilor i un sistem de control bazat pe reele neuronale, autorii prezintmodelarea ntregului sistem (inclusiv a motorului, de aici termenul de modelare integrat)folosind limbajul VHDL. Dup validarea prin simulare, sistemul este verificat experimental.

    n [28] este prezentat un sistem de control partiionat ntre hardwarei software pentrumotorul PMSM. Autorii propun o abordare combinat ntre un regulator adaptiv de vitez bazat

    pe logicfuzzy, implementat nsoftware pe un procesorsoft, i regulatoare vectoriale de curent,implementate n hardware.n [29] este descris o bibliotec de componente dezvoltate folosind software-ul System

    Generator, utilizabile n proiectarea de sisteme de control pentru motoare de curent continuu iBLDC implementabile pe FPGA. Este prezentat de asemenea un sistem de control complet,incluznd o interfa pentru Simulink bazat pe paradigma hardware n bucl (HIL hardware in the loop).

    Articolul [30] descrie un sistem de control fr senzor de poziie pentru motorul deinducie, folosind metoda DTC (DirectTorque Control) i un observator de stare. Sistemul decontrol a fost proiectat folosind mediul LabView FPGA i implementat pe o plac NationalInstruments RIO PXI-7831R ce conine un FPGA din familia Virtex-II.

    n [31] se prezint un sistem de control al micrii pe dou axe bazat pe co-proiectarehardware-software: buclele de curent pentru motoarele PMSM sunt implementate n hardware

    pe FPGA, n timp ce buclele de vitezi generarea traiectoriei sunt realizate prinsoftware pe unprocesorsoftNiosII pe acelai FPGA.

    O aplicaie asemntoare este prezentat n [32]: un sistem modular de control al micriimulti-axe. Astfel, pentru motorul de curent continuu efector de pe fiecare din cele 4 axe este

    proiectat cte un regulator PID (proporional integrator derivator) implementat n hardware,iar traiectoria este generat prin software ce ruleaz pe un procesorsoftn acelai FPGA.

    La fel, n [33] micarea unui robot omnidirecional este controlat de un FPGA: controlulcurenilor prin trei motoare de curent continuu este efectuat de module hardware independente,iar controlul vitezei i al traiectoriei este realizat prinsoftware pe un procesor Nios II.

    n [34], autorii propun un sistem de control simplu pentru motorul de curent continuu frperii (BLDC Brushless DC). Acesta se bazeaz pe alternarea a doar dou valori pentru factorulde umplere al semnalului modulat n limea impulsurilor (PWM Pulse Width Modulation)aplicat motorului, simplificnd proiectarea i implementarea regulatorului. Conceptul esteverificat prin simulri i experimente.

    n [35] i [36] este prezentat un sistem de control pentru un motor PMSM dotat cu unrezolver analogic de poziie. n FPGA sunt implementate regulatoare de curent cu histerezis

    pentru cele 3 faze ale motorului i un modul de procesare a semnalelor provenite de la rezolver,modul bazat pe algoritmul CORDIC. O particularitate a sistemului prezentat este faptul cfolosete un FPGA produs de firma Actel ce integreaz periferice de conversie analog-digital:

    circuite analogice de scalare a semnalelor, multiplexor analogic i convertor analog-numeric(CAN).n [37] se prezint un algoritm de control PID pentru un servomotor de curent continuu,

    implementat n software (n limbaj de asamblare) pe un procesor soft PicoBlaze. n jurulprocesorului s-a construit un ntreg sistem de periferice descrise n VHDL i implementate nhardware pe acelai FPGA: un circuit temporizator, un modul de interfaare cu un amplificatoranalogic i un CAN cu interfa serial SPI (SerialPeripheralInterface), un modul de generarede semnal PWM, un modul de comunicaie serial RS232.

    Articolul [38] prezint un sistem cu procesorhardPowerPC modulari scalabil bazat peun FPGA XC2VP30ff896-6, aplicat pentru controlul n timp real al unui motor de curentcontinuu. S-au evaluat dou sisteme de operare embeddedde timp real, C/OS-II i Xilkernel.

    n [39] se descrie proiectarea i dezvoltarea unui sistem de control embedded pentruaplicaii de robotic, bazat pe FPGA, sistemul de operare de timp real MontaVista Linux ibiblioteca specializat OROCOS (Open RobotControlSoftware). S-au integrat de asemenea o

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    19/78

    17

    serie de module hardware oferite de proiectul Opencores.Lucrarea [40] descrie un sistem de control pentru motoare PMSM reconfigurabil n timp

    real: n funcie de cerine i de aplicaie, sistemul poate folosi implementri mai complete saumai puin complete ale algoritmului de control: control orientat dup cmp (FOC FieldOrientated Control), FOC cu compensarea tensiunii electromotoare induse, FOC cucompensarea tensiunii induse i cu decuplare ntre axe, control direct al cuplului (DTC). De

    asemenea, sistemul poate alege ntre implementarea pe un procesorsoft sau implementarea nhardware. n funcie de decizia sistemului, o parte din FPGA poate fi reconfigurat cu o altimplementare, aceasta este iniializat, apoi i se d controlul.

    Articolul [41] prezint proiectarea n Simulink, folosindsoftware-ul DSP Builder, a unuisistem de control pentru PMSM implementabil n FPGA. Sistemul se bazeaz pe regulatoare cuhisterezis pentru cureni i regulator PI de vitez. Algoritmul de control utilizeaz 56 de blocuriDSP de 9x9 bii din FPGA (Altera Stratix II EP2S60F1024C4).

    n [42] se propune controlul fr senzor de poziie pentru motorul sincron folosind filtrulKalman extins pentru estimarea poziiei i vitezei. Se folosesc regulatoare PI pentru cureni, iartensiunile trifazate se aplic prin modulaie sinusoidal cu injecie de semnal la punctul neutru.Cea mai complicat parte a sistemului este filtrul Kalman extins, datorit operaiilor de nmulire

    i mprire de matrice. De aceea, a fost optimizat n mod special, prin factorizare, ajungndtotui s ocupe 36 de multiplicatoare hardware pe 18x18 bii.

    n [43] se prezint un sistem de control al vitezei pentru un motor cu reluctan comutat(SRM Switched Reluctance Motor) implementat pe principiul co-proiectrii hardware-

    software: regulatorul de vitez, cu o dinamic mai nceat, este implementat prinsoftware pe unprocesorsoft Nios II, iar regulatoarele de curent, cu o dinamic rapid, sunt implementate nhardware.

    Aceeai idee de co-proiectare hardware-software se regsete i n [44], pentruimplementarea unui sistem de control al vitezei pentru motorul de curent continuu. Diferenaconst n faptul c se folosesc dou procesoare hardIBM PowerPC 405, unul pentru regulatorulde vitez i al doilea pentru emularea sistemului controlat (motorul de curent continuu).Regulatorul de curent, implementat ca modul hardware ataat la primul procesor, este proiectatn Impulse C.

    Articolul [45] prezint un sistem combinat de control fr senzori de poziie pentrumotorul BLDC: startarea motorului se realizeaz n bucl deschis, iar ncepnd cu o anumitvitez se nchide bucla folosind tensiunea electromotoare indus. Pentru implementare s-a folositun sistem combinat, bazat pe FPGA i DSP.

    n [46] este prezentat un algoritm de control fr senzor de poziie pentru PMSM.Estimarea poziiei se realizeaz cu ajutorul injeciei unui semnal de frecven nalt n semnalulde comand al motorului i estimarea inductanei momentane a statorului prin intermediul unei

    bucle cu calare pe faz (PLL Phase LockedLoop). Att bucla PLL, ct i algoritmul de

    modulaie bazat pe vectori spaiali (SVM Space VectorModulation) utilizat pentru aplicareatensiunilor pe cele 3 faze ale motorului se folosesc de algoritmi CORDIC pentru calculareafunciilor trigonometrice.

    Lucrarea [47] realizeaz o comparaie ntre implementarea n hardware i cea pursoftware pe un procesorsoft Cortex-M1 din familia ARM, a unui regulator de curent cuhisterezis pentru PMSM. Pe lng regulator i transformrile de coordonate asociate, s-aimplementat i un modul de procesare a semnalelor provenite de la un rezolver analogic pentruextragerea informaiei de poziie.

    n [48] se prezint o arhitectur de calcul modular i ierarhic bazat pe o unitatearitmetic ce realizeaz nmulirea unei matrice cu un vector. Modulele alctuiesc o bibliotec decomponente pentru controlul unui vehicul electric cu motoare de inducie.

    Articolul [49] prezint un sistem de control fr senzor de poziie pentru PMSMpartiionat ntre hardwareisoftware: regulatoarele PI de curent, transformrile de coordonate,algoritmul SVM i estimatorul de poziie bazat pe un observatorsliding mode sunt realizate n

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    20/78

    18

    hardware, n timp ce estimarea vitezei i reglarea ei sunt efectuate prin software pe procesorulsoftNios II.

    n [50] este prezentat un sistem de control pentru motorul de induc ie alimentat de opunte invertoare prin intermediul unui circuit rezonant. Sistemul este descris folosind AHDL(Altera HDL) i const din regulatoare PI de vitez i curent, circuit de msurare a vitezei,circuite de transformare ntre sistemele de coordonate, circuit de aplicare a modulaiei SVM

    modificate. ntregul sistem folosete 76 de multiplicatoare pe 9x9 bii.

    Se observ aadar o multitudine de abordri pentru implementarea pe FPGA a sistemelorde control pentru motoare electrice. Multe dintre acestea sunt dedicate motoarelor de curentalternativ, datorit complexitii controlului acestora, i deci a cerinelor computaionale pentrusistemul de timp real.

    Scopul acestei lucrri, acela de a proiecta un sistem de control pentru motorul PMSMimplementabil ntr-un circuit FPGA, se nscrie aadar ntr-o tendin n cercetare la nivelinternaional. Ceea ce va particulariza sistemul proiectat va fi modul de proiectare, uneltelefolosite pentru proiectare i validare, i mai ales constrngerile de proiectare impuse dedispozitivul FPGA int: acesta este unul de cost redus, din familia Xilinx Spartan-3E, cu numai

    20 de multiplicatoare integrate.Dup cum se poate observa din articolele [37], [40], [43], [44], [47], [49] citate mai sus,

    n care o parte din sistemul de control ruleaz n software pe microprocesoare soft sau hard,implementarea prin software este net inferioar unei implementri n hardware din punctul devedere al vitezei de execuie. Aceasta deoarece se pierde principalul avantaj oferit de FPGA:

    posibilitatea de a profita de resurse hardware multiple i independente pentru a realiza calcule nparalel. Aceast concluzie se desprinde i din [57], unde se compar implementarea n hardwarepe FPGA cu o implementare nsoftware pe un procesor DSP. n [58], comparaia se extinde i lao implementare prin software pe un procesorsoft MicroBlaze, cu rezultate asemntoare:implementareasoftware pe MicroBlaze este mai lent dect implementarea pe DSP, iar aceastaeste de 11 ori mai lent dect implementarea n hardware.

    Studierea bibliografiei a condus deci la o direcie de urmat pentru restul tezei: sistemul decontrol va fi proiectat pentru implementare n hardware pe FPGA, datorit performanelor nalte

    posibile. Totui, procesoarele soft rmn o soluie viabil pentru anumite sarcini greu deimplementat n hardware i fr constrngeri stringente de timp de execuie. Astfel de sarcinisunt cele de monitorizare ntr-un sistem de control, care trebuie s afieze parametrii sau srealizeze comunicaia cu un calculator gazd. De aceea, un capitol al tezei va fi consacrat isistemelor cu procesoaresoft.

    2.5 Concluziin prima parte a acestui capitol se puncteaz evoluia n timp a dispozitivelor FPGA. Se

    pare c aceasta s-a derulat n mai multe epoci delimitabile: 1985-1991 epoca apari iei (sau

    copilriei) FPGA-urilor, care vede definirea arhitecturii generale i o multitudine deproductori; 1992-1999 epoca de expansiune, cnd ncep s se integreze elemente hardwarededicate i crete mult capacitatea circuitelor, muli productori fiind eliminai din cauza lipseiscalabilitii arhitecturilor propuse de ei; 2000-2007 epoca de acumulare, cnd se integreaz totmai multe elemente hardware dedicate, inclusiv procesoare hard; 2007-prezent epoca despecializare: familii diferite, bazate pe arhitecturi diferite, se adreseaz unor domenii diferite deaplicaii, sprijinite de medii de proiectare specializate.

    n seciunea a doua sunt prezentate succint caracteristicile arhitecturii actuale de FPGA-uri de cost sczut produse de Xilinx. Seciunea reprezint o selecie relevant de informaie dinsute de pagini de documentaie [11], [12], [13], [14], necesar pentru a crea o imagine asupracapabilitilor dispozitivelor FPGA actuale.

    n cea de-a treia seciune este prezentat o metodologie de proiectare a sistemelor decontrol bazate pe FPGA, sintetizat din [19] i bazat pe 3 principii majore: rafinarea

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    21/78

    19

    algoritmului de control, modularitatea i potrivirea optim ntre algoritmul ce trebuieimplementat i arhitectura hardware aleas.

    Ultima seciune a capitolului reprezint un studiu bibliografic extins asupra sistemelor decontrol pentru motoare electrice implementate n FPGA. n urma acestuia se constat:

    Implementarea algoritmilor de control n hardware pe FPGA este mult maieficient din punctul de vedere al timpului de execuie dect implementarea prin

    software [57], [58]; Procesoarele soft sunt totui utile datorit posibilitii de a porta aplicaii deja

    dezvoltate i de a implementa mai uor sarcini fr constrngeri stringente detimp de execuie;

    Majoritatea algoritmilor de control prezentai n literatur folosesc foarte multeresurse din FPGA, trebuind revizuii serios pentru implementarea n dispozitiveFPGA de cost redus, cu doar cteva zeci de multiplicatoare integrate;

    n majoritatea abordrilor din literatur exist o ruptur ntre proiectareasistemului de control i validarea sa prin simulare i implementarea pe FPGA iverificarea experimental; doar uneori (de exemplu [27], [41]) se propune oabordare integrat pentru simulare i proiectare/implementare.

    Aadar, direcia propus pentru cercetare, de a implementa un sistem de control pentrumotorul PMSM n FPGA, se nscrie n tendinele actuale de cercetare n domeniu la nivelinternaional. De asemenea, exist o ni pe care ar putea-o acoperi: proiectarea ntr-un mediu denivel nalt, care s permit validarea prin simulare, avnd ca int un dispozitiv FPGA de costredus, deci implicnd optimizarea la maximum a arhitecturii hardware a algoritmului de control.

    3. Unelte de dezvoltare pentru dispozitive FPGAAcest capitol prezint o scurt trecere n revist a metodelor de proiectare i a uneltelor

    software disponibile pentru dezvoltarea sistemelor bazate pe dispozitive FPGA. Capitolul estemprit n 4 subcapitole sau seciuni. Astfel, n Seciunea 3.1 sunt prezentate n general uneltele

    de dezvoltare disponibile pentru proiectarea de sisteme n FPGA. n Seciunea 3.2 este prezentatsoftware-ul System Generator, produs de Xilinx, ce permite proiectarea integrat n mediulSimulink a sistemelor implementabile n FPGA. n Seciunea 3.3 sunt prezentate pe scurt unelte

    software i hardware de depanare a sistemelor proiectate n FPGA. Capitolul se ncheie cu oseciune dedicat prezentrii ctorva aplicaii originale, dezvoltate cu uneltele prezentate pe

    parcursul capitolului i implementate n FPGA.

    3.1 Prezentare general a uneltelor de proiectare pentru FPGA

    3.1.2 Nuclee IPNucleele IP sunt module dezvoltate pentru a efectua o anumit funcie. Dezvoltarea lor

    include testarea complet i optimizarea pentru o anumit arhitectur. n acest fel, folosirea

    acestor nuclee predefinite reduce timpul de proiectare sintez verificare. Adesea, nucleele IPsunt parametrizate, pentru a putea fi uor folosite i nglobate n alte proiecte.Un numr mare de nuclee IP sunt disponibile liber sau contra cost de la firme

    productoare de FPGA-uri (Xilinx, Altera), firme productoare de uneltesoftware de dezvoltare(Synopsys, Cadence, Mentor Graphics, Altium) sau firme specializate n anumite domenii deaplicaii (Modelware, QuickFlex) [4]. Mediul academic este de asemenea foarte prolific naceast direcie [5]. O clas special de nuclee IP o reprezint microprocesoarelesoft. Acesteasunt microprocesoare proiectate pentru a putea fi implementate n dispozitive FPGA, folosindresursele logice ale acestora. Exist procesoare proiectate special n acest scop, pentru a folosict mai economic resursele FPGA-ului (de exemplu, PicoBlaze i MicroBlaze de la Xilinx, Niosi Nios II de la Altera, ZPU de la Zylin AS, Mico32 de la Lattice), sau nuclee IP derivate din ( i

    compatibile la nivel de instruciune cu) procesoare disponibile de ceva timp n industrie (deexemplu, TSK80 bazat pe Z80, TSK51 bazat pe Intel 8051, TSK3000A bazat pe MIPS R3000,toate de la Altium; LEON 3 bazat pe Sparc V8, de la Aeroflex Gaisler; Cortex-M1 de la ARM,

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    22/78

    20

    compatibil cu ARM7, ARM9, ARM11).Nucleele IP reprezint, mpreun cu uneltele software pentru integrarea lor n proiecte

    complexe, unul din motoarele care mping nainte dezvoltarea soluiilor bazate pe FPGA-uri nritmul alert n care aceasta are loc.

    3.1.3 Unelte de dezvoltare pentru sisteme ncorporate n FPGAFPGA-urile actuale au devenit platforme pentru ntregi sisteme de calcul, deschiznd o

    nou epoc n istoria sistemelor implementate pe un singur cip (SoC - System on a Chip).Implementarea de astfel de sisteme ncorporate eterogene presupune sarcini foarte complexe

    pentru proiectanii de hardware i software [72]. Din punctul de vedere al hardware-ului,principala problem o constituie integrarea eficient a nucleelor IP, ceea ce nseamn proiectare,sintez, simulare i verificare. Din punctul de vedere al software-ului, principala problem oconstituie depanarea sistemului software, compus din sistem de operare n timp real (RTOS -Real Time Operating System), driver-e i aplicaie, n cadrul real al sistemului hardwareproiectat.

    Productorii de FPGA-uri au dezvoltat i unelte software pentru proiectarea de sistemebazate pe propriile microprocesoare hard sau soft. Aceste unelte includ nuclee IP pentruperiferice, unelte de modificare/adaptare a nucleului de procesaresoft, unelte pentru dezvoltareade programe software (editor, asamblor, compilator, editor de legturi (linker), depanator),depanatoare hardware/software, unelte de verificare a hardware-ului, biblioteci, exemple dehardwareisoftware (reference designs) pentru plci de dezvoltare. Exemple de astfel de uneltede dezvoltare sunt Xilinx EDK (Embedded Development Kit), Nios II IDE (IntegratedDevelopment Enviroment) i SoPC Builder de la Altera, System Designer de la Atmel,QuickWorks de la QuickLogic.

    Sunt disponibile i unelte de co-verificare hardware/software, ca Seamless de la MentorGraphics i Active-HDL de la Aldec. Seamless permite simularea procesorului ncorporat lanivel de instruciune (ISS - Instruction SetSimulator) i simularea componentelorhardware din

    jurul procesorului ntr-un mediu integrat. Active-HDL permite verificarea sistemelor bazate pe

    Nios II folosind un simulator logic pentru componentele hardwarei o plac cu FPGA conectatla depanatorul din Nios II IDE pentru simularea procesorului.O categorie deosebit de unelte de dezvoltare pentru FPGA-uri permit proiectarea de

    SoC-uri n limbajul de programare C. Acestea se bazeaz pe diferite subseturi ale limbajului C ipe librrii specifice asociate, cum ar fi Impulse C [73] sau Handel C [74]. Exemple de unelte dedezvoltare bazate pe limbajul C: DK Design Suite de la Agility, CoDeveloper de la ImpulseAccelerated Technologies, Catapult C Synthesis de la Mentor Graphics.

    Aceste unelte de dezvoltare, ce permit proiectarea abstractizat la nivel nalt, de sistem, iascunderea detaliilor arhitecturilor fizice pe care se realizeaz implementarea, sunt denumitegeneric unelte de proiectare ESL (Electronic System Level).

    3.1.4 Unelte de dezvoltare pentru nuclee DSP n FPGA

    Aa cum rezult din prezentarea arhitecturilor FPGA-urilor actuale din Seciunea 2.2,dispozitivele FPGA permit un nalt grad de paralelizare a operaiilor aritmetice folosite n

    procesarea digital de semnal. Era normal ca pentru utilizarea acestor resurse hardware s aparunelte de dezvoltare ct mai specializate. Cum Matlab este platforma favorit pentru dezvoltareaalgoritmilor DSP, era firesc s se ncerce realizarea unor unelte de legtur ntre codul scris nMatlab sau modelul realizat n Simulinki hardware-ul disponibil n dispozitivele FPGA. Ideeaa fost mai nti implementat cu succes n cazul generrii de cod pentru procesoare DSP directdin modele Simulink, de ctre dSPACE, cu TargetLink [77].

    Astfel, ambii productori mari de FPGA-uri oferisoftware pentru generare de moduleIP din scheme Simulink: Xilinx ofer System Generator for DSP, iar Altera DSP Builder.Ambele unelte preiau un model Simulink realizat cu blocuri din toolbox-uri specifice i letranslateaz n descrieri hardware sintetizabile n FPGA, ce pot fi mai departe prelucrate deuneltele de implementare (Xilinx ISE, respectiv Altera Quartus II). Avantajul major al metodei

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    23/78

    21

    const n faptul c hardware-ul obinut i modelul Simulink sunt echivalente, simularea nSimulink a modelului realizat fiind exact la nivel de bit i ciclu (bit and cycle accurate) [19].Un dezavantaj al acestor unelte este faptul c implementrile sunt realizate folosindreprezentarea numeric n virgul fix. ns pentru aplicaiile reale de procesare de semnal gamadinamici amplitudinea semnalelor este suficient de limitat pentru ca o reprezentare n virgulfix pe destui bii s dea rezultate mai mult dect acceptabile.

    Pe lng oferta productorilor de FPGA-uri, exist i firme specializate n unelte deproiectare care ofer capabiliti asemntoare. De exemplu, Synplify DSP de la Synplicitygenereaz cod RTL din modele Simulink. Reprezentarea numerelor este tot n virgul fix, dar

    software-ul optimizeaz conversia din virgul mobil n virgul fix. Un alt exemplu este SignalProcessing Designer de la CoWare, care ofer un mediu de modelare i simulare grafic bazat pescheme bloc asemntor cu Simulink. Blocurile sunt scrise n limbajul C, dar se pot apela ifuncii Matlab sau se pot trimite rezultatele simulrii n Matlab, pentru analiz.

    3.2 Proiectarea n mediul Simulink a structurilor hardware folosind blockset-ulSystem Generator

    n general, proiectarea structurilor numerice de control n FPGA implic realizarea unuihardware specializat ce execut

    un anumit algoritm de control. Avantajul major al dispozitivelor

    FPGA const n faptul c o multitudine de resurse pot fi folosite n paralel, pentru operaiidiferite. Un algoritm de control implementat n FPGA poate fi vzut ca o serie de unitiaritmetico-logice specializate ce lucreaz n paralel sau ntr-o anumit secven. n vreme ce ounitate aritmetico-logic de uz general ofer foarte multe posibiliti de utilizare i configurare,fiind de obicei necesar microprogramarea pentru implementare, unitile de calcul specializate,fiind mai simple, pot fi implementate mult mai uor, folosind logic combinaional sausecveniatoare simple.

    Proiectarea acestor structuri hardware poate fi realizati prin metodele clasice: capturde schem sau descriere ntr-un limbaj de descriere hardware (HDL - Hardware DescriptionLanguage) [80], dari prin metode mai noi, cum ar fi descrierea ntr-un limbaj de programare

    consacrat, ca C [73], [74] sau Matlab [5]. n vreme ce descrierea algoritmilor n C sau Matlabpoate fi foarte folositoare deoarece permite un nivel nalt de detaliere, iar metodele de proiectaresunt bine cunoscute i cercetate, proiectarea n Simulink ofer avantaje majore: un nivel deabstractizare mult mai nalt dect proiectarea la nivel de captur de schem logic, cu pstrareatotui a caracterului vizual al informaiei, foarte uor de urmrit i neles; simularea facil, cugenerarea automat a vectorilor de test i vizualizarea rapid a rezultatelor; posibilitateainterfarii cu alte unelte software, cum ar fi simulatoare HDL sau asambloare/compilatoare

    pentru procesoare soft ncorporate n FPGA. Din aceste motive, proiectarea n Simulink astructurilorhardware implementate n FPGA este foarte folosit.

    Acest subcapitol prezint pe scurt utilizarea software-ului System Generator, produs deXilinx, pentru proiectarea de structuri hardware folosite n control automat, precum i metode de

    integrare a structurilor astfel obinute n proiecte complexe. Se prezint de asemenea procedeulde importare n Simulinki simulare a modulelor proiectate prin metode de nivel mai jos, cum arfi captura de schem logic sau descrierea HDL.

    Software-ul System Generator permite definirea de hardware specific pentru un anumitdispozitiv fizic ntr-un mediu cu un nivel nalt de abstractizare. n System Generator, semnalelenu sunt doar bii, ci numere cu semn sau fr semn, ntregi sau reale reprezentate n virgul fix,cu lime variabil. O schimbare n proiect se traduce automat n modificri ale formatelor dereprezentare. Blocurile nu sunt doar reprezentri pentru elemente hardware, ci i modific nfuncie de setri i context rezultatele pe care le oferi hardware-ul pe care l genereaz.

    System Generator poate fi folosit pentru implementarea unei anumite pri dintr-unproiect mai complex. n acest sens, System Generator este foarte potrivit pentru a implementa ci

    de date i hardware de control pentru ele, dar este mai puin potrivit pentru definirea de interfeeexterne ce au cerine de temporizare sofisticate. n aceste situaii, se poate folosi System

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    24/78

    22

    Generator pentru a implementa o poriune din proiect, iar o alt poriune poate fi implementatprin metode clasice, mai orientate ctre detalii (captur de schem sau descriere HDL), iar apoimodulele pot fi integrate ntr-un ntreg. n ceea ce privete implementarea unui ntreg sistem nSystem Generator, din Simulink se poate obine o descriere HDL a ntregului proiect, ce poate fiapoi procesat de uneltele obinuite de sintezi implementare.

    3.2.2 Blockset-ul Xilinx

    Un blocksetSimulink reprezint o bibliotec de blocuri ce pot fi conectate n editorul descheme bloc Simulink pentru a crea modele funcionale ale sistemelor dinamice. Pentrumodelare, blocurile System Generator sunt folosite ca i oricare alte blocuri Simulink. Blocurileofer o reprezentare la un nivel de abstractizare mai nalt pentru funcii matematice, funcii tipicede procesare digital de semnal, elemente logice, memorii, etc. De asemenea, exist blocuri ce

    permit interfaarea cu alte unelte software, cum ar fi ModelSim i FDATool. Blocurile SystemGenerator sunt precise la nivel de bit i ciclu (bit and cycle accurate). Precizia la nivel de bitnseamn c valorile rezultate n Simulink sunt aceleai cu valorile corespunztoare returnate dehardware. Precizia la nivel de ciclu nseamn c valorile rezultate sunt produse la momente detimp ce corespund momentelor la care reacioneazhardware-ul (ciclu de tact).

    Odat instalat System Generator, n vizualizorul de biblioteci Simulink apare blockset-ulXilinx, cu bibliotecile corespunztoare. Blockset-ul Xilinx conine blocuri de baz ale SystemGenerator. Blocurile utilizate des sunt incluse n mai multe biblioteci, pentru gsirea mai uoar.Toate blocurile sunt incluse n biblioteca numit Index. n Tabelul 3.1 este prezentat o descrieresumar pentru fiecare bibliotec.

    Tabelul 3.1 Bibliotecile blockset-ului Xilinx.Biblioteca Descriere

    Basic Elements Blocuri de baz pentru construcia de module de logic digital.Communication Blocuri corectoare de erori i modulatoare, utilizate adesea n sisteme de

    comunicaie digitale.Control Logic Blocuri pentru circuite de control i maini cu stri finite.

    Data Types Blocuri pentru conversia datelor ntre diferite formate i moduri dereprezentare.DSP Blocuri pentru funcii de procesare digital de semnal.Index Conine toate blocurile din blockset-ul Xilinx.Math Blocuri pentru funcii matematice.Memory Blocuri pentru implementarea i accesarea memoriei.SharedMemory

    Blocuri pentru implementarea i accesarea de memorii partajate.

    Tools Blocuri pentru controlul simulrii, vizualizarea i analiza datelor, interfaareacu alte unelte.

    Pe lng blockset-ul Xilinx, System Generator include i un blockset numit XilinxReference Blockset, coninnd funcii compuse din blocuri Xilinx ce acoper o arie larg defuncionaliti. Fiecare bloc din acest blockset este implementat ca un subsistem cu masc,configurabil prin intermediul parametrilor. Bibliotecile din Xilinx Reference Blockset sunt

    prezentate pe scurt n Tabelul 3.2.Tabelul 3.2 Bibliotecile blockset-ului Xilinx Reference.

    Biblioteca DescriereCommunication Blocuri utilizate adesea n sisteme de comunicaie digitale.Control Logic Blocuri logice pentru circuite de control i maini cu stri finite.DSP Blocuri pentru funcii de procesare digital de semnal.Imaging Blocuri pentru procesare de imagini.

    Math Blocuri ce implementeaz funcii matematice.

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    25/78

    23

    3.2.5 Biblioteci ale blockset-ului XilinxBiblioteca Basic Elements conine reprezentri pentru diferite configuraii de circuite

    secveniale (Addressable Shift Register, Counter, Delay, LFSR, Parallel to Serial, Register,Serial to Parallel, Time Division Demultiplexer, Time Division Multiplexer) sau combinaionale(Bit Basher, Concat, Constant, Convert, Expression, Inverter, Logical, Mux, Relational, Slice).De asemenea, include diferite blocuri pentru controlul i verificarea ratelor de prelucrare a

    datelor (Clock Enable Probe, Down Sample, Reset Generator, Up Sample), precum i aformatului de reprezentare (Assert, Reinterpret). Blocul Black Box permite ncorporarea unuimodul HDL proiectat n alt mod (fie rezultat dup captur de schem, fie descris direct n HDL)n Simulink pentru co-simulare folosind un simulator extern bazat pe HDL.

    Pe lng blocurile Black Box, Constant, Counter, Expression, Inverter, Logical, Mux,Register, Relational, Slice, deja prezentate, biblioteca Control Logic include i blocuri pentruinstanierea de memorii (Dual Port RAM, FIFO, ROM, Single port RAM) i de procesoare (EDKProcessor, PicoBlaze Microcontroller). Blocul MCode permite executarea de cod Matlab nSimulink, iar blocul Shift realizeaz operaia de deplasare.

    Biblioteca Data Types grupeaz blocuri folosite pentru manipularea semnalelor, trecereadintr-un format de reprezentare n altul, extragerea de bii sau grupuri de bii, etc. Aceste blocuri

    (cu o singur excepie, Scale, ce scaleaz valoarea de la intrare cu un factor putere a lui 2 prinajustarea poziiei virgulei fixe n reprezentare) se gsesc i n bibliotecile deja prezentate, i aufost grupate aici pentru uurarea gsirii lor.

    Biblioteca Math permite instanierea de operatori aritmetici (Accumulator, AddSub,Cmult, Mult, Threshold) sau realizarea unor funcii matematice uzuale folosind nucleeconfigurabile (Complex Multiplier 3.0, CORDIC 4.0, Divider Generator 2.0, SineCosine).

    Biblioteca Memory grupeaz blocuri folosite pentru implementarea diverselor tipuri demodule de memorie n Simulink. Aceste blocuri (cu o excepie, Shared Memory, ceimplementeaz o memorie RAM ce poate fi partajat ntre mai multe proiecte sau seciuni aleaceluiai proiect) se gsesc i n bibliotecile deja prezentate, i au fost grupate aici pentruuurarea gsirii lor.

    Biblioteca Tools conine diferite unelte de control i verificare a simulrii (Clock Probe,Configurable Subsystem Manager, Disregard Subsystem, Indeterminate Probe, MultipleSubsystem Generator, Pause Simulation, Sample Time, Simulation Multiplexer, Single-StepSimulation, Toolbar, WaveScope), de interfa pentru depanare (ChipScope, ModelSim) sau

    proiectare (FDA Tool), de estimare a resurselor (Resource Estimator). Aceste blocuri nu au ngeneral corespondent n hardware, fiind utile pentru simulare i depanare la proiectare.

    Din prezentarea bibliotecilor System Generator se poate trage concluzia c aceastunealt de proiectare poate fi folosit att pentru proiectare la nivel nalt, instaniind nuclee IP,ct i pentru proiectare la nivel de transfer ntre registre, oferind flexibilitate maxim. De altfel,n [87] se arat c un sistem complex proiectat cu System Generator este comparabil ca

    performane cu unul proiectat n HDL, avnd chiar unele avantaje n ceea ce priveteposibilitile de ajustare ulterioar.3.2.12 Importarea n Simulink a unui modul proiectat prin captur de schemFolosind unealtasoftware System Generator, n mediul Simulink se pot proiecta structuri

    numerice ce pot fi apoi implementate direct n hardware, pe dispozitive de tip FPGA. Aceastmetod de proiectare permite un nivel de abstractizare mai nalt dect metodele de proiectareobinuite (captur de schem sau descriere HDL) dar are dezavantajul c nu se poate aplica

    pentru module hardware cu pretenii speciale de temporizare, de exemplu interfee externe cumemoria sau cu dispozitive periferice. De asemenea, n funcie de experiena proiectantului,metodele de proiectare la nivel jos pot da rezultate mai bune n ceea ce privete resursele ocupatei timpii de execuie. Din aceste motive, este foarte util o modalitate de combinare a metodelor

    de proiectare la nivel jos cu proiectarea la nivel nalt n Simulink.Unealta System Generator permite importarea unui modul HDL ntr-o schem bloc

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    26/78

    24

    Simulink. Acest modul poate proveni fie dintr-o descriere direct n limbaj HDL, fie dintr-otraducere n limbaj HDL a unei scheme logice capturate. Prin importarea modulului, acesta poatefi simulat folosind un simulator HDL extern, apelat direct din Simulink. Avantajul este evident:simulatorul HDL primete la intrare vectori de test generai automat de Simulink, iar semnalelede ieire pot fi vizualizate direct n mediul Simulink, mpreun cu semnalele din restul schemei

    bloc. Realizarea unei co-simulri Simulink-HDL presupune importarea n Simulink a modulului

    proiectat printr-o alt metod, folosind blocul Black Box din biblioteca Basic Elements.3.2.13 Co-simularea Simulink-HDL a unui modul proiectat prin captur de schemDup definirea modulului Black Box, acesta este n stareaInactive. Acest lucru nseamn

    c simularea Simulink nu-l va activa, deci nu se va ine cont de el. Dac se dorete simulareafuncionalitii blocului, atunci se va alege o alt opiune pentru cmpul Simulation Mode. Dacse alege ISE Simulator, atunci se va folosi pentru co-simulare un simulator HDL produs deXilinx i inclus n pachetul ISE. O alt opiune este folosirea unui simulator extern mai

    performant. n caz c se alege aceast opiune, trebuie s existe instalat simulatorul ModelSim,produs de Mentor Graphics, iar n schema bloc Simulink trebuie adugat blocul ModelSim. Dacse folosete limbajul Verilog, atunci trebuie s se bifeze opiuneaInclude Verilog unisim library

    pentru blocul ModelSim. De asemenea, biblioteca Unisim, coninnd elementele de baz pentruproiectarea de hardware n FPGA i fiind oferit de Xilinx, trebuie compilat n simulatorulModelSim sub numele unisims_ver.

    Simulatorul ModelSim permite vizualizarea formelor de und ale semnalelor de intrare iieire ale modulului simulat, dar permite i vizualizarea semnalelor interne ale modulului, ceeace este foarte important pentru depanare.

    3.3 Unelte de depanare pentru sisteme implementate n FPGACele mai avantajoase unlte de depanare pentru proiectarea bazat pe FPGA-uri sunt

    analizoarele logice virtuale. Acestea sunt nuclee IP ce se implementeaz n resursele nefolositedin FPGA. Modul de lucru este urmtorul: se definesc semnalele ce trebuie analizate, sedefinete dimensiunea ferestrei de analiz (numrul de eantioane, n strns legtur cu

    memoria disponibil n FPGA), se definete un eveniment de declanare a analizei (trigger, ocondiie ce trebuie ndeplinit de unul sau mai multe din semnalele urmrite), se definete

    perioada de eantionare. Semnalele urmrite sunt salvate n memoria intern din FPGA (rmasnefolosit de ctre aplicaie) ncepnd cu momentul n care condiia de triggereste ndeplinit.Apoi sunt transferate pe un calculator gazd, unde pot fi vizualizate i analizate folosind

    programesoftware specializate. Exemple de astfel de unelte proiectate de productorii de FPGA-uri sunt SignalTap II de la Altera, ChipScope Pro de la Xilinx, ispTRACY de la Lattice. Astfelde unelte sunt disponibile i de la alte firme specializate: Identify de la Synplicity, FPGAViewde la First Silicon Solutions. Altium Designer ofer biblioteci de instrumente virtuale pentrudepanare, ce se implementeaz n FPGA i sunt afiate prin interfaasoftware-ului de proiectare.

    Exist posibilitatea folosirii blocurilor IP interne cu instrumente specializate externe. De

    exemplu, software-ul B4655A FPGA Dynamic Probe de la Agilent Technologies se poatecombina cu ChipScope Pro sau EDKi se poate folosi cu analizoare logice din familiile 16900,16800, 1680, 1690 de la Agilent, pentru FPGA-urile Xilinx. Agilent ofer i B4656A FPGADynamic Probe, care, n combinaie cu Quartus II Logic Analyzer Interface i aceleai familii deanalizoare logice, se poate folosi pentru FPGA-urile Altera. De asemenea, Agilent ofer E9524AMicroBlaze Trace Toolset, ce, n combinaie cu aceleai familii de analizoare logice, poate fifolosit pentru urmrirea fluxului de date i program a unul sau mai multe procesoare MicroBlazeimplementate n FPGA-uri Xilinx. FPGAView de la First Silicon Solutions poate fi combinat cuQuartus II Logic Analyzer Interface i analizoare logice Tektronix din familiile TLA600,TLA5000, TLA700, TLA7000 sau MSO4000 pentru depanarea sistemelor bazate pe FPGA-uriAltera, sau cu Logic Analyzer Core i aceleai familii de analizoare logice pentru depanareasistemelor bazate pe FPGA-uri Xilinx.

  • 7/31/2019 Rezumat_teza Teaching Assist. Dr. Ing. Bogdan ALECSA

    27/78

    25

    3.4 Studii de cazn continuare se vor prezenta trei studii de caz originale, aplicaii de control automat

    implementate pe FPGA. Acestea servesc la a exemplifica aplicarea metodologiei i utilizareauneltelor de proiectare prezentate. De asemenea, au avut un rol esenial n familiarizareaautorului cu uneltele de proiectare i dezvoltarea unor abiliti de lucru cu dispozitivele FPGA,absolut necesare pentru a atinge obiectivul final propus al tezei.

    3.4.1 Controlul motorului de curent continuu folosind bucla cu calare pe fazBucla cu calare pe faz (PLL Phase LockedLoop) este probabil cel mai rspndit

    exemplu de sistem de reglare automat n bucl nchis. O utilizare mai puin rspndit, deiintrodus n anii 1970, a buclei PLL este controlul vitezei motoarelor de curent continuu [93].

    Bucla PLL const dintr-un detector de faz, un filtru i un oscilator controlat n tensiune(VCO Voltage ControlledOscillator). Semnalul de ieire al oscilatorului controlat n tensiuneeste comparat cu un semnal de referin de ctre circuitul detector de faz. Ieirea filtrat aacestuia comand VCO-ul. Bucla PLL lucreaz n sensul minimizrii erorii de faz dintre celedou semnale. n cazul controlului vitezei unui motor de curent continuu folosind bucla PLL,acesta trebuie inclus n bucl: driver-ul, motorul i codificatorul optic de poziie formeaz DCO-

    ul (DCO Digitally ControlledOscillator) buclei. Diferena fa de un DCO obinuit const nfaptul c combinaia motor - codificator este unsistem de ordinul 2, i acest lucru trebuie luat nconsideraie cnd se proiecteaz bucla.

    Schema bloc a sistemului de control almotorului este prezentat n Fig. 3.7. Acestaconst dintr-un detector de faz i frecven(PFD Phase Frequency Detector), un filtrude bucl i motorul cu codificatorulincremental de poziie (tahometru optic).

    Figura 3.7. Schema bloc a sistemului de control PLL.

    Funcia de transfer a motorului, incluznd proprietatea de integrator a tahometrului, estedat de (3.1), unde mK este amplificarea, iar mT este constanta de timp a motorului.Dac se folosete un filtru de ordinul I, cum se procedeaz de obicei, sistemul n bucl

    nchis va avea trei poli. Aceasta nseamn c este nevoie de un filtru cu un zero. Altfel, fazafunciei de transfer n bucl nchis va depi 180 la frecvene nalte i sistemul va pierdestabilitatea. Din acest motiv se folosete un filtru de tip PI, a crui funcie de transfer este (3.2),

    unde1

    2

    =PK ,

    1

    1

    =IK .

    )1()(

    m

    m

    sTs

    KsH

    += , (3.1)

    s

    s

    s

    KKsF IP

    1

    2 1)(

    +=+= . (3.2)

    ntreaga bucl de control a fost proiectat pentru a fi implementat n FPGA. Pentruaceasta, a fost proiectat un circuit secvenial original detector de faz, iar filtrul a fost discretizati implementat prin operatori aritmetici. De asemenea, a fost proiectat un circuit generator desemnal modulat n durataimpulsurilor (PWM PulseWidth Modulation), cu rolde convertor numeric-analogic, pentr