CONTROLUL EMBEDDED AL MOTOARELOR DE CURENT CONTINUU FA RA PERII PROIECT DE DIPLOMĂ Autor: Diana -Roxana Rusu Conducător științific : Conf . Dr. Ing…. [627814]

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
2018

CONTROLUL EMBEDDED AL MOTOARELOR DE
CURENT CONTINUU FA RA PERII

PROIECT DE DIPLOMĂ

Autor: Diana -Roxana Rusu

Conducător științific : Conf . Dr. Ing. Mirela DOBRA

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE

DECAN
Prof.dr.ing. Liviu MICLEA Vizat,

DIRECTOR DEPARTAMENT AUTOMATICĂ
Prof.dr.ing. Honoriu VĂLEAN

Autor: Diana -Roxana RUSU

Controlul embedded al motoarelor de curent continuu fără perii

1. Enunțul temei: Acestă lucrare prezintă un sistem de control al turației motoarelor
de curent continuu fără perii. Algoritmul este explicat pe parcursul lucrării de față.

2. Conținutul proiectului: Pagina de prezentare, Declarație privind autenticitatea
proiectului, Sinteza proiectului, Cuprins, Introducere , Sudiu Bibliografic , Analiză,
Proiec tare, Implementare, Concluzii, Bibliografie .

3. Locul documentației: Universitatea Tehnică din Cluj -Napoca

4. Consultanți:

5. Data emiterii temei:

6. Data predării:

Semnătura autorului

Semnătura conducătorului științific

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE

Declarație pe proprie răspundere privind
autenticitatea proiectului de diplomă

Subsemnatul(a) Diana -Roxana RUSU , legitimat(ă) cu CI seria SX nr. 324453 ,
CNP [anonimizat] , autorul lucrării: CONTROLUL EMBEDDED AL MOTOARELOR DE
CURENT CONTRINUU FĂRĂ PERII , elaborată în vederea susținerii examenului de
finalizare a studiilor de licență la Facultatea de Automatică și Calculatoare ,
specializarea Automatică și Informatică Aplicată , din cadrul Universității Tehnice din
Cluj-Napoca, sesiunea Iulie 2018 a anu lui universitar 2017 -2018 , declar pe proprie
răspundere, că această lucrare este rezultatul propriei activități intelectuale, pe baza
cercetărilor mele și pe baza informațiilor obținute din surse care au fost citate, în textul
lucrării, și în bibliografie .
Declar, că această lucrare nu conține porțiuni plagiate, iar sursele bibliografice au
fost folosite cu respectarea legislației române și a convențiilor internaționale privind
drepturile de autor.
Declar, de asemenea, că această lucrare nu a mai fost prez entată în fața unei alte
comisii de examen de licență.
In cazul constatării ulterioare a unor declarații false, voi suporta sancțiunile
administrative, respectiv, anularea examenului de licență .

Data Diana -Roxana RUSU

(semnătura)

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE

SINTEZA
proiectului de diplomă cu titlul:
Controlul embedded al motoarelor de curent continuu fără perii

Autor: Diana -Roxana RUSU
Conducător științific: Conf. D r. Ing. Mirela DOBRA

1. Cerințele temei: Analiza, proiectarea și implementarea unui sistem de control al
turației unui motor de curent contrinuu fără perii folosind microcontrolerul
dsPIC33EP256MC506 și placa de dezvoltare dsPICDEM MCLV -2.
2. Soluții alese: În urma analizei s -a ales implementarea unui alg oritm de control al
comutației care nu se bazează pe traductoare de poziție. Algorimul are la bază detecția
trecerii tensiunii contraelectromotoare de pe fazele motorului BLDC prin 0.
3. Rezultate obținute: S-au analizat microprocesorul, placa de dezvolta re, mediul de
dezvoltare și s -a implementat algoritmul de control în mediul de dezvoltare MPLAB X.
Algoritmul funționează conform planificării făcute.
4. Testări și verificări: Testarea și verificarea corectitudinii implementării a fost
făcută prin descăr carea aplicației pe microprocesor și viziualizarea semnalelor de pe două
faze ale motorului și a semnalelor oferite senzorii Hall pe un osciloscop.
5. Contribuții personale: Alegerea algoritmului de control implementat și
implementarea acestuia în mediul d e dezvoltare MPLAB X.
6. Surse de documentare: Biblioteca UTCN, Internet

Semnătura autorului

Semnătura conducătorului științific

1
Cuprins
1 INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. 3
1.1 CONTEXT GENERAL ………………………….. ………………………….. ………………………….. …………………….. 3
1.1.1 Sisteme CAD/CAM ………………………….. ………………………….. ………………………….. ……………… 3
1.2 OBIECTIVE ………………………….. ………………………….. ………………………….. ………………………….. …… 4
1.3 SPECIFICAȚII ………………………….. ………………………….. ………………………….. ………………………….. … 4
2 STUDIU BIB LIOGRAFIC ………………………….. ………………………….. ………………………….. ……………….. 5
2.1 MOTOARE ELECTRICE ………………………….. ………………………….. ………………………….. ………………….. 5
2.1.1 Motorul de curent continuu fără perii ………………………….. ………………………….. ………………. 5
2.1.1.1 Fundamentare teoretică ………………………….. ………………………….. ………………………….. ……………. 5
2.1.1.2 Caracteristica cuplu/viteză ………………………….. ………………………….. ………………………….. …………. 7
2.1.2 Controlul motoarelor de curent continuu fără perii ………………………….. …………………………. 7
2.1.2.1 Resolver -ul ………………………….. ………………………….. ………………………….. ………………………….. ….. 7
2.1.2.2 Encoder -ul optic ………………………….. ………………………….. ………………………….. ……………………….. 8
2.1.2.3 Traductorul cu efect Hall ………………………….. ………………………….. ………………………….. ……………. 8
2.1.2.4 Comanda fără senzori a motoarelor BLDC ………………………….. ………………………….. ………………… 9
2.1.2.5 Regulatoarele PID ………………………….. ………………………….. ………………………….. ……………………. 11
3 ANALIZĂ, PROIECTARE, IMPLEMENTARE ………………………….. ………………………….. …………………. 17
3.1 PLACA DE DEZVOLTARE D SPICDEM MCLV -2 ………………………….. ………………………….. ………………… 17
3.1.1 Magistrala CAN (J4) ………………………….. ………………………….. ………………………….. …………. 17
3.1.2 Interfața LIN (J1) ………………………….. ………………………….. ………………………….. ……………… 18
3.1.3 Interfața USB (J8) ………………………….. ………………………….. ………………………….. …………….. 18
3.1.4 IDC 3 Connector (J11 -J12) ………………………….. ………………………….. ………………………….. …. 18
3.1.5 Conectorii motorului BLDC (J7) ………………………….. ………………………….. ………………………. 19
3.2 MICROCONTROLERUL DS PIC33EP256MC506 ………………………….. ………………………….. ……………… 20
3.2.1 Condițiile de operare ………………………….. ………………………….. ………………………….. ………… 20
3.2.2 Unitatea centrală de procesare pe 16 biți ………………………….. ………………………….. ……….. 20
3.2.3 Module pentru managementul semnalelor de ceas ………………………….. ………………………. 21
3.2.4 Generator de semnale PWM de mare viteză ………………………….. ………………………….. ……. 21
3.2.5 Performanțe analogice avansate ………………………….. ………………………….. ……………………. 21
3.3 MEDIUL DE DEZVOLTARE MPLAB X ………………………….. ………………………….. ………………………….. .. 22
3.3.1 Monitorizarea datelor în timp real ………………………….. ………………………….. …………………. 25
3.4 ANALIZĂ ………………………….. ………………………….. ………………………….. ………………………….. …… 26
3.4.1 Comutația în șase pași ………………………….. ………………………….. ………………………….. ……… 27
3.4.2 Tensiunea contraelectromotoare ………………………….. ………………………….. …………………… 28
3.4.3 Filtrarea digitală utilizând funcția majoritară ………………………….. ………………………….. ….. 28
3.4.4 Proiectarea regulatorului PI ………………………….. ………………………….. ………………………….. . 29
3.5 IMPLEMENTARE ………………………….. ………………………….. ………………………….. ……………………….. 30
3.6 REZULTATE ȘI VALIDARE ………………………….. ………………………….. ………………………….. ……………… 33
4 CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. …. 41
4.1 CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. … 41
4.2 DEZVOLTĂRI ULTERIOARE ………………………….. ………………………….. ………………………….. ……………. 42
5 BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. …………………………. 43

Introdu cere
2

Introducere
3
1 Introducere
1.1 Context general
Odată cu dezvoltarea tehnologiei au apărut așa numitele sisteme înglobate (engl.
Embedded Systems ). Aceste sisteme sunt o combinație de hardware (microprocesor sau
microcontroler) și software specializat, proiectat să îndeplinească o anumită funcție sau
un anumit set de sarcini, de obicei în timp -real. Noțiunea de timp -real nu are o d efiniție
consacrată, dar putem spune că se referă la capacitatea unui sistem de a prelucra datele
primite și de a furniza date de ieșire corecte respectând constrângerile temporare
impuse sistemului.
Sistemele cu microprocesoare au început să se răspândeas că din ce în ce mai mult
datorită unei serii considerabile de avantaje cum ar fi: dimensiunile lor reduse,
fiabilitatea ridicată, funcționarea nepretențioasă din punctul de vedere al condițiilor de
mediu, viteza de lucru comparabilă (din ce in ce mai mare pe măsură ce apar noi tipuri și
arhitecturi de microprocesoare), prețul în scădere etc. Aceste sisteme sunt fabricate să
îndeplinească mai multe sarcini care trebuie să se execute aproape simultan, astfel,
sarcinile sunt izolate în entități software numite fire de execuție (engl. thread). Datorită
împărțirii programului în fire de execuție, procesorul este distribuit între acestea,
prioritară fiind respectarea constrângerilor temporale.

1.1.1 Sisteme CAD /CAM

Deși controlul analogic al mașinilor unelte a ofer it soluții robuste , existau anumite
dezavantaje datorit ă îmbătrânirii componentelor analogice și dificultății de modificare a
logicii de control. Odată cu dezvoltarea sistemelor de control numerice, mașinile unelte
au început s ă fie controlate cu ajutorul microprocesoarelor de înalt ă performanță.
Printre avantajele acestora se numără reprogramabilitatea, nemaifiind necesar ă
înlocuirea echipamentului hardware pentru a aduce modificări algoritmului de control,
respectiv capacitatea de a implementa regulatoare și filtre de ordin mult mai mare. Din
acest motiv, proiectarea si fabricarea asistate de calculator s -au dezvoltat simultan în
ultimii ani, datorit ă legăturii naturale care există între procesul de proiectare și cel de
manufact urare.
Proiectarea asistată de calculator (engl. Computer -Aided Design – CAD ) poate fi
definită ca activitatea prin care un sistem de calcul este folosit pentru proiectarea,
modificarea, analiza și optimizarea procesului de proiectare. Folosind CAD se pot
implementa programe dedicate funcțiilor inginerești care pot realiza analiza stări lor,
tensiuni și deformații ale unor elemente din sistem, analiza dinamică a mecanismelor,
calculul schimbului de căldură, controlul numeric etc. Programele aplicative vari ază de

Introducere
4 la un utilizator la altul, în funcție de tipul liniei de producție, de procesul de fabricare și
de piața de desfacere.
Fabricarea asistată de calculator (engl. Computer -Aided Manufacturing – CAM) se
definește ca utilizarea unui sistem de calcul în activitatea de planificare , monitorizare și
control a unui sistem.
1.2 Obiective
Obiectivul principal al proiectului de față este proiectarea și implementarea unui
sistem de control pentru un motor de curent continuu fără perii ( BLDC ), folosind
microproceso rul dsPIC33EP256MC506, realizat de Microchip. În acest sens , s-a folosit
mediul de dezvoltare MPLAB X, mediu realizat tot de compania mai sus menționată.
Alte obiective :
 cunoașterea și familiarizarea cu familia de procesoare dsPIC33EP realizată de
Micro chip ;
 monitorizarea turației și a comutației senzorilor Hall ;
 familiarizarea cu mediul de dezvoltare MPLAB X și cu limbajul de programare
Embedded C .
1.3 Specificații
În lucrarea de față se dorește obținerea unui sistem de control numeric robust,
stabil și cu o eficiență ridicată. De asemenea, se pot monitoriza turația , respectiv
comutația senzorilor Hall folosind interfața grafic ă pusă la dispoziție de mediul de
dezvoltare MPLAB X.

Studiu Bibliografic
5
2 Studiu Bibliografic
2.1 Motoare electrice
Motoarele electrice au o istorie foarte lungă care începe cu invenția primului motor
electric în secolul al XIX -lea, când Michael Faraday a descoperit în anul 1821 că poate
folosi curentul electric pentru a genera mișcare. Acesta a descoperit că dacă trece curent
electric printr -un fir care este pus lângă un magnet, atunci firul se rotește în jurul
magnetului. Mai apoi, în 1861, James Clerk Maxwell, pune bazele matematice ale
descoperirii lui Faraday și explică cu acest prilej fenomenul de electromagnetism. După
această descoperire care a marcat lumea științei, motoarele electrice au început să se
dezvolte din ce în ce mai tare și să se răspândească în industrie, înlocuind motoarele pe
bază de carburanți , precum și cele cu cilindri hidraulici. Aproximativ 40% din producția
totală an uală de electricitate este, de fapt, folosită pentru a pune în funcțiune aceste
motoare, procent care este în continuă creștere.
2.1.1 Motorul de curent continuu fără perii
2.1.1.1 Fundamentare teoretică
Motorul de curent continuu fără perii (fără colector), în engleză Brushless DC
electric motor, prescurtat BLDC motor , este un motor electric de curent continuu, la care
comutația căilor de curent necesară învârtirii rotorului se realizează electronic.
Elementele comutatoare de putere sunt dispuse într -o configurație de punte (două
comutatoare de putere pentru o bobină), pentru a permite curentului electric să circule
în ambele sensuri prin bobinele înfășurării rotorice. Aceste motoare sunt foarte des
întâlnite în in dustria automobilelor, aerospațială, medicală, a echipa mentelor de
automatizare sau în sisteme de poziționare. Motoarele BLDC fac parte din categoria
mașinilor electrice sincrone, acest lucru însemnând că viteza de rotație a fluxul ui
magnetic al statorului coincide cu viteza mecanică a rotorului. Rotorul acestor mașini
electrice este un magnet permanent, iar statorul este bobinat de obicei în trei faze cu un
număr variat de perechi de poli magnetici [1].
Printre avantajele folosirii motoarelor BLDC se enu meră:
 costul redus de fabricare datorat construcției simple și robuste;
 putere mare pe unitatea de volum;
 lipsa periilor comutatoare a dus la creșterea duratei de viață ;
 caracteristica bună viteză -cuplu mecanic;
 zgomot redus ;
 complexitatea sistemelor de control a fost redusă odată cu apariția pe piață
a microprocesoarelor și a circuitelor integrate specializate pe comutația
electrică a motoarelor BLDC.

Studiu Bibliografic
6 Conform legii lui Faraday care guvernează circuitul închis al motoarelor BLDC, în
timpul comutației elte ctrice, de pe fazele statorului se poate colecta așa -numita tensiune
contraelectromotoare. Există două variante de înfășurare a bobinajului statorului: având
caracteristic a trapezoidală sau sinusoidală a tensiunii contraelectromotoare . Această
diferențiere se face pe baza interconectării bobinelor aflate în stator pentru a oferi cele
două tipuri de tensiune contraelectromotoare dup ă cum puntem vedea în figurile 1 și 2.
Deoarece curentul de fază are aceeași natură precum tensiunea corespunzătoare , cuplul
de ieșire al motoarelor sinusoidale este mult mai neted decât la motoarele trapezoidale.
Din păcate , acest avantaj crește costul de producție al motoarelor cu caracteristică
sinusoidală, în general al egându -se utilizarea motoarelor trapezoidale.

Figura 2. 1: Tensiunea contraelectromotoare sub formă trapezoidală
Figura 2.2: Tensiunea contraelectromotoare sub formă sinusoidală

Studiu Bibliografic
7 Rotorul acestor motoare este rea lizat dintr -un magnet permanent și poate avea un
număr variabil de perechi poli cuprins între doi și opt. Magnetul permanent se alege în
funcție de densitatea câmpului magnetic necesară în rotor. Magneții de ferită sunt
utilizați în mod tradițional pentru realizarea magneților permanenți, dar pe măsură ce
tehn ica de manufacturare avansează, magneții realizați din diferite aliaje câștigă
popularitate. Deși sunt mult mai costisitori, magneții din aliaj au o densitate magnetică
ridicată și nu există pierderi în cuplu. De asemenea, acești magneți îmbunătățesc
raportul mărime -greutate și generează un cuplu mai mare decât în motoarele cu
magneții din ferită de caracteristici echivalente .
2.1.1.2 Caracteristica cuplu/viteză
Există doi parametri de cuplu folosiți pentru a defini un motor BLDC: cuplu l maxim
dezvoltat (engl. peak torque ) și cuplul nominal (engl. rated troque ). Cuplul rămâne
constant pentru un interval de viteză până la viteza nominală. Motorul poate să fie
încărcat până la viteza maximă care poate să fie de până la 150% din valoarea nominală,
dar cuplul o să scadă.
Această caractristică este foarte importan tă, deoarece trebuie să fie compatibilă cu
caracteristica similară a sarcinii. Anumite sarcini, de exemplu, compresoare, macarale și
conveiere au un cuplu de sarcină care nu variază cu viteza. Alte sarcini au un cuplu care
crește proporțional cu pătratul v itezei: tipic pentru pompe centrifugale, ventilatoare și
suflante. Unele sarcini, în schimb, necesită o acționare la cuplu constantă până la o
anumită viteză de bază și o acționare la putere constantă la viteze mari (de exemplu la
vehiculele electrice) .
2.1.2 Controlul motoarelor de curent continuu fără perii
Principiul de comandă al motoarelor BLDC este de a acționa fazele statorului
printr -o secvență de comutație prestabilită. Această secvență este necesară pentru a face
curentul s ă intre prin una din faze, res pectiv să iasă prin a doua, iar cea de -a treia fază va
rămâne neutră.
Tranzistoarele de putere ale invertorului trebuie să primească comenzi de
conducție ș i de blocare de la un sistem de comandă care să se sincronizez e cu poziția
rotorului. Pentru a citi poziția rotorului s -au propus diferite tipuri de traductoare, cum
ar fi: resolver -ul, encoder -ul optic sau traductorul cu efect Hall .
2.1.2.1 Resolver -ul
Resorver -ul furnizează o rezoluție foarte fină a semnalului de poziție a arborelui.
Ieșirea acestuia este un s emnal cu două faze (sinus/cosinus) la frecvența purtătoarei,
modulat sinusoidal cu rotația rotorului față de stator. Această ieșire poate fi convertită
într-un tren de impulsuri cu ajutorului unui convertor resolver – digital (engl. Resolver
Digital Conver tor). Se obțin, astfel, între 1000 și 4000 de impulsuri pe rotație. Acest
traductor este folosit mai des în aplicații care necesită informații suplimentare față de
cele necesare pentru impulsurile de comutație, informații necesare pentru turație sau
aplicații care necesită un semnal foarte precis de poziționare a arborelui.

Studiu Bibliografic
8 Deși este mai scump decât celelalte două tipuri de traductoare, resolver -ul are
avantajul suplimentar al rigditații și poate să fie folosit în medii cu temperaturi înalte
sau la viteze ridicate (cel puțin 40.000 rot/min).

2.1.2.2 Encoder -ul optic
Encoder -ul optic este format dintr -un set de perechi de fot otranzistoare și surse de
lumină concentrată folosite împreună ca un disc encoder de sticlă sau de metal. Fantele
prezente pe disc definesc frecvența și forma de undă a trenurilor de impulsuri care sunt
produse de fototranzistoare.
Există două mari tipuri de encodere : asolute (Figura 3. a)) și incrementale (Figura 3
b)). Ieșirea unui encoder absolut indică poziția curentă a rotorului, astfel acesta fiind un
traductor unghiula r. Encoder -ul incremental , în schimb, furnizează o ieșire care oferă
informații privind mișcarea rotorului care es te procesată și folosită pentru a determina
poziția și viteza rotorului.
Encoder -ul optic este folosit într -o gamă largă de aplicații care necesită
monitorizare sau control. Acestea sunt folosite în domenii precum: controlul industrial,
industria automobilelor, industria aeronautică, robotică etc.
Producerea directă a impulsurilor fa ce encoder -ul optic atractiv pentru conectarea
cu circuitele digitale de comutație, dar , din păcate , acestea sunt limitate , deoarece nu pot
lucra la temperaturi la fel de înalte ca și resolver -ul. De asemenea, encoder -ul
incremental nece sită o secvență de inițializare care poate s ă fie evitată prin folositea
unui encoder absolut, dar acesta e ste mult mai scump.
2.1.2.3 Traductorul cu efect Hall
Acesta este cel mai simplu traductor de poziție electronic utilizat pentru aflarea
poziției rotorului. Un traductor Hall este un comutator semiconductor care se închide și
Figura 2.3: a) Encoder optic absolut b) Encoder optic incremental

Studiu Bibliografic
9 se deschide când este plasat într -un camp magnetic mai mare decât o anumită limită.
Acestea se bazează pe efectul Hall, care constă în apariția unu i câmp electric transversal
și a unei difer ențe de potenția l într-un metal sau semiconductor parcurse de un curent
electric, atunci când ele sunt introduse într -un câmp magnetic perpendicular pe direcția
curentului.
Traductoarele Hall furnizează impulsuri compatibile cu circuitele TTL (engl.
Trans istor -Transitor Logic ). Pentru motoarele BLDC se aranjează trei traductoare Hall
decalate cu 60° sau 120° electrice și montate pe carcasa statorului. Pentru a funcționa
este necesară montarea unui magnet separat în apropierea traductoarelor, sau pentru a
evita folosirea unui magnet suplimentar, comutatoarele Hall se pot monta suficient de
aproape de magneții rotorului pentru a fi energizați de fluxul înlănțuit în poziția
corespunzătoare rotorului.

Din păcate , aceste componente s uplimentare necesare în citirea poziției arborelui
cresc inevitabil costul sistemului și pot scădea siguranța, pentru că sunt relativ fragile și
sunt predispuse la defecte sau funcționare incorectă în condiții de mediu nefavorabile
(temperaturi ridicate, p raf, ulei, vibra ții, șocuri etc.).
Datorită acestor dezavantaje majore, în ultimii ani s -au făcut eforturi pentru a
elimina traducto rul de poziționare al arborelui. În urma cercetărilor, în prezent , mai
multe companii oferă soluții pentru comutația fără niciun sen zor suplimentar montat pe
motor. Aceasa este numită comanda fără sen zori (engl. sensorless control ), utilizată și
în lucrarea de față.
2.1.2.4 Comanda fără sen zori a motoarelor BLDC
Dacă privim îndeaproape cele trei faze ale motoarelor BLDC se poate explica cum
algoritmul de control fără sen zori poate calcula poziția rotorului [4].
Figura 2.4: Senzor Hall

Studiu Bibliografic
10 În cazul unui semnal de măsură a tensiunii contraelectromotoare trapezoidal e
(semnalul de măsură al motorului folosit în lucrare), o fază trece în nivel superior, o altă
fază în nivel inferior, iar cea de -a treia fază este inactivă. La fiecare trecere a rotorului
printr -o fază, magnetul permanent aflat pe rotor induce un curent de fază, ceea ce
conduce la nașterea tensiunii electromotoare. Aceasta este dependentă de numărul de
rotații ale fiecărei faze, de viteza unghiulară a rotorului și de tăria magnetului
permanent al rotorului. Această formă de undă este în directă legătură cu poziția
rotorului, de aceea putând fi folosită pentru determinarea poziției. Există numeroase
metode care folosesc tensiunea contraelectromotoare pentru a determina poziția
rotorului, una dintre cele mai conoscute și robuste fiind detecția trecerii prin zero (engl.
zero -corssing detection ).
Atunci când unul din semnalele trapezoidale culese de pe fa ză trece prin zero,
controlerul trebuie să comute fazele conform unei secvențe de comutație prestabilită .
Pentru a păstra avansul rotorului trebuie să existe un decalaj între punctul la care apare
trecerea prin zero și momentul comutației. Pentru a realiza acest lucru, se dorește
calcularea și compensarea acestuia de către controler. Cea mai simplă metodă de
implementare a acestei compensări este prin a c onsidera apariția trecerii prin zero de
fiecare dată cănd tensiunea de pe fiecare fază atinge jumătate din valoarea maximă
absolută.
În aplicațiile care folosesc această metodă de control, tensiune a de prag la trecerea
prin zero variază considerabil. Din fericire, această tensiune de prag este egală cu
punctul neutru al motorului, deoarece aceasta este med ia tensiunilor electromotoare de
pe toate cele trei faze. Astfel, de fiecare dată când tensiunea contraelectromotoare este
egală cu punctul neutru al motorului, apare un eveniment de trecere prin zero, iar
microcontrolerul trebuie să comute. Pentru a reali za această comutație putem folosi fie
un ansamblu de rezistențe și amplificatoare, fie modulul ADC (engl. Analog to Digital
Converter ) și un program implementat pe microcontroler.
Avantajele folosirii controlului fără sen zori:
 nu sunt necesari sen zori suplimentari montați pe motor;
 prin eliminarea sen zorilor sistemul devine mult mai robust;
 costurile totale ale sistemului de control sunt mai reduse;
 sistemul devine mai fiabil existând mai puține componente predispuse
defectelor.
Dezavantaje în utilizarea controlului fără sen zori:
 la viteze mici valoarea tensiunii electromotoare este foarte mică și greu de
detectat; în acest sens, de obicei, pornirea mașinii electrice se face în buclă
deschisă;
 zgomotul produs de comutația MOSFET -urilor este detectat de căt re
modulul ADC, fiind necesară și implementarea unui filtru pent ru eliminarea
zgomotului .
Odată aflată poziția rotorului mai trebuie să luăm în calcul anumite performanțe pe
care trebuie să le îndeplinim pentru proiectare a unui sitem de control al motoarel or

Studiu Bibliografic
11 BLDC. Aceste performanțe vizează timpul de răspuns, suprareglajul, eroarea staționară
la poziție și domeniul de varianță al comenzii. Gândindu -ne la faptul că un motor de
curent continuu fără perii este un sistem electric, putem spune că timpul de răspu ns este
relativ mic (de ordinul milisecundelor), deci nu este un factor care să ridice probleme
foarte mari în calculul sistemului de control. De asemenea, un motor de curent continuu
se poate aproxima cu un e lement de ordinul I (de o constantă de timp car e înglobează
atât dinamica electrică și mecanică) deci răspunsul acestuia la intrare de tip treaptă
poate fi considerat ca o exponențială amortizată simplă, fără suprareglaj.
Se pune problema utilizării unui element de control din cauza erorii staționare la
poziție. Acesta este necesar pentru a aduce eroarea staționară la poziție în banda de
variație ac ceptată. Aceasta presupune ca răspunsul sistemului în regim staționar să fie
cu 2% mai mare sau mai mic decât referința prescrisă . De exemplu, dacă avem ca și
referință a motoru lui o viteză de 2500 de rotații/ minut, răspunsul sitemului trebuie să
fie mereu între 2450 și 2550 de rotații/ minut. Desigur , aceste mărimi trebuie convertite
în semnal unificat de tensiune ([ -5, 5], [ -10, 10], [0 , 5], [0 , 10] V) pent ru a putea fi
interpretate de microcontroler. Elementul de control mai este folosit și pentru
respingerea perturbațiilor apărute în sistem. În cazul în care, de exemplu, pe rotorul
motorului se aplică o forță care duce la scaderea curentului , implicit ducând la scăderea
cuplului, comanda trebuie să crească astfel încât eroarea staționară la poziție să tindă
din nou la 0.
În prezent, cele mai utilizate elemente de control în cazul motoarelor de curent
continuu fără perii sunt regulatoarele automate de t ip proporțional -integra l-derivativ
(PID). Acestea au rolul de a calcula un semnal de comandă, folosindu -se de diferența
dintre semnalul de referință prescris și semnalul obținut la ieșirea sistemului ( denumit
abatere sau eroare), semnal de comnadă care o s ă modifice factorul de umplere a
semnalului PWM (engl. Pulse -width modulation signal ) care acționează tranzistoarele
responsabile cu comutația celor trei faze .
2.1.2.5 Regulatoarele PID
Aceste regulatoare se găsesc implementate în diferite forme: proporționale (P ),
proporțional -integrat oare (PI), proporțional -derivative (PD) sau proporțional -integra l-
derivative (PID).

Figura 2.5: Structura de reglare a unui proces folosind un regulator continuu

Studiu Bibliografic
12 În figura 5 se poate observa o structură simplă de control a unu i proces tehnologic
unde:
 r este referința sistemului;
 yr este mărimea de ieșire a procesului;
 ɛ este eroarea;
 u este mărimea de comandă.
Referința intră cu plus în blocul sumator, iar ieșirea procesului tehnologic intră cu
minus. Diferența celor două mărimi este semnalul de eroare care o să servească ca și
intrare a regulatorului. Informația primită o să fie procesată de către algoritmul de
reglare, iar la ieșirea acestuia o să fie comanda care o să acționeze elementul de execuție.
Pentru unele aplicații suficient de simple, unde nu se urmărește obținerea unei
erori staționare la poziție care tinde la 0, un regulator proporțional este sufi cient ,
deoarece acesta va crește ieșirea sistemului cu ajutorul semnalului de eroare înmulțit cu
valoarea constant ei de proporționalitate ( ).
Uneori, în locul factorului de proporționalitate se folosește o constantă denumită
bandă de proporționalitate a integratorului , notată BP. Aceasta este definită de relația
(2.1) :

[ ] (2.1)
Acestă relație se folosește în cazul în care domeniul de variație al mărimii de
comandă u este egal cu domeniu l de variație al erorii ɛ. Dacă cele domenii de variație
intrare -ieșire diferă, banda de proporționalitate este definită de relația (2.2):

[ ] (2.2)
În aplicații în care necesită o eroar e staționară la poziție care tinde l a 0 este
necesară folosi rea unui regulator cu acțiune proporțional -integrală (PI). Acesta
introduce în plus față de constanta de proporționalitate , integrala după timp a
semnalului de eroare , ceea ce în domeniul com plex reprezintă un element de ord inul I cu
pol în origine , numit integrator cu o anumită constantă de timp, numită constantă de
timp de integrare ( ). Pe lângă avantajul de a avea eroarea staționară la poziție egală cu
0, acest tip de regulator face sis temul rezistent la pertubații. Este des utilizat în industrie
tocmai din acest motiv. Relația prin care definim un regulator cu acțiune proporțional –
integrală în domeniul Laplace :
(
) (2.3)

Un dezavantaj major în folosirea regulatoarelor de tip PI este creșterea riscului de
instabilitate. Acesta introduce o întârzire de fază , respectiv scade marginea de fază față
de punctul critic ( -1+0j).

Studiu Bibliografic
13 Dacă se dorește un regim tranzitoriu mai scurt, deci, un timp de răspun s mai bun
se utilizează un regulator cu acțiune proporțional -derivativă (PD). Acesta are o
componentă de proporționalitate similară cu cea a a regulatoarelor PI, dar are și o
componentă derivativă, D, care ponderează diferenț a dintre mărimea de referință și cea
de ieșire. Relația care definește un regulator de tip PD în domeniul complex :
(2.4 )

Coeficientul se numește constantă de timp de derivare.
Precum s -a stabilit mai sus, regulatoarele PD sunt necesare în cazul în care se
dorește un regim tranzitoriu mai mic, dar, din p ăcate, acestea nu asigur ă o eroare la
poziție egală cu 0 și pot introduce oscilații. Un alt dezavantaj major al acestui tip de
regulator este faptul că nu sunt i mplmentabile pract ic, fiind necauzale, utilizarea lor într –
o aplicație reală necisi tând introducerea unui filtru adițional. Astfel, relația (2.4), în
practică, se rescrie astfel:
(
) (2.5)
unde N este , în general, egal cu
.
Regulatoarele PID ( proporțional -integra l-derivativ ) sunt mai complexe,
asigurând performanțe de reglare superioare. Ele înglobează toate efectele menționate
mai sus, marele dezavantaj fiind dificultatea de calcul a celor trei constante: și .
Relația care definește un regulator de tip PID:
(
) (2.6)
Pentru calculul celor trei constante, s -au propus de -a lungul timpului diferite
metode de calcul. Putem alege una din aceste metode ținând cont de performanțele pe
care dorim să le respecte sistemul și de dificultatea matematică a metodei folosite. De
exemplu, dacă inpunem anumite performanțe specifice putem folosi metoda pla sării
polilor în bucla închisă ( Guillemin -Truxal) sau putem să folosim metode bazate pe
metode frecvențiale utilizând diagramele Bode (amplitudine și fază) ale funcției de
transfer a pr ocesului. Dacă , în schimb , se dorește o metodă rapidă de calcul a celor trei
constante se pot folosi metode experimentale precum Ziegler –Nichols sau Cohen -Coon.
Aceste metode rapide de calcul, din păcate , nu garanteză performanțele impuse. Acestea
se folosesc, în special, în industrie în cazul unei defecțiuni apărute la unul din
regulatoare, pentru a păstra deschise liniile de producție până la restaurearea
regulatorului. Metodele acestea experimentale se pretează, mai ales, controlului de
turație și poziț ie a mașinilor electrice, deoarece nu produc efecte distructive asupra
mașinii sau asupra elementului de execuție.
Odată cu dezvoltarea industriei producătoare de microcontrolere, multe firme și –
au îndreptat atenția spre dezvoltarea de PID -uri discrete pe ntru a le putea implementa
pe acestea. Principalele avantaje în luarea acestei decizii au fost costul mult mai redus al

Studiu Bibliografic
14 micro procesoarelor , continua lor dezvoltare , capacitatea lor de a îndeplini op erații
multiple și de a fi reprogram abile .
În figura 2.6 se poate observa o structură simplă de reglare folosind un regulator
numeric. În primul rând , avem referința r[k] care intră cu semnul plus în regulatorul
numeric și ieșirea d iscretizată a procesului cu ajutorul convertorului analog -numeric ,
y[k], care intră în regulator cu semnul minus. Regulatorul numeric calculează semnalul
de eroare necesar algoritmului de reglare și ofer ă la ieșire un semnal discret de
comandă, u[k] . Acest semnal de comandă va fi transformat de către blocul convertor
numeric -analogic în semnalul continuu, notat în figură cu u[t]. Aceast ultim semnal va fi
semnalul de comandă al procesului. Blocurile de conversie sunt necesare pentru
transformarea semnalelor din semnale continue în semnale discrete (în cazul
semnalului de răspuns y[t]) și vice -versa, din semnale discrete în semnale continue (în
cazul semnalului de comandă u[k] ).
Primul pas în realizarea unui regulator numeric este transformarea procesului
continuu în proces discret. Pentru acest lucru este necesară alegerea unui perioade de
eșantionare, not ată cu Te. Aceasta se alege astfel încât să se respecte teorema
eșantionării ( teorema Nyquis -Shannon). Această teoremă a eșantionării garanteză că
semnalele cu o bandă de frecvență finită pot fi reconstruite perfect din versiunea lor
eșantionată, daca rata de eșantionare este cel puțin de două ori mai mare decât dublul
frecvenței maxime a procesului , respectiv eșantioanele sunt echidistante în timp . Astfel,
perioada de eșantionare se va calcula folosind formula (2.7):

(2.7 )
unde f este frecvența maximă a procesului eșantionat.
Odată aleasă perioada de eșantionare putem folosi mai multe metode de
discretizare a procesului. Printre cele mai folosite se pot enumera : folosirea unui
element de de reținere de ordinul 0 (engl. zero-order hold ), metoda trapezelor ( Tustin ),
Figura 2.6: Structura de reglare a unui proces utilizând un regulator numeric

Studiu Bibliografic
15 metoda dreptunghiurilor înainte (engl. Forward Euler ) și metoda dreptunghiurilor
înapoi ( engl. Backward Euler ).
Folosirea elementului de reținere de ordinul 0 se pretează cel mai bine atunci
când procesul este controlat de un calculator. Avantajul utilizării acestui element este
dată de implementarea lui ușoară din punct de vedere practic , deoarece valoarea
calculată este menținută constantă pe durata unei perioade .
Funcția de transfer a elementului de reținere de ordinul 0 este :

(2.8)
Dintre cele pa tru metode, matoda draptunghiurilor înainte (engl. Forward Euler )
este cea care oferă cea mai scăzută acuratețe , cu avantajele obținerii unui model mai
simplu și o execuție mai rapidă . Pentru o acuratețe ridicată se po t folosi metoda
dreptunghiurilor înapo i (engl. Bacwards Euler ) sau metoda tra pezelor (engl. Tustin
method ).
Pentru aceste trei metode , pentru a trece din spațiul „s” în spațiul „z”, constanta „s”
trebuie efectuate următoarele înlocuiri :

, în cazul metodei dreptunghiu rilor înainte; (2.9 )

, în cazul metodei dreptunghiurilor înapoi; (2.10)

, în cazul metodei trapezelor. (2.11)
Astfel, formula echivalentă a regulatorului PID discret are următoarea structură:
(

) (2.1 2)
unde termenii IF(z) și DF(z) reprezintă componenta integratoare, respectiv
derivativă a regulatorului. În funcție de metoda de discretizare considerată pot avea
următoarele forme:

, în cazul metodei dreptunghiurilor înainte;

, în cazul metodei dreptunghiurilor înapoi;

Pentru mai mult e detalii legate de regulatoare le PID se pot găsi în [2] pentru
regulatoarele analogice sau în [3] pentru cele regulatoarele numerice.

Studiu Bibliografic
16

Analiză, proiectare, implementare
17
3 Analiză, proiectare, implementare
După câte am putut vedea mai sus, motoarele de curent continuu fără perii sunt
utilizate în diferite aplicații, iar controlul acestora este o problemă mereu prezentă în
industrie. Marile companii producătoare de microcontrolere au deja soluții de control
pentru motoarele BLDC, dar această lucrare se concentrează pe soluțiile oferite de
Microchip. În acest sens, pentru realizarea aplicației de control s -a utilizat placa de
dezvoltare ds PICDEM MCLV -2 și microcontrolerul dsPIC33EP256MC506.
3.1 Placa de dezvoltare ds PICDEM MCLV -2
Această placă de dezvoltare este special făcută de dezvoltatorii de la Microchip
pentru controlul motoarelor de curent continuu fără perii sau pentru controlul
motoarelor sincrone cu magnet permanent (engl. Permanent Magnet Synchronous Motor ,
PMSM) în aplicații de control care folosesc sau nu senzori. Din fericire, această placă de
dezvoltare, pe lânga raportul foarte bun calitate -preț, este flexibilă, deci poate să fie
configurată în diferite moduri pentru a obține rezultate cât mai performante în funcție
de tipul aplicației.
Placa de dezvoltare include di ferite circuite pentru realizarea următoarelor funcții:
 acționarea unui invertor trifazat (punte H cu trei ramuri) care efectuează
transferul de energie către înfașurările motorului;
 măsurarea semnalelor de răspuns (tensiune și curenți de fază) și obținere a
unui semnal de eroare corespunzător;
 interfață de comunicare cu senzori Hall sau cu encoder optic pentru
controlul folosind senzori de detecție a poziției ;
 comunicație cu un calculator gazdă sau dispo zitive externe prin: CAN, LIN,
USB sau interfața RS -232.
Placa suportă motoare care au tensiunea de alimentare maximă de 48V și 15A.
În figura 4 este ilustrată placa de dezvoltare dsPICDEM MCLV -2, unde sunt notate
componentele care alcătuiesc această placă.
Alimentarea plăcii se face prin conectarea unei su rse de curent continuu de 24V
prin punctele J2 sau BP1 -BP2.
3.1.1 Magistrala CAN (J4)
Placa este echipată cu o magistrală C AN (engl. Controller Area Network ) MCP2551
de mare viteză. Aceasta este conectată la microcontroler prin intermediul pu nctelor de
legătură (engl. jumpers) JP4 și JP5. Transmiterul CAN convertește semnalul diferențial
de pe magistrala CAN în semnal digital pentru modulul ECAN (elng. Enhanced Controller

Analiză, proiectare, implementare
18 Area Network ). De asemenea, transmitatorul CAN convertește semnalul de ieșire digital
produs de modulul ECAN în semnal diferențial pentru magistrala CAN.
3.1.2 Interfața LIN (J1)
De asemenea, placa, este echipată cu un transmiter LIN (engl. Local Interconnect
Network ) MCP2021 de mare viteză. Aces ta este conectat la microcontrler tot prin
punctele (engl. jumpers) JP4 și JP5. Interfața LIN monitorizează magistrala LIN,
controlează semnalele care ajung pe această magistrală și le transmite mai departe la
modulul UART (engl. Universal Asynchronous Rec eiver -Transmitter ).
3.1.3 Interfața USB (J8)
Echipamentul de d ezvoltare folosit pentru construirea aplicației are încorporat o
interfața PIC18 ca și protocol de comunicare între intrarea USB (engl. Universal Serial
Bus) și modulul UART. Cele două componente sun t conectate tot prin pnctele JP4 și JP5.
3.1.4 IDC 3 Connector (J11 -J12)
Punctul de conectare J11 este parte a conectorului ICD 3 de tip mamă și conctează
mediul de dezvoltare MPLAB de microcontrolerul dsPIC33EP256MC506 folosit în
lucrare. Conectorul ICD 3 poate să fie conectat de placă și prin punctul J12 cu ajutorul
unui ICSP (engl. In Circuit Serial Programming ) de 6 pini.
Figura 3.7:Placa de dezvoltare dsPICDEM MCLV -2 [8]

Analiză, proiectare, implementare
19 3.1.5 Conectorii motorului BLDC (J7)
Partea care conectează placa de dezvoltare dsPICDEM MCLV -2 de motorul de
curent continuu fără perii folosit în apicație are 12 terminale fiecare cu o
funcționalitate specifică. Teminalul „+” se conectează la sursa externă de curent
continuu și terminalul „ -” reprezintă masa (engl. ground ). Mai departe, avem
terminalele „M1”, „M2”și „M3” care sunt conectate la cele trei faze ale motorului. „G”
este un alt terminal de masă. Apoi avem două terminale necesare alimentării
senzorilor Hall sau encoder -ului optic, respectiv terminalul „+5V” și terminalul „GND”.
Apoi avem cele trei terminale care colectează semnalele de răspuns de pe senzorii Hall,
„HALLA”, „HALLB” și „HALLC”. Dacă se dorește vizualizarea diferitelor semnale
prezente în aplicație, se pot folosi punctele de test prezentate în tabelul 3.1.
Tabel 3.1 : Punctele de test pentru diferite mărimi necesare controlului motorului
BLDC [8]

Un avantaj important în folosirea acestei plăc i de dezvoltare este compatibilitatea
ei cu modulul de amplificatoare operaționale folosite ca și comparatoare în controlul

Analiză, proiectare, implementare
20 fară senzor i al motorului de curent continuu fără perii dezvoltat în aplicația din lucrarea
de față. Acest modul este esențial în dezvoltare , deoarece se utilizează strategia de
control a detecției trecer ii prin zero a tensiunilor prezente pe fazele motorului. De
asemenea acest modul , numit Internal Op amp , este compatibil și cu microcontrolerul
folosit în aplicație.
3.2 Microcontrolerul dsPIC33EP256MC506
Microcontrolerul dsPIC33EP256MC506 este fabricat de compania Microchip și face
parte din familia de microcontrolere dsPic33EP. În continuare se vor pre zenta
specificațiile care au dus la alegerea acestui microcontroler.

3.2.1 Condițiile de operare
Alegerea unui microcontroler pentru o aplicație necesită o analiză atentă și a
condițiilor de mediu în care aplicația urmează sa fie folosită. Această familie de
microcontrolere poate să lucreze la temperaturi cuprinse între -40°C și 85°C și să
îndeplineas ca aproximativ 70 de milioane de instrucțiuni pe secundă, iar dacă creștem
temperatura până la 125°C, numarul de instrucțiuni executate intr -o secundă scade la 60
de milioane.
3.2.2 Unitatea centrală de procesare pe 16 biți
Procesarea codului implementat pe a cest microcontroler este eficientă datorită
unității centrarele de procesare pe 16 biți. De asemnea, alte avantaje pe care le oferă
acestă unitate centrală de procesare sunt: doi regiștri acumulatori cu lungimea de 40
de biți, un multiplicator care suport ă operații pe 32 de biți și instrucțiuni rapide care se
Figura 3.8: Microcontrolerul dsPI C33EP256MC506 [9]

Analiză, proiectare, implementare
21 execută într -un singur ciclu de ceas datorită unității aritmetico -logice performante
(engl. Arithmetic Logic Unit ).
3.2.3 Module pentru managementul semnalelor de ceas
Din acest punct de vedere, microcontr elerul vine echipat cu: un oscilator intern, un
circuit PLL (engl. Phase -locked loop ) care este un sistem de control care generează un
semnal de ieșire care are faza apropiată de faza unui semnal de intrare, un semnal de
ceas care monitorizează defectele ( engl. Fail-Safe Clock Monitor , FSCM) și un circuit WDT
(engl. Independent Watchdog Timer ) care este responsabil cu detecția și alarmarea
sistemului în cazul în care se produce o defec țiune la nivelul hardware sau software .
3.2.4 Generator de semnale PWM de mare viteză
Unul din cele mai importante aspecte în controlul motoarelor de curent continuu
fără perii este capabilitatea microcontrolerului de a genera semnale PWM. Din acest
punct de vedere , echipamentul electronic prezentat mai sus vine echipat cu
posibilit atea de a genera trei semnale PWM independen te în timp unul față de altul.
Rezoluția acestor esmale este de 7.15 ns, în condițiile în care există un tim p mort
pentru comutația fronturil or crescătoare și descrescătoare.
3.2.5 Performanțe analogice avansate
Acest microcontroler pune la dispoziția utilizatorului un convertor analog -digital
(engl. Analog to Digital Converter , ADC) fie pe 10 biți fie pe 12 biți, folosit în funcție de
nivelul de precizie solicitat al aplicației și de cerințele de proiectare. De a semnea, cum
am specificat și mai sus, acest microcontroler este compatibil cu modulul Internal Op
amp, necesar în comanda fără senzori a motorului de curent continuu. Mai mult, acest
modul este direct conectat la modulul ADC, făcând mult mai ușoară utiliza rea acesuia în
implementarea strategiei de control utilizate în această lucrare.
De asemenea, microcontrolerul pune la dispoziție 12 module de tip Timer . Patru
din ele sunt timere pe 16 biți, două sunt pe 32 de biți și se pot folosi fie ca și timere , fie ca
și numărătoare, patru sunt de tip OC (engl. Output Compare ) configurabile ca și timere
sau numărătoare, un modul PTG (engl. Peripheral Trigger Generator ) care are 2 timere
configurabile și ultimul este interfața encoder -ului în cuadradură care poate să fie
configurat pentru a funcționa ca și un timer sau ca și un numărător.
În figura 3.9 putem observa în detaliu configurația celor 64 de pini prezenți în
construcția acestui microcontroler. Desigur, sunt mulți pini care nu au fost prezentați
amănunțit în lucrare deoarece nu sunt neapărat necesari în implementarea aplicației
prezentate. Se tine cont de faptul că acest microcontroler este construit pentru a putea fi
implementate variate tipuri de aplicații utilizate în industrie.
Datorită specificațiilor p rezentate mai sus, putem spune că este avantajos să
folosim combinația dintre placa de dezvoltare dsPICDEM MCLV -2 și microcontrolerul
dsPIC33EP256MC506 , deoarece acestea se potrivesc suficient de bine cerințelor
necesare pentru implementarea aplicației de control fără senzori a motoarelor de curent
continuu fără perii. Desigur , se puteau folosi și alte componente electronice pentru
realizarea acesteia, posibil mai simple sau mai complexe din punct de vedere

Analiză, proiectare, implementare
22 constructiv, dar se poate considera alegerea acest or componente o cale de mijloc.
Ținând cont că placa este cu rol de cercetare și experimentare, cuprinde mai multe
module hardware, iar odată stabilit ă utilizarea acestora în etapa de proiectare, se poate
comanda eșantionul de microprocesoare specializate pentru a fi utilizate în etapa de
producție pentru a minimiza costurile.

Un alt instrument necesar în implementarea și dezvoltarea aplicației a fost mediul
de dezvoltare al produselor software, MPLAB X, pus la dispoziție de compania
Microchip.
3.3 Mediul de dezvoltare MPLAB X
În primul rând , pentru a instala mediul de dezvoltare MPLAB X, trebuie să avem
instalat mediul de programare integrată MPLAB (engl. Integrate d Programming
Enviroment , IPE). IPE este o aplicație software care asigură o interfață simplă care
permite accesarea rapidă a principalelor funcționalitați de programare.
Figura 3.9: Configurația pinilor microcontrolerului dsPIC33EP256MC506 [9]

Analiză, proiectare, impl ementare
23 Mediul de programare integrată folosește mediul de dezvoltare MPLAB X, baza de
date Microchip Debugger (MDB), interfețele componentelor hardware și driver -ele
necesare pentru a asigura programarea oricărui dispozitiv programabil produs de
Microchip.

În figura 3.10 se poate observa structura mediului de programare IPE. Acesta
permite selectarea familiei de microcontrolere, microcontrolerul și libraria folosite
pentru realizarea apl icației. Se observă că acesta este configurat specific pentru aplicația
prezentată în această lucrare. Dacă microcontrolerul este conectat la calculator prin
intermediul echipamentului ICD3 Connector , respectiv nu apar erori în conexiune, un
LED verde apare în dreptul etichetei „ Device”. Butonul „ Program” încarcă proiectul
deschis în „ Source” în memoria microcontrolerului, iar b utonul de „ Erase” curăță
Figura 3.10: Mediul de programare IPE

Analiză, proiectare, implementare
24 memoria micro controlerului. În fereastra „ Output” vor apărea observații referitoare la
conexiune a dintre calculator și microcontroler sau la mersul programului.
Un sistem de d ezvoltare pentru microcontrolerele embedded este un sistem de
programare care rulează pe un calculator și ajută la scrierea, editarea și depanarea
codului care urmează să fie implementat pe microcontroler. MPLAB X IDE este un
asemenea sistem și conține to ate elementele necesare proiectării și implementării unei
aplicații embedded .
Pentru a proiecta o aplicație embedded optimă , înainte de începerea implementării
trebuie să se analizeze atent aplicația care urmează să fie implementată și să se aleagă
echipamentele care se potrivesc aplicației în cauză. Odată alese echipamentele
electronice, trebuie stabilite și echipamentele per iferice și pinii necesari dezvoltării, iar
apoi se poate scrie programul software. Deoarece microcontrolerele înțeleg doar
instrucțiuni de tip cod mașină, iar mediul de dezvoltare permite scrierea programului în
limbajul de programare Embedded C, este necesară utilizarea unui compilator care să
transforme codul în secvențe de biți pentru a putea fi interpretare de microcontroler.
După faza de proiectare și implementare, urmează faza de testare. De obicei , un
program complex este predispus erorilor de logică, erori care trebuie corectate pentru a
obține rezultatul final dorit. Pentru a urmări programul și a găsi erorile de logică
prezent e, IDE -ul pune la dispoziția utilizatorului un depanator (engl. debugger ) care
permite trecere a prin cod pas -cu-pas (engl. step -by-step ).
Odată verificat și validat codul, acesta se poate descărca pe microcontroler,
urmând să se testeze practic dacă rezultatele sunt cele așteptate. În cazul în care nu sunt,
se revine la etapa de implementare.
Figura 3.11: Mediul de dezvoltare MPLAB X

Analiză, proiectare, implementare
25 În figura 2.11 se poate obcerva interfața mediului de dezvoltare MPLAB X.
Pentru a descărca programul implementat în mediu l de dezvoltare MPLAB X
trebuie instalat plugin -ul CC8E Toolchain . Acesta se poate instala direct din mediul de
dezvoltare urmând calea Tools -˃ Plugins . Astfel, se va deschid e fereasta Plugins (figura
3.12 ), de unde din tab -ul Availabe Plugins se poate descărca plugin -ul CC8E Toolchain .

3.3.1 Monitorizarea datelor în timp real
Majoritatea aplicațiilor embedded existente cer instrumente de depanare
sofisticate și complexe, pentru a reduce timpul necesar procesului de dezvoltare și
testare. În acest scop, mediul de dezvoltare MPLAB asigură o interfață, de vizualizare a
variabilelor existente. Această interfață se numește MPLAB DCMI și se instalează similar
cu plugin -ul menționat mai sus.
Structura ferestrei DCMI se poate vedea în f igura 3.13 . Cu ajutorul acestei interfețe
se pot urmări diferite variabile. Dacă se dorește vizualizarea evoluției unei variabile, în
tab-ul „Dynamic Data View ” se poate urmări evoluția lor grafică. Dacă, în schimb, se
dorește cunoașterea valorii unei variabile într -un anumit moment de timp, fără a opri
programul cu ajutorul debugger -ului, acestea se pot monitoriza în tab -urile „ Dynamic
Data Controls ” și „ Dynamic Data Inputs ”.
Monitorizarea datelor în timp real scade timpul de dezvoltare al unei aplicații,
deoarece nu mai este neapărat necesară oprirea programului în debugger pentru a se
monitoriza datele. De asemnea, urmărind datele dir ect pe calculator, se reduce costul de
Figura 3.12: F ereastra Plugins a mediului de dezvoltare MPLAB X

Analiză, proiectare, implementare
26 monitorizare al aplicației, deoarece nu mai este necesară achiziționarea altor
echipamente de monitorizare, cum ar fi achiziționarea unui osciloscop, acestea fiind
adesea destul de costisitoare.

3.4 Analiză
Lucrare a de față propune implementarea unui algoritm de control de turație al
unui motor BLDC. S -a încercat implementarea acestei strategii de control fără folosirea
senzorilor Hall sau a unui encoder . Prin urmare, algoritmul se bazează pe strategia de
control fără senzori. Algoritmul de control al motorului are patru părți mari:
 eșantionarea semnalelor trapezoidale culese de pe cele trei faze ale
motorului utilizând convertorul analog -numeric (engl. Analog -to-Digit al
Converter , ADC);
 compararea tensiunilor contraelectromotoare de pe cele trei faze cu
jumătatea tensiunii maxime pentru a detecta punctele de trecere prin zero
(engl. zero crossing points);
 filtrarea semnalelor care vin de la comparator utilizând un filt ru cu funcție
majoritară;
 implementarea unui regulator de tip proporțional -integrativ (PI).
Metoda de detecție a trecerii tensiunii contraelectromotoare prin zero a fost aleasă
pentru implementare deoarece:
Figura 3.13: Ferestrea MPLAB DCMI

Analiză, proiectare, implementare
27  poate să fie utilizată pe o gamă largă de motoare ;
 poate să fie folosită, teoretic, atât pentru motoarele trifazate cu conexiune
în Y (stea), cât și pentru motoarele cu conexiune de tip delta (triunghi) ;
 nu necesi tă o cunoaștere amănunțită a caracteristicilor motorului;
 este relativ neafectată de variațiile de toleranță ale motorului.
3.4.1 Comutația în șase pași
Comutația motorului se face în șase pași (comutație la 120°). Fiecare pas este
echivalentul a 60° electrice, șase pași fiind echivaentul unei rotații complete.

Comutația în șase pași:
 Pasul 1:
– înfășurarea A este energizat ă pozitiv;
– înfășurarea C este energizat ă negativ;
– înfășurarea B nu este energizat ă.
 Pasul 2:
– înfășurarea C rămâne energizat ă pozitiv;
– înfășurarea A este energizat ă negativ;
– înfășurarea B nu este energizat ă.
 Pasul 3:
– înfășurarea C este energizat ă pozitiv;
– înfășurarea B este energizat ă negativ;
– înfășurarea A nu este energizat ă.
 Pasul 4:
– înfășurarea C rămâne energizat ă pozitiv;
– înfășurarea A este energizat ă negativ;
– înfășurarea B nu este energizat ă.
 Pasul 5:
Figura 3.14: Comutația celor 3
faze ale motorului BLDC

Analiză, proiectare, implementare
28 – înfășurarea B este energizat ă pozitiv;
– înfășurarea A este energizat ă negativ;
– înfășurarea C nu este energizat ă.
 Pasul 6:
– înfășurarea B este energizat ă pozitiv;
– înfășurarea C este energizat ă negativ;
– înfășurarea A nu este energizat ă.
Faptul că la fiecare pas una din înfășurări nu este străbătută de un curent electric
este o caracteristică importantă , deoarece permite controlul fără senzori a turației
motorului.
3.4.2 Tensiunea contra electromotoare
În timpul funcționării unui motor BLDC, pe înfășurările A, B și C, corespunzătoare
celor trei faze, se generează o tensiune contraelectromotoare care se opune tensiunii
electromotoare care alimentează înfășurările.
Tensiunea contraelectromot oare este dependentă de următorii parametrii:
 numărul de spire ale înfășurărilor din stator;
 viteza unghiulară a rotorului;
 câmpul magnetic generat de magneții permanenți ai rotorului.
Astfel, tensiunea contraelectromotoare (TCE) se calculează după formula:
, (3.12)
unde: N este numărul de spire ale înfășurărilor din stator, l este lungimea rotorului, r
este raza internă a rotorului, B este câmpul magnetic al rotorului și este viteza
unghiulară.
Cele mai importante aspecte de reținut pentru a putea înțelege acest tip de control
sunt:
 amplitudinea tensiunii contraelectromotoare este proporțională cu viteza;
 frecvența semnalului TCE este egală cu viteza de rotație înmulțită cu
numărul de prechi de poli al motorului ( cinci în cazul de față);
 cuplul motorului este proporțional cu curentul (la temperaturi constante);
 tensiunea de alimentare a motorului este egală cu tensiunea
contraelectromotoare la care se adună căderea de tensiune de pe fiecare
înfășurar e.
3.4.3 Filtrarea digitală utilizând funcția majoritară
Filtrul digital sau numeric este un sistem discret care scalează și /sau defazează în
mod selectiv componentele spectrale ale unui semnal discret de intrare, oferind la ieșire
un semnal discret optim pentru scopul dorit. Scopul utilizării unui filtru digital în
această aplicație este de a reduce zgomotul produs de comutația PWM care afectează
tensiunea contraelectromotoare.

Analiză, proiectare, implementare
29 Funcția majoritară este o funcție binară care ia un număr n de intrări binare și
returnează valoarea cea mai comună din secvența de intrări.
3.4.4 Proiectarea regulatorului PI
Pentru a obține o aplicație robustă, în care perturbațiile să aibă efecte neglijabile și
cu un răspuns suficient de bun în regim staționar , este necesară proiectarea u nui
regulator proporțional -integrativ (PI). Pentru descrierea lui amănunțită se poate vedea
Studiul Bibliografic, 2.1.2, 2.1.2.5.
Performanțele impuse sitemului în buclă închisă sunt:
 suprareglajul de maximum 1%;
 timpul de răspuns să fie redus cu 10% în b ucla închisă.
Pentru a determina constanta de proporționalitate și constanta de integrare s-a
folosit mediul de dezvoltare MATLAB prin realiza rea unei simulări a procesului în
Simulink.

Pentru a simula sistemul în buclă deschisă, trebuie cunoscute constantele km și Tm.
Acestea au fost luate din documentația motorului BLDC folosit, deoarece pro cesul este
considerat a fi liniar pe domeniul util de funcționare . Astfel: km = 110 și Tm = 0.06 s,
constanta electrică de timp a procesului fiind destul de mică încat să poate fi neglijată.

Pentru aflarea constantei de propoționalitate și a constantei de integrare s -a folosit
tool-ul PID Tuner pus la dispoziție de mediul de dezvoltare Matlab. Acesta este foarte util
Figura 3.14: Simularea sistemului în buclă deschisă
Figura 3.15: Simularea sistemului în buclă închisă cu regultorul PI obținut

Analiză, proiectare, implementare
30 pentru realizarea rapidă a unui regulator cu performanțele impuse în cerințel e
aplicației. Astfel, s -au determinat constantele: K p = 0.00233 și K i = 36.535. Ecuația
regulatorului:
(
) (
) (3.13)
3.5 Implementare
Implementarea programului software utilizat pentru controlul fără senzori al
motorului BLDC a fost implementat în mediul de dezvoltare MPLAB X, iar limbajul de
programare în care a fost implementat codul este Embedded C. Pentru început, codul a
fost struct urat în fișiere antet (engl. header files ) și fișiere sursă (engl. source files ), unde
au fost implementate funcțiile definite în fișierele antet.
Pentru a putea implementa funcțiile necesare aplicației, în faza de analiză, stabilim
constantele folosite p entru dezvoltare. Astfel, s -a definit fișierul „ defs.h”. Cele mai
importante constante definte aici sunt:
 FCY = 70 MHz – frecvența de tact a microprocesorului , respectiv de
execuție a unei instrucțiuni de program ;
 FPWM = 2 MHz – frecvența semnalului PWM;
 STARTUP_RPM = 1000 rot/min – după pornirea motorului, numărul minim
de rot/min;
 STARTUP_START_T = 20 ms;
Figura 3.15: Răspunsul sistemului în buclă închisă

Analiză, proiectare, implementare
31  STARTUP_T_RAMP = 1000 ms;
 MAX_RPM = 3300 rot/min – viteza maximă la care ajunge motorul;
 POLEPAIR S = 5 – numărul de perechi de poli.
Constantele STARTUP_START_T și STARTUP_T_RAMP sunt folosite pentru că la
pornirea motorului se aplică o rampă care rămâne activă din momentul
STARTUP_START_T până la STARTUP_T_RAMP . Acestă implementare asigură pornirea
lină a motorului și este necesară , deoarece la turații mari impuse când motorul este în
repaus, acesta nu poate porni , deoarece cuplul este mult prea mic. În figura 3.16 se
observă, printre altele, cara cteristica cuplu -turație a motorului Hurst -Emerson
considerat în lucrare. În această caracteristică se observă c ă viteza și cuplul sunt invers
proporționale, astfel, la cuplu mare viteza este mică , iar la cuplu mic, viteza este mare.
În fișierul „defs. c” sunt declarate alte constante. Acestea se găsesc în [4]. De
asemenea, în acest fișier avem implementate două funcții importante necesare
dezvoltării aplicației: funcția OpenLoopControl care implementează aplicația în buclă
deschisă și funcția SpeedPILoopCo ntroller care face aplicația să funcționeze în bucla
închisă. Aceasta, din urmă, implementează și un regulator propoțional -integra tiv (PI).
Odată ințializate aceste valori, se poate trece la inițializarea componentelor
hardware folosite. În acest sens , în codul implementat există funțiile Init_Ports și
Init_Motor.
Funcția Init_Ports este folosită pentru a inițializa modulul de conversie analog –
numeric (ADC), modulul PWM, porturile de intrare al butoanelor de Reset (S1) și Start
(S3) și timer -ele folosite în aplicație. Această funcție este declarată în fișierul antet
„periph.h” și implementată în fișierul sursă „ periph.c”. Un aspect impo rtant declarat în
acest fișier este implementat de „ CORCONbits.SATA ” care se asigură că depășirea
Figura 3.16: Caracteristicile motorului Hurst – Emerson în funcție de cuplu [5]

Analiză, proiectare, implementare
32 numarului de biți va fi manevrată ușor și că nu va provoca probleme majore în cadrul
programului.
Pe de altă parte, funcția Init_Motor o folosim pentru a inițializa motorul. În această
funcție se setează semnalele PWM pentru comutația corectă a celor șase tranzitoare. De
asemenea, în această funcție se generează rampa necesară pentru pornirea lină a
motorului din repaus, în cazul în care viteza impusă este mare .
Implementarea regulatorului proporțional -integrativ (PI) se poate vedea în
fișierul „ pi.c”. Funția CalcPI este cea responsabilă pentru calcularea comenzii. Aceasta
funcționeaza astfel:
1. Se calculează valoarea erorii ( Eroarea = Referința – Măsura )
2. Se calculeaza suma erorilor de integrare ( Sum I = Sum I + Eroarea );
3. Se calculeaza ieșirea regulatorului ( Comanda = K p * Eroarea + K i * Sum I).
Deoarece parametrul integral al regulatorul PI însumează continuu factorul de
eroa re, este posibilă apariția fenomenului de „ wind -up”. Acesta are loc atunci când din
cauza erorilor acumulate, semnalul măsurat depășește referința do rită. Pentru a evita
apariția acestui fenomen este necesară scalarea comenzii. Astfel:
1. Dacă valoarea comenzii calculate depășește limita superioară, comanda va
fi saturată la limita superioar ă;
2. Dacă valoarea comenzii calculate este mai mică decât limita in ferioară,
comanda va fi saturată la limita inferioară;
3. Daca valoarea comenzii se află în domeniul dintre limita inferioară și cea
superioară, valoarea comenzii rămâne neschimbată .
Fișierul „main.c” este fișierul de bază al programului. Fără funcția main conținută
în acesta, programul poate funcționa . În primul rând , se apelează funcția Init_Ports
discutată mai sus, pentru a inițializa compontele hardwa re. Apoi urmează un ciclu infinit
în care este rutina după care se desfășoară programul. Odată intrat în a cest ciclu infinit,
la apăsarea butonului „S3” rotorul motorului va începe să se rotească. Odată apăsat acest
buton , va intra în execuție rutina de întreruperi a modulului PWM. Dacă motorul este
pornit din repaus, mai întâi se va apela funcția Init_Motor pentru a inițializa motorul, iar
odată inițializat , se va apela funcția Start_Motor . În această funcție are loc prima
comutație , după care se vor seta cele trei semnale PWM pentru comutația următoare.
Rutina de întreruperi a modului ADC este responsabilă, în cea mai mare parte de
întreaga funcționare a aplicației. Aceasta funcționează în urmatorul fel:
1. Se citesc valorile celor 3 faze ale motorului ( MotorPhaseA, MotorPhaseB,
MotorPhaseC );
2. Se calculează punctul neutru al motorului ( MotorNeutralVoltage =
(MotorPhaseA + MotorPhaseB + MotorPhaseC) / 3 ) ;
3. Pentru primele 50 de comutații ale semnalelor PWM nu se va întâmpla nimic,
deoarece fiin d o tensiune contraelectromotoare mică , se pot detecta treceri
prin zero false;
4. După trecerea acestor 50 de comutații începe compararea celor trei tensiuni
contraelectromotoare cu punctul neutru al motorului;

Analiză, proiectare, implementare
33 5. Semnalul va fi filtrat cu ajutorul unui filtru care folosește funcția majoritară;
6. Dacă se detectează o trecere prin zero, adică jumătate din tensiunea
contraelecromot oare este egală cu pun ctul neutru are loc următoarea
comutație;
7. Mai departe , se calculează viteza curentă și în cazul în care aceasta nu coincide
cu viteza dorită, va intra în funcțiune regulatorul PI.
În rutina de întrerupere a timer -elor are loc schimbar ea canalului modului ADC și
trecerea la următorul pas al comutației.
Ultima funcție declarată în main este cea de Stop_Motor care are loc ori atunci când
apăsăm pe butonul „ Reset” (S1), ori în cazul unui defect apărut. Acea stă funcție are rolul
de a rese ta modulul ADC și PWM și timer -ele folosite. Toate sunt aduse înapoi la 0 și
rămân în această stare până la repornirea motorului.
3.6 Rezultate și validare
După finalizarea și testarea implementării cu ajutorul debugger -ului pus la
dispoziție de mediul de dezvoltare MPLAB X, programul realizat a fost descărcat pe
microcontroler. După acest pas, funcționalitatea programului implementat a fost înca
odată verifi cată.

În figura 3.17 se poate observa conexiunea dintre calculator, microcontroler,
motor și osciloscop în faza de test are. S-au conectat la osciloscop două faze ale
motorului, pentru a se observa tensiunea contraelectromotoare de formă trapezoidală și
semnalele produse de cei trei senzori Hall. Programul implementat pentru controlul
turației unui motor de curent continuu fără perii, după câte se poate vedea în figura de
mai sus este corect implementat. Pe cele două canale analogice ale osciloscopului se vor
vedea cele doua tensiuni contraelectromotoare, care sunt, într -adevar sub formă
Figura 3.17: Standul format din microcontroler, motor și osciloscop în faza de testare

Analiză, proiectare, implementare
34 trapezoidală, iar pe primele trei canale digitale ale osciloscopului se pot vedea semnalele
celor trei senzori Hall.

După testarea asistată de calculator, rezultatele obținute fiind satisfăcătoare, se
poate renunța la folosirea calculatorului deoarece programul se găsește în memoria
microcontrolerului. Programul a fost testat atât în buclă deschisă, cât și după adăugare a
regulatorului proporțional -integrativ și închiderea buclei. Rezultatele sunt vizibile în
practică. După implementarea regulatorului, timpul de răspuns s -a îmbunătățit simțitor,
iar în cazul în care asupra axului motorului este aplicată o forță menită să încetinească
viteza, regulatorul PI mărește comanda corespunzător pentru a reuși să se învingă acea
forță. Desigur, daca factorul de umplere dat la intrare este mic, tensiunea
contraelectromotoare culeasă de pe cele trei faze scade și în cazul în care este aplicată o
forță asupra axului motorului , acesta se va opri . Acest lucru se datorează dezavantajului
de a folosi algoritmul de control bazat pe trecerea tensiunii electromotoare prin 0. Cum
s-a menționat anterior în lucrare, algoritmul nu funcționează bin e în cazul în care bunul
mers al aplicației necesită ca viteza motorului să fie mică.
În figura 3.1 9 se poate observa mult mai bine forma trapezoidală a tensiunii
contraelectromotoare pe care se bazează întreaga strategie de control prezentată în
această lucrare. Tensiunea contraelectromotoare maximă este de aproximativ 25 V,
astfel comutația are loc atunci când tensiunea contraelectromotoare ajunge la jumătate
din tensiunea maximă, adică 12.5 V. De asemenea, în această figură, se poate observa că,
intr-adevăr, decalajul dintre faze este de 120°.

Figura 3.18: Standul format din microcontroler, motor și osciloscop

Analiză, proiectare, implementare
35

Figura 3.20 arată cum se modifică semnalele în funcție de factorul de umplere al
semna lului PWM. În partea stânga avem un factor de umplere de 50%, deci viteza
motorului este de aproximativ 1650 de rot/min. În partea dreaptă , factorul de umplere
este de 100%. Iar viteza motorului este de aproximativ 3300 de rot/min. Se observă că
tensiunea contraelectromotoare culeasă de pe fazele motorului la viteză maximă are
este mult mai lină, deoarece frecvența de comutație este mare (279 Hz). Comutația
rapidă este vizibilă și din semnalele culese de pe senzorii Hall. În graficul din dreapta se
poate vizualiza chiar o rotație completă, deoarece sunt cinci perioade ale unui semnal
produs de un senzor Hall reprezintă o rotație completă (numărul de perioade ale unul
semnal produs de un senzor Hall care reprezintă o rotație completă este egal cu numărul
de perechi de poli ai rotorului, cinci în cazul de față).

Figura 3.19: Tensiunea contraelectromotoare culeasă de pe două faze ale motorului și
semnalul produs de senzorii Hall

Analiză, proiectare, implementare
36
În figura 3.21 se poate urmări și comutația în șase pași prezentatî în lucrare. De
asemnea, această figură este împărțită încât să arate comportamentul motorului atunci
când factorul de umplere este de 50% și când factorul de umplere este de 100%. Se face
aceată comparație , deoarece se dorește vizualizarea schimbării comportamentului
motorului de la un factor de umplere la altul. Frecvența de comutație crește simțitor, de
la 112 Hz la 278 Hz, iar forma trapezoidală a semnalelor culese de pe fazele motorului
este mult mai vizibilă la frecvențe mai mari.

Figura 3.20: Tensiunea contraelectromotoare culeasă de pe două faze ale motorului și
semnalul produs de senzorii Hall la factori de umplere diferiți

Analiză, proiectare, implementare
37
În următoare a figura 3.24 se poate ob serva caracteristica de transfer dintre
factorul de umplere aplicat la intrare și viteza motorului, în buclă închisă. Pentru a
realiza această caracteristică s -a măsurat semnalul produs de senzorii Hall la fiecare
creștere de zece procente a facto rului de umplere. În acest scop , s-a folosit un osciloscop
digital, ELAB -080. Datele achiziț ionate s -au vizualizat apoi în mediul de dezvoltare
MATLAB și se pot vizualiza în figura 3.22. Un astfel de grafic există pentru fiec are factor
de umplere dat la intrare.
Pentru a calcula viteza motorului la pentru fiecare factor de umplere este necesară
calcularea perioade de comutație a senzorului Hall. Perioada unui senzor Hall este
timpul din două fronturi crescătoare. Această iden tificare s-a făcut ca și în figura 3.23. În
acest fel , se determină numărul de date citit într -o perioadă de comutație. Acest număr
de date se înmulțește cu inversul frecvenței folosite pentru achiziționarea datelor, în
cazul de față 8 kHz, iar rezultatul este perioada de comutație a senzorului Hall. După
aflarea acestei perioade, știm că cinci impulsuri Hall reprezintă o rotație completă.
Astfel, putem să calculăm turația după următoarea formulă:

[ ] (3.14)
Figura 3.21: Tensiunea contraelectromotoare culeasă de pe două faze ale motorului și
semnalul produs de senzorii Hall la factori de umplere diferiți și magistrala care reprezintă
fazele de comutație

Analiză, pro iectare, implementare
38
Figura 3.22: Comutația unui senzor Hall
Figura 3.23: Determinarea perioadei de comutație a unui senzor Hall

Analiză, proiectare, implementare
39
Acest procedeu de identificare a fost utilizat pentru a determina viteza pentru
fiecare factor de umplere. Această caracteristică, prezentată în figura 3.24, este , după
câte se poate oberva , liniară. Acest lucru arată că numărul de ro tații pe minut este direct
proporțional cu factorul de umplere dat la intrare a punții de tranzistoare . Desigur, nu
este o dreaptă perfectă din cauza zgomotului prezent în cadrul procesului de
achiziționare de date și din ca uza calculului folosind maximum d ouă zecimale.
Un prim aspect interesant de observat la această caracteristică este faptul că la
factor de umplere de 1% motorul are totuși o viteză de rotație de 1000 rot/min. Acest
lucru se datorează faptului că în codul programului este setată viteza mi nimă de
funcționare a motorului la 1000 rot/min. După pornirea motorului, indiferent de
factorul de umplere dat la intrare, rampa folosită pentru pornirea acestuia va duce
motorul în prima secundă la 1000 rot/min, ia r motorul rămâne la această viteză până la
modificarea factorului de umplere. După câte s -au explicat și mai sus în lucrare,
implementarea în acest fel este necesară pentru a porni motorul lin și atunci când este în
repaus.
Al doilea aspect pe care îl putem remarca în caracteristica de mai sus este facpul că
viteza ajunge la valoarea maximă la un factor de umplere de 90%. Din acest motiv ,
sectorul dintre factorul de umplere de 90% și factorul de umplere de 100% este saturat.
Această saturație este implementată în program pentru a evita defecțiun ile sau mersul
Figura 3.24: Caracteristica de transper dintr factorul de umplere aplicat la intrare și
viteza motorului (în buclă închisă)

Analiză, proiectare, implementare
40 disfuncțional al motorului. Implementarea unei scalări este necesară , deoarece fiecare
motor are o viteză maximă de funcționare caracteristică. Dacă se depășește, motorul
este mult mai expus defecțiunilor.

Concluzii
41 4 Concluzii
4.1 Concluzii
Mictrocontrolerele vor fi, cu siguranță, folosite din ce în ce mai mult în industrie,
datorită dezvoltării lor continue. Se pot folosi în diverse aplicații, în diferite subdomenii ,
fiind o alegere avantajoasă , deoarece costurile de achi ziționare sunt destul de reduse și
sunt exhipamente electronice reprogramabile. Viteza mare de calcul , respectiv
posibilitatea de a îndeplini mai multe task -uri practic simultan , sunt alte avantaje pentru
a alege un microcontroler.
Un dezavantaj al folosi rii microcontroler elor este durata relativ mare de timp
necesară etapelor de analiză, proiectare, implementare și testare. În cazul în care testele
nu sunt satisfăcătoare trebuie să se revină la etapa de analiză, iar tot procesul se va relua
până la obține rea unor rezultate satisfăcătoare. Etapa de analiză este costisitoare din
punct de vedere al timpului , deoarece fiecare microcontroler are specificații diferite,
astfel, înainte de a începe proiectarea și implementarea codului trebuie să se parcurgă
fișa tehnică a microcontrolerului și să se stabilească configurația necesară aplicației. Pe
de altă parte, etapa de implementare este costisitoare atât ca și timp, deoarece este
posibil ca programatorul să fie nevoit să lucreze cu un mediu de dezvoltare nou, cât și
din punct de vedere al dificultății de implementare. Limbajul de programare Embedded
C nu este un limbaj la fel de ușor precum limbajele de programare no u-apărute. De
asemenea, nivelul de cunoștințe necesar implementării unui program pentru un
microcon troler este mai mare , deoarece înglobează atât elemente software, cât și
noțiuni de hardware și electronică . Programatorul trebuie să fie pregătit pentru diferite
dificultăți, cum ar fi: implementarea rutinelor de întreruperi, setarea corespunzătoare a
timer-elor , testarea software decuplată de testarea hardware etc.
Lucrarea de față este făcută pentru a ușura această muncă în vederea
implementării unui program de control al t urației unui motor de curent continuu fără
perii. S -a obținut un program optim, c are poate să antreneze motorul atât în buclă
deschisă , cât și in buclă închisă (include regulatorul proporțional -integrativ).
S-a ales implementarea unui algoritm de comutație bazat pe tensiunea
contraelectromotoare , deoarece s -a dorit un sistem robust, c are să nu depindă de
senzori de măsură. Aplicația nu va fi folosită la viteze suficient de mici încât tensiunea
contraelectromotoare să nu poată fi detectată , iar zgomotul produs de ADC la comutația
MOSFET -urilor a fost atenuat prin folosirea unui filtru d igital care utilizează funcția
majoritară, astfel dezavantajele utilizării acestei metode au fost rezolvate.
După cum am văzut în capitolul anterior, în subcapitolul de rezultate și validare,
acest program își îndeplinește scopul pentru care a fost produs . Obiectivelor care au fost
propuse la începutul lucrării au fost îndeplinite.
În opinia mea, cea mai grea parte în dezvoltarea programului a fost partea de
documentare. Controlul motoarelor de curent continuu fără perii neutilizând senzori
este mai dific il de înțeles comparativ cu un algoritm care utilizează senzori Hall, spre

Concluzii
42 exemplu. În plus, a trecut o perioadă destul de lungă de timp până am reușit să mă
familiarizez cu limbajul de programare Embedded C și cu mediul de dezvoltare MPLAB
X.
Un avantaj major pe care l -am găsit eu în utilizarea echipamentelor electronice
puse la dispozite de Microchip și al mediului de dezvoltare MPLAB X este d ocumentația
foarte atent realizată a acestor echipamente și a mediului de dezvoltare. Acest lucru a
ajutat la reducerea timpului de documentare.
4.2 Dezvoltări ulterioare
O extindere a acestei lucrări de licență ar fi dată de implementarea unui program
de control folosind senzori Hall , respectiv compararea rezultatelor și a performanțelor
între cele două metode . Acest lucru ar ajuta la stabilira avantajelor și dezavantajelor
exacte ale celor două metode.
O altă extindere care ar avea un impact major asupra aplicației ar fi utilizarea
monitorului de date în timp real pus la dispoziție de mediul de dezvoltare MPLAB X.
Acest lucru ar face mult mai ușoară vizualizarea semnalelor și variabilelor din program.
Odată reușită configurarea necesară pentru utilizarea acestui monitor, osciloscopul nu
va mai fi necesar, monitorizarea aplicației făcându -se direct pe calculator. Ar fi un pas
important în dezvoltarea aplicațiilor, deoarece acestea ar deveni mult mai mobile, și mai
avantajoase din punct de vedere al costului total de implementare și testare a aplicației.
De asemenea, pentru proiectarea unui regulator proporțional -integrativ mai bun
este necesară o identificare în buclă deschisă pentru a determina funcția de transfer care
definește motorul. Deocamdată factorul de amplificare și constanta de timp mecanică
folosite în lucrare sunt cele din documentația m otorului, dar acestea trebuie schimbate
odată cu îmbătrânirea motorului.

Bibliografie
43 5 Bibliografie

[
1] P. Yedamale, „ Brushless DC (BLDC) Motor Fundamentals ”, Microchip
Technology Inc. , 2003.
[
2] K. J. Astrom, T. Hagglund, „Advanced PID Control ”, ISA – The Instrumentation,
Systems, and Automation Society, 2006 .
[
3] K. Ogata, „Discrete -Time Control Systems ”, 2nd Edition, Prentice Hall
International Editions, 1995 .
[
4] A. Lita, M. Cheles „ Sensorless BLDC Control with Back -EMF Filtering Using a
Majority Function” , Microchip Technology Inc. , 2008 -2012.
[
5] *****, Hurst Emerson , Sample Motor Data Sheet , Version 1 , Emerson , Inc.,
2003 .
[
6] *****, MPLAB IPE , User Guide, Version 1, Microchip Technology , Inc., 2013.
[
7] *****, Real Time Data Monitor , User Guide, Version 1, Microchip Technology ,
Inc., 2008.

[
8] ***** ,dsPICDEM™ MCLV -2 Development Board , User Guide, Version 1,
Microchip Technology , Inc., 2012 .

[
9] *****, 16-Bit Microcontrollers and Digital Signal Controllers with High -Speed
PWM, Op Amps and Advanced Analog , User Guide, Version 1, Microchip
Technology , Inc., 2011 -2013 .

[10] *****, MPLAB X IDE , User Guide, Version 1, Microchip Technology , Inc., 2011 –
2015 .

Similar Posts