Sunteți pe pagina 1din 78

UNIVERSITATEA TEHNIC GHEORGHE ASACHI DIN IAI

coala Doctoral a Facultii de Automatic i 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

UNIUNEA EUROPEAN

GUVERNUL ROMNIEI MINISTERUL MUNCII, FAMILIEI I PROTECIEI SOCIALE AMPOSDRU

Fondul Social European POSDRU 2007-2013

Instrumente Structurale 2007-2013

OIPOSDRU

UNIVERSITATEA TEHNIC GHEORGHE ASACHI DIN IAI

UNIVERSITATEA TEHNIC GHEORGHE ASACHI DIN IAI


coala Doctoral a Facultii de Automatic i 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

UNIUNEA EUROPEAN

GUVERNUL ROMNIEI MINISTERUL MUNCII, FAMILIEI I PROTECIEI SOCIALE AMPOSDRU

Fondul Social European POSDRU 2007-2013

Instrumente Structurale 2007-2013

OIPOSDRU

UNIVERSITATEA TEHNIC GHEORGHE 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 ca obiectiv 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

UNIUNEA EUROPEAN

GUVERNUL ROMNIEI MINISTERUL MUNCII, FAMILIEI I PROTECIEI SOCIALE AMPOSDRU

Fondul Social European POSDRU 2007-2013

Instrumente Structurale 2007-2013

OIPOSDRU

UNIVERSITATEA TEHNIC GHEORGHE ASACHI DIN IAI

Cuvnt nainte
Lucrarea de fa este rezultatul a trei ani de studii n cadrul colii Doctorale a Facultii de Automatic i Calculatoare, Universitatea Tehnic Gheorghe Asachi din Iai, studii sprijinite prin programul Burse doctorale o investiie n inteligen BRAIN. Elaborarea acestei lucrri s-a fcut sub ndrumarea atent i competent a domnului prof. dr. ing. Alexandru Onea, cruia autorul i mulumete pentru ncurajarea formrii unei atitudini independente i, n acelai timp, direcionarea avizat ctre rezultate semnificative. Autorul se simte ndatorat n mare msur i fa de colectivul Catedrei de Automatic i Informatic Aplicat, i n special fa de conductorul acestuia, domnul prof. dr. ing. Corneliu Lazr, pentru discuiile constructive i trimiterile bibliografice valoroase. O pondere important n aceast lucrare o are activitatea de cercetare desfurat la Anglia 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. De asemenea, atitudinea profesionist i prietenoas a domnului dr. ing. Alin Tisan, din acelai colectiv, a fcut posibil realizarea cu succes a experimentelor de laborator. Att ideea acestei lucrri, ct i primii pai n aceast direcie, au fost rezultatul unor discuii aprinse i fructuoase cu domnul dr. ing. fiz. Aleodor Daniel Ioan, care a abordat anterior o 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 eforturilor deosebite de gestionare a fondurilor grant-ului SICONA-12100/2008, n care autorul este membru, ale directorului de proiect, domnul prof. dr. ing. Corneliu Lazr. Autorul recunoate c lucrarea poate fi mbuntit i este contient de unele stngcii n exprimare i lipsuri n explicaii. Se presupune totui o oarecare familiaritate a cititorului cu domeniul abordat, dei acesta este la confluena dintre automatic, inginerie electric i ingineria calculatoarelor, 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. n general, s-a preferat utilizarea acronimului din limba englez, foarte cunoscut i n literatura de specialitate de limb romn, scznd riscul de confuzii. Tot pentru evitarea confuziilor, termenii tradui din limba englez pentru care nc nu exist un echivalent consacrat n literatura de specialitate de limb romn au fost specificai n parantez n original. De asemenea, unii termeni au fost pstrai n englez pe tot parcursul lucrrii, fr a se ncerca traducerea (de exemplu: hardware, software).

Cuprins
Introducere............................................................................................................................. 7 Dispozitive FPGA n controlul mainilor electrice ............................................................. 11 2.1 Evoluia dispozitivelor FPGA .......................................................................................... 11 2.2 Arhitecturi actuale de FPGA ............................................................................................ 12 2.3 Metodologia de proiectare a unui sistem de control implementat n hardware pe FPGA13 2.4 Sisteme de control pentru motoare electrice implementate n FPGA............................... 15 2.5 Concluzii........................................................................................................................... 18 3. Unelte de dezvoltare pentru dispozitive FPGA ................................................................... 19 3.1 Prezentare general a uneltelor de proiectare pentru FPGA............................................. 19 3.2 Proiectarea n mediul Simulink a structurilor hardware folosind blockset-ul System Generator.................................................................................................................................. 21 3.3 Unelte de depanare pentru sisteme implementate n FPGA ............................................. 24 3.4 Studii de caz...................................................................................................................... 25 3.5 Concluzii........................................................................................................................... 35 4. Proiectarea sistemelor cu procesoare soft ncorporate n FPGA ......................................... 37 4.1 Consideraii privind proiectarea de procesoare soft pentru FPGA ................................... 37 4.3 Co-proiectarea hardware-software n sisteme de control studiu de caz........................ 39 4.4 Concluzii........................................................................................................................... 41 5. Metode moderne de modulaie pentru controlul invertorului trifazic i implementarea lor n FPGA ............................................................................................................................................ 41 5.1 Modulaia PWM sinusoidal ............................................................................................ 42 5.2 Implementarea n FPGA a modulatorului PWM sinusoidal cu injecie de semnal la punctul neutru (ZSS) ................................................................................................................ 45 5.3 Modulaia bazat pe vectori spaiali ................................................................................. 48 5.4 Implementarea n FPGA a modulatorului bazat pe vectori spaiali.................................. 51 5.5 Comparaie ntre cele dou modulatoare .......................................................................... 53 5.6 mbuntirea rezoluiei modulatorului SVM................................................................... 54 5.7 Concluzii........................................................................................................................... 55 6. Proiectarea unui sistem de control al vitezei pentru motorul PMSM implementabil n hardware pe FPGA ....................................................................................................................... 56 6.1 Modelarea motorului PMSM............................................................................................ 56 6.2 Proiectarea sistemului de control al vitezei pentru motorul PMSM................................. 58 6.3 Validarea sistemului de control n continuu ..................................................................... 60 6.4 Discretizarea sistemului de control................................................................................... 62 6.5 Factorizarea i implementarea algoritmului de control .................................................... 63 6.6 Interfaarea senzorilor....................................................................................................... 65 6.7 Implementarea n FPGA i rezultate experimentale......................................................... 67 6.8 Concluzii........................................................................................................................... 68 7. Concluzii generale ............................................................................................................... 70 8. Bibliografie selectiv........................................................................................................... 71 1. 2.

1.

Introducere

Lucrarea de fa i propune cercetarea metodelor de proiectare a sistemelor ncorporate bazate pe dispozitive de tip FPGA (Field Programmable Gate Array) n vederea realizrii de sisteme de control rapide, de nalt performan. Prin sistem ncorporat se nelege un sistem electronic digital de dimensiuni reduse, proiectat pentru o aplicaie specific, lucrnd sub incidena unor constrngeri de timp real. Termenul ncorporat, o traducere aproximativ a mult mai cunoscutului i acceptatului termen embedded din limba englez, se poate aplica unui sistem din mai multe puncte de vedere: De obicei, aceste sisteme electronice sunt ncorporate din punct de vedere fizic n produsul final, formnd un tot unitar cu elementele electrice i mecanice cu care interacioneaz. Dintr-o alt perspectiv, termenul se aplic adesea cu privire la sistemul de calcul ce formeaz centrul sistemului digital: acesta nu este un procesor obinuit, de tipul celor utilizate n calculatoarele personale, ci ncorporeaz pe un singur cip i memorie de program i de date i circuite periferice. De obicei, aceste cipuri sunt microcontrolere sau controlere digitale de semnal (DSC Digital Signal Controller). Acest din urm termen este folosit recent pentru desemnarea unor circuite complexe de tip microcontroler, dotate deci cu periferice puternice, al cror procesor este ns proiectat special pentru a realiza eficient operaii specifice domeniului prelucrrii digitale de semnal. DSC-urile sunt aadar o combinaie ntre microcontrolere i procesoare digitale de semnal (DSP Digital Signal Processor). a treia accepiune a termenului ncorporat se refer la faptul c aceste sisteme sunt de obicei bazate pe un procesor, iar acesta ruleaz un program ce execut sarcinile sistemului. Aadar, sistemul nu este reprezentat doar de circuitele electronice ce-l compun, ci ncorporeaz i software-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 poate prea n contradicie cu punctele al doilea i al treilea enunate mai sus, o privire mai atent asupra dispozitivelor FPGA va estompa aceast contradicie. Aceasta deoarece FPGA-urile reprezint actualmente platforme pentru sisteme digitale complexe i ofer elemente computaionale din ce n ce mai sofisticate i mai numeroase. Termenul FPGA, tradus n romnete 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 funcii logice 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 nmulireacumulare (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 computaionale avansate (pe un FPGA pot fi de la cteva zeci la cteva mii de celule DSP) permit transformarea FPGA-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 de control direct n hardware pe FPGA, dei se poate apela i la varianta clasic: n FPGA se poate implementa un procesor soft, iar pe acesta va rula n software algoritmul. Faptul c dispozitivele FPGA pot constitui maini de calcul performante a condus i la interesul acordat acestor dispozitive n domeniul controlului automat, domeniu n care algoritmii se preteaz la paralelizare i timpii de calcul pot fi critici. Acest interes este subliniat de seciuni speciale n IEEE Transactions on Industrial Electronics, jurnalul numrul 1 n categoria Thomson Reuters Automation & Control Systems [1], consacrate utilizrii FPGA-urilor n sisteme de control industriale (volumul 54, numrul 4, august 2007 i volumul 55, numrul 4, aprilie 2008). 7

Industria dispozitivelor FPGA este, n prezent, cea mai profitabil dintre ramurile industriei electronice (conform unui studiu publicat de Forbes, cu date de la Audit Integrity, FT Interactive Data, Thomson IBES, Thomson Reuters, Worldscope, Bloomberg, Standard & Poors, Thomson One Analytics, Value One), dou dintre cele patru companii din industria electronic din top sunt productorii de FPGA-uri Altera i Xilinx) [2]. Este, de asemenea, cea mai inovativ din punct de vedere tehnologic, actualmente cele mai noi procese de producie a semiconductorilor fiind testate pe dispozitive FPGA. Succesul acestei industrii se datoreaz n primul rnd unui nou mod de a pune problema: dispozitivele FPGA ofer elemente integrate de complexitatea celor posibile n circuitele integrate orientate pe aplicaie (ASIC - Application Specific Integrated Circuit), cu avantajul programabilitii, sau, mai bine zis, al configurabilitii. Se impune precizarea acestui termen: dei n denumirea FPGA apare cuvntul programabil, 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 nu foarte 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 funcionalitatea ndeplinit 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 cu magnei permaneni (PMSM Permanent Magnet Synchronous Machine). Sunt prezentate sintetic i informaii conexe, de la arhitectura dispozitivelor FPGA i software-ul System Generator 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 a dispozitivelor FPGA, ncepnd cu un scurt istoric i ajungnd la detaliile arhitecturale ale dispozitivelor actuale. Astfel, n primul subcapitol este punctat istoric evoluia dispozitivelor FPGA, mprit n patru etape ce se pot separa pe baza apariiei unor noi caracteristici ale dispozitivelor i uneltelor de dezvoltare pentru ele. Cel de-al doilea subcapitol reprezint o trecere n revist succint, de sintez, a familiilor actuale de FPGA-uri produse de Xilinx. Se insist pe elementele arhitecturale ale fiecrei familii, evideniindu-se faptul c aceste dispozitive nu sunt simple arii de pori logice interconectabile, ci integreaz elemente complexe de procesare. n al treilea subcapitol este prezentat o metodologie general de proiectare a sistemelor de control automat implementate n FPGA. Aceasta se bazeaz pe trei principii fundamentale: 1) rafinarea algoritmului, 2) modularitatea i reutilizabilitatea, 3) potrivirea optim algoritm-hardware. n finalul capitolului, un subcapitol este dedicat prezentrii sistemelor 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 sublinia originalitatea 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 sistemelor bazate pe FPGA. n primul subcapitol, dup o prezentare a evoluiei uneltelor de dezvoltare legat de evoluia dispozitivelor FPGA, ce a fost expus n capitolul anterior, sunt trecute n revist principalele unelte disponibile, grupate pe trei categorii: nuclee IP, unelte pentru sisteme ncorporate, 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 hardware direct implementabile n FPGA din mediul Matlab Simulink. Este prezentat de asemenea metoda de importare a unor module proiectate prin alte metode n Simulink i co-simularea lor folosind combinaia de unelte Simulink-ModelSim. Cel de-al treilea subcapitol este o scurt trecere n revist a uneltelor de depanare pentru sisteme bazate pe FPGA. n finalul capitolului se prezint trei studii de caz originale, ilustrative pentru metodele de proiectare (i combinarea lor) folosind dispozitive FPGA. Primul dintre acestea urmrete proiectarea unui sistem de control al vitezei pentru motorul de curent continuu integrndu-l ntr-o 8

bucl cu calare pe faz. n acest sens s-a proiectat un detector de faz i frecven original, ce a fost validat prin simulare n ModelSim. Apoi s-a proiectat un filtru de bucl de tip proporionalintegrator i s-a integrat ntreg sistemul n FPGA. Proiectarea s-a realizat la nivel de schem logic. Sistemul a fost verificat experimental, dovedind c este capabil de calare pe faz i deci de 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 rspuns infinit 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 sistemului simulat. Pentru proiectare s-a folosit captura de schem logic pentru interfaa cu convertoarele analog-numeric i numeric-analogic, mediul StateCAD pentru proiectarea mainilor cu stri de control i System Generator pentru regulator. Cel de-al treilea studiu de caz s-a ocupat de proiectarea unui sistem de control al vitezei pentru 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, proiectate la nivel de schem logic, au fost combinate cu un algoritm de control de tip PI, proiectat n Simulink. ntregul sistem a fost validat prin co-simulare Simulink-ModelSim i verificat experimental. Originalitatea i actualitatea sistemelor de control prezentate n acest capitol au condus la redactarea i publicarea a 6 lucrri: [102], [103], [105], [109], [110], [111]. n Capitolul 4 este abordat domeniul procesoarelor soft implementabile n FPGA. Prin procesor soft se nelege un procesor implementat n resursele de uz general ale unui FPGA. n primul subcapitol sunt expuse cteva consideraii teoretice cu privire la proiectarea de procesoare soft n vederea implementrii pe dispozitive de tip FPGA, subliniindu-se modul n care proiectarea trebuie s in cont de arhitectura specific a FPGA-ului, destul de diferit de cea a unui 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 punctul de 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, n ultimul subcapitol se prezint un studiu de caz original: co-proiectarea hardware-software n sisteme de control. Sistemul de control al vitezei pentru motorul BLDC, prezentat n finalul capitolului precedent, a fost completat cu sarcini de monitorizare: parametrii regulatorului sunt vizualizai pe un afior alfanumeric cu cristale lichide i sunt transmii serial pe o interfa RS232 la un calculator gazd, mpreun cu valorile instantanee ale semnalelor de comand i de rspuns. Problema a fost partiionat ntre software i hardware: algoritmul de control se execut n hardware proiectat special pentru aplicaie (prezentat deja), iar sarcinile de monitorizare, cu restricii 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 sisteme cu procesor soft. Fiecare se ocup cu una singur din cele dou sarcini, uurndu-se astfel dezvoltarea software-ului i interfaarea fiecrui sistem cu resursele hardware. S-a obinut astfel un sistem complex pe un singur cip, coninnd att elemente hardware, ct i software, originale i proiectate pentru aplicaia exemplificat. Sistemul s-a verificat experimental, obinndu-se pe calculatorul 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 nti tehnici de modulaie pentru obinerea eficient a acestora. n acest sens, n Capitolul 5 se prezint 2 tehnici de modulaie moderne i eficiente 9

pentru controlul digital al invertoarelor trifazate: modulaia sinusoidal cu injecie de semnal la punctul neutru i modulaia bazat pe vectori spaiali.Astfel, n primul subcapitol sunt prezentate cteva aspecte teoretice ale modulaiei sinusoidale n limea impulsurilor, pentru ca n al doilea subcapitol 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 n subcapitolul 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-au fructificat la maximum posibilitile de paralelizare a operaiilor, obinndu-se o implementare cu un timp de calcul foarte scurt, de doar 160ns la o frecven de tact de 50MHz. i acest modulator a fost implementat fizic i testat experimental. Al cincilea subcapitol face o comparaie ntre cele dou modulatoare proiectate, avnd n vedere c din punctul de vedere al rezultatului 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 un motor 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-un sistem 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 semnale de tact defazate de o unitate de gestionare a semnalelor de tact din FPGA pentru sincronizarea fronturilor impulsurilor de ieire din modulator. Modulatorul astfel mbuntit a fost testat experimental pentru controlul unui motor de inducie, folosind tehnica n bucl deschis V/Hz. Originalitatea studiilor prezentate n acest capitol i validitatea rezultatelor experimentale obinute 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 pentru motorul sincron cu magnei permaneni. n primul subcapitol este prezentat modelarea motorului n sistemul de coordonate rotitor sincron cu rotorul. Aceast abordare simplific foarte mult modelul motorului, eliminnd parametrii variabili n timp din ecuaiile ce-l descriu, dar complic 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. Parametrii regulatoarelor sunt derivai prin metoda alocrii polilor, innd cont de modelul motorului. n al treilea subcapitol, sistemul de control analogic (continuu) a fost validat prin simulare n Simulink. Apoi, n cel de-al patrulea subcapitol, sistemul de control a fost discretizat i implementat folosind blocuri System Generator. n acest moment, s-a verificat c prin discretizare comportarea sistemului de control rmne la fel cu comportarea sistemului de control 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 necesita prea 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 cu semnalul de tact global, de 50MHz. Acest proces de proiectare, care este i contribuia original major a capitolului, este prezentat n subcapitolul cinci. n subcapitolul ase sunt prezentai succint 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 dup implementarea sistemului de control n FPGA. Acestea sunt n perfect concordan cu rezultatele 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. Acesta conine patru bucle de reacie i se execut n doar 2.14s, incluznd timpul necesar interfarii cu senzorii de curent. Aadar, s-a demonstrat c dispozitivele FPGA pot implementa foarte 10

eficient algoritmi de control compleci pentru procese rapide (chiar dac motorul are un timp de rspuns de cteva ms, variaia curenilor prin motor este foarte rapid, cu timpi de rspuns de ordinul zecilor de s). n plus, paii prezentai n acest capitol pentru obinerea unui sistem implementabil 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 subliniaz rezultatele obinute i contribuiile originale. n finalul lucrrii, un capitol de concluzii generale sintetizeaz aceste contribuii i lanseaz cteva direcii viitoare de cercetare. Din acest rezumat au fost eliminate subcapitole i poriuni de subcapitole coninnd informaii mai generale, insistndu-se pe seciunile ce prezint elemente de proiectare, principala component de originalitate a tezei. Meniuni referitoare la paragrafele eliminate au fost pstrate n seciunile de introducere i concluzii, constituind o invitaie pentru cititor s rsfoiasc versiunea complet a tezei. Numerotarea seciunilor rmase (ca i a figurilor, tabelelor i ecuaiilor) s-a pstrat ca n tez, n scopul corelrii uoare ntre rezumat i tez pentru cititorul care va dori s parcurg versiunea complet.

2.

Dispozitive FPGA n controlul mainilor electrice

2.1 Evoluia dispozitivelor FPGA Primul 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 de intrare/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 de acesta. Astfel, de-a lungul anilor 1980, productorii de FPGA-uri au continuat s creasc numrul de blocuri logice, numrul nivelelor de interconectare i numrul pinilor de intrare/ieire. Perioada 1985 1991 poate fi astfel considerat perioada copilriei dispozitivelor FPGA. Aceasta este caracterizat prin faptul c FPGA-urile erau folosite ca logic de legtur n sisteme mai mari i programele software ce implementau circuitele proiectate n FPGA erau relativ simple i uor de mbuntit. n curnd ns s-a dovedit c aceast abordare nu era suficient: odat cu creterea numrului de blocuri logice, interconexiunile lungi i complexe dintre ele deveneau factorul limitativ al performanelor dispozitivului. De aceea, avnd n vedere c tehnologia de fabricaie permitea integrarea a tot mai multor tranzistoare, a aprut ideea ncorporrii de hardware dedicat. Astfel, la mijlocul anilor 1990 apar primele FPGA-uri cu blocuri de memorie RAM ncorporate. Tot atunci apar primele tehnici de cretere pe cip a frecvenei de lucru, prin integrarea de circuite cu calare pe faz (PLL Phase Locked Loop) de multiplicare a frecvenei. Perioada 1992 1999 poate fi considerat perioada de expansiune a dispozitivelor FPGA. La nceputul acestei perioade, multe firme productoare se retrag din domeniu (Plessey, Toshiba, Motorola, IBM) pentru c arhitecturile propuse de ele nu fac fa scalabilitii permise de avansarea rapid a tehnologiei de producie. n aceast perioad, creterea rapid a complexitii circuitelor pune presiune pe dezvoltarea de software de sintez automat care s permit proiectarea uoar i folosirea eficient a resurselor hardware. Totodat, FPGA-urile ncep s fie folosite n aplicaii mai complexe, n domeniul comunicaiilor i 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 la circuite de comunicaie rapid, de la funcii aritmetice specializate la blocuri dedicate procesrii digitale de semnal (DSP - Digital Signal Processing), bazate pe multiplicatoare hardware i acumulatoare. n 2000 apare primul FPGA cu procesor hardware ncorporat, bazat pe arhitectura 11

ARM. De asemenea, odat cu creterea numrului de blocuri logice integrate, a aprut tendina productorilor de FPGA-uri de a dezvolta procesoare soft, implementabile economic n blocurile logice din FPGA. n prezent, FPGA-urile au devenit platforme sistem: ambii mari productori de FPGA-uri i descriu dispozitivele complexe n astfel de termeni. Familia Virtex 6 de la Xilinx este descris ca 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 la epoca blocurilor logice interconectate prin conexiuni programabile, s-a ajuns la dispozitive configurabile complexe, capabile s implementeze un ntreg sistem digital pe un cip, sistem compus 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 perioada specializrii: familii diverse de FPGA-uri, bazate pe arhitecturi diferite, vor oferi dispozitive specializate pentru diferite tipuri de aplicaii. De asemenea, programele software de sintez la nivel nalt se vor specializa pe domenii diferite de aplicaii. 2.2 Arhitecturi actuale de FPGA Aceast seciune va prezenta pe scurt opiunile arhitecturale i tehnologice ale firmei Xilinx, unul din principalii productori actuali de dispozitive FPGA. Xilinx ofer dou familii principale de dispozitive FPGA, Spartan i Virtex. n acest rezumat se prezint doar familia Spartan. Arhitectura familiei Spartan 6 se bazeaz pe felii logice (slice), grupate n blocuri logice configurabile (CLB Configurable Logic Block). Fiecare CLB conine 2 felii alturate. Fiecare felie conine 4 LUT-uri, 8 bistabili i logic complementar. Exist 3 tipuri de felii logice n arhitectura Spartan 6: SLICEM, SLICEL i SLICEX. Un sfert din feliile logice ale unui dispozitiv Spartan 6 sunt de tipul SLICEM. Fiecare din cele 4 LUT-uri ale unui SLICEM poate fi configurat ca un singur LUT cu 6 intrri i o ieire sau ca 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: un registru de 32 de bii (SRL32 Shift Register Logic) sau 2 registre de 16 bii (SRL16). Ieirea fiecrui LUT poate fi salvat ntr-un bistabil. Pentru operaii aritmetice, un lan de propagare a transportului 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. Acestea au aceeai structur ca i SLICEM, cu excepia posibilitii de configurare ca memorie distribuit sau registru de deplasare. Celelalte felii logice dintr-un Spartan 6 sunt de tipul SLICEX, care elimin din structura SLICEL logica de generare a transportului i multiplexoarele. FPGA-urile Spartan 6 conin i blocuri de memorie RAM cu port dual de 18 kbii. 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 porturi de acces la un bloc de memorie pot avea limi diferite. Configuraiile x9, x18 i x36 includ bii de 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 Controller Block), fiecare putndu-se interfaa la un cip de memorie DRAM de tipul DDR, DDR2, DDR3 sau LPDDR (Low Power DDR) i putnd atinge rate de transfer de 800 Mb/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 numere reprezentate n complement fa de 2, i un acumulator de 48 de bii i poate opera la o frecven de lucru de 250 MHz. Blocul DSP48A1 ofer posibilitatea folosirii registrelor interne pentru implementarea de pipeline-uri. De asemenea, astfel de blocuri pot fi cascadate datorit multiplelor faciliti de nlnuire a propagrii transportului. Acumulatorul poate fi folosit i pe 12

post de numrtor sincron, iar multiplicatorul poate fi folosit pentru implementarea unui circuit de deplasare cu pas selectabil (barrel shifter). Dispozitivele familiei Spartan 6 dispun de circuite speciale pentru generarea semnalelor de tact. Acestea sunt numite blocuri de gestionare a tactului (CMT Clock Management Tile) i sunt 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 sintetizarea frecvenelor 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 de tact defazate (maximum 8 faze: 0, 45, 90, 135, 180, 225, 270, 315) i multiplicare sau divizare de frecven. Circuitele DCM se bazeaz pe bucle cu calare pe ntrziere (DLL Delay Locked Loop). Unele circuite din familia Spartan 6, i anume cele din sub-familia Spartan 6 LXT, conin circuite dedicate de transmisie/recepie serial de mare vitez. Acestea suport rate de transfer ntre 614 Mbps i 3,125 Gbps. Informaiile prezentate n aceast seciune au rolul de a evidenia extraordinarele posibiliti oferite de circuitele FPGA actuale. Ele au caracter introductiv, i cititorul este ndrumat ctre vasta bibliografie specific firmelor productoare: [11], [12], [13], [14], din care s-a sintetizat aici, pentru informaii mai detaliate. Din cele prezentate n aceast seciune se pot trage cteva concluzii: dispozitivele FPGA au devenit ntr-adevr platforme pentru implementarea de sisteme complexe n ntregime pe un singur cip. Chiar i familiile cu pre sczut integreaz destule componente complexe pentru a permite aceasta. n plus, folosirea resurselor disponibile implic cunotine din multe domenii conexe, de la procesare de semnal la microcontrolere i proiectare de software pentru sisteme ncorporate, de la proiectare de structuri digitale la descriere n limbaje HDL i simulare a acestora. De aici presiunea foarte mare asupra productorilor de dispozitive FPGA de a aduce uneltele software de proiectare la un nivel ct mai nalt, ct mai abstract, pentru a permite dezvoltarea ct mai rapid de proiecte complexe. Altfel, la ce bun o multitudine de resurse, dac nimeni nu reuete s le foloseasc n ntregime? 2.3 Metodologia de proiectare a unui sistem de control implementat n hardware pe FPGA Dispozitivele FPGA permit proiectarea de arhitecturi hardware specializate, cu avantajul flexibilitii mediului programabil n care se realizeaz implementarea. Acest lucru ofer un grad de libertate n plus n proiectarea de sisteme de control numeric fa de folosirea microprocesoarelor, deoarece arhitectura hardware a sistemului de control nu e impus a 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 impune folosirea unei metodologii de proiectare eficiente. O astfel de metodologie se bazeaz pe trei principii majore [19]: rafinarea algoritmului de control, modularitatea i potrivirea optim ntre algoritmul ce trebuie implementat i arhitectura hardware aleas. Aceste trei concepte sunt prezentate n cele ce urmeaz. 2.3.1 Rafinarea algoritmului Rafinarea algoritmului este un pas necesar n proiectarea sistemelor de control cu FPGA. Implementarea operaiilor aritmetice n virgul mobil este posibil n FPGA, dar utilizarea resurselor 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 operaii aritmetice 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 multiple de date, logic de luare a deciziilor i activare a anumitor ci, registre de deplasare pentru 13

normalizare, etc. Aceste structuri complexe consum foarte multe resurse, n vreme ce reprezentarea numerelor n virgul fix nu necesit niciun fel de resurse adiionale fa de reprezentarea numerelor ntregi n complement fa de 2. Din aceste motive s-au formulat dou direcii 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 procent semnificativ din resursele disponibile (nmulire, mprire). Un astfel de exemplu este algoritmul CORDIC (COordinate Rotation DIgital Computer), care se bazeaz doar pe operaiile aritmetico-logice de adunare i deplasare pentru a calcula o multitudine de funcii trigonometrice, hiperbolice, liniare i logaritmice. Un alt exemplu l reprezint algoritmii de aritmetic 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, atunci cnd nu se folosesc astfel de algoritmi speciali, simplificarea computaional se poate obine prin remodelarea algoritmului de implementat pentru a reduce numrul operaiilor ce trebuie realizate. 2. Folosirea unui format optimizat de reprezentare a numerelor n virgul fix: aa cum sa menionat mai sus, reprezentarea n virgul fix este foarte potrivit pentru implementare n FPGA, dar trebuie gsit cel mai avantajos compromis ntre numrul de bii ai fiecrei variabile de control i respectarea specificaiilor de control. n acest sens, n [23] este prezentat o metodologie de calcul a numrului de bii necesari pentru reprezentarea fiecrei cantiti a sistemului de control, metodologie bazat pe normele l i l1 . A fost dezvoltat, de asemenea, un toolbox Matlab pentru analiza efectelor implementrii filtrelor digitale i a sistemelor de control folosind reprezentarea numeric n virgul fix [23], ce permite optimizarea alegerii reprezentrii. 2.3.2 Modularitatea i reutilizabilitatea Pentru proiectarea sistemelor complexe, principiul modularitii este esenial. Acest principiu se bazeaz pe conceptele de ierarhizare i regularitate. Ierarhizarea mparte un sistem mare sau complex n entiti mai uor realizabile denumite module. Regularitatea este direcionat spre maximizarea reutilizrii modulelor deja proiectate. O bun modelare i ierarhizare a unui sistem, precum i folosirea de module deja existente, poate reduce timpul de proiectare mult mai mult dect o stpnire perfect a uneltelor de proiectare. Principiul modularitii poate nsemna i folosirea de blocuri IP deja proiectate, testate i sintetizate de alii. n aceast categorie intr, de exemplu, procesoarele soft i blocurile IP destinate operaiilor specifice DSP. Un modul poate fi definit ca un element al unei biblioteci, ce poate fi instaniat 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 biblioteci de 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 de schem sau la nivele de proiectare mai abstracte, de exemplu la nivelul proiectrii sistemelor DSP n Simulink. 2.3.4 Potrivirea optim algoritm-hardware Potrivirea 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 gsire a acestei potriviri optime este prezentat n [24] i numit metodologia AAA (sau A 3 ). Prescurtarea AAA provine de la Algorithm Architecture Adequation, iar termenul adequation are sensul francez de potrivire eficient, nu sensul cuvntului englezesc adequacy, ce implic doar potrivirea suficient. Atunci cnd vorbim despre proiectare n FPGA, scopul metodologiei AAA este de a gsi o arhitectur hardware optimizat pentru un anumit algoritm, respectnd n 14

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 al arhitecturii hardware alese. Pentru ilustrarea metodei se va folosi un exemplu din [19]: se consider c trebuie implementat o operaie matriceal simpl de forma:
X d A11 ( ) X = q A21 ( )
A12 ( ) X a A22 ( ) X b

(2.1)

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

Graful fluxului de date (DFG Data Flow Graph) corespunztor ecuaiei (2.1) este prezentat n Fig. 2.11. Fiecare nod al grafului reprezint o operaie i fiecare muchie reprezint o dependen de date ntre operaii. Structurile repetitive din DFG pot fi factorizate apoi conform metodologiei AAA [24], pentru a satisface constrngerile 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 al latenei (timpul dup care rezultatele sunt disponibile, exprimat n cicli de tact), al vitezei (timpul care 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 consum i cele mai multe resurse. De obicei, resursele critice sunt operatorii compleci, de tipul multiplicatoarelor, i nu registrele sau multiplexoarele. Este de asemenea evident c structura ALU-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 vedere al costurilor hardware, 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 FPGA Aceast 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 o idee 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 bibliografice mai recente. Astfel, n [27] se prezint o abordare integrat a modelrii i implementrii n FPGA a 15

unui sistem de control fr senzori de vitez/poziie pentru motorul de inducie. Folosind un observator n spaiul strilor i un sistem de control bazat pe reele neuronale, autorii prezint modelarea 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 hardware i software pentru motorul PMSM. Autorii propun o abordare combinat ntre un regulator adaptiv de vitez bazat pe logic fuzzy, implementat n software pe un procesor soft, 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 i BLDC 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 de inducie, folosind metoda DTC ( Direct Torque Control) i un observator de stare. Sistemul de control a fost proiectat folosind mediul LabView FPGA i implementat pe o plac National Instruments 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-proiectare hardware-software: buclele de curent pentru motoarele PMSM sunt implementate n hardware pe FPGA, n timp ce buclele de vitez i generarea traiectoriei sunt realizate prin software pe un procesor soft NiosII pe acelai FPGA. O aplicaie asemntoare este prezentat n [32]: un sistem modular de control al micrii multi-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 procesor soft n acelai FPGA. La fel, n [33] micarea unui robot omnidirecional este controlat de un FPGA: controlul curenilor prin trei motoare de curent continuu este efectuat de module hardware independente, iar controlul vitezei i al traiectoriei este realizat prin software pe un procesor Nios II. n [34], autorii propun un sistem de control simplu pentru motorul de curent continuu fr perii (BLDC Brushless DC). Acesta se bazeaz pe alternarea a doar dou valori pentru factorul de umplere al semnalului modulat n limea impulsurilor (PWM Pulse Width Modulation) aplicat motorului, simplificnd proiectarea i implementarea regulatorului. Conceptul este verificat prin simulri i experimente. n [35] i [36] este prezentat un sistem de control pentru un motor PMSM dotat cu un rezolver 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 c folosete 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 jurul procesorului s-a construit un ntreg sistem de periferice descrise n VHDL i implementate n hardware pe acelai FPGA: un circuit temporizator, un modul de interfaare cu un amplificator analogic i un CAN cu interfa serial SPI (Serial Peripheral Interface), un modul de generare de semnal PWM, un modul de comunicaie serial RS232. Articolul [38] prezint un sistem cu procesor hard PowerPC modular i scalabil bazat pe un FPGA XC2VP30ff896-6, aplicat pentru controlul n timp real al unui motor de curent continuu. S-au evaluat dou sisteme de operare embedded de timp real, C/OS-II i Xilkernel. n [39] se descrie proiectarea i dezvoltarea unui sistem de control embedded pentru aplicaii de robotic, bazat pe FPGA, sistemul de operare de timp real MontaVista Linux i biblioteca specializat OROCOS (Open Robot Control Software). S-au integrat de asemenea o 16

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 sau mai puin complete ale algoritmului de control: control orientat dup cmp (FOC Field Orientated Control), FOC cu compensarea tensiunii electromotoare induse, FOC cu compensarea tensiunii induse i cu decuplare ntre axe, control direct al cuplului (DTC). De asemenea, sistemul poate alege ntre implementarea pe un procesor soft sau implementarea n hardware. n funcie de decizia sistemului, o parte din FPGA poate fi reconfigurat cu o alt implementare, aceasta este iniializat, apoi i se d controlul. Articolul [41] prezint proiectarea n Simulink, folosind software-ul DSP Builder, a unui sistem de control pentru PMSM implementabil n FPGA. Sistemul se bazeaz pe regulatoare cu histerezis pentru cureni i regulator PI de vitez. Algoritmul de control utilizeaz 56 de blocuri DSP de 9x9 bii din FPGA (Altera Stratix II EP2S60F1024C4). n [42] se propune controlul fr senzor de poziie pentru motorul sincron folosind filtrul Kalman extins pentru estimarea poziiei i vitezei. Se folosesc regulatoare PI pentru cureni, iar tensiunile 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, ajungnd totui 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 hardwaresoftware: regulatorul de vitez, cu o dinamic mai nceat, este implementat prin software pe un procesor soft Nios II, iar regulatoarele de curent, cu o dinamic rapid, sunt implementate n hardware. Aceeai idee de co-proiectare hardware-software se regsete i n [44], pentru implementarea unui sistem de control al vitezei pentru motorul de curent continuu. Diferena const n faptul c se folosesc dou procesoare hard IBM PowerPC 405, unul pentru regulatorul de vitez i al doilea pentru emularea sistemului controlat (motorul de curent continuu). Regulatorul de curent, implementat ca modul hardware ataat la primul procesor, este proiectat n Impulse C. Articolul [45] prezint un sistem combinat de control fr senzori de poziie pentru motorul BLDC: startarea motorului se realizeaz n bucl deschis, iar ncepnd cu o anumit vitez se nchide bucla folosind tensiunea electromotoare indus. Pentru implementare s-a folosit un 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 semnalul de comand al motorului i estimarea inductanei momentane a statorului prin intermediul unei bucle cu calare pe faz (PLL Phase Locked Loop). Att bucla PLL, ct i algoritmul de modulaie bazat pe vectori spaiali (SVM Space Vector Modulation) utilizat pentru aplicarea tensiunilor pe cele 3 faze ale motorului se folosesc de algoritmi CORDIC pentru calcularea funciilor trigonometrice. Lucrarea [47] realizeaz o comparaie ntre implementarea n hardware i cea pur software pe un procesor soft Cortex-M1 din familia ARM, a unui regulator de curent cu histerezis pentru PMSM. Pe lng regulator i transformrile de coordonate asociate, s-a implementat i un modul de procesare a semnalelor provenite de la un rezolver analogic pentru extragerea informaiei de poziie. n [48] se prezint o arhitectur de calcul modular i ierarhic bazat pe o unitate aritmetic ce realizeaz nmulirea unei matrice cu un vector. Modulele alctuiesc o bibliotec de componente pentru controlul unui vehicul electric cu motoare de inducie. Articolul [49] prezint un sistem de control fr senzor de poziie pentru PMSM partiionat ntre hardware i software: regulatoarele PI de curent, transformrile de coordonate, algoritmul SVM i estimatorul de poziie bazat pe un observator sliding mode sunt realizate n 17

hardware, n timp ce estimarea vitezei i reglarea ei sunt efectuate prin software pe procesorul soft Nios II. n [50] este prezentat un sistem de control pentru motorul de inducie alimentat de o punte 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 sistemelor de control pentru motoare electrice. Multe dintre acestea sunt dedicate motoarelor de curent alternativ, datorit complexitii controlului acestora, i deci a cerinelor computaionale pentru sistemul de timp real. Scopul acestei lucrri, acela de a proiecta un sistem de control pentru motorul PMSM implementabil ntr-un circuit FPGA, se nscrie aadar ntr-o tendin n cercetare la nivel internaional. Ceea ce va particulariza sistemul proiectat va fi modul de proiectare, uneltele folosite pentru proiectare i validare, i mai ales constrngerile de proiectare impuse de dispozitivul 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 de vedere 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 n paralel. Aceast concluzie se desprinde i din [57], unde se compar implementarea n hardware pe FPGA cu o implementare n software pe un procesor DSP. n [58], comparaia se extinde i la o implementare prin software pe un procesor soft MicroBlaze, cu rezultate asemntoare: implementarea software pe MicroBlaze este mai lent dect implementarea pe DSP, iar aceasta este de 11 ori mai lent dect implementarea n hardware. Studierea bibliografiei a condus deci la o direcie de urmat pentru restul tezei: sistemul de control va fi proiectat pentru implementare n hardware pe FPGA, datorit performanelor nalte posibile. Totui, procesoarele soft rmn o soluie viabil pentru anumite sarcini greu de implementat n hardware i fr constrngeri stringente de timp de execuie. Astfel de sarcini sunt cele de monitorizare ntr-un sistem de control, care trebuie s afieze parametrii sau s realizeze comunicaia cu un calculator gazd. De aceea, un capitol al tezei va fi consacrat i sistemelor cu procesoare soft. 2.5 Concluzii n 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 apariiei (sau copilriei) FPGA-urilor, care vede definirea arhitecturii generale i o multitudine de productori; 1992-1999 epoca de expansiune, cnd ncep s se integreze elemente hardware dedicate i crete mult capacitatea circuitelor, muli productori fiind eliminai din cauza lipsei scalabilitii arhitecturilor propuse de ei; 2000-2007 epoca de acumulare, cnd se integreaz tot mai multe elemente hardware dedicate, inclusiv procesoare hard; 2007-prezent epoca de specializare: familii diferite, bazate pe arhitecturi diferite, se adreseaz unor domenii diferite de aplicaii, sprijinite de medii de proiectare specializate. n seciunea a doua sunt prezentate succint caracteristicile arhitecturii actuale de FPGAuri de cost sczut produse de Xilinx. Seciunea reprezint o selecie relevant de informaie din sute de pagini de documentaie [11], [12], [13], [14], necesar pentru a crea o imagine asupra capabilitilor dispozitivelor FPGA actuale. n cea de-a treia seciune este prezentat o metodologie de proiectare a sistemelor de control bazate pe FPGA, sintetizat din [19] i bazat pe 3 principii majore: rafinarea 18

algoritmului de control, modularitatea i potrivirea optim ntre algoritmul ce trebuie implementat i arhitectura hardware aleas. Ultima seciune a capitolului reprezint un studiu bibliografic extins asupra sistemelor de control pentru motoare electrice implementate n FPGA. n urma acestuia se constat: Implementarea algoritmilor de control n hardware pe FPGA este mult mai eficient 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 de timp de execuie; Majoritatea algoritmilor de control prezentai n literatur folosesc foarte multe resurse din FPGA, trebuind revizuii serios pentru implementarea n dispozitive FPGA de cost redus, cu doar cteva zeci de multiplicatoare integrate; n majoritatea abordrilor din literatur exist o ruptur ntre proiectarea sistemului de control i validarea sa prin simulare i implementarea pe FPGA i verificarea experimental; doar uneori (de exemplu [27], [41]) se propune o abordare integrat pentru simulare i proiectare/implementare. Aadar, direcia propus pentru cercetare, de a implementa un sistem de control pentru motorul PMSM n FPGA, se nscrie n tendinele actuale de cercetare n domeniu la nivel internaional. De asemenea, exist o ni pe care ar putea-o acoperi: proiectarea ntr-un mediu de nivel nalt, care s permit validarea prin simulare, avnd ca int un dispozitiv FPGA de cost redus, deci implicnd optimizarea la maximum a arhitecturii hardware a algoritmului de control.

3.

Unelte de dezvoltare pentru dispozitive FPGA

Acest capitol prezint o scurt trecere n revist a metodelor de proiectare i a uneltelor software disponibile pentru dezvoltarea sistemelor bazate pe dispozitive FPGA. Capitolul este mprit 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 prezentat software-ul System Generator, produs de Xilinx, ce permite proiectarea integrat n mediul Simulink 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 o seciune 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 IP Nucleele 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 IP sunt 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 unelte software de dezvoltare (Synopsys, Cadence, Mentor Graphics, Altium) sau firme specializate n anumite domenii de aplicaii (Modelware, QuickFlex) [4]. Mediul academic este de asemenea foarte prolific n aceast direcie [5]. O clas special de nuclee IP o reprezint microprocesoarele soft. Acestea sunt microprocesoare proiectate pentru a putea fi implementate n dispozitive FPGA, folosind resursele logice ale acestora. Exist procesoare proiectate special n acest scop, pentru a folosi ct mai economic resursele FPGA-ului (de exemplu, PicoBlaze i MicroBlaze de la Xilinx, Nios i 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 (de exemplu, 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, 19

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 n ritmul alert n care aceasta are loc. 3.1.3 Unelte de dezvoltare pentru sisteme ncorporate n FPGA FPGA-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 o constituie 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 hardware proiectat. Productorii de FPGA-uri au dezvoltat i unelte software pentru proiectarea de sisteme bazate pe propriile microprocesoare hard sau soft. Aceste unelte includ nuclee IP pentru periferice, unelte de modificare/adaptare a nucleului de procesare soft, unelte pentru dezvoltarea de programe software (editor, asamblor, compilator, editor de legturi (linker), depanator), depanatoare hardware/software, unelte de verificare a hardware-ului, biblioteci, exemple de hardware i software (reference designs) pentru plci de dezvoltare. Exemple de astfel de unelte de dezvoltare sunt Xilinx EDK (Embedded Development Kit), Nios II IDE (Integrated Development 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 Mentor Graphics i Active-HDL de la Aldec. Seamless permite simularea procesorului ncorporat la nivel de instruciune (ISS - Instruction Set Simulator) i simularea componentelor hardware din jurul procesorului ntr-un mediu integrat. Active-HDL permite verificarea sistemelor bazate pe Nios II folosind un simulator logic pentru componentele hardware i o plac cu FPGA conectat la 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 i pe librrii specifice asociate, cum ar fi Impulse C [73] sau Handel C [74]. Exemple de unelte de dezvoltare bazate pe limbajul C: DK Design Suite de la Agility, CoDeveloper de la Impulse Accelerated Technologies, Catapult C Synthesis de la Mentor Graphics. Aceste unelte de dezvoltare, ce permit proiectarea abstractizat la nivel nalt, de sistem, i ascunderea detaliilor arhitecturilor fizice pe care se realizeaz implementarea, sunt denumite generic 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 apar unelte de dezvoltare ct mai specializate. Cum Matlab este platforma favorit pentru dezvoltarea algoritmilor DSP, era firesc s se ncerce realizarea unor unelte de legtur ntre codul scris n Matlab sau modelul realizat n Simulink i hardware-ul disponibil n dispozitivele FPGA. Ideea a fost mai nti implementat cu succes n cazul generrii de cod pentru procesoare DSP direct din modele Simulink, de ctre dSPACE, cu TargetLink [77]. Astfel, ambii productori mari de FPGA-uri ofer i software pentru generare de module IP 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 le translateaz n descrieri hardware sintetizabile n FPGA, ce pot fi mai departe prelucrate de uneltele de implementare (Xilinx ISE, respectiv Altera Quartus II). Avantajul major al metodei 20

const n faptul c hardware-ul obinut i modelul Simulink sunt echivalente, simularea n Simulink 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 folosind reprezentarea numeric n virgul fix. ns pentru aplicaiile reale de procesare de semnal gama dinamic i amplitudinea semnalelor este suficient de limitat pentru ca o reprezentare n virgul fix pe destui bii s dea rezultate mai mult dect acceptabile. Pe lng oferta productorilor de FPGA-uri, exist i firme specializate n unelte de proiectare care ofer capabiliti asemntoare. De exemplu, Synplify DSP de la Synplicity genereaz 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 Signal Processing Designer de la CoWare, care ofer un mediu de modelare i simulare grafic bazat pe scheme bloc asemntor cu Simulink. Blocurile sunt scrise n limbajul C, dar se pot apela i funcii Matlab sau se pot trimite rezultatele simulrii n Matlab, pentru analiz. 3.2 Proiectarea n mediul Simulink a structurilor hardware folosind blockset-ul System Generator n general, proiectarea structurilor numerice de control n FPGA implic realizarea unui hardware 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 operaii diferite. Un algoritm de control implementat n FPGA poate fi vzut ca o serie de uniti aritmetico-logice specializate ce lucreaz n paralel sau ntr-o anumit secven. n vreme ce o unitate 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 sau secveniatoare simple. Proiectarea acestor structuri hardware poate fi realizat i prin metodele clasice: captur de schem sau descriere ntr-un limbaj de descriere hardware (HDL - Hardware Description Language) [80], dar i 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 Matlab poate fi foarte folositoare deoarece permite un nivel nalt de detaliere, iar metodele de proiectare sunt bine cunoscute i cercetate, proiectarea n Simulink ofer avantaje majore: un nivel de abstractizare mult mai nalt dect proiectarea la nivel de captur de schem logic, cu pstrarea totui a caracterului vizual al informaiei, foarte uor de urmrit i neles; simularea facil, cu generarea automat a vectorilor de test i vizualizarea rapid a rezultatelor; posibilitatea interfarii cu alte unelte software, cum ar fi simulatoare HDL sau asambloare/compilatoare pentru procesoare soft ncorporate n FPGA. Din aceste motive, proiectarea n Simulink a structurilor hardware implementate n FPGA este foarte folosit. Acest subcapitol prezint pe scurt utilizarea software-ului System Generator, produs de Xilinx, 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 procedeul de importare n Simulink i simulare a modulelor proiectate prin metode de nivel mai jos, cum ar fi captura de schem logic sau descrierea HDL. Software-ul System Generator permite definirea de hardware specific pentru un anumit dispozitiv fizic ntr-un mediu cu un nivel nalt de abstractizare. n System Generator, semnalele nu 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 de reprezentare. Blocurile nu sunt doar reprezentri pentru elemente hardware, ci i modific n funcie de setri i context rezultatele pe care le ofer i hardware-ul pe care l genereaz. System Generator poate fi folosit pentru implementarea unei anumite pri dintr-un proiect 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 interfee externe ce au cerine de temporizare sofisticate. n aceste situaii, se poate folosi System 21

Generator pentru a implementa o poriune din proiect, iar o alt poriune poate fi implementat prin metode clasice, mai orientate ctre detalii (captur de schem sau descriere HDL), iar apoi modulele pot fi integrate ntr-un ntreg. n ceea ce privete implementarea unui ntreg sistem n System Generator, din Simulink se poate obine o descriere HDL a ntregului proiect, ce poate fi apoi procesat de uneltele obinuite de sintez i implementare. 3.2.2 Blockset-ul Xilinx Un blockset Simulink reprezint o bibliotec de blocuri ce pot fi conectate n editorul de scheme bloc Simulink pentru a crea modele funcionale ale sistemelor dinamice. Pentru modelare, blocurile System Generator sunt folosite ca i oricare alte blocuri Simulink. Blocurile ofer o reprezentare la un nivel de abstractizare mai nalt pentru funcii matematice, funcii tipice de 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 System Generator sunt precise la nivel de bit i ciclu (bit and cycle accurate). Precizia la nivel de bit nseamn c valorile rezultate n Simulink sunt aceleai cu valorile corespunztoare returnate de hardware. Precizia la nivel de ciclu nseamn c valorile rezultate sunt produse la momente de timp ce corespund momentelor la care reacioneaz hardware-ul (ciclu de tact). Odat instalat System Generator, n vizualizorul de biblioteci Simulink apare blockset-ul Xilinx, cu bibliotecile corespunztoare. Blockset-ul Xilinx conine blocuri de baz ale System Generator. 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 descriere sumar 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 de reprezentare. 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. Shared Blocuri pentru implementarea i accesarea de memorii partajate. Memory Tools Blocuri pentru controlul simulrii, vizualizarea i analiza datelor, interfaarea cu alte unelte. Pe lng blockset-ul Xilinx, System Generator include i un blockset numit Xilinx Reference Blockset, coninnd funcii compuse din blocuri Xilinx ce acoper o arie larg de funcionaliti. 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 Descriere Communication 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.

22

3.2.5 Biblioteci ale blockset-ului Xilinx Biblioteca 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 a formatului de reprezentare (Assert, Reinterpret). Blocul Black Box permite ncorporarea unui modul 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 pentru instanierea de memorii (Dual Port RAM, FIFO, ROM, Single port RAM) i de procesoare (EDK Processor, PicoBlaze Microcontroller). Blocul MCode permite executarea de cod Matlab n Simulink, iar blocul Shift realizeaz operaia de deplasare. Biblioteca Data Types grupeaz blocuri folosite pentru manipularea semnalelor, trecerea dintr-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 prin ajustarea poziiei virgulei fixe n reprezentare) se gsesc i n bibliotecile deja prezentate, i au fost 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 nuclee configurabile (Complex Multiplier 3.0, CORDIC 4.0, Divider Generator 2.0, SineCosine). Biblioteca Memory grupeaz blocuri folosite pentru implementarea diverselor tipuri de module de memorie n Simulink. Aceste blocuri (cu o excepie, Shared Memory, ce implementeaz o memorie RAM ce poate fi partajat ntre mai multe proiecte sau seciuni ale aceluiai proiect) se gsesc i n bibliotecile deja prezentate, i au fost grupate aici pentru uurarea gsirii lor. Biblioteca Tools conine diferite unelte de control i verificare a simulrii (Clock Probe, Configurable Subsystem Manager, Disregard Subsystem, Indeterminate Probe, Multiple Subsystem Generator, Pause Simulation, Sample Time, Simulation Multiplexer, Single-Step Simulation, Toolbar, WaveScope), de interfa pentru depanare (ChipScope, ModelSim) sau proiectare (FDA Tool), de estimare a resurselor (Resource Estimator). Aceste blocuri nu au n general corespondent n hardware, fiind utile pentru simulare i depanare la proiectare. Din prezentarea bibliotecilor System Generator se poate trage concluzia c aceast unealt 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 privete posibilitile de ajustare ulterioar. 3.2.12 Importarea n Simulink a unui modul proiectat prin captur de schem Folosind unealta software System Generator, n mediul Simulink se pot proiecta structuri numerice ce pot fi apoi implementate direct n hardware, pe dispozitive de tip FPGA. Aceast metod de proiectare permite un nivel de abstractizare mai nalt dect metodele de proiectare obinuite (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 cu memoria 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 ocupate i 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 23

Simulink. Acest modul poate proveni fie dintr-o descriere direct n limbaj HDL, fie dintr-o traducere n limbaj HDL a unei scheme logice capturate. Prin importarea modulului, acesta poate fi 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 semnalele de 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 schem Dup definirea modulului Black Box, acesta este n starea Inactive. Acest lucru nseamn c simularea Simulink nu-l va activa, deci nu se va ine cont de el. Dac se dorete simularea funcionalitii blocului, atunci se va alege o alt opiune pentru cmpul Simulation Mode. Dac se alege ISE Simulator, atunci se va folosi pentru co-simulare un simulator HDL produs de Xilinx 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. Dac se folosete limbajul Verilog, atunci trebuie s se bifeze opiunea Include Verilog unisim library pentru blocul ModelSim. De asemenea, biblioteca Unisim, coninnd elementele de baz pentru proiectarea de hardware n FPGA i fiind oferit de Xilinx, trebuie compilat n simulatorul ModelSim sub numele unisims_ver. Simulatorul ModelSim permite vizualizarea formelor de und ale semnalelor de intrare i ieire ale modulului simulat, dar permite i vizualizarea semnalelor interne ale modulului, ceea ce este foarte important pentru depanare. 3.3 Unelte de depanare pentru sisteme implementate n FPGA Cele mai avantajoase unlte de depanare pentru proiectarea bazat pe FPGA-uri sunt analizoarele logice virtuale. Acestea sunt nuclee IP ce se implementeaz n resursele nefolosite din FPGA. Modul de lucru este urmtorul: se definesc semnalele ce trebuie analizate, se definete dimensiunea ferestrei de analiz (numrul de eantioane, n strns legtur cu memoria disponibil n FPGA), se definete un eveniment de declanare a analizei (trigger, o condiie 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 (rmas nefolosit de ctre aplicaie) ncepnd cu momentul n care condiia de trigger este ndeplinit. Apoi sunt transferate pe un calculator gazd, unde pot fi vizualizate i analizate folosind programe software specializate. Exemple de astfel de unelte proiectate de productorii de FPGAuri sunt SignalTap II de la Altera, ChipScope Pro de la Xilinx, ispTRACY de la Lattice. Astfel de unelte sunt disponibile i de la alte firme specializate: Identify de la Synplicity, FPGAView de la First Silicon Solutions. Altium Designer ofer biblioteci de instrumente virtuale pentru depanare, ce se implementeaz n FPGA i sunt afiate prin interfaa software-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 poate combina cu ChipScope Pro sau EDK i se poate folosi cu analizoare logice din familiile 16900, 16800, 1680, 1690 de la Agilent, pentru FPGA-urile Xilinx. Agilent ofer i B4656A FPGA Dynamic Probe, care, n combinaie cu Quartus II Logic Analyzer Interface i aceleai familii de analizoare logice, se poate folosi pentru FPGA-urile Altera. De asemenea, Agilent ofer E9524A MicroBlaze Trace Toolset, ce, n combinaie cu aceleai familii de analizoare logice, poate fi folosit pentru urmrirea fluxului de date i program a unul sau mai multe procesoare MicroBlaze implementate n FPGA-uri Xilinx. FPGAView de la First Silicon Solutions poate fi combinat cu Quartus II Logic Analyzer Interface i analizoare logice Tektronix din familiile TLA600, TLA5000, TLA700, TLA7000 sau MSO4000 pentru depanarea sistemelor bazate pe FPGA-uri Altera, sau cu Logic Analyzer Core i aceleai familii de analizoare logice pentru depanarea sistemelor bazate pe FPGA-uri Xilinx.

24

3.4 Studii de caz n continuare se vor prezenta trei studii de caz originale, aplicaii de control automat implementate pe FPGA. Acestea servesc la a exemplifica aplicarea metodologiei i utilizarea uneltelor de proiectare prezentate. De asemenea, au avut un rol esenial n familiarizarea autorului 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 faz Bucla cu calare pe faz (PLL Phase Locked Loop) este probabil cel mai rspndit exemplu de sistem de reglare automat n bucl nchis. O utilizare mai puin rspndit, dei introdus 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 Controlled Oscillator). Semnalul de ieire al oscilatorului controlat n tensiune este comparat cu un semnal de referin de ctre circuitul detector de faz. Ieirea filtrat a acestuia comand VCO-ul. Bucla PLL lucreaz n sensul minimizrii erorii de faz dintre cele dou 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 DCOul (DCO Digitally Controlled Oscillator) buclei. Diferena fa de un DCO obinuit const n faptul c combinaia motor - codificator este un sistem de ordinul 2, i acest lucru trebuie luat n consideraie cnd se proiecteaz bucla. Schema bloc a sistemului de control al motorului este prezentat n Fig. 3.7. Acesta const dintr-un detector de faz i frecven (PFD Phase Frequency Detector), un filtru de bucl i motorul cu codificatorul incremental 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, este dat de (3.1), unde K m este amplificarea, iar Tm 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, faza funciei de transfer n bucl nchis va depi 180 la frecvene nalte i sistemul va pierde stabilitatea. Din acest motiv se folosete un filtru de tip PI, a crui funcie de transfer este (3.2), unde K P =
2 1 , KI = . 1 1
H (s) =

Km s (1 + sTm )

(3.1)

F (s) = K P +

K I 2 s +1 = . s 1s

(3.2)

ntreaga bucl de control a fost proiectat pentru a fi implementat n FPGA. Pentru aceasta, a fost proiectat un circuit secvenial original detector de faz, iar filtrul a fost discretizat i implementat prin operatori aritmetici. De asemenea, a fost proiectat un circuit generator de semnal modulat n durata impulsurilor (PWM Pulse Width Modulation), cu rol de convertor numericanalogic, pentru controlul tensiunii aplicate motorului. Schema bloc a detectorului de faz este prezentat n Fig. 3.8.
Figura 3.8. Schema bloc a detectorului de faz.

25

Detectorul de faz semnaleaz att magnitudinea erorii de faz, ct i direcia erorii (phase lead sau phase lag). De asemenea, i o eroare de frecven este reflectat de comportarea circuitului, acesta putnd fi considerat detector de faz i frecven (PFD Phase Frequency Detector). Ieirea detectorului de faz este liniar n intervalul [-;+) i este neliniar n cazul erorii de frecven. Detectorul de faz este deci un convertor analog-numeric pentru eroarea de faz, a crui funcie de transfer pentru intervalul [-;+) este (3.3). Detectorul de faz proiectat ofer avantajul unei reprezentri foarte precise, pe 16 bii, a defazajului. Este astfel superior altor circuite prezentate n literatur [101], bazate pe automate de stri. n ceea ce privete filtrul de bucl, acesta este proiectat n domeniul digital pornind de la ecuaia (3.2). Prin discretizarea acesteia, incluznd caracteristica de extrapolator de ordin 0 a detectorului de faz, se ajunge la (3.4), care conduce la (3.5), unde T este perioada de eantionare, adic perioada semnalului de referin. Dac se exprim (3.5) n z 1 , se obine (3.6). Notnd ieirea filtrului cu u[k] i intrarea cu [k], atunci (3.6) conduce la o relaie de calcul pentru u[k], (3.9), trecnd prin (3.7) i (3.8).
Kd = 65536 2 KIT z 1

(3.3) (3.5) (3.7)

F ( z) =

z 1 KP KI z 1 KP z K Tz + I Z + 2 = z s z z 1 ( z 1) 2 s

(3.4) (3.6) (3.8) (3.9)

F ( z) = K P +

F ( z) = K P +

K I Tz 1 1 z 1

U ( z ) K P + ( K I T K P ) z 1 = ( z ) 1 z 1

U ( z ) z 1U ( z ) = K P E ( z ) + ( K I T K P ) z 1E ( z )

u[k ] = u[k 1] + K P [k ] + ( K I T K P ) [k 1] .

Schema bloc a filtrului digital, adic structura hardware dedicat ce implementeaz ecuaia cu diferene (3.9) este prezentat n Fig. 3.9. Filtrul este implementat folosind multiplicatoarele dedicate pe 18 bii ale dispozitivului FPGA Spartan-3E XC3S500E, de la Xilinx, care s-a utilizat la efectuarea experimentelor. Dup fiecare operator aritmetic este implementat o structur hardware de detectare a depirii i saturare a rezultatului la valoarea maximum pozitiv sau maximum negativ reprezentabil pe 16 bii. Acest lucru permite evitarea efectelor catastrofale ale depirilor [82], chiar dac saturaia, atunci cnd este atins, introduce neliniariti. Pentru determinarea factorilor de amplificare ai elementelor proporional i integrator s-a aplicat metoda proiectrii n domeniul frecven, folosind diagramele Bode, ca n [97]. Zeroul din funcia de transfer trebuie plasat astfel nct faza s rmn sub 180 la frecvena unde amplificarea trece prin 0. Considernd o rezerv de 30, frecvena de tiere a termenului (1 + 2 s) trebuie s fie mult sub frecvena de tiere 1 / Tm : 2 = aTm , ( a > 1 ). Alegnd un factor a=10 i cunoscnd Tm = 1s pentru motorul considerat, se ajunge la 2 = 10s .
Figura 3.9. Schema bloc a filtrului digital.

Pentru a gsi valoarea lui 1 , trebuie ales factorul de amplificare total al buclei astfel nct amplificarea s fie 0 la frecvena de tiere = 1 / Tm . Aceast constrngere conduce la un factor de amplificare total al buclei K=0,14. Cunoscnd valorile celorlali factori de amplificare ( K d , amplificarea detectorului de faz; K m , amplificarea motorului; K a , amplificarea circuitului 26

PWM i a driver-ului, prezentat mai jos; K z , amplificarea tahometrului; K N , amplificarea divizorului programabil), s-a determinat valoarea lui 1 :
K K K K K 1 = d a m z N = K 65536 20 320 1 60 2 65536 60 50 146 . 0.14

(3.11)

Astfel, parametrii filtrului PI sunt: K p =

2 10 1 1 = = 0.068 , K I = = = 0.0068 . S-a ales o 1 146 1 146

valoare a divizorului programabil N=50, ceea ce conduce la K N = 1 / 50 . Pentru efectuarea experimentelor, s-a considerat c viteza de referin a motorului variaz n jurul valorii de 600 rot/min, adic o frecven de 12 Hz. Semnalul de referin este generat n FPGA de la semnalul oscilatorului cu cuar de 50 MHz prin divizare cu 222 , obinndu-se 11.92Hz. Perioada de eantionare este deci T=0,084s, ceea ce conduce la factorul de multiplicare K I T K P = 0.0005712 0.068 = 0.0674288 . Operaiile de nmulire au fost implementate folosind multiplicatoarele dedicate pe 18 bii ale dispozitivului FPGA, dup scalarea intrrilor, prin deplasri la dreapta, pentru atingerea valorilor subunitare necesare. Proiectarea sistemului hardware implementat n FPGA s-a realizat prin captur de schem logic folosind Xilinx ISE. Pentru experimente s-a folosit un motor de curent continuu de 24V de tip Leybold Didactic 73411 Motor-Generator Set. Acesta este controlat prin aplicarea tensiunii de alimentare modulat n durata impulsurilor. Tensiunea de alimentare de 20 V este obinut cu ajutorul a dou blocuri de amplificare: Leybold Didactic 73419 Gain and Offset Adjust Block i Leybold Didactic 73413 Power Amplifier Block. Circuitul de generare a impulsurilor PWM, mpreun cu blocurile de amplificare, pot fi vzute ca un convertor numeric-analogic cu funcia de transfer K a =
20 2
16

20 65536

n acest experiment, ntreaga bucl de reglare a fost implementat numeric n FPGA, fr a fi nevoie de circuite externe de conversie analog-numeric i numeric-analogic. Acest lucru a fost posibil datorit proiectrii detectorului de faz i a circuitului PWM, numai cu componente logice, ce pot fi sintetizate n FPGA. Bucla proiectat difer de alte abordri total digitale din literatur [93] prin aceea c este structural asemntoare cu o bucl analogic, deci mult mai uor de analizat i modelat. Rezultatele experimentale au dovedit c se poate obine calare pe faz, i deci control al vitezei motorului, dac acesta are vitez apropiat de referin. Dac diferena dintre semnalul de referin i cel controlat este mare, bucla nu reuete s ating ntotdeauna calarea pe faz. Comportamentul detectorului de faz trebuie studiat mai amnunit i comportamentul n caz de eroare de frecven trebuie mbuntit. O variant iniial, pe 8 bii, a acestui studiu de caz a fost publicat n [102]. Varianta mbuntit, prezentat aici, a fost publicat n [103]. 3.4.2 Implementarea n hardware a algoritmului de control deadbeat Algoritmul de control deadbeat este prezentat n multe lucrri internaionale de referin, ca i n [82]. Acesta se bazeaz pe proiectarea n domeniul timp, impunnd un anumit rspuns sistemului n bucl nchis i folosind un model discretizat al prii fixate. Pentru studiul de caz, s-a ales tot controlul motorului de curent continuu, descris de (3.15), unde K m este amplificarea, iar Tm este constanta de timp a motorului. Rspunsul dorit al sistemului la aplicarea unui semnal treapt la intrare este impus sub forma (3.16). n aceste condiii, funcia de transfer discret a sistemului n bucl nchis este (3.17). Discretiznd (3.15) cu o perioad de eantionare Ts = 0.67108864 i cunoscnd K m = 0,66 i Tm =1,2s se obine (3.18). Perioada de eantionare s-a ales multiplu de 40ns, care este perioada de tact a sistemului implementat n FPGA, pentru a simplifica circuitul de obinere a ei. De asemenea, perioada de eantionare trebuie s respecte relaia (3.19), recomandat n [82], Tf fiind suma constantelor de timp ale prii fixate. Perioada de eantionare influeneaz i valoarea iniial a semnalului de comand. S-a 27

verificat prin simulare c, pentru sistemul propus, valoarea semnalului de comand nu depete limitele de saturaie ale dispozitivelor fizice folosite la experimente. Funcia de transfer a regulatorului se obine din (3.17) i (3.18) folosind relaia (3.20). Notnd cu u[k] semnalul de ieire al regulatorului (semnalul de comand) i cu [k] semnalul de intrare al regulatorului (semnalul de eroare), se obine (3.21), cu q 0 = 0 ; q1 = 2.8297 ; q 2 = -0.7333 ; q 3 = -0.6823 ; q 4 = 0.1011 . Din (3.21) se obine o relaie de calcul pentru u[k], sub forma (3.22).
G p ( s) = Km 1 + sTm

(3.15) y[T]=0; y[2T]=0.8; y[3T]=1.05; y[4T]=y[5T]=...=1 (3.16) (3.17) (3.19)


G p ( z) = 0.2827 z 0.5716
1 G0 ( z 1 ) 1 G p ( z ) 1 G0 ( z 1 )

G0 ( z ) =

0.8 z 2 + 0.25 z 0.05 z


4

(3.18) (3.20) (3.22)

Ts 0.36 Tf

GR ( z 1 ) =

U ( z 1 ) q0 + q1z 1 + q2 z 2 + q3 z 3 + q4 z 4 (3.21) = ( z 1 ) 1 0.8 z 2 0.25 z 3 + 0.05 z 4

u[k ] = q 1 [k - 1] + q 2 [k - 2] + q 3 [k - 3] + q 4 [k - 4] + 0.8u[k - 2] + 0.25u[k - 3] 0.05u[k - 4]

Aceast ecuaie cu diferene recurent descrie un sistem cu rspuns infinit la impuls (IIR Infinite Impulse Response). Forma direct I [104] de implementare este prezentat n Fig. 3.10. Aceasta este derivat direct din (3.22). Pentru implementarea fizic sunt posibile i alte structuri, descrise n [104], cum ar fi: forma direct II, structura de tip cascad, paralel, ncruciat (lattice) sau ncruciat n scar (lattice-ladder).
Figura 3.10. Forma direct I a regulatorului deadbeat.

Avnd n vedere c n FPGA registrele (pentru implementarea ntrzierilor numerice) nu sunt o resurs critic i c operaiile se fac pe suficieni bii pentru ca erorile de cuantizare s fie nesemnificative, s-a ales forma direct I pentru implementare. Avantajul acesteia este c stadiile de adunare i nmulire sunt independente. Aceasta permite precizie fix la operaia de nmulire, dar precizie crescnd la operaiile de adunare, eliminnd acumularea de erori de cuantizare. La sfrit, rezultatul este trunchiat la precizia dorit. Paralelismul potenial al algoritmului poate fi observat direct din forma prezentat n Fig. 3.10. Este evident c cea mai rapid implementare va efectua n paralel toate nmulirile i ct mai multe dintre adunri. Pentru nmulire se folosesc multiplicatoarele pe 18 bii integrate n dispozitivele Spartan-3E. Toate operaiile sunt realizate folosind aritmetic n virgul fix cu semn (reprezentare n complement fa de 2). Implementarea s-a realizat n mediul Simulink, cu ajutorul utilitarului Xilinx System Generator. Avantajul metodei, aa cum s-a menionat n seciunea 3.2, este posibilitatea simulrii precise a structurii hardware ce va fi apoi sintetizat automat. Fig. 3.11 prezint implementarea regulatorului cu blocuri specifice System Generator n Simulink. Regulatorul implementat astfel a fost simulat mpreun cu un model Simulink n virgul mobil, dubl precizie. Rezultatele simulrii au artat c diferena ntre cele dou implementri este foarte mic din punctul de vedere al valorilor ieirilor. Semnalul de reacie este primit de la un convertor analog-numeric (CAN) pe 14 bii, cu ieirea cu semn n complement fa de 2. Viteza motorului fiind convertit ntr-o tensiune cuprins ntre 0V i 8V, intrarea CAN-ului va fi pozitiv. De aceea, se va renuna la bitul de 28

semn, ca i la bitul cel mai puin semnificativ, interpretnd valoarea de intrare ca un numr n virgul fix fr semn, cu 3 bii pentru partea ntreag i 9 bii pentru partea fracionar. Semnalul de ieire va fi trimis unui convertor numeric-analogic (CNA) pe 12 bii. Pentru aceasta va fi trunchiat la 12 bii de la reprezentarea intern a motorului de calcul, de 18 bii. Datorit faptului c semnalul de comand se satureaz la 13V din cauza amplificatoarelor fizice folosite, ieirea Gateway Out va fi interpretat ca 4 bii ai prii ntregi i 8 bii ai prii fracionare.
Figura 3.11. Implementarea regulatorului deadbeat n System Generator.

Interpretarea semnalelor de intrare i de ieire ca fiind numere n virgul fix de un anumit format este un exemplu de simplificare computaional important. Aa cum s-a menionat n Seciunea 2.3, primul pas n implementarea unui algoritm n hardware este rafinarea lui. Prin alegerea inteligent a formatului reprezentrii n virgul fix a intrrilor i ieirilor se evit calculele de interpretare a valorii recepionate de la CAN (nmulirea numrului ntreg citit cu valoarea cuantei) i cele de convertire a valorii rezultate n urma aplicrii algoritmului la un numr ntreg din gama de intrare a CNA-ului. Diferena ntre implementarea n Matlab a regulatorului, n virgul mobil cu dubl precizie, i implementarea n FPGA, n virgul fix pe 18 bii, poate fi analizat prin simulare. Aceasta a fost de ordinul 10 3 i se datoreaz n mare msur erorilor de cuantizare ale CAN i CNA, i mai puin erorilor de cuantizare a parametrilor regulatorului. ntregul sistem de control a fost proiectat n hardware i const din 3 entiti: circuitul de control al CAN, circuitul de procesare de semnal i circuitul de control al CNA. S-au folosit convertoare cu cost sczut, cu interfa serial, ceea ce complic n oarecare msur circuitele de interfaare. Interfeele seriale au fost proiectate n totalitate n hardware, fr a folosi vreun procesor soft. S-a proiectat cte un automat cu stri finit (FSM Finite State Machine) pentru fiecare din cele 3 entiti. Comunicaia ntre ele este realizat cu ajutorul semnalelor de protocol (handshake) de tip ready/strobe. Aceast abordare este diferit de cea prezentat n [26], unde un FSM global controla fluxul de date ntre diferitele entiti. Toate elementele de logic secvenial sunt sincrone, fiind pilotate de un semnal de tact de 25 MHz. Fiecare entitate rmne n starea idle pn cnd sunt disponibile date de procesat de la entitatea anterioar. Entitatea de control al CAN-ului este activat de un semnal Ts, corespunztor perioadei de eantionare. Aceasta este obinut tot din semnalul de tact de 25 MHz, prin divizare cu 224 , cu ajutorul a dou numrtoare binare cascadate, unul pe 16 i cellalt pe 8 bii. Perioada de eantionare este aadar aproximativ 0,6711s, respectnd restricia (3.19). Din schema Simulink cu blocuri System Generator s-a generat automat un modul Verilog, ce constituie centrul entitii de procesare de semnal. Conversia analog-numeric i citirea datelor din CAN dureaz aproximativ 80 de cicli de tact, transmiterea datelor CNA dureaz aproximativ 40 de cicli de tact, iar calculele pentru urmtorul eantion de ieire se realizeaz ntr-un singur ciclu de tact. Folosind n paralel multiplicatoarele integrate n FPGA, ecuaia (3.22) este calculat n mai puin de 40ns. Acest lucru permite obinerea de performane extraordinare 29

pentru sistemele de control digitale, limitate doar de perioada de eantionare (performanele CAN-ului, CNAului). Pentru experimente s-a folosit un motor de curent continuu de 24 V de tip Leybold Didactic 73411 Motor Generator Set, mpreun cu amplificatoare Leybold Didactic 73413 Power Amplifier Block i Leybold Didactic 73419 Gain and Offset Adjust Block. n Fig. 3.13 este prezentat o comparaie ntre rezultatele simulrii regulatorului n Simulink i rezultatele experimentale obinute dup implementarea n FPGA. Se observ caracteristica regulatorului deadbeat i performane asemntoare ale implementrii cu cele ateptate dup simulare.
Figura 3.13. Comparaie ntre rezultatele simulrii i cele experimentale.

Implementarea n FPGA folosete 7 multiplicatoare n paralel i doar 9% din resursele logice disponibile n dispozitivul Xilinx Spartan-3E XC3S500E. Implementarea n FPGA a algoritmului de control deadbeat a fost publicat n lucrarea [105]. 3.4.3 Proiectarea, simularea i implementarea pe FPGA a unui sistem de control al vitezei pentru motorul de curent continuu fr perii n aceast seciune se va prezenta un studiu de caz original privind implementarea n FPGA a unui sistem de control al vitezei pentru motorul fr perii de curent continuu (BLDC Brushless Direct Current). Pe lng un regulator de vitez de tip PI, s-au implementat i o serie de module hardware pentru conducerea motorului i determinarea vitezei acestuia. Conducerea motorului BLDC Motoarele BLDC fac parte din categoria motoarelor sincrone: cmpul magnetic generat de stator i cmpul magnetic generat de rotor se rotesc cu aceeai frecven. Din punct de vedere constructiv, motoarele BLDC se ncadreaz n categoria motoarelor cu magnei permaneni. Avem aadar de a face cu un motor sincron cu magnei permaneni (PMSM Permanent Magnet Synchronous Motor). Un PMSM este constituit dintr-un rotor cu magnet permanent i un stator electromagnetic. Datorit faptului c rotorul nu trebuie alimentat electric, se elimin periile ce ar trebui s transmit curentul electric rotorului. n funcie de cum sunt realizate nfurrile statorului, tensiunea electromagnetic indus (BEMF Back Electromotive Force) poate prezenta o form de und sinusoidal sau trapezoidal. Motoarele a cror BEMF este sinusoidal sunt cunoscute n literatur ca motoare BLAC (Brushless Alternative Current), n vreme ce motoarele a cror BEMF este trapezoidal sunt cunoscute ca motoare BLDC. Adesea, pentru motoarele BLAC se folosete termenul PMSM, dei acesta este mai general. Formele de und tipice pentru un motor BLDC trifazic sunt prezentate n Fig. 3.14. Aa cum se poate observa, tensiunea electromagnetic indus pe fiecare nfurare a motorului este constant pentru 120 i variaz liniar cu unghiul rotorului nainte i dup poriunea constant. Pentru ca puterea de ieire s fie constant, fiecare nfurare trebuie alimentat pe durata n care tensiunea indus este constant [34].
Figura 3.14. Forme de und tipice pentru un motor BLDC trifazic.

Exist mai multe topologii de circuite driver folosite n aplicaiile cu motoare BLDC. Cele mai folosite sunt convertorul trifazic de tip Buck i puntea invertoare trifazic [34]. O punte invertoare trifazic tipic pentru conducerea unui motor BLDC este prezentat n Fig. 3.15. Puntea este alctuit din 6 comutatoare electronice. n practic se folosesc tranzistoare cu efect de cmp construite n tehnologie metaloxidsemiconductor (MOSFET MetalOxide 30

Semiconductor FieldEffect Transistor) sau tranzistoare bipolare cu baza izolat (IGBT Insulated Gate Bipolar Transistor). Tranzistoarele MOSFET au pierderi de comutaie mai mici dect tranzistoarele IGBT, dar au rezisten intern (i deci putere disipat) mai mare n conducie. Tranzistoarele IGBT se folosesc de obicei n aplicaiile ce implic puteri sau tensiuni mari.
Figura 3.15. Punte invertoare trifazic pentru conducerea unui motor BLDC.

Spre deosebire de motoarele de curent continuu cu perii, la motoarele BLDC comutaia curentului prin nfurri nerealizndu-se automat prin comutare mecanic, trebuie realizat electronic. Pentru a roti motorul, nfurrile statorului trebuie alimentate ntr-o anumit secven. Aa cum s-a menionat n paragraful anterior, fiecare faz (nfurare) este alimentat pe durata celor 120 ct tensiunea indus este constant. Aa cum se poate constata din Fig. 3.14, apare necesitatea unei comutaii la fiecare 60. Sistemul de control trebuie aadar s dispun de informaii cu privire la poziia rotorului pentru a alimenta corect nfurrile. Exist dou posibiliti de a obine aceste informaii: citirea poziiei rotorului cu ajutorul unor senzori cu efect Hall i estimarea poziiei rotorului n funcie de trecerea prin zero a tensiunii induse. Prima metod este mai uor de implementat folosind doar circuite digitale, dar a doua metod implic costuri mai sczute, deoarece, eliminndu-se necesitatea senzorilor, construcia motorului este mai simpl. De obicei, motorul BLDC este echipat cu 3 senzori cu efect Hall ce ofer o informaie codificat pe 3 bii despre poziia rotorului la un moment dat. Pe baza acestor coduri, nfurrile corespunztoare sunt alimentate, controlndu-se starea comutatoarelor punii invertoare. Tabelul 3.10 prezint corespondena tipic ntre codurile citite de la senzorii cu efect Hall, direcia curentului prin nfurri i starea comutatoarelor pentru o rotire n direcia acelor de ceasornic a motorului BLDC. Comutatoarele sunt identificate conform notaiilor din Fig. 3.15. Pentru a controla viteza motorului BLDC, tensiunea aplicat nfurrilor trebuie variat. Variaia tensiunii medii poate fi obinut uor folosind doar circuite digitale prin variaia factorului de umplere al unui semnal dreptunghiular periodic de perioad constant, tehnic cunoscut sub denumirea de modulaie n limea impulsurilor (PWM Pulse Width Modulation). De obicei semnalul PWM este injectat comutatoarelor de pe ramura de jos. Controlul vitezei necesit cunoaterea vitezei motorului la un moment dat. Semnalele provenite de la senzorii Hall pot fi folosite pentru a determina viteza motorului, dar rezoluia este destul de redus, avnd n vedere c unei rotaii complete a motorului i corespund doar 6 sau 12 coduri (n funcie de numrul perechilor de poli magnetici ai rotorului). De obicei, motoarele sunt echipate cu un traductor de vitez (tahometru) cu rezoluie mai mare. Acesta poate fi un tahogenerator, ce ofer la ieire o tensiune proporional cu viteza de rotaie, sau un tahometru optic, ce furnizeaz la ieire dou semnale digitale codificate n cuadratur (QEP Quadrature Encoded Pulses). Acest tip de traductor este preferat n proiectarea sistemelor de control numerice, deoarece ofer direct o interfa digital. Semnalele QEP pot oferi informaii att despre direcia de rotaie, ct i despre viteza de rotaie. n plus, rezoluia este mult mai nalt dect dac se folosesc semnalele provenite de la senzorii Hall. Tabelul 3.10. Secvena de comutaie pentru rotirea motorului BLDC. Intrri de la senzorii Hall Comutatoare activate Direcia curentului prin nfurare 1 2 3 Ramura de sus Ramura de jos A B C 1 0 0 Q1 Q4 DC+ DCOFF 1 1 0 Q1 Q6 DC+ OFF DC0 1 0 Q3 Q6 OFF DC+ DC0 1 1 Q3 Q2 DCDC+ OFF 0 0 1 Q5 Q2 DCOFF DC+ 1 0 1 Q5 Q4 OFF DCDC+ 31

Proiectarea sistemului de control i implementarea n FPGA Din informaiile prezentate n seciunea precedent se poate contura o schem bloc a sistemului de control. Sistemul este total digital i se interfaeaz cu motorul BLDC prin intermediul unei puni invertoare trifazice de tipul celei din Fig. 3.15, a trei senzori Hall i a unui tahometru optic cu ieiri QEP. Regulatorul de vitez este de tip proporional-integrator (PI) discret, acest tip de regulator avnd o utilizare de tradiie n controlul motoarelor. Fig. 3.16 prezint schema bloc a sistemului de control al vitezei.
Figura 3.16. Schema bloc a sistemului de control al vitezei pentru motorul BLDC.

Sistemul de control a fost proiectat pentru a fi implementat direct n hardware pe un dispozitiv FPGA Spartan-3E. Sistemul este sincron, pilotat de un semnal de tact de 50MHz. Modulele logice au fost implementate prin captur de schem, cu excepia regulatorului PI, ce a fost implementat i simulat n mediul Simulink, folosind software-ul Xilinx System Generator. Cteva din blocurile din schema din Fig. 3.16 sunt prezentate n continuare din punctul de vedere al implementrii. Logica de comutaie Pe baza Tabelului 3.10 s-a proiectat modulul ce implementeaz generarea secvenei de comutaie. Pe lng intrrile provenite de la senzorii Hall s-a adugat o intrare de validare folosit pentru a insera un timp mort ntre comutrile a dou tranzistoare de pe aceeai parte (partea de sus sau partea de jos) a punii. Logica de comutaie are la ieire 6 semnale, fiecare semnal reprezentnd starea unuia din cele 6 tranzistoare ale punii. Logica de comutaie este implementat prin 6 celule de memorie ROM de 16 bii fiecare. Codul furnizat de senzorii Hall i intrarea de validare reprezint adresa pentru memoriile ROM. Coninutul fiecrei memorii ROM reprezint starea tranzistorului corespunztor pentru fiecare combinaie posibil de intrare. Logica de estimare a vitezei Schema bloc a circuitului de estimare a vitezei este prezentat n Fig. 3.18. Pentru o rezoluie mai bun a msurrii vitezei, att fronturile cresctoare, ct i cele cztoare ale ambelor semnale QEP sunt contorizate. Se utilizeaz cte un circuit de detecie pentru fiecare front. Acest circuit este un automat cu stri finit de tip Mealy, foarte simplu, implementat cu un singur bistabil, ca n [80]. Ieirea fiecrui circuit de detecie a frontului se activeaz cnd intrarea monitorizat i coninutul bistabilului, care este de fapt valoarea intrrii din ciclul de tact anterior, respect secvena dorit (0-1 sau 1-0). Ieirea circuitului de detecie a frontului este activ exact un ciclu de tact. Toate ieirile sunt trecute printr-o poart SAU a crei ieire constituie intrarea de validare a tactului pentru un numrtor. n acest fel, fronturile semnalelor QEP sunt contorizate prin incrementarea numrtorului la fiecare impuls de detecie de front. Deoarece semnalele QEP provin de la o surs extern nesincronizat, frontul semnalului QEP ar putea apare foarte aproape de frontul cresctor al semnalului de tact al elementelor sincrone. Frontul semnalului QEP ar fi n acest caz detectat (ieirea automatului de detecie a frontului se activeaz, automatul fiind de tip Mealy), dar timpul de propagare al ieirii (prin poarta SAU) ar putea fi mai lung dect diferena n timp ntre frontul semnalului QEP i frontul cresctor al semnalului de tact. Acest hazard ar putea duce la ratarea incrementrii numrtorului din cnd n cnd, n mod aleator, chiar dac circuitul de detecie a frontului funcioneaz corect. Pentru a contracara aceast problem s-au introdus bistabili de tip D pe semnalele QEP, sincronizndu-le cu semnalul de tact.

32

Astfel, toate semnalele din schem sunt sincrone cu un singur semnal de tact, eliminnduse hazardul i uurndu-se analiza de temporizare a sistemului. Semnalul de tact este generat n FPGA de la un oscilator cu cuar de 50MHz. Faptul c toate circuitele folosesc acelai semnal de tact reprezint un avantaj pentru proiectarea n FPGA, deoarece structura intern a dispozitivului prevede resurse speciale de rutare global pentru semnalul de tact, asigurndu-se cea mai mic asimetrie (clock skew) posibil a semnalului de tact [5]. Pentru ca aceste resurse s fie alocate la implementare, este necesar ca proiectarea s fi fost fcut corect.
Figura 3.18. Modulul de estimare a vitezei motorului.

Coninutul numrtorului este salvat ntr-un registru la fiecare perioad de eantionare. Perioada de eantionare este obinut prin divizarea semnalului de tact. Pentru o perioad de tact Tclock = 20ns i o perioad de eantionare dorit Ts = 1ms rata de divizare este DIV _ CONST = Ts / Tclock = 50000 = 0xC350 . (3.28) Divizorul de tact e implementat printr-un numrtor binar pe 16 bii, pilotat de semnalul de tact de 50MHz. Cnd ieirea numrtorului atinge o anumit combinaie, dat de (3.28) i detectat de un comparator de egalitate, numrtorul este resetat i se genereaz un impuls TS de o perioad de tact ce semnalizeaz celorlalte elemente din sistem nceputul unei noi perioade de eantionare. Dup salvarea n registru a valorii ce corespunde numrului de impulsuri QEP, numrtorul acestor impulsuri trebuie resetat. Acest lucru se realizeaz cu o ntrziere de o perioad de tact fa de impulsul TS ce salveaz valoarea, ntrziere implementat cu un bistabil de tip D ca n Fig. 3.18. Funcionarea circuitului de estimare a vitezei este prezentat n Fig. 3.19. Formele de und au fost capturate folosind analizorul logic virtual ChipScope ILA (Integrated Logic Analyzer) i modulul de comunicaie i control ChipScope ICON (Integrated Controller), disponibile ca nuclee IP, produse de Xilinx [107]. Acestea au fost instaniate n schem i conectate la semnalele ce trebuie monitorizate. Semnalele capturate au fost vizualizate i analizate pe un calculator gazd folosind utilitarul ChipScope Pro Analyzer, produs tot de Xilinx.
Figura 3.19. Semnalele circuitului de estimare a vitezei.

n Fig. 3.19 se observ cele 2 semnale QEP provenind de la tahometru n funcionarea real. De asemenea se observ c fiecare front pe fiecare semnal QEP este detectat i produce o 33

incrementare a numrtorului de impulsuri QEP. La expirarea perioadei de eantionare, semnalizat de un impuls pe linia TS_tick, numrtorul este resetat dup ce valoarea a fost salvat ntr-un alt registru, al crui coninut poate fi observat pe linia CNTR_ms. Regulatorul PI discret Pentru motorul folosit la partea experimental, coeficienii regulatorului PI s-au ales K I _ 1 = 0.53 , K P _ 1 = 0.004 . Aceste valori asigur un regim tranzitoriu de aproximativ 20ms i o suprareglare minim. Plecnd de la aceste valori i innd cont c unul din principiile fundamentale ale adecvrii arhitecturii algoritmului pentru implementarea direct n hardware este simplificarea computaional [24], se calculeaz constantele ce vor fi folosite n implementare. Astfel, inndu-se cont de faptul c ieirea regulatorului nu reprezint direct valoarea tensiunii de comand a motorului, ci intrarea n circuitul PWM, acesta din urm se modeleaz ca o amplificare n serie cu regulatorul, cu factorul de amplificare dat de
APWM = Us , unde U s este tensiunea de alimentare a motorului i w este limea cuvntului 2w 1

(numrul de bii) circuitului de generare a semnalului PWM. n cazul particular al echipamentului folosit tensiunea de alimentare nominal este de 19.1V. Circuitul PWM lucreaz pe 11 bii, deci APWM =
19.1 2047

. De asemenea, innd cont de faptul c circuitul de estimare a

vitezei nu raporteaz viteza motorului n RPM, ci numrul de fronturi ale semnalelor QEP contorizate ntr-o ms, i acest lucru trebuie modelat ca o amplificare pe calea direct, cu factorul de amplificare Aspeed _ est =
CPR , unde CPR este numrul de fronturi QEP generate de o rotaie 60 *1000

complet a motorului, iar numitorul provine din raportarea vitezei nu la minut (ca RPM), ci la ms, deoarece astfel se face msurarea. Motorul folosit este echipat cu un tahometru optic cu 500 de linii, deci CPR = 500 * 4 = 2000 , ceea ce implic Aspeed _ est =
1 . 30

Pentru a elimina efectul acestor amplificri pe calea direct, acestea sunt contrabalansate direct n factorii de amplificare ai regulatorului PI. Acest lucru simplific mult calculele, nefiind necesar obinerea valorii vitezei, apoi aplicarea algoritmului de reglare, i apoi calculul valorii de intrare n circuitul PWM. Factorii regulatorului PI obinui prin simplificarea computaional sunt dai de (3.36) i (3.37).
KI = KI _1 APWM Aspeed _ est = 1704.003

(3.36)

KP =

KP _1 APWM Aspeed _ est

= 12.8604

(3.37)

Pentru implementarea regulatorului trebuie determinat o relaie de calcul a ieirii n funcie de intrare, la fiecare perioad de eantionare, pornind de la reprezentarea n domeniul s a regulatorului PI dat de (3.38), unde U(s) este ieirea de comand, iar E(s) este intrarea regulatorului (eroarea). Folosind transformarea biliniar (3.39) se ajunge la funcia de transfer discret n domeniul z (3.40). Exprimnd (3.40) n z 1 rezult (3.41). Revenind n domeniul timp, se obine relaia (3.42) de calcul pentru u[k]. Se observ c (3.42) descrie un sistem numeric cu rspuns infinit la impuls (valoarea anterioar a ieirii intervine n calculul valorii curente).
G R (s) = GR ( z) = K U ( s) = Kp + I s E ( s) K T z 1 U ( z) = Kp + I s E( z) 2 z +1

(3.38) (3.40)
U ( z 1 ) (

s=

2 z 1 Ts z + 1

(3.39)

K I Ts K T + K P ) + ( I s K P ) z 1 2 2 = 1 1 1 z E(z )

(3.41) (3.42)

u[k ] = (

K I Ts K T + K P ) [k ] + ( I s K P ) [k ] + u[k 1] 2 2

Regulatorul s-a implementat n Simulink, folosind blocuri System Generator. Acest lucru 34

a permis simularea mpreun cu un model n virgul mobil, dubl precizie, i evaluarea erorilor introduse de procesul de cuantizare. Pentru reprezentarea coeficienilor regulatorului s-au folosit cuvinte de 18 bii, cu poziia virgulei aleas astfel nct s permit o precizie ct mai bun innd cont de magnitudinea numerelor. S-au ales 18 bii pentru a profita de precizia multiplicatoarelor dedicate n FPGA. Pentru circuitul de sumare nu s-au introdus limitri de reprezentare, lucrnduse pe 27 de bii i neintroducndu-se niciun fel de erori. Singura limitare este impus pentru reacie, reintroducerea n calcul a valorii anterioare a ieirii folosind 24 de bii. Precizia calculelor s-a dovedit foarte bun, erorile de cuantizare fiind datorate nu coeficienilor, ci reprezentrilor intrrii (pe 9 bii, deoarece nu se contorizeaz mai mult de 256 de fronturi QEP ntr-o ms) i ieirii (pe 11 bii fr semn, datorit implementrii circuitului PWM). Limitrile de format s-au fcut cu saturaie la detecia depirii. Simularea i integrarea sistemului Modulele proiectate prin captur de schem logic au fost co-simulate folosind Simulink i ModelSim. S-au folosit facilitile oferite de System Generator, instaniindu-se fiecare modul n cte un Black Box. Dei avantajele co-simulrii Simulink-ModelSim sunt certe, oferind posibilitatea validrii modulelor cu generarea automat a secvenelor de intrare probabile i n realitate, metoda este destul de consumatoare de timp i resurse (necesit un calculator gazd cu mare putere de calcul). Din aceast cauz se prefer adesea o depanare a sistemului n funcionarea real, folosind faptul c dispozitivul FPGA poate constitui el nsui o parte a uneltei de depanare. Astfel, prin folosirea analizorului logic virtual ChipScope ILA i a utilitarului ChipScope Pro Analyzer [107], se pot observa semnalele interne ale sistemului. Este posibil exportarea datelor din ChipScope n format ASCII i importarea lor n Matlab ca i vectori. n acest fel, se pot analiza datele capturate de pe sistemul hardware rulnd n timp real pe FPGA. De exemplu, Fig. 3.24 prezint un grafic, obinut n Matlab, ce reprezint variaia comenzii factorului de umplere (cu albastru) i viteza observat de sistem (n fronturi ale semnalelor QEP pe ms) la modificarea referinei de vitez de la 50 la 100 (corespunztor n RPM: de la 1500RPM la 3000RPM).
Figura 3.24. Variaia semnalului de comand i a vitezei la modificarea treapt a referinei.

Pentru experimente s-a folosit un motor de 19.1V de tipul Pittman 3411, produs de Ametek, i un circuit de comand a motorului (punte invertoare trifazat) PM50v3.1, produs de Technosoft. Sistemul de control pentru motorul BLDC prezentat aici difer de cel prezentat n [108] prin faptul c logica de comutaie este implementat foarte eficient, prin celule de memorie ROM, nu prin automate cu stri. Metoda de validare prin co-simulare Simulink/ModelSim a mai fost folosit n literatur [32], dar metoda de proiectare n Simulink a regulatorului i apoi integrarea acestuia ntr-un proiect mai mare realizat prin captur de schem este original. Sistemul de control pentru BLDC a fost publicat n forma prezentat aici n [109]. O form mbuntit prin reproiectarea regulatorului PI dup paradigma automat cu cale de date [80] a fost publicat n [110]. n [111] a fost publicat metoda de analizare a caracteristicilor dinamice ale motorului folosind ChipScope. Metoda este aplicabil analizei oricror procese rapide interfaate prin semnale digitale, folosind analizoare logice virtuale implementate n FPGA. 3.5 Concluzii n prima seciune a acestui capitol s-a fcut o trecere n revist a uneltelor de dezvoltare disponibile pentru proiectare n vederea implementrii n circuite FPGA. S-au discutat nucleele IP ca module refolosibile, precum i uneltele de dezvoltare pentru sisteme ncorporate i pentru nuclee DSP. Trecerea n revist este destul de sumar, avnd rolul de a da cititorului o idee 35

despre complexitatea sistemelor ce se pot implementa ntr-un dispozitiv FPGA i despre gradul de abstractizare la care se poate face proiectarea pentru FPGA. n continuare, n a doua seciune, este prezentat ceva mai detaliat software-ul System Generator, produs de Xilinx, ce permite proiectarea de hardware implementabil n FPGA direct din mediul Matlab Simulink. Prezentarea este o sintez din sute de pagini de documentaie [85]. Nu are pretenia unei prezentri exhaustive, ci insist pe acele biblioteci ce au aplicabilitate n cazul proiectrii de structuri hardware pentru control automat. Tot n aceast seciune s-a prezentat modalitatea de cosimulare Simulink-HDL a unui modul proiectat prin alte metode dect folosind System Generator (captur de schem logic sau descriere HDL). Dei co-simularea este destul de dificil deoarece trebuie fcut cu un pas foarte fin, deci necesit putere de calcul mare i implic un timp lung de simulare, avantajele sunt semnificative: vectorii de test sunt generai automat de ctre Simulink; simulatorul HDL poate afia semnalele interne ale modulului simulat, deci acesta se poate verifica amnunit; sistemul ca ntreg format din partea proiectat n Simulink cu blocuri System Generator i partea proiectat prin alte metode poate fi validat ntr-un mod unitar. Cea de-a treia seciune reprezint o scurt trecere n revist a uneltelor de depanare pentru sistemele proiectate n FPGA. Din nou, aceast trecere n revist are rolul de a evidenia interesul acordat de productorii de echipamente de testare dispozitivelor FPGA, precum i avantajele oferite de aceste dispozitive fa de alte alternative, ca microcontrolerele sau DSCurile. Astfel, trebuie neaprat subliniat faptul c dispozitivul FPGA poate constitui el nsui o platform pentru depanare, datorit reconfigurabilitii sale: semnalele interne pot fi rutate la pini nefolosii i urmrite din exterior; n resursele din FPGA rmase nefolosite de aplicaie se poate implementa un analizor logic virtual care s captureze eantioane ale semnalelor interne; acestea pot fi apoi descrcate i vizualizate/analizate pe un calculator gazd sau pe un alt echipament de laborator. n cea de-a patra seciune a capitolului sunt prezentate trei studii de caz originale: trei sisteme de control automat implementate n FPGA: Un sistem de control al vitezei motorului de curent continuu folosind bucla PLL; sistemul implementat n FPGA const dintr-un detector de faz i frecven de concepie original, dintr-un filtru de bucl de tip PI i dintr-un circuit de generare de semnal PWM; sistemul a fost proiectat prin captur de schem logic i validat prin simulare n ModelSim, apoi verificat experimental. Un sistem de reglare a vitezei motorului de curent continuu bazat pe algoritmul deadbeat; s-au implementat n FPGA module de control pentru CAN i CNA cu interfee seriale, proiectate la nivel de schem logic; algoritmul deadbeat a fost proiectat ca un filtru IIR, n Simulink, folosind System Generator, i validat prin simulare; sistemul a fost apoi integrat i verificat experimental, obinndu-se aceeai comportare ca la simulare. Un sistem de reglare a vitezei pentru motorul BLDC. Partea de conducere a motorului a fost proiectat prin captur de schem logic. Algoritmul de control, de tip PI, a fost proiectat n Simulink cu System Generator. ntreg sistemul a fost verificat prin simulare n Simulink, importndu-se blocurile proiectate prin schem i folosind ModelSim pentru co-simulare Simulink-HDL. Sistemul a fost verificat experimental, folosind analizorul logic virtual ChipScope pentru capturarea i vizualizarea semnalelor interne. Aadar, pe lng contribuiile teoretice legate de sistematizarea unor informaii vaste despre unelte de proiectare pentru FPGA, acest capitol prezint importante contribuii aplicative ce ilustreaz utilizarea acestora. Merit subliniat c toate aplicaiile prezentate au fost realizate fizic i verificate experimental, rezultatele obinute fiind n concordan cu simulrile din stadiul de validare. Dei aplicaiile prezentate nu reprezint cu adevrat o provocare pentru puterea de calcul ce se poate obine folosind dispozitivele FPGA, datorit dinamicii destul de lente a prii fixate, ele au constituit un pas esenial n familiarizarea autorului cu uneltele specifice i caracteristicile dispozitivului FPGA n vederea atingerii obiectivului propus al tezei. De 36

asemenea, au reprezentat pretexte pentru a experimenta cu diferite unelte, n vederea elaborrii ulterioare a unei metodologii de lucru. Originalitatea i actualitatea sistemelor de control prezentate n acest capitol au condus redactarea i publicarea a 6 lucrri: [102], [103], [105], [109], [110], [111].

4.

Proiectarea sistemelor cu procesoare soft ncorporate n FPGA

Un atu al dispozitivelor FPGA este faptul c ofer suficiente resurse pentru implementarea de procesoare soft n interiorul dispozitivului FPGA. Prin procesor soft se nelege un procesor realizat folosind resursele generale ale unui dispozitiv programabil, spre deosebire de procesoarele hard, implementate ca nuclee hardware specifice i nereconfigurabile. Aa cum s-a menionat i n seciunea 3.1.2, att productorii de FPGA-uri, ct i firme specializate n dezvoltarea de unelte de proiectare ofer procesoare optimizate pentru implementarea n FPGA, mpreun cu suportul software necesar pentru programarea respectivelor procesoare. n vreme ce folosirea dispozitivelor FPGA pentru implementarea n hardware a algoritmilor este evident cea mai avantajoas utilizare a resurselor, cu rezultatele cele mai bune din punctul de vedere al timpului de calcul, exist aplicaii n care utilizarea unui procesor este preferabil. Procesorul ofer avantajul unui flux de proiectare cunoscut, pe o platform verificat. n plus, n unele aplicaii timpul de procesare nu este critic. Timpul de dezvoltare a unei aplicaii software pe o platform cunoscut poate fi mult mai scurt dect timpul necesar proiectrii unei pri de execuie i a unei pri de control implementate n hardware. O alt ni a sistemelor cu procesor implementate pe FPGA o constituie integrarea pe acelai FPGA a unui sistem ce nainte era constituit dintr-un procesor i un dispozitiv logic programabil: datorit creterii capabilitilor dispozitivelor FPGA, astfel de sisteme pot fi integrate pe un singur cip, fr a fi necesare modificri majore ale software-ului. 4.1 Consideraii privind proiectarea de procesoare soft pentru FPGA Pn spre sfritul anilor 1990, procesoarele soft implementate n dispozitive FPGA prezentau interes doar n mediul academic datorit costurilor ridicate i performanelor sczute: un procesor soft ocupa cam n totalitate resursele unui FPGA al acelei epoci, pe cnd un procesor obinuit era mai ieftin, mai rapid i deja proiectat. n ziua de astzi, un procesor soft poate ocupa mai puin de 1% din resursele unui FPGA i poate oferi performane de peste 200 DMIPS (Dhrystone Million Instructions per Second) [112]. De fapt, procesoarele soft ocup att de puine resurse, nct de obicei pot fi implementate n resursele nefolosite de aplicaia principal din FPGA, ceea ce nseamn c practic costul lor este nul. 4.1.1 Procesoare configurabile Att procesoarele implementate n FPGA, ct i cele implementate n ASIC, ofer proiectanilor posibilitatea de a configura procesorul la momentul generrii structurii sale hardware. Se poate astfel alege modul de implementare a benzii de asamblare (pipeline), dimensiunea memoriei intermediare (cache), implementarea circuitelor de nmulire i mprire, etc. Faptul c dispozitivele FPGA sunt reconfigurabile ofer un mare avantaj n proiectarea de sisteme cu procesor configurate la generare: n vreme ce verificarea i evaluarea performanelor unui procesor implementat ntr-un FPGA se poate face direct pe dispozitivul FPGA int, verificarea i evaluarea unui procesor implementat ntr-un ASIC se face pe o simulare, necesitnd mai mult timp i fiind mai puin precis. Acest avantaj este evideniat de faptul c productorii de FPGA-uri ofer de obicei configuraii multiple ale benzii de asamblare a procesorului soft, astfel nct acesta s se potriveasc ct mai bine cerinelor. Acest lucru nu se ntmpl de obicei n cazul procesoarelor implementate pe ASIC-uri din cauza dificultii de a testa i valida mai multe variante de band de asamblare. Spre exemplu, procesorul Nios II, produs de Altera pentru FPGA-urile lor, este oferit n trei configuraii ale benzii de asamblare: Nios II/f (fast rapid), Nios II/s (standard) i Nios II/e (economy economic) [112]. Diferenele ntre cele 3 tipuri de benzi de asamblare sunt de maximum 3 ori n ceea ce privete aria ocupat i de maximum 9 ori n ceea ce privete 37

performanele obinute. Varianta Nios II/f ofer o band de asamblare pe 6 niveluri, cu memorie cache opional pentru instruciuni, memorie cache opional pentru date i predicie dinamic a salturilor folosind o tabel cu 2 bii de istorie [113]. Varianta Nios II/s are o band de asamblare cu doar 5 niveluri, cu memorie cache de instruciuni dar fr memorie cache de date i mecanism de predicie static a salturilor. Nios II/s folosete cu 20% mai puine resurse dect Nios II/f, dar performanele scad cu aproximativ 40% [113]. Varianta Nios II/e nu mai ofer paralelism la nivelul instruciunii, execuia unei instruciuni necesitnd 6 cicli de tact, nu ofer memorie cache de instruciuni sau date i nici mecanism de predicie a ramificaiilor. Astfel, performanele obinute de procesor sunt foarte sczute fa de varianta Nios II/s, dar i spaiul ocupat este de dou ori mai mic [113]. 4.1.2 Dificulti n proiectarea de procesoare implementate n FPGA Proiectarea procesoarelor implementate n FPGA este asemntoare n multe privine cu proiectarea procesoarelor implementate pe ASIC-uri. De fapt, procesoarele implementate pe ASIC-uri sunt adesea prototipizate pe FPGA-uri pe parcursul dezvoltrii lor. Aceste prototipuri nu sunt ns utilizabile n aplicaii comerciale, fiind utile doar pentru validarea i testarea unor concepte de proiectare. Proiectarea procesoarelor implementabile n FPGA trebuie s reformuleze cerinele de procesare astfel nct soluiile obinute s fie potrivite pentru implementarea n FPGA. Adoptarea soluiilor folosite n proiectarea pentru ASIC-uri conduce rareori la rezultate satisfctoare la implementarea n FPGA. O provocare a proiectrii de procesoare pentru FPGA const n a ine cont de performanele relative ale resurselor dispozitivului FPGA (elemente logice, memorii RAM, multiplicatoare, elemente programabile de interconectare), foarte diferite de performanele relative ale resurselor unui ASIC (pori logice, memorii RAM i trasee cablate) [112]. De exemplu, performanele memoriei RAM din FPGA sunt apropiate de performanele memoriei RAM din ASIC, pe cnd performanele elementelor logice din FPGA sunt mult mai slabe dect performanele porilor logice din ASIC. Din cauza diferenelor de performane relative, folosirea unor tehnici utilizate pentru mbuntirea performanelor procesoarelor implementate pe ASICuri s-ar putea s conduc la deprecierea performanelor procesoarelor la implementarea n FPGA. De exemplu, arhitecturile superscalare i VLIW (Very Long Instruction Word) nu sunt potrivite pentru implementare n FPGA datorit limitrilor n ceea ce privete accesarea multi-port a bancurilor de registre. De asemenea, tehnica de execuie re-ordonat a instruciunilor (out-oforder execution) nu este utilizabil la implementarea n FPGA datorit performanelor relativ sczute ale logicii de control implementate folosind elemente logice. 4.1.3 Avantaje la proiectarea de procesoare implementate n FPGA Dei FPGA-urile sunt dezavantajate de costurile mai mari i performanele inferioare ASIC-urilor, faptul c sunt reconfigurabile ofer avantaje nete la proiectarea de procesoare. Procesoarele implementate pe ASIC au muli parametri configurabili la rulare prin intermediul unor registre de control, parametri ce pot fi setai prin software n timpul funcionrii sistemului. Procesorul ofer astfel resurse ce acoper toate posibilitile de comportare a unui modul, iar registrele de control definesc comportarea modulului la un moment dat. O mare parte din posibilitile de comportare nu vor fi ns folosite dinamic, n timpul rulrii sistemului. Ele vor fi configurate la iniializarea sistemului i i vor pstra aceeai configuraie pe toat durata utilizrii sistemului. Astfel, procesorul ofer resurse care n unele aplicaii nu vor fi niciodat utilizate. Aceast risip de resurse este evitat n cazul implementrii procesoarelor pe dispozitive FPGA: parametrii configurabili la rulare care nu se schimb dinamic n timpul utilizrii sistemului pot fi transformai n parametri de generare ai procesorului. Astfel, procesorul ofer doar resursele necesare unei aplicaii, ocupnd mai puin spaiu. n cazul unei aplicaii care are nevoie de un alt mod de utilizare a unui modul, procesorul poate fi re-generat cu ali parametri i rencrcat n FPGA. Exemple de parametri configurabili la rulare n procesoarele implementate pe ASIC-uri care pot fi transformai n parametri de generare pentru procesoarele implementate pe FPGA, i care au un impact semnificativ asupra resurselor ocupate 38

de procesor, sunt parametrii ce definesc comportarea memoriilor cache (validat/invalidat, mod de scriere pentru memoria cache de date (scriere ntrziat (write-back) sau scriere direct (write-through))) i parametrii ce definesc facilitile de depanare oferite de procesor (execuie pas cu pas, inserarea de puncte de suspendare a execuiei (breakpoints), examinarea/modificarea coninutului memoriei i registrelor) [112]. 4.3 Co-proiectarea hardware-software n sisteme de control studiu de caz n acest subcapitol va fi prezentat studiul de caz al co-proiectrii hardware-software a unui sistem de control pentru motorul de curent continuu fr perii (BLDC). Sistemului de control efectiv, implementat n hardware, prezentat n seciunea 3.4.3, i s-a adugat funcionalitatea de monitorizare, constnd n afiarea pe un dispozitiv LCD a parametrilor de control i comunicarea cu un calculator gazd folosind o interfa serial RS232 bidirecional. Avnd n vedere c aceste funcii de monitorizare nu sunt critice din punctul de vedere al timpului de execuie i, n plus, interacioneaz cu elemente hardware lente, s-a dovedit oportun implementarea lor prin software pe procesoare soft. Astfel, sistemul de control este format dintro parte hardware proiectat special pentru aplicaia amintit i din dou sisteme cu procesor soft PicoBlaze, fiecare implementnd o alt funcionalitate. Problema iniial a fost partiionat ntre hardware i software, ilustrnd conceptul din ce n ce mai rspndit n proiectarea cu FPGA-uri, acela de sistem pe un singur cip (SoC - System on a Chip). Uneori, pentru a evidenia caracterul reconfigurabil al dispozitivelor FPGA, se folosete terminologia de sistem pe un cip programabil (SoPC System on a Programmable Chip). Folosirea de procesoare PicoBlaze, n detrimentul unora cu putere de calcul superioar, ca MicroBlaze, este pe deplin justificat de funciile care trebuie ndeplinite: aa cum s-a amintit, funcia de procesare de date (algoritmul de control) este realizat n hardware. Aadar, n software se implementeaz doar nite maini de stare care vehiculeaz date (parametrii algoritmului, valori instantanee de semnale) ntre algoritm i dispozitive de interfa cu utilizatorul. Dei aceste maini de stare ar putea fi implementate direct n hardware, complexitatea lor i viteza mic la care lucreaz ar ridica dificulti n implementare i verificare. De asemenea, utilizarea n paralel a mai multor procesoare simple poate fi mai economic dect utilizarea unui procesor mai complex, att din punctul de vedere al resurselor folosite, ct i din cel al timpului de dezvoltare pentru software. De altfel, aceast abordare este comun [118], [119], [120], iar cazul n care procesoarele sunt conectate ntre ele conduce la conceptul de reea pe un singur cip (NoC Network on Chip). Sistemul pe un cip implementat n FPGA i proiectat pentru controlul motorului BLDC este prezentat n Fig. 4.11. SoC-ul const din algoritmul de control implementat n hardware i modulele logice de suport necesare lui, analizorul logic virtual folosit pentru depanare i verificare i dou sisteme cu procesor soft PicoBlaze. SoC-ul se interfaeaz cu motorul folosind doar semnale digitale. Astfel, motorul este comandat prin intermediul unei puni invertoare trifazice, tensiunea de alimentare aplicat nfurrilor fiind controlat digital prin tehnica de modulaie a limii impulsurilor (PWM). Informaia de poziie i vitez se obine de la motor prin intermediul a 3 senzori Hall i a unui codificator optic incremental de poziie, oferind la ieire impulsuri digitale codificate n cuadratur (QEP). Rezoluia codificatorului optic (caracterizat prin construcie de 500 de linii pe suprafaa urmrit de detectorii optici, ceea ce conduce la o rezoluie de 2000 de impulsuri pe revoluie) este foarte bun: poziia rotorului se poate determina cu o rezoluie de 360/2000=0.18.
Figura 4.11. SoC pentru controlul BLDC.

39

Dei analizorul logic virtual este o unealt foarte puternic i util i permite o analiz destul de detaliat a performanelor sistemului de control, acesta are totui cteva limitri: Poate captura doar numr limitat de eantioane la un moment dat; Semnalele pot fi doar extrase i vizualizate, nu se pot modifica valorile registrelor n timp real; Semnalele vizualizate sunt eantioane capturate ncepnd cu un anumit moment, determinat de un eveniment (trigger), nu sunt valori observate n timp real; n plus, analizorul logic virtual ocup multe din blocurile RAM din FPGA; n cazul unor proiecte complexe, aceste resurse s-ar putea s nu fie disponibile. Din aceste motive, s-a dovedit necesar o interfa n timp real. Aceasta const dintr-un afiaj, pentru vizualizarea valorilor parametrilor de control i a valorilor semnalelor, i o legtur serial bidirecional de tip RS232 cu un calculator gazd, folosit pentru vehicularea acelorai date. Cele dou interfee au fost realizate cu ajutorul a dou sisteme cu microprocesor soft PicoBlaze. Acestea sunt total independente. Aceast abordare difer de cea prezentat n [32], unde un singur procesor MicroBlaze controleaz mai multe dispozitive periferice de comunicaie i afiare. Primul sistem cu procesor soft, notat cu I n Fig. 4.11, are rolul de a citi parametrii algoritmului de control din registrele acestuia i de a-i afia pe un LCD alfanumeric. De asemenea, poate afia valoarea vitezei motorului la un moment dat. Al doilea sistem cu procesor soft se ocup exclusiv cu comunicaia serial cu un calculator gazd pe o interfa RS232. n acest scop, sistemul cu procesor folosete 2 module UART (Universal Asynchronous Receiver/Transmitter) implementate n FPGA, unul pentru transmisie, uart_tx, i unul pentru recepie, uart_rx. Aceste module sunt oferite de ctre Xilinx ca i descrieri HDL (sunt disponibile att versiunea VHDL, ct i cea Verilog) i sunt instaniate n schema sistemului. Aadar, sistemul cu procesor II ilustreaz conectarea unui procesor soft cu hardware implementat n FPGA i proiectat ca i nucleu IP reutilizabil. Sistemul preia de la algoritmul de control valorile vitezei i comenzii PWM pentru a le transmite serial. De asemenea, sistemul recepioneaz serial noi valori pentru parametrii algoritmului de control, a0 i a1, i le scrie n registrele acestuia. Valorile parametrilor a0 i a1 sunt asamblate de ctre procesor n registre externe, prin trei scrieri succesive n porturi de ieire. A treia scriere activeaz i un semnal de ready ce semnalizeaz algoritmului de control c valoarea parametrului este valid i poate fi citit. Atunci cnd algoritmul de control preia valoarea, activeaz un semnal strobe, ce reseteaz registrul indicatorului ready. Sistemul cu procesor II transmite date calculatorului gazd la fiecare perioad de eantionare. n acest scop, intrarea de ntrerupere a procesorului PicoBlaze este conectat la semnalul Ts_tick, ce semnalizeaz n ntreg sistemul de control nceperea unei noi perioade de eantionare (funcia sa principal fiind activarea algoritmului de control). Aplicaia ce ruleaz pe calculatorul gazd a fost realizat vizual, folosind mediul LabView. De altfel, LabView este o unealt foarte puternic i include actualmente un modul ce permite proiectarea vizual de sisteme hardware implementabile direct n FPGA, la un nivel de abstractizare destul de nalt. Acest lucru deschide noi posibiliti n implementarea pe FPGA a sistemelor complexe, utiliznd unelte vizuale, un exemplu fiind prezentat n [121]. Instrumentul virtual ce ruleaz pe calculatorul gazd, a crui interfa este prezentat n Fig. 4.18, permite observarea comportrii sistemului n bucl nchis n timp real i modificarea parametrilor de control pentru ajustarea performanelor. Instrumentul virtual const din dou grafice pe care se afieaz n timp real valorile vitezei motorului BLDC i ale comenzii PWM. Datele sunt afiate dup asamblarea lor din octeii recepionai serial. La fiecare perioad de eantionare se recepioneaz 6 octei: doi pentru sincronizare, doi ce formeaz valoarea vitezei i doi ce formeaz valoarea comenzii. Pentru o perioad de eantionare n jurul valorii de 1ms, este necesar o rat de transfer serial de 115200 bps (bii pe secund). Datele sunt transmise de sistemul II n continuu. Dac se dorete nghearea imaginii pe grafice, pentru analiz, se ntrerupe recepia, folosind un buton de pe interfa. Cnd se dorete reluarea afirii n timp real, se apas butonul continue. Datele vor fi din nou asamblate i afiate dup recepionarea primului set de doi octei de sincronizare. Acetia au valori ce nu se pot regsi ntre octeii de 40

date i sunt astfel recunoscui de software. Instrumentul virtual permite actualizarea parametrilor regulatorului. Astfel, prin editarea valorilor unor cmpuri ce reprezint factorul de amplificare proporional i factorul de amplificare integrator, i folosind valoarea fixat pentru perioada de eantionare, sunt calculai automat coeficienii algoritmului de control (implementat ca filtru cu rspuns infinit la rspuns, a se vedea seciunea 3.4.3). Prin apsarea butonului Send, aceti coeficieni sunt transmii prin interfaa RS232 sistemului de control.
Figura 4.18. Interfaa instrumentului virtual ce ruleaz pe calculatorul gazd.

4.4 Concluzii Un interes deosebit n utilizarea dispozitivelor FPGA l reprezint integrarea unui ntreg sistem de procesare pe un singur cip, conducnd la conceptul de SoC, sau chiar a unei matrice de elemente de procesare, conducnd la conceptul de NoC. Din punctul de vedere al controlului automat, ns, revenirea la o structur de procesare fix nu este un beneficiu [47], [57] dect n msura uurrii proiectrii sistemului: uneori, sistemul de control este mai uor de implementat prin software ce ruleaz pe un procesor, dect direct n hardware. Acest lucru se datoreaz faptului c proiectarea de hardware orientat pe aplicaie este un domeniu ce necesit cunotine interdisciplinare destul de complexe, iar uneltele de dezvoltare i metodele de lucru nu sunt nc standardizate. Proiectarea la nivele de abstractizare mai nalte, denumit proiectare ESL (Electronic System Level) va impune cu siguran rspndirea utilizrii dispozitivelor FPGA ca platforme hardware. Totui, exist aplicaii n care proiectarea de hardware specific nu se justific, n aceste cazuri implementarea unui sistem cu procesor soft i proiectarea de software pentru el fiind mult mai avantajoas. Aceste aplicaii sunt cele de monitorizare i interfa cu utilizatorul ntr-un sistem de control, care sunt necritice din punctul de vedere al timpului de execuie. n plus, de obicei aceste aplicaii utilizeaz hardware lent i care necesit secvene complexe de iniializare i comunicaie. Implementarea de automate hardware pentru aceste secvene este complicat i nu se justific, deoarece o scurt rutin software poate face exact acelai lucru. Prezentul capitol reprezint un studiu al metodelor de optimizare a procesoarelor soft implementabile n FPGA, innd cont de diferenele ntre arhitectura acestui tip de dispozitive i arhitectura ASIC-urilor, ce sunt de obicei folosite pentru implementarea de procesoare. n finalul capitolului se prezint un sistem pe un cip cu dou procesoare PicoBlaze independente, proiectate n jurul unui sistem de control hardware. Se exemplific, aadar, modul de coproiectare hardware-software, prin partiionarea proiectului n funcionaliti critice, executate de hardware, i funcionaliti mai puin critice, executate prin software. De asemenea, se exemplific proiectarea unui sistem pe un cip FPGA, constnd din hardware specific aplicaiei, sisteme cu procesor soft ce funcioneaz independent i interacioneaz, i software-ul ce ruleaz pe procesoarele soft. Rezultatele prezentate n acest capitol au fost publicate n [121], [122].

5.

Metode moderne de modulaie pentru controlul invertorului trifazic i implementarea lor n FPGA

Invertorul trifazic, sau puntea invertoare trifazat, este o component cheie a sistemelor moderne de control al motoarelor de curent alternativ (AC Alternative Current) trifazate. 41

Aceasta deoarece permite controlarea att a amplitudinii, ct i a frecvenei tensiunii aplicate motorului. Atunci cnd este controlat n tensiune, invertorul este cunoscut n literatura de specialitate anglo-saxon i sub acronimul VSI (Voltage Source Inverter). Puntea invertoare trifazat a fost prezentat deja n Fig. 3.15. Dei aceasta are o structur foarte simpl, controlul precis al activrii comutatoarelor ce o formeaz reprezint o problem serioas. Acestea trebuie activate n aa fel nct consumatorul de la ieirea punii s primeasc tensiune trifazat sinusoidal, de amplitudine i frecven reglabile. Cea mai folosit tehnic pentru controlul punii invertoare este modulaia PWM, realizat de obicei cu ajutorul unui procesor dotat cu periferice speciale. Exist mai multe moduri de aplicare a modulaiei PWM la controlul invertoarelor trifazate. Lucrarea de fa nu i propune prezentarea tuturor posibilitilor, ci doar a celor dou cele mai rspndite, insistnd asupra avantajelor oferite de dispozitivele FPGA n implementarea acestor modulatoare. Pentru explicaiile ce urmeaz, se vor defini civa termeni utilizai ulterior. Astfel, puntea invertoare din Fig. 3.15 poate fi vzut ca fiind alctuit din dou pri, partea superioar, format din tranzistoarele Q1, Q3 i Q5, i partea inferioar, format din tranzistoarele Q2, Q4, Q6. n acelai timp, puntea poate fi vzut ca fiind alctuit din 3 ramuri, fiecare fcnd legtura ntre Vdc i mas. Cele 3 ramuri sunt alctuite respectiv din tranzistoarele Q1 i Q2, Q3 i Q4, Q5 i Q6. Este evident din Fig. 3.15 c cele dou tranzistoare ale aceleiai ramuri nu se pot afla n conducie n acelai timp, deoarece acest lucru ar conduce la scurtcircuitarea sursei de alimentare i distrugerea tranzistoarelor. Astfel, starea invertorului poate fi descris complet doar de starea a trei dintre tranzistoare, cele ale prii superioare sau cele ale prii inferioare, considernd c celelalte trei sunt n starea complementar. n plus, deoarece tranzistoarele au un timp de rspuns ne-neglijabil, ntre comanda de blocare a unui tranzistor i comanda de saturare a celuilalt de pe aceeai ramur ar trebui introdus un timp mort care s acopere timpii de rspuns ai tranzistoarelor. Simplificarea amintit poate reprezenta puntea invertoare ca fiind format din 3 comutatoare bipoziionale. Astfel, fiecare dintre fazele consumatorului poate fi conectat la un moment dat fie la valoarea pozitiv a tensiunii continue de intrare, fie la cea negativ. Prin modulaie PWM, impulsuri de frecven fix i lime variabil sunt aplicate la intrrile de comand ale comutatoarelor punii. Tensiunea medie pe faza consumatorului conectat la un comutator va fi dat de limea impulsurilor aplicate. De obicei, limea impulsurilor este dat de un semnal cu o frecven mult mai joas dect frecvena impulsurilor. Acesta din urm este semnalul purttor, n vreme ce primul este semnalul modulat. Pe lng semnalul modulat, la ieirea punii se vor regsi multe din armonicele superioare ale acestuia. De obicei acestea sunt filtrate de nsui consumator, ce are o caracteristic de tip filtru trece-jos. Pentru a minimiza efectul armonicelor, frecvena semnalului purttor ar trebui s fie ct mai nalt. Ea este ns limitat de unitatea de control (rezoluia elementelor digitale) i de capabilitile tranzistoarelor de putere (pierderi de comutaie, distorsiuni introduse de inserarea timpilor mori). Exist mai multe tehnici de modulaie PWM ce se aplic punilor invertoare. Dou dintre cele mai cunoscute vor fi prezentate i n cele ce urmeaz: modulaia PWM sinusoidal i modulaia bazat pe vectori spaiali. Prima tehnic poate fi implementat i folosind doar componente analogice; a doua, ns, este apanajul sistemelor digitale. 5.1 Modulaia PWM sinusoidal Modulaia PWM sinusoidal const n generarea unui tren de impulsuri de frecven fix a crui caracteristic este c factorul de umplere (limea impulsurilor) variaz dup o funcie sinusoidal. Modulaia PWM sinusoidal se obine prin compararea unui semnal de referin sinusoidal cu o purttoare cu form de und triunghiular sau dini de fierstru. Procesul de modulaie PWM sinusoidal este prezentat n Fig. 5.2. Atunci cnd se folosete o purttoare cu form de und triunghiular, semnalul rezultat la ieire este simetric fa de perioada semnalului purttor. Aceasta se datoreaz faptului c impulsul PWM nu este aliniat cu vrful pozitiv sau negativ al semnalului purttor, ci este simetric n jurul unuia dintre ele. De exemplu, n Fig. 5.2, 42

impulsurile negative n semnalul rezultat sunt simetrice fa de vrfurile pozitive ale semnalului purttor. n cazul purttoarei cu form de und dini de fierstru, impulsul PWM e aliniat cu vrful negativ al semnalului purttor. Aceasta conduce la o form de und asimetric a semnalului rezultat. De obicei, se prefer modulaia PWM simetric, deoarece produce mai puine distorsiuni armonice de curent i tensiune. Purttoarea cu form de und dini de fierstru este totui mai ntlnit n sistemele digitale mai vechi sau de cost redus, deoarece este mai uor de obinut folosind periferice simple, de tip numrtor binar. Producerea purttoarei triunghiulare necesit un periferic mai special, de tip numrtor binar reversibil (bidirecional).
Figura 5.2. Procesul de modulaie PWM sinusoidal.

Aa cum se poate observa din Fig. 5.2, amplitudinea semnalului sinusoidal de referin este limitat de amplitudinea semnalului purttor la Vdc / 2 , unde Vdc este tensiunea continu aplicat punii invertoare. Dac se alege prin convenie ca tensiunea aplicat punii s fie bipolar, atunci tensiunea aplicat fazei consumatorului la saturarea tranzistorului superior al ramurii va fi +Vdc / 2 , iar tensiunea aplicat fazei consumatorului la saturarea tranzistorului inferior al ramurii va fi Vdc / 2 . Aadar, dac amplitudinea semnalului modulator (de referin) depete amplitudinea semnalului purttor, modulaia nu mai funcioneaz corect. De altfel, raportul dintre amplitudinea semnalului modulator, Vref , i amplitudinea semnalului purttor,
V purt , reprezint indexul de modulaie: m =
Vref V purt

. Pentru o modulaie corect, este necesar ca

m 1 . n cazul n care nu se respect aceast constrngere, n semnalul de ieire vor aprea armonice superioare nedorite, fenomenul numindu-se supramodulaie. Principalul inconvenient al modulaiei PWM sinusoidale const n folosirea neperformant a energiei sursei de alimentare datorit limitrii amplitudinii semnalului modulator la V dc / 2 . O alt problem este faptul c pentru modulaia trifazat, semnalele modulatoare pe cele trei faze sunt tratate independent, ceea ce conduce la schimbri superflue ale strilor comutatoarelor, crescnd pierderile n tranzistoarele de putere i coninutul armonic n semnalele de ieire. O metod de a mbunti folosirea energiei sursei de alimentare n cazul punilor invertoare trifazate folosind modulaia PWM sinusoidal se bazeaz pe faptul c de obicei consumatorul de la ieirea punii (de exemplu un motor de CA trifazat) nu are nevoie de tensiuni sinusoidale pe fiecare faz n parte, ci de tensiuni sinusoidale ntre faze (producnd cureni sinusoidali). Semnalul modulator de pe fiecare faz poate fi aadar modificat ntr-un mod convenabil, cu condiia ca aceast modificare s nu afecteze semnalul diferenial ntre faze. Exist mai multe metode de a obine acest lucru, mai multe scheme de modulaie. Acestea se bazeaz pe injecia unui semnal ales potrivit n semnalul modulator al fiecrei faze. Acest semnal injectat va putea fi observat n punctul neutru al consumatorului (punctul de conectare n stea a fazelor acestuia) i din aceast cauz procesul se numete injecie de semnal la punctul neutru (ZSS Zero Sequence Signal injection). Un exemplu cunoscut de semnal ZSS este a treia armonic a semnalului sinusoidal modulator. Aceasta poate avea amplitudinea 1/4 sau 1/6 din amplitudinea semnalului iniial. Primul caz conduce la o mbuntire cu 15,5 % a amplitudinii semnalului de ieire fr supramodulaie, iar al doilea conduce la o mbuntire cu 12 %, dar cu minimizarea coninutului

43

spectral al curentului n consumator [124]. Aceast metod este ns destul de greu de implementat n practic datorit complexitii. Semnalul ZSS este de obicei extras din semnalele modulatoare de pe cele trei faze, fiind n relaie strns cu acestea. Faptul c cele trei semnale modulatoare sunt folosite mpreun pentru generarea semnalului ZSS va conduce la o tratare unitar a lor, eliminnd i al doilea inconvenient amintit la modulaia PWM sinusoidal pur. Dup cum se observ n Fig. 5.3, preluat din [125], exist o multitudine de metode de modulaie PWM sinusoidal cu inserie de ZSS, fiecare oferind anumite avantaje. Cea mai cunoscut metod const n injecia unui semnal triunghiular coninnd toate armonicele de ordin 3 (a doua imagine din coloana din stnga n Fig. 5.3). Aceast metod de modulaie a fost obinut i prin modulaia digital bazat pe vectori spaiali, i de aceea este att de rspndit.
Figura 5.3. Metode de modulaie PWM sinusoidal cu injecie de ZSS [125].

Din punctul de vedere al implementrii, schema de principiu a modulaiei PWM sinusoidale cu injecie de ZSS triunghiular este reprezentat n Fig. 5.4. Cele trei semnale modulatoare sunt semnale sinusoidale i provin de la un generator de semnal. Din cele trei semnale, se calculeaz ZSS, iar acest semnal se adun la fiecare din cele trei semnale iniiale. Semnalele rezultate vor fi de fapt semnalele modulatoare, iar modulaia se aplic ca i cea PWM sinusoidal simpl, cu ajutorul unor comparatoare, semnalului purttor triunghiular, acelai pentru toate cele trei faze. n final, semnalele modulate sunt folosite pentru a controla strile celor 6 tranzistoare ale punii invertoare. Aa cum s-a menionat, este necesar inseria unui timp mort la schimbarea strii tranzistoarelor de pe aceeai ramur a punii.
Figura 5.4. Schema de principiu a modulaiei PWM sinusoidale cu injecie de ZSS.

Pentru injecia de semnal triunghiular, calcularea ZSS const n determinarea semnalului de magnitudine minim din cele trei semnale modulatoare. Acest semnal este apoi scalat cu 0.5 i constituie ZSS [125]. Aadar,
v ZSS v a , if min( v a , v b , v c ) = v a ; = v b , if min( v a , v b , v c ) = v b ; v , if min( v , v , v ) = v . a b c c c

(5.3)

Pentru a uura implementarea digital, scutind modulatorul de a calcula valoarea absolut a magnitudinii semnalelor sinusoidale, necesar n (5.3), se poate face observaia c pentru semnale sinusoidale trifazate echilibrate (cu defazaj egal ntre ele, de 120), la orice moment dat, cele dou semnale de magnitudini mai mari au semne opuse. Aadar, semnalul ce are valoarea momentan n mijloc, nici cea mai mare, nici cea mai mic dintre cele trei, va fi cel de magnitudine minim. Aadar, valoarea ZSS poate fi calculat cu formula: v ZSS = 0.5 * max(min(v a , vb ), min(v a , vc ), min(vb , vc )). (5.4)

44

Aceasta este mult mai uor de implementat, folosind direct valorile semnalelor i eliminnd astfel civa pai din calcule. Dac semnalele sinusoidale trifazate nu sunt echilibrate, (5.4) nu se poate folosi fr o analiz prealabil a aplicabilitii. n cazul cel mai general, se va cuta aplicarea formulei (5.3). 5.2 Implementarea n FPGA a modulatorului PWM sinusoidal cu injecie de semnal la punctul neutru (ZSS) n cele ce urmeaz se va prezenta implementarea n timp real pe FPGA a modulatorului PWM sinusoidal cu injecie de ZSS. Modulul rezultat va putea fi ulterior integrat ntr-un sistem de control pentru un motor de CA implementat pe FPGA. Modulatorul a fost proiectat ntr-o manier modular, fiind constituit din: Un modul generator controlat de semnal sinusoidal; Un modul de calculare a valorii de prag pentru comanda tranzistoarelor, incluznd logica de generare i injecie a ZSS; Un modul de generare a semnalului purttor triunghiular, incluznd comparatoarele PWM. Toate modulele au fost validate prin simulare individual, apoi integrate i simulate ca ntreg. Sistemul a fost apoi implementat pe FPGA i verificat experimental. n acest rezumat, se va prezenta detaliat doar modulul de calculare a valorilor de prag, ce constituie partea cea mai important a modulatorului. 5.2.1 Modulul generator controlat de semnal sinusoidal Generatorul de semnal sinusoidal se bazeaz pe o tabel de cutare implementat ntr-o memorie ROM (Read Only Memory), n care se pstreaz valorile funciei sinus. Fiecare cuvnt pstrat ntr-o locaie ROM are o lime de 18 bii. Valorile memorate sunt reprezentate n format n virgul fix cu semn, cu 2 bii pentru partea ntreag i 16 bii pentru partea fracionar. S-a ales o lime a cuvntului de memorie de 18 bii deoarece memoria bloc RAM din FPGA este organizat n blocuri de 18kb, fiecare bloc putnd fi accesat ca o memorie de 1024x18 bii [126]. Tabela de cutare are o adncime de 4096 ( 212 ) de valori, deci ofer o rezoluie n timp de 12 bii i o rezoluie n amplitudine de 18 bii. Formele de und pentru toate cele trei faze ale semnalului modulator sunt obinute folosind aceeai memorie ROM, accesnd-o de 3 ori, la adrese diferite. Adresele difer ntre ele cu o valoare ce corespunde unui defazaj de 2/3. Cele trei accese consecutive sunt secveniate de un automat de stri, prin intermediul unui multiplexor 3 la 1 care selecteaz ntre adrese. De altfel, automatul de stri secveniaz toate operaiile din generatorul de semnal modulator. Acesta este un automat de tip Moore, instaniat ca un bloc Registered Moore State Machine din librria Xilinx Reference Blockset. Strile i tranziiile automatului sunt definite prin matricele strii urmtoare i ieirii, ce sunt translate automat n memorii ROM. S-ar putea folosi metode avansate de proiectare manual mai eficient a automatului [127], [128], ns efortul de proiectare trebuie ndreptat ctre calea de date, mult mai complex i cu un potenial de optimizare mult mai ridicat. Automatul este destul de simplu i deci uor de descris prin aceast metod. Automatul rmne n starea 0 (zero) pn cnd generatorul de semnal este activat de un semnal extern, ce semnalizeaz nceputul unei noi perioade PWM. Dup activarea acestui semnal, automatul trece dintr-o stare n urmtoarea fr nicio condiie, activnd n fiecare stare un semnal de validare pentru un registru sau un set de registre ce salveaz un pas din calculele asociate generatorului. n unele stri sunt modificate i ieirile de selecie pentru multiplexorul de pe adresa memoriei ROM. Ieirile sunt codificate sub forma one hot, un singur bit fiind 1 la un moment dat, cu excepia celor de selecie. Aceast codificare elimin nevoia de decodificator extern, folosindu-se doar blocuri Slice pentru a extrage biii necesari din magistrala de ieire, cum se poate vedea n Fig. 5.9. Tactul automatului (nu apare n figur, fiind considerat implicit), ca i al tuturor elementelor sincrone din sistem (registre, numrtoare, memorii), este de 50MHz. Automatul are 10 stri, deci modulul de generare a semnalelor modulatoare are nevoie de 10 pai (10 perioade de tact) pentru a-i executa sarcina. innd cont de simetria formei de und a 45

funciei sinus, memoria ROM ar putea pstra doar un sfert de perioad, iar prin calcule suplimentare asupra adresei i ieirii s-ar putea obine ntreaga perioad. Aceast abordare este folosit n [129]. O alt abordare, descris n [130], folosete multiplicatoare i relaii trigonometrice pentru a minimiza i mai mult consumul de memorie. Implementarea acestor metode ar complica structura modulului i ar implica mai muli pai de calcul. Or, numrul de pai de calcul este foarte important ntr-o implementare n timp real, iar dispozitivul FPGA folosit pentru experimente are suficiente blocuri de memorie RAM.
Figura 5.9. Automatul de stri ce secveniaz operaiile.

5.2.2 Modulul de calculare a valorilor de prag pentru comanda tranzistoarelor Acest modul este partea din sistem cea mai solicitant din punctul de vedere al puterii de calcul i, n consecin, al resurselor folosite. Implementarea n FPGA este foarte eficient n ceea ce privete timpul de execuie att datorit faptului c poate folosi multiplicatoarele integrate, cu un timp de propagare sub 5ns [126], ct i din cauz c calculele pentru cele trei faze pot fi realizate n paralel, de ctre elemente hardware independente. Valorile de prag calculate vor fi folosite mai departe de ctre comparatoarele PWM n modulul de generare a semnalului purttor triunghiular. n acest scop, cele trei semnale sinusoidale de intrare, dup injecia de ZSS, vor trebui aduse n acelai domeniu de valori ca i semnalul triunghiular. Se va vedea n seciunea urmtoare c acest domeniu este cuprins ntre 0 (zero) i o constant ntreag notat cu cnt_scale. Procesul de aducere a semnalelor modulatoare n intervalul [0;cnt_scale] se desfoar n mai muli pai. Mai nti, aceste semnale sunt normalizate prin multiplicare cu 2 / Vdc , unde Vdc este tensiunea continu de alimentare a punii invertoare. Semnalele, aflate acum n intervalul [-1;+1], sunt inversate, deplasate n jurul valorii 1 i scalate cu 1/2. Dup aceste operaii, semnalele modulatoare vor avea valori n intervalul [0;+1]. Prin nmulire cu cnt_scale, vor fi aduse n acelai interval ca i semnalul purttor. Circuitul care realizeaz aceste operaii este prezentat n Fig. 5.11. Dup cum se poate observa, circuitul folosete 6 multiplicatoare integrate. Fiecare pas de calcul este salvat ntr-un registru.

Figura 5.11. Circuitul de translare a intervalului semnalelor modulatoare.

Semnalul ZSS injectat este calculat conform (5.4). n acest scop, cele 3 semnale sinusoidale sunt sczute dou cte dou, iar biii de semn ai rezultatelor sunt folosii pentru a selecta care dintre cele trei semnale este ZSS. Acesta este rutat mai departe prin intermediul unui multiplexor 3 la 1, este scalat cu 0.5 i este adunat la cele 3 semnale sinusoidale. Se obin astfel cele 3 semnale modulatoare. Ca i n cazul modulului generator de semnal modulator, i modulul de calculare a valorii de prag este controlat de un automat de stri. Acesta activeaz n fiecare stare o ieire de validare pentru un set de registre, salvnd rezultatele unui pas din calcul. Automatul st n starea 0 (zero) pn cnd este activat de un semnal extern. Automatul are 9 stri, deci calcularea valorii de prag necesit 9 cicli de tact. Toate calculele din cadrul acestui modul sunt realizate pe 18 bii, 46

profitnd de limea multiplicatoarelor integrate n FPGA [126]. O reprezentare schematic a ntregului modul este prezentat n Fig. 5.13. Modulul este proiectat dup paradigma automat cu cale de date (FSMD Finite State Machine with Datapath) [131]. Calea de date este reprezentat de fluxul orizontal de date din Fig. 5.13. Automatul de stri controleaz de fapt calea de date. n Fig. 5.13, dreptunghiurile notate cu variabile reprezint registre, iar toate registrele aliniate vertical sunt validate de acelai semnal al automatului. Ultimul pas computaional din Fig. 5.13 ajusteaz pragurile calculate prin adugarea unei constante la valorile de prag ale tranzistoarelor din partea superioar a punii i prin scderea unei constante din valorile de prag ale tranzistoarelor din partea inferioar a punii. Aceste valori sunt ajustabile i au rolul de a introduce mici ntrzieri (timpi mori) ntre schimbrile strilor tranzistoarelor de pe aceeai ramur a punii. Necesitatea introducerii acestor timpi mori a fost deja discutat. Prin faptul c cele dou constante sunt diferite, se pot compensa asimetriile n rspunsul tranzistoarelor (de obicei, timpii de rspuns la comanda de saturare i la cea de blocare ai tranzistoarelor de putere sunt diferii).

Figura 5.13. Schema bloc a modulului de calculare a valorilor de prag.

5.2.3 Modulul de generare a semnalului purttor i a semnalelor de comand a tranzistoarelor Semnalul purttor triunghiular necesar modulaiei PWM este obinut numeric folosind un numrtor bidirecional. Un circuit suplimentar schimb direcia de numrare atunci cnd se ating nite constante prestabilite. Numrarea n jos se face pn la 0 (zero). Constanta limit superioar este dat de raportul dintre frecvena semnalului de tact al sistemului i frecvena dorit pentru semnalul PWM:
cnt _ scale = 1 f clk . 2 f PWM

(5.9)

Factorul 1/2 din (5.9) se datoreaz faptului c o perioad a semnalului purttor corespunde unui ciclu complet de numrare, de la 0 (zero) la cnt_scale i napoi la 0 (zero). Pentru cazul particular folosit n experimente n care f clk = 50MHz i f PWM = 20kHz , rezult cnt _ scale = 1250. Semnalul purttor va fi chiar semnalul de la ieirea numrtorului. Aa cum s-a menionat, semnalele modulatoare sunt translate n acelai interval de valori, pentru a face posibile comparaiile (intersectarea semnalelor) din Fig. 5.2. Modulul de generare a semnalului purttor este responsabil i cu generarea semnalelor de control pentru tranzistoarele punii. n acest scop, valorile de prag calculate de modulul discutat n seciunea anterioar sunt comparate, folosind comparatoare de egalitate, cu semnalul purttor. Pentru tranzistoarele superioare ale punii, egalitatea dintre valoarea de prag i semnalul purttor pe panta cresctoare a acestuia conduce la saturarea tranzistorului, iar aceeai egalitate pe panta negativ a semnalului purttor conduce la blocarea tranzistorului. Pentru tranzistoarele inferioare, lucrurile stau exact vice-versa. Aa cum s-a menionat, modulul de generare a semnalelor sinusoidale i cel de calculare a valorilor de prag sunt activate de semnale externe. Aceste semnale sunt generate din modulul 47

de generare a semnalului purttor, fiind legate de acest semnal: astfel, modulul de generare a semnalelor sinusoidale va fi activat cu 19 cicli de tact nainte de terminarea perioadei curente a semnalului purttor, iar modulul de calculare a valorilor de prag cu 10 cicli de tact nainte. n acest fel, toate calculele se termin exact n momentul nceperii unei noi perioade a semnalului purttor, valorile de prag fiind valide pentru comparaii pe durata acestei perioade. Cele dou semnale de activare sunt generate tot folosind comparatoare de egalitate i innd cont de semnalul de direcie a numrrii. 5.2.4 Implementarea pe FPGA i rezultate experimentale Modulele sistemului descris au fost proiectate folosind System Generator i validate prin simulare folosind Simulink. Sistemul a fost verificat prin simulare ca ntreg, apoi implementat n FPGA i verificat experimental. Tabelul 5.2 prezint resursele ocupate de modulator ntr-un dispozitiv FPGA Spartan-3E XC3S500E. Pentru experimente s-a folosit acest dispozitiv i o punte invertoare cu tranzistoare MOSFET de tipul Technosoft PM50. Ieirile au fost filtrate folosind filtre pasive RC trece jos pentru a elimina frecvenele superioare datorate comutaiei tranzistoarelor. Fig. 5.18 prezint o captur de osciloscop cu cele trei tensiuni de faz obinute dup filtrare. n prima parte a imaginii, modulaia a fost pur sinusoidal. Apoi, folosind un buton controlat de utilizator, s-a comutat pe modulaie sinusoidal cu injecie de ZSS. Se observ c amplitudinea semnalului cu injecie de ZSS este cu aproximativ 15% mai redus dect cea a semnalului sinusoidal. Acest lucru nu afecteaz ns tensiunea dintre faze, calculat de osciloscop i prezentat n partea de jos a imaginii, care rmne sinusoidal i i pstreaz amplitudinea. Tot n partea de sus a imaginii se observ semnalul de punct neutru, obinut prin conectarea celor trei faze n stea prin rezistene de valori mari. Acesta prezint o form de und triunghiular, n concordan cu ateptrile.
Figura 5.18. Semnalele sinusoidale trifazice, fr i cu injecie de ZSS.

Tabelul 5.2. Resursele ocupate n Spartan-3E XC3S500E de modulator. LUT-uri Bistabili D Felii logice Multiplicatoare Blocuri RAM 698 din 9312 511 din 9312 478 din 4656 8 din 20 (40%) 4 din 20 (20%) (7%) (5%) (10%) Se poate concluziona, aadar, c s-a proiectat cu succes un modulator sinusoidal cu injecie de ZSS n vederea implementrii n FPGA. Resursele ocupate din FPGA sunt n jur de 10% din disponibil, ceea ce permite integrarea, alturi de modulator, a unui sistem complex de control pentru un motor de CA trifazat, obiectivul final al acestei lucrri. 5.3 Modulaia bazat pe vectori spaiali Modulaia bazat pe vectori spaiali (SVM Space Vector Modulation) este tot o tehnic de modulaie PWM, dar este pur digital. Spre deosebire de tehnica de modulaie PWM sinusoidal prezentat anterior, ce folosete trei modulatoare sinusoidale independente, modulaia bazat pe vectori spaiali trateaz vectorul spaial de referin complex ca ntreg. Astfel este exploatat interaciunea dintre cele trei faze, ele nefiind tratate independent. Aa cum s-a vzut ns, injecia de ZSS la modulaia sinusoidal introduce o msur a interaciunii ntre faze n procesul de modulaie. De altfel, se va arta i prin rezultatele experimentale c modulaia sinusoidal cu injecie de ZSS triunghiular (prezentat anterior) este echivalent ca rezultat cu modulaia bazat pe vectori spaiali. SVM se bazeaz pe reprezentarea folosind vectorul spaial complex a mrimilor electrice. Aa cum se va evidenia n seciunile urmtoare, motoarele trifazate pot fi modelate n mai multe sisteme de coordonate. n general, se prefer modelarea lor ntr-un sistem de dou axe, echivalndu-le cu motoare bifazice. Exist dou sisteme bifazice de coordonate, unul fix, legat 48

de stator, i unul rotativ, de obicei sincron cu rotorul. Aceast din urm abordare este avantajoas pentru c mrimile ce caracterizeaz motorul sunt constante n sistemul de coordonate rotativ. Suprapunnd sistemul staionar de dou coordonate, /, peste planul complex i alegnd ca axa real i ca axa imaginar, vectorul spaial ce reprezint tensiunea este dat de (5.10). Se poate arta c dac unei maini trifazice i se aplic o tensiune sinusoidal trifazat echilibrat de r valoare medie ptratic (RMS Root Mean Square) Vm i pulsaie , atunci vectorul spaial V va avea magnitudinea Vm i se va roti pe o orbit circular cu viteza unghiular [124]. i variabilele trifazice pot fi exprimate sub form vectorial ca n (5.11), unde a = e j 2 / 3 i a 2 = e j 2 / 3 pot fi interpretai ca vectori unitate aliniai cu axele b i c. Totui, se prefer modelarea n spaiul /.
r V = v + jv = V m e j

(5.10)

r 2 V = (v a + av b + a 2 v c ) 3

(5.11)

Atunci cnd se folosete o punte invertoare trifazat, vectorul spaial de referin (dorit) trebuie obinut printr-o combinaie a strilor posibile ale punii. Aa cum s-a menionat, datorit faptului c starea tranzistoarelor superioare trebuie s fie complementar strii tranzistoarelor inferioare, starea punii poate fi descris doar de starea tranzistoarelor superioare. Puntea se poate afla deci n 8 ( 2 3 ) stri posibile, prezentate n Tabelul 5.3 mpreun cu valorile corespunztoare ale tensiunilor pe axele /. Tabelul 5.3. Strile posibile ale punii invertoare. Cnd sunt reprezentate n Starea Starea Componentele vectorului planul /, cele 8 stri posibile punii tranzistoarelor spaial ale punii invertoare devin 8 v v v Q1 Q3 Q5 vectori spaiali, dintre care doi 000 OFF OFF OFF 0 0 0 sunt nuli. Ceilali 6 definesc un 2Vdc / 3 0 100 ON OFF OFF 2Vdc / 3 hexagon i l mpart n 6 2Vdc / 3 110 ON ON OFF Vdc / 3 Vdc / 3 sectoare, cum se poate vedea n 2Vdc / 3 010 OFF ON OFF Vdc / 3 Fig. 5.19. Vdc / 3 Tehnica modulaiei SVM 2Vdc / 3 0 011 OFF ON ON 2Vdc / 3 const n reconstruirea unui 2Vdc / 3 101 ON OFF ON Vdc / 3 Vdc / 3 vector spaial de referin dat 111 ON ON ON 0 0 0 folosind vectorii spaiali de baz din Fig. 5.19. De fapt, doar 3 din cei 8 vectori spaiali sunt necesari la un moment dat: cei doi vectori adiaceni vectorului de referin, ce definesc sectorul n care acesta se gsete, i unul din vectorii nuli. De obicei, se folosesc ambii vectori nuli, pentru utilizarea simetric a tranzistoarelor superioare i inferioare ale punii. Vectorii spaiali de baz se combin folosind tehnica PWM. Din aceast cauz, algoritmul SVM mai este cunoscut i sub denumirea SVPWM.
Figura 5.19. Hexagonul definit de vectorii spaiali de baz. Figura 5.20. Descompunerea unui vector spaial situat n sectorul S3 n vectorii de baz.

Spre exemplu, un vector spaial cu magnitudinea i orientarea ca n Fig. 5.20 va fi reconstruit folosind vectorii de baz 001 i 011. Perioada de timp ct fiecare din aceti vectori este aplicat este proporional cu mrimea proieciei vectorului de referin pe vectorul de baz respectiv. Restul perioadei semnalului PWM este alocat vectorilor nuli.
Figura 5.21. Reconstrucia vectorului din Fig. 5.20 prin PWM.

49

n Fig. 5.21 este prezentat reconstrucia vectorului din Fig. 5.20 folosind tehnica PWM. Ordinea n care se activeaz vectorii de baz ntr-o perioad PWM este foarte important. Aa cum se poate observa n Fig. 5.21, vectorii de baz sunt aplicai n aa fel nct o singur ramur a punii i modific starea la un moment dat, minimizndu-se astfel pierderile de comutaie i coninutul armonic al semnalelor de ieire. Algoritmul de implementare a SVM trebuie s ndeplineasc urmtoarele sarcini: S determine orientarea vectorului de referin; de fapt, doar sectorul n care se afl vectorul este important, pentru a afla vectorii de baz adiaceni ce vor participa la reconstrucia lui; S determine mrimea proieciilor vectorului de referin pe vectorii de baz i, deci, factorul de umplere pentru aplicarea vectorilor de baz; S determine ordinea de aplicare a vectorilor de baz; S genereze semnalul purttor PWM i s aplice modulaia. Dei aceste sarcini par foarte complexe, ele au fost reduse la probleme simple de geometrie plan: comparaii de segmente i calcularea lungimilor lor, fr a fi necesar apelul la funcii trigonometrice. Dei aceast abordare apare n diferite forme n literatur [124], [133], [134] ea nu este suficient de cunoscut, dovad fiind multitudinea de lucrri ce folosesc o abordare bazat pe funcii trigonometrice, mai complicat: [28], [46], [48], [49]. Pornind de la componentele / ale vectorului de referin, se determin sectorul i apoi se calculeaz raporturile de activare a, b i c pentru fiecare ramur a punii. Un raport de activare a=1 corespunde tranzistorului superior continuu saturat al primei ramuri a punii. Valoarea a=0 implic o distribuie egal a timpului de activare ntre tranzistorul superior i cel inferior ai primului bra., n timp ce valorii a=1 i corespunde situaia n care tranzistorul inferior al primului bra este continuu saturat (activat). Similar, valorile b i c corespund strilor celorlalte ramuri ale punii, respectiv. Pentru calcularea valorilor raporturilor de activare a, b i c se folosete algoritmul schiat n Fig. 5.24 [124]: mai nti, n funcie de valorile componentelor / ale tensiunii, se determin sectorul n care se afl vectorul. Apoi se calculeaz valorile a, b i c aplicnd nite formule de calcul specifice fiecrui sector. Acestea in cont de unghiul dintre axele / i vectorii spaiali de baz ce definesc sectorul.
Figura 5.24. Algoritmul de calculare a valorilor raporturilor de activare.

Datorit simetriei hexagonului, formulele de calcul pentru raporturile de activare sunt aceleai pentru sectoarele 1 i 4, 2 i 5, 3 i 6, respectiv, i sunt reprezentate de ecuaiile (5.12), (5.13), (5.14).
a = v + b = v + c = v 1 3 3 3 1 3 v ; v ; v .
a = 2v ; 2 b= v ; 3 2 c= v . 3
a = v 1 3 1 3 3 3 v ; v ; v .

(5.12)

(5.13)

b = v + c = v

(5.14)

Factorii de umplere pentru semnalele PWM se calculeaz apoi din valorile raporturilor de activare:

50

dc a ,b,c = [

a +1 b +1 c +1 ; ; ] 100% . 2 2 2

(5.15)

Pornind de la cele prezentate poate fi derivat implementarea n timp real pe FPGA a algoritmului de modulaie SVM. Spre deosebire de implementarea pe un microcontroler sau DSP, implementarea pe FPGA e mult mai rapid, deoarece multe operaii se pot executa n paralel. De asemenea, operaiile executate nu sunt limitate de o arhitectur aritmetico-logic fixat, ci pot fi definite dup nevoi, ceea ce ofer mult flexibilitate la implementarea algoritmului. n cazul algoritmului descris, se poate observa c rezultatele operaiilor de comparaie ce conduc la determinarea sectorului n care se afl vectorul pot fi folosite dup aceea: ultimele 4 condiii de decizie din Fig.5.24 pot fi regsite n formulele de calcul (5.12) i (5.14). De exemplu, a doua condiie de decizie din Fig.5.24, dat de (5.16), poate fi rescris ca (5.17). La fel, cealalt condiie poate fi rescris ca (5.18). Aadar, decizia este luat n funcie de semnul operaiei (5.17), iar rezultatul acesteia este folosit ulterior pentru a calcula factorul a n (5.14). Se poate observa de asemenea c celelalte operaii din (5.12) i (5.14) sunt combinaii liniare ntre termenii dai de condiiile de decizie, ca (5.17) i (5.18), i factorii b i c din (5.13). Aadar, odat aceti termeni calculai, ei vor facilita calcularea celorlali.
v 1 3 v

(5.16)

1 3

v 0

(5.17)

v +

1 3

v 0

(5.18)

Avnd n vedere disponibilitatea de resurse din FPGA, o abordare inteligent este s se calculeze a priori toate valorile posibile pentru a, b i c i, n momentul n care s-a decis sectorul, adic care dintre trei-uple este cea valid, s se ruteze aceasta la ieire. Astfel, calculele pot fi efectuate n paralel i ntre ele, i cu procesul de decizie, scurtndu-se timpul de execuie a algoritmului. 5.4 Implementarea n FPGA a modulatorului bazat pe vectori spaiali Ca i modulatorul sinusoidal cu injecie de ZSS prezentat anterior, modulatorul SVM a fost proiectat modular, avnd o structur asemntoare. Este compus, aadar, dintr-un modul generator de semnal, un modul de calculare a factorilor de umplere i un modul generator de semnal purttor PWM. 5.4.1 Structura modular Modulul generator de semnal va genera un vector spaial rotitor n planul complex, adic va fi tot un generator controlat de semnal sinusoidal trifazat. Diferena fa de generatorul de semnal sinusoidal din Seciunea 5.2 const n faptul c modulatorul SVM lucreaz cu reprezentarea / a semnalului trifazat. Aadar, modulul generator de semnal va realiza i transformarea din sistemul de coordonate trifazat n cel bifazat:
1 v [k ] = 3 (2v a [k ] v b [k ] v c [k ]); v [k ] = 3 (v b [k ] v c [k ]). 3

(5.19)

Aceasta presupune un pas de calcul (adic un ciclu de tact) n plus i utilizarea unor resurse suplimentare (multiplicatoare i sumatoare). Modulul de calculare a factorilor de umplere va implementa algoritmul discutat n seciunea anterioar i schiat in Fig. 5.24. Algoritmul este implementat tot folosind paradigma automat cu cale de date: paii de calcul sunt secveniai de ctre un automat de stri de tip Moore, acesta genernd semnale de validare pentru registrele ce memoreaz rezultatele intermediare. Schema bloc a modulului de calculare a factorilor de umplere este prezentat n Fig. 5.26. Algoritmul din Fig. 5.26 ncepe cu normalizarea componentelor / ale tensiunii trifazate. Prin nmulire cu 3 /(2 * Vdc ) , cele dou valori de intrare sunt aduse n intervalul [-1;+1]. Trebuie observat c n toate formulele componenta de pe axa este nmulit cu 1 / 3 , datorit unghiului dintre vectorii spaiali de baz i axa . Aadar, normalizarea componentei v include 51

i nmulirea cu acest factor, eliminndu-se o operaie superflu. Urmtorul pas este determinarea condiiilor (5.17) i (5.18). Acestea se calculeaz folosind sumatoare, iar rezultatele sunt salvate n registre. Vor fi utilizate ulterior pentru calculul unor termeni din formulele (5.12) i (5.14), folosind tot sumatoare i operaii de negare (n complement fa de 2), reprezentate prin x(-1) n Fig. 5.26.

Figura 5.26. Schema bloc a modulului de calculare a factorilor de umplere.

Biii de semn ai valorilor corespunztoare operaiilor (5.17) i (5.18), mpreun cu bitul de semn al componentei v normalizat, sunt folosii pentru a realiza selecia valorilor corecte ce vor fi rutate la ieire dintre cele calculate n paralel. Acest lucru este realizat de un circuit logic combinaional. n momentul n care valorile precalculate au fost selectate i rutate la ieire de multiplexoare, ele vor fi salvate n registrele notate a, b, c n Fig. 5.26. Acestea sunt raporturile de activare discutate n seciunea anterioar. n pasul urmtor, aceste raporturi de activare conduc la valorile factorilor de umplere pentru semnalele PWM, conform (5.15). Similar ca la modulatorul PWM sinusoidal, aceti factori de umplere sunt transformai n valori de prag folosite la comparaii cu semnalul purttor prin nc doi pai computaionali: primul scaleaz valorile factorilor de umplere, translndu-i din intervalul [0;+1] n intervalul n care variaz semnalul purttor. Acest lucru se realizeaz prin nmulire cu constanta cntr_scale. Al doilea pas modific uor valorile de prag, pentru a introduce un timp mort ntre comutarea tranzistoarelor de pe acelai bra al punii. Aceast problem a mai fost discutat n Seciunea 5.2, iar implementarea soluiei este exact la fel, deci nu va mai fi detaliat. Ieirea acestui modul este reprezentat aadar de 6 valori de prag, fiecare corespunznd controlului semnalului de activare a unui transistor al punii. Modulul generator de semnal purttor PWM are exact aceeai structur cu modulul omonim discutat n seciunea 5.2.3. Semnalul purttor, tot triunghiular periodic, este comparat cu valorile de prag generate de modulul anterior, n felul acesta derivndu-se semnalele de comand pentru tranzistoare. Tot acest modul este responsabil i cu generarea semnalelor de activare pentru celelalte dou module. 5.4.2 Implementarea pe FPGA i rezultate experimentale Modulatorul prezentat a fost implementat ntr-un dispozitiv FPGA Spartan-3E. S-a folosit reprezentarea numerelor n virgul fix, cu o precizie de 18 bii la operaiile de nmulire (limitat de limea intrrilor multiplicatoarelor ncorporate n FPGA) i 24 de bii pentru celelalte operaii. Algoritmul de calculare a valorilor de prag se execut n 8 pai, adic n 160ns la o frecven a semnalului de tact de 50MHz. n Tabelul 5.4 se prezint comparativ resursele ocupate de modulatorul prezentat (doar algoritmul de modulaie, fr generatorul de semnal de intrare) i alte dou versiuni din literatur [136], [28]. Implementrile comparate sunt realizate cu dispozitive FPGA cu arhitecturi bazate pe celule logice cu LUT-uri cu 4 intrri, deci comparabile. Dup cum rezult din Tabelul 5.4, modulatorul prezentat ocup cu 45% mai multe resurse dect cel prezentat n [136], dar are o 52

rezoluie de 3 ori mai mare, i este cu 32% mai economic dect cel prezentat n [28], avnd i rezoluie dubl fa de acesta. n plus, modulatoarele prezentate n literatur folosesc funcii trigonometrice pentru a determina sectorul n care se afl vectorul, deci au nevoie de o memorie ROM pentru a pstra eantioanele funciei sinus. De asemenea, avnd n vedere c acele implementri folosesc forma trifazat a vectorului spaial, n implementarea unui sistem de control orientat dup cmp pentru un motor de CA modulatorul prezentat este mai avantajos, deoarece realizeaz modulaia direct din reprezentarea / a tensiunii de comand, folosit i de sistemul de control. Celelalte implementri vor avea nevoie de operaii n plus pentru realizarea transformrii din spaiul / n cel trifazat. Tabelul 5.4. Resursele ocupate de modulatorul SVM. Implementare Dispozitiv FPGA Resurse ocupate: Rezoluia LUT-uri/bistabili Prezentat aici Xilinx Spartan-3E / XC3S500E 830/510 24 bii Prezentat n [136] Xilinx Spartan-2 / n.a. 573/n.a. 8 bii Prezentat n [28] Altera Cyclone / EP1C20 1221/n.a. 12 bii Dup sintez, mapare i rutare, uneltele de analiz a temporizrii au raportat c sistemul prezentat este capabil s ruleze la o frecven maxim de 77MHz. El a fost testat efectiv la frecvena de 50MHz. Pentru testare, modulatorul a fost conectat la generatorul de semnale sinusoidale. n Fig. 5.28 este prezentat o captur de osciloscop a semnalelor de la ieirea punii invertoare, filtrate cu filtre trecejos pasive. Se observ c formele de und sunt la fel cu cele obinute prin modulaie sinusoidal cu injecie de ZSS triunghiular din Fig. 5.18, evideniindu-se astfel prin rezultate experimentale echivalena celor dou tehnici de modulaie [138].
Figura 5.28. Semnalele filtrate de la ieirea punii invertoare.

5.5 Comparaie ntre cele dou modulatoare n scopul comparrii celor dou modulatoare i a alegerii celui mai potrivit pentru integrarea n sistemul de control, ambele sisteme descrise au fost realizate cu aceeai precizie, de 18 bii. Pentru rigurozitate, modulatorul sinusoidal cu injecie de ZSS a fost realizat folosind formula (5.3), i nu simplificarea (5.4). Acest lucru presupune un pas de calcul n plus, pentru determinarea valorii absolute. n Tabelul 5.5 sunt prezentate comparativ resursele ocupate de cele dou sisteme. Tabelul 5.5. Resursele ocupate de cele 2 sisteme cu modulator. Resurse Sistem cu modulator SPWM-ZSS SVM LUT-uri cu 4 intrri 833 (8%) 957 (10%) Bistabili D 548 (5%) 585 (6%) Felii logice 560 (12%) 605 (12%) Multiplicatoare 8 (40%) 9 (45%) Blocuri RAM 4 (20%) 4 (20%) Frecvena maxim 90 MHz 124 MHz Se observ din Tabelul 5.5 c o scdere a preciziei calculelor de la 24 la 18 bii pentru modulatorul SVM conduce la o cretere semnificativ a frecvenei de lucru, de la 77MHz la 124MHz. Din Tabelul 5.5 rezult, la prima vedere, c modulatorul SPWM-ZSS ar fi mai potrivit pentru implementarea n FPGA i ncorporarea ntr-un sistem de control datorit faptului c ocup mai puine resurse. Trebuie totui sesizat c n tabel sunt prezentate resursele ocupate de ntreg sistemul, incluznd generatorul de semnal. Aceast observaie este important, deoarece la 53

integrarea ntr-un sistem de control acest modul dispare, semnalele fiind generate de ctre algoritmul de control. Fr a include generatoarele de semnal, se observ c cele dou modulatoare ocup cam aceleai resurse, modulatorul SVM fiind totui preferabil deoarece: Are nevoie de mai puini pai pentru a realiza calculele; Are ca valori de intrare componentele / ale tensiunii trifazate; cum, n general, sistemele de control performante pentru motoare de CA folosesc reprezentarea ntr-un sistem de referin bifazat legat de rotor, aceasta este mai apropiat de reprezentarea n sistemul bifazat legat de stator, /. Deci sistemul de control va avea nevoie de mai puine operaii pentru a trece de la reprezentarea intern la reprezentarea folosit de algoritmul SVM, dect pentru a ajunge de la reprezentarea intern la cea trifazat. Cu alte cuvinte, n cazul SPWM-ZSS va mai fi necesar cel puin un pas de calcul, inversa transformrii (5.19). Pe lng timpul de calcul, aceast transformare implic i utilizarea unor resurse suplimentare, inclusiv a 2 multiplicatoare. Folosete mai puine multiplicatoare, 5 n loc de 6. Avnd n vedere i punctul anterior, i innd cont c multiplicatoarele sunt o resurs critic pe FPGA, acest punct este destul de important. Desigur, exist metode de a multiplexa n timp folosirea resurselor hardware, n spe a multiplicatoarelor, dar acest lucru implic complicarea sistemului i introducerea unor pai suplimentari de calcul. Funcioneaz la o frecven ceva mai mare. Dei se poate mbunti frecvena de lucru i pentru modulatorul SPWM-ZSS prin cutarea cilor critice i inserarea de registre, acest lucru implic mrirea numrului de pai ai algoritmului, deci implic un timp de calcul mai lung. Este, aadar, important de subliniat c algoritmul SVM este preferabil algoritmului SPWM-ZSS la implementarea pe FPGA. Singurul inconvenient este c dac se dorete o alt schem de modulaie, de exemplu folosind unul singur din vectorii nuli, algoritmul SVM se modific total (se modific formulele de calcul, deci i calea de date). O alt schem de modulaie afecteaz doar o mic parte n algoritmul SPWM-ZSS, anume aceea de calculare a ZSS. Deci se poate considera c algoritmul SPWM-ZSS este mai flexibil. 5.6 mbuntirea rezoluiei modulatorului SVM Problema modulatoarelor PWM, att a celui sinusoidal ct i a modulatorului SVM, const n faptul c rezoluia cu care se pot obine impulsurile PWM este limitat de rezoluia numrtorului ce genereaz purttoarea PWM. Aa cum rezult din (5.9), aceasta este invers proporional cu frecvena semnalului purttor. Avem deci de-a face cu constrngeri contradictorii: pe de o parte, frecvena purttoarei ar trebui s fie ct mai mare, pentru a scdea perioada de eantionare a sistemului de control digital i deci limea sa de band; pe de alt parte, rezoluia modulatorului ar trebui s fie ct mai mare, cel puin egal cu rezoluia senzorilor de curent i vitez, pentru a avea un sistem de control stabil i performant. Din aceast cauz s-a cutat mereu mbuntirea rezoluiei modulatorului PWM prin alte metode dect scderea frecvenei purttoarei. Cea mai simpl soluie, vizibil uor i din (5.9), const n a crete frecvena semnalului de tact aplicat numrtorului ce genereaz purttoarea PWM. De obicei, aceast abordare nu este suficient i se caut mbuntirea ei prin introducerea de ntrzieri precise, ce reprezint multipli ai unei fraciuni din perioada semnalului de tact. Atunci cnd se utilizeaz dispozitive FPGA, aceste ntrzieri pot fi obinute cu precizie foarte ridicat folosind elementele de gestionare a semnalelor de tact integrate n FPGA [139], [140], [141], despre care s-a amintit n Seciunea 2.2. Ca i circuitele din familia Xilinx prezentat n Seciunea 2.2, i circuitul Spartan-3E XC3S500E ce s-a folosit la experimente dispune de blocuri DCM. n aceast seciune se prezint o generalizare a circuitului din [141], care are avantajul fa de cele prezentate n [139] i [140] c este sincron. Circuitul prezentat n [141] a fost modificat pentru a folosi purttoarea PWM triunghiular, a fost extins la 6 canale (fiecare 54

tranzistor al punii invertoare este controlabil independent) i i s-a mbuntit liniaritatea prin reproiectarea multiplexoarelor pentru o mai bun simetrie. Fig. 5.30 prezint circuitul proiectat. Blocurile DCM, numrtorul i cei 4 bistabili din partea de sus sunt pilotai de acelai semnal de tact de 200MHz, ce nu mai este reprezentat pentru a nu ncrca figura. Cei 16 bistabili din partea de jos sincronizeaz semnalele de set i reset cu 8 semnale de tact defazate de ctre blocurile DCM. Bistabilii din FPGA permit selectarea frontului de tact la care reacioneaz [126], deci s-au folosit doar cte dou ieiri din fiecare DCM. Acest lucru ofer dou avantaje majore: (i) este eliminat o surs de posibile asimetrii datorit defazajelor imperfecte; (ii) toate semnalele de tact pot folosi resurse de rutare globale speciale (numrul buffer-elor speciale de tact este redus), asigurndu-se ntrzieri minime pe liniile de tact.
Figura 5.30. Schema de principiu a circuitului generator de PWM cu rezoluie nalt.

Pentru testare, circuitul prezentat, proiectat prin captur de schem, a fost implementat n FPGA. Folosind un osciloscop cu lime de band mare, de 500MHz, s-au efectuat msurtori. Modulatorul SVM, mbuntit cu circuitul prezentat n aceast seciune, a fost testat pentru comanda simpl, n bucl deschis, dup metoda V/Hz, a unui motor de inducie, comandat de o punte invertoare trifazat cu IGBT-uri (Fig. 5.34). S-a putut astfel verifica experimental corectitudinea funcionrii modulatorului proiectat.

Figura 5.34. Standul experimental cu punte invertoare de putere i motor de inducie.

5.7 Concluzii n acest capitol s-au prezentat dou metode de modulaie PWM folosite n controlul punii invertoare trifazate: modulaia PWM sinusoidal cu injecie de semnal triunghiular la punctul neutru i modulaia bazat pe vectori spaiali. Din punctul de vedere al rezultatului, metodele sunt echivalente. Din punctul de vedere al implementrii, ns, cele dou metode sunt foarte diferite: n vreme ce modulaia PWM sinusoidal este foarte veche, fiind iniial implementat folosind componente analogice, modulaia bazat pe vectori spaiali este relativ recent, aprnd odat cu evoluia sistemelor de control digitale i fiind apanajul acestora. Dup prezentarea general a metodelor de modulaie, s-a fcut o analiz a lor din punctul de vedere al implementrii pe FPGA. S-au proiectat, ntr-o manier original, modulatoarele corespunztoare, innd cont de posibilitile de paralelizare a operaiilor n FPGA. Pentru proiectare, s-a folosit mediul Simulink i software-ul System Generator, ceea ce a permis validarea conceptului prin simulare. Fiecare modulator a fost integrat ntr-un sistem de testare, coninnd un generator controlat de semnal trifazat, respectiv bifazat. Astfel, s-au putut verifica experimental. Experimentele au dovedit echivalena funcional a celor dou metode de modulaie. 55

Cele dou modulatoare au fost comparate din punctul de vedere al resurselor ocupate i al vitezei de lucru. Dei ambele modulatoare ocup cam aceeai cantitate de resurse logice din FPGA, modulatorul bazat pe vectori spaiali s-a dovedit mai potrivit pentru integrare ntr-un sistem de control pentru un motor de CA trifazat datorit faptului c se execut n mai puini pai, folosete mai puine multiplicatoare dedicate (o resurs critic n FPGA-urile de cost redus) i se aplic direct componentelor / ale tensiunii de intrare. Aceast concluzie este semnificativ, deoarece multe abordri din literatur [42], [57], [142] prefer modulaia sinusoidal sub pretextul c este mai uor de implementat. n final, s-a realizat mbuntirea la 16 bii a rezoluiei modulatorului PWM prin folosirea a trei blocuri DCM i a unei scheme originale. Schema a fost obinut n doi pai, prin reproiectarea uneia prezentate n literatur astfel nct s funcioneze cu semnal purttor triunghiular. Modulatorul SVM prezentat aici a fost prezentat n [143]. O modificare a acestuia, cu folosirea doar a vectorului nul 000, a fost prezentat n [144]. Modulatorul SPWM-ZSS a fost prezentat n [145]. Schema pentru creterea rezoluiei modulatorului PWM a fost publicat n [143].

6.

Proiectarea unui sistem de control al vitezei pentru motorul PMSM implementabil n hardware pe FPGA

6.1 Modelarea motorului PMSM Motorul sincron cu magnei permaneni este un motor fr perii cu distribuie sinusoidal a nfurrilor statorului. Din acest motiv, mai este cunoscut n literatur sub denumirea de motor fr perii de CA, sau motor BLAC (Brushless AC). Spre deosebire de motorul BLDC, n care o tensiune continu se comut n anumite nfurri ale statorului n funcie de poziia rotorului, ntr-un PMSM tensiunea n nfurri trebuie s fie sinusoidal. Amplitudinea i frecvena acestei tensiuni este legat de viteza rotorului, iar faza sinusului trebuie s fie n concordan cu poziia rotorului. Un PMSM cu doi poli rotorici i trei nfurri statorice este reprezentat n Fig. 6.1 [147]. Se observ c perpendicular pe cele 3 nfurri statorice se definesc 3 axe. Paralel cu polii magnetici ai rotorului, pe direcia polului nord, se definete axa d, iar perpendicular pe aceasta, n direcia acelor de ceasornic, axa q. Poziia rotorului fa de stator se definete prin unghiul dintre axele q i as, r , iar viteza unghiular a rotorului se noteaz r .
Figura 6.1. Reprezentarea schematic a unui PMSM [147].

Ecuaiile electrice ale motorului sunt:


v as rs v = 0 bs vcs 0 0 rs 0 Lls + L A 0 ias d 1 0 ibs + L A dt 2 rs ics 1L 2 A 1 LA 2 1 LA 2 i m sin r as 2 d ibs + m sin( r ) , 3 dt ics sin( + 2 ) Lls + L A r m 3 1 LA 2 1 LA 2

Lls + L A

(6.1)

unde v as , vbs , vcs reprezint cderile de tensiune pe nfurrile notate cu as, bs, cs n Fig. 6.1, ias , ibs , ics reprezint curenii prin nfurri, rs reprezint rezistena nfurrii statorice, Lls este inductana de pierdere (leakage) a nfurrii statorice, m este amplitudinea legturilor de

56

flux stabilite de magneii permaneni, iar L A =

N s 0 rl g 2

este definit pentru a exprima mai uor

inductanele proprii i mutuale ale statorului n a doua matrice din (6.1); N s reprezint numrul de spire al nfurrii, 0 este permeabilitatea magnetic a vidului (i o aproximeaz pe cea a aerului), r este raza intern a statorului, l este lungimea axial a motorului, iar g reprezint grosimea spaiului dintre rotor i stator (air gap, ntrefier). Se presupune c spaiul dintre rotor i stator este uniform, adic rotorul este rotund. n caz contrar, inductanele mainii vor avea nc o component, variabil, dependent de unghiul dintre stator i rotor. Cuplul electromagnetic este dat de (6.3), unde P este numrul de poli magnetici ai rotorului. i formula (6.3) este valabil dac rotorul este perfect rotund, altfel trebuind introduse componente datorate inductanelor variabile. Ecuaia mecanic a motorului este dat de relaia (6.4), unde J este momentul de inerie a rotorului i a sarcinii, F este factorul de friciune, iar TL este cuplul mecanic de ncrcare.
Te = P 3 1 1 m [(ias ibs ics ) cos r + (ibs ics ) sin r ] 2 2 2 2

(6.3)

Te = J

2 d 2 r + F r + TL P dt P

(6.4)

Relaiile (6.1) i (6.3), ce modeleaz motorul PMSM, au dezavantajul major c mrimile electrice i mecanice depind de poziia rotorului. Dac rotorul nu ar fi rotund, lucrurile ar fi i mai complicate, deoarece n (6.1) i (6.3) ar aprea i inductane variabile n funcie de poziia rotorului. n aceste condiii proiectarea unui sistem de control pentru PMSM este foarte dificil. O cale de a evita lucrul cu mrimile variabile n timp este aceea, propus de R. H. Park nc din 1929, de a realiza o transformare din sistemul de coordonate trifazat legat de stator n sistemul bifazat legat de rotor. Astfel, aplicnd matricea de transformare dat de (6.5) vectorilor mrimilor trifazate se obin reprezentrile lor n sistemul de coordonate q/d, (6.6) i (6.7).
cos 2 K s = sin 3 1 2 2 2 ) cos( + ) 3 3 2 2 sin( ) sin( + ) (6.5) 3 3 1 1 2 2 cos(
v qs v = K s ds v 0 s v as vbs v cs ias iqs i = K i s bs ds ics i0 s

(6.6)

(6.7)

Aplicnd transformarea dat de (6.5) ntregii ecuaii electrice a motorului (6.1), rezult:
v qs rs v = 0 ds v 0 s 0 3 2 0 rs 0 0 iqs Ld ids + m Lq i + L i + d 0 0 ds r q qs dt 0 rs i0 s 0 0 Ld 0 0 iqs 0 i + d , 0 ds m dt 0 Lls i0 s

(6.8)

unde Lq = Lls + L A este inductana echivalent pe axa q, iar Ld este inductana echivalent pe axa d i este egal cu Lq n cazul PMSM cu rotor rotund. Dac rotorul nu este rotund, cele dou inductane echivalente nu mai sunt egale, dar sunt n orice caz invariabile. Ecuaia (6.8) poate fi explicitat n (6.9), (6.10), (6.11). Aplicnd transformarea dat de (6.5) ecuaiei de cuplu a motorului (6.3) se obine (6.12) [147]. Se observ c n cazul PMSM cu rotor rotund, cum inductanele echivalente pe cele dou axe sunt egale, (6.12) se simplific n (6.13). Aadar, lucrnd n sistemul de coordonate q/d, ecuaiile electrice ale motorului nu mai conin mrimi dependente de poziia rotorului. De asemenea, ecuaia de cuplu se simplific foarte mult. Transformarea sistemului de coordonate se dovedete astfel crucial pentru proiectarea unui sistem de reglare a cuplului sau vitezei motorului PMSM.
v qs = rs iqs + r Ld ids + r m + Lq v0 s = rs i0 s + Lls d i0 s dt d iqs dt Te =

(6.9)

v ds = rs ids r Lq iqs + Ld

d ids dt

(6.10) (6.13)

(6.11)

3P ( m iqs + ( Ld Lq )iqs ids ) 2 2

(6.12)

Te =

3P m iqs 2 2

57

n literatur, transformarea din sistemul trifazat fixat pe stator n sistemul bifazat rotitor fixat pe rotor dat de (6.14) este adesea vzut ca o serie de 2 transformri succesive. Prima este transformata Clarke, din sistemul trifazat fixat pe stator ntr-un sistem bifazat fixat tot pe stator. Aceast transformare corespunde echivalrii mainii trifazate cu una bifazat, abordare foarte folosit pentru simplificarea analizei mainii. Transformata Clarke este descris de matricea de transformare din (6.15). Matricea este 3x3, ceea ce nseamn c n urma transformrii rezult 3 componente, i nu dou, componentele /. Cea de-a treia component este secvena de zero i este de obicei nul, deoarece suma celor 3 cureni din nfurrile unui motor este nul dac punctul neutru al motorului (punctul de conectare n stea) este izolat. A doua transformare, transformarea Park, conduce de la sistemul de coordonate /, fix, legat de stator, la un sistem de coordonate tot bifazat, dar legat de rotor, rotindu-se sincron cu acesta, q/d. Transformarea Park este dat de matricea din (6.16). Se observ din (6.16) c secvena de zero rmne nemodificat prin transformarea Park i nu influeneaz celelalte componente. Dac se efectueaz calculele, se poate verifica faptul c transformarea iniial este echivalent cu transformrile Clarke i Park efectuate succesiv, adic se verific (6.17).
1 2 C = 0 3 1 2 1 2 3 2 1 2 1 2 3 2 1 2 cos P = sin 0 sin cos 0 0 0 1

(6.15)

(6.16)

Ks = P C

(6.17)

Transformrilor directe le corespund transformri inverse, date de inversele matricelor prezentate: (6.18), (6.19), (6.20).Din nou, se poate arta c se verific (6.21).
cos 1 sin 2 2 ) sin( ) 1 = cos( 3 3 cos( + 2 ) sin( + 2 ) 1 3 3
cos = sin 0 sin
cos 0 0 0 1

K s1

(6.18)

C 1

1 1 = 2 1 2

0 1 3 1 2 3 1 2

(6.19)

(6.20)

K s1 = C 1 P 1

(6.21)

Aadar, motorul PMSM cu rotor rotund poate fi modelat foarte convenabil n sistemul de coordonate q/d, fiind descris de ecuaiile electrice (6.9), (6.10) (ecuaia (6.11) poate fi ignorat, deoarece componenta secven de zero este nul), de ecuaia de cuplu (6.13) i de ecuaia mecanic (6.4). Se observ c ecuaiile (6.13) i (6.4) sunt liniare. Ecuaiile (6.9) i (6.10) sunt neliniare, existnd un cuplaj ntre componentele q i d. 6.2 Proiectarea sistemului de control al vitezei pentru motorul PMSM Aa cum motorul se modeleaz uor n sistemul de coordonate q/d, i sistemul de control se modeleaz n acelai sistem. Dar din cauz c motorul este controlat prin intermediul tensiunilor aplicate pe cele trei faze, iar bucla de reacie folosete senzori pentru a msura curenii ce trec prin cele trei nfurri, algoritmul de control trebuie s efectueze transformrile ntre sistemul de coordonate trifazat fixat pe stator i sistemul de coordonate bifazat rotitor sincron cu rotorul n timp real. n sistemul de coordonate q/d ecuaiile electrice ale motorului descriu funcii de transfer de ordinul I, dac se elimin cuplajul ce apare ntre cele 2 axe i componenta datorat tensiunii electromotoare induse. Cel mai adesea sunt folosite regulatoare simple de tip PI (proporionalintegrator) pentru controlul curenilor prin motor [149]. Conform (6.4), viteza este controlat prin intermediul cuplului electromagnetic, iar acesta este controlat, conform (6.13), controlnd componenta de pe axa q a curentului. Curentul pe axa d este meninut la 0 (zero) pentru viteze 58

mai mici dect viteza nominal a motorului. Curenii pe axele q i d sunt controlai prin intermediul tensiunilor pe axele q i d, conform (6.9) i (6.10). Algoritmul de control trebuie s compenseze cuplajul dintre cele dou axe ce apare n aceste ecuaii, precum i componenta datorat tensiunii electromotoare induse ce apare n (6.9). Din cauz c de obicei momentul de inerie al motorului are valori mult mai mari dect factorul de friciune, fcndu-l pe acesta din urm practic neglijabil, partea mecanic a motorului are o comportare aproape de a unui integrator, ceea ce face dificil alegerea parametrilor unui regulator PI pentru vitez. Din acest motiv, n literatur s-a propus utilizarea unui regulator cu bucl dubl de reacie, de tip PI-P [150]. Aceast abordare mbuntete performanele sistemului, cu dezavantajul creterii complexitii algoritmului de control. Metoda de control a motoarelor sincrone n spaiul q/d este cunoscut sub denumirea de control orientat dup cmp (FOC Field Orientated Control) sau control vectorial [153]. Fig. 6.3 prezint schema bloc a sistemului de control al vitezei pentru motorul PMSM, aa cum rezult n urma discuiei din paragrafele de mai sus. Motorul este alimentat de o punte invertoare trifazat (VSI). Aceasta este controlat prin modulaie bazat pe vectori spaiali (SVM sau SVPWM), iar algoritmul de modulaie folosete componentele / ale tensiunii de referin. Pentru reacie, pe lng curenii ce trec prin nfurrile motorului, se folosete informaia despre poziia rotorului derivat cu ajutorul unui codificator optic cu ieiri digitale n cuadratur. Ieirile acestuia (cele dou semnale n cuadratur i un impuls de index) sunt prelucrate pentru a obine unghiul i viteza rotorului, ambele necesare n algoritmul de control.
Figura 6.3. Schema de control al vitezei pentru motorul PMSM.

6.2.1 Alegerea parametrilor pentru regulatoarele de curent Pentru ambele regulatoare de curent s-a aplicat aceeai metod de proiectare analitic. Se va prezenta aadar detaliat doar proiectarea regulatorului pentru curentul de pe axa q. Dup decuplare, ce echivaleaz cu eliminarea termenilor ce conin r din ecuaia (6.9), aceasta devine o ecuaie diferenial liniar de ordinul I. Considernd curentul ca variabil de ieire i tensiunea ca variabil de intrare i aplicnd transformata Laplace, din (6.9) se deriv funcia de transfer echivalent prii electrice a motorului pe axa q, conform (6.22). Punnd funcia de transfer a regulatorului PI sub forma (6.23), parametrul i se va alege astfel nct s compenseze polul funciei Gq (s) , ca n (6.24). Funcia de transfer n bucl nchis se reduce la (6.25). Aceast funcie de transfer descrie un element de ntrziere de ordinul I i poate fi ajustat pentru comportarea dorit a sistemului.
Gq ( s ) = 1+ 1 rs Lq rs

(6.22)
s

G PI ( s ) = K PI

is +1 is
1 1 qs +1

(6.23)

iq =

Lq rs

(6.24)

Gcq ( s ) =

iq rs
K PIq

= s +1

(6.25)

Perioada de eantionare a sistemului este dat de ctre frecvena purttoarei modulatorului SVM. Aceasta a fost fixat pentru experimente la 20kHz, rezultnd perioada de 59

eantionare dat de (6.26). Constanta de timp a sistemului n bucl nchis a fost aleas de 4 ori mai mare dect perioada de eantionare, rezultnd pentru parametrul K PI valoarea din (6.27). Asemntor, pentru regulatorul de curent de pe axa d rezult parametrii din (6.28), (6.29). Lq L L K PId = d (6.29) K PIq = (6.27) (6.28) id = d Ts = 50s (6.26) 4Ts 4Ts rs 6.2.2 Alegerea parametrilor pentru regulatorul de vitez Considernd c motorul PMSM are rotorul rotund, iar cuplul de ncrcare este constant n regim staionar (este vzut ca mrime de perturbaie, nu ca mrime de intrare), din (6.13) i (6.4) rezult funcia de transfer din (6.30) pentru partea mecanic a motorului, avnd la intrare curentul pe axa q i la ieire viteza. Dup cum se poate vedea i din Fig. 6.3, sistemul de control al vitezei conine dou bucle de reacie i dou regulatoare, unul de tip P i unul de tip PI. Sistemul de control se va proiecta deci n doi pai. Mai nti, regulatorul de tip P va poziiona polii sistemului n bucl nchis. Pentru alegerea factorului de amplificare al regulatorului P, notat cu K , se pleac de la funcia de transfer a sistemului n bucl deschis (6.31), considernd pentru partea electric funcia de transfer din (6.25). Avnd n vedere c >> q (datorit faptului c momentul de inerie al motorului este mult mai mare dect factorul de friciune, are valori foarte mari), rezult c se poate aproxima + q i funcia de transfer n bucl nchis devine cea din (6.32). Factorul de amplificare pentru regulatorul P se alege astfel nct funcia de transfer n bucl nchis s aib un pol dublu n s =
1 2 q

, rezultnd (6.33).

Urmtorul pas const n alegerea parametrilor regulatorului PI. Ca i la regulatorul de curent, parametrul i se va alege astfel nct s anuleze un pol al funciei Gc (s) , conform (6.34). Funcia de transfer n bucl deschis rmas este dat de (6.35). Rezult o funcie de transfer n bucl nchis (6.36) ce descrie un sistem de ordinul II. Factorul de amplificare K PI se determin n funcie de comportarea dorit a sistemului.
3P m K 4F G ( s ) = = J s +1 s +1 F

(6.30)

Go ( s ) = K

K 1 qs +1 s +1

(6.31)

K K Gc ( s ) =

q
s+

s +

K K

(6.32)

K =

J . (6.33) = 4 K q 3Pm q
K PI
2 4 q

i = 2 q (6.34)

G o1 ( s ) = K PI

1 i s(2 q s + 1)

(6.35)

G c1 ( s ) =

1 s +
2

1 2 q

s+

K PI
2 4 q

(6.36)

6.3 Validarea sistemului de control n continuu Sistemul de control proiectat conform seciunii anterioare a fost implementat n Simulink i verificat prin simulare, folosind un model al motorului PMSM din librria SimPowerSystems. S-au folosit parametrii motorului Pittman 3441 de 19.1V. Schema Simulink a sistemului de reglare n acest stadiu este prezentat n Fig. 6.4. Parametrii motorului sunt prezentai n Tabelul 6.1. Puntea invertoare ce alimenteaz motorul este nlocuit n acest stadiu al simulrii de surse controlate de tensiune tot din librria SimPowerSystems. Acestea primesc la intrare valori corespunznd celor trei tensiuni sinusoidale va, vb, vc. Se observ c sistemul de control realizeaz att transformarea direct din sistemul de coordonate trifazat legat de stator n sistemul de coordonate bifazat rotitor sincron cu rotorul, abc2qd, pentru a putea lucra n spaiul 60

q/d, ct i transformarea invers din sistemul de coordonate q/d n sistemul trifazat, qd2abc, pentru a putea comanda motorul. Aceste transformri se folosesc de poziia rotorului, prin funciile sin i cos aplicate unghiului msurat. Tabelul 6.1. Parametrii motorului PMSM. Trebuie precizat c unghiul msurat este unghiul Parametru Valoare rs mecanic al rotorului ( m ), iar acesta difer de unghiul electric 2.625 ohm Ld ( e ). Aceast diferen apare i n ceea ce privete viteza, i 0.00046 H Lq 0.00046 H este dat de numrul de poli magnetici ai rotorului conform (6.37), (6.38). n toate ecuaiile motorului s-au considerat Constanta 2.62 V/krpm mrimile electrice, deci acestea trebuie obinute de ctre de tensiune 9.9e-7 kg.m^2 sistemul de control din mrimile mecanice msurabile. innd J 0.175e-6 N.m.s cont de parametrii motorului, pentru regulatoarele de curent sF au obinut parametrii din (6.39), (6.40), conform (6.24), (6.26), 2 P (6.27). Factorii de amplificare pentru elementele proporional i integrator ale regulatoarelor rezult cei din (6.41), (6.42).

Figura 6.4. Schema Simulink a sistemului de reglare.

e =

P m 2

(6.37)

e =

P m . 2

(6.38)

iq = id = 0.00017524
K Iq = K Id = 13125

(6.39) (6.42)

K PIq = K PId = 2.3 (6.40)

K Pq = K Pd = 2.3 (6.41)

ntr-o prim faz de validare, regulatoarele de curent au fost testate separat, prin ntreruperea buclei de reglare a vitezei i impunerea unei referine de curent. n a doua faz de validare, a fost simulat i bucla de reglare a vitezei. Parametrii regulatoarelor au fost determinai innd cont de parametrii motorului. Astfel, pentru bucla intern, pentru factorul de amplificare al regulatorului de tip P rezult, conform (6.33), valoarea din (6.43). Pentru bucla extern, pentru parametrul i rezult, conform (6.34), valoarea din (6.44). Parametrul K PI se alege (a se vedea (6.45)) astfel nct sistemul n bucl nchis rezultat s aib un timp de cretere de aproximativ 15ms la o comand de tip treapt. n aceste condiii, sistemul rezultat este de ordin II, avnd poli reali n s=-330 i s=-2523, deci cu un pol dominant. Rezult pentru regulatorul PI parametrii din (4.46), (4.47).
K = 0.0571

(6.43)

i = 0.00035048

(6.44)

K PI = 0.1024

(6.45)

61

K P = 0.1024

(6.46)

K I = 256

(6.47)

Rspunsul la treapt al sistemului de reglare a vitezei simulat n Simulink este prezentat n Fig. 6.8. 6.4 Discretizarea sistemului de control Deoarece sistemul de control va fi implementat numeric pe un dispozitiv FPGA, acesta trebuie discretizat n timp, iar semnalele din sistem vor trebui discretizate n amplitudine. Aa cum s-a menionat, pentru perioada de eantionare a sistemului a fost aleas valoarea Ts = 50s , n concordan cu frecvena semnalului purttor PWM. Aceasta nu poate fi foarte nalt, fiind limitat de frecvena de comutaie a tranzistoarelor de putere din componena punii invertoare. Regulatoarele PI au fost discretizate folosind aproximarea de tip trapez (metoda Tustin), fiind descrise n timp discret de ecuaia cu diferene (6.48), unde este intrarea regulatorului, iar u este ieirea.
Figura 6.8. Rspunsul sistemului simulat la o comand de tip treapt de vitez.

Deoarece sistemul de control are acces la curenii prin cele 3 nfurri statorice, dar controlul se realizeaz pe baza curenilor n sistemul de coordonate q/d, acesta trebuie s realizeze transformrile de coordonate din sistemul trifazat fixat pe stator n sistemul bifazat rotitor sincron cu rotorul. Acestea sunt implementate prin dou transformri succesive, a/b/c la / (6.49) i / la q/d (6.50), conform celor prezentate n seciunea precedent. Deoarece sistemul de control aplic comanda motorului prin intermediul tensiunilor de pe cele 3 faze, acesta trebuie s realizeze i transformarea invers, din sistemul de coordonate q/d n sistemul trifazat. Cum tensiunile trifazate se aplic prin SVM, iar algoritmul de modulaie folosete reprezentarea bifazat / a vectorului spaial ca intrare, sistemul de control nu trebuie s realizeze dect transformarea de la q/d la /, conform (6.51). Aceasta este exact la fel cu transformarea direct, de la / la q/d, dat de (6.50), doar c se aplic tensiunilor. Blocul de decuplare a dependenei ntre curenii pe cele dou axe i de compensare a tensiunii electromotoare induse realizeaz operaiile din (6.52). Ecuaiile discrete ale regulatoarelor PI i P, precum i transformrile (6.49)-(6.51) i operaia de decuplare (6.52) au fost implementate folosind blocuri System Generator. S-a folosit reprezentarea n virgul fix, cu limitare la 18 bii pentru intrrile multiplicatoarelor i 24 de bii pentru celelalte operaii. Toate limitrile s-au fcut cu hardware suplimentar pentru saturaie n caz de depire, asigurndu-se comportarea corect a sistemului chiar i atunci cnd se ating limitele reprezentrii numerice.
u[k ] = ( K I Ts K T + K P ) [k ] + ( I s K P ) [k 1] + u[k 1] 2 2 iq [k ] = cos( e [k ])i [k ] + sin( e [k ])i [k ]; id [k ] = sin( e [k ])i [k ] cos( e [k ])i [k ]. v q _ dec [k ] = e [k ]id [k ]Ld + e [k ] m ; v d _ dec [k ] = e [k ]iq [k ]Lq .

(6.48)

1 i [k ] = 3 (2i a [k ] ib [k ] i c [k ]); i [k ] = 3 (ib [k ] i c [k ]), 3

(6.49)

(6.50)

v [k ] = cos( e [k ])v q [k ] + sin( e [k ])v d [k ]; (6.51) v [k ] = sin( e [k ])v q [k ] cos( e [k ])v d [k ].

(6.52)

62

Simularea a fost reluat, folosind o perioad de evaluare pentru blocul System Generator de 50s. n acest stadiu, algoritmul SVM a fost nlocuit cu transformarea de coordonate de la / la a/b/c. Partea de comand a motorului s-a pstrat la fel ca la simularea n continuu. Prin simulare, s-au obinut rezultate asemntoare cu cele obinute la simularea sistemului continuu. Totui, pentru a se valida procesul de discretizare, sistemul discret a fost simulat mpreun cu sistemul continuu, calculndu-se diferena ntre semnalele din sistemul continuu i cele din sistemul discret. Astfel, s-au evaluat erorile de discretizare (datorate erorilor de cuantizare, aproximrii integratoarelor prin metoda Tustin i extrapolatoarelor de ordin 0 (zero) de pe ieiri), iar acestea s-au dovedit acceptabile. Spre exemplu, pentru o schimbare de tip treapt a referinei de vitez de la 0rad/s la 200rad/s i o durat a simulrii de 0.5s, suficient pentru a se atinge regimul staionar, abaterea rdcin medie ptratic (RMSD Root Mean Square Deviation) de vitez (ntre viteza motorului controlat de sistemul discret i viteza controlat de sistemul continuu) este de aproximativ 0.25rad/s. Abaterea RMSD pentru curentul pe axa q este de aproximativ 0.008A. S-au efectuat simulri cu diferite formate de reprezentare pentru semnalele interne, cu precizii diferite. S-a constatat faptul c creterea preciziei la mai mult de 18 bii nu aduce avantaje vizibile, erorile de cuantizare fiind mult sub celelalte efecte ale procesului de discretizare. Scderea perioadei de eantionare ar mbunti comportarea sistemului discret, ns aceasta este limitat datorit pierderilor de comutaie din puntea invertoare. Dei blocurile System Generator sunt direct sintetizabile n hardware pe FPGA, iar sistemul de control rezultat n FPGA ar avea exact aceeai comportare ca i cel simulat (simularea fiind precis la nivel de bit i ciclu de tact), algoritmul nu poate fi implementat direct n aceast form din dou motive: 1. Algoritmul are nevoie de un semnal de tact cu frecvena de 20kHz, obinut din semnalul de tact global al sistemului de 50MHz; valorile de ieire ale algoritmului sunt verificate s fie valide sincron cu acest semnal de tact. Desigur, rezultatele sunt valide mult mai repede, n funcie de timpul de propagare pe nivelurile de logic combinaional ce implementeaz algoritmul, dar restul sistemului (n spe, algoritmul de modulaie SVM) ar trebui s se asigure c citete date valide. n plus, nu este recomandat s se foloseasc mai multe semnale de tact ntr-un sistem digital implementat pe FPGA, att din cauza problemelor de sincronizare, ct, mai ales, din cauza structurii dispozitivului FPGA, ce prevede trasee globale de rutare a tactului (n cazul n care exist mai multe semnale de tact, doar unul va putea folosi traseele speciale, celelalte trebuind s foloseasc trasee de uz general, nepotrivite pentru aceast utilizare). 2. n aceast form, algoritmul de control va utiliza resurse hardware independente pentru toate operaiile. n vreme ce acest lucru nu reprezint o problem major n ceea ce privete operaiile logice sau cele de adunare/scdere, este un inconvenient serios atunci cnd vine vorba despre resurse hardware limitate, ca multiplicatoarele integrate sau blocurile de memorie RAM. n plus, multe operaii depind de rezultatele altor operaii, deci ar putea folosi secvenial acelai hardware. Din aceste motive, algoritmul a fost factorizat i transformat ntr-un automat sincron pilotat de semnalul de tact global, pstrnd totui un grad nalt de paralelism pentru a asigura un timp de execuie foarte scurt. 6.5 Factorizarea i implementarea algoritmului de control Scopul procesului de factorizare este acela de a reorganiza algoritmul astfel nct s se utilizeze doar 4 multiplicatoare. Celelalte operaii vor fi efectuate de circuite hardware independente, dar multiplicatoarele reprezint o resurs critic n dispozitivele FPGA de cost sczut. De obicei, factorizarea se realizeaz folosind graful de fluen a datelor (DFG Data Flow Graph). Pentru algoritmul prezentat, graful de fluen este foarte complex, aa c aceast metod este greu de aplicat. S-a folosit n schimb o metod mai simpl i intuitiv: multiplicatoarele din fiecare bloc funcional implementat cu resurse System Generator au fost reprezentate i aliniate vertical n funcie de fluxul de date din bloc, iar blocurile au fost aliniate n funcie de dependena de date dintre ele. Astfel, a rezultat reprezentarea din Fig. 6.11. 63

nmulirile din blocul de decuplare ntre axe au fost aliniate cu cele din blocul regulatorului de vitez pentru a sublinia posibilitatea gruprii lor mpreun. Din Fig. 6.11 este evident c algoritmul poate folosi eficient 4 multiplicatoare, pstrnd un grad nalt de paralelism. Dei regulatorul de vitez nu are nevoie de valorile curenilor, ieirea lui nu poate fi folosit nainte ca acestea s fie disponibile. Aadar, nmulirile din regulatorul PI-P pot fi grupate mpreun cu cele din blocul de decuplare ntre axe fr a afecta timpul total de execuie.
Figura 6.11. Reprezentarea grafic pentru factorizarea nmulirilor.

Problema principal asociat cu utilizarea n comun a multiplicatoarelor de ctre mai multe blocuri funcionale const n creterea complexitii cii de date i a circuitului de control al ei. Astfel, fiecare din cele 2 intrri ale fiecrui multiplicator va fi conectat la un multiplexor 6 la 1. Cele 6 intrri corespund celor 6 utilizri posibile ale multiplicatorului. Circuitul de control al cii de date va controla intrrile de selecie ale multiplexoarelor i va salva valorile selectate n registrele de intrare ale multiplicatoarelor. Fiecare celul de multiplicare va avea deci structura din Fig. 6.12. Ieirea multiplicatorului se distribuie la toate blocurile funcionale ce-l utilizeaz. Circuitul de control al cii de date este responsabil cu salvarea rezultatului nmulirii n blocul funcional potrivit prin validarea registrului corespunztor. Ca i n cazul modulatoarelor prezentate n primele seciuni, circuitul de control al cii de date este o main de stri de tip Moore. Aceasta rmne n starea 0 (zero) pn cnd este activat, apoi trece necondiionat dintr-o stare n alta. n fiecare stare se activeaz una sau dou variabile de stare i se seteaz o anume combinaie de selecie pentru multiplexoarele celulelor de multiplicare. Circuitul de control nu face dect s secvenieze operaiile din blocurile funcionale. Operaii asociate cu unele blocuri se suprapun cu operaii asociate altor blocuri, executndu-se n paralel de ctre resurse hardware independente.
Figura 6.12. Celula de multiplicare ce permite utilizarea n comun a multiplicatorului.

Blocurile funcionale au fost transformate prin inserarea de registre dup fiecare operaie. Registrele sunt controlate prin intermediul intrrii de validare de ctre circuitul de control al cii de date. Astfel, fluxul de date al algoritmului este controlat sincron cu semnalul de tact global al sistemului. n 7 din cele 25 de stri ale automatului apar suprapuneri ntre blocuri, deci paralelism n execuie. Pentru exemplificare, n Fig. 6.14 este prezentat regulatorul de vitez PI-P. Se observ (cu magenta) legturile (de tip go to) ctre i de la celulele de multiplicare 1 i 2. Aa cum rezult din Fig. 6.11, celulele de multiplicare 3 i 4 (i 2 n pasul secund) sunt folosite n acelai timp de ctre blocul de decuplare ntre axe. Se mai observ semnalele (tot de tip go to, cu albastru deschis) de la circuitul de control al cii de date. n Fig. 6.14 sunt dou ci de date orizontale. Cea de mai jos se afl din punct de vedere al fluxului de date n continuarea celei de mai sus. Cea mai de sus reprezint regulatorul PI i implementeaz (6.48). Semnalul de intrare de eroare este calculat ca diferena ntre semnalul de referin pentru vitez i valoarea msurat a vitezei. Apoi, valoarea actual a erorii i valoarea de la momentul anterior de eantionare sunt 64

nmulite cu factorii corespunztori din (6.48) folosind celulele de multiplicare 1 i 2. Se folosesc blocuri de tip Reinterpret pentru a face reprezentarea numerelor transparent pentru multiplicatoare, deoarece reprezentarea numerelor (poziia virgulei fixe) difer ntre blocurile funcionale ce folosesc aceleai celule de multiplicare. De aceea, fiecare bloc trebuie s transmit celulelor de multiplicare numere ntregi fr virgul i s reinterpreteze rezultatul nmulirii poziionnd corect virgula. Rezultatele nmulirilor sunt adunate ntre ele, iar rezultatului i se adun valoarea ieirii de la momentul anterior de eantionare. n final, ieirea regulatorului PI, avnd nsemntatea fizic de vitez intermediar, este salvat n registrul Reg6. Calea de date din partea de jos este regulatorul P. Acesta calculeaz eroarea de vitez intermediar folosind viteza msurat i ieirea regulatorului PI, apoi o nmulete cu factorul de amplificare i o salveaz n registrul Reg8. Regulatorul P folosete tot celula de multiplicare 1. Toate operaiile sunt secveniate de semnalele provenite de la circuitul de control al cii de date, grupate n partea din stnga a Fig. 6.14. Aceeai idee este folosit n toate blocurile funcionale.

Figura 6.14. Implementarea n Simulink a regulatorului PI-P de vitez.

Algoritmul de control al vitezei pentru motorul PMSM se execut n doar 25 cicli de tact. n aceast faz, sistemul de control din Simulink poate fi implementat direct n FPGA, fiind sincron cu semnalul de tact global. Sistemul de control poate fi i simulat, rezultatele simulrii validnd corectitudinea pailor de factorizare i conceptul cale de date/automat de control. Totui, simularea n acest caz va dura foarte mult i va fi imposibil urmrirea unui numr mare de semnale, datorit pasului de simulare foarte fin, impus de perioada semnalului de tact global. Cum ns factorizarea nu afecteaz n niciun fel precizia algoritmului, nu ar trebui s existe diferene n comportarea sistemului fa de pasul anterior. 6.6 Interfaarea senzorilor 6.6.1 Senzorii de curent Schema de msurare a curenilor folosit n standul experimental se bazeaz pe msurarea cderii de tensiune pe rezistoare nseriate cu tranzistoarele inferioare ale punii invertoare trifazate. Dei simpl i economic din punctul de vedere al hardware-ului, ea necesit o sincronizare precis ntre momentele de msurare i starea punii invertoare. Pe scurt, algoritmul trebuie s se asigure c, n momentul eantionrii, curenii prin partea inferioar a punii sunt chiar curenii ce trec prin nfurrile motorului. Aceasta nseamn c ar trebui s se msoare curenii exact n timpul aplicrii vectorului spaial nul 000 de ctre modulatorul SVM. Cel mai potrivit moment de eantionare ar fi chiar vrful de jos al semnalului purttor PWM (triunghiular) utilizat n SVM. Sincronizarea exact cu vrful de jos al semnalului PWM este posibil doar dac eantionarea se realizeaz n perioada de eantionare anterioar celei n care se execut algoritmul de control. Aceast metod este preferat n cazul implementrii algoritmului de control pe procesoare (microcontroler sau DSP), deoarece durata de execuie a algoritmului este comparabil cu perioada de eantionare. n cazul implementrii pe FPGA, datorit eficienei crescute a structurii de calcul proiectate special pentru aplicaie, timpul de calcul este foarte mic 65

n comparaie cu perioada de eantionare. Se va cuta deci folosirea n algoritm a valorilor curenilor din aceeai perioad de eantionare. Acest lucru se poate realiza impunnd o mic limitare amplitudinii vectorului spaial, pentru a asigura o durat de timp suficient n care se aplic vectorul nul 000. Schema de msurare a curentului printr-o faz a motorului este prezentat n Fig. 6.15. Cderea de tensiune pe rezisten este amplificat, apoi polarizat i scalat pe placa punii trifazate. Apoi este achiziionat cu ajutorul unui convertor analog/numeric (CAN) cu interfa serial rapid de tipul ADCS7476. S-a folosit un automat de stri pentru a implementa interfaa serial cu convertorul i pentru a secvenia operaiile aritmetice necesare transformrii codului citit de la CAN n valoarea corespunztoare a curentului.
Figura 6.15. Schema de msurare a curentului printr-o faz a motorului.

6.6.2 Msurarea unghiului i a vitezei Msurarea unghiului i a vitezei se realizeaz prin intermediul unui codificator cu ieiri n cuadratur (QEP Quadrature Encoded Pulse). Acesta se bazeaz pe doi detectori optici ce urmresc o band cu 500 de linii. Numrul de linii stabilete rezoluia codificatorului. Avantajul codificatorului cu ieiri QEP const n faptul c se interfaeaz direct cu circuite digitale i ofer o rezoluie destul de bun, cu costuri mai mici dect un codificator absolut sau dect un rezolver analogic. Totui, extragerea informaiei de unghi i vitez este ceva mai complicat. Aceasta se realizeaz ns eficient prin proiectarea de hardware dedicat implementat n FPGA. Cum algoritmul de control nu necesit cunoaterea unghiului (poziiei) rotorului, ci folosete valorile funciilor trigonometrice sin i cos aplicate unghiului pentru realizarea transformrilor de coordonate, ieirile circuitului de msurare a unghiului sunt de fapt valorile pentru sin i cos. Acestea sunt determinate folosind o singur memorie ROM ce pstreaz eantioane ale funciei sin. Problema msurrii unghiului se reduce la acumularea numrului de impulsuri QEP folosind un numrtor reversibil (bidirecional). Direcia de numrare este dat de un circuit de detecie a direciei de rotaie a motorului. Acesta stabilete direcia de rotaie n funcie de direcia defazajului ntre cele dou canale QEP. Cum motorul folosit n experimente are 2 perechi de poli, unghiul electric folosit n transformri va fi dublul unghiului mecanic msurat, conform (6.37). Aadar, ultimul bit al ieirii numrtorului ce d unghiul este ignorat la adresarea memoriei, aceasta necesitnd un numr njumtit de eantioane. Deci, innd cont de rezoluia codificatorului, memoria ROM necesit doar 1000 de locaii, fiind implementat ntr-un singur bloc de memorie RAM pe FPGA. Rezoluia eantioanelor s-a ales de 18 bii, innd cont de organizarea memoriei RAM n FPGA. Circuitul de msurare a unghiului este controlat de un automat Moore ce secveniaz operaiile necesare extragerii att a eantionului pentru sin, ct i pentru cos. Memoria este accesat de dou ori, mai nti folosind o adres derivat direct din ieirea numrtorului, i apoi folosind adresa modificat prin adunarea valorii 500, corespunztoare unui defazaj de 90. O serie de alte operaii aritmetico-logice asigur comportarea corect a circuitului i atunci cnd apare depire la operaia de obinere a adresei pentru cos. Msurarea vitezei se bazeaz pe metoda msurrii perioadei dintre dou fronturi consecutive ale semnalelor QEP. Aceast metod este cunoscut n literatur [154] sub denumirea de metoda T, spre deosebire de metoda msurrii frecvenei semnalelor QEP (metoda M) prin numrarea fronturilor ce apar ntr-o unitate de timp. Metoda M, folosit n studiul de caz din Subcapitolul 3.4.3 este mai puin potrivit aici datorit faptului c perioada de eantionare a sistemului de control este destul de mic, comparabil cu perioada semnalelor QEP, ceea ce ar conduce la erori semnificative de msurare [155]. La metoda T, erorile de msurare sunt 66

acceptabile pe ntreaga plaj a vitezei motorului, ce este limitat la aproximativ 7000 de rotaii pe minut (RPM). Calcularea vitezei prin metoda T necesit o operaie de mprire. Aceasta a fost implementat folosind un nucleu IP din System Generator, Divider Generator 3.0. Operaia de mprire este destul de costisitoare n ceea ce privete timpul de execuie, necesitnd 30 de cicli de tact la o precizie a rezultatului de 18 bii. Aceast laten nu va afecta ns timpul de execuie al algoritmului de control, deoarece calcularea vitezei se realizeaz sincron cu apariia fronturilor semnalelor QEP, nu cu nceperea unei noi perioade de eantionare pentru algoritmul de control. S-ar putea folosi un alt circuit, mai rapid, pentru operaia de mprire [157], ns Divider Generator 3.0 are avantajul integrrii uoare n restul sistemului proiectat cu System Generator i al adaptrii rapide la necesitile computaionale (numr de bii ai operanzilor). Circuitul de msurare a vitezei, precum i cel de calculare a funciilor trigonometrice asociate cu poziia rotorului au fost implementate folosind tot Simulink i System Generator i verificate prin simulare separat, nainte de a fi integrate cu algoritmul de control. 6.7 Implementarea n FPGA i rezultate experimentale Sistemul de control prezentat n paragrafele de mai sus a fost integrat cu modulatorul SVM, sintetizat i implementat ntr-un FPGA Spartan-3E XC3S500E. Pe lng algoritmul de control i hardware-ul de interfaare cu senzorii, n FPGA s-a implementat i un analizor logic virtual ChipScope, folosit pentru a captura semnalele interne ale sistemului. Nucleul ChipScope este pilotat de un semnal de tact cu frecvena de 20kHz, astfel c semnalele capturate pot fi folosite pentru a observa comportarea sistemului de control n perioadele de eantionare. Sistemul de control proiectat este sincron, folosind un semnal de tact de 50MHz. Algoritmul de control are nevoie de 25 de cicli de tact pentru a-i termina execuia, iar algoritmul SVM de 8 cicli de tact. Aceasta nseamn c toate calculele, ncepnd cu transformrile de axe, continund cu regulatoarele i sfrind cu modulaia SVM, sunt efectuate n doar 33 de cicli de tact, adic n 0.66s. Totui, innd cont c achiziia valorilor curenilor se face folosind un CAN cu interfa serial, iar citirea acestuia necesit 74 de cicli de tact, timpul total de execuie a unei iteraii a algoritmului este de 107 cicli de tact, adic 2.14s. Acesta este totui foarte scurt fa de perioada de eantionare de 50s. Datorit timpului foarte scurt de execuie a algoritmului de control, achiziia datelor, prelucrarea i aplicarea comenzii se pot efectua n aceeai perioad de eantionare. Acest lucru este cu deosebire important datorit metodei de msurare a curenilor prin motor: acetia pot fi msurai doar pe perioada aplicrii vectorului nul 000 de ctre modulatorul SVM. Aadar, pentru a putea executa algoritmul de control n aceeai perioad de eantionare cu achiziia curenilor, vectorul nul 000 trebuie aplicat pe ntreaga durat a acestor operaii. Datorit faptului c operaiile dureaz foarte puin (mai puin de 5% din perioada de eantionare) limitarea impus amplitudinii vectorului spaial (astfel nct durata aplicrii vectorului nul 000 s acopere timpul de efectuare a operaiilor) este foarte mic, neafectnd comportarea per ansamblu a sistemului de reglare a vitezei. Resursele ocupate de ctre sistemul de control implementat pe FPGA sunt prezentate n Tabelul 6.1. Frecvena maxim la care poate lucra circuitul este de 77MHz. Tabelul 6.1. Resursele ocupate n Spartan-3E XC3S500E de sistemul de control al vitezei. LUT-uri Bistabili de tip D Felii logice Multiplicatoare Blocuri RAM 2679 din 9312 2655 din 9312 2211 din 4656 11 din 20 1 din 20 (5%) (28%) (29%) (48%) (55%) Dup implementare, sistemul de control a fost testat experimental folosind o punte invertoare trifazat Technosoft PM50 i un motor PMSM Pittman 3441 de 19.1V. Ca i validarea prin simulare, testarea experimental s-a efectuat n 2 pai. Mai nti s-a verificat comportarea regulatoarelor de curent prin ntreruperea buclei de control a vitezei i impunerea unei referine de curent. Rspunsul sistemului la o schimbare de tip treapt a referinei de curent pe axa q, de la 0A la 0.75A este prezentat n Fig. 6.17, aa cum a fost capturat de analizorul ChipScope pe 67

FPGA i reprezentat grafic pe calculator folosind software-ul ChipScope Pro Analyzer. Se observ rspunsul caracteristic unui sistem de ordinul I, cu un timp de cretere de aproximativ 0.8ms, n perfect concordan cu rezultatele obinute la simulare. n Fig. 6.18 este prezentat comportarea sistemului de reglare a curentului la o schimbare a referinei de la +0.25A la -0.5A. Se observ c curentul controlat, cel de pe axa q, reprezentat cu verde, urmrete referina (reprezentat cu rou). Curenii prin cele trei nfurri au forme de und sinusoidale. Se observ c forarea unei valori negative a curentului pe axa q provoac schimbarea direciei de rotaie a motorului, deductibil din formele de und ale curenilor pe cele 3 faze.
Figura 6.17. Rspunsul sistemului la o treapt de curent.

Figura 6.18. Curenii pe cele trei faze i curentul pe axa q la o treapt negativ a referinei.

Dup ce s-a verificat funcionarea corect a regulatoarelor de curent, s-a nchis bucla de control al vitezei i s-a testat ntregul sistem. n Fig. 6.19 este prezentat comportarea sistemului la aplicarea unei trepte pe semnalul de referin a vitezei de la 200rad/s la 400rad/s. Se observ caracteristica unui sistem de ordin II cu poli reali, cu un timp de cretere de aproximativ 15ms, n perfect concordan cu rezultatele obinute prin simulare (a se vedea Fig. 6.8). Aadar, sistemul de control implementat fizic respect ntru totul comportarea sistemului modelat i simulat n Simulink. Acest lucru confirm validitatea metodei de proiectare propus de aceast lucrare: proiectarea n Simulink, folosind blocuri System Generator, a sistemelor de control implementate n FPGA.
Figura 6.19. Rspunsul sistemului la o treapt de vitez.

6.8 Concluzii Acest capitol confer o finalitate celor precedente. Prin latura mai mult aplicativ justific prezentarea metodelor de proiectare din capitolele anterioare, utilizndu-le n cel mai 68

nalt grad. Prin complexitatea aplicaiei alese i rezultatele experimentale obinute, justific afirmaiile emise privind locul dispozitivelor FPGA n proiectarea sistemelor de control automat moderne. Meritele acestui capitol nu sunt legate doar de partea aplicativ, original i performant. Trebuie subliniat faptul c paii urmai n proiectarea sistemului de control al vitezei motorului PMSM constituie o metodologie de proiectare pentru orice sistem automat implementat n FPGA. Proiectarea n mediul Simulink a sistemului de reglare, apoi implementarea lui cu blocuri System Generator, factorizarea algoritmului i proiectarea sistemului sincron dup paradigma automat cu cale de date conduc n mod cert la obinerea unui sistem de control funcional i performant. Avantajul principal al metodei este viziunea de ansamblu a sistemului ca ntreg. Astfel, sistemul de control implementat n FPGA se poate simula mpreun cu modele verificate, de librrie, ale proceselor controlate. Rafinarea algoritmului de control poate fi validat fa de o implementare la nivel de principiu. Iar sistemul de control implementat n hardware pe FPGA se va comporta exact ca i cel simulat. Prin exemplele prezentate, s-au pus n eviden clar avantajele folosirii dispozitivelor FPGA fa de sistemele cu procesor (microcontroler sau DSP): n FPGA se pot implementa circuite hardware specifice aplicaiei, care s efectueze eficient anumite operaii (de exemplu, circuitele de interfaare cu semnalele QEP, de msurare a vitezei, de obinere a funciilor trigonometrice). n FPGA se poate profita din plin de paralelismul inerent algoritmului de implementat, scurtndu-se la minimum timpul de execuie. n FPGA, precizia cu care se efectueaz calculele este la latitudinea proiectantului, nefiind supus constrngerilor legate de o arhitectur fix de procesare. De altfel, chiar atunci cnd se folosete un procesor DSP pentru implementarea algoritmului de control, acesta trebuie de obicei asistat de un circuit logic programabil, adesea CPLD, pentru implementarea unor structuri hardware complementare, a cror funcionalitate nu poate fi obinut prin software. De exemplu, n [160] se folosete un CPLD pentru inserarea timpului mort n comanda tranzistoarelor. Aa cum rezult din exemplul sistemului de control al vitezei motorului PMSM, timpul de execuie obinut pentru algoritm este extraordinar de scurt, valoarea mrimii de comand fiind obinut aproape instantaneu. Acest lucru conduce la posibilitatea creterii frecvenei de eantionare, deci a limii de band a sistemului de control. Totui, frecvena de eantionare se poate s fie limitat de ali factori din sistem, cum este frecvena de comutaie a tranzistoarelor de putere n aplicaia prezentat. Chiar n acest caz, timpul de execuie scurt se dovedete extraordinar de avantajos. Dei exist numeroase alte implementri ale unor algoritmi asemntori n FPGA, dup cum se poate vedea din seciunea 2.4, cea prezentat aici este original i avantajoas din mai multe puncte de vedere: Folosete un numr redus de multiplicatoare; spre exemplu, abordrile prezentate n [41], [42], [50] utilizeaz numere de ordinul zecilor de multiplicatoare pentru implementarea algoritmului, n vreme ce sistemul dezvoltat aici folosete doar 4; Propune o abordare integrat n Simulink pentru proiectare, validare i definitivare a conceptului dup paradigma FSMD; Folosete o versiune optimizat din punctul de vedere al cerinelor computaionale a algoritmului de modulaie SVM, foarte eficient la implementare n FPGA; Folosete o schem hardware avantajoas din punctul de vedere al costurilor pentru msurarea curenilor, impunnd o mic limitare algoritmului SVM. Sistemul de control al vitezei motorului PMSM va fi publicat n [161].

69

7.

Concluzii generale

Aceast lucrare abordeaz domeniul proiectrii sistemelor de control pentru motoare electrice folosind dispozitive FPGA, domeniu de mare actualitate, situat la confluena dintre automatic, inginerie electric i ingineria calculatoarelor. Pe parcursul elaborrii lucrrii s-au ncercat diferite unelte i metode de proiectare pentru FPGA, ncepnd de la metodele clasice bazate pe captur de schem logic i descriere n limbaj HDL i terminnd cu metodele moderne bazate pe mediul Simulink. De asemenea, s-au combinat aceste metode de proiectare i s-au utilizat unelte de simulare multiple. S-au definit i abordat diferite studii de caz n controlul motoarelor electrice, de complexiti diferite, folosind ca pretexte pentru explorarea spaiului de proiectare. Toate problemele de proiectare propuse au fost finalizate prin realizarea de bancuri experimentale (cu unelte de laborator didactic, de performane i costuri reduse, dar perfect valide) i verificarea prin experimente reale a rezultatelor. Aceast multitudine de studii de caz rezolvate, culminnd cu cel al controlului orientat dup cmp al motorului sincron cu magnei permaneni, a condus la formularea unei metodologii de proiectare i validare a sistemelor de control bazate pe FPGA, folosind mediul Simulink. Dei lucrarea are un pronunat caracter aplicativ, ea aduce i o serie de contribuii teoretice: Prezentarea sintetic a arhitecturilor familiilor de dispozitive FPGA actuale ale principalilor 2 mari productori, Altera i Xilinx; Realizarea unei treceri n revist concludente a sistemelor de control pentru motoare electrice bazate pe FPGA din literatura recent din domeniu; Prezentarea succint a uneltei software Xilinx System Generator, ce permite proiectarea n mediul Simulink de structuri hardware implementabile n FPGA; Derivarea de structuri de tip filtru digital cu rspuns infinit la impuls pentru algoritmii de control deadbeat i PI, structuri uor de implementat n hardware; Sintetizarea din mai multe surse bibliografice a unor consideraii privind optimizarea de structuri hardware pentru proiectarea de procesoare soft n FPGA; Analiza modulaiei PWM sinusoidale cu injecie de semnal triunghiular la punctul neutru din punctul de vedere al implementrii n hardware; Analiza algoritmului de modulaie bazat pe vectori spaiali din punctul de vedere al implementrii n hardware; Prezentarea succint a modelrii motorului sincron cu magnei permaneni n sistemul de coordonate rotitor sincron cu rotorul; Proiectarea unui sistem de control orientat dup cmp pentru motorul PMSM, incluznd alegerea parametrilor regulatoarelor de curent i vitez prin metoda alocrii polilor; Proiectarea original a algoritmului de control dup paradigma automat cu cale de date; Trasarea unei metodologii de proiectare a sistemelor de control bazate pe FPGA urmrind paii urmtori: modelarea n continuu, discretizarea i evaluarea abaterii fa de modelul continuu, factorizarea algoritmului de control, reproiectarea acestuia dup paradigma automat cu cale de date, verificarea experimental folosind un analizor logic virtual. Dintre contribuiile aplicative, merit amintite: Realizarea unui sistem de control al vitezei motorului de curent continuu prin includerea acestuia ntr-o bucl cu calare pe faz proiectat n mod original pe un dispozitiv FPGA; Realizarea n FPGA a unui sistem pentru controlul vitezei motorului de curent continuu bazat pe algoritmul deadbeat; Realizarea a diferite module hardware pentru controlul motorului de curent continuu fr perii, validarea acestora prin combinarea mai multor metode de 70

simulare i integrarea ntr-un sistem funcional pe FPGA; Realizarea unui sistem pe un cip FPGA coninnd att elemente hardware, ct i software rulnd pe procesoare soft; Realizarea pe FPGA a unui modulator PWM sinusoidal cu injecie de semnal triunghiular la punctul neutru; s-a respectat principiul modularitii, unele module fiind reutilizate ulterior; Realizarea pe FPGA a unui modulator bazat pe vectori spaiali, optimizat din punctul de vedere al complexitii computaionale, toate calculele executndu-se n doar 160ns; Reproiectarea etajului de ieire al modulatorului astfel nct s se ating o rezoluie de 16 bii; Validarea prin simulare a sistemului de control orientat dup cmp pentru motorul PMSM att n continuu, ct i dup discretizare; Factorizarea algoritmului de control i implementarea sa ca automat cu cale de date; Proiectarea n FPGA de interfee originale pentru senzorii de curent i de poziie/vitez; Realizarea n FPGA a sistemului de control orientat dup cmp pentru motorul PMSM, coninnd 4 bucle de reglare i executndu-se n doar 2.14s. Rezultatele obinute au fost diseminate prin publicarea a 14 lucrri: [102], [103], [105], [109], [110], [111], [121], [122], [143], [144], [145], [146], [157], [161]. S-a atins, aadar, prin rezultatele conexe acestei teze, scopul enunat n titlul ei: acela de proiectare de sisteme de control ncorporate pentru procese rapide folosind dispozitive FPGA. Dei motorul electric nu are o dinamic foarte rapid, avnd un timp de rspuns de ordinul milisecundelor, procesele electrice din motor sunt foarte rapide, cu timpi de rspuns de ordinul zecilor de microsecunde. La fel de important ca i realizarea propriu-zis a unui sistem de control performant este i formularea unei metodologii de proiectare a sistemelor de control cu FPGA, metodologie bazat pe utilizarea software-ului System Generator pentru validare i pe reproiectarea algoritmului de control dup paradigma automat cu cale de date. Avnd n vedere c dispozitivele FPGA evolueaz mereu, puterea lor virtual de calcul fiind fantastic, s-ar putea formula cteva direcii de cercetare pe viitor: Abordarea unor metode de reglare bazate pe algoritmi i mai compleci, de exemplu algoritmi adaptivi pentru estimarea unor parametri necunoscui; Abordarea unor procese mai rapide, pur electrice, cum ar fi controlul convertoarelor DC-DC; Controlul multi-sistem; Folosirea unor tehnici care s creasc cantitatea de date procesate, cum ar fi supraeantionarea (oversampling).

8.

Bibliografie selectiv

[1] Highlights of IEEE Trans. on Industrial Electronics, available online: http://tie.ieee-ies.org/tie/Highlights2.pdf. [2] De Carlo S., Reifman S.Z., Wang J.I., Zajac B., Cele mai bune companii din lume, Forbes Romnia, nr. 4, mai 2009. [4] Rodriguez-Andina J.J., Moure M.J., Valdes M.D., Features, design tools and application domains of FPGAs, IEEE Transactions on Industrial Electronics, vol. 54, no. 4, august 2007. [5] Woods R., McAllister J., Lightbody G., Yi Y., FPGA-based implementation of signal processing systems, John Wiley and Sons, 2008. [7] Trimberger S., Redefining the FPGA for the next generation, International Conference on Field Programmable Logic and Applications, FPL 2007, Amsterdam, Olanda, 71

august 2007. [11] Spartan 6 family overview, Xilinx, iunie 2009. [12] Spartan 6 FPGA configurable logic block user guide, Xilinx, iunie 2009. [13] Spartan 6 FPGA block RAM resources user guide, Xilinx, iunie 2009. [14] Spartan 6 FPGA DSP48A1 slice user guide, Xilinx, august 2009. [19] Monmasson E., Cirstea M.N., FPGA design methodology for industrial control systems a review, IEEE Transactions on Industrial Electronics, vol. 54, no. 4, august 2007. [23] Hilaire T., Menard D., Sentieys O., Bit accurate roundoff noise analysis of fixed point linear controllers, IEEE International Symposium on Computer-Aided Control System Design, CACSD 2008, San Antonio, Texas, SUA, septembrie 2008. [24] Grandpierre T., Lavarenne C., Sorel Y., Optimized rapid prototyping for realtime embedded heterogeneous multiprocessors, Proceedings of International Workshop on Hardware/Software Co-Design, CODES 99, Roma, Italia, mai 1999. [25] Dubey R., Agarwal P., Vasantha M.K., Programmable logic devices for motion control a review, IEEE Transactions on Industrial Electronics, vol. 54, no. 1, februarie 2007. [26] Naouar M.-W., Monmasson E., Naassani A.A., Slama-Belkhodja I., Patin N., FPGA-based current controllers for AC machine drives a review, IEEE Transactions on Industrial Electronics, vol. 54, no. 4, august 2007. [27] Cirstea M.N., Dinu A., A VHDL holistic modeling approach and FPGA implementation of a digital sensorless induction motor control scheme, IEEE Transactions on Industrial Electronics, vol. 54, no. 4, august 2007. [28] Kung Y.-S., Tsai M.-H., FPGA-based speed control IC for PMSM drive with adaptive fuzzy control, IEEE Transactions on Power Electronics, vol. 22, no. 6, noiembrie 2007. [29] Mic D., Oniga S., Micu E., Lung C., Complete hardware / software solution for implementing the control of the electrical machines with programmable logic circuits, Proceedings of the 11th International Conference on Optimization of Electrical and Electronic Equipment, OPTIM 2008, Braov, Romania, mai 2008. [30] Lis J., Kowalski C.T., Orlowska-Kovalska T., Sensorless DTC control of the induction motor using FPGA, Proceedings of the 2008 IEEE International Symposium on Industrial Electronics, ISIE 2008, Cambridge, UK, iunie-iulie 2008. [31] Kung Y.-S., Fung R.-F., Tai T.-Y., Realization of a motion control IC for x-y table based on novel FPGA technology, IEEE Transactions on Industrial Electronics, vol. 56, no. 1, ianuarie 2009. [32] Astarloa A., Lazaro J., Bidarte U., Jimenez J., Zuloaga A., FPGA technology for multi-axis control systems, Mechatronics, vol. 19, no. 2, martie 2009. [33] Huang H.-C., Tsai C.-C., FPGA implementation of an embedded robust adaptive controller for autonomous omnidirectional mobile platform, IEEE Transactions on Industrial Electronics, vol. 56, no. 5, mai 2009. [34] Sathyan A., Milivojevic M., Lee Y.-J., Krishnamurthy M., Emadi A., An FPGAbased novel digital PWM control scheme for BLDC motor drives, IEEE Transactions on Industrial Electronics, vol. 56, no. 8, august 2009. [35] Idkhajine L., Prata A., Monmasson E., Naouar M.-W., System on chip controller for electrical actuator, Proceedings of the 2008 IEEE International Symposium on Industrial Electronics, ISIE 2008, Cambridge, UK, iunie-iulie 2008. [36] Idkhajine L., Monmasson E., Naouar M.W., Prata A., Bouallaga K., Fully integrated FPGA-based controller for synchronous motor drive, IEEE Transactions on Industrial Electronics, vol. 56, no. 10, octombrie 2009. [37] Das A., Banerjee K., Fast prototyping of a digital PID controller on a FPGA based soft-core microcontroller for precision control of a brushed DC servo motor, Proceedings of the 35th Annual Conference of the IEEE Industrial Electronics Society, IECON 2009, Porto, Portugalia, noiembrie 2009. 72

[38] Ben Salem A.K., Ben Othman S., Ben Saoud S., Litayem N., Servo drive system based on programmable SoC architecture, Proceedings of the 35th Annual Conference of the IEEE Industrial Electronics Society, IECON 2009, Porto, Portugalia, noiembrie 2009. [39] Litayem N., Ghrissi M., Ben Salem A.K., Ben Saoud S., Designing and building embedded environment for robotic control application, Proceedings of the 35th Annual Conference of the IEEE Industrial Electronics Society, IECON 2009, Porto, Portugalia, noiembrie 2009. [40] Paiz C., Hagemeyer J., Pohl C., Porrmann M., Rueckert U., Schulz B., Peters W., Boecker J., FPGA-Based Realization of Self-Optimizing Drive-Controllers, Proceedings of the 35th Annual Conference of the IEEE Industrial Electronics Society, IECON 2009, Porto, Portugalia, noiembrie 2009. [41] Carbone S., Delli Colli V., Di Stefano R., Figalli G., Marignetti F., Design and implementation of high performance FPGA control for permanent magnet synchronous motor, Proceedings of the 35th Annual Conference of the IEEE Industrial Electronics Society, IECON 2009, Porto, Portugalia, noiembrie 2009. [42] Idkhajine L., Monmasson E., Maalouf A., Fully FPGA-based sensorless control for AC drive using an Extended Kalman Filter, Proceedings of the 35th Annual Conference of the IEEE Industrial Electronics Society, IECON 2009, Porto, Portugalia, noiembrie 2009. [43] Hilairet M., Hannoun H., Marchand C., Design of an optimized SRM control architecture based on a hardware/software partitioning, Proceedings of the 35th Annual Conference of the IEEE Industrial Electronics Society, IECON 2009, Porto, Portugalia, noiembrie 2009. [44] Ben Othman S., Ben Salem A.K., Ben Saoud S., Hw acceleration for FPGAbased drive controllers, Proceedings of the 2010 IEEE International Symposium on Industrial Electronics, ISIE 2010, Bari, Italia, iulie 2010. [45] Ungurean A., Coroban-Schramel V., Boldea I., Sensorless control of a BLDC PM motor based on I-f starting and Back-EMF zero-crossing detection, Proceedings of the 12th International Conference on Optimization of Electrical and Electronic Equipment, OPTIM 2010, Braov, Romania, mai 2010. [46] Maragliano G., Marchesoni M., Vaccaro L., FPGA Implementation of a Sensorless PMSM Drive Control Algorithm Based on Algebraic Method, Proceedings of the 2010 IEEE International Symposium on Industrial Electronics, ISIE 2010, Bari, Italia, iulie 2010. [47] Bahri I., Monmasson E., Verdier F., Ben Khelifa M.E.-A., SoPC-based current controller for permanent magnet synchronous machines drive, Proceedings of the 2010 IEEE International Symposium on Industrial Electronics, ISIE 2010, Bari, Italia, iulie 2010. [48] de Castro R., Araujo R.E., Feitas D., Reusable IP cores library for EV propulsion systems, Proceedings of the 2010 IEEE International Symposium on Industrial Electronics, ISIE 2010, Bari, Italia, iulie 2010. [49] Kung Y.-S., Huang C.-C., Huang L.-C., FPGA-realization of a sensorless speed control IC for IPMSM drive, Proceedings of the 36th Annual Conference of the IEEE Industrial Electronics Society, IECON 2010, Phoenix, Arizona, SUA, noiembrie 2010. [50] Kedarisetti J., Mutschler P., FPGA based control of quasi resonant DC-link inverter and induction motor drive, Proceedings of the 2011 IEEE International Symposium on Industrial Electronics, ISIE 2011, Gdansk, Polonia, iunie 2011. [57] Idkhajine L., Monmasson E., Maalouf A., Extended Kalman filter for AC drive sensorless speed controller - FPGA-based solution or DSP-based solution, Proceedings of the 2010 IEEE International Symposium on Industrial Electronics, ISIE 2010, Bari, Italia, iulie 2010. [58] Monmasson E., Idkhajine L., Cirstea M.N., Bahri I., Tisan A., Naouar M.W., FPGAs in industrial control applications, IEEE Transactions on Industrial Informatics, vol. 7, no. 2, mai 2011. 73

[72] Dubey R., Introduction to embedded system design using field programmable gate arrays, London: Springer Verlag, 2009. [73] Pellerin D., Thibault S., Practical FPGA programming in C, Prentice Hall, 2005. [74] Kamat R.K., Shinde S.A., Shelake V.G., Unleash the system on chip using FPGAs and Handel C, Springer, 2009. [77] Hansselmann H., Kiffmeier U., Koester L., Meyer M., Ruekgauer A., Production quality code generation from Simulink block diagrams, Proceeding of the 1999 IEEE International Symposium on Computer Aided Control System Design, CACSD 1999, Kohala Coast, Hawaii, SUA, august 1999. [80] Chu P.P., FPGA prototyping by Verilog examples, John Wiley and Sons, 2008. [82] Onea A., Prelucrarea semnalelor, Politehnium, 2006. [85] System Generator for DSP reference guide, v11.4, Xilinx, decembrie 2009. [87] Costas L., Colodron P., Rodriguez-Andina J.J., Farina J., Chow M.-Y., Analysis of two FPGA design methodologies applied to an image processing system, Proceedings of the 2010 IEEE International Symposium on Industrial Electronics, ISIE 2010, Bari, Italia, iulie 2010. [93] Machida H., Kobayashi F., PLL/PID motor control system by using time-domain operation of PWM signal, Proceedings of the International Conference on Instrumentation, Control and Information Technology, SICE Annual Conference 2007, Kagawa, Japonia, septembrie 2007. [97] Best R.E., Phase-locked loops: design, simulation and applications, McGraw-Hill, th 5 Edition, 2003. [101] Adkins C.A., Marra M.A., Walcott B.L., Modified phase-frequency detector for improved response of PLL servo controller, Proceedings of the 2002 American Control Conference, Anchorage, Alaska, SUA, mai 2002. [102] Alecsa B., Onea A., An FPGA implementation of an all digital phase locked loop for control applications, Proceedings of IEEE 5th International Conference on Intelligent Computer Communication and Processing, ICCP 2009, Cluj-Napoca, Romnia, august 2009. [103] Alecsa B., Onea A., A FPGA implementation of a phase locked loop for DC motor control, Buletinul Institutului Politehnic din Iai, Tomul LV(LIX), Fasc. 1, 2009, Secia Automatic i Calculatoare. [104] Proakis J., Manolakis D., Digital signal processing: principles, algorithms, and applications, 3rd Edition, Prentice-Hall, 1996. [105] Alecsa B.C., Onea A., An FPGA implementation of the time domain deadbeat algorithm for control applications, Proceedings of IEEE Norchip 2009, Trondheim, Norvegia, noiembrie 2009. [107] ChipScope Pro 12.1 software and cores user guide, Xilinx, aprilie 2010. [108] Mic D., Contribuii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile, tez de doctorat, Universitatea Transilvania din Braov, 2007. [109] Alecsa B., Onea A., An FPGA implementation of a brushless DC motor speed controller, Proceedings of 2010 IEEE 16th International Symposium for Design and Technology in Electronic Packaging, SIITME 2010, Piteti, Romnia, septembrie 2010. [110] Alecsa B., Onea A., Design, validation and FPGA implementation of a brushless DC motor speed controller, Proceedings of the 17th IEEE International Conference on Electronics, Circuits, and Systems, ICECS2010, Atena, Grecia, decembrie 2010. [111] Alecsa B., Onea A., Output analysis of digital interface plants based on FPGA rapid prototyping, Proceedings of the 14th International Conference on System Theory and Control, ICSTC 2010, Sinaia, Romnia, octombrie 2010. [112] Nurmi J. (editor), Processor design: system-on-chip computing for ASICs and FPGAs, Dordrecht: Springer, 2007. [113] Nios II Processor Reference Handbook, Altera, 2010. 74

[118] Yu P., Schaumont P., Executing hardware as parallel software for PicoBlaze networks, Proceedings of International Conference on Field Programmable Logic and Applications, FPL06, Madrid, Spania, august 2006. [119] Oniga S., Tisan A., Lung C., Buchman A., Orha I., Adaptive hardware-software co-design platform for fast prototyping of embedded systems, Proceedings of the 12th International Conference on Optimization of Electrical and Electronic Equipment, OPTIM2010, Braov, Romnia, mai 2010. [120] Lung C., Sabou S., Orha I., Buchman A., ZigBee smart sensors networks, Proceedings of 2010 IEEE 16th International Symposium for Design and Technology in Electronic Packaging, SIITME 2010, Piteti, Romnia, septembrie 2010. [121] Alecsa B., Radu B., Onea A., Brleanu A., A FPGA implementation of an active noise cancellation system, Proceedings of the 14th International Conference on System Theory and Control, ICSTC 2010, Sinaia, Romnia, octombrie 2010. [122] Alecsa B., Onea A., Combined hardware-software approach for BLDC motor speed controller design, Proceedings of the International Conference on Mechanical Engineering, Robotics and Aerospace, ICMERA 2010, Bucureti, Romnia, decembrie 2010. [124] Teroerde G., Electrical drives and control techniques, Leuven: Academische Cooperative Vennootschap, 2004. [125] Hava A., Kerkman R., Lipo T., Simple analytical and graphical methods for carrier-based PWM-VSI drives, IEEE Transactions on Power Electronics, vol. 14, no. 1, ianuarie 1999. [126] Spartan-3E family: complete data sheet, Xilinx, 2008. [127] Ioan A.D., Contribuii la implementarea structurilor hardware cu circuite numerice programabile CPLD i FPGA, tez de doctorat, Universitatea Tehnic Gheorghe Asachi din Iai, 2010. [128] Ioan A.D., New techniques for implementation of hardware algorithms inside FPGA circuits, Advances in Electrical and Computer Engineering, Vol. 10, No. 2, 2010. [129] Cirstea M.N., Dinu A., Khor J.G., McCormick M., Neural and fuzzy logic control of drives and power systems, Elsevier, 2002. [130] Cardarilli G.C., DAlessio M., Di Nunzio L., Fazzolari R., Murgia D., Re M., FPGA implementation of a low-area/high-SFDR DDFS architecture, Proceedings of the 10th International Symposium on Signals, Circuits and Systems, ISSCS 2011, Iai, Romnia, iunieiulie 2011. [131] Schaumont P.R., A practical introduction to hardware/software codesign, Springer, 2010. [133] Quang N.P., Dittrich J.-A., Vector control of three-phase AC machines, Berlin: Springer, 2008. [134] Filho N.P., Pinto J.O.P., Silva L.E.B., Bose B.K., A simple and ultra-fast DSPbased space vector PWM algorithm and its implementation on a two-level inverter covering undermodulation and overmodulation, Proceedings of the 30th Annual Conference of the IEEE Industrial Electronics Society, IECON 2004, Busan, Coreea de Sud, noiembrie 2004. [136] Pongiannan R.K., Yadaiah N., FPGA based space vector PWM control IC for three phase induction motor drive, Proceedings of 2006 IEEE International Conference on Industrial Technology, ICIT 2006, Mumbai, India, decembrie 2006. [138] Zhou K., Wang D., Relationship between space-vector modulation and threephase carrier-based PWM: a comprehensive analysis, IEEE Tansactions on Industrial Electronics, vol. 49, no. 1, februarie 2002. [139] Quintero J., Sanz M., Barrado A., Lazaro A., FPGA based digital control with high-resolution synchronous DPWM and high-speed embedded A/D converter, Proceedings of 24th Annual IEEE Applied Power Electronics Conference and Exposition, APEC 2009, Washington, DC, SUA, februarie 2009. [140] Scharrer M., Halton M., Scanlan T., FPGA-based digital pulse width modulator 75

with optimized linearity, Proceedings of 24th Annual IEEE Applied Power Electronics Conference and Exposition, APEC 2009, Washington, DC, SUA, februarie 2009. [141] Navarro D., Barragan L.A., Artigas J.I., Urriza I., Lucia O., Jimenez O., FPGAbased high resolution synchronous digital pulse width modulator, Proceedings of IEEE International Symposium on Industrial Electronics, ISIE 2010, Bari, Italia, iulie 2010. [142] Idkhajine L., Fully FPGA-based sensorless control for synchronous AC drive using an extended Kalman filter, tez de doctorat, Universitatea Cergy Pontoise, Frana, 2010. [143] Alecsa B, Onea A., Cirstea M., An efficient FPGA implementation of the space vector modulation algorithm, Proceedings of the 10th International Symposium on Signals, Circuits and Systems, ISSCS2011, Iai, Romnia, iunie-iulie 2011. [144] Alecsa B., Onea A., An optimized FPGA implementation of the modified space vector modulation algorithm for AC drives control, Proceedings of 21st International Conference on Field Programmable Logic and Applications, FPL2011, Chania, Grecia, septembrie 2011. [145] Alecsa B., Ioan A., FPGA implementation of a sinusoidal PWM generator with zero sequence insertion, Proceedings of the 7th International Symposium on Advanced Topics in Electrical Engineering, ATEE2011, Bucureti, Romnia, mai 2011. [146] Alecsa B., Tisan A., Cirstea M., High resolution 6 channels pulse width modulator for FPGA-based AC motor control, Proceedings of 2011 International Conference on Applied Electronics, AE2011, Pilsen, Cehia, septembrie 2011. [147] Krause P., Wasynczuk O., Sudhoff S., Analysis of electrical machinery and drive systems, 2nd Edition, IEEE Press, 2002. [149] Krishnan R., Permanent magnet synchronous and brushless DC motor drives, Boca Ratorn: CRC Press, Taylor and Francis Group, 2010. [150] Naouar W., Naasani A., Monmasson E., Slama Belkhodja I., FPGA-based speed control of synchronous machine using a P-PI controller, Proceedings of 2006 IEEE International Symposium on Industrial Electronics, ISIE06, Montreal, Canada, iulie 2006. [153] Boldea I., Nasar S.A., Electric drives, 2nd edition, Boca Raton: CRC Press, Taylor and Francis Group, 2006. [154] Tsuji T., Hashimoto T., Kobayashi H., Mizuoki M., Ohnishi K., A wide-range velocity measurement method for motion control, IEEE Transactions on Industrial Electronics, vol. 56, no. 2, februarie 2009. [155] Petrella R., Tursini M., Peretti L., Zigliotto M., Speed measurement algorithms for low-resolution incremental encoder equipped drives: a comparative analysis, Proceedings of 2007 International Aegean Conference on Electrical Machines and Power Electronics, ACEMP07, Bodrum, Turkey, septembrie 2007. [157] Alecsa B.C., Ioan A.D., FPGA implementation of a matrix structure for integer division, Proceedings of the 3rd International Symposium on Electrical and Electronics Engineering, Galai, Romnia, septembrie 2010. [160] Roi M.C., Contribuii la perfecionarea comenzii sistemelor de acionare electric cu motoare de curent alternativ, tez de doctorat, Universitatea Tehnic Gheorghe Asachi din Iai, 2010. [161] Alecsa B., Cirstea M., Onea A., Holistic modeling and FPGA implementation of a PMSM speed controller, Proceedings of the 37th Annual Conference of the IEEE Industrial Electronics Society, IECON 2011, Melbourne, Australia, noiembrie 2011, acceptat spre prezentare.

76

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