Upload
vuongduong
View
239
Download
4
Embed Size (px)
Citation preview
Digitalno regulisani pogoni jednosmerne struje
Primena mikroprocesora u energeticipredavanje 7
(Novembar 2009)
1 Šta regulišemo u pogonima ?2 Prekidački izvori jednosmernog napona3 Digitalno upravljanje jednosmernim motorima
3.1 Dizajn hardvera 3.2 Dizajn programa3.3 Generisanje PWM signala 3.4 Merenje brzine 3.5 Merenje položaja i procena brzine
Sadržaj
Digitalno upravljani pogoni jednosmerne struje 2/30
3.5 Merenje položaja i procena brzine 3.6 Merenje struje i napona 3.7 Digitalni zakon upravljanja 3.8 Blok dijagram programa za reg. brzine dc motora 3.9 C- program za reg. brzine dc motora
Šta regulišemo u pogonima ?
---PWM
Petlja momentaPetlja brzinePetlja pozicije
Regulacione petlje u pogonu
Kako se reguliše momenat, kako brzina a kako položaj?
Digitalno upravljani pogoni jednosmerne struje 4/30
mfe mkdt
dJm ++= ωω
∫= dtωθ
f
me
kJs
mm
+−=ω
ωθs
1=
Regulacione petlje su način upravljanja pojedinim veličinama nekog dinamičkog sistema.
ReferencaGreška
Gain(s) Sistem
Upravljačka veličina
r y
A
Princip rada regulacione petlje- SAU !
Digitalno upravljani pogoni jednosmerne struje 5/30
Upravljana veličina
Gain(s)
-
Sistemr y
Funkcija prenosa bez povratne sprege y = A * rsa povratnom spregom y = A/(1+A) * r
četkica
komutator
Princip rada motora jednosmerne struje
Digitalno upravljani pogoni jednosmerne struje 6/30
BILBlIF =×⋅=rvr
Osnovne karakteristikeOsnovne karakteristike
1) 1) Prost za upravljanje Prost za upravljanje 2) 2) Skupa proizvodnja Skupa proizvodnja 3) 3) Skupo održavanjeSkupo održavanje
Osnovne karakteristikeOsnovne karakteristike
1) 1) Prost za upravljanje Prost za upravljanje 2) 2) Skupa proizvodnja Skupa proizvodnja 3) 3) Skupo održavanjeSkupo održavanje
Princip generisanja momentaPrincip generisanja momenta
1) Flux (sa statora) i struja ( kroz 1) Flux (sa statora) i struja ( kroz rotor) uvek normalni rotor) uvek normalni 2) Struja uvek istog smeta 2) Struja uvek istog smeta (zasluga mehaničkog komutatora)(zasluga mehaničkog komutatora)
Princip generisanja momentaPrincip generisanja momenta
1) Flux (sa statora) i struja ( kroz 1) Flux (sa statora) i struja ( kroz rotor) uvek normalni rotor) uvek normalni 2) Struja uvek istog smeta 2) Struja uvek istog smeta (zasluga mehaničkog komutatora)(zasluga mehaničkog komutatora)
Magnetno polje (flux)
Struja
Elektromagnetni momenat
Regulaciona petlja momenta kod dc motora
Digitalno upravljani pogoni jednosmerne struje 7/30
� Cilj: da se obezbedi razvije željeni momenat na vratilu� Komanda: dolazi iz petlje po brzini ili preko ulaza za ref. momenat.� Povratna sprega: struja motora (obično proporcionalna momentu !)
koja se meri na više načina: strujni transformator, LEM sonda, shunt .
momenat
( )Ψ×=rrr
ame Ikm
em u
mm
ai R1 1 ω
rotor vratilo Razvijanje momenta
-
Model motora jednosmerne struje
-model rotorskog kola – kako od napona dobijamo struju rotora
-model nastajanja momenta – kako od struje dobijamo momenat
-model mehaničkog dela – kako od momenta razvijamo brzinu
Digitalno upravljani pogoni jednosmerne struje 8/30
eau ai
- a
apT
R
+1
1
fkpJ +1
fψ
femf ωψ≈
ω -
Detaljnije u pogonima i regulaciji
Mua
uc
ω
m
naponski upravljivi izvor Statorsko kolo
(uspostavljanje struje ∼La/Ra)
Regulacija brzina dc motora naponskim izvorom
Digitalno upravljani pogoni jednosmerne struje 9/30
mmA
mpT
1au
e
ai ×a
a
pT
R
+1/1 em
×
ω
fψ
−−
+
Komanda
(napon)
Mehanička jednačina
O.K. ali nema neku dinamiku
Mia
uc
ω
strujniupravljivi izvor Momenat se
brže uspostavlja
me=kmiaΨ
Regulacija brzina dc motora strujnim izvorom
Digitalno upravljani pogoni jednosmerne struje 10/30
mm
AmpT
1ai × em ω
fψ
−+
Komanda
(struja)
me=kmiaΨ
NE KORISTI SE MNOGO, Strujni izvor nije lako napraviti
+Mua
uc
ωRegulator struje
iaref
ia
Pravo rešenje za servo pogone !
Reg. brzine strujno regulisanim napon. izvorom
Digitalno upravljani pogoni jednosmerne struje 11/30
PI+
-
ωωωω*
ωωωω
ia*
ia
-
ucPID
Regulator iaRegulator ωωωω
Komanda napona ka pretvaraču (nap. izvor)
em au
mm−
ai
- e
a
apT
R
+1
1
fkpJ +1
fnomψ
fnomψ
ω ωreg
refω
-
Jednosmerni motor
PWM
refau
ireg
refai
-
Regulacija brzine
Uobičajena primena strujno regulisanog naponskog izvora!
Regulacione petlje brzine i položaja dc motora
Digitalno upravljani pogoni jednosmerne struje 12/30
em au
mm−
ai
- e
a
a
pT
R
+1
1
fkpJ +1
fψ
fnomψ
ω ωreg
refω
-
Jednosmerni motor
PWM
refau
ireg
refai
- p
1 θreg
refθ θ
ω
Regulacija položaja
em au
mm−
ai
- e
a
apT
R
+1
1
fkpJ +1
fnomψ
fnomψ
ω ωreg
refω
-
Jednosmerni motor
PWM refau
Regulacija brzine naponski reg. izvorom
Digitalno upravljani pogoni jednosmerne struje 13/30
- Sporija dinamika (uspostavljanje momenta, t.j. statorske struje koja ga definiše, zavisi od statorskog kola)
- Ali , nećemo morati regulisati struju
- Čitaćemo struju radi zaštite
- Sada nam treba izvor regulisanog jednosmernog napona
Prekidački izvori jednosmernog napona - DC/DC konvertori (čoperi)
Jednokvadrantni čoper
Digitalno upravljani pogoni jednosmerne struje 15/30
- Samo jedan prekidački element
- Ali samo jedan kvadrant – motorski režim i jedan smer!
- Koja je šema praktičnija?
Dvokvadrantni čoper
Digitalno upravljani pogoni jednosmerne struje 16/30
Četverokvadrantni čoper (H - bridge)
Digitalno upravljani pogoni jednosmerne struje 17/30
- Četiri prekidačka elementa
- Četiri kvadranta – motorski/gen. režim i dva smera!
VDC
1f∼
3f∼ Va
Tipičan front–end dc/dc konvertora
Ispravljač nam daje od AC neregulisani DCNeregulisani DC dalje čoper reguliše i nameće motoru
Digitalno upravljani pogoni jednosmerne struje 18/30
Neregulisani ispravljač DC čoper
][32423022 VVV nfDC =⋅=⋅=
][5642302323 VVV nfDC ≈⋅⋅=⋅⋅=Trofazni ispravljač
Monofazni ispravljač
( ) ∫∫∫ ⋅⋅+⋅⋅=⋅⋅=T
t
t
DC
t
sr
on
on
dtT
dtVT
dttuT
V 0111
00
DCDCON
sr aVVT
tV =⋅= a - faktor ispune
(0,1)
Princip rada prekidačkog dc/dc konvertora
Jednokvadrantni čoper
Digitalno upravljani pogoni jednosmerne struje 19/30
t
Va
TON TOFF
TPWM
VDC
0
Va
( ) ∫∫∫ ⋅−⋅+⋅⋅=⋅⋅=T
t
DC
t
DC
t
sr
on
on
dtVT
dtVT
dttuT
V111
00
( ) ( )1211 −⋅⋅=−⋅⋅−⋅⋅= aVtTVT
tVT
V DCONDCONDCsr
Četverokvadrantni čoper
Princip rada prekidačkog dc/dc konvertora
Digitalno upravljani pogoni jednosmerne struje 20/30
t
Va
TON TOFF
TPWM
VDC
0
-VDC
a
aaPWM
PWM R
LTT
f=<<=1
Osnovna ideja →→→→
Izlazna struja prekidačkog dc/dc konvertora
Od oblika struje zavisi i momenat !
Digitalno upravljani pogoni jednosmerne struje 21/30
Digitalno upravljanje motorom jednosmerne struje
JM DC/DC
+
-
Ia(A)
Analogni svet
Analogni i digitalni svet dig. regulisanog pogona
Digitalno upravljani pogoni jednosmerne struje 23/30
komanda ka pretvaraču
(µµµµC upravljanju baš odgovaraju prekidači)
dig. PWM output
dig./analoginputs
µµµµCSer. kom.
Signali sa pretvarača i motora
Digitalni deo
Ia(broj)
Digitalno regulisani pogoni jednosmerne struje
3.1. Hardware dizajn
3.1) Block dijagram hardware-a dc pogona
3f∼
Neregulisani ispravljač
Četverokvadrantni DC čoper
Optičko odvajanje
Signal DC napona
LEM
enkoder
R1
R2
C
trafo ~380V/~9V
Reg. napona
Otpornički razdelnik
DCM
Digitalno upravljani pogoni jednosmerne struje 25/30
PWM Optičko odvajanje
SKHI21H4
odvajanje i pojačanje
pojačanje
Signal struje motora
napona
AN1
SKHI21H4
Encoder receiver Odvajanje i prilagoñenje naponski nivoa
Driver za jednu granu mosta QEA
QEB
ATX ARX
dsPIC 4011
Serial driver
Veza ka PC računaru
Invertovanje PWM signala
PWM signal
Enkoder A Enkoder B
komparator FLTA
AN0
IMAX
VSS VDD
OSC1 OSC2
OSC
3.1) Block dijagram hardware-a dc pogona
- Šema iz Protela -
Digitalno upravljani pogoni jednosmerne struje 26/30
3.1) Block dijagram hardware-a dc pogona
- Izgled pločice -
Digitalno upravljani pogoni jednosmerne struje 27/30
7805
~Vac
220Vac
Trafo220V/9V
VDD=5V
VSS=GND
Napajanje
3.1) Block dijagram hardware-a dc pogona
Digitalno upravljani pogoni jednosmerne struje 28/30
Razvojni sistem dsPIC40xx
3.1) Block dijagram hardware-a dc pogona
Digitalno upravljani pogoni jednosmerne struje 29/30
Digitalno regulisani pogoni jednosmerne struje
3.2. Dizajn programa – software
1) Akvizicija podataka sa energetskog pretvarača i motora- Merenje napona jednosmernog meñukola. Signal je analogan i neophodno je galvansko odvajanje, prilagoñenje nivoa, i A/D konverziju.- Merenje struje radi zaštite i moguće regulacije. - Merenje brzine motora, radi regulacije i zaštite-. 2) Izvršenje digitalnog zakona upravljanja Zavisi od odabrane strukture regulacije. Može da bude a) prosta generacija PWM signala, b) regulacija brzine i c) regulacije struje i brzine. d) regulacija struje i brzine i pozicije
3) Zadavanje impulsne komande prekidačkim elementima pretvarača
3.2) Šta treba program da radi?
Digitalno upravljani pogoni jednosmerne struje 31/30
3) Zadavanje impulsne komande prekidačkim elementima pretvarača
4) Zaštita pogona Rad pogona je neophodno zaustaviti u slučaju -prekomerne struje, -prekomerne brzine, -u slučaju greške u naponu jednosmernog kola,- prevelike temperature čopera ili motora.5) Svetlosna signalizacija. Grupa LED, signalizacija rada, greške ..
6) Komunikacija sa spoljnim svetom. Serijska veza omogućuje prihvatanje komandnih signala, slanje izveštaja i prikupljenih podataka. Komandni signali mogu i lokalno, primenom tastera i/ili potenc.!
1) Treba razumeti kako rade energetskog pretvarač i motor. ���� To smo već obavili za dc pogon, znamo kako radi dc/dc pretvarač a znamo i kako se ponaša motor! Odlučili smo se za regulaciju brzine promenom napona na dc motoru.a) Treba prihvatiti zadatu brojnu vrednost brzine b) Treba meriti brzinuc) Treba korigovati napona na motoru u skladu sa razlikom ove dve brzine (regulisati brzinu na ref. vrednost)
d) Generisati PWM signal koji daje željeni dc napon na izlazu dc/dc konvetora (jedan ili dva komplementarna para)
3.2) Šta treba naš program da radi?
Digitalno upravljani pogoni jednosmerne struje 32/30
konvetora (jedan ili dva komplementarna para)e) Treba meriti struju barem radi zaštite (ovde radimo sa naponskim izvorom i dakle bez regulacije struje)
2) Napraviti hardware potreban za izvršenje tog programa i prilagoditi program postojećem hardware-u. � I to smo već obavili.
3) Načiniti Blok dijagram algoritma za pojedine ili sve delove programa. Jasno objašnjava šta želimo da radimo, programski jezik u kome će nastaviti da radimo u ovoj fazi nije bitan.
4) Početi pisanje programa, asembler ili C, eventualno neki grafički interface i autocoding (na primer Matlab, dSPACE itd..)
Digitalno regulisani pogoni jednosmerne struje
3.3. Generisanje PWM signala
sa i bez PWM jedinice (Motor Control Module)
Start glavnog prg.
Inicijalizacija programski promenjivih
Inicijalizacija GPIO pina 1) upis neaktivnog stanja (0 ili 1) 2) selekcija GPIO (ako je mux) 3) izbor smera (out)
Inicijalizacija Timer 1
Prekid Timer 1
Dozvoli i sledeći prekid Timer 1
Novi_Period=1
GPIO_PIN=1 GPIO_PIN=0
NO YES
Generisanje PWM signala bez PWM jedinice
Blok dijagram alg. programa sa jednim timer-om
Digitalno upravljani pogoni jednosmerne struje 34/30
Inicijalizacija Timer 1 (clock div, upis početnog
perioda, dozvola rada� start)
Dozvola prekida Timer 1
Ostale aktivnosti u toku osnovne petlje (main loop). Rad sa raznim IO (display, ser. comm, tasteri..)
Novi_Period=YES
TIMER_PERIOD = FAKTOR_ISPUNE
TIMER_PERIOD = PWM_PERIOD-FAKTOR_ISPUNE
Čitanje novog FAKTOR_ISPUNE Return
Novi_Period=0 Novi_Period=1
PMW_PERIOD = Tpwm/ Tclk
FAKTOR_ISPUNE = { 0 , PWM_PERIOD}
Start glavnog prg.
Inicijalizacija programski promenjivih
Inicijalizacija GPIO pina 1) upis neaktivnog stanja (0 ili 1) 2) selekcija GPIO (ako je mux) 3) izbor smera (out)
Inicijalizacija Timer 1
Prekid Timer 1
Dozvoli i sledeći prekid Timer 1
GPIO_PIN=0 TIMER2_PERIOD = FAKTOR_ISPUNE
Dozvola rada Timer 2� start
Prekid Timer 2
Dozvoli i sledeći prekid Timer 2
Return
Generisanje PWM signala bez PWM jedinice
Blok dijagram alg. programa sa dva timer-a
Digitalno upravljani pogoni jednosmerne struje 35/30
Inicijalizacija Timer 1 (clock div, upis PWM perioda,
dozvola rada� start)
Ostale aktivnosti u toku osnovne petlje (main loop). Rad sa raznim IO (display, ser. comm, tasteri..)
GPIO_PIN=1
TIMER1_PERIOD = PWM_PERIOD
Č itanje novog FAKTOR_ISPUNE
Return
Inicijalizacija Timer 2 (clock div, upis početnog perioda)
Dozvola prekida Timer 1 i Timer 2
Dozvola rada Timer 1� start
PTMR PTPER
PWM interrupt 1 2 3
PDC1 duty cycle registar prve grane
Ovde se automatski upisuje novi faktor ispune iz PDC1
Moramo mi (t.j. CPU program)
Dešava se automatski
Generisanje PWM signala sa PWM jedinicom
PWM period moramo mi definisati, ali samo jednom tokom inicijalizacije
Digitalno upravljani pogoni jednosmerne struje 36/30
PWM faktor ispune
PWM period 1
PWM signal
PWM period 2
PDC1 (faktor ispune) moramo bi definisati i menjati. Njime kontrolišemo napon. Problem zauzeća CPU može nastati samo usled računa faktora ispune koji treba obaviti u okviru jednog PWM perioda.
Testera se automatski generiše
PWM signal se automat. generiše
Start glavnog prg.
Inicijalizacija programski promenjivih
Inicijalizacija Motor Control module 1) PTCON enable, set PWM clock. set mode 2) PTPER = PWM_PERIOD 3) PWMCON2 updates enable
Prekid Motor Control module
Dozvoli i sledeći prekid MCM
Račun novog FAKTOR_ISPUNE
Generisanje PWM signala sa PWM jedinicom
Digitalno upravljani pogoni jednosmerne struje 37/30
3) PWMCON2 updates enable 4) PDC1 = 0 ( počni sa 0 duty cycle) 5) PWMCON1 set PWMxH as PWM pin
Dozvola prekida MCM
Ostale aktivnosti u toku osnovne petlje (main loop). Rad sa raznim IO (display, ser. comm, tasteri..)
Return
PDC1= FAKTOR_ISPUNE
Blok dijagram alg. programaukoliko pustimo da PWM signal generiše PWM periferfija
PTPER 0 32767 1000 8000
Tpwm[s] 0 0.004095.. 0.000125 0.001
fpwm [Hz] ∞∞∞∞ 244Hz 8KHz 1KHz
PTPER = TPWM/Tclk -1 Primeri za fclk = 8MHz
PDC1 = 0 Početni duty cycle je nula u slučaju jednokvadrantnog čopera ! Napon nula!
PTPER = ?
Inicijalizacija Motor Control Module (1/2)
Period reg.
Ton reg.
Digitalno upravljani pogoni jednosmerne struje 38/30
jednokvadrantnog čopera ! Napon nula!
PTCONPTEN =1 AND PTOPS =00 (postscale=1) AND PTCKPS=0 (prescale=1 t.j. Tclk 1:1) AND PTMOD =00 (free run)
Ton reg.
PWM timer control i mod registar
PWMCON1
PWMCON2
PWCON1 = PMOD4-1 = 0000 (svi komplementarni parovi) AND PEN4H-PEN1H =0011) AND PEN4L-PEN1L =0011(dozvoli ih po dva gore i dva dole – za 4-kvadrantni čoper)
Inicijalizacija Motor Control Module (1/2)
PWM signal control i mod registar 1
Digitalno upravljani pogoni jednosmerne struje 39/30
PWMCON2
PWCON2 = 0
FLTACON
FLTACON =0x000FSvi izlazni parovi se gase na Fault Input A
Šta je dobijeno korišćenjem PWM perifernog modula ?- PWM signal je generisan u potpunosti u hardveru i blizak je idealnom. - Kašnjenje ulaska u PWM prekid ne remeti PWM signal! - CPU je osloboñena generisanja PWM signala i može se nečim drugim baviti- Programiranje je lako. Uobičajeno da proizvoñač µP objavi sw driver-e za svoje periferije (preko WEB, korisničko upustvo ili CD sa primerima). - Motor Control module poseduje dodatne funkcije koje je nemoguće realizovati programski, pri radu CPU. Na primer:
- Trenutni prekid PWM signala u slučaju greške (Fault shut down). Prekid je trenutan, realizovan potpuno hardverski. Na slici pogona, logička nula na FLTA ulazu bi zaustavila generisanje PWM signala i postavila izlaz na
Generisanje PWM signala sa PWM jedinicom
Digitalno upravljani pogoni jednosmerne struje 40/30
FLTA ulazu bi zaustavila generisanje PWM signala i postavila izlaz na neaktivan nivo.- Moguća je utiskivanje mrtvog vremena (deadtime) u radu dva komplementarna prekidača, funkcija od izuzetnog značaja za kontrolu naizmeničnih motora. - Moguće je PWM sinhronizacione impulse iskoristiti za trigger ADC konverzije.
Šta je ovde loše?Mikroprocesor sa PWM jedinicom uobičajeno košta više od onog koji ne poseduje ovu periferiju ($0.5 skuplji). Za skoro sve primene to nije tako bitno !
Digitalno regulisani pogoni jednosmerne struje
Merenja u pogonu
1) Merenje napona jednosmernog meñukola. Ukoliko želimo da ostvarimo tačan napon na motoru, moramo znati DC napon. Signal je analogan i neophodno je izvršiti njegovo galvansko odvajanje, prilagoñenje nivoa, i A/D konverziju.
2) Merenje struje motora. Osnovni razlog merenja struje je zaštita. Da bi zaštita bila brza i efikasna, uobičajeno je da se realizuje hardverski, primenom komparatora. Ukoliko je struja veća od maksimalne signal na izlazu komparatora menja vrednost i fault ulaz trenutno zaustavlja generisanje PWM signala. Struja se može i konvertovati na AD ulazu, i digitalno regulisati.
Merenja u dig. regulisanom dc pogonu
Digitalno upravljani pogoni jednosmerne struje 42/30
signala. Struja se može i konvertovati na AD ulazu, i digitalno regulisati. Ovim je obezbeñena bolja kontrola momenta.
3) Merenje brzine. Potrebno za zatvaranje povratne sprege po brzini. Ukoliko se koristi dc tacho, analogni signal je neophodno odvojiti i naponski nivo prilagoditi ulaznu AD konvertora. Ukoliko se koristi inkrementalni enkoder, on generiše dva digitalna signala A i B koje treba brojati. Za obradu ovih signala postoji QE modul unutar uC, koji direktno izračunava brzinu i promenu položaja. Ove signale je takoñe neophodno odvojiti i prilagoditi im naponski nivo pre ulaska u dsPIC.
3.4. a) DC tachometar
TG ADC
Gain
ωωωωVTG~ωωωω
VREF=5V
ADC result
15 ………… 0
dsPIC)()( rpmnKVV TGTG =
kV
⋅= ω
3.4. Merenja mehaničke brzine rotora
Digitalno upravljani pogoni jednosmerne struje 43/30
ωωωω VTG VADC ADC result(mod 0)*
ADC result(mod 3) ***
0 rpm 0V 0V 0 0
ωωωωMAX VTGMAX 5V 1023 0x7FE0
00 mod0* 0000 00xx xxxx xxxx10 mod2** xxxx xxxx xx00 000011 mod3** sxxx xxxx xxx0 0000s- znak, ovde nula
12_ −= N
MAXrecdig
ωω
REFMAX
AD
MAXTG
REF
MAXTG
MAXTG
TGTG
VV
V
VGain
kV
kV
⋅=→
=
⋅=
⋅=
ωωω
ω
4a.1. DC tachometarTG ADC
Gain
ωωωωVTG~ωωωω
ωωωω VTG VADC ADC result(mod 1)
ADC result(mod 2)
0 rpm 0V 0V 0 0
ωωωωMAX VTGMAX 5V 1023 0x7FFF
VREF=5V
ADC result
15 ………… 0
mod1-0000 xxxx xxxx xxxx
mod1-xxxx xxxx xxxx 0000
dsPIC
3.4. Merenja mehaničke brzine rotora
Digitalno upravljani pogoni jednosmerne struje 44/30
2a.2. AC tachometar
TGNF Filter
ωωωωfTG~ωωωω T2CLK TMR2
+
-15 ………… 0
dsPIC
fTG= (npTG/60) nr
TGNF Filter
ωωωωfTG~ωωωω T2CLK TMR2
+
-15 ………… 0
dsPIC
1 2
TCLK
WNF
WTG
A
f)(60
)( rpmnnp
Hzf TGTG =
3.4. Merenja mehaničke brzine rotora
3.4. a) AC tachometar
Digitalno upravljani pogoni jednosmerne struje 45/30
1 2 N
nT (n-1)T t t
TTG~ 1/fTG
TCLK
)(60
2 rpmnf
np
f
fTMR
merenja
TG
merenja
TG ==)(
1602
rpmnnp
f
f
f
T
TTMR
TG
CLK
TG
CLK
CLK
TG
⋅⋅
===
Brzina TMPR2 greška
100 rpm 4800000 2.08 e-7
3000 rpm 20000 0.00005
30000 rpm 2000 0.0005
Brzina TMPR2 Greška brzine
100 rpm 1.33 75 rpm
3000 rpm 40 75 rpm
npTG=8 i T=100 ms npTG=8 , T=100 ms fclk=8MHz
3.5. a) Incremental encoder (1/3)
3.5. Merenja položaja i procena brzine rotora
Digitalno upravljani pogoni jednosmerne struje 46/30
A
B
index
Quadrature Encoder
dsPIC
Reset, definiše apsolutni položaj
Inkrementi položaja
N
nm πθ 2= N – broj impulsa po punom krugu (512, 1024, 5000)
n – broj prebrojanih impulsa u u odreñenom vremenskom intervalu. (ako je n=N , napravljen je pun krug )
Inkrement ugla u radijanima
nm 2πθ = UP = A↑·B+ A·B↑ + A↓·B+A·B↓
DOWN = A↑·B+ A·B↑ + A↓·B+A·B↓
Uvećanja rezolucije enkodera za četiri puta
AB
UP slučaj
3.5. Inkrement. enkoder -merenja položaja
Digitalno upravljani pogoni jednosmerne struje 47/30
N
n
N
brojrad == )(
2
)( θπ
θ
Ugao u radijanima i ugao kao broj N ∼∼∼∼ 2ππππ
Nm 42πθ =
t
θ(rad) θenc(broj)
N
0
2π
0
N/2 π
θDSP(broj)
0xFFFF
0
0x7FFF
4N
0
2N
DOWN = A↑·B+ A·B↑ + A↓·B+A·B↓
N
n
N
brojrad x
44
)(
2
)( 4 ==θ
πθ
Praktičan trik:moduo brojaca = N
Procena srednje vrednosti i brzine u vremenskom periodu T
Tn
T
kk
dt
dsrad
θ∆θθθω =−−≈= )1()()/( n – broj prebrojanih impulsa u T
Nili
N 4
22 πθ∆πθ∆ ==
)(4
2)(
4
2)()(
4
2)()()/( 11 broj
NTbroj
NTT
brojbroj
NT
radradsrad k
kkkk ωπθπθθπθθω ==∆=
−=
−= −−
3.5. Inkrem. enkoder -procena brzine
Digitalno upravljani pogoni jednosmerne struje 48/30
)(60
4)(
2
4
60
2)/(
2
4)( rpmn
NTrpmn
NTsrad
NTbroj refrefrefref ===
ππω
πω
N =512*4, T = 100ms, za 1000 rpm, treba zadati ≈≈≈≈ 3413.N =512*4, T = 10ms, za 1000 rpm, treba zadati ≈≈≈≈ 341.N =512*4, T = 1ms, za 1000 rpm, treba zadati ≈≈≈≈ 34.⇒ i ova metoda loše radi ukoliko pristiže nedovoljan broj impulsa!
Problem se može rešiti alternativnim metodama: Enkoder sa više impulsa, ali ovim se problem samo umanjuje, Merenje vremena izmeñu dva impulsa, Kombinovana metoda (najbolje rešenje),Observer brzine.
AD
dsPIC
0xFFC0 0x0000
0, VDCMAX
VDC(kT)
0, VADREF
Shift >> 1
0x7FE0 0x0000
VDC(t)
R1
R2
3.6. Merenja napona jednosmernog meñukola
Digitalno upravljani pogoni jednosmerne struje 49/30
Maksimum napona?340V+10% ?)()(
7.3442
7.3_ VV
V
VVV
kk
kV DCMAX
DC
REFAD
DCINADC =⋅+
=
00001
00)(_
xFFCV
VxFFCV
V
V
VxFFC
V
VbrojV
MAXDC
DCDCMAX
DC
REFAD
REFAD
REFAD
INADCDC ⋅=⋅
⋅⋅=⋅⋅=
napon ADC rez. DSP broj Format1.15
+VMAX 0xFFC0 0x7FE0 približno +1
0 0 0 0
1)()( >>= brojVbrojV ADCDC
32736)( ⋅=MAX
DC
DCDC
V
VbrojV
± IMAX
± VLEM
OP
AD
dsPIC
VOFSET
0xFFC0 0x0000
+ -
0x7FE0 (OFSET)
0x7FE0 0x8020
0, VADREF
I(kT)
L E M
VADREF
VV
OFFSETAMPREFAD 5.22
_ ==
63.52
_ =⋅
=MAXLEM
REFAD
V
VGAINAMP
3.6. Merenja struje armature
Digitalno upravljani pogoni jednosmerne struje 50/30
[ ] [ ]REFAD
REFAD
REFAD
MAX
AREFAD
REFAD
ALEMAMPREFAD
IN
V
VV
I
AI
V
VAIGGxFFC
V
VNUMBERADC
65472
22
65472
200_ ⋅
+=⋅
+⋅⋅=⋅=
[ ]3273632736_ +⋅=
MAX
A
I
AINUMBERADC [ ]
32736_MAX
A
I
AINUMBERI =
[ ] [ ] [ ]MAX
AREFAD
AMAXLEM
REFAD
MAX
MAXLEM
AAMPLEM I
AIVAI
V
V
I
VAIGG
22=
⋅
=
Kako podesiti GAMP
Struja ADC rezultat Broj u DSP 1.15 format
+IMAX 0xFFC0 0x7FE0 približno +1
-IMAX 0x0000 0x8020 približno -1
[ ]32736_
MAX
A
I
AINUMI =
[ ]32736_ DC
V
VVNUMV =
Struja Broj u DSP 1.15 format
+IMAX 0x7FE0 približno +1
-IMAX 0x8020 približno -1
Napon Broj u DSP 1.15 format
+VMAX 0x7FE0 približno +1
3.6. Brojni opsezi struja i napona
Digitalno upravljani pogoni jednosmerne struje 51/30
32736_MAXV
NUMV = +VMAX 0x7FE0 približno +1
0 0x0000 0
[ ] [ ] [ ]3273632736_*__
MAX
DC
MAX
DC
MAX
A
P
WP
V
VV
I
AINUMVNUMINUMP ===
Pored maksimalne moguće preciznosti, šta je ovde još dobro ?
uz 3273616)1)32736*32736(( =>><
errs
KKout
AiA
p
+=
errz
KerrKout i
p 11 −−+=
)()()(
)()()(
kTerrKkTIkTout
kTerrKTkTIkTI i
+=+−=
+
-
PI reg
a PWM BRZINA_REF
BRZINA
err out
Poziciona forma diskretnog PI regulatora
Diferencne
jednačina
Gde god vidiš s ti
posadi.T
z 11 −−
3.7. Regulator brzine – diskretni PI regulator
Digitalno upravljani pogoni jednosmerne struje 52/30
z1−
TKKKK Aii
App == ,
)()()( kTerrKkTIkTout p+=
[ ]errKzK
outzout
ip +−+
=−
−
)1( 1
1
[ ])()()(
)()()()(
kTInckToutkTout
kTerrKTkTerrkTerrKkTInc ip
+=
+−−=
LOWLOW
HIGHHIGH
LIMITkToutLIMITkToutif
LIMITkToutLIMITkToutif
kTInckToutkTout
=<
=>
+=
)()(
)()(
)()()(
jednačina
Inkrementalna forma diskretnog PI regulatora
Diferencne
jednačina
upamćena pozicija
novi inkrement
Kpωωωω
z-1
+
-
Kiωωωω
+
-
ωωωωRREF
ωωωωR +
+ +
+
V_MAX
V_MIN
z-1
Novi inkrement
Inc
PDC1
PDC1(kT-T)
Matlab
3.7. Regulator brzine – diskretni PI regulator
Digitalno upravljani pogoni jednosmerne struje 53/30
[ ]
);()(
;0101
;_1_1
;11
);()()(
;_)(
kTerrTkTerr
PDCPDCif
PERIODPWMPDCPERIODPWMPDCif
IncPDCPDC
kTerrKTkTerrkTerrKInc
BRZINAREFBRZINAkTerr
ip
=−=<=>
+=
+−−=−=
ωω
upamćena pozicija
Novi inkrement upravljačke promenjive
C-code
Start glavnog prg.
Inicijalizacija programski promenjivih
Inicijalizacija Motor Control module 1) PTCON enable, set PWM clock. set mode 2) PTPER = PWM_PERIOD 3) PWMCON2 updates enable 4) PDC1 = 0 ( počni sa 0 duty cycle) 5) PWMCON1 set PWMxH as PWM pin
Prekid Timer 1
Dozvoli i sledeći prekid Timer1
Čitanje ADC DC napon, struja armature
Čitanje brzine sa DC tachometra
Nakon ove init. MCM će početi sam da generiše PWM signal.
Timer1 definiše periodu digitalnog reg. brzine, 1ms
Čitamo brzinu, 1ms
3.8. Ukupan blok dijagram alg. programa
Digitalno upravljani pogoni jednosmerne struje 54/30
Dozvola prekida Timer 1
Ostale aktivnosti u toku osnovne petlje (main loop). Rad sa raznim IO (display, ser. comm, tasteri..)
Upis novog faktora ispune PDC1=FAKTOR_ISPUNE
Return
Kontrola rampe referentne brzine
PI regulator brzine
DC tachometra
Inicijalizacija Timer 1 (clock div, upis PWM perioda,
dozvola rada� start)
main radi ostale stvari
U pozadini, MCM pravi PWM!!!
Ovde punimo PDC1, 1ms
Računamo PI reg., 1ms
Timer za PI reg brzine
(1) kod za inicijalizaciju µµµµC (startup code). inicijalizaciju (podešavanje) sistemskih modula (clock div., FLASH memory , watchdog ... ) inicijalizaciju perifernih modula (ADC, PWM module, UART, Encoder interface, Timer...), inicijalizaciju globalnih programskih promenjivih, Kada je sve podešeno, dozvoljavaju se potrebni prekidi i ulazi u mainloop.
Opis C koda
3.9. C –code za dc pogon upravljan po brzini
Digitalno upravljani pogoni jednosmerne struje 55/30
(2) Podešavanje rutina za inicijalizaciju pojedinih periferija
(3) osnovna petlja (mainloop)dobija novu referencu brzine sa serijske veze, od PC računara
(4) Prekidna rutina Timer 1 (period od 1 ms)čitanje brzine izvršenje dig. Zakona upravljanja upis novog faktora ispune
Sam C kod treba direktno objasniti iz pdf datateke