+ All Categories
Home > Documents > DC Motor Position

DC Motor Position

Date post: 28-Dec-2015
Category:
Upload: ion-vlad-ovedenie
View: 46 times
Download: 0 times
Share this document with a friend
Description:
DC Motor Position using matlab
19
Universitatea Politehnica din Bucuresti Facultatea de Inginerie Mecanica si Mecatronica Pozitia motorului de curent continuu Ionita Catalin Andrei Marian Sorin Chita Florin Milica Mecatronica Avansata
Transcript
Page 1: DC Motor Position

Universitatea Politehnica din Bucuresti

Facultatea de Inginerie Mecanica si Mecatronica

Pozitia motorului de curent continuu

Ionita Catalin

Andrei Marian Sorin

Chita Florin Milica

Mecatronica Avansata

Page 2: DC Motor Position

Motorul de curent continuu este un dispozitiv de acționare comun în sistemele de control. Acesta oferă direct o mișcare de rotație și împreună cu roți sau alte sisteme de transmitere, pot oferi o mișcare de translație. Circuitul electric echivalent al armăturii și diagrama rotorului sunt prezentate în figura de mai jos:

In urmatorul exemplu vom presupune următoarele valori pentru parametrii fizici. Aceste valori au fost obținute 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 armătura motorului, în timp ce iesirea este poziția arborelui (theta). Rotorul și arborele se presupun a fi rigide. Ne asumăm în continuare un model de frecare vâscoasă, adică, cuplul de frecare este proporțional cu viteza unghiulară a arborelui.

Ecuatiile de sistem

În general, cuplul generat de un motor de curent continuu este proporțional cu curentul armăturii și intensitatea câmpului magnetic. În acest exemplu, vom presupune că câmpul magnetic este constant și, prin urmare, cuplul motorului este proporțional cu curentul armăturii cu un factor constant Kt așa cum se arată în ecuația de mai jos:

Tensiunea electromotoare (e) este proportionala cu viteza unghiulara a arborelui cu o constanta kb:

Page 3: DC Motor Position

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)

Page 4: DC Motor Position

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():

Page 5: DC Motor Position

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 :

Page 6: DC Motor Position

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:

Page 7: DC Motor Position

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:

Page 8: DC Motor Position

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.

Page 9: DC Motor Position

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.

Page 10: DC Motor Position

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 corespunzătoare anumitor parametrii.

Functia poles poate fi solosita pentru a determina exact valorile polilor buclei deschise:

Page 11: DC Motor Position

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:

Page 12: DC Motor Position

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:

Page 13: DC Motor Position

Adaugam termenii de tensiune din legile lui Kirchhoff si tensiunea electromotoare a motorului:

In final, comprimand blocurile, vom avea urmatorul model:

Page 14: DC Motor Position

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:

Page 15: DC Motor Position

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.


Recommended