Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

27
Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje 1 Primena mikroprocesora u energetici - Pogoni jednosmerne struje - 1 Regulisani izvori jednosmernog napona ........................................................................... 2 1.1. DC/DC konvertor (čoper) u elektromotornom pogonu .............................................. 2 1.1.1. Osnovne šeme DC čopera .................................................................................. 2 1.1.2. Princip rada DC čopera ...................................................................................... 4 2 Primena mikrokontrolera u pogonima jednosmerne struje sa DC čoperom....................... 6 2.1. Upravljačka struktura u pogonima jednosmerne struje .............................................. 6 2.2. Primer blok dijagrama digitalno upravljanog jednosmernog pogona ....................... 8 2.3. Različiti načini programskog generisanja PWM signala............................................ 9 2.3.1. Šta je glavni zadatak mikroprocesora pri upravljanju čoperom ? ...................... 9 2.3.2. PWM signal dobijen na GPIO pinu primenom jednog brojačkog modula ...... 10 2.3.3. PWM signal dobijen na GPIO pinu primenom dva brojačka modula .............. 10 2.3.4. Generisanje PWM signala korišćenjem Motor Control modula ...................... 11 2.4. Merenje ili procena brzine rotora ............................................................................. 14 2.4.1. Merenje brzine pomoću jednosmernog tahometra .......................................... 14 2.4.2. Merenje brzine pomoću naizmeničnog tahometra ........................................... 15 2.4.3. Merenje položaja i procena brzine pomoću optičkog enkodera ....................... 16 2.5. Merenje i procesiranje ostalih relevantnih signala u pogonu ................................... 19 2.5.1. Merenje struje armature .................................................................................... 19 2.5.2. Merenje napona jednosmernog međukola ........................................................ 20 2.6. Digitalno upravljanje DC motorom u zatvorenoj povratnoj sprezi po brzini ........... 22 2.6.1. Šta je cilj ? ........................................................................................................ 22 2.6.2. Digitalni PI regulator brzine u pozicionoj i inkrementalnoj formi .................. 22 2.6.3. Blok dijagram algoritma upravljanja DC motorom.......................................... 24 2.6.4. C-code za regulaciju brzine DC motora ........................................................... 25 2.7. Digitalno upravljanje DC motorom sa povratnom spregom po brzini i struji .......... 28 Rev Date Originator Description X1 02/26/07 dr Darko Marcetic DC čoper završen , nedostaje trofazni ispravljač X2 02/28/08 dr Darko Marcetic poboljšano merenje brzine, struje , napona..

Transcript of Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Page 1: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

1

Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

1 Regulisani izvori jednosmernog napona ...........................................................................2

1.1. DC/DC konvertor (čoper) u elektromotornom pogonu ..............................................2 1.1.1. Osnovne šeme DC čopera ..................................................................................2 1.1.2. Princip rada DC čopera ......................................................................................4

2 Primena mikrokontrolera u pogonima jednosmerne struje sa DC čoperom.......................6 2.1. Upravljačka struktura u pogonima jednosmerne struje ..............................................6 2.2. Primer blok dijagrama digitalno upravljanog jednosmernog pogona .......................8 2.3. Različiti načini programskog generisanja PWM signala............................................9

2.3.1. Šta je glavni zadatak mikroprocesora pri upravljanju čoperom ? ......................9 2.3.2. PWM signal dobijen na GPIO pinu primenom jednog brojačkog modula ......10 2.3.3. PWM signal dobijen na GPIO pinu primenom dva brojačka modula..............10 2.3.4. Generisanje PWM signala korišćenjem Motor Control modula ......................11

2.4. Merenje ili procena brzine rotora .............................................................................14 2.4.1. Merenje brzine pomoću jednosmernog tahometra ..........................................14 2.4.2. Merenje brzine pomoću naizmeničnog tahometra ...........................................15 2.4.3. Merenje položaja i procena brzine pomoću optičkog enkodera .......................16

2.5. Merenje i procesiranje ostalih relevantnih signala u pogonu ...................................19 2.5.1. Merenje struje armature....................................................................................19 2.5.2. Merenje napona jednosmernog međukola........................................................20

2.6. Digitalno upravljanje DC motorom u zatvorenoj povratnoj sprezi po brzini...........22 2.6.1. Šta je cilj ? ........................................................................................................22 2.6.2. Digitalni PI regulator brzine u pozicionoj i inkrementalnoj formi..................22 2.6.3. Blok dijagram algoritma upravljanja DC motorom..........................................24 2.6.4. C-code za regulaciju brzine DC motora ...........................................................25

2.7. Digitalno upravljanje DC motorom sa povratnom spregom po brzini i struji..........28

Rev Date Originator Description X1 02/26/07 dr Darko Marcetic DC čoper završen , nedostaje trofazni ispravljač X2 02/28/08 dr Darko Marcetic poboljšano merenje brzine, struje , napona..

Page 2: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

2

1 Regulisani izvori jednosmernog napona

Čoperi spadaju u grupu DC/DC energetskih pretvarača. Oni jednosmeran napon određene srednje vrednosti, koji se obično dobija iz neregulisanog izvora jednosmernog napona (akumulatorske baterije, neupravljivi ispravljači, ...) pretvaraju u jednosmeran napon druge srednje vrednosti. Napon na izlazu čopera se može regulisati tako da pomoću čopera možemo dobiti regulisani izvor jednosmernog napona. Osim čopera, za dobijanje regulisanog jednosmernog napona postoje razni linearni elektronski regulatori jednosmernog napona i poluupravljivi ili potpuno upravljivi ispravljači. Međutim svi ovi izvori regulisanog jednosmernog napona imaju u odnosu na čopere nekoliko bitnih nedostataka. Linearni elektronski regulatori jednosmernog napona imaju zbog svog načina rada značajne gubitke energije, tako da se njihova primena isplati samo pri napajanju elektronskih uređaja vrlo malih snaga. Njihova prednost u odnosu na primenu čopera se ogleda u jednostavnosti i niskoj ceni. Poluupravljivi i potpuno upravljivi ispravljači su, s druge strane isplativi i za napajanje potrošača velikih snaga, a dugo vremena su bili i jedina varijanta za dobijanje regulisanog jednosmernog napona iz mrežnog naizmeničnog napona. Otkako je postala aktuelna tema kvaliteta električne energije, došlo se do zaključka da svi ovi ispravljači unose dosta visok nivo harmonijskog izobličenja u elektroenergetsku mrežu. Njihov faktor snage vrlo varira u zavisnosti od režima rada, jer zavisi od ugla paljenja. Čoperi u odnosu na linearne regulatore jednosmernog napona imaju mnogo manje gubitke energije u toku rada. U odnosu na poluupravljive i potpuno upravljive ispravljače postižu mnogo veće prekidačke učestanosti, jer u svojoj topologiji sadrže prekidače tipa MOSFET-a ili IGBT-a, pa na taj način zahtevaju mnogo manje filtre. U kombinaciji sa neupravljivim ispravljačem za dobijanje jednosmernog napona iz mrežnog naizmeničnog napona, faktor snage je mnogo bolji nego kod poluupravljivih i potpuno upravljivih ispravljača koji su bazirani na tiristorima i GTO tiristorima. Konačno, čoperi obezbeđuju mnogo manju talasnost struje armature, čime se ujedno umanjuje i talasnost ostvarenog momenta jednosmernog pogona. Primenom čopera je moguća i brza regulacija struje armature, čime se umnogome poboljšavaju dinamičke karakteristike pogona.

1.1. DC/DC konvertor (čoper) u elektromotornom pogonu

1.1.1. Osnovne šeme DC čopera Po načinu rada čopere možemo podeliti na:

• jednokvadrantne • dvokvadrantne • četverokvadrantne

Jednokvadrantni čoperi omogućavaju rad samo u prvom kvadrantu na U-I karakteristici. Na slici 1 je prikazana pojednostavljena šema jednokvadrantnog čopera i odgovarajući kvadrant na U-I karakteristici. Dvokvadrantni čoperi omogućavaju rad u dva kvadranta na U-I karakteristici i to: u I i II kvadrantu ili u I i IV kvadrantu (reverzibilni čoper). Odgovarajuća topologija i kvadranti prikazani su na slici 2. Četverokvadrantni čoperi omogućavaju rad u bilo kom od četiri kvadranta na U-I karakteristici. Moguće je menjati i smerove struja kroz potrošač i polaritet napona na potrošaču. Na slici 3 prikazani su topologija i kvadranti na U-I karakteristici.

Page 3: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

3

Slika 1 – Jednokvadrantni čoper

Slika 2 – Dve verzije dvokvadrantnog čopera

Slika 3 – Četverokvadrantni čoper (H-most)

Na prethodnim slikama potrošač je simbolično prikazan kao redna veza otpornika R, induktivnosti L i baterije sa elektromotorom silom E koja simbolizuje, u slučaju mašine za jednosmernu struju, indukovanu ems u namotaju. Energetski prekidači su simbolično prikazani kao idealni prekidači. U daljem tekstu detaljnije će se obraditi četverokvadrantni čoperi.

S1

S2 S4

S1

S2

S2

S1

S3

Page 4: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

4

1.1.2. Princip rada DC čopera Čoper omogućuje variranje srednje vrednosti napona na potrošaču. Ukoliko je jednokvadrantni, napon i struja mogu biti samo pozitivni. Sa druge strane, četverokvadrantni čoperi omogućavaju rad u sva četiri kvadranta na U-I karakteristici. Moguća su oba smera struje kroz potrošač i moguće je promeniti polaritet napona na potrošaču. Naročito dobra osobina je mogućnost promene polariteta napona na potrošaču bez upotrebe ikakvih preklopnih uređaja. Osnovna šema primene čopera data je na slici 4.

VDC

1f∼ 3f∼ Va

Neregulisani ispravljač DC čoper

Slika 4 – Osnovna energetska šema jednosmernog pogona sa čoperom Neregulisani ispravljač se priključuje na mrežu i služi za generisanje napona jednosmernog međukola. Za monofazni ispravljač, napon jednosmernog DC kola, VDC, koji napaja H-most iznosi:

][32423022 VVV nfDC =⋅=⋅= , ][230 VVnf = , nominalni fazni napon mreže Za trofazni ispravljač, napon jednosmernog DC kola, VDC, koji napaja H-most iznosi:

][56438,5632302323 VVV nfDC ≈=⋅⋅=⋅⋅= Talasni oblik napona na izlazima jednokvadrantnog čopera, i na potrošaču prikazan je na slici 5a.

( ) ∫∫∫ ⋅⋅+⋅⋅=⋅⋅=T

t

t

DC

t

sr

on

on

dtT

dtVT

dttuT

V 0111

00

DCDCON

sr aVVT

tV =⋅= Talasni oblik napona na izlazima četverokvadratnog čopera, i na potrošaču prikazan je na slici 5b. Ovakav napon se dobija kada se naizmenično uključuju parovi prekidača S1, S4 i S2, S3 u H-mostu. Srednja vrednost napona na izlazima četverokvadrantnog čopera je:

( ) ∫∫∫ ⋅−⋅+⋅⋅=⋅⋅=T

tDC

t

DC

t

sr

on

on

dtVT

dtVT

dttuT

V 111

00

( ) ( )1211−⋅⋅=−⋅⋅−⋅⋅= aVtTV

TtV

TV DCONDCONDCsr (2.3)

Faktor ispune se definiše T

ta ON= (2.4)

t

Va

TON TOFF

TPWM

VDC

0

t

Va

TON TOFF

TPWM

VDC

0

-VDC

Slika 5 – Talasni oblik napona na izlazu čopera (jedno- i četverokvadrantni)

Page 5: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

5

Izlaz napona jednokvadratnog čopera je uvek pozitivan, u opsegu 0 - VDC. Sa druge strane, faktor ispune a = 0,5 kod četverokvadratnog čopera dovodi do srednje vrednosti napona jednaku nuli, odn. pretvarač radi kao monofazni invertor. Za faktore ispune preko 0.5, napon na armaturi motora je pozitivna, za faktore ispune manje of 0.5 , napon je negativan. Maksimalan pozitivan napon je +VDC, maksimum negativnog napona je -VDC. Šta je sa strujom i brzinom DC motora, upravljanim DC čoperom? Ideja je da imamo dovoljno veliku PWM učestanost:

a

aaPWM

PWM RL

TTf

=<<=1

U ovom slučaju se varijacija napona ±VDC ne prenosi značajno na struju armature. Nadalje, ni rotor mašine zbog inercije ne prati ove promene. Dakle, mašina vidi samo usrednjenu vrednost napona koju možemo menjati promenom faktora ispune. Time regulišemo struju i brzinu. Faktor ispune manji od 0,5 (četverokvadrantni čoper), daje negativnu vrednost napona i menja smer obrtanja rotora bez dodavanja ikakvih preklopnih naprava.Na sl je prikazan oblik struje na izlazu čopera pri radu u prvom (motorski režim)i drugom (generatorski režim) kvadrantu.

Slika. 6. Rad u prvom kvadrantu

Slika 7. Rad u drugom kvadrantu

Page 6: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

6

2 Primena mikrokontrolera u pogonima jednosmerne struje sa DC čoperom

2.1. Upravljačka struktura u pogonima jednosmerne struje

Brzinski servomehanizam je regulacioni sistem sa zatvorenom povratnom spregom po brzini koji za izvršni organ koristi električnu mašinu. Njegov zadatak je da obezbedi visoko kvalitetno upravljanje brzinom električne mašine u svim radnim režimima. Pod time se podrazumeva upravljanje koje obezbeđuje željeni karakter brzine u prelaznom režimu, veliku tačnost u ustaljenom stanju i malu osetljivost regulisane brzine na dejstvo poremećaja. Na sledećoj slici je prikazana opšta struktura EMP upravljanog po brzini.

Slika . Strukturni blok dijagram digitalno regulisanog brzinskog servomehanizma

Da bi se obezbedili uslovi za kvalitetnu regulaciju brzine neophodno je ostvariti linearno upravljanje momentom. Pretpostavimo da DC motor poseduje permanentne magnete i relativno konstantan fluks rotora. Jednačina DC motora glase

• Jednačina naponske ravnoteže rotora fa

aaaa dtdi

LiRv ψω ⋅++⋅= , a

aa R

LT =

• Ostvareni el. momenat afe im ψ=

• Mehanička jednačina na vratilu ωωfme kmm

dtdJ −−=

• Model motora jednosmerne struje sa konstantnim fluksom

em

au mm−

ai

- e

a

apTR

+11

fkpJ +1 fnomψ

fnomψ

ω

U slučaju otvorene povratne sprege po brzini, zadaje se referentna vrednost napona na motoru bez povratne sprege po brzini rotora. U stacionarnom stanju je ostvarena sledeća brzina rotora

f

aaa IRVΨ

⋅−=ω ,

ω

ω

θ

Page 7: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

7

Ovo je potpuno neregulisan pogon, pored uticaja napona rotora, brzina rotora se menja i sa promenom opterećenja (Ia), sa promenom fluksa i promenom otpornosti rotora. Struja je takođe neregulisana. Ona je najveća pri startu i iznosi

a

aSTARTa R

VI =

U slučaju ovakve vrste regulacije, bilo bi lepo barem napon rotora postepeno podići od nula do željene vrednosti, primenom neke vrste vremenske rampe. U slučaju zatvorene povratne sprege po brzini, regulator brzine eliminiše grešku između zadate i ostvarene brzine rotora. Ovaj regulator obezbeđuje takvu struju armature kojom se ostvaruje el. momenat čija stacionarna vrednost poništava uticaj momenta opterećenja, promene otpornosti rotora kao i promene amplitude fluksa. U stacionarnom stanju je ostvarena zadata brzina rotora refωω = . Dinamičke karakteristike ovog pogona nisu najbolje, zato što se struja ne reguliše i momenat se uspostavlja (kao i struja) eksponencijalno sa vremenskom konstantom Ta.

em au

mm− ai

- e

a

apTR

+11

fkpJ +1

fnomψ

fnomψ

ω ωreg

refω

-

Jednosmerni motor

PWMrefau

Zatvorene povratna sprega po brzini i po struji, regulator brzine eliminiše grešku između zadate i ostvarene brzine rotora zadajući odgovarajući momenat, tj struju armature. Zatvaranje strujne povratne sprege umanjuje vreme uspostavljanja zadatog momenta, uvećava dinamički propusni opseg sistema i ostvaruje pogon sa izuzetno povoljnim statičkim i dinamičkim karakteristikama.

em au

mm− ai

- e

a

apTR

+11

fkpJ +1

fnomψ

fnomψ

ωωreg

refω

-

Jednosmerni motor

PWM

refau

iregrefai

-

Page 8: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

8

2.2. Primer blok dijagrama digitalno upravljanog jednosmernog pogona

Student koji ne zna ovu ili sličnu sliku da nacrta i komentariše na ispitu, dobiće mogućnost da ovu ili sličnu sliku ponovo nacrta u toku sledećeg ispitnog roka.

3f∼

Neregulisani ispravljač Četverokvadrantni DC čoper

PWM Optičko odvajanje

SKHI21H4

Optičko odvajanje i pojačanje

pojačanje

Signal struje motora

Signal DC napona

AN1

SKHI21H4

Encoder receiver Odvajanje i prilagođenje naponski nivoa

LEM

enkoder

R1

R2

Driver za jednu granu mosta

QEA QEB

ATX ARX

dsPIC 4011

Serial driver

Veza ka PC računaru

C

Invertovanje PWM signala

PWM signal

Enkoder A Enkoder B

komparator FLTA

AN0

IMAX

trafo ~380V/~9V

Reg. napona

VSS VDD

OSC1 OSC2

OSC

Otpornički razdelnik

DCM

Slika 8. Blok dijagram regulisanog jednosmernog pogona sa DC čoperom

Zadaci mikroprocesora:

1. Akvizicija podataka. 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. Merenje struje radi zaštite i moguće regulacije. Merenje brzine motora, radi regulacije i zaštite.

2. Zaštita pogona Rad pogona je neophodno zaustaviti u slučaju prekomerne struje, brzine, u slučaju greške u naponu jednosmernog kola, prevelike temperature mosta ili motora.

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

4. Svetlosna signalizacija. Grupa LED, signalizacija rada, greške .. 5. Komunikacija sa spoljnim svetom. Na slici je prikazana serijska veza koja omogućuje

prihvatanje komandnih signala, slanje izveštaja i prikupljenih podataka. Komandni signali se mogu zadavati i lokalno, primenom tastera i/ili potenciometra!

Neophodna merenja u digitalnom pogonu jednosmernog motora:

Page 9: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

9

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 u dsPICc-u. Ovim je obezbeđena bolja kontrola momenta.

3. Merenje brzine je neophodno da bi se zatvorila povratna sprega. Ukoliko se koristi dc taho, analogni signal je neophodno odvojiti i naponski nivo prilagoditi ulaznu AD konvertora. Na slici je prikazan primer u kome se brzina meri inkrementalnim enkoderom, koji generiše dva digitalna signala A i B. Za obradu ovih signala postoji QE modul unutar uC, koji direktno izračunava brzinu. Ove signale je takođe neophodno odvojiti i prilagoditi im naponski nivo pre ulaska u dsPIC.

Odabir prekidačke frekvencije rada DC čopera (PWM signala):

1. ispunjen uslov fs >> 1/Ta, ⇒ mala talasnost struje, gubici u motoru i prekidni režim vođenja. 2. znatno veća od propusnog opsega brzinske petlje, bar 10 puta. 3. dovoljno visoka da je van slušnog opsega (fs > 16kHz) a dovoljno niska da prekidački gubici

ne budu previsoki. (Izbor fs je kompromis i zavisi od primene pogona kao i snage pogona). 4. znatno veća od rezonantnih frekvencija 5. dovoljno niska da ne uđe u opseg transportnog kašnjenja i mrtvog vremena. Ovo je nepovoljno

jer se pojavljuje nelinearnost u prenosnoj karakteristici i izobličenje struje Izbor mikrokontrolera:

1. Dovoljno brz (sistemski clock) da je moguće potrebne diskretne jednačine digitalnog zakona upravljanja izvršiti u realnom vremenu. Jednačine brzinska petlje je neophodno izvršavati svakih 20ms , jednačine strujne petlje (momenat) svakih 1ms, dok je PWM perioda 65µs.

2. Da ima ADC sa dovoljno analognih ulaza. Potrebno je meriti napon DC kola, struju armature. Ukoliko je davač brzine DC tahogenerator, tada je neophodno rezervisati jedan AD ulaz i za ovaj signal. Ukoliko se referentna brzina ne zadaje serijskom vezom, već lokalno preko potenciometra, još jedan dodatni AD ulaz je neophodan.

3. Ima PWM jedinicu sposobnu za generisanje potrebnog broja PWM signala. 4. Brojački ulaz. Ukoliko je na izlazu merača brzine digitalni signal, neophodno je da

mikrokontroler poseduje brojački ulaz, koji može da radi u counting ili capture modu. Prvi se koristi za merenje brzine na osnovu broja impulsa u toku konstantnog vremenskog intervala, drugi se može koristiti za merenje vremenskog intervala između dva pridošla impulsa. Ukoliko je merenje brzine vršeno enkoderom (kao na slici), tada je najbolje da µC poseduje enkoderski kvadraturni ulaz (QE), koji direktno obrađuje standardne A i B signale sa enkodera.

5. Dovoljno preostalih GPIO za ostale aktivnosti, LED, tasteri, upravljanje relejem, itd..

2.3. Različiti načini programskog generisanja PWM signala

2.3.1. Šta je glavni zadatak mikroprocesora pri upravljanju čoperom ?

Osnovni cilj je generisati upravljačke PWM signale (ili signal) za upravljive prekidačke elemente čopera. Ovaj signal treba da budem takav, da se ostvari željena srednja vrednost jednosmernog napona na motoru u toku jedne periode rada čopera. Za sada, pretpostavićemo da je zadat samo faktor ispune PWM signala, koji je na odgovarajući način izračunat tako da odgovara potrebnoj srednjoj vrednosti napona na izlazu čopera. Ovo poglavlje se bavi realizacijom programa koji na osnovu zadatog faktora ispune generiše potrebne upravljačke signale ka čoperu. PWM signal ćemo generisati kako na obično GPIO pinu (General Purpuse Input Output – ulaz ili izlaz opšte namene), tako i na specijalnim izlazima pridruženim dsPIC PWM modulu.

Page 10: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

10

2.3.2. PWM signal dobijen na GPIO pinu primenom jednog brojačkog modula

Ako koristimo mikrokontroler malih mogućnosti i cene, moguće je da on nema specijalnu periferiju za generisanje PWM signala, i da poseduje samo jedan brojački modul. Ovo često važi za razne PLC. U tom slučaju, blok dijagram algoritma prikazan na sledećoj slici predstavlja jedno od mogućih rešenja. Blok dijagram opisuje program za generisanje jednog PWM signala primenom samo jednog brojačkog modula, u timer režimu rada. Signal se generiše na odabranom digitalno izlazu opšte namene (GPIO).

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

Prekid Timer 1

Dozvoli i sledeći prekid Timer 1

Novi_Period=YES

Novi_Period=1

GPIO_PIN=1

TIMER_PERIOD = FAKTOR_ISPUNE

GPIO_PIN=0

TIMER_PERIOD = PWM_PERIOD-FAKTOR_ISPUNE

Čitanje novog FAKTOR_ISPUNE

Return

NO YES

Novi_Period=0 Novi_Period=1

Slika 9. Blok dijagram algoritma generisanja PWM signala sa jednim brojačkim modulom.

Najveća mana ovog pristupa je nepreciznost u definiciji ostvarenog PWM signala. Pri svakom ulasku i prekid, dolazi do određenog kašnjenja, interrupt latency, kako internog u samo hardware-u mikrokontrolera, tako i u software-u, pozivom rutina za upis registara i promenjivih na stack. Ovim dolazi do greške kako u PWM frekvenciji, tako i u ostvarenom faktoru ispune. Maksimalni (100%) i minimalni (0%) faktor ispune nisu mogući (osim ako se ne koriste dodatne intervencije u programu), jer je neophodno provesti neko vreme u prekidnoj rutini brojačkog modula. U slučaju dsPIC sa clock učestanosti od 1MHz, ako želimo generisati PWM signal 1kHz frekvencije neophodno je puniti PTMR registar timer modula prvo sa brojem X u opsegu od 0 -1000 , zatim sa 1000-X. X predstavlja brojni ekvivalent željenog faktora ispune (1 ≡ 1000).

2.3.3. PWM signal dobijen na GPIO pinu primenom dva brojačka modula

Mikroprocesor koji poseduje dva brojačka modula može generisati PWM signal sa manje greške. Sledeći blok dijagram algoritma upravo predviđa korišćenje dva brojačka modula, oba u režimu rada timer.

Page 11: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

11

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 (clock div, upis PWM perioda,

dozvola rada start)

Dozvola prekida Timer 2

Ostale aktivnosti u toku osnovne petlje (main loop). Rad sa raznim IO (display, ser. comm, tasteri..)

Prekid Timer 1

Dozvoli i sledeći prekid Timer 1

GPIO_PIN=1

TIMER1_PERIOD = PWM_PERIOD

GPIO_PIN=0

Čitanje novog FAKTOR_ISPUNE

Return

Inicijalizacija Timer 2 (clock div, upis početnog perioda)

Dozvola prekida Timer 1

TIMER2_PERIOD = FAKTOR_ISPUNE

Dozvola rada Timer 2 start

Prekid Timer 2

Dozvoli i sledeći prekid Timer 2

Return

Dozvola rada Timer 1 start

Slika 10. Blok dijagram algoritma generisanja PWM signala sa dva brojačka modula.

Ukoliko je brojački modul Timer 1 u free-run modu, on ne prestaje sa brojanjem i PWM perioda neće zavisiti od kašnjenja pri ulasku u prekid. Problem i dalje ostaje pri definisanju faktora ispune, greška i dalje ostaje. Greška napona je posebno značajna pri malim faktorima ispune, koji su uvećani usled kašnjenja negativne ivice signala. Moguće je delimično otkloniti ovaj problem tako što se pri upisu novog period za Timer 2 oduzme unapred poznato vreme kašnjenja. Naravno, ovo vreme je ponekad nemoguće tačno odrediti ukoliko postoji više izvora prekida pri radu mikrokontrolera. Takođe, i dalje je nemoguće ostvariti faktore ispune koji rezultuju uključenim stanjem manjim od ukupnog kašnjenja servisiranja prekida.

2.3.4. Generisanje PWM signala korišćenjem Motor Control modula

Sa stanovišta korisnika, najprostiji način generisanja PWM signala je primenom posebnog perifernog PWM modula. U slučaju dsPIC-a, Motor control module (MCM) je periferija upravo dizajnirana za generisanje do šest (ili do osam, zavisno od tipa) zavisnih ili nezavisnih PWM signala. Ova periferija se uglavnom koristi pri kontroli motora naizmenične struje, šest PWM izlaza se definišu kao tri komplementarna para, i svaki par se koristi za kontrolu jedne grane invertora. Za potrebe regulacije rada jednokvadratnog dc čopera, dovoljan je samo jedan PWM izlaz, direktno povezan na upravljačko kolo jedinog prekidača. Jedan PWM izlaz se može koristiti i u slučaju četverokvadratnog čopera, ali tada su neophodna dodatna logička kola za invertovanje signala.

Page 12: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

12

Da bi se Motor control module iskoristio za generisanje PWM signala, neophodno je 1. Podesiti ga (inicijalizovati) za generisanje jednog PWM signala odgovarajuće frekvencije i

polariteta izlaznog napona, 2. Za pravilno izvršenje digitalnog zakona upravljanja neophodno je menjati faktor ispune

sinhronizovano sa PWM signalom. Ovo s može omogućiti dozvolom prekida ovog modula i korišćenjem ove rutine za račun i sinhronu promenu faktora ispune.

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

Dozvola prekida MCM

Ostale aktivnosti u toku osnovne petlje (main loop). Rad sa raznim IO (display, ser. comm, tasteri..)

Prekid Motor Control module

Dozvoli i sledeći prekid MCM

Program za definisanje novog FAKTOR_ISPUNE

Return

Slika 11. Blok dijagram generisanja PWM signala primenom MCM

Signali unutar Motor Control modula i ostvareni PWM signal na izlaznom pinu dati su na sledećoj slici. Signali su dati pod pretpostavkom da je PWM perioda nepromenjena (PTPER nije menjan), dok je zadati faktor ispune promenjen u toku prve PWM periode (upis u PDC1 se desio bilo kada u toku PWM period 1). Sadržaj PDC1 se automatski prepisuje u sadržaj internog PWM1 duty cycle register sinhronizovano sa početkom nove PWM periode (signal prekida 2). Time je obezbeđena nedeljivost PWM perioda.

PWM faktor ispune

PWM period 1

PTMR

PTPER

Signali prekida sa PWM modula

PDC1

PWM signal

Automatski upisana nova vrednost iz PDC1

faktor ispune promenjen

PWM period 2

1 2 3

PWM1 duty cycle registar

Slika 12. Prikaz generisanja PWM signala unutar specijalnog PWM modula

Page 13: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

13

PWM jedinica radi u free run modu, u kome njen interni brojač broji samo ka gore. PWM period je upisan samo jednom, u toku inicijalizacije modula.

11 −=−=PWM

CLK

CLK

PWMff

TTPTPER

Primer za fclk = 8MHz

PTPER 0 32767 1000 8000 Tpwm 0 0.004095875 0.000125 0.001 fpwm ∞ 244Hz 8kHz 1kHz

PWM jedinica generiše prekid na početku svakog novog PWM perioda. Novi faktor se upravu računa u toku ove prekidne rutine, i priprema za sledeću periodu. Jednom upisana vrednost u PDC1 registar postaje aktivan tek na početku narednog PWM perioda. Ovim je realizovan digitalni odabirač na izlazu koji ne dozvoljava promenu upravljačke promenjive u toku periode rada sistema. PWM prekid se uglavnom koristi za sinhronizaciju rada digitalnog sistema upravljanja i za rad u realnom vremenu. Na početku PWM perioda se odabiraju svi signali na ulazu, potrebni za račun digitalnog zakona upravljanja, i upisuje nova vrednost upravljačke promenjive koja postaje aktivna na početku narednog perioda. Ovim je uvedeno jasno definisano transportno kašnjenje od jednog PWM perioda. U slučaju dsPIC realizacije PWM modula, moguće vrednosti faktora ispune su duplo veče u odnosu na upisanu vrednost perioda.

[ ]PTPERPDC ⋅= 201 Vrednost bitova PDC1 registra se porede sa bitovima PTPER, pomerenim za jedno mesto u levo. Vrednost LSB bita u okviru PDC1 registra definiše promenu stanja PWM signala na pozitivnu ili na negativnu ivicu clock signala. Ovim se preciznost duplira. Zašto povećavati preciznost PWM signala? Uzmimo primer 10-bitne PWM jedinice, 1024 tačke, koja treba da generiše 10 V signala, pri 340 V dc napona. Ako je vrednost PDC1 registra jednaka nuli, tada je izlaz na odgovarajućem PWM pinu neaktivna za celi PWM period. Takođe, izlaz na PWM pinu biće aktivan za ceo PWM period ako je vrednost registra PDC1 jednaka vrednosti koja se čuva u PTPER registru. Šta je dobijeno korišćenjem PWM perifernog modula ?

1. PWM signal je generisan u potpunosti hardverski i blizak je idealnom. Kašnjenje ulaska u prekidnu rutinu MCM modula postoji, ali ne remeti generisanje PWM signala!

2. Moguće je generisati PWM signal u punom opsegu. PDC1=0 daje konstantnu nulu na izlazu, PDC1>2PTPER daje konstantnu jedinicu na PWM izlazu.

3. Procesorska jedinica je u potpunosti oslobođena generisanja PWM signala i može se baviti i trošiti vreme na druge stvari.

4. Programiranje je lako. Uobičajeno da proizvođač mikroprocesora objavi softverske drajvere za svoje periferije (internet, korisničko uputstvo + CD sa primerima).

5. Motor control module poseduje dodatne funkcije koje je nemoguće realizovati softverski. Na primer:

a. Trenutni prekid PWM signala u slučaju greške. Fault shot down. Prekid je trenutan, i realizovan potpuno hardverski. Na prikazanoj slici pogona, logička nula na FLTA ulazu trenutno zaustavlja PWM signal i postavlja izlaz na neaktivno stanje.

b. Moguća je utiskivanje mrtvog vremena (deadtime) u radu dva komplementarna prekidača, funkcija od izuzetnog značaja za kontrolu naizmeničnih motora.

c. Moguće je PWM sinhronizacione impulse iskoristiti za start AD konverzije. Šta je ovde loše?

6. Mikroprocesor sa PWM jedinicom uobičajeno košta više od onog koji ne poseduje ovu periferiju ($0.5 skuplji).

Page 14: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

14

2.4. Merenje ili procena brzine rotora U većini pogona se zatvara povratna sprega po brzini i primenjuje regulator brzine. Cilj regulacije je da se obezbedi željeni karakter brzine u prelaznom režimu, velika tačnost u ustaljenom stanju kao i mala osetljivost ostvarene brzine na dejstvo poremećaja. Da bi uopšte bilo moguće regulisali brzinu motora neophodno je istu meriti ili proceniti. Signal sa davača brzine je potrebno obraditi i prilagoditi brojačkim (ili analognim) ulazima mikroprocesora. Zatim je programski potrebno postaviti signal brzine u odgovarajuću digitalnu formu, pogodnu za dalju obradu u regulacionoj strukturi tipičnog DSP koji radi sa matematikom sa nepokretnim zarezom .

2.4.1. Merenje brzine pomoću jednosmernog tahometra

Jednosmerni tahogenerator na svojim izlaznim priključcima generiše analogni signal čija je amplituda proporcionalan brzini rotora. Ovaj signal je moguće konvertovati u digitalnu reč koja predstavlja digitalni ekvivalent brzine rotora. Klasičan jednosmerni tahogenerator se danas retko koristi.

TG

ADCGain

ω VTG~ω

VREF=5V

ADC result

15 ………… 0

dsPIC

VAD

Slika 2.4.2.1 Digitalno merenje brzine primenom dc tahogeneratora

Postoji linearna srazmera između ostvarene i maksimalne brzine tahogeneratora, kao i ostvarene i maksimalne amplitude napona. Ukoliko korišćeni dc tahogenerator i AD konvertor ne poseduju značajnu nelinearnost, postoji i srazmera između maksimalnog broja i maksimalne brzine. Ukoliko je pojačavački blok podešen tako da maksimalni napon tahogeneratora dovodi do maksimalnog mogućeg napona na ulaza AD konvertora,

REFMAX

AD

MAXTG

REF

MAXTG

MAXTG

TGTG

VV

VVGain

kV

kV

⋅=→

⎪⎪⎪

⎪⎪⎪

=

⋅=

⋅=

ωωω

ω

za N bitni AD konvertor važi 12_ −= N

MAXrecdig

ωω

Ukoliko se iskoristi mogućnost automatsko pomeranje rezultata AD konverzije, dobija se ω VTG VADC ADC mod 1* ADC mod 2** ADC mod 3** 0 rpm 0V 0V 0 0 0

ωMAX VTGMAX 5V 1023 65472 (0xFFC0) 32737 (0x7FE0) ∼ 32767

Registar ADCON1, FORM 9-8 bits : 00 →mod0* 0000 00xx xxxx xxxx 10 →mod2** xxxx xxxx xx00 0000 11 →mod3*** sxxx xxxx xxx0 0000

s- znak, ovde nula

Page 15: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

15

2.4.2. Merenje brzine pomoću naizmeničnog tahometra

Naizmenični tahogenerator je jednofazni ac generator sa magnetima na rotoru koji na svojim izlaznim priključcima generiše analogni signal čija je frekvencija proporcionalna brzini rotora. Ovu frekvenciju je moguće meriti i na taj način dobiti digitalni ekvivalent brzine rotora

TG NF Filter

fTG~ω T2CLK

TMR2 +

-

dsPIC

Slika 2.4.2.2 Digitalno merenje brzine primenom ac tahogeneratora

Pored frekvencije, i amplituda generisanog ac signala raste sa promenom brzine. Ovakav signal se ne može dovoditi direktno na priključke mikrokontrolera i neophodno ga je prvo filtrirati i uravnotežiti njegovu amplitudu. Ovo se postiže prostim RC kolom čije je slabljenje signala sa porastom frekvencije proporcionalno porastu amplitude signala na izlazu ac tahometra sa povećanjem brzine. Rezultat je ac signal konstante amplitude u celom opsegu brzina koji se dalje dovodi na ulaz komparatora na dalju obradu. Komparator vrši poređenje prostoperiodičnog signala sa nulom i na izlazu proizvodi pravougaonu povorku čija je frekvencija proporcionalna brzini rotora:

)(60

)( rpmnnp

Hzf TGTG =

gde je npTG broj pari polova tahogeneratora (uobičajeno 8, 16 ) A) Prvi način merenja brzine je brojanje broja pristiglih impulsa u toku jedne periode merenja brzine. Na slici je prikazana povorka od N impulsa pridošla u vremenskom intervalu T.

1 2 N

nT(n-1)T t Ukoliko se ova povorka dovede na ulaz brojačke periferije, koja se podesi na counter mod rada, rezultujuća vrednost u brojačkom registru nakon T vremena iznosiće

)(60

2 rpmnfnp

ff

TMRmerenja

TG

merenja

TG ==

Primer: Za ac tahogenerator sa 8 pari polova (npTG=8) i 100 ms periodu merenja brzine, broj pristiglih impulsa kao i greška brzine usled jednog izgubljenog taho impulsa (neobuhvaćen u toj periodi) impulsa su dati u sledećoj tabeli

Brzina vratila TMPR2 Greška brzine usled usled ±1 tacho impuls 100 rpm 1.33 75 rpm 3000 rpm 40 75 rpm

Greška je prevelika i ovako ne možemo da radimo. Moguće je dalje povećati broj polova tahogeneratora, ili značajno produžiti perioda odabiranja. Oba rešenja nisu praktična.

Page 16: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

16

B) Drugi način merenja brzine je merenje vremena između dva pridošla impulsa Na slici su prikazana dva impulsa sa tahogeneratora i intervali clock signala brojačkog modula koji će biti iskorišćen za merenje vremena

1 2

t TTG~ 1/fTG

TCLK

Ovu povorku impulsa treba dovesti na ulaz brojačke periferije koja radi u capture modu, modu za ‘hvatanje’ vremena između dve ivice impulsa. Brojački registar se automatski resetuje po dolasku prvog impulsa i ukoliko periferija radi sa fCLK po dolasku drugog impulsa u brojačkom registru imamo

)(160

2rpmnnp

ff

fTT

TMRTG

CLK

TG

CLK

CLK

TG⋅

⋅===

Ukoliko brojačka periferija ne poseduje capture mod, neophodno je generisati spoljni prekid pri svakoj ivici impulsa i iskoristiti jedan od brojački modula za merenje vremena između dva prekida. Primer: Za ac tahogenerator sa 8 pari polova (npTG=8), brojački modul sa fCLK = 8MHz timer, 100 ms periodu merenja brzine, broj pristiglih impulsa kao i greška brzine usled jednog izgubljenog clock impulsa (neobuhvaćen u toj periodi) su dati u sledećoj tabeli.

Brzina vratila TMPR2 greška 100 rpm 4800000 2.08 e-7

3000 rpm 20000 0.00005 30000 rpm 2000 0.0005

Ovde je preciznost odlična, ali treba i dalje paziti

• Brojač mora biti 32 –bitni • Treba vršiti operaciju deljenja ! • Dolazak informacije o brzini nije u sinhronizmu sa periodom regulacione petlje brzine • Pri uvećanju brzine apsolutna preciznost se umanjuje ali značajna nam je relativna koja ostaje

ista. Ovo je jedino pravo rešenje za ac tahometar.

2.4.3. Merenje položaja i procena brzine pomoću optičkog enkodera

Optički inkrementalni enkoder se često primenjuje za merenje rotora položaja. Princip rada je dat na sledećoj slici.

Page 17: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

17

Optičkom enkoderu je neophodno spoljno napajanje. Izlaz inkrementalnog enkodera su tri signala A, B i Index. A signal je pravougaoni signal čiji su inkrementi proporcionalni promeni položaja, B signal je isto što i A samo pomeren za T/4 i služi za detekciju smera kao i za uvećanje rezolucije brojanja. Index signal služi za dobijanja apsolutne pozicije i aktivan je jednom u celom krugu. Pojedini enkoderi imaju duplo više izlaza, tako što svaki signal ima i svoj komplementarni par. Time se mogu koristiti diferencijalni enkoder drajveri i uvećava se otpornost na uticaj šuma.

A

B

Index

Slika. Izlazi optičkog enkodera

Osnovni parametar inkrementalnog enkodera je broj impulsa po jednom mehaničkom obrtaju. Položaj osovine motora pomoću enkodera dobijamo u formi broja

Nn

m πθ 2=

N – rezolucija pri merenju položaja osovine (broj impulsa u punom krugu, 512,1024, 2048, 5000). n – broj prebrojanih impulsa u određenom vremenskom intervalu. Ovaj broj ujedno predstavlja brojnu vrednost ugla. Ukoliko se izbroji N impulsa, napravljen je pun krug. Veza između ugla u radijanima, i brojčane vrednosti ugla glasi

Nn

Nbrojrad

==)(

2)( θ

πθ

Enkoder ima dve faze (A i B) i detekcijom pozitivnih i negativnih ivica je moguće četiri puta uvećati rezoluciju merenja položaja. Četiri puta veće preciznost i detekcija smera se dobijaju na sledeći način UP = A↑·B+ A·B↑ + A↓·B+A·B↓ DOWN = A↑·B+ A·B↑ + A↓·B+A·B↓ UP signal postoji samo pri jednom smeru, DOWN samo pri drugom smeru (kada B prednjači A). U tom slučaju važi

θ∆πθ nNn

m ==4

2

Mogući brojni opsezi signala pozicije dati su na sledećoj slici.

t

θ(rad) θenc(broj)

N

0

0

N/2 π

θDSP(broj)

0xFFFF

0

0x7FFF

4N

0

2N

Pri praktičnoj realizaciji merenja položaja primenom inkrementalnog enkodera treba koristiti brojački modul sa bazom (period registrom) jednakom broju impulsa po obrtaju. Na taj način, sadržaj brojača u svakom trenutku predstavlja brojni ekvivalent ugaonog položaja rotora od 0 do 2π. Mikrokontroler sada može u trenucima odabiranja da očita sadržaj brojača i dobije podatak o trenutnoj poziciji rotora. Inkrementalni enkoder daje relativno veliki broj impulsa po obrtaju što u velikom opsegu brzina omogućuje dovoljno preciznu procenu brzine rotora na osnovu broja impulsa nadošlih u toku fiksnog vremenskog perioda.

Page 18: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

18

Svaki novodošli impuls predstavlja pomeraj od ∆θ. Ukupan ugaoni pomeraj u periodi T, između trenutaka k i k-1, se računa korišćenjem ukupnog broja pridošlih impulsa.

radN

iliradN

nkk422)1()( ππθ∆θ∆θθ ===−−

Pošto u digitalnom sistemu ne poznajemo vrednost položaja između dva trenutka odabiranja, srednja vrednost brzine rotora između dva trenutka odabiranja se mora računati aproksimacijom

[ ][ ]sTradn

Tkk

dtdsrad θ∆θθθω =

−−≈=

)1()()/(

S druge strane, brojna promena ugla u jednoj periodi T, koju poseduje DSP, jeste proporcionalna promeni ugla u radijanima i samim tim i srednjoj vrednosti brzine motora. Ako brojnu vrednost promenu ugla iskoristimo za račun srednje brzine,

)()()( 1 brojbrojbroj kk −−= θθω kakav je odnos toga broja sa stvarnom brzinom?

)(42)(

42)()(

42)()(

)/( 11 brojNT

brojNTT

brojbrojNT

radradsrad k

kkkk ωπθπθθπθθω ==∆=

−=

−= −−

Sada je neophodno uskladiti brojne opsege referentne i merene brzine rotora. Pošto se referentna brzina zadaje off-line, u cilju uštedu procesorskog vremena nju treba prebaciti u brojni opseg merene brzine.

min)/(60

)(260

2)/(2

)( onNTrpmnNTsradNTbroj refrefrefref ===π

πωπ

ω

( ) ( ) ( ) min)/(

604)(

24

602)/(

24)( onTNrpmnTNsradTNbroj refrefrefref ===

ππω

πω

Primer: Ukoliko je N =512*4 uz T = 10ms, da bi ostvarila brzina od 1000 rpm, treba zadati ≈ 683.

Ukoliko je N =512*4, uz T = 1ms, da bi ostvarila brzina od 1000 rpm, treba zadati ≈68. ⇒ Prikazana metoda loše radi ukoliko pristiže nedovoljan broj impulsa!

• Metoda je vrlo neprecizna za male brzine. • Rezolucija opada sa smanjenjem periode merenja brzine!

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, • Observer brzine, • Kombinovana metoda (najbolje rešenje),

• Jedna metoda za velike brzine, druga metoda za male brzine

• određivanje brzine merenjem broja impulsa n u vremenskom intervalu T; broj impulsa enkodera po jednom obrtaju je N:

nTN

on 60min]/[ =

• određivanje brzine merenjem vremena ∆Ti proteklog između dva uzastopna impulsa

iTNon

∆60min]/[ =

Page 19: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

19

• kombinaciona metoda. Potrebno je izmeriti broj impulsa enkodera u intervalu odabiranja, vreme proteklo od početka intervala do pojave prvog impulsa i vreme proteklo od poslednjeg impulsa do kraja intervala. Na taj način je moguće odrediti srednju širinu impulsa sa znatno većom tačnošću nego u slučaju kad se meri širina jednog impulsa. Neophodno je imati barem dva impulsa u jednom periodu.

2.5. Merenje i procesiranje ostalih relevantnih signala u pogonu

2.5.1. Merenje struje armature

Struja u većini pogona teče u oba smera, iz tog razloga je treba meriti bipolarnim davačima (senzorima) i procesirati kao bipolaran signal. Takođe, u okviru DSP treba predvideti i odgovarajući numerički opseg signala struje sa promenom znaka. Struja se može meriti LEM sondom, koja na izlazu daje ±VLEM

MAX za ±IMAX (GLEM= VLEMMAX/ IMAX), ili strujnim šantom, koji daje ±Rsh ·IMAX za ±IMAX . Sa

druge strane, ulaz internog DSP AD konvertora je uvek unipolaran, od 0 do VDD. Da bi se maksimalno iskoristio merni opseg potrebno je signal sa senzora primenom operacionog

pojačavača prevesti u opseg od 0-VADREF. U većini DSP, VAD

REF=VDD, gde je VDD napon napajanja. • Operacioni pojačavač za pojačanje strujnog signala mora biti podešen tako da ima izlazni

ofset, koji iznosi polovinu mernog opsega AD konvertora pri nultoj struji.

VVOFFSETAMPREFAD 5.22

_ ==

U slučaju novih DSP koji rade sa napajanjem od 3.3, ofset mora biti podešen na 3.3V/2 = 1.65V. Najbolje je naponski ofset pojačavača praviti na osnovu referentnog napona AD konvertora, ako je isti na raspolaganju van DSP.

• Pojačanje operacionog pojačavača treba podesiti tako da signal struje ±IMAX ulazi u 0 - 5V

opseg na ulazu AD konvertora . Primer 1kW invertora sa šantom u jednosmernom međukolu. Postavljen je ΩmRshunt 60= za

struju od AI MAXDC 4.7±=± . Pojačanje neizolovanog operacionog pojačavača treba da glasi

63.52

=⋅⋅

= MAXDCshunt

REFAD

AMPIR

VG

Za LEM koji radi ima izlaz ±VLEMMAX

63.52

=⋅

= MAXLEM

REFAD

AMPV

VG

Pojačanje i nula ofset diferencijalnog operacionog pojačavača definišu otpornici u povratnoj sprezi. Njih treba birati sa 1% tolerancije. Ipak, kalibracija na fabričkoj liniji, kao i dodatno podešavanje nula ofseta kada pogon ne radi, je toplo preporučljiva.

Broj u AD konvertoru, koji predstavlja struju međukola, se može izraziti kao:

[ ] REFAD

REFAD

ALEMAMPREFAD

IN

VxFFCVAIGGxFFF

VVNUMBERADC 00

200_ ⋅⎟

⎟⎠

⎞⎜⎜⎝

⎛+⋅⋅=⋅=

Broj 0xFFC0 (65472) je maksimum opsega i dobijen je pod pretpostavkom da je AD 10-bitni i da radi u modu 2, u kome rezu1tat automatski pomera 6 bita ulevo uz donjih šest LSB jednaka 0. Usled pravilno podešenog ukupnog pojačanja operacionog pojačavača

[ ] [ ] [ ]MAX

AREFAD

AMAXLEM

REFAD

MAX

MAXLEM

AAMPLEM IAIVAI

VV

IVAIGG

22=⎟

⎟⎠

⎞⎜⎜⎝

⋅⎟⎟⎠

⎞⎜⎜⎝

⎛=

Page 20: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

20

sada dobijamo [ ]

REFAD

REFAD

REFAD

MAX

A

VVV

IAINUMBERADC 65472

22_ ⋅⎟

⎟⎠

⎞⎜⎜⎝

⎛+=

i konačno ADC rezultat je u opsegu 0 – 0xFFF0, za ceo opseg struje od ±IMAX.

[ ] 3273632736_ +⋅=MAX

AI

AINUMBERADC

Usled greške u otpornicima, ofset ne mora biti tačno polovina. Ovo se može rešiti tako što se broj 32736 zameni primenjivom koja se povremeno kalibriše kada pogon ne radi. Kada je rezultat AD konverzije spreman i pomeren za 4 bita ulevo, ostaje nam da eliminišemo ofset i time unipolaran pozitivan rezultat prebacimo u bipolaran opseg. Nakon:

( ) )32736(__ ≈−= OFFSETADCNUMBERADCkTI Dobijamo bipolarni strujni signal čija veza sa stvarnom merenom strujom glasi

( ) [ ] [ ] MAXMAXAMAX

A IIAII

AIkTI +−∈⋅= ,32736

Za signal struje unutar DSP važi

Struja ADC rezultat Broj u DSP Značenje u 1.15 formatu

+IMAX 0xFFC0 0x7FE0 približno +1

-IMAX 0x0000 0x8020 približno -1 čime je postavljen osnov za rad u relativnim jedinicama. Celokupna struktura procesiranja signala struja data je na sledećoj slici

± IMAX

± VLEM

OP AD

dsPIC

VOFSET

0xFFC0 0x0000

+ -

0x7FE0 (OFSET)

0x7FE0 0x8020

0, VADREF

I(kT)

L E M

VADREF

Gore izvršena analiza ne zavisi od načina na koji je izvršeno galvansko odvajanje signala struje. Ovo odvajanje je obično potrebno, pogotovo ako se koristi merni strujni šant. U slučaju dodatnog kola za galvansku izolaciju, njegovo pojačanje je neophodno uključiti u analizu i korigovati pojačanje operacionog pojačavača.

2.5.2. Merenje napona jednosmernog međukola Napon jednosmernog kola merimo pod pretpostavkom da je uvek pozitivan, i da ima svoju maksimalnu vrednost. Maksimalna merljiva vrednost ovog napona mora biti veća od očekivane pri tolerisanom porastu napona mreže, uobičajeno +10%. Maksimalna merljiva vrednost napona jednosmernog kola sa jedne strane zavisi od željene preciznosti, a sa druge strane od tolerancije rasta ovog napona u toku rekuperacije koja zavisi od naponske margine kako korišćenih kapaciteta, tako i prekidačkih elemenata.

Page 21: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

21

Može se zaključiti da napon jednosmernog međukola mora biti moguće meriti barem do 400V, u slučaju jednofaznog ulaza (230V*1.1*1.41 < 400V). Mi možemo usvojiti 400V za maksimalnu merljivu vrednost napona jednosmernog međukola, s time da naponi preko te vrednosti neće biti merljivi i moraju voditi ka grešci i isključenju pogona. U praktičnoj primeni pogona, usvaja se maksimalni merljivi napon jednosmernog kola i do 40% veći od onog predviđenog porastom napona mreže. Time se ostavlja mogućnost kratkotrajnog porasta u toku režima rad kočenja, kao i pri uvećanom mernom šumu. Uzmimo na primer razdelnik napona sa dva 221k otpornika i potenciometrom podešenim na 3.7k. Ovim se dobija pojačanje 120 (1/0.0083). Maksimalni merljivi napon je time postavljen na vrednost 600V. Napon na ulazu AD je u opsegu 0- 5V.

)()(7.3442

7.3_ VV

VVVV

kkkV DCMAX

DC

REFAD

DCINADC =⋅+

=

Napon na ulazu AD konvertora se dalje pretvara u broj i dobija se

0000100)( _ xFFCVVxFFCV

VV

VxFFC

V

VbrojV MAX

DC

DCDCMAX

DC

REFAD

REFAD

REFAD

INADCADC ⋅=⋅⎟

⎟⎠

⎞⎜⎜⎝

⎛⋅⋅=⋅⋅=

Nama je cilj da je maksimalni napon jednak broju jedan, u 1.15 formatu, a to je 32767 (ili blizak njemu). Za to je neophodan pomeraj rezultata za jedan bit udesno.

327362

001)()( ⋅=⋅=>>= MAXDC

DCMAXDC

DCADCDC

VVxFFC

VVbrojVbrojV

Ovim je i naponski signal predstavljen u relativnim jedinicama, Vbase =VDC

MAX.

base

DCDC V

VVupV )(.).( =

Sada važi:

napon ADC rezultat Broj u DSP Značenje u 1.15 formatu

+VMAX 0xFFC0 0x7FE0 približno +1

0 0 0 0 Ukupna šema procesiranja signala napona jednosmernog međukola data je na sledećoj slici.

AD

dsPIC

0xFFC0 0x0000

0, VDCMAX

VDC(kT)

0, VADREF

Shift >> 1

0x7FE0 0x0000

VDC(t)

R1

R2

U ovoj analizi je zanemareno kolo za galvansko odvajanje signala. Ukoliko postoji, ulazni naponski opseg ovog kola, kao i njegovo pojačanje (odnos Vout/Vin), se mora uzeti u obzir prilikom odabira otporničkog razdelnika kao i eventualnog dodatnog pojačavača nakon kola za odvajanje. Cilj i dalje ostaje isti, VDC

MAX mora rezultovati u VADREF na ulazu AD konvertora radi maksimalne preciznosti

merenja.

Page 22: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

22

2.6. Digitalno upravljanje DC motorom u zatvorenoj povratnoj sprezi po brzini

2.6.1. Šta je cilj ? U većini pogona se zatvara povratna sprega po brzini i primenjuje regulator brzine. Cilj regulatora je da obezbedi potreban kvalitet upravljanja brzinom električne mašine u svim radnim režimima. Pod time se podrazumeva upravljanje koje obezbeđuje željeni karakter brzine u prelaznom režimu, veliku tačnost u ustaljenom stanju kao i malu osetljivost ostvarene brzine na dejstvo poremećaja. Za kvalitetnu regulaciju brzine mašine neophodno je

• obezbediti linearnu promenu momenta na motoru. U slučaju jednosmernog pogona to je zadatak PWM modula. U tom slučaju se može dalje optimalno primeniti linearni regulator.

• Meriti ili proceniti brzinu mašine • Realizovati digitalni zakon upravljanja • Podesiti parametre zakona upravljanja u skladu sa željenim odzivom i parametrima objekta

DSP poseduje signal brzine u odgovarajućoj digitalnoj formi. Ovaj signal se dalje vodi na ulaz digitalnog regulatora, gde se poredi sa referentnim brojem zadatim u istom brojnom opsegu. Konačno, digitalni regulator upravlja izlaznim naponom tako da se anulira signal greške na njegovom ulazu. Digitalni regulator upravlja izlaznim naponom preko PWM drajvera, kome zadaje referentni faktor ispune PWM signala. U složenijoj varijanti upravljanja (koja ovde nije obrađena) , digitalni regulator brzine zadaje brojčanu vrednost referentnog momenta, koji se realizuje na motoru primenom dodatnog strujnog regulatora. U ovom slučaju dodatni digitalni strujni regulator kontrolom faktora ispune postavlja signal greške struje na nulu. Naravno, u ovom slučaju je pored signala brzine posedovati i digitalnu vrednost signala struje armature unutar DSP.

2.6.2. Digitalni PI regulator brzine u pozicionoj i inkrementalnoj formi

Digitalni regulator brzine na svom ulazu ima zadatu i ostvarenu vrednost brzine. Na osnovu ova dva signala se dobija signal greške koji se dalje uvodi u regulator.

BRZINAREFBRZINAerr −= _ Signal greške je diskretizovan kako po amplitudi, tako i po vremenu i za njegovu dalju obradu treba koristiti diskretnu verziju proporcionalno integralnog regulatora. Tipična forma linearnog regulatora sa proporcionalnim i integralnim članom glasi,

errs

KKoutA

iAp ⎟

⎟⎠

⎞⎜⎜⎝

⎛+=

Nju možemo diskretizovati primenom Euler aproksimacije, zamenom s = (1-z-1)/T.

errz

KerrKout ip 11 −−

+=

uz TKKKK A

iiA

pp == Ovo je poziciona forma regulatora. Poziciona forma digitalnog PI regulatora se računa unutar DSP korišćenjem sledećih diskretnih jednačina:

)()()()()()(

kTerrKkTIkToutkTerrKTkTIkTI

p

i

+=+−=

Kao što se vidi, prvo je izračunat integralni deo regulatora. Integral se svodi na sumiranje signala greške skalirano za Ki. Zatim, nova vrednost izlaza se računa kao zbir integralne sume i trenutnog proporcionalnog dejstva. Osnovni problem ovog pristupa nastaje prilikom nelinearnog rada regulatora, kada je izlaz regulatora u svom limitu. Pri velikom signalu greške izlaz regulatora trenutno dostiže limit

Page 23: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

23

(na primer, nagli skok zadate brzine izaziva pun napon na izlazu) ali integralna suma i dalje sumira signal greške i može ga akumulisati i preko limita. Sada regulator više nije u mogućnosti da reaguje na negativnu vrednost greške, mora prvo da vrati integralnu sumu ispod limita. To se zove navijanje regulatora (wind-up) Inkrementalna forma PI regulatora se dobija iz osnovne diskretne forme:

errKerrzKzout ip +−=− −− )1()1( 11 ili

[ ]errKzKoutzout ip +−+= −− )1( 11 Inkrementalna forma digitalnog PI regulatora se računa korišćenjem sledećih diskretnih jednačina:

[ ])()()(

)()()()(

kTInckToutkTout

kTerrKTkTerrkTerrKkTInc ip

+=

+−−=

Prvo se računa inkrementalni deo celokupne PI akcije (Inc), zatim se taj deo dodaje ukupnoj akumulisanoj sumi na izlazu (Out+Inc). Implementacija limita regulatora je sada jednostavna, samo se limitira izlazna suma.

LOWLOW

HIGHHIGH

LIMITkToutLIMITkToutif

LIMITkToutLIMITkToutif

kTInckToutkTout

=<

=>

+=

)()(

)()(

)()()(

Sledi grupa diskretnih jednačina regulatora brzine DC motora. Primer je za jednokvadrantnim čoper, brzina motora se direktno reguliše naponom (faktorom ispune), bez unutrašnje strujne petlje i bez kompenzacije napona jednosmernog međukola.

[ ]

0)(_0)(__)(__)(_

)()(_)(_

)()()()(_

=<=>

+=

+−−=−=

kTISPUNEFAKTORkTISPUNEFAKTORifPERIODPWMkTISPUNEFAKTORPERIODPWMkTISPUNEFAKTORif

kTInckTISPUNEFAKTORkTISPUNEFAKTOR

kTerrKTkTerrkTerrKkTIncBRZINAREFBRZINAerr

ip ωω

Struktura regulatora je prikazana na sledećoj slici.

Kpω

z-1

+ -

Kiω

+ -

ωRREF

ωR +

+ +

+

V_MAX

V MIN

z-1

VaREF

Slika 13. Digitalni PI regulator u inkrementalnoj formi

Prikazani regulator je u inkrementalnoj formi sa proporcionalnim dejstvom u direktnoj grani. Moguće poboljšanje je premeštanje proporcionalnog dejstva u lokalnu povratnu spregu.

Page 24: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

24

2.6.3. Blok dijagram algoritma upravljanja DC motorom

Na slici je dat pojednostavljeni blok dijagram algoritma za upravljanje brzinom jednosmernog motora regulacijom napona armature.

PWM signal frekvencije 16kHz se generiše unutar Motor Control Modula. Sam PWM prekid nije dozvoljen jer nema potrebe za merenjem struje, niti za računom brzinske petlje toliko brzo. Generiše se samo jedan PWM izlaz.

Brojački modul Timer1 je iskorišćen za definisanje periode odabiranja brzinske petlje. On je podešen da daje prekid po isteku 1ms perioda. Prekid je dozvoljen i u ovoj prekidnoj rutine se vrši sinhronizovano čitanje brzine i njene zadate vrednosti, račun digitalnog zakona upravljanja i definisanje novog faktora ispune. Novi PWM faktora ispune postaje aktivan sa prvom sledećom PWM periodom i ostaje važeći tokom sledećih 1 ms.

Blok dijagram algoritma se sastoji iz tri osnovna dela, a. Inicijalizacije nakon DSP reseta. Ovde je bitno dobro inicijalizovati Motor Control

Moduli koji će omogućiti PWM izlaz kao i inicijalizovati Timer 1 koji nam obezbeđuje periodu odabiranja brzinske petlje.

b. Glavni program (mainloop) koji se bavi ostalim stvarima u pogonu. c. Prekid Timer1 koji se dešava svakih 1ms i u kojem se čitaju sve veličine, rešava PI

regulator brzine i definiše novi odgovarajući faktor ispune.

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

Dozvola prekida Timer 1

Ostale aktivnosti u toku osnovne petlje (main loop). Rad sa raznim IO (display, ser. comm, tasteri..)

Prekid Timer 1

Dozvoli i sledeći prekid Timer1

Upis novog faktora ispune PDC1=FAKTOR_ISPUNE

Return

Čitanje ADC DC napon, struja armature

Kontrola rampe referentne brzine

PI regulator brzine

Čitanje brzine sa DC tachometra

Inicijalizacija Timer 1 (clock div, upis PWM perioda,

dozvola rada start)

Slika 14. Pojednostavljeni blok-dijagram programa za regulaciju brzine jednosmernog motora

Page 25: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

25

2.6.4. Opis C koda - za regulaciju brzine DC motora

Kod za regulaciju brzine jednosmernog motora je napisan u skladu sa blok dijagramom algoritma opisanim u prethodnom poglavlju. One se može podeliti na četiri osnovna dela (deo inicijalizacije podeljen na dva dela). (1) kod za inicijalizaciju µC (startup code). Po resetu se izvršava ovaj deo koda. U njemu je neophodno podesiti rad µC i svih potrebnih periferija. U ovom delu koda pozivaju se programi za

1. inicijalizaciju (podešavanje) sistemskih modula (clock divider, FLASH memory , watchdog ... ) 2. inicijalizaciju perifernih modula (ADC, PWM module, UART, Encoder interface, Timer...), 3. inicijalizaciju globalnih programskih promenjivih,

Kada je sve podešeno, dozvoljavaju se potrebni prekidi i ulazi u mainloop.

(2) Podešavanje rutina za inicijalizaciju pojedinih periferija Uobičajeno u posebnim datotekama. Svaka periferija ima svoju rutinu za podešavanje (init. routine). U zavisnosti od toga koja nam periferija treba, UARTinit(), PWMinit(), TimerInit(), QEIinit() ili druge će biti pozivane od strane koda za inicijalizaciju. Ovde treba znati šta nam koja periferija radi. Na primer, u slučaju Motor Control Module, potreban nam je jedan PWM izlaz, Free Run mod rada, PWM perioda koja daje 16kHz i tako dalje. Sve to možemo podesiti u PWMinit(). (3) osnovna petlja (mainloop). Počinje da se izvršava nakon izvršenja koda za inicijalizaciju. U osnovnoj petlji se izvršavaju programski zadaci za koje nije kritičan početak, kao ni vreme izvršenja

1. rad sa displejima (ljudsko oko je tromo), 2. rad sa tastaturom(ljudi kucaju sporo), 3. rad sa potenciometrom za unos nove brzine ili nekog limita (promena spora), 4. proračun temperature motora (neće se ona brzo menjati) 5. rad sa sporom serijskom vezom ....

(4) Prekidna rutina Timer 1 (period od 1 ms).

Ova prekidna rutina je glavna programska celina ovako osmišljenog programa. U ovoj prekidnoj rutini se izvršavaju svi zadaci koje je neophodno sinhronizovati sa periodom upravljanja digitalnog sistema upravljanja. Svake 1ms je neophodno

1. pročitati sve za račun potrebne analogne ulaze, na primer odbirke struje i napona međukola, 2. izračunati novu vrednost brzine rotora. Način zavisi od tipa senzora. 3. izračunati potreban digitalni zakon upravljanja brzinom u cilju definisanja novog faktora

ispune. Limitirati izlaz ako treba. 4. upisivanje novog faktora ispune koji se aktivira u novoj PWM periodi i ostaje aktivan tokom

sledećih 1ms

2.6.5. C kod za regulaciju brzine DC motora

U ovom poglavlju je dat C kod za regulaciju brzine jednosmernog motora. Dati program nije potpun, detaljan program je na raspolaganju tokom vežbi u laboratoriji. U kodu nedostaju detalji inicijalizacije enkoderskog modula (QE), i inicijalizacija timer 1, ali niko nije savršen, a ova skripta to svakako nije.

(1) kod za inicijalizaciju µC (startup code) i (3) osnovna petlja (main).

Mehanizam za izvršenje C koda uvek prvo poziva main funkciju. U njen početak treba postaviti kod koji treba da se izvršava odmah nakon reseta DSP.

Page 26: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

26

Ipak, važno je razumeti da C kod pre izvršenja zahteva određena podešavanja i nikad nije prvi pozvan nakon reseta. Po resetu, DSP prvo poziva asemblerski startup kod, koji se linkuje na mesto reset vektora i koji podešava sve potrebne uslove za rad C koda. Na primer, memoriju, stek, upisuje brojeve u inicijalizovane C promenjive, upisuje nule u one koje nisu inicijalizovane, i tako dalje. Na kraju ovaj asemblerski kod ima skok lcall _main i main sada postaje glavna faca i vodi stvar.

int main(void) // lokalne promenjive korišćene u osnovnoj petlji unsigned int buffer[5]; // buffer ili niz za cuvanje naredbe sa serijske veze int ser_veza; // privremeno cuvanje nove reference brzine pristigle sa serijske veze // Inicijalizacija korišćenih perifernih modula

ADPCFG = 0xFFFC; // PORTB je mulipleksiran sa AD. Svi pinovi GPIO, AD su RB0,RB1 UARTinit(); // podešavanje parametara serijske veze u UART perif. modulu PWMinit(); // podešavanje PWM signala u MCM perif. modulu TimerInit(); // podešavanje korišćenog Timer1-a QEIinit(); // podešavanje enkoder periferije, za merenje brzine TRISE=0xFFC0; // iskreno, blage veze nemam, pitati Porobica, posle reci i meni. Objasniti // mi polako, imati strpljenja // Inicijalizacija regulatora brzine ref_brzina =0; // referentna brzina je zasad nula (vazno!, da motor ne potrci po resetu) Ref_napon=0; // resetuje se suma PI regulatora i resetuje se prethodna greška.

SpeedErr_old=0; // Ove dve promenjive je neophodno resetovati ne samo ovde // već pre svakog starta, inače one zadržavaju ne-nula vrednost nagomilanu // tokom prethodnog rada pogona. Vazno! // main petlja, izvršava se u pozadini, dok ona radi, cekamo Timer 1 prekid. while (1) putsUART1 ((unsigned int *)Txdata); // konstantno šalje odabrane podatke ka PC-u

if(getsUART1(4, buffer, 65535)) // ako je primljena kompletna poruka sa PC-a

ser_veza=convert(buffer); // obradi je. U ovom slučaju, uzmi novu referencu ref_brzina=ser_veza; // beskonačna petlja // oznacava kraj main funkcije

(2) Podešavanje rutina za inicijalizaciju pojedinih periferija

Svaka rutina se podešava u okviru svoje init datoteke. Ovde je kao primer priložena uprošćena PWMinit() funkcija koja podešava Motor Control Module.

#define PWM_PERIOD 1000 // vrednost za frekv. od 16kHZ, clock frequency 16MHz (16MIPS-a) void PWMinit() IEC2bits.PWMIE = 0; // PWM prekid se neće koristiti , zabrani ga IEC2bits.FLTAIE = 0; // ovo nije dobro (zabranjen je trenutni PWM FAULT ulaz), mada jeste // logično ako ga HW ne podržava (nema komparatora) PTPER = PWM_PERIOD; // vrednost za frekv. od 16kHZ, clock frequency 16MHz (16MIPS-a) SEVTCMP = 0; DTCON1=0; // specijalni compare event, deadtime - nebitno za chopper FLTACON=0; // strujna greška se ne vodi na ulaz uC pa ni ovaj nema smisla konfig. PWMCON1 = PWM_MOD1_COMP & // komplementarni mod rada PWM para 1 PWM_MOD2_COMP & // komplementarni mod rada PWM para 2 PWM_PEN1H & // 4 GPIO definisani da rade kao PWM PWM_PEN1L & // napomena ovde je ostvaren prostor za 4 PWM PWM_PEN2H & // komplementarna izlaza, prototip koristi samo PWM_PEN2L; // jedan PWM i komplementiranje rešava sa HW

Page 27: Primena mikroprocesora u energetici - Pogoni jednosmerne struje -

Primena mikroprocesora u energetici – Digitalno upravljani pogoni jednosmerne struje

27

PWMCON2 =PWM_SEVOPS1 & // nebitno PWM_OSYNC_PWM & // PWM reg update (upis) sync. sa PWM prekidom PWM_UEN; // PWM reg update dozvoljen

PTCON = PWM_EN & // dozvola rada PWM modula PWM_IDLE_STOP & // konfig. za IDLE mod, nebitno PWM_OP_SCALE1 & // 0000- svaki PWM period izaziva prekid PWM_IPCLK_SCALE1 & // PWM timer clock jednak je systemskom clock-u PWM_MOD_FREE; // mode rada je Free Run OVDCONbits.POVD1L=1; // selekcija pina da bude kontrolisan od strane PWM jedinice (4) Prekidna rutina Timer 1

Izvršenje ovog dela koda se izvršava automatski, svakih 1ms po prekidu generisanom od strane periferije Timer1, Ovim se prekida osnovna petlja, trenutna PC adresa i relevantne memorijske lokacije se postavljaju na stek, i počinje izvršavanje C koda ove prekidne rutine. Napomena: PI regulator u primeru poseduje aritmetiku sa pokretnim zarezom (float), rešenje dobro za jasan prikaz studentima, ali veoma nepraktično jer se sporo izvršava. Slede globalne promenjive koriščene u ovoj prekidnoj rutini. Njih treba staviti na početak datoteke, pre tela funkcije, i time postaju globalne i vidljive od strane ostalih modula.

Globalne promenjive korišćene u prekidnoj rutine float Kiv = 0.1; // parametri regulatora i njegov izlaz su floating point brojevi. float Kpv= 2.1; // to je lepo ali nepraktično rešenje, program se jako sporo izvršava! float Ref_Napon; // Sada se i izlaz reg. mora pamtiti kao broj sa pokretnim zarezom. int PWMDutyCycle; // faktor ispune mora biti int tipa, bez decimala int SpeedErr_old; // speed_err iz prethodnog PWM perioda

Prekidna rutina Timer1, (interrupt service routine)

void __attribute__((__interrupt__)) _T1Interrupt(void) int brzina ; // lokalne promenjive korišćene u prekidnoj rutini

float Inc; // inkrementalni deo PI regulatora // Citanje brzine brzina=(int)POSCNT; // čitanje brzine sa enkoderske periferije . Periferija je podešena u QE

// modu i POSCNT counter broji ka gore za jedan smer, dole za drugi POSCNT=0; // Resetujemo POSCNT i on će u sledećem ulasku u prekid sadržati broj // u prethodnom periodu nadošlih impulsa, koji je proporcionalan brzini. //Digitalni regulator brzine u inkrementalnoj formi – racun referentnog napona za 4kvadratni coper (+, -) SpeedErr=ref_brzina - brzina; // 1) prvo se definiše inkrementalni deo zakona upravljanja

Inc = Kiv * SpeedErr + Kpv * (SpeedErr – SpeedErr_old); // 2) račun Inc dela zakona upravljanja SpeedErr_old= SpeedErr; // 3) memorisanje prethodne greške za sledeći PWM period

Ref_Napon = Ref_Napon + Inc; // 4) zatim se računa ukupni izlaz if (Ref_Napon >PWM_PERIOD) Ref_Napon = PWM_PERIOD; // 5) Provera saturacije izlaza regulatora if (Ref_Napon <- PWM_PERIOD) Ref_Napon =- PWM_PERIOD;

// Racun faktora ispune - ovde se referentni napon pretvara u faktor ispune, // (int) vrši odsecanje decimalnih tačaka i upisuje samo ceo deo broja

// Ref. napon 4kvad čopera (±VDC) se preslikava u 0- 2*PWM_PERIOD PWMDutyCycle =(int) Ref_Napon + PWM_PERIOD;

// Ponavljanje: Za dsPIC važi: Ako je period jednak PWM_PERIOD tada je // mogući opseg faktora ispune 0 – 2*PWM_PERIOD. Ovim se kod dsPIC // udvostručuje rezolucija PWM.

PDC1=PWMDutyCycle; // 6) konačno, ovde upisujemo novi faktora ispune u PDC1 IFS0bits.T1IF = 0; // Cistimo Timer interrupt flag , bez ovoga bi stalno ulazio u ovaj prekid