Rezumat

70
UNIVERSITATEA “TRANSILVANIA” DIN BRAŞOV FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR ing. DANIEL MIC CONTRIBUŢII LA DEZVOLTAREA UNUI MEDIU INTEGRAT HARDWARE-SOFTWARE PENTRU CONTROLUL MOTOARELOR ELECTRICE CU CIRCUITE LOGICE PROGRAMABILE REZUMATUL TEZEI DE DOCTORAT CONTRIBUTIONS TO THE DEVELOPMENT OF A HARDWARE-SOFTWARE INTEGRATED ENVIRONMENT FOR ELECTRIC MOTORS CONTROL WITH PROGRAMMABLE LOGIC CIRCUITS CONDUCĂTOR ŞTIINŢIFIC: Prof. dr. ing. EMIL MICU 2007

Transcript of Rezumat

UNIVERSITATEA “TRANSILVANIA” DIN BRAŞOV

FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR

ing. DANIEL MIC

CONTRIBUŢII LA DEZVOLTAREA UNUI MEDIU INTEGRAT HARDWARE-SOFTWARE PENTRU CONTROLUL MOTOARELOR ELECTRICE

CU CIRCUITE LOGICE PROGRAMABILE

REZUMATUL TEZEI DE DOCTORAT

CONTRIBUTIONS TO THE DEVELOPMENT OF A

HARDWARE-SOFTWARE INTEGRATED ENVIRONMENT FOR ELECTRIC MOTORS CONTROL WITH PROGRAMMABLE LOGIC CIRCUITS

CONDUCĂTOR ŞTIINŢIFIC: Prof. dr. ing. EMIL MICU

2007

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

1

CUPRINS

LISTĂ ABREVIERI......................................................................................................4 INTRODUCERE...........................................................................................................5

1 ACŢIONĂRI CU MOTOARE ELECTRICE. STADIUL ACTUAL AL CONTROLULUI CU CIRCUITE DIGITALE........................................................................................... 7

1.1 ACŢIONĂRI CU MOTOARE ELECTRICE. .......................................................... 7

MOTORUL DE CURENT CONTINU FĂRĂ PERII .......................................................... 7 1.1.1 Introducere ............................................................................................................. 7 1.1.2 Motorul de curent continuu cu perii ....................................................................... 7 1.1.3 Motorul de curent continuu cu magneţi permanenţi fără perii............................... 7 1.1.4 Clasificarea, structura şi aplicaţii ale motoarelor de curent continuu fără perii..... 8 1.1.5 Construcţia şi principiul de funcţionare al motorului BLDC................................ 8 1.1.6 Aplicaţii ale motoarelor de curent continuu fără perii ........................................... 9 1.1.7 Structura unui sistem de acţionare cu motor BLDC .............................................. 9

1.2 STADIUL ACTUAL AL CONTROLULUI MAŞINILOR ELECTRICE CU CIRCUITE DIGITALE......................................................................................................... 10

1.2.1 Circuitele digitale folosite în controlul maşinilor electrice (BLDC).................... 10 1.2.2 Comparaţie între diferitele tipuri de circuite digitale folosite în controlul acţionărilor electrice............................................................................................................. 10 1.2.3 Comparaţie performanţe circuite FPGA - DSP.................................................... 11 1.2.4 Controler implementat în circuit FPGA pentru acţionări cu servomotoare ......... 11 1.2.5 Controlul software şi hardware a motoarelor de curent continuu şi alternativ ... 12

2 MODELE MATEMATICE ALE MAŞINILOR ELECTRICE................................... 13

2.1 Modele matematice ale motoarelor de curent continuu fără perii ........................ 13 2.1.1 Modelul în coordonatele fazelor cu parametrii concentraţi pentru servomotorul de curent continuu fără perii ..................................................................................................... 13 2.1.2 Funcţiile de transfer ale servomotoarelor de curent continuu cu sau fără perii bazate pe constantele de timp ale acestora ........................................................................... 14

2.2 Modelarea maşinilor electrice în Matlab/Simulink................................................. 16 2.2.1 Implementarea în Simulink a modelului de reprezentare a servomotorul de curent continuu fără perii în coordonatele fazelor cu parametri concentraţi........................ 16 2.2.2 Implementarea în Simulink a modelul motorului BLDC bazat pe funcţia sa de transfer 16

3 CONTROLERE PID. FILTRE IIR......................................................................... 18

3.1 Controlere PID ........................................................................................................... 18 3.1.1 Prezentare generală .............................................................................................. 18 3.1.2 Filtrarea zgomotului ............................................................................................. 19 3.1.3 Ponderarea referinţei ............................................................................................ 19 3.1.4 Fenomenul de saturare ......................................................................................... 19

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

2

3.1.5 Metode propuse pentru acordarea controlerelor PID ......................................... 20 3.1.6 Acordarea controlerelor PI folosind metoda alocării polilor .............................. 20 3.1.7 Modalitatea de implementare digitală a controlerului PID .................................. 22 3.1.8 Specificaţii de proiectare ale controlerelor PID ................................................... 22

3.2 Controlere PID implementate ca şi filtre IIR .......................................................... 22

3.3 Implementare Matlab/Simulink controlere PID şi filtre IIR ................................. 23

4 PLATFORMA HARDWARE PROPUSĂ PENTRU CONTROLUL MOTORULUI BLDC CU CIRCUITE FPGA..................................................................................... 24

4.1 Structura platformei de comandă şi control............................................................ 24

4.2 Modulul de control cu circuit FPGA........................................................................ 25

4.3 Descriere arhitectură circuite FPGA........................................................................ 25 4.3.1 Familia de circuite FPGA Spartan-3 .................................................................... 25 4.3.2 Analiza comparativă performanţe/preţ circuite FPGA......................................... 25

4.4 Modulul de comandă cu tranzistoare MOSFET ..................................................... 26

4.5 Motorul BLDC şi traductoarele de poziţie .............................................................. 26

4.6 Standul experimental pentru controlul motorului BLDC cu circuite FPGA....... 27

5 METODA DE IMPLEMENTARE ŞI TESTARE HARDWARE-SOFTWARE ŞI MEDIILE SOFTWARE UTILIZATE LA IMPLEMENTAREA HARDWARE A UNUI SISTEM DE CONTROL PENTRU MOTORUL BLDC.............................................. 28

5.1 Controlul hardware digital în domeniul servomotoarelor electrice...................... 28 5.1.1 Resurse software şi hardware implicate în proiectarea şi implementarea controlului hardware digital pentru motorul BLDC............................................................. 28 5.1.2 Metoda clasică de implementare a sistemelor de control în FPGA .................... 30

5.2 Metoda hardware-software propusă pentru testarea/implementarea controlului hardware digital ..................................................................................................................... 30

5.3 Metode de simulare şi testare în timp real a sistemelor de control ....................... 33 5.3.1 Metoda de Co-simulare HDL............................................................................... 33 5.3.2 Metoda de Co-simulare în timp real cu hardware în buclă .................................. 33

6 IMPLEMENTAREA ÎN CIRCUITUL FPGA A BLOCURILOR BUCLEI DE CONTROL HARDWARE DIGITAL .......................................................................... 34

6.1 Structura şi funcţionarea sistemului de control implementat în FPGA .............. 34 6.1.1 Descrierea structurii sistemului de control........................................................... 34 6.1.2 Descrierea funcţionării sistemului de control....................................................... 34

6.2 Proiectarea blocului de interfaţă dintre sistemul de control implementat în FPGA şi resursele hardware de pe placa Spartan3 ........................................................................ 35

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

3

6.2.1 Bloc de introducere parametrii de control............................................................ 35 6.2.2 Monitorizarea sistemului controlat....................................................................... 36

6.3 Proiectarea şi implementarea modulului de generare semnal PWM................... 36 6.3.1 Tipuri de semnale PWM ...................................................................................... 37 6.3.2 Strategii de generare a semnalului PWM............................................................. 37 6.3.3 Implementarea generatorului de semnal PWM în circuitul FPGA ...................... 37 6.3.4 Rezultatele co-simulării cu hardware în buclă şi ale implementării în FPGA ..... 38 6.3.5 Rezultate experimentale ....................................................................................... 38

6.4 Blocul de comutaţie .................................................................................................... 38 6.4.1 Comutaţia curentului prin cele trei faze statorice ale motorului BLDC ............. 38 6.4.2 Implementarea blocului de comutaţie folosind diagrame de stare....................... 40 6.4.3 Rezultate experimentale ....................................................................................... 41

6.5 Implementarea într-un circuit FPGA a unui tahometru digital cu precizie ridicată şi funcţionare într-un domeniu larg de viteze ....................................................... 41

6.5.2 Proiectarea tahometrului digital folosind metoda contorizării pe o perioadă de timp constantă a impulsurilor provenind de la codificatorul optic....................................... 45

6.6 Proiectarea şi implementarea în hardware a controlerului de tip PID................. 46 6.6.2 Implementarea în hardware a controlerului PID ca şi filtru IIR .......................... 47

6.7 Închiderea buclei de control pentru motorul BLDC............................................... 48 6.7.1 Modelarea şi simularea sistemului cu software în buclă...................................... 49 6.7.2 Rezultatele implementării în FPGA a întregii bucle de control şi testarea cu hardware în buclă ................................................................................................................. 49 6.7.3 Testarea întregii bucle de control, rezultate experimentale.................................. 49

7 DEZVOLTAREA UNEI BIBLIOTECI SIMULINK CU COMPONENTE PARAMETRIZABILE IMPLEMETABILE ÎN FPGA.................................................. 52

7.1 Modalitatea de dezvoltare şi integrare în Simulink a bibliotecii cu componente de control...................................................................................................................................... 52

7.1.1 Integrarea în Simulink şi structura bibliotecii cu componente de control............ 52 7.1.2 Descrierea componentelor din biblioteca de control............................................ 53

7.2 Dezvoltarea unei interfeţe grafice pentru controlul în timp real al motoarelor BLDC 55

8 CONCLUZII ŞI CONTRIBUŢII.............................................................................. 56

8.1 CONCLUZII STRUCTURATE PE CAPITOLE.................................................... 56

8.2 CONTRIBUŢII ORIGINALE ALE AUTORULUI................................................ 61

8.3 CONCLUZII FINALE............................................................................................... 63

9 BIBLIOGRAFIE SELECTIVĂ .............................................................................. 64

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

4

LISTĂ DE ABREVIERI

2DOF

ASIC

BLDC

CET

CLB

DSP

FPGA

FSM

GPP

HIL

IIR

IOB

MAC

MCU

MIPS

MMACS

PIC

PID

PLD

PMSM

PWMMC

RISC

VHDL

- 2 Degrees Of Freedom - două grade de libertate;

- Application Specific Integrated Circuit – circuite integrate specifice aplicaţiei;

- BrushLess Direct Current - servomotoare fără perii de curent continuu;

- Count Elapse Time – contorizarea intervalului de timp ;

- Configurable Logic Block – blocuri logice configurabile;

- Digital Signal Processor – procesoare digitale de semnal;

- Field Programmable Gate Array – arii logice programabile;

- Finite State Machine – automat de stări;

- General Purpose Processor – procesoare de uz general;

- Hardware In the Loop – hardware în buclă;

- Infinite Impulse Response Filter – filtru cu răspuns infinit la semnal treaptă;

- Input Output Blocks – blocuri de intrare/ieşire;

- Multiply and Accumulate - multiplicare şi acumulare;

- Microcontroler Unit – microcontroler;

- Million Instruction Per Second - milioane de instrucţiuni per secundă;

- Million Multiplies and Accumulates per Second - milioane de multiplicări şi

acumulări per secundă;

- Power IC – Circuit integrat de putere;

- Proportional Integrative and Derivative – controler proporţional-integral-

derivativ;

- Programmable Logic Devices –dispozitive/circuite logice programabile;

- Permanent Magnet Synchronous Motor - servomotoare fără perii de tip sincron;

- Pulse Width Modulator Motor Control – unitate PWM pentru controlul

motoarelor;

- Reduced Instruction Set Computer – calculator cu set redus de instrucţiuni;

- VHSIC Hardware Description Language – limbaj de descriere hardware

VHSIC.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

5

INTRODUCERE

Potrivit unui articol publicat în revista Embedded Magazine, Embedded Solutions for Programmable Logic Design, ediţia septembrie 2005, revistă promovată de firma Xilinx, lider mondial în domeniul circuitelor logice programabile, numai într-o locuinţă modernă pot să existe peste 334 de motoare electrice. Acestea sunt prezente peste tot acolo unde există părţi în mişcare, de la echipamente electrocasnice până la echipamente de calcul şi echipamente audio-video. Odată cu achiziţionarea unui echipament din categoriile mai sus amintite, numărul acestor motoare creşte. Numai în cazul achiziţionării unui echipament de calcul, numărul motoarelor conţinute de acesta este impresionant, 3 sau 4 motoare pentru ventilatoare, 4 pentru unitatea DVD, 2 pentru hardisk şi multe altele pentru orice periferic adăugat: imprimante, scaner, joystick etc. Datorită formei compacte, raportului cuplu/dimensiune bun şi acurateţii controlului, mare parte dintre aceste motoare sunt de curent continuu fără perii.

Sistemele care implementează algoritmi de control devin din ce în ce mai complexe, beneficiază de un consum redus de energie şi au o flexibilitate sporită care permite extinderea funcţionalităţii în mod continuu şi creşterea acurateţi controlului. Circuitele logice programabile vin în întâmpinarea acestor cerinţe, permiţând integrarea pe un singur chip atât a algoritmilor de control cât şi a celorlalte funcţii periferice şi aceasta la viteze ridicate datorită executării în hardware a tuturor operaţiilor. Un alt avantaj adus de circuitele logice programabile fiind şi timpul scurt de dezvoltarea şi lansare pe piaţă a aplicaţiei de control. Obiectivul acestei teze constă în realizarea unui sistem complet şi funcţional din punct de vedere hardware şi software pentru controlul motoarelor de curent continuu cu şi fără perii, utilizând circuite logice programabile. Acest sistem trebuie să funcţioneze independent sau să permită comunicarea bidirecţională şi în timp real cu un mediu software (ex. Simulink). De asemenea autorul şi-a propus şi crearea unei biblioteci integrabile în Simulink, cu componente parametrizabile care să permită simularea, implementarea şi testarea în hardware a buclei de control pentru motoarele de curent continuu, toate acestea procese trebuind să se desfăşoare cât mai simplu şi într-un timp cât mai scurt. Teza îşi propune de asemenea să ofere soluţii practice pentru fiecare etapă de proiectare plecând de la motor, trecând prin modulul de control cu circuite logice programabile şi ajungând la o interfaţa grafică care să permită introducerea parametrilor de control. Pe scurt autorul îşi propune dezvoltarea unei platforme hardware/software complete pentru implementarea controlului maşinilor electrice cu circuite logice programabile. Teza este structurată pe 7 capitole.

Capitolul 1 prezintă informaţii despre motoarele electrice, punând accent pe motoarele de curent continuu, în special pe cele fără perii. În cea de a doua parte sunt identificate soluţiile existente pe piaţă pentru implementarea controlului şi sunt stabilite criterii de selecţie. Un accent deosebit se pune pe soluţiile cu circuite digitale configurabile.

Capitolul 2 abordează problema modelelor matematice pentru motoarele de curent continuu şi în special pentru cele fără perii. Se va pune accent pe modelele în coordonatele fazelor cu parametrii concentraţi şi pe modelul bazat pe funcţia de transfer, determinată pe baza constantelor de timp ale motorului. Modele determinate vor fi implementate şi simulate în Simulink.

Capitolul 3 prezintă arhitectura generală, specificaţiile de proiectare, metodele de acordare şi modalităţi de implementare digitală a controlerelor de tip proporţional-integral-derivativ. Vor fi prezentate succint şi filtrele digitale în special cele cu răspuns de durată infinită. În final se va propune o modalitate de proiectare a controlerelor plecând de la arhitectura unui filtru.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

6

Capitolul 4 abordează structura hardware folosită pentru controlul motoarelor electrice, prezentând modulele de comandă şi control ce vor fi folosite. Se pune accent pe arhitectura circuitelor logice programabile şi se face şi o prezentare a motorului comandat, împreună cu senzorii montaţi pe arborele acestuia. În final va fi prezentată modalitatea de interconectare a modulelor de control şi de comandă la ansamblul format de motor şi senzori.

Capitolul 5 are ca obiectiv elaborarea unei metode rapide de implementare facilă în hardware a algoritmilor de control şi a interfeţelor conexe acestora. Metoda trebuie să permită proiectanţilor sistemului de control să se concentreze asupra specificaţiilor de nivel înalt şi să permită obţinerea unui rezultat rapid în ceea ce priveşte performanţele algoritmului de control ales şi costurile generate de implementarea acestuia în hardware. În acest capitol mai este prezentat şi pachetul de programe ce va fi utilizat. Se stabilesc şi metode optime de simulare în timp real a sistemelor de control implementate cu circuite logice programabile.

Capitolul 6 prezintă arhitectura sistemului de control şi modul de funcţionare al acestuia. În acest capitol se face proiectarea, simularea, implementarea şi testarea în hardware a fiecărui bloc în parte şi în final a întregii bucle de control pentru motorul de curent continuu fără perii.

Capitolul 7 prezintă în prima parte concepte ale proiectării bazate pe modele şi de asemenea concepte şi recomandări privind implementarea algoritmilor de control utilizând toolboxul System Generator. În cea de a doua parte se prezintă modalitate de dezvoltarea a bibliotecii cu blocuri parametrizabile pentru controlul motoarelor folosind circuitele logice programabile, componenţa bibliotecii şi modul de integrare a acesteia în Simulink. Din bibliotecă fac parte toate componentele proiectate şi testate în capitolul 6.

Elaborarea acestei lucrări s-a făcut sub îndrumarea generoasă, competentă şi exigentă a conducătorului ştiinţific prof.dr.ing. Emil Micu pentru care îmi exprim întreaga stimă şi consideraţie şi de asemenea îi adresez cele mai respectuoase mulţumiri.

Autorul îşi exprimă întreaga stimă şi consideraţie pentru domnul dr.ing. Ştefan

Marinca, fost conferenţiar al Universităţii de Nord Baia Mare, actualmente senior designer la Analog Devices, Limerick, Irlanda, care a avut un aport deosebit în formarea profesională a acestuia.

Pentru sprijinul generos în diferite momente pe durata elaborării lucrării, autorul aduce mulţumiri grupului de electronică, condus de conf.dr.ing Ştefan Oniga, din cadrul Catedrei de Electrotehnică de la Universitatea de Nord Baia Mare.

Nu în ultimul rând mulţumesc părinţilor mei, soţiei mele Valeria şi fiicei mele Mara

care m-au sprijinit şi încurajat pe durata elaborării tezei şi pe care în ultima perioadă i-am lipsit în mod sistematic de sprijinul meu.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

7

Capitolul 1

1 ACŢIONĂRI CU MOTOARE ELECTRICE. STADIUL ACTUAL AL CONTROLULUI CU CIRCUITE DIGITALE

Partea I 1.1 ACŢIONĂRI CU MOTOARE ELECTRICE.

MOTORUL DE CURENT CONTINU FĂRĂ PERII

1.1.1 Introducere

Avantajele unui sistem cu viteză reglabilă faţă de unul cu viteză fixă: 1. Economisirea energiei electrice; 2. Posibilitatea de a controla viteza şi poziţia elementului de execuţie; 3. Ameliorarea regimurilor tranzitorii (supratensiuni, supracurenţi, şocuri de

conectare). Deoarece lucrarea se va axa pe comanda şi controlul motoarelor de curent continuu fără

perii, se analizează diferenţa faţă de la cele trei tipuri de motoare „clasice” cunoscute: motor de curent continuu cu perii şi înfăşurări, motor de curent alternativ sincron şi asincron. Termenul „clasic” asociat cu motoarele subliniază faptul că aceste motoare satisfac trei criterii importante:

1. produc cuplu instantaneu constant (pulsaţii foarte reduse ale cuplului); 2. sunt alimentate direct de la o sursă de curent continuu sau alternativ; 3. pot să fie pornite şi pot funcţiona fără controlere electronice. Motoarele clasice pot fi de asemenea cuplate cu controlere electronice pentru a obţine

acţionări cu viteză reglabilă.

1.1.2 Motorul de curent continuu cu perii Este un motor stabil şi uşor de controlat, pentru aceasta necesitând puţine componente

semiconductoare. Se consideră că problemele de funcţionare ale acestui tip de motor provin de la fiabilitatea redusă a periilor. Acestea sunt relativ fiabile, dar problemele acestui tip de motor sunt legate de colector a cărui viteza de comutaţie este limitată, se uzează, induce zgomot, interferenţe. De asemenea spaţiul ocupat de colector şi perii este mare, iar răcirea rotorului care produce cuplul nu este uşoară.

1.1.3 Motorul de curent continuu cu magneţi permanenţi fără perii În continuare vom folosii prescurtarea BLDC (brushless direct current) pentru a face

referire la acest tip de motoare. Cu cât motorul este mai mic cu atât este mai indicat să se folosească magneţii permanenţi pentru excitaţie. În domeniul de puteri 1-10kW performanţele acestui tip de motor sunt comparabile cu cele ale motorului asincron. Peste acest domeniu de puteri costul magneţilor motorului BLDC devine ridicat astfel încât este eliminat din competiţia cu motorul asincron. Sub domeniul enunţat anterior motorul BLDC are un randament şi un factor de putere mai bun decât motorul asincron. În plus aşa numita „înfăşurare de putere” este în stator , astfel că, căldura degajată poate fi mai uşor transferată

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

8

către exterior. De asemenea la acest tip de motor scad şi pierderile rotorice. Metodele de control a motorului BLDC sunt mai puţin complexe decât la motorul asincron.

Întabelul T1.1 este prezentată o comparaţie între motoarele de curent continuu cu perii şi cele fără perii.

Tabelul T.1.1 Comparaţie motoare c.c. şi motoare c.c. fără perii Motoare de c.c. cu perii Motoare c.c. fără perii Tipul comutatoarelor Mecanice Electrice (invertoare + senzori

de poziţie) Dimensiuni Mari Reduse Întreţinere Periodică Minimă Domeniul de puterii Mari Mici Viteza maximă Mică Mare Controlul vitezei Simplu Complex Densitate de putere Redusă Mare Moment de inerţie Mare Mic Disiparea căldurii Slabă Bună

1.1.4 Clasificarea, structura şi aplicaţii ale motoarelor de curent continuu fără perii

1.1.4.1 Clasificarea motoarelor de curent continuu cu magneţi permanenţi fără perii Motoarele de curent continuu cu magneţi permanenţi fără perii se împart în două categorii: 1. Motoare sincrone cu înfăşurări cu repartiţie sinusoidală (PMSM – permanent magnent

synchronous motor ) mai sunt denumite şi servomotoare fără perii de tip sincron; 2. Motoare de curent continuu fără perii cu înfăşurări concentrate (BLDC - brushless

direct current) mai sunt denumite şi servomotoare fără perii de curent continuu. [60] În continuare vor fi folosite prescurtările consacrate pe plan internaţional PMSM pentru primul tip respectiv BLDC pentru cel de al doilea tip de motor. Parametrii care diferenţiază cele două tipuri de motoare sunt enumeraţi în tabelul T.1.2.

Tabelul T.1.2 Comparaţie PSM şi BLDC PMSM BLDC Densitatea fluxului Distribuţie sinusoidală Distribuţie dreptunghiulară Tensiunea electromotoare Forma de undă sinusoidală Forma de undă dreptunghiulară Curentul din stator Forma de undă sinusoidală Forma de undă dreptunghiulară Puterea totală Constantă Constantă Cuplul electromegnetic Constant Constant

1.1.5 Construcţia şi principiul de funcţionare al motorului BLDC Rotorul motorului BLDC este magnet permanent şi poate avea între 2 şi 8 poli, poate fi

construit din ferite sau aliaje magnetice din pământuri rare, cele din urmă având o densitate de flux mai bună. În figura 1.1 sunt prezentate câteva dintre formele constructive ale rotorului.

Statorul unui motor BLDC este prezentat în figura 1.2. Acesta este asemănător cu cel al motoarelor asincrone, însă modul de distribuire a înfăşurărilor este diferit.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

9

Rotor cu magneţi periferici Rotor cu magneţi încapsulaţi Rotor cu magneţi îngropaţi Figura 1.1 Rotorul motorului BLDC

Modalitatea cea mai simplă de a cunoaşte poziţia rotorului la un moment dat este

folosirea senzorilor de poziţie HALL. Aceştia se montează pe unul dintre capetele arborelui motorului, vezi figura 1.3. Pe acelaşi capăt mai poate fi montat şi un codificator optic de poziţie pentru determinarea poziţiei exacte a rotorului, cât şi pentru, determinarea cu precizie mare a vitezei rotorului. Detaliile privind modul de realizare a comutaţiei folosind senzorii HALL şi determinarea vitezei pe baza informaţiei de poziţie, vor fi precizate în capitolele următoare. [73, 74].

Figura 1.2 Statorul uni motor de tip BLDC

Figura 1.3 Secţiune longitudinală prin motor BLDC

1.1.6 Aplicaţii ale motoarelor de curent continuu fără perii

Aplicaţiile în care sunt folosite motoare de curent continuu pot fi împărţite în câteva clase: servosisteme, acţionări cu viteză constantă, sisteme de centrifugare şi ventilatoare, pompe, procese industriale, tracţiuni electrice, şi mai recent periferice de calculatoare şi aparatură medicală.

1.1.7 Structura unui sistem de acţionare cu motor BLDC

În figura 1.4 este prezentată diagrama bloc a unui sistem de control şi comandă pentru un motor de curent continuu cu trei faze conectate în stea. În această diagramă blocurile componente sunt notate de la A la D. În practică, datorită noilor concepte de proiectare linia de demarcaţie dintre anumite blocuri poate dispărea, funcţiile unui grup de circuite putându-se regăsi în celălalt grup.

Figura 1.4 Elementele unui sistem de acţionare pentru un motor de curent continuu fără perii

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

10

Partea a II 1.2 STADIUL ACTUAL AL CONTROLULUI MAŞINILOR

ELECTRICE CU CIRCUITE DIGITALE

1.2.1 Circuitele digitale folosite în controlul maşinilor electrice (BLDC)

Sistemele de control digitale elimină abaterile cauzate de variaţiile de temperatură, iar îmbunătăţirea caracteristicilor sistemului (upgrade) se poate realiza foarte uşor prin modificarea softului procesorului programabil conţinut de sistem.

Unul dintre obiectivele acestei teze constă în implementarea controlului motoarelor BLDC cu circuite logice programabile (FPGA). În continuare se va face o analiza a soluţiilor, de control digital, existente la ora actuală pe piaţă şi se va pune în mod deosebit accentul pe soluţiile de control care folosesc circuite FPGA, prezentându-se astfel stadiul actual în acest domeniu şi interesul crescut pentru acest tip de control.

1.2.2 Comparaţie între diferitele tipuri de circuite digitale folosite în controlul acţionărilor electrice

În acţionările moderne, atât partea de control cât şi logica de comutaţie (vezi figura 1.4)

sunt implementate cu procesoare digitale de semnal (DSP). Însă acestea au competitori tradiţionali sau mai noi, dintre care amintim:

- Microcontrolere (MCU); - Microprocesoare de uz general / microprocesoare cu set redus de instrucţiuni

(GPP/RISC); - Arii de porţi logice programabile (FPGA); - Circuite integrate dedicate (ASIC).

Figura 1.5 Comparaţie între tipuri de circuite digitale în

funcţie de două dintre criteriile de performanţă

Se vor stabilii câteva criterii de comparaţie a performanţelor circuitelor digitale folosite în controlul acţionărilor electrice şi ponderea fiecărui criteriu: - timp de lansare pe piaţă - primă importanţă- performanţa - primă importanţă - preţ - primă importanţă - facilităţi de dezvoltare - primă importanţă - consum de putere - importanţă medie - flexibilitate ulterioară - importanţă redusă. În figura 1.5 este prezentată o comparaţiei între principalele arhitecturi care permit implementarea algoritmilor de control, în funcţie de două dintre criteriile de performanţă enunţate anterior.

În tabelul T.1.3 este prezentată o comparaţie între cele cinci arhitecturi de circuite

digitale care pot fi folosite în parte de control a unei acţionări electrice.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

11

Tabel T.1.3 Comparaţie între diferite tipuri de arhitecturi folosite pentru aplicaţiile în timp real

Implementa- re pe piaţă Performanţa Preţ

Uşurinţă în

dezvoltare

Consum de putere

Flexibilitate ulterioară Concluzii

ASIC Nesatisfăcător Foarte Bun Foarte Bun Satisfăcător Bun Nesatisfăcător Satisfăcător

DSP Foarte Bun Bun Bun Foarte Bun Foarte Bun Foarte Bun Foarte Bun

FPGA Bun Foarte Bun Bunr Foarte Bun Satisfăcător Bun Bun

MCU Foarte Bun Satisfăcător Foarte Bun Bun Satisfăcător Foarte Bun Bun

RISC/ GPP Bun Bun Satisfăcător Bun Satisfăcător Foarte Bun Bun

1.2.3 Comparaţie performanţe circuite FPGA - DSP În continuare, se va restrânge selecţia, astfel că dintre „competitorii” prezentaţi

anterior, se vor lua în discuţie circuitele DSP şi FPGA. După cum se va putea vedea în capitolele următoare indiferent de arhitectura aleasă pentru implementarea digitală a unui algoritm de control de tip PID sunt necesare operaţii de multiplicare – acumulare (MAC). Astfel că performanţele implementării pe un procesor a unui algoritm de control pot fi analizate nu numai prin prisma frecvenţei de lucru a acestuia ci mai ales prin prisma numărului de operaţii de multiplicare-acumulare raportate la un interval de timp stabilit.

Circuitul DSP TMS320C64 poate efectua 8x8 MAC-uri la un momnet şi are frecvenţa de 720MHz, astfel se obţine:

8 x 720 MHz = 5,76 miliarde MAC/s Circuitul FPGA XC2V8000 are 46.592 celule logice elementare (slice-uri), care

permit efectuarea a aproximativ 461 miliarde MAC/s şi de asemenea 168 multiplicatoare dedicate care lucrează la frecvenţa de ~ 180 MHz (pentru 8x8) astfel se obţine:

168 x 180 MHz = 30 miliarde MAC/s, deci un total general de 461 + 30 = 491 miliarde MAC/s, spre deosebire de cele numai 5,7 miliarde MAC/s ale procesorului DSP, TMS320C64x . În cazul unui circuit FPGA cu cost redus din familia Spartan 3, urmând acelaşi model de calcul se obţin aproximativ 270 miiarde MAC/s, diferenţa net în favoarea celui din urmă faţă de DSP.

În acest capitol autorul a studiat şi prezentat succint soluţiile cele mai relevante în ceea ce priveşte controlul maşinilor electrice cu DSP-uri, microcontrolere, circuite ASIC şi in extenso soluţiile cu circuite FPGA, prezentând un rezumat a peste 20 de referinţe. Acest studiu servind ca argument şi motivaţie la continuarea cercetării în domeniul controlului motoarelor electrice cu circuite logice programabile.

Autorul a identificat două modalităţi de abordarea controlului motoarelor electrice cu circuite FPGA, una pur hardware, iar cealaltă care îmbină hardware-ul cu software-ul beneficiind de flexibilitate şi uşurinţă de dezvoltare mai mare. Două exemple elocvente vor fi prezentate în continuare.

1.2.4 Controler implementat în circuit FPGA pentru acţionări cu servomotoare

Firma International Rectifier propune o nouă metodă de control hardware, platforma numită Accelerator, bazată pe circuite FPGA. Flexibilitatea în control pe care o realizează acest sistem este dată de un circuit FPGA. Toţi algoritmii de control sunt implementaţi în circuitul FPGA inclusiv logica necesară protocolului de comunicare

Circuitul FPGA poate fi interfaţat direct cu circuitele de putere care asigură comanda motorului electric.În funcţie de codul obiect preîncărcat în FPGA platforma Accelerator poate

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

12

funcţiona ca: servosistem bazat pe codificator de poziţie; servosistem bazat pe rezolver; servosistem bazat pe algoritm de control fără senzori [].

1.2.5 Controlul software şi hardware a motoarelor de curent continuu şi alternativ

În sistemele de control tradiţionale rolul circuitului FPGA era limitat în general la generarea semnalelor PWM şi implementarea logicii necesare de pe partea de feedback a sistemului (interfaţa cu codificatorul). Funcţiile mai importante cum ar fi implementare controler PID şi comunicare cu alte module erau preluate de un microcontroler sau de un procesor de semnal, vezi figura 1.6. Dezavantajul acestui tip de arhitectură constă în faptul că bucla de control traversează de două ori magistrala ce leagă cele două circuite. În această situaţie pot apărea congestii iar performanţele devin greu de evaluat.

Firma Xilinx a dezvoltat o metodă de control a motoarelor BLDC şi a celor asincrone, aşa numita metodă software-hardware. Această metodă a fost implementată pe circuitele FPGA din familiile Spartan3 şi Virtex4. discrete. Noua soluţie propusă de Xilinx înglobează toate componentele buclei de control pe un singur circuit FPGA, vezi figura 1.7. Partea software, de interfaţare, supervizare şi comunicare în reţea cu alte dispozitive este implementată pe un core de microprocesor pe 32 biţi, numit MicroBlaze. Partea hardware include implementarea controlerului PID, a generatorului de semnal PWM şi a logicii de interfaţare cu semnalele de feedback şi de control. Implementarea hardware a acestor componente permite o executare simultană a tuturor procedurilor de control (executare concurenţială), de asemenea performanţele sistemului de control devenind deterministice. Din figura 1.7 se poate observa cum cele două module, core-ul de microprocesor şi modulele implemetate hardware comunică între ele prin intermediul unei magistrale. Dat fiind faptul că şi partea de implementare software cât şi cea hardware se află în interiorul aceluiaşi circuit limitările produse de congestia traficului dintre acestea sunt eliminate [].

Figura 1.6 Utilizarea tradiţională a circuitului FPGA în sistemele de control

Figura 1.7 Metoda software-hardware de înglobare a

întregii bucle de control într-un circuit FPGA

Plecând de la ideea de a integra tot sistemul de control pe un singur circuit FPGA, autorul propune în această teză o a treia abordare care să beneficieze de performanţele celei dintâi şi de flexibilitatea celei de a doua metode de proiectare a unui sistem de control cu circuite FPGA . Astfel că se va realiza o bibliotecă în Matlab/Simulink cu toate blocurile necesare sistemului de control, iar prin procedeul drag and drop se va închide bucla de control. Tot sistemul va fi pur hardware nefiind necesare şi alte programe pentru dezvoltarea buclei de control. Etapa de simulare/testare, se va realiza software tot din Matlab/Simulink.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

13

Capitolul 2 2 MODELE MATEMATICE ALE MAŞINILOR ELECTRICE

În acest capitol sunt prezentate ecuaţiile generale ale servomotoarelor de curent continuu şi modele matematice ale acestora, modele care în partea a doua a acestui capitol, vor fi implementate şi simulate cu programul Matlab/Simulink.

Setul de ecuaţii ce descrie relaţia dintre mărimile electrice caracteristice maşinii, cuplul electromagnetic dezvoltat şi legătura cu mărimile mecanice constituie modelul matematic al maşinii electrice. Dacă se porneşte de la cunoaşterea câmpului electromagnetic din maşină atunci se obţine modelul matematic cu parametrii distribuiţi. Determinarea câmpului electromagnetic din maşină necesită un efort de calcul foarte mare şi din această cauză, în cele mai multe situaţii, se utilizează modelul matematic cu parametrii concentraţi. In acest din urmă caz în ecuaţii apar ca parametri, constanţi sau variabili, rezistenţe şi inductivităţi, [57]. Modelele cu parametri concentraţi se împart în două categorii de bază: modele în coordonatele fazelor şi modele utilizând axe ortogonale. În cazul servomotoarelor de curent continuu cu înfăşurări concentrate (BLDC) modelul care descrie cel mai bine comportarea acestui motor este modelul în coordonatele fazelor.

2.1 Modele matematice ale motoarelor de curent continuu fără perii

2.1.1 Modelul în coordonatele fazelor cu parametrii concentraţi pentru servomotorul de curent continuu fără perii

Conform referinţei [95] în cazul motorului BLDC, datorită faptului că tensiunea

electromotoare nu este sinusoidală, inductivităţile nu vor varia sinusoidal în coordonate a,b,c şi nu este deloc avantajos transformarea în coordonate d,q deoarece inductivităţile nu vor fi constante după transformare. Astfel că pentru descrierea modelului matematic al maşinii BLDC este recomandată folosirea coordonatelor a,b,c.

În continuare este prezentat sistemul de ecuaţii care descrie motorul de curent continuu fără perii (BLDC). Modelul este bazat pe reprezentarea fiecărei faze a motorului printr-o rezistenţă, inductivitate şi o tensiune electromotoare[60] (figura 2.1).

AC

mB

mA

mA

AA edt

diL

dtdiL

dtdiL

dtdiLRiu −−−++=

21

21

σ

(2.1)

BC

mA

mB

mB

BB edt

diL

dtdiL

dtdiL

dtdiLRiu −−−++=

21

21

σ

(2.2)

CB

mA

mC

mC

CC edtdiL

dtdiL

dtdi

Ldt

diLRiu −−−++=

21

21

σ

(2.3)

CBACCBBAAm mmmiBiBiB

km ++=++

Ω= )( - ecuaţia de cuplu

(2.4)

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

14

rmmdtdJ −=Ω - ecuaţia de echilibru dinamic (2.5)

Figura 2.1. Circuitul echivalent al motorului

BLDC şi al comenzii acestuia

U- tensiunea sursei de alimentare; uA, uB, uC -sunt tensiunile pe fiecare din cele trei faze statorice; iA, iB, iC -sunt curenţii pe fiecare din cele trei faze statorice; eA ,eB, eC -sunt tensiunile electromotoare corespunzătore celor trei faze statorice; R - rezistenţa unei faze; Lσ - inductivitatea de scăpări a unei faze; Lm - inductivitatea corespunzătoare fluxului util al unei faze; L=Lσ+3Lm/2 - inductivitatea totală; Ω - viteza unghiulară; θ - poziţia rotorului; J - momentul de inerţie al maşinii; m - cuplul electromagnetic; mr - cuplul rezistent la arbore; b - constanta de amortizare; km - constanta motorului. )(1

)2

(1

)2

(1

)2

(1

,,2

2

dtdbik

Jdtd

dtdk

uRiLdt

didtdk

uRiLdt

didtdk

uRiLdt

di

CBAm

MCC

C

MBB

B

MAA

A

θθ

θ

θ

θ

−=

−+−=

−+−=

−+−=

(2.6)

AMAAm ikiBPkm == 2 Aplicând transformata Laplace relaţiilor 2.6 acestea vor putea fi foarte uşor de

transpus în Simulink sub formă de diagrame.

2.1.2 Funcţiile de transfer ale servomotoarelor de curent continuu cu sau fără perii bazate pe constantele de timp ale acestora La analiza acţionărilor cu servomotoare, în ecuaţiile care modelează funcţionarea

servomotoarelor sunt prezente două constante de timp, una mecanică şi cealaltă electrică. Analiza ecuaţiilor motorului de curent continuu fără perii (BLDC) va pleca de la analiza ecuaţiilor motorului de curent continuu. Ecuaţiile în regim staţionar pentru motorul de curent continuu: U = iaRa + KeΩ (2.7) T = iaKT = Jα (2.8) Pentru cazul general ecuaţiile diferenţiale sunt:

U = iaRa + Ladtdia + KeΩ (2.10)

Aplicând Laplace şi prin rearanjare se obţine:

Ω=+

Ω−

SJ1)RSRL(

K)K(U

Taa

a

Te (2.11)

unde: U = tensiunea la borne (V); ia = curentul în înfăşurarea statorică (A); JT = momentul de inerţie total al motorului plus sarcina (kg*m2); Ke = constantă de tensiune (v/rad/sec); KT = constanta de cuplu (N*m/A); La = inducţia înfăşurări statorice (H); Ra = rezistenţa înfăşurări statorice (ohm); TL = cuplul (N*m); Ω = viteza rotorului (rad/sec); α = acceleraţia (rad/sec2).

Ecuaţie (2.12) poate fi reprezentată ca şi diagramă bloc de forma celei din figura 2.2, [35].

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

15

Figura 2.2 Ecuaţia (2.11) reprezentată sub formă de diagramă bloc

Pentru diagrama bloc din figura 2.2 ecuaţia în buclă închisă este:

(GH1G

RC

+= ) (2.12 )

Prin rearanjare se obţine (2.13):

1SKKJRS

RL

KKJR

K1

U

Te

Ta2

a

a

Te

Ta

e

+⎟⎠⎞

⎜⎝⎛+⎟

⎠⎞

⎜⎝⎛⎟⎠⎞

⎜⎝⎛

(2.13)

Te

Tam

KKJR

t ∑=

=a

ae

RLt (2.14)

Inerţia totală a motorului (JT ) va fi suma inerţiilor motorului şi a sarcinii de la arbore.

Rezistenţa (Ra) reprezintă suma dintre rezistenţa înfăşurări statorice şi rezistenţa circuitului extern. Astfel că, constantantele de timp mecanică şi electrica motorului pot fi scrise ca relaţiile (2.14). Ecuaţia în buclă închisă a motorului poate fi exprimată în relaţia (2.15). Se pot obţine pulsaţia naturală ω – ca şi mărime ce determină frecvenţa oscilaţiilor ce apar, relaţia (2.16) şi factorul de amortizare, reţalia (2.17), în funcţie de valorile lui ξ distingându-se trei regimuri de funcţionare.

Impunerea performanţelor unui sistem de ordinul 2 înseamnă impunerea unei perechi de valori (ξ,ω), care, de fapt reprezintă impunerea polilor funcţiei din relaţia (2.15).

1StSttK

1

m2

em

e

++=

ΩU (2.15)

mω = emtt/1 (2.16)

ξ =0.5 tm mω = 0.5 em tt / (2.17)

ξ = 0 regim pur oscilant; 0 < ξ < 1 regim oscilant amortizat; ξ > 1 regim aperiodic.

În cazul motorului de curent continuu fără perii (BLDC), ecuaţiile care definesc constantele de timp electrică şi mecanică, au aproximativ aceeaşi formă, cu mici modificări faţă de cele ale motorului de curent continuu. Pentru un motor BLDC cu statorul conectat în stea, circuitul electric echivalent va fi cel din figura 2.3.

Figura 2.3 Circuitul electric echivalent al motorului BLDC

TL)e(L

TOTALLL

m

K1.73

K

J2

R

t−

−∑= =0.86

Tlle

ll

KKJtotalR

)( −

(2.18)

∑ −

−==

L)m(L

LLe

RL

totalaRezist. totalaInductiv.t (2.19)

1StK

1Um

e

+=

Ω (2.20)

Majoritatea producătorilor dau parametrii electrici ai motorului în valori de linie, astfel aceste valori trebuie convertite în valori de fază, constanta de timp mecanică poate fi calculată cu relaţia (2.18) iar, constanta de timp electrică va fi calculată cu relaţia (2.19).

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

16

Valoarea constantei de timp electrice este mult mai mică decât cea a constantei de timp mecanice, te << tm, astfel că produsul tetm se poate neglija, iar funcţia de transfer tensiune – viteză, a sistemului se poate simplifica considerând-o cu o bună aproximaţie ca fiind de ordinul I, de forma (2.20). 2.2 Modelarea maşinilor electrice în Matlab/Simulink

Analiza unui sistem de acţionare electrică este un proces dificil, deoarece acţionările electrice sunt sisteme complexe. Un rol important înainte, de implementarea practică a unui astfel de sistem, revine părţii de simulare, în acest scop fiind dezvoltate numeroase pachete de programe pentru simularea acţionărilor electrice. Pentru a modela un sistem de acţionare electrică a fost necesară dezvoltarea unor componente specifice, ce vor fi prezentate în cadrul acestui capitol, şi care au la bază blocurile deja existente în mediul de simulare Matlab/Simulink [59, 147].

Maşinile electrice au fost modelate pe baza ecuaţiilor funcţionale ale acestora şi a funcţiilor lor de transfer. Pentru modelare s-a folosit implementarea modelului cu blocuri Simulink. În această secţiune se vor prezenta modelele motorului de curent continuu bazat pe reprezentarea servomotorul de curent continuu fără perii în coordonatele fazelor cu parametrii concentraţi şi modelul bazat pe funcţia sa de transfer

2.2.1 Implementarea în Simulink a modelului de reprezentare a servomotorul de curent continuu fără perii în coordonatele fazelor cu parametri concentraţi

În figura 2.4 este prezentat un model al motorului de curent continuu fără perii descris

cu blocuri din Simulink. Descrierea acestui model se bazează pe ecuaţiile 2.6. În figura 2.5 este prezentată şi fereastra de configurare a componentei Simulink create, acest model va putea fi uşor de configurat ţinându-se cont de parametrii constructivi ai motorului. Răspunsul sistemului la un semnal de tip treaptă este prezentat în figura 2.6. Se observă că ieşirea este subunitară pentru un semnal de intrare unitar. Sunt marcate pe figură valorile timpilor de creştere şi valoarea staţionară. Se poate observa că ieşirea sistemului nu este oscilatorie.

2.2.2 Implementarea în Simulink a modelul motorului BLDC bazat pe funcţia sa de transfer

Potrivit relaţiilor (2.15) şi (2.20) determinate în paragrafele anterioare ale acestei

lucrări funcţia de transfer a unui motor de curent continuu şi de asemenea care se aplică şi motorului BLDC poate fi reprezentată prin procese de ordinul I respectiv ordinul II. Implementarea în Simulink a relaţiilor (2.15), (2.20) este prezentată în figura 2.7., componenta se ataşează bibliotecii Simulink. În figura 2.8 este prezentată şi fereastra de configurare a componentei create, acest model va putea fi uşor de configurat ţinându-se cont de parametrii constructivi ai motorului. Un răspuns comparativ al celor două procese, cel real de ordin II şi cel simplificat de ordin I, ce pot modela comportamentul motorului BLDC este prezentat în figura 2.12, simularea validează astfel, simplificarea făcută.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

17

Figura 2.4 Motorul BLDC, modelul cu parametrii

concentraţi

Figura 2.5 Fereastra de configurare a componentei

modelului cu parametrii concentraţi

Figura 2.6 Răspunsul la un semnal de tip treaptă unitar al

motorului BLDC

Figura 2.7 Funcţia de transfer a motorului BLDC

modelat proces ord. I şi II

Figura 2.8 Fereastra de configurare

a motorul BLDC, modelul bazat pe funcţia de transfer

Figura 2.9 Evoluţia comparativă a procesului real de ordin II (albastru) şi a celui simplificat de ordin I (galben), la aplicarea unui semnal de tip treaptă unitate

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

18

Capitolul 3

3 CONTROLERE PID. FILTRE IIR

În literatura de specialitate circuitele în care sunt implementaţi algoritmii de control sunt numite circuite regulatoare sau controlere. Procesul de reglare este asociat circuitelor regulatoare şi implică suprimarea perturbaţiilor pentru a menţine un proces controlat la un punct fix de funcţionare. Pe de altă parte, procesul de control implică o acţiune mai lărgită care constă pe lângă suprimarea perturbaţiilor şi în urmărirea traiectoriei dorite de funcţionare a sistemului. Din literatura de specialitate reiese că există posibilitatea ca majoritatea controlerelor digitale pot fi proiectate ca şi filtre digitale cu răspuns infinit la impuls (IIR – Infinite Impulse Filter). În acest capitol se va face o prezentare generală a arhitecturii şi a modului de acordare a controlerului de tip proporţional-integral-derivativ (PID). Vor fi prezentate succint şi filtrele digitale în special cele cu răspuns de durată infinită (IIR) şi se va prezenta o modalitate de proiectare a controlerelor PID ca şi filtre IIR. 3.1 Controlere PID

3.1.1 Prezentare generală

Pentru controlul în buclă închisă cel mai cunoscut şi mai utilizat algoritm este algoritmul de control PID (proporţional – integral - derivativ). În sistemele de control actuale, mai bine de 95% din buclele de control sunt de tipul PID, de fapt, majoritatea sunt de tipul PI (proporţional – integral). Configuraţia unui sistem cu, controler de tip PID este prezentată în figura 3.1 [5], [91], [97], [125]. Tehnologii de control mai sofisticate, cum este controlul predictiv sunt organizate ierarhic şi au la bază tot controlerele de tip PID care se află la nivelul cel mai de jos al acestei ierarhii. Se poate spune că, controlul de tip PID se regăseşte la nivelul oricărui sistem controlat. În domeniul continuu de timp reprezentarea controlerului PID este conform celei din figura 3.1.

Figura 3.1. Sistem comandat cu controler de tip PID

∫ ++=dt

tdeKdtteK

teKtu DI

P)()(1)()( (3.1)

Kp amplificare proporţională; KI amplificare integrală; KD amplificare diferenţială; e(t) - eroarea dintre răspunsul dorit şi răspunsul real al sistemului.

Controlul realizat de cei trei termeni: integral, proporţional şi derivativ, ţine cont de

comportarea sistemului în trecut, prezent şi viitor. În figura 3.2 sunt prezentate într-o manieră sugestivă influenţele însumate asupra parametrilor de performanţă ai sistemului, ai celor trei coeficienţi de amplificare.

Pentru proiectarea adecvată a unui controler de tip PID trebuie avute în vedere următoarele aspecte: filtrarea zgomotului, ponderarea referinţei, fenomenul de saturare, metoda de acordare al controlerului, modalitatea de implementare digitală a controlerului.

În continuare vor fi dezbătute pe larg fiecare din aspectele mai sus menţionate.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

19

Figura 3.2 Influenţa coeficienţilor de amplificare asupra performanţelor sistemului

3.1.2 Filtrarea zgomotului La implementarea unui controler cu acţiune derivativă trebuie limitată amplificarea frecvenţelor înalte. Acesta se realizează prin înlocuirea termenului derivativ clasic D = sTdY cu cel din relaţia (3.2). Valori tipice pentru N sunt între 8 şi 20. În lipsa termenului derivativ, cazul controlerelor PI, filtrarea semnalului nu mai este atât de stringentă.

YNsT

sKTD

d

d

/1+−= (3.2)

3.1.3 Ponderarea referinţei Legea de control definită de relaţia (3.1) presupune că, aplicarea unui semnal treaptă la intrarea de referinţă a unui sistem de control va avea ca rezultat un semnal de control de tip impuls. Cel mai adesea acest lucru trebuie evitat, din aceeaşi cauză în mod frecvent nici termenul derivativ nu se aplică semnalului de referinţă. Această problemă poate fi evitată prin filtrarea valorii de referinţă înainte de a fi aplicată controlerului. O altă posibilitate este ca asupra semnalului de referinţă să acţioneze numai termenul proporţional, cunoscută ca metoda de ponderare a referinţei. În acest caz relaţia fundamentală (3.1) va deveni:

⎟⎟⎠

⎞⎜⎜⎝

⎛−++−= ∫ ))()(()(1)()()(

0 dttdy

dttdrcTde

TtytbrKtu d

t

i

ττ (3.3) unde, b şi c sunt parametri adiţionali.

Răspunsul la diferite valori ale referinţei poate fi modificat prin intermediul

parametrilor b şi c. Pentru o anumită valoare a factorului de ponderare b între 0 şi 1 se poate obţine un compromis şi sistemul va răspunde suficient de rapid cu oscilaţii mici, respectiv un suprareglaj atenuat. În mod normal parametrului c i se dă valoarea 0 pentru a evita oscilaţiile mari ale semnalului de control datorate modificărilor bruşte ale referinţei.

3.1.4 Fenomenul de saturare Acest fenomen apare datorită interacţiunii dintre acţiunea integrativă a controlerului şi saturaţia procesului controlat, mai este cunoscut şi ca windup. În practică, toţi actuatorii prezintă limite, în cazul unui motor limita este reprezentată de turaţia maximă pe care o poate atinge. La un sistem controlat în buclă închisă, poate apărea situaţia în care variabila de control să atingă limitele actuatorului, în cazul de faţă, motorul atinge viteza maximă, iar în această situaţie bucla de control va fi „ruptă”. În această lucrare va fi pusă în practică metoda cea mai simplă şi mai directă. Această metodă constă în limitarea variaţiei valorii de referinţă, astfel încât valoarea de la ieşirea controlerului să nu atingă niciodată limitele actuatorului.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

20

Altfel spus, reglarea va fi mai lentă făcându-se cu paşi mici, evitându-se astfel suprareglajul accentuat şi oscilaţiile amortizate.

3.1.5 Metode propuse pentru acordarea controlerelor PID Procesul de stabilire a valorilor optime pentru coeficienţii KI, KD, KP, poate fi destul de

dificil deoarece presupune ajustarea simultană a celor trei constante. Dacă valorile nu sunt corect stabilite sistemul devine instabil generând zgomot şi putând duce chiar şi la distrugerea maşinii. Există mai multe metode de acordare a controlerelor, metode clasice, mai empirice, cum este metoda Ziegler Nicholls şi metode moderne care necesită un calcul matematic intensiv, cum este metoda de acordare folosind alocarea polilor. În cazul metodelor de reglare empirice cheia ajustării eficiente a celor trei constante constă în folosirea unui proces care să permită decuplarea, cât mai mult posibil, a efectelor unei amplificări faţă de cealaltă [5].

3.1.6 Acordarea controlerelor PI folosind metoda alocării polilor

În cazul sistemelor de ordinul I şi II utilizarea unui regulator permite alocarea exactă a polilor sistemului rezultant, prin alegerea corespunzătoare a componentelor Kp, Ki şi Kd. Deoarece în capitolul anterior s-a stabilit că, comportarea unui motor de curent continuu fără perii poate fi foarte bine descrisă printr-un proces de ordinul I, în continuare se va insista pe acordarea controlerelor de tip PI, pentru acest model de motor. Acordarea controlerelor PI în domeniul de timp continuu

În figura 3.3 este prezentată schema de reglare a unui proces de ordinul I, comandat printr-un controler PI în domeniul de timp continuu. Funcţia de transfer a procesului este exprimată în forma cea mai generală, vezi relaţia 3.4, care include şi cazul proceselor pur integratoare, având funcţia de transfer :H(s)=b/s. Sistemul echivalent, cu bucla de reacţie închisă are funcţia de transfer (3.5). În cazul acordării controlerelor PI funcţia de transfer echivalentă Hbi(s)este de ordin II, (3.6). Poziţiile polilor se impun astfel încât să corespundă în planul s unui sistem de ordin II, definit prin factor de amortizare ζ şi prin pulsaţia naturală ω. Tipic, alegerea ζ şi ω se face ţinând cont de suprareglajul maxim acceptat şi banda de trecere dorită pentru sistemul rezultant. Egalând numitorii relaţiilor (3.) şi (3.6) rezultă un sistem de două ecuaţii ale cărui necunoscute sunt coeficienţii Kp şi Ki. Relaţia (3.7) prezintă sistemul de ecuaţii şi soluţiile acestuia. Coeficienţii Kp, Ki trebuie să fie > = 0, altfel trebuie impusă o bandă de trecere ω mai mare, astfel încât să se respecte condiţia 2ζ ω – a > 0 .

Figura 3.3 Reglarea unui proces de ordinul I cu regulator PI cu timp continuu

asb

sT

Tk

sTksH P +

=+

=+

=11

)( (3.4)

bKabKssbKsK

HHHHsH

IP

IP

PR

PRbi *)*(

)(1

)( 2 ++++

=+

= (3.5) 22

2

**2*)(

ωωξω

++=

sssH (3.6)

............................;.........**2

;****2

**2**)*(

2

2222

bK

baK

bKabK

ssbKabKss

IP

I

PIP

ωωξ

ωωξ

ωωξ

=−

=

⎩⎨⎧

=+=

⇒++=+++ (3.7)

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

21

Acordarea controlerului PI în domeniul de timp discret În figura 3.4 este prezentată schema de reglare a unui proces de ordinul I, comandat printr-

un controler PI. Echivalentul discret al funcţiei de transfer pentru procesul controlat se obţine cu relaţia (3.8) [57], în care T reprezintă perioada de eşantionare. În cazul procesului descris prin funcţia de transfer (3.8), echivalentul discret este (3.9) şi (3.10).Funcţia de transfer a controlerului PI se obţine alegând un echivalent discret pentru integratorul 1/s, cel mai uzual fiind (3.11). Astfel că funcţia de transfer a controlerului devine (3.12), unde, KP = Kp şi Ki =KIT, sunt coeficienţi proporţionali şi integrali ai regulatorului discret. Funcţia de transfer a sistemului în buclă închisă a sistemului este (3.13). Polii acestei funcţii de transfer se impun astfel încât să corespundă în planul s unui sistem de ordin II definit prin factorul de amortizare ζ şi pulsaţia naturală ω, având polii (3.14). Ţinând cont că unui punct s1 din planul complex Laplace, îi corespunde în planul complex Z punctul Tsez 1

1 = , echivalentul discret pentru polii s1,2 este (3.15). Prin urmare polinomul dorit pentru funcţia de transfer în buclă închisă este (3.16). Egalând numitorii relaţiilor (3.13), (3.15) rezultă un sistem de două ecuaţii ale cărui necunoscute sunt Kp şi Ki, sistem ce are soluţia (3.17). Coeficienţii Kp, Ki trebuie să fie > = 0, dacă în urma procesului de acordare Ki rezultă negativ, trebuie impusă o bandă de trecere ω mai mare.

Figura 3.4 Reglarea unui proces de ordinul I cu controlere

PI discret

⎥⎦⎤

⎢⎣⎡

−−

=− hT

PP ez

zs

sHZz

zzH **)(1)( (3.8)

d

dP az

bzH

−=)( (3.9)

⎪⎩

⎪⎨⎧

=≠−=

== −− aT

daT

dd eaşiadacăe

abb

adacăTbb ,,0,),1(*

0,,*

(3.10)

11

−→

zT

s (3.11)

11)(

−+=

−+=

zK

KzTKKzH i

piPR (3.12)

dddd

dbi aKpKibabKpzz

bKpKizKpzH

+−+−−+−+

=)(*)1*(

*)*()( 2 (3.13)

22,1

22 102 ξωξωωξω −±−=⇒=++ jsss (3.14)

))1sin()1(cos( 222,1 ξωξωξω −+−= − TjTez T

(3.15)

⎪⎩

⎪⎨⎧

==−−=+−=++

T

T

ezzpTezzpundeppzz

ξω

ξω ξω2

212

2211

212

*)1cos(**2)(,,* (3.16)

⎪⎪⎩

⎪⎪⎨

⎪⎪⎩

⎪⎪⎨

+−

=

++=

⇒+−=−−=

pd

di

d

dp

ddpi

ddp

Kbap

K

bap

K

abKKpabKp

2

1

2

1

1

*)(1*

(3.17)

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

22

3.1.7 Modalitatea de implementare digitală a controlerului PID Pentru implementare pe un sistem digital a unei legi de control exprimate în

domeniul timp , cum ar fi un algoritm de reglare PID, trebuie folosită o metodă de aproximare a derivatei şi a integralei [5, 10, 91]. Forma discretă , implementabilă digital în hardware a controlerului PID este dată de relaţiile (3.18), (3.19), (3.20). - termenul proporţional:

))()(()( kkspk tytbyktp −= , b=1 ))()(()( kkspk tytyktp −= (3.18)

- termenul integral; unde: h=Ts )()()( 1 kIkk tehKtiti +=+ - termenul derivativ: unde: N – coeficient cu valori tipice 8-20;

))()(()()( 11 −− −−= kkDPkk tytyCKKtCDtd

NhKKKC

PD

D

+= (3.19)

Astfel controlerul de tip PID se scrie ca suma a celor trei termeni:

)()()()( kkkk tdtitptu ++= (3.20)

3.1.8 Specificaţii de proiectare ale controlerelor PID Atunci când trebuie rezolvată o problemă de control, trebuie înţeles scopul principal al

controlului. Există două tipuri de cerinţe care se impun atunci când se rezolvă o problemă de control: urmărirea referinţei şi rejecţia perturbaţiilor. Urmărirea referinţei în cazul aplicării unui semnal de tip treaptă, include parametri cum ar fi timpul de creştere, timpul de stabilizare, suprareglajul, eroare staţionară. Timpul de creştere reprezintă intervalul de timp în care semnalul variază între 10-90% din valoarea lui staţionară. Timpul de stabilizare se măsoară din momentul aplicării semnalului treaptă până în momentul în care răspunsul se apropie la p% din valoarea staţionară. Valoare tipică pentru p este 2. Suprareglajul exprimat ca diferenţă dintre prima valoare maximă a mărimii de ieşire şi valoarea staţionară are o valoare tolerată de 8-10% din valoarea staţionară. Există însă situaţii când se impune un răspuns supra-amortizat în care suprareglajul să fie nul. Eroarea staţionară reprezintă abaterea de la valoarea staţionară a ieşirii după ce sistemul este stabil. Această eroare este tolerabilă în limitele a 1-2%. În general în sisteme controlate cu controler de tip PI această eroare este nulă.

3.2 Controlere PID implementate ca şi filtre IIR

Aşa cum a fost amintit într-un paragraf anterior majoritatea controlerelor digitale pot fi reprezentate ca şi filtre de tip impuls cu răspuns infinit (IIR – Infinite Impulse Filter) [39]. În continuare este prezentată relaţia matematică care reprezintă forma digitală a unui filtru. Aceşti coeficienţi trebuie astfel selectaţi încât controlerul să producă răspunsul dorit. Structura controlerului digital asociat relaţiei (3.21) este prezentată în figura 3.5. În figură blocurile Z-1

reprezintă întârzieri ale unei perioade de eşantionare. Funcţia de transfer a controlerului de tip PID va avea următoarea formă (3.22). Folosind

transformata z biliniară (BZT), [38] de mapare a planului s în planul z, respectiv una din relaţiile (3.23). Se obţine transformata z a controlerului PID (3.24). După prelucrări matematice, transformata z a controlerului PID poate fi reprezentată ca funcţie de transfer de ordinul 2, relaţia (3.25). Conform relaţiei (3.21) forma generală a unui un filtru IIR de ordin II poate fi scrisă (3.26). Prin egalarea numărătorului şi ai numitorului relaţiilor (3.25) şi (3.26) se

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

23

obţin coeficienţii filtrului, (3.27) în funcţie de amplificările Kp, Ki, Kd ale controlerului PID. În concluzie, un controler PID poate fi proiectat ca şi filtru digital de ordinul 2.

Figura 3.5 Diagrama controlerului digital

∑ ∑= =

−−−=n

i

n

iii ikybikxaky

0 1

)()()( (3.21)

unde: - k - eşantionul curent, pentru o anumită

perioadă de timp T; - y(k) - semnalul de ieşire; - x(k) - semnalul de intrare;

ai şi bi - coeficienţii filtrului.

sKs

KK

sEsUD D

IPcontroler ++==

)()( (3.22)

112

+−

=zz

Ts sau 1

1

112

+−

=zz

Ts (3.23)

⎟⎟⎠

⎞⎜⎜⎝

⎛+−

+⎟⎟⎠

⎞⎜⎜⎝

⎛−+

+= −

1

1

1

1

112

11

2)(

zz

TK

zzTK

KzD DIP (3.24)

( ) ( )2

21

1)/22/(/4/22/)( −

−−

−+−+−+++

=z

zTKTKKzTKTKTKTKKzD DIPDIDIP (3.25)

22

11

22

110

1)( −−

−−

++++

=zbzbzazaazD (3.26)

TK

TKKa

TKTKa

TKTKKa

DIP

DI

DIP

22

42

22

2

1

0

++−=

−=

++=

1

0

2

1

−==

bb

(3.27)

3.3 Implementare Matlab/Simulink controlere PID şi filtre IIR

S-au realizat implementările cu blocuri Simulink

pentru controler PID formă continuă, controler PID forma discretă şi filtru IIR. Pentru a avea o referinţă, s-a implementat în Simulink şi forma discretă a controlerului PID, cu ajutorul unui bloc parametrizabil din biblioteca Simulink. Coeficienţii filtrului se calculează într-un fişier Matlab, conform relaţiei 3.27, în funcţie de amplificările controlerului PID. Amplificările se calculează conform exemplului de calcul prezentat în paragrafele anterioare. Rezultate simulării celor două modele de controler PID şi a filtrului IIR sunt prezentate în figura 3.6. Din simulare se poate observa că ieşirea procesului controlat IIR nu diferă de cea a procesului controlat PID, şi aceasta în condiţiile în care s-au folosit aceleaşi valori pentru coeficienţii de amplificare (Kp=300, Ki=40), în cazul ambelor variante de control. În concluzie se confirmă faptul că un controler PID poate fi proiectat ca şi filtru IIR, iar metoda de acordare prin alocarea polilor este viabilă şi pentru acest caz.

Figura 3.6 Răspunsul motorului controlat PID şi IIR

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

24

Capitolul 4

4 PLATFORMA HARDWARE PROPUSĂ PENTRU CONTROLUL MOTORULUI BLDC CU CIRCUITE FPGA

În acest capitol se va face o descriere a structurii modulelor hardware şi a resurselor,

folosite pentru controlul motorului BLDC. De asemenea se va face şi o prezentare a parametrilor motorului BLDC împreună cu senzorii montaţi pe arborele acestuia. În final va fi prezentată modalitatea de interconectare a modulelor de control şi de comandă la ansamblul format de motorul BLDC şi senzori. 4.1 Structura platformei de comandă şi control

Platforma este alcătuită din două module hardware: modulul de control reprezentat de

placa cu circuitul FPGA şi modulul de comandă reprezentat de placa care conţine tranzistorii de putere. Cele două module hardware sunt interconectate între ele prin intermediul unei magistrale pe care semnalele au nivele logice compatibile CMOS, 3,3V. Conectarea la PC se realizează prin intermediul portului JTAG prezent pe placa Spartan-3 şi prin intermediul unui cablu adaptor la portul paralel al PC-ului.

În figura 4.1 este prezentată diagrama bloc cu arhitectura celor două module, modul de interconectare între ele şi modul de interconectare cu PC-ul şi cu motorul BLDC.

Figura 4.1 Configuraţia hardware pentru controlul motoarelor BLDC

Conectarea cu motorul BLDC se realizează prin intermediul plăcii PM-50 care amplifică semnalul de comandă provenind de la placa de control şi îl furnizează mai departe celor trei înfăşurări statorice ale motorului BLDC. Pe placa PM-50 se face şi achiziţia şi adaptarea nivelelor semnalelor provenind de la senzorii Hall şi de la codificatorul de poziţie, semnale ce vor fi transmise mai departe plăcii de control cu circuit FPGA. Placa PM-50 permite de asemenea şi monitorizarea curenţilor din cele trei ramuri de invertor.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

25

4.2 Modulul de control cu circuit FPGA

Modulul hardware cu circuit FPGA este produs de firma Digilent Inc, poarta numele de Spartan-3 şi are ca şi componentă centrală circuitul FPGA XC3S200 din familia Spartan3 [24], [137]. Cu ajutorul acestui modul vor fi implementate toate funcţiile de control şi monitorizare ale motorului BLDC .

4.3 Descriere arhitectură circuite FPGA

Ariile logice reconfigurabile sau FPGA au fost introduse în 1985 de firma XILINX. Poziţia de lider a fost păstrată prin continua îmbunătăţire a circuitelor, şi prin oferta soluţiilor de proiectare completă. Procesul de proiectare cu circuite XILINX FPGA este rapid şi eficient, iar durata acestui proces este de câteva zile în comparaţie cu, câteva săptămâni, termen obişnuit cu alte tipuri de circuite programabile. Structura internă este organizată într-o matrice de celule înconjurate la periferie de celulele de intrare/ieşire (I/O). Segmentele de interconexiuni din metal pot realiza prin intermediul punctelor de conexiune, legături între celulele logice configurabile şi celulele de intrare/ieşire. Abundenţa de porţi logice, registre, interfeţe I/O cu o viteză de răspuns mare, sunt doar câteva caracteristici ale circuitelor logice reprogramabile FPGA. Seria circuitelor cu aria de configurare de tip SRAM include în principal următoarele familii de produse: Spartan-I, Spartan-II, Spartan 3, Virtex, Virtex-II, Virtex-II Pro şi Virtex-IV şi mai nou Virtex-V [24, 83, 127, 137].

4.3.1 Familia de circuite FPGA Spartan-3 Familia de circuite FPGA Spartan-3 a fost proiectată în mod expres pentru a veni în întâmpinarea cerinţelor de capacitate sporită şi cost redus, specifice pieţei bunurilor de larg consum. Această familie de circuite are opt membrii cu capacităţii între 50.000 şi cinci milioane de porţii logice, vezi tabelul T4.1. Circuitele din această familie sunt realizate în tehnologie 90nm şi pot fi implementate proiecte cu frecvenţă de lucru de până la 185 MHz . Familia de circuite Spartan-3 este o alternativă superioară circuitelor ASIC programate prin mască. Circuitele FPGA permit reducerea costurilor iniţiale de producţie, a ciclului de dezvoltare implementare a aplicaţiei şi înlătură inflexibilitatea specifică circuitelor ASIC

4.3.1.1 Arhitectura familiei de circuite Spartan-3 Circuitele FPGA din familia Spartan-3 sunt alcătuite din cinci elemente programabile fundamentale: blocurile logice configurabile (CLB), blocurile de intrare ieşire (IOB), blocurile de memorie RAM, blocurile de multiplicatoare şi blocurile DCM.

4.3.2 Analiza comparativă performanţe/preţ circuite FPGA Pentru o imagine de ansamblu mai bună asupra circuitelor FPGA produse de firma

Xilinx în tabelul T4.1, este prezentată o analiză comparativă ale caracteristicilor principalelor familii. *Capacitatea era exprimată iniţial în număr de porţi logice, ulterior s-a trecut la exprimarea în sclice-uri, şi în cele din urmă în număr de celule logice. Echivalenţele dintre cele trei modalităţi de exprimare a capacităţii sunt prezentate mai jos: 1 celulă logică = 1 bloc LUT cu 4 intrări + 1 bistabil de tip D 1 slice = 2 X celulă logică.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

26

Tabelul T4.1 Comparaţie performaţe/preţ cicuite FPGA

Capacitatea*

Familia Tehnologia (nm)

Nr blocuri MAc

Frecvenţa (MHz) Celule

logice Porţi logice (milioane)

Preţ ($)***

Virtex5LX330 65 192 550 330.000 22,1M** - Virtex4SX55 90 512 500 55.296 3,6M** 1000-1200 Virtex4FX140 90 192 500 142.128 9,5M** - Virtex4LX200 90 96 500 200.000 13,5M** 300-340 VirtexIIPro100 130 444 300 125.136 9M** 109-1600 VirtexII 150 168 245 93.058 8M - Spartan3S5000 90 104 185 74.880 5M 9,5-100 ** Valori aproximative, calculate, utile pentru comparaţie. ***Preţurile sunt orientative şi variază în funcţie de capacitatea circuitului din familia respectivă (ex. spartan3S50 = 9,5$, iar spartan3s1500 = 85$), de numărul de pini şi tipul de capsulă şi de asemenea de numărul de bucăţi achiziţionate.

Determinarea numărului de porţi logice în funcţie de exprimările anterioare nu este clar definită şi depinde, conform specificaţiilor date de producător, de tipul de aplicaţiei implementat.În cazul circuitelor Virtex II şi Spartan 3 capacitatea este exprimată în număr de porţi logice. Plecând de la aceste valori se încearcă o aproximare a capacităţii exprimate în porţi logice pentru toate circuitele din tabel. Pentru logica de interconectare (glue logic) sau pentru implementarea proiectelor mai simple se pot folosi şi circuite CPLD (familia XC9500) ale căror capacităţi pot varia între 800 – 6400 porţi logice şi ale căror preţuri sunt între 1,65 – 14, 79$.

4.4 Modulul de comandă cu tranzistoare MOSFET

Convertizoarele statice – invertoarele care alimentează motoarele fără perii trebuie să răspundă unor cerinţe diverse, atât pentru regimul staţionar de funcţionare, cât şi pentru regimul dinamic. În continuare vor fi enumerate câteva caracteristici pe care trebuie să le prezinte un invertor. Pentru aplicaţii în care valoarea tensiunii nu depăşeşte 250V tranzistoarele MOSFET reprezintă prima opţiune, există o gamă destul de restrânsă de tranzistoare IGBT pentru tensiuni mai mici de 600V.

Placa de comandă PM50 are ca şi componentă principală un invertor trifazat bazat pe tranzistorii MOSFET IRF540. Placa poate fi alimentată cu tensiune în plaja 9-36 V, poate furniza un curent nominal motorului 1,7A şi poate suporta un supracurent de 6,33A. Frecvenţa maximă de comutaţie este de 100KHz, dar valoarea tipică a acesteia este de 20KHz [45, 46, ], [112]. Pentru aplicaţia de control a motorului BLDC va fi folosit conectorul J3, nivelele de semnal ale plăcii Spartan-3 fiind 3,3V. După cum se poate observa în figura 4.1 placa PM50 dispune de interfeţe de conectare a senzorilor Hall, a codificatorului optic şi a motorului BLDC.

4.5 Motorul BLDC şi traductoarele de poziţie

După cum s-a putut observa în capitolul 1, pentru a putea să funcţioneze motorul BLDC are nevoie de senzori Hall pentru determinarea poziţiei aproximative a rotorului. Dacă însă se doreşte determinarea cu precizie mare a acestei poziţii se va folosi un codificator optic, în

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

27

acest caz HEDS-9xxx, care în funcţie de tip poate furniza la ieşire trei semnale şi complementele acestora. Motorul BLDC

Motorul ales pentru acest experiment este un motor de curent continuu fără perii produs de firma Pittman Express [93]. Acest motor are montaţi pe arbore senzori Hall şi un codificator de poziţie. Datele constructive ale acestui motor sunt prezentate în tabelul T4.2.

Tabel T4.2. Datele Constructive ale motorului BLDC Date constructive Simbol Valoare Tensiune nominală VN [V] 19 Viteza în gol SNL[rpm] 8000 Valoarea de vârf a cuplului Tpk[mNm] 94 Valoarea cuplului nominal TC[mNm] 29 Rezistenţa Rfază[Ω] 5,25 Inductivitatea Lfază[mH] 0,46 Curent în gol INL[mA] 72 Curent de vârf IP[A] 1,3

4.6 Standul experimental pentru controlul motorului BLDC cu circuite

FPGA

În figura 4.2 este prezentat standul experimental pentru controlul motorului BLDC folosind circuite FPGA. În figura 4.3 sunt prezentate configuraţiile pinilor corespunzători conectorilor B1 şi J1 de pe modulul de control cu circuit FPGA (Spartan-3), respectiv de pe modulul de putere (PM50).

Figura 4.2 Standul experimental pentru controlul motorului BLDC cu circuite FPGA

Figura 4.3 Configuraţiile pinilor corespunzători conectorilor B1 şi J1

Notaţiile din figura 4.3 sunt: Q1-Q6 – semnalele pentru cei şase tranzistori; HA, HB, HC - semnale provenind de la senzorii Hall; EA, EB, EZ - semnale provenind de la codificatorul de poziţie; Err - semnal de eroare dat de placa PM50; PWM - ieşire direct de la generatorul PWM implementat în FPGA; B1_21 -B1_35 - semnale de uz general, folosite pentru testare, etc; NC - neconectat.

Configurarea circuitului FPGA, controlul în timp real şi monitorizarea principalilor

parametri ai motorului BLDC se face prin intermediul portului JTAG conectat la portul paralel al unui PC, pe care rulează Matlab/Simulink

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

28

Capitolul 5

5 METODA DE IMPLEMENTARE ŞI TESTARE HARDWARE-SOFTWARE ŞI MEDIILE SOFTWARE

UTILIZATE LA IMPLEMENTAREA HARDWARE A UNUI SISTEM DE CONTROL PENTRU MOTORUL BLDC

Obiectivul acestui capitol constă în elaborarea unei metode rapide de implementare

facilă în hardware a algoritmilor de control şi a interfeţelor conexe acestora, pentru comanda unui motor. Metoda trebuie să permită proiectanţilor sistemului de control să se concentreze asupra specificaţiilor de nivel înalt şi să permită obţinerea unui rezultat rapid în ceea ce priveşte performanţele algoritmului de control ales şi costurile generate de implementarea acestuia în hardware. 5.1 Controlul hardware digital în domeniul servomotoarelor electrice

Datorită cerinţelor de performanţă crescute şi de asemenea datorită creşterii complexităţii sistemelor de control utilizarea mai multor procesoare de semnal sau a mai multor microcontrolere asistate şi de circuite ASIC devine indispensabilă. Aceasta duce la creşterea complexităţii sistemelor de control prin creşterea numărului de module implicate şi creşterea numărului de conexiuni dintre acestea, având ca rezultat o mentenabilitate şi o modernizare greoaie a sistemului. În cazul implementări algoritmilor care necesită timpi reduşi de execuţie, modernizarea sistemului de control este de asemenea îngreunată şi de folosirea limbajelor de asamblare, specifice fiecărui procesor în parte. Pentru rezolvarea problemelor generate de utilizarea DSP-urilor şi a microcontrolerelor în sistemele de control, pe piaţă se impune o nouă metodă de control aşa numitul control hardware, implementat cu circuite FPGA. Această metodă de control hardware permite creşterea de zeci de ori a vitezei de execuţie a algoritmilor de control. De asemenea această metodă permite noi modalităţi de dezvoltare a algoritmilor de control. Spre deosebire de modalităţile clasice în care algoritmii de control erau implementaţi cu ajutorul limbajelor de asamblare sau a celor de nivel înalt, noua metodă permite folosirea elementelor vizuale de proiectare, elemente organizate în blocuri de control.

5.1.1 Resurse software şi hardware implicate în proiectarea şi implementarea controlului hardware digital pentru motorul BLDC

Dezvoltările recente în sinteza circuitelor digitale au automatizat în mare măsură procesul

de implementare în ASIC sau FPGA a unor algoritmi specifici procesării digitale a semnalelor. În mod tradiţional aceste circuite erau dezvoltate folosind numai limbaje de descriere hardware cum ar fi VHDL sau Verilog, dar acestea oferă o flexibilitate destul de redusă în ceea ce priveşte simularea algoritmilor de control. Aceste probleme au fost depăşite de recenta introducere a unor unelte de sinteză care, dintr-o descriere comportamentală în Matlab/Simulink a unui circuit de procesare digitală a semnalelor, realizează sinteza directă a unui circuit digital adecvat (folosind limbajul VHDL ca limbaj intermediar). Mai exact modelul Matlab/Simulink este conceput folosind toolboxul Xilinx Blockset. Comportamentul modelului dezvoltat cu toolboxul menţionat anterior este simulat cu Simulink şi apoi

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

29

transformat într-o descriere de tip VHDL folosind utilitarul Xilinx System Generator. Proiectul este în cele din urmă sintetizat prin procedeul obişnuit pentru descrierile VHDL şi implementat în FPGA [140]. Arhitectura software a mediului integrat HW/SW pentru implementarea sistemelor de control permite pe de o parte implementare părţii software a aplicaţiei, care constă în modelarea şi simularea comportamentului procesului controlat (motor BLDC) respectiv a controlerului (PI), şi pe de altă parte proiectarea părţii hardware, adică implementarea şi testarea controlerului şi a blocurilor conexe în FPGA. O simplă enumerare a resurselor software întrebuinţate pentru dezvoltarea mediului integrat HW/SW arată complexitatea acesteia, vezi şi figura 5.1:

Matlab – mediul de programare utilizat pentru modelarea proces controlat şi a controlerului, suport pentru toolboxul Simulink; Simulink – pentru simulare sistem de control şi proces controlat. System Generator – rulând în cadrul programului Simulink, utilizat pentru: - modelarea cu blocuri Xilinx a SC; - generarea fişierelor proiect Xilinx; - generarea codului VHDL sintetizabil; - generarea unui fişier Testbench în limbaj VHDL pentru simularea controlerelor PID; - generarea fişierelor de constrângeri. Xilinx ISE – mediul integrat pentru sinteza şi implementarea în FPGA, rulează împreună cu: VHDL – folosit pentru descrierea în totalitate a unor blocuri ale SC, pentru includerea unor blocuri de tip proprietate intelectuală (IP), pentru includerea diagramelor de stare (FSM) şi de asemenea ca limbaj intermediar între Simulink şi Xilinx;. - ModelSim XE – permite simularea în diverse etape a SC; - Impact – folosit pentru încărcarea fişierului de configurare în FPGA; - ChipScope – utilizat în faza de depanare a proiectului, permite vizualizarea circuitului implementat în FPGA;

Figura 5.1 Resursele software şi hardware implicate în proiectarea cu circuite FPGA a controlului unui servomotor

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

30

5.1.2 Metoda clasică de implementare a sistemelor de control în FPGA Metoda consacrată de implementare a sistemelor de control (SC) în FPGA cuprinde

două etape distincte una de cealaltă, vezi figura 5.2: 1. Modelarea şi simularea sistemului de control cu Matlab/Simulink; 2. Descrierea în VHDL a algoritmilor de control şi a altor componente conexe

acestuia, implementarea în hardware şi verificarea sistemului [83].

Există însă, posibilitatea ca proiectantul sistemului de control să aibă cunoştinţe insuficiente de limbaj VHDL astfel că, pentru a exploata avantajele arhitecturii FPGA şi a evita o implementare greşită, a doua etapă trebuie să fie executată de un proiectant FPGA. Acesta la rândul său poate să nu fie expert în sisteme de control, iar implementarea să nu funcţioneze exact cum a fost concepută de către proiectantul sistemului. De asemenea nu există posibilitatea de a co-simula sistemul astfel că eventualele probleme pot fi observate foarte târziu, abia după implementarea în FPGA şi după testarea circuitului.

Figura 5.2 Metoda clasică de proiectare a SC

implementabile în circuite digitale reprogramabile

5.2 Metoda hardware-software propusă pentru testarea/implementarea

controlului hardware digital În figura 5.1 este prezentată multitudinea de programe care stau la dispoziţia

proiectantului de circuite digitale şi sisteme de control. Mediul rezultat în urma unificării respectivelor programe poate să pară eterogen şi poate crea confuzie celor nefamiliarizaţi cu proiectarea de circuite digitale. În continuare autorul propune un algoritm de proiectare a sistemelor de control implementabile hardware care să exploateze la maxim facilităţile oferite de fiecare pachet de programe prezentat în figura 5.1.

Algoritmul de proiectare a sistemelor de control propus este prezentată în figura 5.3. Din figura se poate observa că există două modalităţi de implementare hardware a unui sistem de control digital, notate ca algoritm I şi algoritm II. De asemenea se poate observa că indiferent de algoritmul abordat, un proiect trebuie să parcurgă 6 etape între faza de proiectare, simulare, implementare şi testare în hardware. În continuare vor fi prezentate cele 6 etape, urmărind diagrama din figura 5.4:

1. După faza de elaborare a unei diagrame bloc a sistemului de control (vezi capitolul 6), în care intrările şi ieşirile unui bloc sunt bine definite de asemenea şi funcţionarea acestuia, se poate trece la descrierea blocurilor. Astfel că, în prima etapă se va alege modul optim de descriere a blocurilor sistemului de control. În funcţie de rolul blocului aceste descrieri pot fi bazate pe diagrame de stare (FSM-finite state machine), pe blocuri de tip IP (proprietate intelectuală ), pe reprezentări schematice şi cel mai important în cod HDL (VHDL sau Verilog). Oricare ar fi modalităţile de descriere alese iniţial, în general din prima etapă proiectul este convertit pentru următoarea etapă sub formă de cod HDL.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

31

Figura 5.3 Metoda hardware-software propusă pentru implementarea/ testarea controlului hardware digital

2. În cea de a doua etapă descrierea HDL va trece prin faza de sinteză, după care se va

putea face o simulare funcţională folosind simulatorul logic ModelSim proprietar firma ModelTech.

3. Dacă simularea funcţională este satisfăcătoare se va trece la implementarea blocului proiectat, astfel că se vor executa automat fazele de translatare, mapare şi plasare a logicii de configurare. În această fază fiind necesare bibliotecile tehnologice, de la producătorul circuitului care urmează a fi programat.

4. După implementare se poate trece la generarea fişierului de configurare. Cel mai frecvent de tip PROM (format .mcs) pentru programarea memoriei flash, sau de tip bitstream (format .bit) pentru programarea directă a circuitului FPGA.

5. Pentru configurarea efectivă a circuitului FPGA se apelează la programul iMPACT, care prin intermediul portului paralel al calculatorului şi a unui cablu JTAG va trimite şirul de biţi către placa care conţine memoria flash şi circuitul FPGA.

6. În ultima etapă se poate face o testare a comportamentului în hardware a blocului de control proiectat. Pentru aceasta se foloseşte programul ChipScope.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

32

Algoritmul I ale cărui etape au fost descrise, reprezintă modalitatea clasică de implementare hardware a unui sistem digital. Avantajul acestui algoritm constă în faptul că este bine cunoscut de proiectanţii de circuite digitale, mai puţin însă de cei de sisteme de control. De asemenea un alt avantaj este că acest algoritm este integrat în medii complete de proiectare, cum ar fi XILINX ISE, nefiind necesară învăţarea altor softuri suplimentare. Un dezavantaj este faptul că proiectantul unui sistem de control, pentru a aplica acest algoritm, trebuie să fie bun cunoscător a unui limbaj HDL şi a unui mediu de dezvoltare pentru acest limbaj. Un alt dezavantaj este reprezentat de modalitatea destul de greoaie de simulare testare, a proiectului. Este necesară scrierea de coduri HDL suplimentare (aşa numite testbench-uri) necesare generării stimulilor pentru simulare. Când proiectul devine complex acesta devine greu de administrat. Un alt dezavantaj, poate cel mai important, este reprezentat de faptul că nu este posibil ca sistemul, în faza de testare, să interacţioneze cu modele matematice ale procesului pe care trebuie să-l controleze. Astfel că în faza de testare în hardware pot să apară situaţii neprevăzute. Practic urmând acest algoritm nu vom avea nici o interacţiune între sistemul de control şi sistemul controlat decât în faza finală când sistemul de control este implementat în hardware, vezi figura 5.1.

Algoritmul II de proiectare a unui sistem de control este dezvoltat să respecte aceleaşi etape ca şi algoritmul I, însă are o flexibilitate mai mare şi vine să compenseze toate dezavantajele amintite anterior. Acest algoritm se bazează pe platforma Simulink/System Generator, care are la bază o bibliotecă cu blocuri parametrizabile, simulabile cu Simulink şi implementabile în FPGA. În prima etapă a acestui algoritm descrierea proiectului se face folosind blocurile din biblioteca programului sau pot să integreze coduri HDL (descrise în algoritmul I) sub formă de blocuri numite black box. În următoare etapă, proiectantul are trei opţiuni. Astfel, el poate să aleagă între a face o simulare folosind resursele Simulink (Scope), semnalul va fi reprezentat analogic (amplitudine funcţie de timp, sau raportat la alt semnal). A doua opţiune este reprezentată de aşa numita co-simulare HDL, în care se foloseşte ca simulator programul ModelSim, semnalul va fi reprezentat digital, vizualizarea acestuia putându-se face pentru perioade de timp relativ scurte. Ultima opţiune este reprezentată de co-simularea HIL, în care se face direct verificare proiectului implementat în hardware. Trecerea direct la această etapă înainte de ce de co-simulare HDL nu este recomandat deoarece există şanse foarte mari ca proiectul implementat să conţină erori. Din diagrama 5.3 se poate observa că algoritmul II în faza de implementare hardware se bazează tot pe algoritmul I, doar că unele etape sunt comprimate. Cu A, B, C s-au notat cele trei zone unde algoritmul II poate interacţiona (A) sau chiar este obligat să interacţioneze (B,C) cu algoritmul I. În faza de descriere se poate observa că, diagrama cu blocuri System Generator poate fi convertită în fişier HDL, şi se poate continua cu simularea şi implementarea acesteia folosind algoritmul I. De asemenea este posibil ca după descrierea cu blocuri să se treacă direct la generarea fişierului bitstream (punctul B) şi implementarea acestuia, lucru nerecomandat însă fără a se face o co-simulare HDL în prealabil. Din cele expuse se pot observa uşor avantajele oferite de cea de a doua metodă. Astfel, flexibilitate este evidenţiată prin multitudinea de opţiuni pe care proiectantul le are încă din faza de descriere. În faza de simulare s-a putut vedea că există trei modalităţi care acoperă atât simularea în domeniul de timp continuu, simulare necesară deoarece sistemul de control interacţionează cu sistemul controlat care este analogic şi poate fi descris prin funcţii de transfer continue. De asemenea este acoperită şi simularea digitală a sistemului cu precizie ridicată, lucru foarte util pentru frecvenţe mari , respectiv testarea după implementarea în hardware.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

33

5.3 Metode de simulare şi testare în timp real a sistemelor de control Simularea în timp real presupune că semnalele de intrare şi de ieşire ale sistemului

simulat prezintă aceleaşi valori raportate la timp, ca şi semnalele sistemului real. Pe durata procesului de proiectare a sistemului de control (SC) sunt posibile diferite tipuri de simulări: simulări fără limită de timp, practic controlul prototipului, simulări parţiale în timp real, în care sunt simulate numai o parte a componentelor buclei de control (hardware in the loop) şi simulări în care atât componentele buclei de control cât şi procesul controlat sunt reprezentate prin modele matematice (software in the loop) vezi figura 5.4.a, [130]. În această lucrare se propune un nou tip de simulare mixt, bazat pe simularea cu hardware în buclă (HIL), vezi figura 5.4.b. La acest tip de simulare atât componentele buclei de control cât şi sistemul controlat sunt reale. În software (Simulink) fiind achiziţionate doar semnalele de control ale sistemului şi semnalele reprezentând răspunsul sistemului, iar simularea fiind fără limită de timp. Această metodă de simulare este utilă la monitorizarea din interior a activităţii sistemului şi permite şi vizualizarea acelor semnale cu o evoluţie rapidă în timp, în acest caz răspunsul sistemului la un semnal de tip treaptă.

Figura 5.4.a Metode cunoscute de simulare în timp real

Figura 5.4.b Metoda propusă pentru simulare-testare în timp

real

5.3.1 Metoda de Co-simulare HDL Diagrama din figura 5.1 prezintă una din modalităţile de simulare şi testare a unui sistem

de control folosind System Generator. Această metodă poartă numele de Co-simulare HDL. Ea permite utilizarea în proiect a unor blocuri de tip Black Box care pot include coduri VHDL dezvoltate de utilizator sau module de tip proprietate intelectuală, împreună cu blocuri Xilinx System Generator. Avantajul folosirii acestei metode constă în faptul că pentru testarea oricărui cod VHDL nu mai este necesară aplicarea de stimuli manuali direct în ModelSim sau crearea de fişiere de testbench.

5.3.2 Metoda de Co-simulare în timp real cu hardware în buclă O altă modalitate de simulare/testare a unui sistem de control folosind System

Generator este prezentată în diagramele din figurile 5.1, 5.3. Acesta este un proces tipic pentru verificare rapidă cu hardware în buclă cunoscută sub numele de „Hardware in the loop Co-Simulation”. În acest proces din Simulink/System Generator se generează un proiect sintetizabil şi implementabil folosind programul Xilinx, rezultând fişierul de configurare .bit şi un bloc „hardware in the loop” (HIL). Adăugând acest bloc proiectului, utilizatorul poate porni simularea care încarcă fişierul de configurare în hardware şi preia în timp real răspunsul circuitului hardware, care este reintrodus în Simulink, iar rezultatele pot fi vizualizate folosind blocurile scope din Simulink.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

34

Capitolul 6

6 IMPLEMENTAREA ÎN CIRCUITUL FPGA A BLOCURILOR BUCLEI DE CONTROL HARDWARE

DIGITAL

În acest capitol se va prezenta arhitectura sistemului de control sub formă de diagramă bloc şi se va face o descriere a funcţionării întregului sistem. De asemenea, se va face proiectarea, simularea şi implementarea în hardware a fiecărui bloc în parte şi în final a întregii bucle de control. 6.1 Structura şi funcţionarea sistemului de control implementat în FPGA

6.1.1 Descrierea structurii sistemului de control În figura 6.1 este prezentată structura sistemului de control şi modul de interconectare al acesteia cu modulul de putere şi cu motorul BLDC. Sistemul de control cuprinde următoarele blocuri funcţionale: bloc introducere date intrare (ex. viteza de referinţă, coeficienţi de amplificare), bloc conversie format date de intrare (ex. BCD / binar), regulator sau controler (P, PI, PID sau PID-IIR), bloc de generare semnal PWM (standard sau simetric), bloc de comutaţie, bloc de conversie frecvenţă / viteză (tahometrul), bloc de interfaţă cu modulul de afişare (ex. conversie binar / BCD / 7 segmente). S-au demarcat prin linie întreruptă toate acele blocuri care pot fi implementate în circuitul FPGA. Aceste blocuri vor fi proiectate fie în cod VHDL (bloc PWM, convertor frecvenţă/viteză, modul conversie binar-7-segmente şi altele) fie ca automat de stări (bloc de comutaţie) sau cu blocuri System Generator ( controler PI şi alte blocuri de la nivele mai inferioare). Toate modulele vor fi simulate funcţional, co-simulate HDL, co-simulate HIL şi implementate în hardware.

6.1.2 Descrierea funcţionării sistemului de control

După cum se poate observa în diagrama din figura 6.1, într-un singur circuit FPGA este implementat un sistem complet de achiziţie de date, de generare semnale de control şi de asemenea, sunt implementate interfeţe care permit introducerea datelor şi vizualizarea acestora. Într-o primă fază pentru introducerea valorilor de referinţă pentru turaţie şi coeficienţii de amplificare pot fi folosite butoanele şi comutatoarele prezente pe placa de test.

Figura 6.1 Diagrama bloc a sistemului de control pentru motorul BLDC

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

35

De asemenea tot prin intermediul lor se va face selectarea valorii ce va fi afişată la un moment dat. Formatul iniţial al vitezei de referinţă este BCD, format care va fi convertit în binar pentru a putea fi comparat cu formatul binar al vitezei reale a motorului provenit de la codificatorul optic de poziţie . Diferenţa dintre cele două semnale reprezintă semnalul de eroare. Dacă semnalul este diferit de zero, prin amplificarea cu un coeficient, Kp al controlerului şi suprapunerea lui peste un semnal generat de tip dinte de ferăstrău va duce la modificarea factorului de umplere al semnalului PWM. Dacă eroarea este zero, factorul de umplere al semnalului PWM rămâne neschimbat. Blocul de comutaţie are rolul de a prelua semnalul PWM generat şi în funcţie de semnalele provenite de la senzorii de poziţie HALL, va determina ordinea de intrare în conducţie a tranzistorilor MOS din invertor. 6.2 Proiectarea blocului de interfaţă dintre sistemul de control

implementat în FPGA şi resursele hardware de pe placa Spartan3

Acest bloc de interfaţă sau bloc introducerea/vizualizare semnale va permite introducerea parametrilor de control şi monitorizarea sistemului controlat. Introducerea şi vizualizarea datelor necesare buclei de control se poate face hardware sau software.

6.2.1 Bloc de introducere parametrii de control

6.2.1.1 Modalitate de introducere hardware a parametrilor de control Acest bloc permite introducerea datelor din hardware, folosind facilităţile plăcii de

control Spartan-3. În diagrama din figura 6.2 este prezentat algoritmul ce va fi implementat cu cod VHDL .

Mărimile de intrare în blocul de introducere parametrii de control sunt: en_digit - activarea unui caracter al afişajului, inc- incrementarea valorii unui caracter afişat, Sw5&Sw4 –selectare/afişare a unui parametru de control;Prin intermediul afişajului vor putea fi vizualizate următoarele mărimi: viteza de referinţă, viteza la un moment dat a motorului BLDC, constantele de amplificare proporţională şi integrală a controlerului PI şi vizualizat sensul de rotaţie al motorului pe baza informaţiei primite de la tahometru. Diagrama din figura 6.2 prezintă algoritmul pentru introducerea respectiv afişarea vitezei de referinţă, dar etapele de la 2 la 8 se repetă şi pentru introducerea/afişarea coeficienţilor proporţional respectiv cel integral. La fel şi etapele de la 4 la 8 se repetă pentru activarea fiecăruia din cele patru caractere ale afişajului. Pe baza algoritmului prezentat s-a făcut descrierea cu cod VHDL. şi co-simularea HDL.

Figura 6.2 Algoritm de introducere şi vizualizare hardware a parametrilor de control

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

36

6.2.1.2 Modalitate de introducere mixtă hardware/software a parametrilor de control În figura 6.3 este prezentată

implementarea în Simulink, ca şi black-box (reper 1), a blocului de introducere parametrii de control. Se poate observa că toate mărimile de intrare în bloc sunt multiplexate. Această multiplexare permite introducerea hardware sau software a datelor. În figura 6.4 este prezentat rezultatul implementării în FPGA a blocului de intrare pentru co-simulare HIL sau JTAG. Stimuli software complecşi, vezi reper 1.

6.2.2 Monitorizarea sistemului controlat

La fel ca şi la introducerea parametrilor de control, sistemul controlat poate fi monitorizat atât hardware cât şi software. Vizualizarea software se poate face folosind resursele din biblioteca Simulink, vezi figura 6.4, reperul 2

Figura 6.3 Blocul de intrare date importat în Simulink ca şi

blak-box

Figura 6.4 Implementarea în FPGA blocului de intrare pentru simulare co-simulare HIL

6.3 Proiectarea şi implementarea modulului de generare semnal PWM

Strategia ce va fi implementată pentru controlul tensiunii şi implicit a turaţiei, cea mai folosită în cazul motoarelor BLDC, este PWM (Pulse Width Modulation). În continuare este prezentă relaţia dintre tensiunea de alimentare a invertorului şi tensiunea medie aplicată în statorul motorului BLDC.

;* dcmed UdU = (6.1)

;100*[%]

;

dd

TT

TTT

d on

offon

on

=

=+

= (6.2)

Umed – tensiunea medie în înfăşurările statorice; d – factor de umplere; Udc – tensiunea de alimentare a invertorului; Ton - perioadă de conducţie a unui tranzistor; Toff – perioada de blocare a unui tranzistor; T – perioada unui ciclu PWM.

Pentru ca motorul să atingă turaţia nominală este recomandat ca tensiunea aplicată invertorului să fie cu cel puţin 10% mai mare decât tensiunea nominală a motorului.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

37

6.3.1 Tipuri de semnale PWM

În funcţie de modul cum este poziţionată perioada de conducţie pentru diferiţi factori de umplere, semnalul PWM poate fi standard sau simetric. Perioada semnalului de ieşire, mai precis a unui ciclu PWM este dependentă de numărul de biţi ai numărătorului care generează semnalul rampă de referinţă şi de frecvenţa la care lucrează acest numărător. Relaţia 6.3 exprimă dependenţa enunţată mai sus.

)2(* ncf

F bin

PWM−

= (6.3)

b – număr de biţi pe care se face contorizarea perioadei PWM; c = 1 pentru PWM standard şi 2 pentru PWM simetric; n –pentru n=0 se obţine frecvenţa maximă a semnalului PWM;fin – frecvenţa semnalului de clock în acest caz frecvenţa aplicată circuitului FPGA, 50 MHz.

Figura 6.5 Algoritm de generare a semnalului PWM standard

Modul de generare a semnalului PWM, cel mai des folosit pentru controlul motoarelor BLDC este conform referinţelor este modul standard sau “edge-aligned”. La alegerea frecvenţei semnalului PWM trebuie avute în vedere câteva aspecte. Cu cât este mai mare frecvenţa semnalului PWM cu atât sunt mai mari sunt pierderile la comutaţia tranzistorilor, iar o frecvenţă prea mică a semnalului PWM va avea efect asupra curentului din înfăşurările statorice a cărui profil va fi format dintr-o serie de impulsuri de valori mari, urmate de intervale în care valoarea curentului este zero, aceasta putând produce o rotaţie sacadată a motorului şi un cuplu intermitent. Frecvenţa ideală depinde de caracteristicile motorului, în special de valoarea inductanţei înfăşurărilor statorice. O valoare rezonabilă a frecvenţei semnalului PWM este în intervalul 10 – 20 KHz. Aceasta adaptându-se şi la valoarea frecvenţei de intrare disponibile. Conform celor menţionate anterior, rezoluţia optimă a generatorului de semnal rampă, în acest caz este de 12 biţi.

6.3.2 Strategii de generare a semnalului PWM Conform literaturii de specialitate există două modalităţii de a realiza comutaţia

curentului prin ramura de invertor, acestea sunt cunoscute ca şi chopare „hard” şi chopare „soft”. Tehnica de chopare soft nu permite numai controlul curentului prin înfăşurările statorice ale motorului, dar contribuie şi la micşorarea riplului acestuia. În această lucrare, implementarea hardware a acestor strategii se va face în cadrul modulului de comutaţie.

6.3.3 Implementarea generatorului de semnal PWM în circuitul FPGA Acest bloc este descris în VHDL, ţinând cont de diagramele logice elaborate. Pentru a

putea fi utilizat în System Generator împreună cu celelalte componente acest cod va fi asociat cu un bloc numit black box fiind necesar ca în acest cod să se folosească şi un semnal de activare clock [140]. Înainte de implementarea codurilor VHDL în circuitul FPGA se face o co-simulare HDL, pentru ambele variante de semnal PWM. Rezultatele acestei co-simulării se pot vizualiza în figura 6.6. Modulele PWM simulate au mărimea de intrare pe 12 biţi, astfel că

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

38

limita maximă va avea valoarea 4095, valoare pentru care factorul de umplere este 1 sau 100%.

Figura 6.6. Formele de undă corespunzătoare blocului de generare semnal PWM, captură din ModelSim

6.3.4 Rezultatele co-simulării cu hardware în buclă şi ale implementării în FPGA Pentru verificarea funcţionării modulelor PWM implementate în circuitul FPGA s-a

optat şi pentru simulare cu hardware în buclă. În acest mod de simulare, modulul PWM este implementat în FPGA, iar rezultatele simulării sunt transferate în Simulink, prin cablul JTAG.

Rezultatele comparative ale implementării, în circuitul FPGA XC3s200, a blocului PWM pentru generare semnal standard sau simetric arată că numărul de slice-uri folosite la implementare PWM standard acest număr este mai mic faţă de implementare PWM simetric, cu aproximativ 30%.

6.3.5 Rezultate experimentale

În figura 6.7 sunt prezentate capturile de pe osciloscop ale semnalului PWM standard implementat în circuitul FPGA. Se poate observa frecvenţa, pentru o rezoluţie de 12 biţi, aproximativ 12.2 kHz .Rezultate corespunzătoare s-au obţinut şi pentru PWM simetric

În concluzie pentru implementarea unui bloc de generare semnal PWM pe 12 biţi, implementarea PWM standard este de preferat întrucât frecvenţa semnalului generat se încadrează în plaja recomandată de 10 – 20 kHz.

Figura 6.7 Factor de umplere 80%, PWM standard 6.4 Blocul de comutaţie

6.4.1 Comutaţia curentului prin cele trei faze statorice ale motorului BLDC După cum s-a putut vedea dintr-un capitol anterior datorită faptului că motoarele

BLDC nu au perii, comutaţia curentului în fazele statorice se realizează electronic în funcţie de poziţia rotorului. Pe durata fiecărei secvenţe de comutaţie, în cazul unui motor trifazat, două faze vor fi parcurse de curent, în timp ce, cea de a treia va fi flotantă. Utilizând tehnica PWM, tensiunea medie aplicată fiecărei înfăşurări statorice poate fi controlată, controlând

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

39

astfel turaţia motorului. Rolul blocului de comutaţie fiind acela de a prelua semnalul PWM şi de al transmite succesiv la câte o pereche de tranzistori, aflaţi pe braţe diferite ale invertorului. Succesiunea activării perechilor de tranzistori făcându-se în funcţie de poziţia rotorului, informaţie oferită de senzorii HALL. De asemenea prin intermediul blocului de comutaţie se stabileşte şi sensul de rotaţie al motorului. Majoritatea producătorilor de motoare BLDC furnizează acest tip de motoare împreună cu trei senzori cu efect Hall. Fiecare senzor furnizează un semnal digital cu nivel logic 1 pentru o perioadă π (1800 grade electrice), iar pentru cea de a doua perioadă π un semnal digital cu nivel logic 0. Semnalele date la ieşire de cei trei senzori sunt defazate între ele cu 600 electrice astfel că fiecare senzor este aliniat cu unul dintre circuitele electromagnetice. Numărul de cicluri electrice care trebuie să se repete pentru a obţine o rotaţie mecanică complectă este determinat de numărul de poli rotorici. Astfel că, pentru fiecare pereche de poli rotorici se execută un ciclu electric. În acest caz, între numărul de rotaţii mecanice, cicluri electrici şi viteza motorului se stabilesc următoarele relaţii:

HALLelectricciclumecanicciclu fpfpf ** __ == (6.4)

60_rpm

mecaniccicluV

f = (6.5)

din (6.4) şi (6.5) se obţine,

60* rpm

HALLV

pf = , sau (6.6)

pf

V HALLrpm

*60= (6.7)

fciclu_mecanic - frecvenţa semnalului pentru o rotaţie mecanică complectă; Vrpm - turaţia motorului exprimată în rotaţii/minut; fcilcu_electric - frecvenţa cu care se realizează o comutaţie electrică complectă; fHALL - frecvenţa semnalului provenind de la oricare din cei trei senzori HALL; p - numărul de perechi de poli rotorici.

De remarcat că, perioada unui ciclu

electric este egală cu perioada semnalului provenind de la un senzor HALL (vezi figura 6.8, astfel rezultă relaţia (6.5). Relaţia (6.6) permite calcularea frecvenţei semnalului de la un senzor HALL în funcţie de turaţia motorului. Relaţia (6.7) este utilă pentru calculul turaţiei motorului, în cazul în care nu există un codificator optic de poziţie. Această relaţie poate fi uşor adaptată la algoritmi de calcul prezentaţi la descrierea tahometrului digital. Conform însă referinţelor se reduce costul sistemului de control al vitezei, datorită absenţei codificatorului, dar scade şi precizia de măsurare a vitezei.

Figura 6.8 Semnale de tensiune din circuitul statoric şi

semnalele furnizate de senzorii HALL

În această lucrare în partea experimentală s-a folosit un motor de curent continuu fără perii din familia 3441 produs de firma Pittman, care conform specificaţiilor care are 2 perechi de poli rotorici.

În figura 6.8 este prezentată o diagramă de timp care reprezintă relaţia dintre semnalele date de senzorii Hall şi semnalele de excitaţie necesare circuitului statoric. Seria de numere de la 1 la 6 din partea de sus a diagramei din figura 6.8 reprezintă fazele de comutaţie a curentului prin cele trei înfăşurări statorice. De remarcat că, diagrama din figura 6.8 surprinde numai un ciclu electric din mişcarea rotorului, astfel că, conform celor menţionate în paragraful anterior sunt necesare 4 astfel de cicluri pentru o rotaţie mecanică complectă.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

40

6.4.2 Implementarea blocului de comutaţie folosind diagrame de stare

Plecând de la raportul dintre stările pe care le pot avea cei trei senzori şi secvenţa de comutaţie a motorului s-a făcut descrierea blocului de comutaţie folosind diagrame de stare. Diagrama de comutaţie a fost organizată în două zone. Starea de reset este comună ambelor zone asigurând tranziţia între ele în funcţie de starea intrării Dir. Diagrama 6.9 asigură comutaţia tranzistorilor de pe fazele statorice, astfel încât mişcarea rotorului va fi în sensul acelor de ceasornic (CW), dacă arborele motorului este privit din partea opusă codificatorului optic. Pentru mişcarea rotorului în sens invers acelor de ceasornic (CCW), diferă doar succesiunea fazelor.

Figura 6.9 Blocul de comutaţie descris cu diagrame de stare, sens de rotaţie CW

Semnalele de ieşire sunt şase câte unul pentru fiecare tranzistor de putere. De asemenea se poate observa că semnalele de intrare sunt trecute printr-un registru de tip D , pentru a fi sincronizate cu semnalul de clock. Semnalul de la intrarea PWM se observa că este transferat la ieşire după ce a fost trecut mai întâi printr-o poartă inversoare. Faptul că, câte o pereche de tranzistori din etajul de putere vor primi la un moment dat acelaşi semnal modulat PWM ne spune că este vorba despre metoda de chopare hard. Choparea soft se implementează folosind aceeaşi tip de diagramă de stare ca şi cea din figura 6.9. Plecând de la diagramele din figura 6.9 s-a generat codul VHDL.

Pe baza codului VHDL s-a făcut co-simularea HDL a funcţionării blocului de comutaţie, vezi figura 6.10. Simularea s-a făcut pentru o turaţie a motorului de 1000 rpm, astfel că, conform relaţiei (6.6) a rezultat perioada semnalelor a, b, c care provin de la senzorii Hall ca fiind aproximativ de 30 ms, cu defazaj de 10 ms între semnale (corespunzător la 1200).

Semnalul PWM de la intrare având o frecvenţă de 12.2 kHz şi un factor de umplere de aproximativ 10%, pentru această viteză. Implementarea acestui bloc, în circuitul FPGA XC3s200, are ca rezultat ocuparea a numai 2% din resursele acestuia.

Figura 6.10 Co-simularea HDL corespunzătoare blocului de comutaţie pentru rotaţie în sens invers acelor de ceasornic

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

41

6.4.3 Rezultate experimentale

Capturile de pe osciloscop ale semnalelor de intrare, senzorii HALL şi de ieşire, semnale de comandă pentru invertor, corespunzătoare blocului de comutaţie. În figura 6.11 se remarcă frecvenţa semnalelor pentru o turaţie a motorului de 1000 rpm. În figura 6.12 sunt prezentate semnalele de comutaţie pe fiecare ramură a invertorului, la o turaţie a motorului de 1000 rpm.

Figura 6.11 Semnale de la senzorii HALL pentru o turaţie de 1000 rpm

Figura 6.12. Semnalele generate de blocul de

comutaţie pentru invertorul de putere

6.5 Implementarea într-un circuit FPGA a unui tahometru digital cu precizie ridicată şi funcţionare într-un domeniu larg de viteze

Tahometrul este o componentă esenţială în implementarea buclelor de control a vitezei

pentru acţionările de curent continuu sau alternativ. Rolul acestui dispozitiv este de a măsura frecvenţa unui tren de impulsuri provenind de la un codificator optic montat pe arborele motorului şi de a o convertii în informaţie de viteză.

Principiul de funcţionare al tahometrelor digitale se bazează pe măsurarea frecvenţei unui tren de impulsuri provenind de la un codificator optic montat pe arborele motorului. Există metode consacrate pentru determinare vitezei unui motor folosind tahometrele digitale, în continuare vor fi prezentate două dintre cele mai folosite: 1. Măsurarea intervalului de timp dintre două impulsuri succesive. 2. Contorizarea pe o perioadă de timp constantă a impulsurilor provenind de la codificatorul optic, metoda este consacrată sub denumirea CET (Constant Elapsed Time). În această lucrare vor fi implementate ambele metode în module separate, astfel că schema de reglare a vitezei să beneficieze de o flexibilitate ridicată.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

42

Proiectarea tahometrului digital folosind metoda numărării intervalului de timp dintre două impulsuri. Pentru implementarea hardware a tahometrului digital bazat pe prima metodă se face proiectarea a două blocuri unul numit bloc de interfaţă (având şi rol de filtrare) cu codificatorul optic iar celălalt bloc de măsurare a vitezei. În figura 6.13 sunt reprezentate cele două blocuri şi de asemenea semnalele care intră şi ies din acestea.

Semnalele Ea şi Eb provin de la codificatorul incremental şi sunt semnale de intrare în blocul de interfaţă care pe baza acestora generează trenul de impulsuri pentru blocul de măsurare şi de asemenea semnalul care indică direcţia. Figura 6.13. Blocurile constructive ale uni tahometru digital

Blocul de interfaţă cu codificatorul optic este construit folosind diagrame de stare pe baza tabelelor de adevăr identificate şi prezentate în continuare.

Tabel T6.1. Tabele de adevăr asociate blocului de interfaţă Starea Ea Eb Starea Ea Eb

S0 0 0 S0 0 0 S1 0 1 S4 1 0 S2 1 1 S5 1 1 S3 1 0 S6 0 1

Dir = 0 Dir = 1

Diagrama de stare prezentă în figura 6.14 generează trenul de impulsuri PT, pe baza combinaţiilor celor două semnale Ea şi Eb, eliminând totodată şi combinaţiile nedorite. În funcţie de succesiunea pulsurilor Ea şi Eb se va genera şi un semnal Dir care să indice direcţia de rotaţie a motorului. Atât semnalele de intrare cât şi cele de ieşire sunt sincronizate cu semnalul de tact prin intermediul unor bistabile de tip D. Pe baza diagramei de stare din figura 6.14 s-a generat codul VHDL implementabil şi s-a făcut co-simulare HDL.

Cel de al doilea bloc care intră în alcătuirea tahometrului digital este cel de calculare a vitezei. Acest bloc presupune implementarea unui algoritm care să stabilească frecvenţa trenului de impulsuri ce provine de la codificator. Figura 6.14. Diagrama de stare construită pe baza

tabelelor de adevăr Algoritmul de stabilire a vitezei de rotaţie, pe care este bazat acest bloc este prezentat

în diagrama din figura 6.15. Conform acestei diagrame se va contoriza intervalul de timp dintre două fronturi crescătoare ale semnalului provenind de la codificator. Valoarea obţinută count_enc va fi inclusă în relaţia (6.12) din care se va obţine viteza la un moment dat a motorului. Constanta din relaţia (6.12) s-a obţinut luând în considerare faptul că, codificatorul optic furnizează 500 de impulsuri/rotaţie (vezi relaţia (6.8)), iar rata de eşantionare a fost

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

43

aleasă egală cu perioada semnalului de tact aplicat circuitului FPGA, adică 20 ns.(vezi relaţia (6.10)).

60*500 rpm

codifV

f = (6.8)

rpmcodifcodif Vf

T*500601

== (6.9)

910*201*

500601_

−==

rpmFPGA

codif

VTT

enccount (6.10)

69 10*6

10*201*

50060. ==

−const (6.11)

enccountenccountconstVrpm _

000.000.6_

.== (6.12)

fcodif – frecvenţa semnalului provenind de

la codificatorul optic; Tcodif – perioada semnalului provenind de la codificatorul optic; count_enc – valoarea contorului, în urma contorizării unui interval dintre două fronturi crescătoare. TFPGA – perioada semnalului de tact aplicat circuitului FPGA, în acest caz 20x10-9 s; Vrpm – viteza motorului, exprimată în rotaţii/minut;

Rata de eşantionare este mare în condiţiile în care oscilatorul extern conectat la circuitul FPGA prezent pe placa Spartan 3 are frecvenţa de 50MHz [24]. Pentru această rată de eşantionare eroarea de măsurare este minimă .

În figura 6.16 se poate observa reprezentarea grafică a distribuţiei erorii (exprimată în rotaţii/minut) în funcţie de domeniul de viteze al motorului. Din figură se poate observa că eroarea de măsurare este zero pentru viteze de până la aproximativ 2500 rpm, după care la intervale de aproximativ 500-1000 rpm creşte cu 1 rpm, valoarea maximă atinsă fiind de 10 rpm în jurul turaţiei maxime a motorului, de 8000 rpm. Metoda de determinare a erorii a constat în determinarea valorii lui count_enc în domeniul de viteze 1-8000 după care s-a aplicat relaţia (6.12), iar din valoare vitezei astfel obţinute s-a păstrat numai partea întreagă. Eroarea s-a obţinut ca şi diferenţă dintre viteza reală şi viteza calculată. În literatura de specialitate, referinţa [33] o eroare între 1 - 2 rad/s (aprox. 9-19 rpm) este considerată acceptabilă la turaţii mari, astfel că la 10 rpm (1, 047 rad/s) eroare se poate vorbii de o precizie bună, pentru o turaţie de 8000 rpm.

Figura 6.15. Algoritm de conversie

frecvenţă/viteză

Figura 6.16. Reprezentarea grafică a erorii de măsurare în

funcţie de viteza motorului

Modulul de măsurare a vitezei a fost descris în VHDL conform algoritmului din figura

6.15. Operaţia de împărţirea care se efectuează pentru determinarea valorii vitezei se face folosind un bloc de împărţire de tip core optimizat pentru circuitul FPGA, generat cu utilitarul Core Generator şi instanţiat ca şi componentă în codul VHDL al modulului de măsurare. În figura 6.17 este prezentată arhitectura RTL a tahometrului digital. În această figură se evidenţiază interconectarea celor două blocuri principale.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

44

Figura 6.17. Arhitectura RTL a tahometrului digital proiectat prin metoda măsurării intervalului de timp dintre

două impulsuri succesive

6.5.1.1 Rezultatele implementării în FPGA S-au făcut două implementări prima optimizată pentru viteză (cu 41% resurse ocupate),

împărţirea având loc într-o singură perioadă de clock, iar cea de a doua optimizată pentru arie (cu 19% resurse ocupate), rezultatul împărţirii fiind disponibil după 4 perioade de clock.Verificarea funcţională a tahometrului implementat după metoda contorizării intervalului de timp dintre două impulsuri se face cu simulatorul ModelSim integrat în mediul Xilinx-ISE.

6.5.1.2 Rezultatele co-simulării cu hardware în buclă În figura 6.18 este prezentat rezultatul simulării HIL pentru un sistem cu, codificator care citeşte un singur semnal de la codificator optic. Se pot observa că pentru această rată mare de eşantionare (20 ns) există o mulţime de valori aberante (spike-urile). Filtrarea acestor valori se va face achiziţionând ambele semnale de la codificator, după metoda prezentată în paragrafele anterioare. Rezultatele filtrării semnalului de la codificator se pot observa în figura 6.19. se poate remarca şi precizia tahometrului a cărui indicaţiei este în jurul valorii de referinţă (cu galben viteza de referinţă, cu albastru viteza măsurată de tahometru).

Figura 6.18. Rezultat al co-simulării hardware,

pentru un singur semnal achiziţionat de la codificatorul optic

Figura 6.19. Rezultat al co-simulării hardware, pentru semnal filtrat de la codificator

6.5.1.3 Rezultate experimentale În figura 6.20 sunt vizualizate pe osciloscop semnalele Ea şi Eb de la codificatorul

optic. De remarcat valorile frecvenţelor acestor semnale în funcţie de care bazându-ne pe relaţiile (6.8-6.12) se calculează viteza motorului astfel că o frecvenţă de aproximativ 16,65KHz corespunde unei viteze de 2000 rpm. De observat valorile uşor oscilante ale frecvenţei semnalului PT, de aici apărând şi variaţii ale semnalului măsurat, în jurul valorii de referinţă, vezi figura 6.21. Având în vedere performanţele dinamice foarte bune şi eroarea de

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

45

măsurare mică, se poate concluziona că s-a reuşit implementarea cu succes în FPGA a unui tahometru digital performant, bazat pe metoda numărări intervalului de timp dintre două impulsuri succesive. Implementarea acestui tip de tahometru într-un circuit FPGA care lucrează la frecvenţa de 50Mhz este de dorit, făcându-l astfel adecvat pentru închiderea buclei de viteză la motoarele BLDC.

Figura 6.20. Semnalele Ea şi Eb de la codificator pentru V = 2000rpm

Figura 6.21. Semnalul PT şi semnalul Eb pentru

V = 2000rpm

6.5.2 Proiectarea tahometrului digital folosind metoda contorizării pe o perioadă de timp constantă a impulsurilor provenind de la codificatorul optic Cea de a doua variantă de proiectare a tahometrului digital este bazată pe aşa numita

metodă CET (Constant Elapsed Time) enunţată într-un paragraf anterior. În plus faţă de măsurarea vitezei acest modul integrează şi blocuri pentru conversia binar-BCD şi BCD – 7 segmente. Acest modul este descris în totalitate în VHDL şi are rolul de a convertii trenul de impulsuri de frecvenţă variabilă ce provine de la codificatorul de poziţie într-o valoarea binară care să poată fi afişată pe blocul de afişare 7-segmente prezent pe placa Spartan3 Modulul poate fi folosit de asemenea şi pentru a convertii valoarea vitezei de referinţă, pentru a fi afişată. Din figura 6.22 se poate observa că acest model de tahometru digital este alcătuit din trei blocuri. Primul dintre ele lucrează la frecvenţa de 1KHz şi are rolul de a număra într-un interval de timp prestabilit impulsurile ce provin de la codificatorul de poziţie, valoare pe care o va transmite mai departe blocului de conversie binar-BCD, împreună cu un semnal de start la intervale de 1s, interval la care se face reîmprospătarea valorii afişate, cel din urmă realizează converse bcd+7segmente şi asigură multiplexarea semnalului pentru afişaj.

Figura 6.22. Arhitectura RTL a tahometrului digital bazat pe metoda CET

Descrierea în VHDL a acestui bloc s-a făcut de asemenea după un algoritm elaborat de autor. Spre deosebire de modulul conversie frecvenţă-viteză unde tot la al doilea impuls se contoriza perioada de timp scursă între două fronturi crescătoare, în acest caz pentru a afişa o

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

46

valoare cât mai precisă şi mai stabilă a vitezei s-a ales varianta ca pe un interval de timp stabilit (în acest caz 1 s)să fie numărate tranziţiile din zero în unu ale semnalului ce provine de la codificatorul de poziţie. Eroarea s-a calculat şa fel ca şi în cazul precedent şi variază între 0 şi 8 rpm, indiferent de turaţia măsurată. 6.6 Proiectarea şi implementarea în hardware a controlerului de tip PID

6.6.1.1 Proiectarea cu blocuri System a controlerelor de tip P, PI, PID În figura 6.23 este prezentat controlere PI, similar pentru P şi PID, proiectate cu

blocuri System Generator. Implementarea s-a făcut după relaţiile din capitolul 3, care determină forma discretă a controlerului PID. S-a elaborat o platformă Simulink pentru simulare a funcţionării celor trei tipuri de controlere proiectate cu blocuri System Generator, comparativ cu controlerul PID modelat cu blocuri Simulink.

Figura 6.23 Controler de tip PI proiectat cu blocuri System Generator

În această simulare motorul BLDC este reprezentat de funcţia sa de transfer de ordinul I, determinată în capitolul 2. Formele de undă rezultate în urma simulării comparative sunt prezentate în figura 6.24. Se poate observa răspunsul aproape similar în cazul controlerului modelat cu blocuri System Generator comparativ cu cel modelat cu blocuri Simulink. Se observă că între răspunsul sistemului controlat PI faţă de cel controlat PID nu există diferenţe semnificative de eroare staţionară, concluzia fiind că, în cazul motorului BLDC este suficient controlul PI, mai ales că nu apare nici un suprareglaj al sistemului. De asemenea pe aceeaşi diagrama s-a dorit punerea în evidenţă a abaterii dintre răspunsul sistemului controlat proporţional şi proporţional-integral.

Figura 6.24 Rezultate simulării comparative

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

47

S-au făcut implementării în circuitul FPGA XC3s200, a controlerelor PI pe 32 de biţi cu scalarea ieşirii respectiv a controlerului PI cu precizie maximă (maxim 64 biţi). S-a observat că, între cel din urmă şi controlerul PI pe 32 de biţi diferenţa de resurse utilizate este de 2%, însă diferă semnificativ valoarea frecvenţei maxime de lucru.

6.6.1.2 Proiectarea cu blocuri System Generator a blocului de saturaţie şi a blocului estimator

Pentru limitarea mărimii de la ieşirea unui controler este utilă folosirea unui bloc de saturaţie. În figura 6.25 este prezentat blocul de saturaţie şi formele de undă corespunzătoare.

Figura 6.25. Blocul de saturaţie şi formele de undă asociate

Figura 6.26 Bloc Estimator

În figura 6.26 este prezentat blocul estimator, acesta generează semnalul de eroare

pentru controler. Acest bloc permite şi ponderarea referinţei cu coeficientul b şi de asemenea limitarea valorilor extreme pe care aceasta le poate lua.

6.6.2 Implementarea în hardware a controlerului PID ca şi filtru IIR

În capitolul 3 s-au prezentat relaţiile matematice care descriu acest tip de filtre, relaţii care dau posibilitatea implementării în FPGA a controlerelor PID ca şi filtre IIR.

6.6.2.1 Proiectarea cu blocuri System Generator şi rezultatele implementării în FPGA a controlerului PID-IIR

Ţinând cont de arhitectura filtrului IIR şi de relaţiile determinate în capitolul 3 se face în continuare proiectarea cu blocuri System Generator a controlerului PID-IIR. În figura 6.27 sunt prezentate rezultatele acestei proiectări.

Figura 6.27 Controler PID-IIR proiectat cu blocuri System Generator

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

48

Performanţele arhitecturii din figura 6.27 au fost analizate comparativ cu cele ale arhitecturii clasice de controler PI. S-a observat că abaterea este sub 1%. În concluzie, datorită performanţelor evidenţiate în paragrafele anterioare şi datorită resurselor FPGA consumate, relativ comparabile cu cele ale arhitecturii clasice de controler PI, noua arhitectură de controler PID-IIR este o alternativă viabilă. 6.7 Închiderea buclei de control pentru motorul BLDC

În acest paragraf bucla de control a motorului BLDC va fi închisă, vezi figura 6.28, astfel că fiecare componentă prezentată în diagrama bloc 6.1 se va regăsii în această buclă.

Figura 6.28 Sistemul de control proiectat, implementabil hardware

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

49

6.7.1 Modelarea şi simularea sistemului cu software în buclă

Pentru a se obţine un model de referinţă al comportării motorului BLDC controlat în buclă închisă, s-a făcut mai întâi o simulare cu software în buclă. Numărul de componente al buclei fiind minim, aceasta pentru a reduce cât mai mult durata simulării, din bucla de control facând parte: codificatorul de poziţie, blocul de conversie frecvenţă viteză, blocul de estimare a erorii şi controlerul de tip PID, model motor BLDC.

6.7.2 Rezultatele implementării în FPGA a întregii bucle de control şi testarea cu hardware în buclă

Datorită numărului mare de componente al buclei şi datorită numărului mare de

stimuli ce trebuie introduşi şi sincronizaţi pentru a se obţine o simulare cât mai aproape de realitate a comportamentului buclei de control, metoda de simulare cu software în buclă este exclusă.

Metoda de testare abordată va fi cea propusă în capitolul 5. Sistemul de control va fi implementat în hardware, sistemul controlat va fi chiar motorul BLDC, iar semnalele de referinţă (viteza de referinţă), semnalele dintre FPGA şi motorul BLDC (semnalele de comandă a tranzistorilor) şi semnalele din bucla de reacţie (de la senzorii HALL şi codificatorul de poziţie) vor fi transmise din Simulink şi iar rezultatele capturate înapoi în Simulink.

Tabelul T6.2. Rezultatele implementării în circuitul FPGA a întregii bucle de control

În tabelul T6.2 sunt prezentate rezultatele implementării hardware în circuitul FPGA XC3s200, a tuturor componentelor buclei de control prezentate în figura 6.28. Din tabel se poate observa că numărul de slice-uri folosite este de 1.384 dintr-un total de 1.920 astfel rezultând o ocupare de 72% din capacitatea totală a circuitului. De asemenea se observă că frecvenţa maximă a întregii bucle de control poate să fie de 150 MHz, de trei ori mai mare decât frecvenţa la care lucrează FPGA-ul de pe placa de test Spartan 3. Astfel că, nu există riscul apariţiei hazardului logic.

Minimum period: 6.67 ns Maximum Frequency: 150 MHz

Potrivit celor prezentate mai sus se poate concluziona că s-a reuşit implementarea cu succes a întregii bucle de control a motorului FPGA folosind un circuit cu cost redus (aprox. 15 $) şi capacitate sub medie (200.000 porţi logice). Capacitatea de 28% rămasă nealocată poate fi utilizată pentru implementarea altor bucle de control, cum ar fi cea de curent şi cea de control a poziţie rotorului.

6.7.3 Testarea întregii bucle de control, rezultate experimentale

Pentru testarea buclei de control după metoda enunţată anterior este recomandat ca introducerea datelor de intrare să se facă software. În această situaţie blocul de intrare poate fi simplificat, prin înlăturarea multiplexoarelor şi a celorlalte blocuri ce facilitează introducerea hardware a datelor. În figura 6.29 este prezentat blocul de testare, rezultat în urma implementării în hardware a schemei simplificate. Prin intermediul acestui bloc şi a porturilor

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

50

sale proiectantul poate trimite în timp real stimuli din Simulink şi poate achiziţiona în timp real răspunsul sistemului. Din figura 6.29 se poate observa că prin intermediul stimulilor din Simulink, poate fi modificat sensul de rotaţie al motorului (intrarea Dir), pot fi introduse valori pentru coeficienţii de amplificare ai controlerului PI (Kp, Ki), motorul poate fi pornit/oprit, poate fi impus un palier fix pentru viteza de referinţă sau un profil aleatoriu.

În ceea ce priveşte semnalele de ieşire, poate fi vizualizat orice semnal considerat de proiectant ca fiind de interes, cum ar fi sensul de rotaţie, semnale achiziţionate de la senzorii Hall sau de la codificatorul de poziţie şi cel mai important, viteza de rotaţie motorului BLDC.

În figura 6.30 este prezentat răspunsul motorului BLDC la un semnal treaptă pentru diferite valori ale vitezei de referinţă. Se poate observa că pentru valori ale coeficienţilor de amplificare Kp=300 şi Ki=40 eroarea staţionară este de sub 0,2%, practic nulă.

Figura 6.29 Bloc de co-simulare-testare cu hardware în buclă pentru controlul software al motorului BLDC

Kp=300, Ki=40, Vref =1000 rpm

Răspuns la semnal treaptă Vref=3500rpm

Figura 6.30 Răspunsul motorului (albastru) la aplicarea unei viteze de referinţă (galben) de tip treaptă

Figura 6.31 prezintă răspunsul motorului la variaţia sensului de rotaţie şi a vitezei de referinţă, stabilite Din figura se observă că, răspunsul motorului urmăreşte strâns, chiar se suprapune peste valoarea impusă a vitezei de referinţă. În cea de a doua diagramă din figura

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

51

este prezentată eroarea staţionară, care se poate observa că la turaţii de peste 500 rpm este sub 2%. Vârfurile negative care apar până la momentul de timp de 0,6 ms se datorează întârzierii de un eşantion (20 ns), a răspunsului sistemului. Motorul este adus până la viteza 0 după care pornit la o viteză mică, 200 rpm. O eroare staţionară mai mare, dar sub 10% apare la turaţii mai mici de 200 rpm. Se observă de asemenea că motorul răspunde bine şi la schimbarea sensului de rotaţie, ultima parte a diagramei, rezultând că este un sistem stabil. .

Figura 6.31 prezintă răspunsul motorului la variaţia sensului de rotaţie şi a vitezei de referinţă, stabilite

În concluzie implementarea întregii bucle de control a motorului BLDC într-un singur

chip (circuitul FPGA) este posibilă, performanţele obţinute fiind foarte bune, eroarea staţionară de sub 1% pentru viteze mari, timpi de creştere de ordinul sutelor de microsecunde şi suprareglaj 0.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

52

Capitolul 7

7 DEZVOLTAREA UNEI BIBLIOTECI SIMULINK CU COMPONENTE PARAMETRIZABILE IMPLEMETABILE

ÎN FPGA Proiectarea bazată pe modele sau blocuri ierarhice parametrizabile este o tendinţă a

ultimilor ani. Proiectarea bazată pe modele permite o abordare ierarhică a procesului de proiectare, în care întregul proiect este iniţial definit la nivel conceptual, iar detaliile sunt adăugate pe măsură ce se doreşte extinderea funcţionalităţii. Modelele create sau blocurile parametrizabile pot fi folosite în toate etapele începând de la definirea specificaţiilor, evaluarea prin simulare a proiectului şi a specificaţiilor acestuia, generarea automată de cod implementabil în hardware, testarea cu hardware în buclă şi crearea unui mediu software pentru testarea în timp real a întregului sistem hardware. Această abordare poate reduce în mod substanţial timpul de dezvoltare conducând rapid la un proiect complet, funcţional şi permiţând prin metode iterative optimizarea rapidă a parametrilor funcţionali.

7.1 Modalitatea de dezvoltare şi integrare în Simulink a bibliotecii cu componente de control

7.1.1 Integrarea în Simulink şi structura bibliotecii cu componente de control În figura 7.1 este prezentată biblioteca Simulink creată de autor, bibliotecă ce conţine toate componentele necesare dezvoltării rapide a unui sistem de control pentru motoarele de curent continuu.

Numele bibliotecii este Xilinx Motor Control (by Daniel Mic). În funcţie de rolul componentelor, biblioteca se împarte în patru secţiuni

Secţiunea Motor Models s-au integrat modelele matematice ale motoarelor de curent continuu cu şi fără perii, vezi figura 7.6. Aceste modele şi ferestrele de parametrizare au fost deja prezentate în capitolul 2.

Secţiunea BLDC control ports, conţine toate porturile hardware aferente pinilor circuitului FPGA utilizaţi în aplicaţia de control a motorului BLDC.

Secţiunea Spartan3 ports conţine toate porturile hardware corespunzătoare pinilor circuitului FPGA conectaţi la resursele hardware de pe placa Spartan3.

Figura 7.1 Biblioteca Simulink creată, organizată în patru secţiuni

Resurse ce permit introducerea şi vizualizarea datelor. Această secţiune din biblioteca de componente este de uz general şi poate fi utilizată în orice aplicaţie dezvoltată cu placa Spartan3.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

53

Secţiunea Control Blocks din biblioteca creată, conţine toate componentele buclei de control testate în capitolele anterioare. Modalităţile de parametrizare a acestor componente vor fi prezentate în subcapitolul următor.

7.1.2 Descrierea componentelor din biblioteca de control

În figura 7.4 sunt prezentate blocurile de control realizate. O parte dintre acestea sunt parametrizabile, funcţionarea acestora putând fi modificată prin intermediul unei ferestre de configurare. Cealaltă parte au un regim de funcţionare fix, blocurile cu simbol Xilinx. Primele pot fi realizate cu primitive System Generator, sau mixt incluzând şi cod HDL, cele din urmă sunt realizate numai în cod HDL. Biblioteca de componente de control conţine: - Blocul de comutaţie configurabil, unde proiectantul are posibilitatea să aleagă între

comutaţie hard şi soft; - Blocul PWM configurabil, la acesta proiectantul poate alege modul de generare a

semnalului PWM, standard sau simetric; - Modulele de tahometru digital, unul cu filtrarea intrării şi bazat pe metoda de

contorizare a intervalului de timp dintre două impulsuri, celălalt bazat pe metoda CET şi care asigură şi conversia binară-BCD-7-seg.

- Blocul parametrizabil de saturare semnal, aceasta permite alegerea limitelor de saturaţie şi a timpului de eşantionare.

- Blocul parametrizabil de estimare cu ponderarea referinţei şi limitarea semnalului de referinţă. Acest bloc permite alegerea valorii coeficientului de ponderare, a ratei de eşantionare şi permite impunerea unor limite pentru semnalul de referinţă.

- Blocul de interfaţă cu placa Spartan 3. Acest bloc realizează interfaţarea cu hardware-ul de pe placă şi este util la proiectarea unui sistem de control independent care nu interacţionează cu calculatorul decât în etapa de programare;

- Blocul de interfaţă Spartan3/Simulink, care realizarea interfaţarea atât cu hardware-ul cât şi cu software-ul, permiţând controlul şi monitorizarea mixtă Hardware-Software.

Din figura 7.4 se poate observa că sunt grupate blocurile din aceeaşi clasă şi cu porturi identice: controlerele, blocurile de comutaţie şi blocurile PWM. Această grupare sugerează faptul că integrarea într-un proiect a oricărui bloc din grup se poate face prin intermediul blocului configurabil, exemplu blocul PID Configurabil, care va reprezenta grupul. Un bloc configurabil, odată adus în fereastra de Simulink prin procedura cunoscută drag and drop, se dă un click dreapta pe acesta şi se va deschide fereastra de configurare. Din această fereastră prin alegerea opţiunii Block Choice, proiectantul va avea posibilitatea să aleagă între mai multe versiuni de simulare şi implementare, în acest exemplu una dintre arhitecturile controlerului PID. În figura 7.2 este prezentată fereastra de configurare a controlerului P. Din figură se poate observa că aceasta este împărţită în două zone cea de parametri uzuali şi cea de parametrii avansaţi. În zona de parametri uzuali se definesc coeficientul de amplificare, rata de eşantionare, limitele de saturaţie şi valoarea iniţială. În zona de parametri avansaţi se definesc precizia care poate fi maximă (64 biţi) sau poate fi definită de utilizator. În cazul selectării celei de a doua opţiuni devin active şi următoarele câmpuri, tipul ieşirii (cu semn sau fără semn), număr de biţi pentru precizie şi număr de biţi după virgulă, modul de tratare a cuantizării şi a depăşirii. Efectele în hardware parametrilor avansaţi şi opţiunile pe care le are proiectantul au fost prezentate mai pe larg în teză. doar a parţii de controler P.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

54

Figura 7.2 Parametrii de configurare uzuali

şi avansaţi pentru controlerul P şi PI Figura 7.3 Biblioteca cu blocurile de control

parametrizabile

Figura 7.4 Biblioteca cu blocurile de control parametrizabile

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

55

Prin activarea tabului Loock under mask click dreapta pe bloc, proiectantul poate avea acces şi la nivelele ierarhice inferioare, unde poate face setări direct pe primitivele care alcătuiesc controlerul (sumatoare, multiplicatoare etc.) şi de asemenea are acces şi la opţiuni de implementare hardware. Dacă proiectantul doreşte modificarea parametrilor din fereastra de configurare acesta are la dispoziţie opţiunea Edit Mask, pentru alte detalii vezi referinţele [59, 140]. În situaţia controlerului PID a fost utilă dezvoltarea de blocuri separate pentru fiecare tip de controler de la cel mai simplu la cel mai complex. Acesta datorită faptului că, nu este deloc economic din punct de vedere al resurselor hardware, ca un controler configurat de tip PI (18% ocupare hardware) să fie implementat ca şi controler PID, la implementare intrând întreaga arhitectură a controlerului PID (23% ocupare hardware), rezultând o pierdere de 5% resurse hardware. Această pierdere este şi mai mare în cazul implementării cu controler PID.

7.2 Dezvoltarea unei interfeţe grafice pentru controlul în timp real al motoarelor BLDC

Autorul a dezvoltat şi o interfaţă grafică pentru controlul în timp real al motoarelor de

curent continuu, cu circuite logice programabile. Interfaţa este prezentată în figura 7.5.

Figura 7.5 Interfaţă grafică pentru controlul motorului

BLDC

Această interfaţă este construită cu programul GUI Builder, parte a platformei Matlab. Acest program permite interacţiunea dintre meniurile definite de utilizator în interfaţă şi funcţiile implementate în Matlab/Simulink. Interfaţa prezintă o utilitate didactică deosebită la studiul acţionărilor electrice cu circuite logice programabile. Interfeţe similare fiind realizate pentru acţionări cu procesoare de semnal. Prin intermediul interfeţei grafice va fi posibilă modificarea în timp real a constantelor de amplificare a controlerului PID observându-se efectul fiecăreia asupra răspunsului motorului. De asemenea va fi posibilă modificarea în timp real a vitezei de referinţă şi a sensului de rotaţie.

Rezultatele acestor modificări vor putea fi observate grafic direct în fereastra de afişare grafică a interfeţei sau într-un grafic mai explicit construit în Matlab pe baza unui fişier cu rezultate creat în urma simulării, aceste rezultate vor putea fi comparate tot timpul cu cele din hardware (turaţie şi sens de rotaţie afişate pe placa Spartan3 ).

Se poate concluziona că, toate componentele parametrizabile ale bibliotecii de control se utilizează şi se configurează după metodele programului Simulink, cunoscute proiectanţilor de sisteme de control. Astfel că utilizarea bibliotecii dezvoltate permite integrarea rapidă în hardware a unui sistem de control cu circuite logice programabile fără a fi neapărat necesară cunoaşterea detaliilor care se află în spatele măştilor de configurare (coduri VHDL, IP core-uri, primitive System Generator) şi nici cunoaşterea în detaliu a arhitecturii circuitelor programabile.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

56

8 CONCLUZII ŞI CONTRIBUŢII 8.1 CONCLUZII STRUCTURATE PE CAPITOLE

În prima parte a capitolului 1 s-au scos în evidenţă importanţa şi avantajele aduse de reglarea turaţiei unui motor electric: economisirea energiei electrice, controlul vitezei şi poziţiei elementului de execuţie şi ameliorarea regimurilor tranzitorii. De asemenea, s-au stabilit câteva criterii de clasificare a acţionărilor de putere mare şi mică care ar fi: randamentul, dimensiunile şi o caracteristică de cuplu constantă, pentru primele, raport cuplu-inerţie, frânarea dinamică, domeniu de viteze, pentru cele din urmă. Datorită accentului pus pe motorul de curent continuu fără perii s-a făcut o încadrare a cestuia între celelalte motoare electrice şi o comparaţie detailată cu motorul de curent continuu, scoţându-se în evidenţă avantajele şi dezavantajele utilizării unuia sau a celuilalt, motivându-se totodată şi alegerea acestui motor pentru dezvoltarea, ulterioară a aplicaţiei de control. Se poate astfel concluziona că, motoarele de curent continuu fără perii sunt preferate faţă de cele clasice deoarece: ating viteze mai mari decât motoarele convenţionale, au cuplu mai bun, pot fi folosite în medii mai ostile, sunt mai fiabile şi necesită un număr mai redus de operaţii de întreţinere.

În cea de a doua parte a capitolului 1, s-a realizate o documentare aprofundată, a utilizării circuitelor digitale în controlul motoarelor electrice. Datorită faptului că, utilizarea circuitelor FPGA în implementarea algoritmilor de control este o tendinţă de dată recentă, nefiind momentan foarte răspândit, s-au studiat şi prezentat selectiv lucrări legate de acest domeniu. Ca şi rezultat al acestui studiu, bazat pe un număr consistent de referinţe bibliografice s-au stabilit şi câteva criterii de performanţă utile în alegerea arhitecturii optime, pentru un sistem care necesită procesarea în timp real a semnalelor, astfel că, trebuie să se ţină cont de criterii cum ar fi, consumul de putere, flexibilitate, durata ciclului de proiectare, performanţe, număr MAC/s. În urma comparării celor două tipuri de circuite DSP şi FPGA pe baza acestui criteriu a rezultat clar performanţa crescută a circuitelor FPGA, chiar şi a celor din categoria de circuite cu preţ scăzut, cum este şi circuitul Spartan 3 folosit în această lucrare. Concluzia acestui studiu este ca circuitele FPGA au un potenţial considerabil în ceea ce priveşte controlul motoarelor electrice, aceasta concluzie servind şi ca motivaţie pentru elaborarea acestei lucrări şi pentru continuarea cercetării în acest domeniu.

În prima parte a capitolului 2 s-au prezentat modele matematice ale motorului de

curent continuu fără perii: modelul în coordonatele fazelor cu parametri concentraţi, modelul cu ecuaţii de stare şi modelul bazat pe funcţia de transfer. Pentru descrierea modelului matematic al maşinii BLDC este recomandată folosirea coordonatelor a,b,c. În acest caz modelul este bazat pe reprezentarea fiecărei faze a motorului printr-o rezistenţă, inductivitate şi o tensiune electromotoare. Pentru o simulare rapidă a controlului în buclă închisă a motorului BLDC este de asemenea foarte util şi modelul bazat pe funcţia de transfer. La baza acestui model stând constantele de timp electrică şi mecanică. S-a analizat de asemenea şi comportamentul motorului BLDC descris de forma simplificată a funcţiei de transfer bazată numai pe constanta de timp mecanică, ajungându-se la concluzia că este o aproximaţie bună, aproximaţie validată prin simulare.

În capitolul 3 au fost prezentate controlerele PID. Pentru proiectarea adecvată a unui

controler de tip PID trebuie avute în vedere, filtrarea zgomotului, ponderarea referinţei, fenomenul de saturare a actuatorului, metoda de acordare al controlerului şi modalitatea de implementare digitală a controlerului. La implementarea unui controler cu acţiune derivativă

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

57

trebuie limitată amplificarea frecvenţelor înalte. Prin filtrarea valorii de referinţă înainte de a fi aplicată controlerului se evită un semnal de control de tip impuls, apărut ca răspuns la aplicarea unui semnal de referinţă de tip treaptă. Pentru a evita saturaţia procesului controlat trebuie limitată variaţia valorii de referinţă, astfel încât valoarea de la ieşirea controlerului să nu atingă niciodată limitele actuatorului. Există mai multe metode de acordare a controlerelor, metode clasice, mai empirice, cum este metoda Ziegler Nicholls şi metode moderne care necesită un calcul matematic intensiv, cum este metoda de acordare folosind alocarea polilor. În cazul metodelor de reglare clasice cheia ajustării eficiente a celor trei constante constă în folosirea unui proces care să permită decuplarea, cât mai mult posibil, a efectelor unei amplificări faţă de cealaltă. Prin metoda alocării polilor se pot determina coeficienţii de amplificare ai controlerului, impunând factorul de amortizare şi pulsaţia dorită şi cunoscând două dintre caracteristicile motorului controlat şi anume constanta de tensiune electromotoare şi constanta mecanică. Atât din relaţiile matematice cât şi din simulările Matlab-Simulink se poate trage concluzia că, controlerele digitale pot fi proiectate cu succes ca şi filtre de tip impuls cu răspuns infinit (IIR).

În capitolul 4, pentru implementarea controlului motoarelor BLDC cu circuite FPGA se propune utilizarea a două plăci de test deja existente pe piaţă. Pentru partea de generare semnale de control şi achiziţie semnale de la senzori, placa Spartan3 cu circuit FPGA, iar pentru amplificarea semnalelor de control şi adaptarea nivelelor semnalelor provenind de la senzorul optic şi de la senzorii Hall, placa PM50. Motorul BLDC folosit în experiment este echipat cu senzorii necesari controlului. În cazul plăcii PM50 disponibilitatea acesteia pentru implementarea părţii de comandă este cunoscută din aplicaţii anterioare. În cazul plăcii Spartan-3, în urma unui studiu detailat a resurselor hardware s-a constata că oferă resursele necesare implementării algoritmilor de control. S-a făcut şi o analiză a circuitului FPGA prezent pe placă şi se apreciază că performanţele acestuia sunt optime pentru implementarea controlului. În urma comparării performanţelor şi a costului circuitului Spartan-3 prezent pe placa de control cu cele ale clasei superioare de circuite FPGA, Virtex, produse tot de firma Xilinx, s-a constata că există posibilitatea dezvoltării unui sistem de control cu cost redus.În urma studierii resurselor plăcii de comandă PM50, studiu care a urmărit compatibilitatea semnalelor din punct de vedere electric şi logic între această placă şi modulul de control cu circuit FPGA, se poate concluziona, că interconectarea acestora este posibilă şi că sunt adecvate din punct de vedere hardware, implementării aplicaţiei de control.

În capitolul 5 autorul propune o metode rapidă de implementare facilă în hardware a

algoritmilor de control şi a interfeţelor conexe acestora, pentru comanda unui motor. Metoda propusă permite proiectanţilor sistemului de control să se concentreze asupra specificaţiilor de nivel înalt şi de asemenea obţinerea unui rezultat rapid în ceea ce priveşte performanţele algoritmului de control ales şi costurile generate de implementarea acestuia în hardware Acest tip de abordare permite proiectarea concurenţială, simplificând procesul de proiectare. Mediul rezultat în urma unificării programelor de proiectare simulare, implementare şi testare poate să pară eterogen şi poate crea confuzie, autorul propune un algoritm de proiectare a sistemelor de control implementabile hardware care să exploateze la maxim facilităţile oferite de fiecare pachet de programe prezentat pe parcursul acestui capitol. Metoda propusă de autorul prezentei lucrări, foloseşte Simulink/System Generator ca şi platformă principală de proiectare, program ce va interacţiona cu toate celelalte medii şi prin intermediul căruia se vor parcurge toate etapele de proiectare. Se poate concluziona ca acest algoritm are avantajul de a putea fi aplicat folosind mediul Matlab/Simulink, mediu de proiectare şi simulare familiar proiectanţilor de sisteme de control.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

58

Pe durata procesului de proiectare a sistemului de control (SC) sunt posibile diferite tipuri de simulări, astfel sunt posibile simulări parţiale în timp real, în care sunt simulate numai o parte a componentelor buclei de control (hardware in the loop) şi simulări în care atât componentele buclei de control cât şi procesul controlat sunt reprezentate prin modele matematice (software in the loop). În acest capitol se propune un nou tip de simulare, mai precis testare, bazată pe simularea cu hardware în buclă. La acest tip de simulare atât componentele buclei de control cât şi sistemul controlat sunt cele reale. Prin software (Simulink) trecând doar semnalele de control ale sistemului şi semnalele reprezentând răspunsul sistemului, creându-se astfel un mediu de testare software (testbench) pentru sistemul hardware. Se poate concluziona că, această metodă de testare este utilă la monitorizarea din interior a activităţii sistemului şi permite vizualizarea semnalelor cu o evoluţie rapidă în timp, în acest caz răspunsul motorului la un semnal de tip treaptă.

Alte modalităţi de simulare/testare propuse şi aplicate de autor sunt: co-simularea HDL şi co-simularea cu hardware în buclă. Prin utilizarea metodei de co-simulare HDL, autorul concluzionează că pentru testarea oricărui cod VHDL nu mai este necesară aplicarea de stimuli manuali direct în simulatorul ModelSim sau crearea de fişiere de testbench care este o operaţiune consumatoare de timp în cazul proiectelor complexe. În urma co-simulărilor cu hardware în buclă efectuate de autor s-a constatat că, durata de simulare a comportamentului unui sistem este mult redusă, scăzând de câteva zeci de ori, executarea algoritmilor de control mutându-se practic în hardware. În concluzie rezultatele obţinute prin simulare HIL sunt identice cu cele de la simularea cu software în buclă, însă se câştigă un spor de viteză, şi nu în ultimul rând sistemul se apropie din ce în ce mai mult de condiţiile reale de funcţionare. Tot ca şi alternativă de testare a controlului implementat în hardware s-a folosit programul ChipScope care permite vizualizarea activităţii oricărui semnal intern circuitului FPGA. Plecând de la acest fapt se propune utilizării programului şi pentru vizualizarea semnalelor achiziţionate în timp real din exteriorul circuitului FPGA.

În urma analizării metodelor de simulare/testare disponibile pentru verificarea sistemului de control din etapa de proiectare până în etapa de implementare şi testare în hardware se poate concluziona că cea mai eficientă metodă de testare, care permite testarea în condiţii reale, este cea propusă de autor şi care derivă din metoda HIL.

În capitolul 6 s-a prezentat arhitectura şi funcţionarea întregului sistem de control

implementat cu circuite FPGA, sistem adecvat controlului motoarelor de curent continuu cu şi fără perii. De asemenea, s-au proiectat, simulat şi implementat în hardware fiecare bloc în parte, iar în final întreaga buclă de control. Sistemul implementat într-un singur circuit FPGA permite generare semnalelor de control, achiziţia semnalelor reprezentând comportamentul motorului comandat şi de asemenea facilitează vizualizarea informaţiilor mai sus menţionate prin implementarea de interfeţe cu hardware-ul de pe placa de test.

Implementarea în circuitul FPGA a blocului care asigură interfaţa cu hardware-ul şi cu mediul software ocupă 9% din capacitatea acestuia. Proiectarea acestui bloc este mixtă, cod VHDL şi blocuri System Generator. S-a stabilit prin testări experimentale că o valoare rezonabilă a frecvenţei semnalului PWM este în intervalul 10 – 20 KHz. Aceasta adaptându-se şi la valoarea frecvenţei de intrare disponibile. Conform celor menţionate anterior rezoluţia optimă a generatorului de semnal PWM proiectat este de 12 biţi pentru o implementare a PWM-ului standard. La implementarea PWM-ului standard numărul de slice-uri este mai mic faţă de implementare PWM-ului simetric, cu aproximativ 30%. Oricum în ambele cazuri resursele consumate sunt sub 1%. Proiectarea acestui bloc s-a făcut integral în cod VHDL. În acest capitol s-a proiecta, simulat şi implementat în hardware blocul de comutaţie, care împreună cu blocul PWM poate implementa oricare dintre strategiile de chopare soft sau hard. Implementarea acestui bloc, în circuitul FPGA are ca rezultat ocuparea a numai 2% din

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

59

resursele acestuia. Proiectarea acestui bloc s-a făcut folosind diagrame de stare din care s-a generat cod VHDL. Tahometrul digital este o componentă esenţială în implementarea buclelor de control a vitezei pentru acţionările de curent continuu sau alternativ. În acest capitol s-au proiectat, simulat şi implementat două variante de tahometru digital: după metodele contorizării intervalului de timp dintre două impulsuri succesive şi după metoda contorizării numărului de impulsuri într-un interval de timp (metoda CET). Ambele variante implementate au dat rezultate foarte bune în cea ce priveşte precizia. Se poate concluziona că tahometrul bazat pe metoda CET va fi implementată împreună cu modulul de interfaţă cu utilizatorul recomandat fiind acolo unde nu sunt necesare performanţe dinamice deosebite dar beneficiind totuşi de preciziei bună neafectată de modificarea domeniului de viteze. Autorul recomandă, implementarea tahometrului prin metoda de numărare a intervalului dintre două fronturi crescătoare ale trenului de impulsuri, în bucla de control a vitezei unde performanţele dinamice trebuie să fie foarte bune. În cazul celei din urmă, s-au făcut două implementări prima optimizată pentru viteză (cu 41% resurse ocupate), a doua optimizată pentru arie (cu 19% resurse ocupate). În cazul variantei bazate pe metoda CET în plus faţă de măsurarea vitezei fiind integrate şi blocuri pentru conversia binar-BCD şi BCD – 7 segmente, astfel că la implementare va ocupa 37% din resursele FPGA. Având în vedere performanţele dinamice foarte bune şi eroarea de măsurare mică, se poate concluziona că s-a reuşit implementarea cu succes în FPGA a unui tahometru digital performant, în special cel bazat pe metoda numărări intervalului de timp dintre două impulsuri succesive. Acest tip de tahometru pentru a avea o precizie acceptabilă necesită o frecvenţă de lucru mare, în special pentru viteze mari ale motorului, a se observa distribuţia erorii în funcţie de viteză. În acest caz implementarea acestui tip de tahometru într-un circuit FPGA care lucrează la frecvenţa de 50Mhz este de dorit, făcându-l astfel adecvat pentru închiderea buclei de viteză la motoarele BLDC. Un alt obiectiv atins al acestui capitol a constat în proiectarea cu blocuri System Generator şi analizarea comparativă prin simulare a mai multor variante de controlere: P, PI, PID, PID-IIR. Pentru a avea o referinţă s-a realizat şi implementarea cu blocuri Simulink a relaţiei generale ce descrie controlerul PID clasic. Analizând formele de undă rezultate se poate observa răspunsul aproape similar în cazul controlerului modelat cu blocuri System Generator comparativ cu cel modelat cu blocuri Simulink. Se observă că între răspunsul sistemului controlat PI faţă de cel controlat PID nu există diferenţe semnificative de eroare staţionară, concluzia fiind că, în cazul motorului BLDC este suficient controlul PI, mai ales că nu apare nici un suprareglaj al sistemului. În funcţie de precizia (număr de biţi) controlerului PI implementarea formei clasice a acestuia în FPGA poate consuma între 18-20% din resursele acestuia. Implementarea sub formă de arhitectură IIR consumă cu 5% mai multe resurse, iar performanţele sunt comparabile. În concluzie, datorită performanţelor evidenţiate în paragrafele anterioare şi datorită resurselor FPGA consumate, relativ comparabile cu cele ale arhitecturii clasice de controler PI, noua arhitectură de controler PID-IIR poate fi o alternativă viabilă. Pentru a se obţine un model de referinţă al comportării motorului BLDC controlat în buclă închisă, s-a făcut mai întâi o simulare cu software în buclă. La acest tip de simulare atât sistemul controlat cât şi sistemul de control sunt reprezentate de modele care descriu comportamentul acestora. În finalul capitolului este prezentată întreaga buclă de control a vitezei, proiectată cu blocuri descrise în VHDL şi blocuri System Generator. Metoda de testare abordată este cea propusă de autor şi permite un controlul şi o monitorizare a funcţionării motorului BLDC în timp real, validarea metodei şi totodată a funcţionării corecte a sistemului s-a făcut prin compararea rezultatelor cu cele de la simularea cu software în buclă. Rezultatele implementării hardware în circuitul FPGA XC3s200, a tuturor componentelor buclei de control reprezintă 72% din capacitatea totală a circuitului. Frecvenţa maximă a întregii bucle de control poate să fie de 150 MHz, de trei ori mai mare decât

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

60

frecvenţa la care lucrează FPGA-ul de pe placa de test Spartan 3. Astfel că, nu există riscul apariţiei hazardului logic.

În concluzie implementarea întregii bucle de control a motorului BLDC într-un singur circuit FPGA este posibilă şi aceasta cu performanţe foarte bune, eroarea staţionară de sub 1% pentru viteze mari, timpi de creştere de ordinul sutelor de microsecunde şi suprareglaj 0. De remarcat că toate aceste performanţe au fost realizate pe un circuit FPGA familia Spartan 3, circuit cu o capacitate mică spre medie (aprox. 200.000 logice) şi cu un preţ foarte accesibil (aprox. 15$). Având în vedere resursele hardware ocupate de un controler PI (18%) şi de asemenea valorile reduse ale timpilor de răspuns ai sistemului controlat în buclă, există posibilitate extinderii performanţelor acestuia şi cu o buclă de control a curentului, folosind acelaşi circuit FPGA. De asemenea implementând în hardware numai comanda din Simulink sau numai comanda de pe placa Spartan3 vor rămâne la dispoziţia proiectantului şi mai multe resurse ale circuitului FPGA, astfel încât vor putea fi adăugate facilităţi suplimentare de control pe acelaşi circuit.

În prima parte a capitolului 7 sunt prezentate concepte ale proiectării bazate pe modele,

avantajul utilizării metodei de proiectare bazate pe modele constă în faptul că: Modelele create pot fi folosite în toate etapele începând de la definirea specificaţiilor, evaluarea prin simulare a proiectului şi a specificaţiilor acestuia, generarea automată de cod implementabil în hardware, testarea cu hardware în buclă şi crearea unui mediu software pentru testarea în timp real a întregului sistem hardware; Reduce în mod substanţial timpul de dezvoltare conducând rapid la un proiect complet, funcţional şi permite prin metode iterative, optimizarea rapidă a parametrilor funcţionali, toate acestea realizându-se într-un mediu unificat de proiectare simulare şi testare. Autorul contribuie la implementarea metodei de proiectare bazată pe modele, în controlul motoarelor electrice cu circuite logice programabile şi pune bazele unei biblioteci de componente parametrizabile, integrate în Simulink, oferind astfel suportul necesar aplicării metodei. Autorul propune platforma System Generator/Simulink ca mediu de dezvoltare a blocurilor parametrizabile datorită faptului că este bine integrată în mediul Matlab/Simulink, mediu binecunoscut proiectanţilor de sisteme de control şi care împreună cu mediul ISE Xilinx dezvoltat de producător asigură parcurgerea tuturor etapelor de proiectare. Fiabilitatea şi viabilitatea pes care o oferă acest toolbox au fost dovedite pe parcursul dezvoltării unui sistem complet de control, vezi capitolele 5, 6. Parametrizarea blocurilor de control permite pe lângă setarea parametrilor uzuali: coeficienţi de amplificare, rate de eşantionare, limite de saturaţie etc. şi alegerea rapidă a unor parametrii avansaţi: precizie de calcul, tipul semnalului de ieşire, modalitatea de tratare a cuantizării şi a depăşirii. Însă modificarea acestor parametrii trebuie să se facă ţinând cont de efectul pe care îl au la implementarea hardware.

Pentru reprezentarea valorilor semnalelor la simulare, mediul Matlab-Simulink foloseşte reprezentarea în virgulă mobilă a numerelor pe 64 de biţi. În cazul conversiei din virgulă mobilă în virgulă fixă apar efectele de depăşire şi de cuantizare, practic la trecerea semnalelor generate de Simulink în System Generator, nu şi invers. În general este recomandat să se lucreze cu numere exprimate pe un număr fix de biţi bine stabilit şi care să fie acoperitor pentru exprimarea celei mai mari valori pe care o poate lua semnalul, astfel se evită şi fenomenul de depăşire. Tratarea efectului cuantizării se face prin trunchiere sau rotunjire. În cazul depăşirii opţiunile pe care le are proiectantul sunt saturarea şi descărcare. Nu trebuie scăpat din vedere faptul că în cele din urmă, în hardware semnalele nu pot fi reprezentate decât ca şi numere întregi. În general limbajele de descriere hardware VHDL şi Verilog, nu oferă biblioteci pentru numerele reprezentate în virgulă. Astfel că este problema proiectantului să stocheze separat partea întreagă şi cea zecimală a unui astfel de număr şi să urmărească modul în care se fac operaţiile cu aceste numere, respectiv poziţia virgulei.Se

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

61

recomandă ca simularea să se facă cu numere în format dublă precizie pentru a nu fi afectate performanţele sistemului. Odată stabilit faptul că proiectul este funcţional, se poate trece la reprezentarea în virgulă fixă şi la impunerea numărului optim de biţi folosiţi în reprezentare, urmărindu-se diminuarea cât mai puţin posibil a performanţelor obţinute la simularea anterioară. Se recomandă ca rata de eşantionare pentru fiecare bloc să fie multiplu al valorii ce reprezintă frecvenţa semnalului de tact pentru sistemul hardware sau acolo unde este posibil se recomandă ca cele două valori să fie egale. Se simplifică astfel, conversia rată de eşantionare în perioadă semnal de tact din hardware, iar simularea în acest caz, va fi făcută la frecvenţă identică cu cea la care va lucra sistemul implementat în hardware, consecinţele constau însă într-un consum mare de resurse software. În concluzie nu trebuie scăpat din vedere faptul că, la orice setare a unui parametru, pentru a optimiza funcţionarea unui bloc, există şanse mari să fie cheltuite resurse hardware suplimentare, astfel că impactul modificărilor trebuie bine analizat. 8.2 CONTRIBUŢII ORIGINALE ALE AUTORULUI

1. Sistematizarea informaţiilor despre motoare electrice în general, stabilirea performanţelor ce trebuie urmărite la acţionările de mică şi mare putere. Realizarea unei încadrări sugestive a motorului de curent continuu fără perii între celelalte motoare electrice, încadrare ce reflectă evoluţia acestuia din motoarele clasice. Realizarea unei comparaţii între motoarele de curent continuu cu perii şi cele fără perii şi identificarea similitudinilor dintre acestea. O prezentare simplă şi coerentă a principiului de funcţionare şi a modalităţilor de control pentru motoarele BLDC, utilă pentru o punere rapidă în funcţiune şi pentru un control optim al unui astfel de motor

2. Stabilirea unor criterii de performanţă care să permită alegerea circuitului digital adecvat pentru aplicaţia de control dezvoltată. Aplicarea criteriilor de performanţă pe cele mai cunoscute circuite digitale prezente pe piaţă la ora actuală. Reducerea ariei de selectare a circuitelor competitoare la două familii principale DSP şi FPGA, elaborarea şi aplicarea unui criteriu suplimentar pentru departajarea acestora. Realizarea unui studiu extins asupra principalelor soluţii de implementarea a controlului cu circuite FPGA, în acţionări electrice sau alte domenii.

3. Prezentarea şi implementarea în Simulink a modelului motorului BLDC în coordonatele fazelor cu parametri concentraţi. Prezentarea şi implementarea în Simulink a modelului motorului BLDC reprezentat de funcţia de transfer bazată pe constantele de timp. Validarea prin simulare a modelului simplificat al motorului BLDC bazat pe un proces de ordinul I. Analizarea răspunsului în amplitudine şi frecvenţă a modelelor prezentate şi elaborarea unor componente uşor de configurat, ce se vor include în biblioteca Simulink.

4. Prezentarea sistematizată privind controlere PID. Aplicarea cu rezultate bune a metodei de acordare a controlerelor PID cu plasarea polilor în controlul motoarelor BLDC modelate ca procese de ordinul I. Elaborarea unei metode de acordare rapidă bazată pe răspunsul în frecvenţă. Obţinerea unor forme discrete pentru termenii controlerului PID care să permită implementarea în hardware. Sistematizarea materialului privind filtrele numerice şi identificarea unei forme de filtru numeric care să modeleze comportamentul controlerelor PID. Elaborarea relaţiilor matematice de calcul a coeficienţilor filtrului IIR, în funcţie de coeficienţii de amplificare ai controlerului PID. Prezentarea unui exemplu de

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

62

calcul ai coeficienţilor controlerului PI prin metoda alocării polilor plecând de la caracteristicile constructive ale motorului controlat. Validarea prin simulare comparativă Matlab-Simulink a proiectării controlerului PID ca şi filtru IIR.

5. Prezentarea resurselor hardware necesare pentru controlul unui motor BLDC cu circuite logice programabile, studierea modulelor de comandă şi control existente pe piaţă. Prezentarea modulului cu circuit FPGA propus pentru implementarea controlului şi identificarea părţilor componente ale acestuia, utile în aplicaţia de control. Analizarea caracteristicilor şi performanţelor circuitului FPGA prezent pe placa propusă pentru implementarea controlului şi identificarea acelor caracteristici (nr. slice-uri, nr MAC-uri, frecvenţă de lucru) care sunt hotărâtoare pentru alegerea unui circuit FPGA pentru o aplicaţie de control. Analizarea comparativă a circuitului propus pentru implementarea algoritmilor de control, Spartan3 faţă de circuite din familia Virtex, în funcţie de performanţă şi cost. Stabilirea unor criterii pe care trebuie să le îndeplinească un invertor într-o aplicaţie de control, studierea modulului PM50 propus pentru comanda motorului BLDC şi prezentarea părţilor componente ale acestuia care sunt utile în aplicaţia de control. Studierea caracteristicilor electrice şi mecanice ale motorului BLDC, precum şi a caracteristicilor senzorilor Hall şi ale senzorului optic, aferenţi acestuia. Realizarea practică a standului de control pentru motorul BLDC cu circuite FPGA, prin interconectarea celor două module şi a motorului BLDC.

6. Propunerea şi prezentarea unor etape ce trebuie urmate în proiectarea unui sistem de control implementabil cu circuite logice programabile. Identificarea, sistematizarea şi stabilirea cu exactitate a rolului fiecărei resurse software necesare în procesului de proiectare, simulare funcţională, implementare şi testare în hardware a sistemului de control. Elaborarea unei metode de lucru (algoritm) care să exploateze la maxim facilităţile oferite de unificarea programelor de proiectare, simulare, implementare şi testare. Identificarea metodelor de simulare ce se pretează în cazul sistemelor de control implementate cu circuite logice programabile. Identificarea metodei de co-simulare HDL ca fiind adecvată simulării componentelor sistemului de control. Identificare şi validarea prin simulării a metodei de co-simulare cu hardware în buclă ca fiind adecvată simulări şi testării sistemului de control. Propunerea unei metode de simulare, mai exact de testare software a sistemului de control implementat în hardware, în condiţii de control a unui motor real, metodă bazată pe metoda de co-simulare cu hardware în buclă. Identificarea şi validarea unei metode de testarea a blocurilor sistemului de control implementate în hardware, bazată pe programul ChipScope.

7. Autorul a proiectat la nivel de diagramă bloc întreaga buclă de control, după care a elaborat algoritmi de funcţionare, a proiectat pe baza algoritmilor elaboraţi, a simulat funcţional prin metodele de co-simulare HDL şi metoda clasică din Simulink, a implementat în FPGA, a testat prin co-simulare cu hardware în buclă şi a validat cu rezultate experimentale următoarele blocuri ale buclei de control: bloc de interfaţă cu mediul Simulink şi cu resursele hardware ale plăcii de test, modul de generare semnal PWM standard şi simetric, modul de comutaţie cu facilităţi de chopare hard şi soft, două variante de tahometru digital bazate pe două metode diferite, mai multe tipuri de controlere: P, PI, PID, PID-IIR şi blocurile de saturaţie şi estimare. De asemenea s-au mai realizat: un model Simulink pentru codificatorul de poziţie şi o platforma Simulink pentru simulare cu software în buclă a întregii bucle de control. S-a realizat analiza comparativă prin simulare şi implementare în hardware a tuturor arhitecturilor de controler propuse, şi în cele

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

63

din urmă a întregului sistem de control implementat în hardware, validându-se astfel rezultatele obţinute prin simulări software.

8. Autorul a realizat implementarea metodei de proiectare bazate pe modele în controlul maşinilor electrice, cu circuite logice programabile. A identificat problemele care apar la reprezentarea informaţiei în format digital şi a oferit soluţii aplicabile în toolboxul System Generator, care să diminueze cât mai mult efectele acestora. A prezentat modalitatea de generare a „driverelor” pentru o placă hardware şi încărcarea acestora în mediul de simulare, pentru a permite comunicarea hardware-software. A prezentat modalitatea de integrare în Simulink a bibliotecii create şi modalitatea de organizare a acesteia. A realizat biblioteci cu modele pentru motoarele de curent continuu cu şi fără perii. A realizat o bibliotecă cu porturile hardware specifice aplicaţiei de control a motorului BLDC şi o bibliotecă cu porturile hardware de pe placa Spartan3 accesibile utilizatorului. Pe baza modulelor proiectate şi testate în capitolul 6 autorul a realizat o bibliotecă cu blocuri de control parametrizabile şi a documentat modul de utilizarea a componentelor configurabile şi parametrizabile din biblioteca creată. A dezvoltat o interfaţă grafică pentru controlul în timp real din Matlab/Simulink, a motoarelor BLDC.

8.3 CONCLUZII FINALE

În urma studierii unui volum apreciabil de referinţe şi în urma experienţei acumulate de autor pe parcursul acestei teze se poate trage concluzia că a fost aleasă implementarea sistemului de control pentru motorul BLDC, cu circuite FPGA, datorită faptului că acestea dispun de logică hardware reconfigurabilă, pot procesa informaţia mai rapid decât un procesor de uz general, permit ca arhitectura controlerului să fie optimizată pentru utilizarea de resurse minime sau pentru viteză de lucru ridicată, iar numărul de biţi ai registrelor de date poate fi selectat în funcţie de aplicaţie. De asemenea descrierile în limbaj VHDL permit implementarea sistemului în orice tip de circuit FPGA prezent pe piaţă. Într-un singur circuit FPGA se pot implementa mai multe bucle de control digitale. Şi nu în ultimul rând un alt considerent este timpul scurt de dezvoltarea şi lansare pe piaţă a aplicaţiei de control. Autorul a realizat practic, un sistem complet şi funcţional din punct de vedere hardware şi software pentru controlul motoarelor BLDC cu circuite FPGA, sistem care poate funcţiona independent, sau care poate comunica bidirecţional şi în timp real cu mediul Simulink. Autorul a creat o bibliotecă integrabilă în Simulink, cu componente parametrizabile necesare simulării, implementării şi testării în hardware a buclei de control pentru motoarele de curent continuu. A fost parcurs întreg lanţul de proiectare şi executare a sistemului de control, plecând de la motorul BLDC, trecând prin modulul de control implementat în FPGA şi ajungând la o interfaţa grafică ce facilitează introducerea parametrilor de control, oferindu-se soluţii practice pentru fiecare etapă. Se prezintă astfel, o soluţie completă hardware/software de implementare a controlului maşinilor electrice cu circuite logice programabile.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

64

9 BIBLIOGRAFIE SELECTIVĂ

[1] Åström Karl Johan, Control System Design, Lecture notes ME 155A, Department of

Mechanical & Environmental Engineering University of California, Santa Barbara, 2002.

[2] Bose B.K., Modern Power Electronics and AC Drives, Prentice HALL PTR, 2002. [3] Brandmayr G., Humer G., Rupp M., Automatic Co-Verification of FPGA Designs in

Simulink, procedings MBDC2005, Munich, 2005. [4] Chan Y.F., Moallem M., Wang W., Efficient Implementation of PID Control

Algorithm using FPGA Technology, 43rd IEEE Conference on Decision and Control, Bahamas, 2004.

[5] Chen R., Chen L, System Design Consideration for Digital Wheelchair Controller, IEEE Transactions on Industrial Electronics, vol. 47, no. 4 2000.

[6] Fratta A., Griffero G., Niedu S., Comparative Analysis among DSP and FPGA based Control Capabilities in PWM Power Converters, The 30th Annual Conference of the IEEE, November2-6, Busan, Korea.

[7] Galvan E., Torralba A., Franquelo L., ASIC Implementation of a Digital Tachometer with High Precision in Wide Speed Range, IEEE Transactions on Industrial Electronics, vol. 43, no. 6, 1996.

[8] Gavrincea, C., Mic D., Oniga, Ş., Tisan, A., VHDL Description of PIC14000 microcontroller with pipeline, Electronic and Telecommunication Symposium – 5-th edition, Timişoara,2002.

[9] George W. Younkin, P.E., ElectricServo Motor Equations And Time Constants, Industrial Controls Consulting, Div., Bulls Eye Marketing, Inc, Fond du Lac, Wisconsin, 2000.

[10] Grout I., Rzan J., O’Shea T., Configuration and debug of field programmable gate arrays using Matlab/Simulink, Journal of Physics, Limerick, Conference Series 15, 2005.

[11] Gwaltney David A., Kenneth D. King and Keary J. Smith, Implementation of Adaptive Digital Controllers on Programmable Logic Devices, NASA Marshall Space Flight Center, Huntsville, 2004.

[12] International Rectifier, FPGA-based High Performance AC Servo Motor Drive – Accelerator TM configurable servo drive design platform, Author: Toshio Takahashi, October 2002.

[13] Mathworks, Matlab The Language of Technical Computing, Simulink for Model Based on System Level Design (www.mathworks.com).

[14] Mic D., Micu E., Oniga S., Hardware and Software Co-Design Method for Implementation of Closed Loop Control for Brushless DC Motor, Proceedings of 10th International Conference on Optimization of Electrical and Electronic Equipments OPTIM’06 May 18-19, 2006, Braşov, Romania, in coop with: IEEE (IAS, IES, PELS), IEE, VDE, vol. 3 pp. 59-66, ISBN 973-635-705-8; 978-973-635-705-3;

[15] Mic D., Implementation of Digital Hardware Control for a Brushless DC Motor on an FPGA Board, International Workshop of Control and Information Technologies, Ostrava, ISBN 80-248-0906-0, 2005.

[16] Mic D., Micu E., Oniga S., Gavrincea C., The FPGA Implementation of a Digital Controller as a Digital Filter, Buletinul Ştinţific al Universităţii “Politehnica” din Timişoara, Transaction on Electronics and Telecomunications, Tom 49(63), Fascicola 1, 2004.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

65

[17] Mic D., S. Oniga, C. Gavrincea, A. Tisan, A. Buchman, Survey of digital tehniques and circuits employed in motion control, Buletinul Ştiinţific, Seria C, Volumul X, Fascicola Electronică, Electrotehnică, Automatizări, Simpozionul Ştiinţific Naţional, Baia Mare, 8 – 9 Mai 2003, pp. 39 – 44. ISSN 1224-3272;

[18] Mic D., Implementation with FSM of some algorithms for control part of the I2C controller, International Computer Science Conference microCAD 2002, Miskolc, Hungary, 7-8 March 2002, Section G.

[19] Mic D., Oniga S., Contribution Regarding the VHDL Description of a Simulated RAM Memory Used for Microprocessor Testing, Buletinul Ştiinţific Seria C Volumul IX, Fascicola Electronică, Electrotehnică, Automatizări, Simpozionul Ştiinţific Naţional, Baia Mare, 15-16 Mai 2001, pp. 77-82. ISSN 1224-3272.

[20] Mic D., Implementation of Stepper Motor Controller in a XILINX FPGA, Buletin Ştinţific seria C volumul IX, Fascicola Electronica, Electrotehnica, Automatizări, Simpozionul Stintific National, Baia Mare, 15-16 Mai 2001, pp 83-88.

[21] Mic D., Oniga S., A Study Regarding the Implementation with VHDL of a Simulated Memory Used for Testing a Microprocessor, The 6th International Symposium for Design and Technology for Electronic Modules - SIITME '00, Bucharest, Romania, 21-24 Sept. 2000, pp. 132-135.

[22] Mic D., Oniga Ş., Proiectare asistată cu circuite logice programabile, Editura Risoprint, Cluj Napoca , 2002.

[23] Miller T.J.E., Brushless Permanent Magnet and Reluctance Motor Drives, Clarndon Press OXFORD, 1989.

[24] Mulpur A., Galijasevic Z., Model based Design Shortens Development Time of Motor Control Applications, The MathWorks Inc, Embedded Technology Journal, 2006.

[25] Omar A., Rahim N., Mekhilef S., Three Phase Synchronous PWM for Flyback Converter with Power Factor Correction Using FPGA ASIC Design, IEEE Transactions on Industrial Electronics, vol. 51, nr. 1, 2004.

[26] Oniga S., Sistem Senzorial pentru recunoaşterea gesturilor unei mâini utilizând reţele neuronale implementate în FPGA, Teză de doctorat, Universitatea Politehnică Timişoara, 2005.

[27] Oniga, S., Tisan A., Mic D., A. Buchman , Hand Postures Recognition System Using Artificial Neural Networks Implemented in FPGA, 30th ISSE 2007 Conference Proceedings, Emerging Technologies for Electronics Packaging, Technical University of Cluj-Napoca, Cluj-Napoca, ROMANIA, May 9-13, 2007, pag 507- 512, IEEE Catalog Number: 07EX1780C, ISBN: 1-4244-1218-8, 1-4244-1218-8/07/$25.00 ©2007 IEEE;

[28] Oniga S., Tiponuţ V., Buchman A., Mic D., Adaptive Interface Based on FPGA implemented Artificial Neural Network, Scientific Bulletin of the Politehnica University of Timişoara, Tomul 49(63), Fascicola 1, 22-23 octombrie 2004, pp. 236-240. ISSN 1583-3380;

[29] Oniga S., Mic D., Application possibilities of a development board with FPGA in signal processing, International Computer Science Conference microCAD 2001, Miskolc, Hungary, 1-2 March 2001, Section G.

[30] Oniga St., Mic D., Some Aspects Regarding VHDL Description for Program Memory Used in Functional Simulation of Microcontroler, The 6th International Symposium for Design and Technology for Electronic Modules - SIITME '00, Bucharest, Romania, 21-24 Sept. 2000, pp. 135-139.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

66

[31] Osama M., Liu S., Liu Z., A Phase Variable Model of BLDC based on Finite Element Analysis and its Coupling with External Circuits, IEEE Transactions on Magnetics, vol. 41, no. 5, 2005.

[32] Pragasan p., Krishnan R., Modeling of Permanent Magnet Motor Drives, IEEE Transaction on Industrial electronics, vo. 35, no 4, 1988.

[33] Prodic, A. Maksimovic, D., Design of a Digital PID Regulator Based on Look Up Tables for Control of High Frequency DC-DC Converters, Computers in Power Electronics, IEEE Workshop, 2002.

[34] Sanvido M., Cechtickz V., Testing Embedded Control Systems Using Hardware In The Loop Simulation and Temporal Logic, 15th Triennial World Congress, Barcelona, 2002.

[35] Shanblatt M., Foulds B., A Simulink to FPGA Implementation Tool for Enhanced Design Flow, IEEE Internation conferences on Microelectronic Systems Education, 2005.

[36] Sokira T.J., W. Jaffe, Brushless DC Motors Electronic Comutation and Controls, Tab Books Inc.

[37] Tisan A., Oniga S., Gavrincea C., D. Mic, A Study Regarding the Implementation with VHDL of a Multiple Clock Gating Scheme for Low Power RTL Design, Symposium of Electronics and Telecommunications, - Fifth Edition – Etc 2002, September, 19-20, 2002, Timişoara, România, pp. 53-56. ISSN 1224-6034;

[38] Toshio Takahashi, International Rectifier, New Digital Hardware Control Method for High Performance AC Servo Motor Drive – Accelerator Servo Drive Development Platform for Military Application, Military Electronics Conference, 2002.

[39] Vasarhelyi J., Imecs M., Szabo C., Incze I., Performances of Module Library for Vector Control using Reconfigurable Hardware, http://mazsola.iit.uni-miskolc.hu/mazsola/ M.publications, 2002.

[40] Visser P. Groothuis M, and others, FPGA as versatile configurable I/O devices in Hardware in the Loop Simulation, RTSS Lisbon, December 2004.

[41] Werner L., Control of Electric Drives, Editura Springer 1997. [42] Xilinx Inc., - Nabeel Shirazi, Jonathan Ballagh, Put Hardware in the Loop with Xilinx

System Generator for DSP, Fall 2003. [43] Xilinx Inc., Spartan-3 FPGA Family, Complete Data Sheet, DS099, 2006. [44] Xilinx Inc., System Generator for DSP (www.xilinx.com). [45] Xilinx Inc., FPGA Motor Control Reference Design, AN xapp808, 2005. [46] Yong-Ho Y., Deok-Kyu K., Tae-Won L., You-Young C., Chung-Yuen W., Speed

Control System of PM Brushless DC Motor Using 2 Hall-ICs, 30th Annual Conference of IEEE Volume 2, Issue , 2-6 Nov. 2004 Page(s): 1374 - 1379 Vol. 2.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

67

CONTRIBUTIONS TO THE DEVELOPMENT OF A HARDWARE-SOFTWARE INTEGRATED ENVIRONMENT FOR ELECTRIC

MOTORS CONTROL WITH PROGRAMMABLE LOGIC CIRCUITS

Doctoral Thesis Abstract

In this thesis author propose a rapid and new method to design and optimize the electric motor control using Field Programmable Gate Array (FPGA). The elaborated designing algorithm takes advantage of the unification of ISE Xilinx digital designing environment with Matlab/Simulink simulation and testing environment, through System Generator toolbox. This result in a faster and efficient design flows having the following stages: design the model, evaluate the performance, generate and co-simulate VHDL (VHSIC - Hardware Description Language) code and finally test the system with hardware in the loop. So that, a unified testing software environment for electric motors operation and hardware implemented control algorithms is obtained and arise the opportunity of optimization the motor operation in a real time environment by iterative tuning of the control loop parameters.

Extending System Generator toolbox library with specific electric motors control blocks (PWM, PID, Commutation blocks), a hierarchical control system design method is achieved too, based on parameterized models. A software and hardware operational system was realized using programmable logic circuits for Brushless DC (BLDC) motor control. The system is able to operate independently or to communicate in real time with Matlab/Simulink environment.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

68

CURRICULUM VITAE

DATE PERSONALE: Numele: MIC Prenumele: DANIEL Data naşterii: 31 august 1975 Locul naşterii: Baia Mare, Maramureş Stare civilă: căsătorit, un copil Adresa locului de muncă: Oficiul Judeţean de Telecomunicaţii Speciale Maramureş, Baia

Mare, str. 22 Decembrie, nr. 37 Adresă domiciliu: Baia Mare, str. Oituz, nr.2/18, Maramureş STUDII PREUNIVERSITARE: Absolvent al Liceului industrial Cavnic, în anul 1993. STUDII UNIVERSITARE : Absolvent al Universităţii de Nord Baia Mare, Facultatea de Inginerie, specializarea electromecanică, în anul 1998. Proiect de diplomă realizat în cotutelă la Universitatea Tehnică din Atena. STUDII POSTUNIVERSITARE: Studii Aprofundate, Universitatea Tehnică din Cluj Napoca, Facultatea de Electronică şi Telecomunicaţii, specializarea, Compatibilitate Electromagnetică în Sisteme şi Aparate Electronice, în anul 1999. ACTIVITATEA PROFESIONALĂ: preparator, asistent, şef lucrări la Universitatea de Nord Baia Mare în perioada 1999-2004 şi colaborator în prezent, titular al mai multor cursuri din care la ora actuală la cel de Proiectare cu Circuite Logice Programabile. Din 2004 angajat (ofiţer) al Oficiului de Telecomunicaţii Speciale Maramureş, actualmente şef Birou Tehnologia Informaţiei. ACTIVITATE ŞTINŢIFICĂ: Cărţi publicate: 1, autor principal, cu titlul: “Proiectare asistată cu circuite Logice

Programabile”, Editura Risoprint 2002. Articole publicate: 19 (din care 7 la conferinţe internaţionale). Proiecte şi studii de cercetare: 11. DOMENII DE INTERES: Sisteme embedded, proiectare cu circuite logice programabile,

reţele de calculatoare. LIMBI STRAINE CUNOSCUTE: Engleza ALTE MENŢIUNI: 2 burse Tempus: la Universitatea Tehnică din Atena, Grecia şi la

Universitate Catolică din Leuven, Belgia, 1 bursă CEEPUS la universitatea Tehnică din Varna, Bulgaria.

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul motoarelor electrice cu circuite logice programabile

69

CURRICULUM VITAE

PERSONAL DATA: Surname: MIC First name: DANIEL Date of birth: 31 august 1975 Place of birth: Baia Mare, Maramureş Civil status: married, one child Work address: Special Telecommunication Service Maramureş County, Baia Mare, 22

December no. 37 street. Home address: Baia Mare, Oituz, 2/18 street, Maramureş. SECONDARY EDUCATION: Industrial High School from Cavnic, 1993; UNIVERSITY EDUCATION: Graduate of North University of Baia Mare, Faculty of

Engineering, Electromechanics in 1998; Diploma Project under joint supervision at National Technical University of Athens Master Studies, Technical University from Cluj Napoca, Electronics and Telecommunications Faculty, Electromagnetic Compatibility in Electronic Devices, 1999.

PROFESSIONAL ACTIVITIES: teaching assistant, assistant, lecturer at North University of Baia Mare between 1999-2004 and associate staff since 2004, course leader “Designing with Programmable Logic Circuits” Since 2004, Special Telecommunication Service Maramureş County, head of IT department. SCIENTIFIC ACTIVITIES: Published books: 1, first author, title: “Assisted Designing with Programmable Logic

Circuits”, Risoprint, 2002. Scientific papers: 19 (7 at International Conferences) Research Studies and Projects: 11 DOMAINS OF INTERES: Embedded Systems, Designing with Programmable Logic,

Computer Networks. KNOWN FOREIGHN LANGUAGES: English OTHERS: 2 Tempus grants, at the National Technical University of Athens, Greece and

the Catholic University Leuven, 1 CEEPUS grant at the Technical University of Varna, Bulgaria.