Proiect de Diploma Alexandru Daniel STOENESCU

68
PROIECT DE DIPLOMĂ CONDUCEREA UNUI MOTOR DE CURENT CONTINUU CU PERII CONDUCĂTOR ŞTIINŢIFIC PROF. DR. ING. GHEORGHE-DANIEL ANDREESCU Candidat: ALEXANDRU-DANIEL STOENESCU TIMIŞOARA 2009 UNIVERSITATEA “POLITEHNICA” DIN TIMIŞOARA FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE DEPARTAMENTUL DE AUTOMATICĂ ŞI INFORMATICĂ APLICATĂ

Transcript of Proiect de Diploma Alexandru Daniel STOENESCU

Page 1: Proiect de Diploma Alexandru Daniel STOENESCU

PROIECT DE DIPLOMĂ

CONDUCEREA UNUI MOTOR DE CURENT

CONTINUU CU PERII

CONDUCĂTOR ŞTIINŢIFIC

PROF. DR. ING. GHEORGHE-DANIEL ANDREESCU

Candidat:

ALEXANDRU-DANIEL STOENESCU

TIMIŞOARA

2009

UNIVERSITATEA “POLITEHNICA” DIN TIMIŞOARA FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE

DEPARTAMENTUL DE AUTOMATICĂ ŞI INFORMATICĂ APLICATĂ

Page 2: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 1 -

Cuprins:

LISTA DE ABREVIERI ............................................................................................................ 3

CAPITOLUL 1 ........................................................................................................................... 4

Introducere ................................................................................................................................. 4

1.1. Motivaţia .........................................................................................................................4

1.2. Scopul lucrării .................................................................................................................7

1.3. Prezentarea sumară a lucrării ........................................................................................7

CAPITOLUL 2 ........................................................................................................................... 9

Noţiuni teoretice ......................................................................................................................... 9

2.1. Motorul de curent continuu cu perii ...............................................................................9

2.1.1. Generalităţi ...............................................................................................................9

2.1.2. Definiţii ..................................................................................................................10

2.1.3. Structură .................................................................................................................11

2.1.4. Principiul de funcţionare ........................................................................................12

2.1.5. Aplicaţii ale motoarelor DC cu perii ......................................................................16

2.2. Placa de dezvoltare Xilinx( Spartan 3) .........................................................................17

2.2.1. Circuitele digitale folosite în controlul maşinilor electrice ....................................17

2.2.2. Comparaţie între diferitele tipuri de circuite digitale folosite în controlul

acţionărilor electrice .........................................................................................................17

2.2.3. Comparaţie performanţe circuite FGPA-DSP ........................................................18

2.2.4. Componente şi caracteristici ale placii de dezvoltare Xilinx Spartan-3 .................19

2.2.5. Controlul software si hardware al motoarelor de curent continuu .........................22

2.3. Platforma hardware propusă pentru controlul motorului cu circuite FPGA ...............23

2.3.1. Structura platformei de comandă şi control ...........................................................23

2.3.2. Modulul de control cu circuit FPGA ......................................................................24

2.3.3 Descriere arhitectură circuite FPGA .......................................................................25

2.3.4. Modulul de comandă cu tranzistoare .....................................................................26

CAPITOLUL 3 ......................................................................................................................... 27

Dezvoltarea aplicativă .............................................................................................................. 27

3.1. Metode de testare hardware-software pentru m.c.c. .....................................................27

Page 3: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 2 -

3.1.1. Controlul hardware digital .....................................................................................28

3.1.2. Metoda hardware-software propusă pentru testarea controlerului hardware digital

..........................................................................................................................................30

3.2. Modelul dinamic al motorului de curent continuu ........................................................34

3.2.1. Caracteristici electrice ............................................................................................34

3.2.2. Caracteristici mecanice ..........................................................................................36

3.2.3. Reprezentarea sistemului în spaţiul stărilor ...........................................................36

3.2.4. Funcţia de transfer a sistemului ..............................................................................38

3.3. Modelarea şi simularea poziţiei motorului DC ............................................................39

3.3.1. Proprietăţi fizice .....................................................................................................39

3.3.2. Modelarea poziţiei ..................................................................................................40

3.3.3. Spaţiul stărilor ........................................................................................................40

3.3.4. Cerinţe de proiectare ..............................................................................................41

3.3.5. Reprezentarea în Matlab şi răspunsul în buclă deschisă ........................................41

3.3.6. Metoda proiectării regulatorului PID pentru reglarea poziţiei ...............................42

3.3.7. Modelarea în mediul de simulare Matlab-Simulink 47

3.3.8. Extragerea unui model digital în Matlab ................................................................49

3.4. Controlul bidirecţional al motorului DC ......................................................................52

CAPITOLUL 4 ......................................................................................................................... 60

Concluzii .................................................................................................................................. 60

BIBLIOGRAFIE ....................................................................................................................... 62

Anexă ....................................................................................................................................... 64

Page 4: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 3 -

LISTA DE ABREVIERI

1DOF - 1 Degree Of Freedom - un grad de libertate

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

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

DSP - Digital Signal Processor – procesoare digitale de semnal

FPGA - Field Programmable Gate Array – arii logice programabile

GPP - General Purpose Processor – procesoare de uz general

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

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

MCU - Microcontroler Unit – microcontroller

MAC - Multiply and Accumulate - multiplicare şi acumulare

PID - Proportional Integrative and Derivative – controler proporţional-integralderivativ

PLD - Programmable Logic Devices –dispozitive/circuite logice programabile

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

PWM - Pulse Width Modulator – modularea în lăţime a impulsurilor

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

VHDL - VHSIC Hardware Description Language – limbaj de descriere hardware

Page 5: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 4 -

CAPITOLUL 1

Introducere

1.1. Motivaţia

Introducerea pe scară largă a automatizării şi robotizării, realizarea noilor tipuri de

maşini unelte cu comanda program au condus la necesitatea utilizării unor sisteme de

acţionare cât mai rapide şi fiabile.

Actionarea electrică poate fi definită numai dacă se ia în consideraţie întreg ansamblul

din care face parte, adică instalaţia industrială şi dacă se ţine seama de scopul principal

urmărit: realizarea unui proces tehnologic de producţie. Instalaţia în care se utilizează

actionări electrice cuprinde în mod necesar urmatoarele trei parţi: maşina electrică,

elementele de transmisie a mişcării şi maşina de lucru. Procesul tehnologic de fabricaţie este

realizat de maşina de lucru, care este pusă în mişcare de maşina electrică de acţionare prin

intermediul elementelor de transmisie.

Page 6: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 5 -

În instalaţiile cu acţionare electrică se realizează conversia electromecanică a energiei,

maşina electrică îndeplinind rolul de convertor al energiei electrice în energie mecanică şi

uneori, în regim de frânare prin recuperare, de convertor al energiei mecanice în energie

electrică în funcţie de condiţiile de funcţionare determinate de procesul tehnologic efectuat de

mecanismul executor sau de lucru.

În decursul dezvoltării istorice acţionarea electrică a apărut prin înlocuirea motorului

hidraulic, cu abur sau cu combustie internă printr-o maşină electrică, obţinându-se acţionarea

pe grupe, la care mai multe maşini de lucru sunt acţionate de la aceeaşi maşină electrică.

Folosirea maşinilor electrice a permis însă trecerea la acţionarea individuală, în care fiecare

maşină de lucru are motorul său de acţionare, obtinându-se avantajul dispunerii utilajelor în

flux tehnologic şi înlocuirea vechilor transmisii prin curele la distanţe mari şi voluminoase

prin transmisii compacte de angrenaje individuale.

Există diferite tipuri de motoare ce pot fi utilizate în sistemele de comandă echipate cu

dispozitive electronice şi fiecare dintre ele pot fi comandate diferit. Elementele de comandă

hardware şi software ale unui motor folosit în sistemele electrice de putere ale autoturismelor

vor fi diferite faţă de elementele de comandă şi control ale unui motor utilizat pentru sistemul

de ventilaţie din interiorul unui laptop.

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

current continuu fără perii.

În sistemele de control tradiţionale, rolul unui circuit FPGA era limitat la generarea de

semnal PWM şi implementarea logicii de pe partea de feedback, celelalte funcţii mai

Page 7: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 6 -

importante ca implementarea regulatorului PID şi comunicarea cu alte module era preluată de

alt sistem cu microcontroler sau procesor de semnal.

Ulterior firma Xilinx a dezvoltat o metodă de control implementată pe circuitele din

familia Spartan 3 si Virtex 4 care inglobează toate componentele buclei de control pe

circuitul FPGA. Implementarea hardware a regulatorului PID, generarea de semnal PWM şi

interfaţarea cu semnalele de feedback permite astfel o executare simultană a procedurilor de

control fapt care duce la creşterea performanţelor sistemului.

S-au propus abordări care folosesc performanţele circuitului FPGA alături de mediul

Matlab/Simulink unde sunt realizate biblioteci cu toate blocurile necesare sistemului de

control, iar prin procedeul drag and drop sunt inchise buclele de control.

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 lucrări constă în realizarea unui sistem complet şi funcţional din

punct de vedere hardware şi software pentru controlul motoarelor de curent continuu cu 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). Am

propus şi crearea unei biblioteci integrabile în Simulink, cu componente parametrizabile care

să permită simularea, implementarea şi testarea 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.

Lucrarea de faţă îş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. Se propune dezvoltarea unei platforme hardware/software complete pentru

implementarea controlului maşinilor electrice.

Page 8: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 7 -

1.2. Scopul lucrării

Prezenta lucrare îşi propune să atingă următoarele scopuri:

• Realizarea unui sistem complet si funcţional din punct de vedere hardware si

software pentru controlul motorului de curent continuu cu perii

• Proiectarea şi realizarea unei plăci de dezvoltare (modulul de comandă care

conţine tranzistorii de putere) care să reprezinte interfaţa dintre motor şi

FPGA.

• Implementarea unui program care să ruleze pe un calculator personal, cu

ajutorul căruia să poată fi comandat motorul de curent continuu care

acţionează asupra unei tije metalice al cărui cursor măsoară o distanţă anume.

• Implementarea în mediul de lucru Matlab/Simulink a blocurilor buclei de

control şi a controlerului de tip PID.

• Simulare si testare in timp real a sistemelor de control.

1.3. Prezentarea sumară a lucrării

Lucrarea este alcătuită din patru capitole.

Capitolul 1 prezintă o introducere în fabricaţia automatizată, precum şi avantajele

eliminării muncii umane şi introducerii motoarelor pentru a eficientiza procesul de producţie.

De asemenea, acest capitolul descrie pe scurt scopul lucrării de faţă.

Capitolul 2 prezintă noţiuni teoretice cu privire la componentele şi metodele folosite

la realizarea acestui proiect . S-au dat definiţiile unui motor de curent continuu, s-au enumerat

operaţiile pe care le poate face şi domeniile de utilizare a motoarelor. Pe lângă acestea, s-au

prezentat figuri, scheme si tabele pentru o mai bună înţelegere a funcţionării acestui tip de

motor. De asemenea, s-a realizat şi o clasificare a motoarelor. În plus, s-a discutat despre

elementele de acţionare folosite în această aplicaţie, precum şi despre elementele care

alcătuiesc un motor.

Capitolul 3 conţine informaţii referitoare la dezvoltarea aplicativă, aducând informaţii

particulare despre instrumentaţia şi metodele folosite. S-au analizat metode de testare şi

implementare hardware-software pentru motorul de curent continuu, s-a construit modelul

Page 9: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 8 -

matematic cu caracteristicile electrice şi mecanice, reprezentând sistemul în spaţiul stărilor.

În ultima parte a capitolului am modelat şi simulat poziţia arborelui motorului de curent

continuu, analizându-se răspunsul sistemului în buclă deschisă (open-loop), în buclă închisă

cu reacţie unitară negativă (feedback), aplicând mai apoi metoda proiectării regulatorului

proporţional-integrator-derivativ(PID). Am extras şi implementat un model digital folosind

funcţii din mediul Matlab. Mai mult, acest capitol conţine explicaţii legate de design-ul şi

implementarea aplicaţiei de faţă.

Lucrarea se încheie cu capitolul 4, care prezintă concluziile şi eventualele dezvoltări

ulterioare care se pot aduce acestui proiect.

Page 10: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 9 -

CAPITOLUL 2

Noţiuni teoretice

2.1. Motorul de curent continuu cu perii

2.1.1. Generalităţi

Motorul de curent continuu a fost inventat în 1873 de Zénobe Gramme prin

conectarea unui generator de curent continuu la un generator asemănător. Astfel, a putut

observa că maşina se roteşte, realizând conversia energiei electrice absorbite de la generator.

Maşinile electrice sunt sisteme tehnice prin care se asigură conversia electromecanica.

Maşinile electrice sunt reversibile( pot lucra fie în regim de generator electric fie în regim de

motor electric, fără vreo modificare constructivă ).

După natura tensiunii de alimentare, maşinile sunt:

• maşini electrice de curent continuu, utilizate în reţelele de curent continuu;

• maşini electrice de curent alternativ, utilizate în reţelele de curent alternativ;

• maşini electrice universale, care se pot utiliza atât în reţelele de curent

alternative cât şi în reţelele de curent continuu.

Page 11: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 10 -

Clasificarea motoarelor de curent continuu se face în funcţie de modul de conectare a

înfăşurării de excitaţie faţă de înfăşurarea indusului:

• motor cu excitaţie separată, unde înfăşurarea statorică şi înfăşurarea rotorică

sunt conectate la două surse separate de tensiune( figura 1.1);

• motor cu excitaţie derivată, unde înfăşurarea statorică şi înfăşurarea rotorică

sunt legate în paralel la aceeaşi sursă de tensiune( figura 1.2);

• motor cu excitaţie serie, unde înfăşurarea statorică şi înfăşurarea rotorică sunt

legate în serie( figura 1.3);

• motor cu excitaţie mixtă, unde înfăşurarea statorică este divizată în două

înfăşurări, una conectată în paralel şi una conectată în serie( figura 1.4).

2.1.2. Definiţii

Figura1.2 Motor cu excitaţie derivată

Figura 1.3 Motor cu excitaţie serie

Figura 1.4 Motor cu excitaţie mixtă

Figura 1.1 Motor cu excitaţie separată

Page 12: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 11 -

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ă.

În tabelul T1.1 este prezentată o comparaţie între motoarele de curent continuu cu

perii şi cele fără perii:

Motoare de c.c. cu perii Motoare de c.c. fără perii

Tipul comutatoarelor Mecanice Electrice (invertoare + senzori

de poziţie)

Dimensiuni Mari Reduse

Întreţinere Periodică Minimă

Domeniul de puteri 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ă

Tabelul T.1.1 Comparaţie motoare DC cu perii şi motoare DC fără perii

2.1.3. Structură

Structura unui motor de curent continuu cu perii este prezentată in figura 1.5

Page 13: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 12 -

Indiferent de tipul motorului, acesta este construit din două părţi componente: stator

şi rotor. Statorul este partea fixă a motorului, în general exterioară, ce include carcasa,

bornele de alimentare, armătura feromagnetică statorică şi înfăşurarea statorică. Rotorul este

partea mobilă a motorului, plasată de obicei în interior. Este format dintr-un ax şi o armătură

rotorică ce susţine înfăşurarea rotorică. Între stator şi rotor există o porţiune de aer numită

întrefier ce permite mişcarea rotorului faţă de stator. Grosimea întrefierului este un indicator

important al performanţelor motorului.

2.1.4. Principiul de funcţionare

Majoritatea motoarelor electrice funcţionează pe baza forţelor electromagnetice ce

acţionează asupra unui conductor parcurs de curent electric aflat în câmp magnetic.

Înfăşurarea rotorică parcursă de curent va avea una sau mai multe perechi de poli

magnetici echivalenţi. Rotorul se deplasează în câmpul magnetic de excitaţie până când polii

rotorici se aliniază în dreptul polilor statorici opuşi. În acelaşi moment, colectorul schimbă

sensul curenţilor rotorici astfel încât polaritatea rotorului se inversează şi rotorul va continua

deplasarea până la următoarea aliniere a polilor magnetici.

Pentru acţionări electrice de puteri mici şi medii, sau pentru acţionări ce nu necesită

câmp magnetic de excitaţie variabil, în locul înfăşurărilor statorice se folosesc magneţi

permanenţi.

Figura 1.5 Structura unui mc.c cu perii

Page 14: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 13 -

Turaţia motorului este proporţională cu tensiunea aplicată înfăşurării rotorice şi invers

proporţională cu câmpul magnetic de excitaţie. Turaţia se reglează prin varierea tensiunii

aplicată motorului până la valoarea nominală a tensiunii, iar turaţii mai mari se obţin prin

slăbirea câmpului de excitaţie. Ambele metode vizează o tensiune variabilă ce poate fi

obţinută folosind un generator de curent continuu (grup Ward-Leonard), prin înserierea unor

rezistoare în circuit sau cu ajutorul electronicii de putere (redresoare comandate, choppere)

Cuplul dezvoltat de motor este direct proporţional cu curentul electric prin rotor şi cu

câmpul magnetic de excitaţie. Reglarea turaţiei prin slăbire de câmp se face, aşadar, cu

diminuare a cuplului dezvoltat de motor. La motoarele serie acelaşi curent străbate

înfăşurarea de excitaţie şi înfăşurarea rotorică. Din această consideraţie se pot deduce două

caracteristici ale motoarelor serie: pentru încărcări reduse ale motorului, cuplul acestuia

depinde de pătratul curentului electric absorbit; motorul nu trebuie lăsat să funcţioneze în gol

pentru că în acest caz valoarea intensităţii curentului electric absorbit este foarte redusă şi

implicit câmpul de excitaţie este redus, ceea ce duce la ambalarea maşinii până la

autodistrugere.

Schimbarea sensului de rotaţie se face fie prin schimbarea polarităţii tensiunii de

alimentare, fie prin schimbarea sensului câmpului magnetic de excitaţie. La motorul serie,

prin schimbarea polarităţii tensiunii de alimentare se realizează schimbarea sensului ambelor

mărimi şi sensul de rotaţie rămâne neschimbat. Aşadar, motorul serie poate fi folosit şi la

tensiune alternativă, unde polaritatea tensiunii se inversează o dată în decursul unei perioade.

Un astfel de motor se numeşte motor universal şi se foloseşte în aplicaţii casnice de puteri

mici şi viteze mari de rotaţie (aspirator, mixer).

Rotorul motorului DC cu perii 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.6 sunt prezentate câteva dintre formele constructive ale

rotorului.

Page 15: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 14 -

Statorul unui motor de curent continuu cu perii este prezentat în figura 1.7. Acesta

este asemănător cu cel al motoarelor asincrone, însă modul de distribuire a înfăşurărilor este

diferit.

Funcţionarea motorului este prezentată schematic in figurile 1.8 si 1.9

Figura 1.6 Rotorul motorului DC cu perii

Figura 1.7 Statorul motorului DC cu perii

Page 16: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 15 -

Figura 1.8 Funcţionarea motorului DC cu perii

Figura 1.9 Funcţionarea motorului DC cu perii

Page 17: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 16 -

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.10. 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.

2.1.5. Aplicaţii ale motoarelor DC cu 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ă.

Figura 1.10 Secţiune longitudinală prin motor

Page 18: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 17 -

2.2. Placa de dezvoltare Xilinx( Spartan 3)

2.2.1. Circuitele digitale folosite în controlul maşinilor electrice

În proiectele tradiţionale erau folosite componente analogice care au un preţ relativ

redus, însă, dezavantajele principale ale sistemelor analogice constau în sensibilitate la

variaţiile de temperatură, îmbătrânirea mai rapidă a componentelor şi dificultatea de a

îmbunătăţi sistemul cu noi caracteristici.

Sistemele digitale elimină abaterile cauzate de variaţiile de temperatură, iar

îmbunătăţirea caracteristicilor sistemului la un moment dat se poate realiza foarte uşor prin

modificarea softului procesorului programabil conţinut de sistem.

Unul dintre obiectivele acestei lucrări constă în implementarea controlului motoarelor

de curent continuu cu circuite logice programabile (FPGA).

În continuare se va face o prezentare a circuitelor digitale complexe existente pe piaţă,

prezentare a care va facilita introducerea în discuţie a circuitelor logice programabile.

Tototdată vor fi prezentate şi câteva criterii de performanţă utile în selectarea circuitului

digital adecvat aplicaţiei dezvoltate

2.2.2. Comparaţie între diferitele tipuri de circuite digitale folosite în

controlul acţionărilor electrice

În cazul proiectelor care necesită procesarea în timp real a semnalelor, există în ultima

perioadă de timp o multitudine de noi produse şi tehnologii care sunt din ce în ce mai

„inteligente”, rapide, miniaturizate şi cu posibilităţi de interconectare sporite.

Page 19: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 18 -

Această varietate de produse îngreunează alegerea pe care trebuie să o facă

proiectanţii vizavi de arhitectura optimă pentru procesarea în timp real a semnalelor. În

continuare se va încerca stabilirea unui set de criterii care să uşureze alegerea unei arhitecturi

optime.

În acţionările moderne, atât partea de control cât şi logica de comutaţie 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 (GPP/RISC) ;

• Arii de porţi logice programabile (FPGA);

• Circuite integrate dedicate (ASIC).

În tabelul T.1.2 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.

2.2.3. Comparaţie performanţe circuite FGPA-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. Performanţele implementării pe un

Implementare

pe piaţă Performanţă Preţ

Uşurinţă

in

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 Bun Foarte Bun Satisfăcător Bun Bun

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

RISC Bun Bun Satisfăcător Bun Satisfăcător Foarte Bun Bun

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

Page 20: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 19 -

procesor a unui algoritm 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.

Procesoarele digitale de semnal convenţionale utilizează o arhitectură care prin natura

ei este serială. Blocurile de multiplicare – acumulare (MAC) sunt de obicei resurse partajate.

Controlerele PID folosesc intensiv blocurile MAC deoarece fiecare intrare de date trebuie

multiplicată cu coeficienţii de amplificare şi apoi rezultatele însumate. Cu cât algoritmul este

mai complex, creşte şi numărul de blocuri MAC necesare pentru calculul rezultatului.

Folosirea unui procesor cu frecvenţă de lucru ridicată creează dificultăţi suplimentare astfel

că la funcţionarea în timp real, pentru semnale de frecvenţă foarte ridicată este optimă

utilizarea tehnicii de procesare în paralel utilizând mai multe blocuri MAC. Arhitectura

modernă a circuitelor FPGA permite procesarea paralelă care foloseşte mai multe blocuri

MAC.

2.2.4. Componente şi caracteristici ale placii de dezvoltare Xilinx

Spartan-3

Placa de dezvoltare Xilinx Spartan-3 oferă un cost redus, uşor de utilizat în

dezvoltare. În figurile 1.11 şi 1.12 am descris componentele si caracteristicile plăcii cu porţi

logice reconfigurabile.

Page 21: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 20 -

Descrierea componentelor din figurile de mai sus sunt prezentate succint mai jos :

1. 200 000 de porţi Xilinx Spartan -3 XC3S200 FPGA în pachetul

XC3S200FT256 cu 256 BGA(Ball Grid Array)- este o metodă mai nouă de

încapsulare în care cipurile sunt ataşate cu ajutorul unor biluţe din cositor

plasate sub cip ;

2. Platforma Flash de 2Mbit Xilinx XCF02F cu sistem programabil de

configurare PROM ;

3. Opţiunea de jumper permite ca aplicaţia FPGA să citească date PROM sau

configuraţii FPGA din alte surse ;

Figura 1.11 Elementele plăcii de

dezvoltare Xilinx Spartan-3 (partea din faţă)

Figura 1.12 Elementele plăcii de

dezvoltare Xilinx Spartan-3

(partea din spate)

Page 22: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 21 -

4. Memorie rapidă asincronă SRAM de 1 MB ;

5. Port de afişare VGA pe 3 biţi cu 8 culori ;

6. Port serial RS-232 cu 9 pini ;

7. Nivel traducător pentru portul serial RS-232 ;

8. Al doilea RS-232 transmite si primeşte canale disponibile pe placa de test ;

9. Port pentru mouse sau tastatură( PS 2) ;

10. Display cu şapte LED-uri şi patru caractere ;

11. Opt întrerupătoare slide ;

12. Opt LED-uri individuale ;

13. Patru butoane( întrerupătoare) ;

14. Oscilator de crystal ;

15. Soclu pentru un osciltator de cristal auxiliar ;

16. Modul de configuraţie selectat pentru FPGA prin setarea jumperului ;

17. Întrerupător pentru a forţa reconfigurarea FPGA-ului ;

18. LED care indică configurarea cu succes a FPGA-ului ;

19. Port de extensie cu 40 de pini( B1) ;

20. Port de extensie cu 40 de pini( A2) ;

21. Port de extensie cu 40 de pini( A1) ;

22. Port JTAG ;

23. Cablu de conectare a plăcii FPGA la portul paralel al unui PC ;

24. Port JTAG compatibil cu cablul paralel Xilinx Parallel Cable IV şi MiltiPRO

Desktop Tool ;

25. Adaptorul de curent alternativ de intrare ;

26. Indicator de power-on cu LED ;

27. Regulator de tensiune pe placa de 3,3 Volţi ;

28. Regulator de tensiune pe placa de 2,5 Volţi;

Page 23: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 22 -

2.2.5. Controlul software si hardware al motoarelor de curent

continuu

Î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. 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 de curent continuu ş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.13.

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

Figura 1.13 Înglobare a

întregii bucle de control într-un circuit FPGA

Page 24: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 23 -

acestor componente permite o executare simultană a tuturor procedurilor de control

(executare concurenţială), de asemenea performanţele sistemului de control devenind

deterministice. 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.

2.3. Platforma hardware propusă pentru controlul motorului

cu circuite FPGA

Se va face o descriere a structurii modulelor hardware şi a resurselor, folosite pentru

controlul motorului. De asemenea se va face şi o prezentare a parametrilor motorului

î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.

2.3.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 1.14 este prezentată diagrama bloc cu

arhitectura celor două module, modul de interconectare între ele şi modul de interconectare

cu PC-ul şi cu motorul de curent continuu.

Page 25: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 24 -

Conectarea cu motorul de curent continuu se realizează prin intermediul plăcii de

comandă care amplifică semnalul de comandă provenind de la placa FPGA şi îl furnizează

mai departe celor trei înfăşurări statorice ale motorului. Pe de comandă 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 de comandă

permite de asemenea şi monitorizarea curenţilor din cele trei ramuri de invertor.

2.3.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.

Cu ajutorul acestui modul vor fi implementate toate funcţiile de control şi monitorizare ale

motorului de curent continuu.

Figura 1.14 Configuraţia hardware pentru controlul motoarelor de current continuu

Page 26: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 25 -

2.3.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.

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. 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. 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;

• blocurile DCM.

Page 27: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 26 -

2.3.4. Modulul de comandă cu tranzistoare

Convertizoarele statice – invertoarele care alimentează motoarele cu 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ă are ca şi componentă principală un invertor trifazat bazat pe

tranzistorii MOSFET IRF9640. Placa poate fi alimentată cu tensiune în plaja 7-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. Pentru aplicaţia de control a motorului va fi folosit conectorul J3, nivelele de semnal

ale plăcii Spartan-3 fiind 3,3V.

Page 28: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 27 -

CAPITOLUL 3

Dezvoltarea aplicativă

3.1. Metode de testare hardware-software pentru m.c.c.

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.

Page 29: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 28 -

3.1.1. Controlul hardware digital

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.

a) Resurse software şi hardware

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

Page 30: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 29 -

Xilinx Blockset. Comportamentul modelului dezvoltat cu toolboxul menţionat anterior este

simulat cu Simulink şi apoi 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.

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 de curent continuu cu

perii) respectiv a controlerului proporţional integrator (PI), şi pe de altă parte proiectarea

părţii hardware, adică implementarea şi testarea controlerului şi a blocurilor conexe în FPGA.

b) Metode de implementare

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.

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.

Page 31: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 30 -

3.1.2. Metoda hardware-software propusă pentru testarea

controlerului hardware digital

Mediul rezultat în urma unificării programelor care stau la dispoziţia proiectantului de

circuite digitale şi sisteme de control poate să pară eterogen şi poate crea confuzie celor

nefamiliarizaţi cu proiectarea de circuite digitale. 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 1.15:

1. După faza de elaborare a unei diagrame bloc a sistemului de

control î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.

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.

Page 32: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 31 -

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.

Page 33: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 32 -

Figura 1.15 Metoda hardware-software

propusă pentru testarea controlerului hardware digital

Page 34: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 33 -

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( hardware description language) ş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.

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

cosimularea 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 figura 1.14 se

Page 35: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 34 -

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.

3.2. Modelul dinamic al motorului de curent continuu

Modelul matematic

Obiectivul în dezvoltarea modelului matematic al motorului de curent continuu cu

magneţi permanenţi este de a obţine o relaţie între tensiunea aplicată armăturii si viteza

motorului. Prin considerarea caracteristicilor electrice şi mecanice ale sistemului, putem

dezvolta două ecuaţii de echilibru.

3.2.1. Caracteristici electrice

Circuitul electric echivalent al motorului de curent continuu este prezentat ca în figura

de mai jos:

Page 36: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 35 -

Circuitul este alimentat de la o sursă de tensiune (Va) de-a lungul bobinei,

echivalentul electric al armăturii din bobină este inductanţa (La), în serie cu o rezistenţă (Ra),

în serie cu o tensiune indusă (Vc) care se opune sursei de tensiune Va. Tensiunea indusă este

generată de rotaţia bobinei electrice prin linii fixe de flux ale magneţilor permanenţi. Această

tensiune este adesea denumită tensiune electromotoare( back electromotive force).

Aplicând a doua lege a lui Kirchoff in jurul buclei electrice: Suma algebrică a

tensiunilor dintr-un ochi de reţea este nulă, rezultă ecuaţia:

0a aa R L cV V V V− − − = (0.1)

Aplicând legea lui Ohm, tensiunea de-a lungul rezistenţei din înfăşurare, Ra este:

aR a aV I R= ⋅ (0.2) , unde Ia este curentul care trece prin bobină. Tensiunea de-a lungul

bobinei este proporţională cu variaţia în timp a curentului care trece prin bobină şi poate fi

scrisă ca în relaţia: a

aL a

dIV L

dt= ⋅ (0.3) , unde aL este inductanţa bobinei. Tensiunea

contraelectromotoare este: c v aV k ω= ⋅ (0.4), unde vk este constanta vitezei, care

variază în funcţie de densitatea de flux a magneţilor permanenţi, de reluctanţa fierului din

armătură şi de numărul de rotaţii a înfăşurării, iar aω reprezintă viteza de rotaţie a armăturii.

Substituind ecuaţiile (0.2), (0.3) şi (0.4) în prima ecuaţie ⇒

Figura 1.16 Reprezentarea electrică a unui

motor de current continuu

Page 37: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 36 -

0aa a a a v a

dIV I R L k

dtω− ⋅ − ⋅ − ⋅ = (0.5)

3.2.2. Caracteristici mecanice

Caracterizând sistemul din punct de vedere mecanic, se efectuează un echilibru de

energie şi anume: suma cuplurilor motorului de curent continuu trebuie sa fie egala cu 0.

Astfel: , 0e LT T T Tωω− − − = (0.6), unde - eT este cuplul electromagnetic,

,Tω este cuplul acceleraţiei de rotaţie a rotorului, Tω este cuplul produs de viteza rotorului ,

iar LT este cuplul de încărcare mecanică. Cuplul electromagnetic este proporţional cu

curentul ce trece prin înfăşurările armăturii : e t aT k I= ⋅ (0.7), unde tk este constanta

cuplului care, ca şi constanta vitezei vk , variază în funcţie de densitatea de flux a magneţilor

permanenţi, de reluctanţa fierului din armătură şi de numărul de rotaţii a înfăşurării. Cuplul

acceleraţiei de rotaţie a rotorului este ,ad

T Jdtω

ω= ⋅ (0.8), unde J este inerţia rotorului şi

echivalentul de încărcare mecanică. Cuplul produs de viteza rotorului este egal cu :

aT Bω ω= ⋅ (0.9) , unde B este coeficientul de amortizare asociat sistemului mecanic de

rotaţie al motorului. Substituind ecuaţiile (0.7),(0.8) şi (0.9) în ecuaţia (0.6)⇒

0at a a L

dk I J B T

dtω

ω⋅ − ⋅ − ⋅ − = (0.10)

3.2.3. Reprezentarea sistemului în spaţiul stărilor

Ecuaţiile diferenţiale din relaţiile (0.5) şi (0.10) pentru curentul electric ce parcurge

armătura si pentru viteza unghiulară, pot fi scrise în felul următor:

Page 38: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 37 -

a a v a

a aa a a

dI R k VI

dt L L Lω= − ⋅ − ⋅ + (0.11)

a t L

a a

d k TBI

dt J J Jω

ω= ⋅ − ⋅ − (0.12)

, ecuaţii care descriu sistemul motorului de curent continuu. Scriind ecuaţiile diferenţiale în

spaţiul stărilor, rezultă relaţiile:

10

10

a v

a a aa a a

a a Lt

R kI I VL L Ld

Tdt k BJJ J

ω ω

− − = ⋅ + −−

(0.13)

1

2

1 0 0 00 1 0 0

a a

a L

I Vy

y Tω

= ⋅ +

(0.14)

,care este exprimată simbolic ca:

d

x A x B udt

= ⋅ + ⋅ (0.15)

y C x D u= ⋅ + ⋅ (0.16)

,unde x este vectorul de stare, u este vectorul de intrare, iar y este vectorul de ieşire

Page 39: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 38 -

3.2.4. Funcţia de transfer a sistemului

O diagramă bloc de sistem poate fi dezvoltată pornind de la ecuaţiile diferenţiale din

relaţiile (1.18) şi (1.19). Aplicând transformata Laplace celor două ecuaţii ⇒

( ) ( ) ( ) ( ) ( )10 a v

a a a a aa a a

R ks I s I I s s V s

L L L⋅ − = − ⋅ − ⋅Ω + ⋅ (0.17)

( ) ( ) ( ) ( ) ( )10 t

a a a a L

k Bs s I s s T s

J J Jω⋅Ω − = ⋅ − ⋅Ω − ⋅ (0.18)

Dacă apar perturbaţii când sistemul se află în starea de echilibru, condiţiile iniţiale

devin 0 şi toate variabilele suferă o schimbare în jurul referinţei, iar ecuaţiile de mai sus se

pot exprima după cum urmează:

( ) ( ) ( )v a aa

a a

k s V sI s

L s R

− ⋅Ω +=

⋅ + (0.19)

( ) ( ) ( )t a La

k I s T ss

J s B

− ⋅ −Ω =

⋅ + (0.20)

Ecuaţiile de mai sus pot fi cu uşurinţă puse intr-o schema Simulink:

Figura 1.17 Schema Simulink pentru m.c.c

Page 40: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 39 -

Schema bloc de mai sus poate fi simplificată prin presupunerea că efortul de cuplu

este constant, caz în care singura sarcină de cuplu ar fi frecarea, care este relativ constantă în

timp ce motorul se roteşte.Având în vedere schimbările făcute,TL dispare din schemă.

Această schemă bloc este redusă cu uşurinţă prin aplicarea formulelor funcţiilor de transfer

echivalente conexiunilor serie şi reacţie:

3.3. Modelarea şi simularea poziţiei motorului DC

3.3.1. Proprietăţi fizice

Voi presupune următoarele valori pentru parametrii fizici. Aceste valori au fost

obţinute printr-un experiment real în cadrul laboratoarelor din universitatea Carnegie Mellon:

• Momentul de inerţie al rotorului(J)= 3.2284E-6 kg.m^2/s^2;

• Coeficientul de amortizare asociat sistemului mecanic de rotaţie al motorului

(B) = 3.5077E-6 Nms ;

• Constanta cuplului(kt)=Constanta vitezei(kv)=k= 0.0274 Nm/A;

• Rezistenţa electrică(R)= 4 ohm;

• Inductanţa bobinei(L)= 2.75E-6 H;

• Intrarea(Va)=sursa de tensiune;

• Ieşirea(theta)=pozţia arborelui(axului);

• Rotorul şi arborele se presupun a fi rigide;

Figura 1.18 Modelul redus al motorului c.c.

Page 41: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 40 -

3.3.2. Modelarea poziţiei

Aplicând formula: a

dd tθ

ω = rezultă noul sistem de ecuaţii:

2

2 a

dJ B K I

tx dtθ θ∂

⋅ + ⋅ = ⋅∂

(0.21)

aa a

dI dL R I V K

dt dtθ

⋅ + ⋅ = − ⋅ (0.22)

Aplicând transformata Laplace ecuaţiile de mai sus pot fi exprimate în termeni de s:

( ) ( ) ( )2as J s s B s K I sϑ ϑ⋅ ⋅ + ⋅ ⋅ = ⋅ (0.23)

( ) ( ) ( )a a aL s I s R I s V K s sϑ⋅ ⋅ + ⋅ = − ⋅ ⋅ (0.24)

Prin eliminarea I(s), putem obtine următoarea funcţie de transfer, unde viteza de

rotaţie este ieşirea, iar tensiunea de alimentare intrarea. Totuşi în acest exemplu ne

interesează poziţia, de aceea vom împărţi funcţia de transfer cu s. Am obţinut funcţia de

transfer:

( )( ) ( )( )2

a

KH s

V s J s B L s R K

θ= =

⋅ ⋅ + ⋅ ⋅ + + (0.25)

3.3.3. Spaţiul stărilor

Ecuaţiile de mai sus pot fi, de asemenea reprezentate în spaţiul stărilor. Dacă alegem

variabilele de stare ca fiind: poziţia motorului, viteza de rotaţie a armăturii şi curentul care

trece prin bobină, putem rescrie ecuaţiile dupa cum urmează:

Page 42: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 41 -

0 1 00

0 01

0a a

d B Kdt J J

I IK RLL L

θ θ

θ θ⋅ ⋅

= − ⋅ + − −

(0.26)

3.3.4. Cerinţe de proiectare

Poziţionarea motorului trebuie sa fie cât mai precisă, de aceea erorile care apar în

stările de echilibru trebuie sa fie nule. Altă cerinţă de performanţă este ca motorul sa ajungă

în poziţia finală foarte repede. În acest caz ne dorim un timp de soluţionare de 40ms. De

asemenea dorim să avem o depăşire mai mică de 16%

3.3.5. Reprezentarea în Matlab şi răspunsul în buclă deschisă

Putem plasa funcţia de transfer din relaţia (0.25) în mediul de lucru Matlab, definind

numărătorul şi numitorul ca vectori. Am obţinut graficul de mai jos:

Din grafic observăm că atunci când se aplică 1 volt sistemului, poziţia motorului se

schimbă cu 6 radiani, de 6 ori mai mult decât poziţia dorită.

Figura 1.19 Răspunsul

treaptă pentru sistemul cu

buclă deschisă

Page 43: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 42 -

Pentru o intrare treaptă de 1 volt, motorul ar trebui să se rotească cu 1 radian. De

asemenea motorul nu ajunge la starea de echilibru, deci nu se îndeplinesc criteriile de

proiectare.

O altă variantă de simulare este răspunsul sistemului în spaţiul stărilor, definind

matricile din modelul matematic intrare-stare-ieşire. Cele două exemple sunt ataşate anexei.

3.3.6. Metoda proiectării regulatorului PID pentru reglarea poziţiei

Regulatorul PID este cel mai complet regulator 1-DOF. El prezintă toate cele trei

componente de bază P,I şi D. Modelul matematic intrare-ieşire aferent regulatorului PID

poate fi explicitat în mai multe variante:

( ) ( ) ( ) ( )0

1 t

R di

m t k e t e d T eT

tτ τ

= + ⋅ + ⋅

, sau

( ) ( ) ( ) ( )0

t

p I dm t k e t k e d k e tτ τ= ⋅ + + ⋅∫

, unde m(t) este semnalul de intrare al

procesului condus (în cazul nostru al motorului de curent continuu), iar e(t) este eroarea de

reglare care face posibilă rejecţia efectelor unor perturbaţii constante.

Recomandări de utilizare : în practică RG-PID este recomandat atunci când:

• Procesul condus are mai multe constante de timp mari (inerţii mari), al căror

efect poate fi compensat prin constantele de timp ale regulatorului;

• Se impune realizarea condiţiei de eroare de reglare nulă;

• Modificările referinţei şi perturbaţiei sunt puţin pronunţate, ceea ce va face ca

variaţia comenzii să nu fie foarte pronunţată; dacă variaţia referinţei este

puternică, atunci se va prefera utilizarea unui regulator cu prelucrare

neomogenă a informaţiei:

- în raport cu referinţa, de tip PI;

- în raport cu canalul de măsură, de tip PID (canalul pe care se

prelucrează şi efectele perturbaţiei).

Avantajele utilizării RG-PID sunt aceleasi cu cele din cazul utilizării unui RG-PI, cu

observaţia că devine posibilă compensarea efectelor a două constante de timp mari ale PC. Şi

Page 44: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 43 -

în acest caz se poate manifesta efectul de “subcompensare” sau de “supracompensare” unui

pol / unor poli al (ai) PC.

În acest subcapitol voi indica caracteristicile fiecărui regulator: proporţional(P),

integrator(I) şi derivator(D) si cum sunt utilizaţi pentru a obţine un răspuns dorit. Consider

următorul sistem cu reacţie negativă:

, unde Sistem este sistemul care urmează a fi controlat, iar Controllerul este proiectat pentru a

controla intreg sistemul. Funcţia de transfer a controllerului PID este: Ip D

kk k s

s+ + ⋅ .

Variabila e reprezintă eroarea de reglare, fiind egala cu diferenţa dintre intrarea dorită u şi

iesirea actuală y. Eroarea este trimisă controllerului PID care calculeză derivata şi integrala

semnalului de eroare. Semnalul m de la ieşirea controllerului va fi egal cu:

p I p

dem k e k edt k

dt= ⋅ + ⋅ + ⋅∫ . Semnalul m va fi recepţionat de blocul Sistem, care va trimite

mai departe ieşirea obţinută. Noua ieşire y va fi retrimisă senzorului de eroare. Controllerul

va primi noul semnal de eroare si va calcula derivata şi integrala erorii. Procesul se repetă

până când eroarea va fi 0.

Controllerul proportional reduce timpul de creştere, dar nu elimină eroarea.

Integratorul elimină eroarea, dar răspunsul în regim tranzitoriu poate fi deteriorat. Blocul

derivativ are efect de creştere a stabilităţii sistemului, de reducere a suprareglării şi de

îmbunătăţire a regimului tranzitoriu.

Presupunem iniţial doar factorul proporţional pk =1.7. Pentru a determina funcţia de

transfer a circuitului cu buclă închisă vom folosi comanda feedback. Următorul fişier .m ne

va da răspunsul la un semnal treaptă unitar

Page 45: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 44 -

Daca introducem blocul proporţional pe calea de reacţie negativă

(dist_cl=feedback(motor,contr)), vom obţine următorul răspuns :

Din graficele de mai sus observăm că deşi eroarea stării de echilibru este mică,

soluţionarea în timp este prea mare la fel ca şi suprareglajul. De asemenea observăm că

eroarea stării de echilibru la o perturbaţie, este mare.

Figura 1.20 Răspunsul treaptă pentru sistemul cu buclă

închisă cu regulator P

J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; motor=tf(num,den); Kp=1.7; contr=Kp; sys_cl=feedback(contr*motor,1); t=0:0.001:0.2; step(sys_cl,t)

Figura 1.21 Răspunsul treaptă pentru sistemul cu buclă închisă cu

regulator P plasat în bucla de reglare

Page 46: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 45 -

Pentru a înlătura aceste situaţii nefavorabile voi proiecta un controller proporţional

integrator(PI) pentru a îndepărta erorile provocate de perturbaţii. Efectul acestui regulator

este figurat mai jos :

Daca introducem blocurile proporţional şi integrator pe calea de reacţie negativă, vom

obţine următorul răspuns :

Figura 1.22 Răspunsul treaptă pentru sistemul cu buclă închisă cu

regulator PI

Kp=2; Ki=25; contr=tf([Kp Ki],[1 0]); sys_cl=feedback(contr*motor,1); t=0:0.001:0.4; step(sys_cl,t)

Figura 1.23 Răspunsul treaptă pentru sistemul cu buclă închisă cu

regulator PI plasat în bucla de reglare

Page 47: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 46 -

După cum se observă timpul de soluţionare este prea mare. Voi mări factorii

proportional si integrator pentru a accelera procesul de răspuns.Efectul se vede în graficul de

mai jos :

Am constatat că răspunsul este mai rapid decât în cazurile precedente, dar mărind

factorul integrator ki s-a înrăutăţit răspunsul tranzitoriu (suprareglaj mare). Pentru a înlătura

acest dezavantaj, voi adăuga un termen derivativ de reducere a suprareglării. Răspunsul se

află in figura 1.25:

Observăm că răspunsul sistemului la semnal treaptă este foarte bun, suprareglajul este

scăzut, timpul de amortizare este aproximativ de 50ms şi nu avem eroare în regim staţionar.

Figura 1.24 Răspunsul treaptă pentru sistemul cu buclă închisă cu

regulator PI după mărirea factorilor kp

şi ki

Figura 1.25 Răspunsul treaptă pentru sistemul cu buclă închisă cu regulator PID

Page 48: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 47 -

Acum vom ştii că, dacă vom utiliza un controller PID cu factorii kp=20, ki=250 şi kd=0,2,

toate cerinţele de proiectare vor fi satisfăcute.

3.3.7. Modelarea în mediul de simulare Matlab-Simulink

Sistemul va fi modelat prin insumarea cuplului care acţionează asupra inerţiei

rotorului, integrând acceleraţia pentru a obţine viteza şi integrând viteza pentru a obţine

poziţia. De asemenea se vor aplica legile lui Kirchoff. Prima oară voi modela integralele

acceleraţiei unghiulare şi rata de schimbare a curentului din armătură :

2

2

d ddt dtθ θ θ= =∫∫ ∫ (0.27)

dII

dt=∫ (0.28)

În continuare voi modela legile lui Newton si Kirchoff după cum urmează :

2 2

2 2

1t a

d d d dJ T b k I b

dt dt dt J dtθ θ θ θ ⋅ = − ⋅ ⇒ = ⋅ ⋅ − ⋅

(0.29)

1a a

a a c a a e

dI dI dL R I V V R I V k

dt dt L dtθ ⋅ = − ⋅ + − ⇒ = ⋅ − ⋅ + − ⋅

(0.30)

Schema Simulink a sistemului cu buclă deschisă este cea de mai jos:

Page 49: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 48 -

Pentru a vizualiza forma de undă a mărimilor de ieşire, am setat timpul de simulare la

0,2 secunde, suficient pentru a vedea răspunsul în buclă deschisă, metoda de rezolvare ode45

(Dormand-Prince). Având în vedere că timpul de scalare din acest exemplu este mic, această

metodă de integrare este mult mai eficientă decât cea implicită metodei de integrare. Acum

trebuie setaţi parametrii fizici ai sistemului, fie rulând comenzi în Command Window, fie

rulând un fişier .m. Rulând simularea (Ctrl-t sau Start din meniul Simulation) am vizualizat

ieşirea (poziţia) :

Figura 1.26 Schema Simulink a sistemului cu buclă

deschisă

Figura 1.27 Răspunsul

sistemului cu buclă deschisă la un semnal treaptă

unitar

Page 50: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 49 -

3.3.8. Extragerea unui model digital în Matlab

Un model liniar digital al sistemului în timp continuu (în spaţiul stărilor sau cu

ajutorul funcţiei de transfer) poate fi extras dintr-un model Simulink în Matlab. Conversia în

timp discret (digital) se face cu blocuri Zero-Order Hold aplicate intrării şi ieşirii sistemului si

acţionează ca dispozitive D/A(digital to analogue) şi A/D (analogue to digital). Extragerea

modelului se face folosind blocuri de conectare In şi Out şi utilizând funcţia Matlab dlinmod.

Prima oară voi grupa toate componentele sistemului (mai puţin blocul de vizualizare a

mărimii de ieşire-Scope şi blocul treaptă unitar Step).

Acum voi extrage modelul modelul liniar digital folosind următoarele comenzi în

Command Window:

[A,B,C,D]=dlinmod('motor_position_dis',.001)

[num,den]=ss2tf(A,B,C,D), unde parametrul din funcţia dlinmod 0,001reprezintă

timpul de eşantionare pentru conversia în timp discret.Am obţinut funcţia de transfer în

domeniul discret cu numărătorul si numitorul:

num =0 0.0010 0.0010 0.0000

den =1.0000 -1.9425 0.9425 0

În rezultatele de mai sus am observat că atât numărătorul cât şi numitorul funcţiei de

transfer au o rădăcină pentru z=0. Acestea se anulează reciproc şi funcţia de transfer în timp

discret a motorului de curent continuu cu ieşirea poziţia şi intrarea tensiunea de alimentare

Figura 1.28 Schema Simulink a sistemului în timp

discret

Page 51: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 50 -

devine : ( ) 2

0,001 0,0011,9425 0,9425

zH s

z z⋅ +

=− ⋅ +

. Pentru a verifica modelul vom genera un semnal

treaptă unitar funcţiei de transfer de mai sus, folosind comenzile :

[x1] = dstep(num,den,201);

t=0:0.001:0.2;

stairs(t,x1)

,iar graficul sistemului în timp discret cu buclă deschisă este cel din figura de mai jos :

3.3.9 Implementarea controlului digital

Primul pas în proiectarea unui sistem în timp discret este conversia funcţiei de

transfer din timp continuu în timp discret. Putem folosi mediul Matlab utilizând funcţia c2d.

Această funcţie necesită 3 argumente: funcţia de transfer a sistemului, timpul de eşantionare

Ts (folosim 0,001) şi metoda de discretizare întârziere cu o poziţie (zero-order hold -zoh).

Implementând codul de mai jos, obţinem funcţia de transfer discretizată :

num = K;

den = [(J*L) (J*R)+(L*b) (R*b)+(K^2) 0];

motor = tf(num,den)

Ts = 0.001;

motor_d = c2d(motor, Ts, 'zoh')

[numd,dend] = tfdata(motor_d,'v')

Figura 1.29 Graficul sistemului în timp discret cu

buclă deschisă

Page 52: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 51 -

În continuare vom analiza răspusul sistemului în buclă închisă când nu este adăugat

controllerul. Primul pas va fi închiderea buclei funcţiei de transfer utilizând comanda

feedback. Închizând bucla vom vedea răspunsul în timp discret, folosind funcţiile step şi

stairs. Step va furniza vectorul semnalelor treaptă discretizate, iar stairs va conecta aceste

semnale discrete.Adăugând următorul cod Matlab la sfârşitul precedentului (celui de mai sus)

vom obţine graficul din figura 1.30 :

sys_cl = feedback(motor_d,1);

[x1,t] = step(sys_cl,.2);

stairs(t,x1)

xlabel('Timp (sec)')

ylabel('Pozitia (rad)')

title('Raspunsul treapta discretizat')

Figura 1.30 Graficul sistemului în timp discret cu reacţie unitară

negativă

Page 53: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 52 -

3.4. Controlul bidirecţional al motorului DC

Controlul bidirecţional al motorului cu perii necesită un circuit cu punte H. Această

punte, numită H datorită aparenţei schemei este capabilă să conducă curentul în ambele

direcţii prin înfăşurarea motorului.

O punte H este de obicei construită folosind dispozitive de polaritate inversă

(tranzistoare cu efect de camp). Funcţionarea acestora este redată mai jos:

Tranzistorul cu Efect de Câmp tip Metal-Oxid-Semiconductor (TEC-MOS, în

engleză MOSFET, Field Effect Tranzistor) este un dispozitiv semiconductor cu 3 terminale :

1. Sursa => electrodul de unde pleacă sarcinile electrice,

2. Drena => electrodul către care se îndreapta sarcinile electrice,

3. Poarta => electrodul care comandă comportarea dispozitivului.

Poarta este un film metalic izolat de semiconductor printr-un strat de oxid de siliciu.

Când se aplică o tensiune între poartă şi sursă ("+" pe poartă şi "–" pe sursă pentru MOSFET

cu canal N), se crează un câmp electric ca într-un condensator plan. Câmpul electric creat

atrage lângă suprafaţă electroni.

Figura 1.31 Tranzistorul cu efect de câmp

Page 54: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 53 -

Până la o anumită tensiune de prag VP sarcinile de lângă suprafaţă nu sunt suficiente

pentru crearea unui canal conductor între sursă şi drenă. Peste valoarea de prag, câmpul

reuşeşte să aducă suficiente sarcini electrice lângă suprafaţă şi conductanţa (inversul

rezistenţei electrice) canalului dintre sursă şi drenă creşte.

Curentul ID care trece între sursă şi drenă, va fi cu atât mai mare cu cât va fi mai mare

tensiunea aplicată porţii UGS şi cu cât va fi mai mare tensiunea aplicată între drenă şi sursă

UDS (daca UGS >> UDS cu "+" pe drenă şi "–" pe sursă).

ID = (UGS –VP)⋅ UDS⋅K

, unde K este o constantă ce depinde de detaliile constructive ale tranzistorului.

Daca UDS > UGS, curentul prin canal nu mai creşte din cauza îngustării canalului lângă

drenă, datorită câmpului invers ce apare între poartă şi drenă. Curentul are valoarea limită:

ID = (UGS –VP)2⋅K/2.

Pentru a înţelege mai bine, puntea H este separată în două părţi. Referindu-ne la figura

de mai jos, Q1 şi Q2 formează o pereche, iar Q3 şi Q4 formează cealaltă pereche.

Figura 1.32 Circuitul cu punte H

Conducerea bidirecţională a motorul DC cu perii

Page 55: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 54 -

Fiecare pereche este capabilă să comute de o parte şi de cealaltă a tensiunii de

alimentare a motorului. De exemplu, dacă Q1 conduce şi Q2 este blocat, partea stângă a

motorului va fi conectată la sursa de alimentare. Deschizând Q4 şi blocând Q3 partea dreaptă

a motorului va fi conectată la masă. În concluzie, când Q1 şi Q4 sunt închise( Q2 şi Q3 sunt

deschise), se va aplica o tensiune pozitivă, motorul rotindu-se înainte. Deschizând Q1, Q4 şi

închizând Q2, Q3, se va aplica o inversă, motorul rotindu-se înapoi. Folosind terminologia de

mai sus, întrerupătoarele Q1 şi Q2 nu trebuie sa fie blocate concomintent, provocând un scurt

circuit la intrarea sursei de tensiune.

Observăm diodele plasate peste fiecare tranzistor (D1, D2, D3 şi D4). Aceste diode

protejează tranzistorii de spicurile curentului generat de forţa contraelectromotoare, atunci

când TECMOS-urile sunt blocate. Aceste diode sunt necesare doar dacă diodele interne ale

tranzistorilor nu sunt suficiente pentru disiparea curentului generat de forţa

contraelectromotoare.

Condensatorii C1, C2, C3 si C4 sunt opţionali. Valoarea acestora este în general 10

pF. Scopul acestora este reducerea radiaţiilor de frecvenţă joasă, produse de arcuirea

comutatoarelor.

Rezistenţele R1, R2, R3 şi R4 sunt plasate la intrarea fiecărui tranzistor (la grilă –

elctrodul care comandă comportarea dispozitivului), pentru a înlătura producerea de scurt

circuit la intrarea sursei de tensiune.

Modurile de conducere a circuitului cu punte H se află în tabelul T 1.3 :

Q1 Q2 Q3 Q4

Înainte 1 0 0 1

Înapoi 0 1 1 0

Limitare 0 0 0 0

Frânare 0 1 0 1

Tabelul 1.3 Modurile de operare a punţii H

Page 56: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 55 -

Motorul DC este parte a unui sistem complex, care conţine electronica de control

(puntea H) şi un disc ataşat axului motorului. În ansamblu, modelul este figurat mai jos, unde

semnalul de intrare Va este tensiunea aplicată circuitului cu punte H, iar semnalul de ieşire

este poziţia unghiulară a arborelui motorului :

Am proiectat un model principial al motorului de curent continuu in blocul "Motorul

DC". Am folosit librăria SimPowerSystems pentru a implementa componentele electrice şi

librăria SimDriveline pentru a implementa componentele mecanice ale motorului. În figura

de mai jos am implementat subsistemul servo motorului:

Figura 1.33 Schema Simulink a motorului de

curent continuu cu punte H

Page 57: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 56 -

, iar în figura de mai jos am implementat schema Simulink a punţii H :

Figura 1.34 Schema

Simulink a subsistemului

Motor DC

Figura 1.35 Schema

Simulink a subsistemului

Puntea H

Page 58: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 57 -

Modelul motorului DC indică relaţia curentului care trece prin bobină faţă de cuplul

elctromagnetic. Cuplul de la nivelul axului provoacă rotaţia acestuia, rezultând astfel o relaţie

între aceasta si forţa contra electromotoare.Ceilalţi parametrii sunt : inerţia rotorului

(J[ 2kg m⋅ ]), coeficientul de frecare vâscoasă (amortizarea) ( B[ / ]N m s rad⋅ ⋅ ), rezistenţa

armăturii Ra[ ]ohm şi inductanţa armăturii[ ]H .

Daca aplicăm sistemului o tensiune de intrare( de comandă a punţii H) care are

formele de undă ca în figura 1.36 (am considerat 3 cazuri), forma de undă a poziţiei

unghiulare, măsurată in radiani va avea următoarele variaţii:

Figura 1.36 Formele de undă ale tensiunii

aplicată modului de putere

Page 59: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 58 -

Figura 1.37 Formele de undă ale poziţiei unghiulare ca răspuns la un

semnal Signal1 reprezentat în graficul de mai sus

Figura 1.38 Formele de undă ale poziţiei unghiulare ca răspuns la un

semnal Signal2 reprezentat în figura 1.36

Figura 1.39 Formele de undă ale poziţiei unghiulare ca răspuns la un

semnal Signal2 reprezentat în figura 1.36

Page 60: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 59 -

Din graficele de mai sus tragem următoarele concluzii:

-dacă aplicăm la intrare o tensiune constanta se observă că poziţia are o creştere

liniară în timp, fiind direct proporţională cu cuplul de rotaţie al rotorului;

-daca tensiunea de alimentare a circuitului de putere este inversă, atunci motorul se va

roti în sens invers;

-din figura 1.35 observăm că, deşi după o durată de 10 secunde tensiunea de

alimentare a circuitului este 0, motorul nu se opreşte instantaneu, iar aceasta se datorează

inerţiei rotorului.

Page 61: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 60 -

CAPITOLUL 4

Concluzii

Această abordare a controlului motorului cu mediul Matlab are ca scop principal

demonstrarea utilităţii unui sistem hardware implementat în mediul de lucru Matlab pentru

control şi testare. Motorul de curent continuu cu perii este folosit din ce în ce mai des în zilele

noastre, la automobilele hibride sau la cele electrice, la unele scutere electrice, pentru

Page 62: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 61 -

generarea propulsiei, dar si în PC-urile noastre (actionare DVD player, Floppy, HDD,

ventilatoare) şi în alte aplicaţii.

Folosind puterea şi viteza de execuţie a unui circuit FPGA, în procesele industriale, se

poate renunta la metoda tradiţională de a proiecta şi construi chip-uri pentru orice produs nou

ce necesită testat. Astfel se poate renunta chiar la toata partea electronică şi implementarea a

tot ceea ce se doreste de la un sistem cu microcontroler sau microprocesor într-un circuit

FPGA şi totodata se poate urmări răspunsul acestui sistem la diferite valori de test. Avantajul

este în primul rând capacitatea de reprogramare a unui astfel de circuit şi puterea de calcul.

Viteza de rulare a codului ţine de timpul de propagare al semnalului prin porţile logice.

În concluzie, există nenumarate soluţii de comandă a motoarelor pentru sistemele

utilizate în acest moment. Sistemele simple sau complexe tind să folosească

microcontrolerele, iar sistemele cu un grad sporit de complexitate utilizează arhitectura

FPGA-urilor. Recent, disponibilitatea arhitecturilor hibride ce includ caracteristicile

microcontrolerelor şi FPGA-urilor a oferit proiectanţilor de sisteme noi opţiuni. În general,

arhitectura hibridă reprezintă o bună soluţie atât timp cât sunt utilizate doar cateva

componente (acesta este un factor de creştere a fiabilităţii deoarece mai puţine componente

înseamnă o sursă mai mică de posibile defecte), proiectarea software se realizează simplu şi

rapid, iar costul întregului sistem se micşorează.

Page 63: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 62 -

BIBLIOGRAFIE

[1] Prof. Dr. Ing Gheorghe- Daniel Andreescu, Universitatea ,,Politehnica” Timişoara,

Estimatoare în de conducere a acţionărilor electrice -1999

[2] Dr. Ing. Vasile Comnac, Universitatea ”Transilvania” Braşov, Catedra Automatică,

Curs Servomotoare -2007

[3] PhD Rahul Dubey Introduction to embedded systems design using FPGA -2008

[4] Prof. Dr. Ing Emil Micu, Ing. Daniel Mic, Universitatea ”Transilvania” Braşov,

Contribuţii la dezvoltarea unui mediu integrat hardware-software pentru controlul

motoarelor electrice cu circuite logice programabile -2007

[5] Şef lucr.dr.ing. Sorin Muşuroi, Prof.dr.ing. Dorin Popovici, Universitatea

,,Politehnica” Timişoara, Acţionări electrice cu servomotoare, Editura Politehnica

Timişoara-2006

[6] Prof. Dr. Ing Ştefan Preitl, Universitatea ,,Politehnica” Timişoara, Curs Structuri

Avansate de Conducere Automată a Proceselor -2007

[7] Sobh T., Elleithy K, Mahmood A., Karim M. Novel Algorithms and Techniques in

Telecommunications, Automation and Industrial Electronics -2008

www.wikipedia.org

www.howstuffworks.com

Page 64: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 63 -

www.xilinx.com

www.mathworks.com

www.microchip.com

Page 65: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 64 -

Anexă

Răspunsul sistemului de reglare a poziţiei în buclă deschisă la un semnal treaptă unitar,

utilizând modelul matematic intrare stare ieşire:

pos_opel_loop_state_space.m

J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; A=[0 1 0 0 -b/J K/J 0 -K/L -R/L]; B=[0 ; 0 ; 1/L]; C=[1 0 0]; D=[0]; motor=ss(A,B,C,D); step(motor) xlabel('Timp'); ylabel('Pozitia unghiulara(rad/s)'); title('Raspunsul sistemului de reglare a pozitiei in bucla deschisa la un semnal treapta unitar utilizand spatiul starilor ');

Page 66: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 65 -

Răspunsul sistemului de reglare a poziţiei în buclă deschisă la un semnal treaptă unitar,

utilizând funcţia de transfer a sistemului:

pos_opel_loop_fdt.m

J=3.2284E-6; b=3.5077E-6; K=1; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; motor=tf(num,den); step(motor,0:0.001:0.2); xlabel('Timp(s)'); ylabel('Pozitia unghiulara(rad/s)'); title('Raspunsul sistemului de reglare a pozitiei in bucla deschisa la un semnal treapta unitar utilizand functia de transfer'); Raspunsul acestor două programe sunt ilustrate în figura 1.19 la pagina 41

Răspunsul sistemului de reglare a poziţiei în buclă închisă la un semnal treaptă unitar,

utilizând un regulator P cu kp=2:

pos_close_loop_p.m

J=3.2284E-6; b=3.5077E-6; K=0.0274; R=4; L=2.75E-6; num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; motor=tf(num,den); Kp=2; contr=Kp; sys_cl=feedback(contr*motor,1); t=0:0.001:0.2; step(sys_cl,t); xlabel('Timp'); ylabel('Pozitia unghiulara(rad/s)'); title('Raspunsul sistemului de reglare a pozitiei in bucla inchisa la un semnal treapta unitar utilizand un regulator P cu kp=2'); Răspunsul acestui program este ilustrat în figura 1.20 la pagina 44

Răspunsul sistemului de reglare a poziţiei în buclă închisă la un semnal treaptă unitar,

utilizând un regulator PI cu kp=2 şi ki=25:

Page 67: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 66 -

num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; motor=tf(num,den); Kp=2; Ki=25; contr=tf([Kp Ki],[1 0]); sys_cl=feedback(contr*motor,1); t=0:0.001:0.4; step(sys_cl,t); xlabel('Timp'); ylabel('Pozitia unghiulara(rad/s)'); title('Raspunsul sistemului de reglare a pozitiei in bucla inchisa la un semnal treapta unitar utilizand regulatoare PI cu kp=2 si ki=25'); Răspunsul acestui program este ilustrat în figura 1.22 la pagina 41

Răspunsul sistemului de reglare a poziţiei în buclă închisă la un semnal treaptă unitar,

utilizând un regulator PID cu kp=2, ki=25 şi kd=0,2:

pos_close_loop_pid.m num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; motor=tf(num,den); Kp=20; Ki=250; Kd=0.2; contr=tf([Kd Kp Ki],[1 0]); sys_cl=feedback(contr*motor,1); t=0:0.001:0.1; step(sys_cl,t); xlabel('Timp'); ylabel('Pozitia unghiulara(rad/s)'); title('Raspunsul sistemului de reglare a pozitiei in bucla inchisa la un semnal treapta unitar utilizand regulatoare PID cu kp=2,ki=25,kd=0,2'); Răspunsul acestui program este ilustrat în figura 1.25 la pagina 46 Răspunsul sistemului de reglare a poziţiei în buclă închisă la un semnal treaptă unitar, în timp

discret:

pos_close_loop_dis.m

num = K; den = [(J*L) (J*R)+(L*b) (R*b)+(K^2) 0]; motor = tf(num,den) Ts = 0.001; motor_d = c2d(motor, Ts, 'zoh') [numd,dend] = tfdata(motor_d,'v') sys_cl = feedback(motor_d,1);

Page 68: Proiect de Diploma Alexandru Daniel STOENESCU

Conducerea unui motor de curent continuu cu perii

- 67 -

[x1,t] = step(sys_cl,.2); stairs(t,x1); xlabel('Timp (sec)'); ylabel('Pozitia (rad)'); title('Raspunsul treapta discretizat'); Răspunsul acestui program este ilustrat în figura 1.30 la pagina 51 Răspunsul sistemului de reglare a poziţiei în buclă închisă la un semnal treaptă unitar, cu

regulator PI plasat pe bucla de reglare:

pos_close_loop_pi_dist.m

num=K; den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0]; motor=tf(num,den); Kp=2; Ki=25; contr=tf([Kp Ki],[1 0]); dist_cl=feedback(motor,contr); t=0:0.001:0.2; step(dist_cl,t) Răspunsul acestui program este ilustrat în figura 1.23 la pagina 45