Sunteți pe pagina 1din 68

UNIVERSITATEA “POLITEHNICA” DIN TIMIŞOARA

FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE


DEPARTAMENTUL DE AUTOMATICĂ ŞI INFORMATICĂ
APLICATĂ

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
Conducerea unui motor de curent continuu cu perii

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

-1-
Conducerea unui motor de curent continuu cu perii

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

-2-
Conducerea unui motor de curent continuu cu perii

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

-3-
Conducerea unui motor de curent continuu cu perii

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.

-4-
Conducerea unui motor de curent continuu cu perii

Î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

-5-
Conducerea unui motor de curent continuu cu perii

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.

-6-
Conducerea unui motor de curent continuu cu perii

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

-7-
Conducerea unui motor de curent continuu cu perii

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.

-8-
Conducerea unui motor de curent continuu cu perii

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.

-9-
Conducerea unui motor de curent continuu cu perii

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

Figura 1.1 Figura1.2


Motor cu excitaţie separată Motor cu excitaţie derivată

Figura 1.3 Figura 1.4


Motor cu excitaţie serie Motor cu excitaţie mixtă

2.1.2. Definiţii

- 10 -
Conducerea unui motor 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ă.
Î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

- 11 -
Conducerea unui motor de curent continuu cu perii

Figura 1.5
Structura unui mc.c cu perii

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.

- 12 -
Conducerea unui motor de curent continuu cu perii

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.

- 13 -
Conducerea unui motor de curent continuu cu perii

Figura 1.6
Rotorul motorului DC cu perii

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.

Figura 1.7
Statorul motorului DC cu perii

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

- 14 -
Conducerea unui motor de curent continuu cu perii

Figura 1.8
Funcţionarea motorului DC cu perii

Figura 1.9
Funcţionarea motorului DC cu perii

- 15 -
Conducerea unui motor de curent continuu cu perii

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.

Figura 1.10
Secţiune longitudinală prin motor

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

- 16 -
Conducerea unui motor de curent continuu cu perii

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.

- 17 -
Conducerea unui motor de curent continuu cu perii

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.

Uşurinţă
Implementare Consum de Flexibilitate
Performanţă Preţ in Concluzii
pe piaţă putere ulterioară
dezvoltare
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

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

- 18 -
Conducerea unui motor de curent continuu cu perii

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.

- 19 -
Conducerea unui motor de curent continuu cu perii

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)

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 ;

- 20 -
Conducerea unui motor de curent continuu cu perii

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;

- 21 -
Conducerea unui motor de curent continuu cu perii

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.

Figura 1.13
Înglobare a
întregii bucle de control
într-un circuit FPGA

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

- 22 -
Conducerea unui motor de curent continuu cu perii

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.

- 23 -
Conducerea unui motor de curent continuu cu perii

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

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.

- 24 -
Conducerea unui motor de curent continuu cu perii

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.

- 25 -
Conducerea unui motor de curent continuu cu perii

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.

- 26 -
Conducerea unui motor de curent continuu cu perii

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.

- 27 -
Conducerea unui motor de curent continuu cu perii

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

- 28 -
Conducerea unui motor de curent continuu cu perii

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.

- 29 -
Conducerea unui motor de curent continuu cu perii

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.

- 30 -
Conducerea unui motor de curent continuu cu perii

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.

- 31 -
Conducerea unui motor de curent continuu cu perii

Figura 1.15
Metoda hardware-software
propusă pentru testarea
controlerului hardware digital

- 32 -
Conducerea unui motor de curent continuu cu perii

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

- 33 -
Conducerea unui motor de curent continuu cu perii

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:

- 34 -
Conducerea unui motor de curent continuu cu perii

Figura 1.16
Reprezentarea electrică a unui
motor de current continuu

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:

Va −VRa −VLa −Vc = 0 (0.1)

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

VRa = I a ⋅ Ra (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

dI a
scrisă ca în relaţia: V La = L a ⋅ (0.3) , unde La este inductanţa bobinei. Tensiunea
dt

contraelectromotoare este: V c = k v ⋅ ω a (0.4), unde kv 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 ⇒

- 35 -
Conducerea unui motor de curent continuu cu perii

dIa
Va − Ia ⋅ Ra − La ⋅ − kv ⋅ωa = 0 (0.5)
dt

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: Te − Tω, − Tω − TL = 0 (0.6), unde - Te este cuplul electromagnetic,

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

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

curentul ce trece prin înfăşurările armăturii : Te = kt ⋅ I a (0.7), unde kt este constanta

cuplului care, ca şi constanta vitezei kv , 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

d ωa
acceleraţiei de rotaţie a rotorului este Tω , = J ⋅ (0.8), unde J este inerţia rotorului şi
dt
echivalentul de încărcare mecanică. Cuplul produs de viteza rotorului este egal cu :

Tω = B ⋅ ωa (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) ⇒

d ωa
kt ⋅ I a − J ⋅ − B ⋅ ωa − TL = 0 (0.10)
dt

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:

- 36 -
Conducerea unui motor de curent continuu cu perii

dI a R k V
= − a ⋅ I a − v ⋅ ωa + a (0.11)
dt La La La

d ω a kt B T
= ⋅ I a − ⋅ ωa − L (0.12)
dt J J J
, ecuaţii care descriu sistemul motorului de curent continuu. Scriind ecuaţiile diferenţiale în
spaţiul stărilor, rezultă relaţiile:

 Ra kv   1 
− − 0 
d  I a   La La   I a   La V 
 = ⋅  +   a 
dt  ωa   kt B  ωa  1 T
−     0 −  L 
(0.13)

 J J   J

 y1   1 0   I a   0 0   Va 
 =  ⋅  +    (0.14)
y
 2  0 1 ω
  a  0 0   TL 

,care este exprimată simbolic ca:

d
x = A⋅ x + B ⋅u (0.15)
dt

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

- 37 -
Conducerea unui motor de curent continuu cu perii

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 ⇒

Ra k 1
s ⋅ Ia ( s ) − Ia (0) = − ⋅ I a ( s ) − v ⋅ Ω a ( s ) + ⋅ Va ( s ) (0.17)
La La La

kt B 1
s ⋅ Ω a ( s ) − ωa ( 0 ) = ⋅ I a ( s ) − ⋅ Ω a ( s ) − ⋅ TL ( s ) (0.18)
J J J

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

−kv ⋅ Ω a ( s ) + Va ( s )
Ia ( s ) = (0.19)
La ⋅ s + Ra

−kt ⋅ I a ( s ) − TL ( s )
Ωa ( s ) = (0.20)
J ⋅s + B

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

Figura 1.17
Schema Simulink pentru m.c.c

- 38 -
Conducerea unui motor de curent continuu cu perii

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:

Figura 1.18
Modelul redus al motorului c.c.

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;

- 39 -
Conducerea unui motor de curent continuu cu perii

3.3.2. Modelarea poziţiei


Aplicând formula: ωa = rezultă noul sistem de ecuaţii:
dt
∂ 2θ dθ
J ⋅ 2 + B⋅ = K ⋅ Ia (0.21)
∂tx dt

dI a dθ
L⋅ + R ⋅ I a = Va − K ⋅ (0.22)
dt dt

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

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

L ⋅ s ⋅ I a ( s ) + R ⋅ I a ( s ) = Va − 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:
θ K
H ( s) = = (0.25)
Va (
s ⋅ ( J ⋅ s + B) ⋅( L ⋅ s + R) + K 2 )

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

- 40 -
Conducerea unui motor de curent continuu cu perii

 
 θ   0 1 0   θ   
 0
d  ⋅   B K   ⋅   
θ  = 0 − ⋅  + 0  (0.26)
dt    J J  θ   
I
 a   K R   Ia   
1
0 − −  L
 L L

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:

Figura 1.19
Răspunsul
treaptă pentru
sistemul cu
buclă deschisă

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

- 41 -
Conducerea unui motor de curent continuu cu perii

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:
 1
t 
m ( t ) = k R e ( t ) + ⋅ ∫ e (τ ) dτ + Td ⋅ e
 Ti 0
(t )  , sau

t

0
(t ),
m ( t ) = k p ⋅ e ( t ) + k I ∫ e (τ ) dτ + kd ⋅ e 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

- 42 -
Conducerea unui motor de curent continuu cu perii

î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
kI
controla intreg sistemul. Funcţia de transfer a controllerului PID este: k p + + kD ⋅ 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:
de
m = k p ⋅ e + k I ⋅ ∫ edt + k p ⋅ . Semnalul m va fi recepţionat de blocul Sistem, care va trimite
dt
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 k p =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

- 43 -
Conducerea unui motor de curent continuu cu perii

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.20
Răspunsul treaptă pentru sistemul cu buclă
închisă cu regulator P

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


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

Figura 1.21
Răspunsul treaptă
pentru sistemul cu
buclă închisă cu
regulator P plasat în
bucla de reglare

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.

- 44 -
Conducerea unui motor de curent continuu cu perii

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 :

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)

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


obţine următorul răspuns :

Figura 1.23
Răspunsul treaptă
pentru sistemul cu
buclă închisă cu
regulator PI plasat în
bucla de reglare

- 45 -
Conducerea unui motor de curent continuu cu perii

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 :

Figura 1.24
Răspunsul treaptă
pentru sistemul cu
buclă închisă cu
regulator PI după
mărirea factorilor kp
şi ki

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:

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

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.

- 46 -
Conducerea unui motor de curent continuu cu perii

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ă :
d 2θ dθ dI
∫∫ dt 2 = ∫ dt = θ (0.27) ∫ dt = I (0.28)

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

d 2θ dθ d 2θ 1  dθ 
J⋅ = T − b ⋅ ⇒ = ⋅  kt ⋅ I a − b ⋅ (0.29)
dt 2
dt dt 2
J  dt 

dI a dI 1  dθ 
L⋅ = − R ⋅ I a + Va − Vc ⇒ a = ⋅  − R ⋅ I a + Va − ke ⋅  (0.30)
dt dt L  dt 

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

- 47 -
Conducerea unui motor de curent continuu cu perii

Figura 1.26
Schema Simulink a
sistemului cu buclă
deschisă

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.27
Răspunsul
sistemului cu buclă
deschisă la un
semnal treaptă
unitar

- 48 -
Conducerea unui motor de curent continuu cu perii

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

Figura 1.28
Schema Simulink a
sistemului în timp
discret

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

- 49 -
Conducerea unui motor de curent continuu cu perii

devine : H ( s ) = 0, 001 ⋅ z + 0, 001 . Pentru a verifica modelul vom genera un semnal


2
z − 1,9425 ⋅ z + 0,9425

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 :

Figura 1.29
Graficul sistemului
în timp discret cu
buclă deschisă

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')

- 50 -
Conducerea unui motor de curent continuu cu perii

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

- 51 -
Conducerea unui motor de curent continuu cu perii

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:

Figura 1.31
Tranzistorul cu efect de câmp

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.

- 52 -
Conducerea unui motor de curent continuu cu perii

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

- 53 -
Conducerea unui motor de curent continuu cu perii

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

- 54 -
Conducerea unui motor de curent continuu cu perii

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 :

Figura 1.33
Schema Simulink a motorului de
curent continuu cu punte H

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:

- 55 -
Conducerea unui motor de curent continuu cu perii

Figura 1.34
Schema
Simulink a
subsistemului
Motor DC

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

Figura 1.35
Schema
Simulink a
subsistemului
Puntea H

- 56 -
Conducerea unui motor de curent continuu cu perii

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[ kg ⋅ m 2 ]), 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

- 57 -
Conducerea unui motor de curent continuu cu perii

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

- 58 -
Conducerea unui motor de curent continuu cu perii

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.

- 59 -
Conducerea unui motor de curent continuu cu perii

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

- 60 -
Conducerea unui motor de curent continuu cu perii

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

- 61 -
Conducerea unui motor de curent continuu cu perii

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

- 62 -
Conducerea unui motor de curent continuu cu perii

www.xilinx.com
www.mathworks.com
www.microchip.com

- 63 -
Conducerea unui motor de curent continuu cu perii

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 ');

- 64 -
Conducerea unui motor de curent continuu cu perii

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:

- 65 -
Conducerea unui motor de curent continuu cu perii

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

- 66 -
Conducerea unui motor de curent continuu cu perii

[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

- 67 -