Ionita Catalin Andrei Marian Sorin Chita Florin Milica
Mecatronica Avansata
Motorul de curent continuu este un dispozitiv de acionare comun n sistemele de control. Acesta ofer direct o micare de rotaie i mpreun cu roi sau alte sisteme de transmitere, pot oferi o micare de translaie. Circuitul electric echivalent al armturii i diagrama rotorului sunt prezentate n figura de mai jos:
In urmatorul exemplu vom presupune urmtoarele valori pentru parametrii fizici. Aceste valori au fost obinute prin experiment de la un motor real: (J) momentul de inertie al rotorului 3.2284E-6 kg.m^2 (b) coeficientul de frecare vascoasa a motorului 3.5077E-6 N.m.s (Kb) constanta fortei electromotoare 0.0274 V/rad/sec (Kt) constanta de cuplu a motorului 0.0274 N.m/Amp (R) rezistenta electrica 4 Ohm (L) inductanta electrica 2.75E-6H
n acest exemplu, presupunem c intrarea sistemului este o sursa de tensiune (V) aplicata la armtura motorului, n timp ce iesirea este poziia arborelui (theta). Rotorul i arborele se presupun a fi rigide. Ne asumm n continuare un model de frecare vscoas, adic, cuplul de frecare este proporional cu viteza unghiular a arborelui. Ecuatiile de sistem n general, cuplul generat de un motor de curent continuu este proporional cu curentul armturii i intensitatea cmpului magnetic. n acest exemplu, vom presupune c cmpul magnetic este constant i, prin urmare, cuplul motorului este proporional cu curentul armturii cu un factor constant Kt aa cum se arat n ecuaia de mai jos:
Tensiunea electromotoare (e) este proportionala cu viteza unghiulara a arborelui cu o constanta kb:
In sistemul SI, cuplul motor si constanta tensiunii electromotoare sune egale (Kt=Ke), prin urmare vom folosi K pentru a reprezenta ambele marimi. Putem folosi 2 ecuatii, legea a 2-a a lui Newton si legea lui Kirchhoff:
Functia de transfer Aplicand transformata Laplace, modelarea ecuatiilor pot fi exprimate astfel:
Ajungem astfel la o functie de transfer cu bucla deschisa eliminand I(s), unde viteza de rotatie este iesirea, iar tensiunea armaturii este intrarea:
In acest exemplu vom folosi pozitia ca iesire. Putem obtine pozitia integrand viteza:
Dorim sa pozitionam motorul foarte precis, deci eroarea sa fie 0 cand se va da comanda motorului. Dorim de altfel ca motorul sa ajunga la pozitia finala foarte repede si fara un suprareglaj mare (40ms)
Reprezentarea in Matlab: Functia de transfer:
Pentru graficul de mai sus putem observa ca atunci cand se aplica o tensiune de 1V, pozitia motorului creste fara limite, deci raspunsul sistemului in bucla deschisa nu este stabil. Stabilitatea sistemului poate fi verificata folosind comanda isstable, ce va returna o valoare True sau False. Aceasta poate fi determinata din polii functiei de transfer, folosind comanda pole():
Asa cum este indicat in aceasta functie, unul din polii functiei de transfer in bucla deschisa este pe axa imaginara, in timp ce ceilalti 2 poli sunt in partea stanga a aplanului complex s. Un pol pe axa imaginara indica faptul ca raspunsul liber al sistemului nu va creste nemarginit. In cazul de fata, iesirea va contiuna sa creasta la infinit, in aceeasi masura ca integratorul unei constante ce creste la infinit cand limita superioara se mareste. Raspunsul in bucla inchisa Sa consideram raspunsul sistemului in bucla inchisa:
Functia de teansfer poate fi generata in Matlab utilizand comanda feedback:
Raspunsul treapta poate fi generat adaugand comanda step(sys_cl,t) in Matlab
Putem observa ca adaugand feedback-ul, sistemul s-a stabilizat. Comanda pzmap va plota polii si zerourile functiei de transfer :
pzmap(sys_cl)
Se observa ca sistemul are un pol real si 2 poli imaginari. Adaugand urmatoarele comenzi, se va putea calcula suprareglajul si timpul de stabilizare:
In urmatoarele pagini vom incerca sa reducem acest timp de stabilizare prin diferite sisteme de control. Controlul proportional Folosind un controller proportional cu cresterea de la 1 la 21, putem folosi bucla for si comanda feedback pentru a genera functia de transfer:
Adaugand un set de functii in Matlab putem imbunatati stabilitatea erorii de zero, prin cresterea valorii Kp, care are insa efectul advers de a mari timpul de stabilizare:
Controlul PI Setand Kp=21 si valoarea integratorului de test variind intre 100 si 500, putem genera figura urmatoare, folosing urmatoarele comenzi in Matlab:
Putem urmari raspunsul perturbatiei introducand urmatoarele comenzi:
Controlul integrator a redus eroarea starii de echilibru la 0, chiar si cu o perturbatie introdusa. Cu cat Ki este mai mare, cu atat eroarea scade mai repede spre 0. Vom folosi o valoare Ki =500, pentru ca eroarea datorita perturbatiei scade rapid, chiar daca raspunsul referintei are o perioada mai mare de stabilizare. Vom incerca sa reducem timpul de stabilizare prin adaugarea termenului derivativ in controller.
Controlul PID Vom investiga termenul derivativ Kd, variind de la 0.05 la 0.25
Pentru a determina caracteristicile precise ale raspunsului putem folosi comanda stepinfo:
Putem observa ca raspunsul are un timp de stabilizare de 34ms, o rata de abatere de 12% si eroarea starii de echilibru 0. Deci putem folosi un controler PID cu parametri: Kp=21, Ki=500 si Kd=0.15 pentru a satisface cerintele de design.
Desenarea buclei deschise Root Locus Ideea principala a Root Locus este de a prezice raspunsul in bucla inchisa de la radacina care descrie posibilele locatii ala polilor buclei inchise si este dedusa din functia de transfer in bucla deschisa. Apoi adaugand zerouri si/sau poli in controller , root locus poate fi modificata pentru a obtine raspunsuri in bucla inchisa. Adaugand urmatoarea comanda se va obtine urmatorul grafic: rlocus(P_motor) title('Root Locus - P Control') sgrid(.5, 0) sigrid(100)
Comenzile sgrid si sigrid sunt functii care marcheaz regiuni ale planului complex corespunztoare anumitor parametrii. Functia poles poate fi solosita pentru a determina exact valorile polilor buclei deschise:
Desenarea diagramei Bode a sistemului necompensat Idea unui model bazat pe frecventa este sa folosim diagrama Bode a buclei deschise a functiei de transfer pentru a estima raspunsul sistemului in bucla inchisa. Adaugand un controler se modifica diagrama Bode, deci si raspunsul buclei inchise. Vom folosi unealta SISO Design Tool, adaugand comanda sisotool (bode,P_motor)
Adaugand integrator compensator putem atinge eroarea de echilibru de 0, in final ajungand la o diagrama Bode ce satisface cerintele sistemului:
Crearea modelului cu Simulink
Sistemul poate di modelat prin insumarea cuplurilor actionanad asupra inertiei rotorului si integrand acceleratia unchiulara a rotorului pentru a rezulta viteza, apoi integrand viteza pentru a obtine pozitia. Vom modela integralele acceleratiei rotorului, apoi vom construi blocurile in Simulink:
Aplicam legile lui Newton si ale lui Kirchhoff pentru motor :
Adaugam cuplurile din ecuatiile lui Newton si cele din armatura:
Adaugam termenii de tensiune din legile lui Kirchhoff si tensiunea electromotoare a motorului:
In final, comprimand blocurile, vom avea urmatorul model:
Controlul modelului Simulink
Introducand parametrii sistemului ( J = 3.2284E-6; b = 3.5077E-6; K = 0.0274; R = 4; L = 2.75E-6;), vom putea vizualiza pe osciloscop urmatorul grafic:
Putem folosi un controler cu functia de transfer: ,pe care o vom adauga in modelul Simulink creat:
Adaugand o perturbatie si setand parametrii J = 3.2284E-6; b = 3.5077E-6;K = 0.0274;R = 4;L = 2.75E-6, putem vizualiza urmatorul raspuns grafic:
Se poate observa ca este un usor salt la valoarea 0.03 secunde datorita perturbatiei, dar sistemul este capabil sa rejecteze acest efect si eroarea starii de echilibru va ajunge la 0, satisfacand astfel cerintele sistemului.