primena mikroprocesora u energetici - pogoni naizmenične struje

20
Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje 1 Primena mikroprocesora u energetici - Pogoni naizmenične struje sa skalarnim upravljanjem i PWM modulacijom - 1 Osnove skalarnog upravljanja asinhronim motorom.......................................................... 2 2 Skalarni pogon asinhronog motora upravljan mikroprocesorom ....................................... 4 2.1. Blok šema digitalno upravljanog pogona sa naponskim PWM invertorom ............... 4 2.2. Upravljačka struktura skalarno regulisanog pogona sa asinhronim motorom ........... 5 2.3. Sinusna PWM modulacija .......................................................................................... 5 2.4. Program za skalarno upravljanje naizmeničnim motorom ......................................... 9 2.4.1. Račun potrebnih vremena uključenja ................................................................. 9 2.4.2. Diskretan račun promene ugla vektora statorskog napona ............................... 10 2.4.3. Praktičan račun sinus/cosinus funkcije ............................................................. 13 2.4.4. Račun PWM on-time u zavisnosti od željene amplitude izlaznog napona ...... 16 2.4.5. Algoritam za račun vremena vođenja za trofazni sinusni PWM modulator..... 17 2.4.6. Račun potrebne amplitude napona –zakon upravljanja sa konstantnim v/f .... 17 2.4.7. Blok dijagram algoritma skalarnog upravljanja asinhronim motorom............. 19 2.4.8. C-code za skalarnog upravljanja asinhronim motorom (to be continue ..)....... 19 2.4.9. Prilog – funkcija za sinus aproksimaciju .......................................................... 20 Rev Date Originator Description X1 04/03/07 dr Darko Marčetić Naponski PWM invertor, skalarno upravljanje X2 04/15/08 dr Darko Marčetić ispravljene uočene greške, nepronađene namerno ostavljene

Upload: lenhu

Post on 05-Feb-2017

248 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

1

Primena mikroprocesora u energetici - Pogoni naizmenične struje sa skalarnim

upravljanjem i PWM modulacijom -

1 Osnove skalarnog upravljanja asinhronim motorom..........................................................2 2 Skalarni pogon asinhronog motora upravljan mikroprocesorom .......................................4

2.1. Blok šema digitalno upravljanog pogona sa naponskim PWM invertorom...............4 2.2. Upravljačka struktura skalarno regulisanog pogona sa asinhronim motorom ...........5 2.3. Sinusna PWM modulacija ..........................................................................................5 2.4. Program za skalarno upravljanje naizmeničnim motorom.........................................9

2.4.1. Račun potrebnih vremena uključenja .................................................................9 2.4.2. Diskretan račun promene ugla vektora statorskog napona...............................10 2.4.3. Praktičan račun sinus/cosinus funkcije.............................................................13 2.4.4. Račun PWM on-time u zavisnosti od željene amplitude izlaznog napona ......16 2.4.5. Algoritam za račun vremena vođenja za trofazni sinusni PWM modulator.....17 2.4.6. Račun potrebne amplitude napona –zakon upravljanja sa konstantnim v/f ....17 2.4.7. Blok dijagram algoritma skalarnog upravljanja asinhronim motorom.............19 2.4.8. C-code za skalarnog upravljanja asinhronim motorom (to be continue ..).......19 2.4.9. Prilog – funkcija za sinus aproksimaciju..........................................................20

Rev Date Originator Description X1 04/03/07 dr Darko Marčetić Naponski PWM invertor, skalarno upravljanje X2 04/15/08 dr Darko Marčetić ispravljene uočene greške, nepronađene namerno ostavljene

Page 2: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

2

1 Osnove skalarnog upravljanja asinhronim motorom

Brzinu asinhronog motora je moguće regulisati promenom frekvencije napona statora. Ukoliko ovu promenu frekvencije ne prati promena efektivne vrednosti napona statora fluks u zazoru mašine opada

( ))cos( tdtdIR

dtdIRV sras

aasa ωΨ

ψ+=+=

s

srsrsasa

VtIRV

ωΨωΨω ≈⇒−= )sin(

Pad magnetnog fluksa prati i odgovarajući pad prevalnog momenta, što se vidi iz naredne formule:

222

max )())(

2(

rslmr

rslm

s

sC

LRRVPm

γω

ωω +

⋅=

U formuli je zanemaren pad napona na stotorskoj impedansi. mcmax je prevalni moment, a ωsim=Rr/Lγr takozvana kružna učestanost klizanja koja odgovara maksimalnom momentu konverzije. Dijagrami momenta konverzije u funkciji brzine dati su na sledećoj slici:

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

.].[/ upnoms ωω

.].[/ max upmm cc

Slika 1. Zavisnost momenta konverzije i brzine pri Vs = const. , ωs= var.

Očigledan je pad prevalnog momenta pri uvećanju frekvencije, za istu vrednost napona statora. Ovo je moguće izbeći uvećanjem napona statora sa promenom frekvencije, tako da se održi konstantnim odnos Vs/ωs . Ovim se održava nominalan fluks u mašini i ne dolazi do redukcije ostvarenog momenta konverzije. Na sledećem dijagramu (slika 2) je prikazana zavisnost momenta konverzije od brzine u slučaju Vs/ωs=const. Problem i dalje postoji, ali samo pri malim brzinama na kojima se pad napona na statorskom otporu ne može zanemariti. Formula za približno izračunavanje maksimalnog momenta konverzije je dovoljno dobra do ulaska u oblast malih brzina gde je fluks u zazoru ograničen padom napona na statorskoj otpornosti. Iz tog razloga se u ovoj oblasti pad napona na statorskoj otpornosti kompenzuje dodatnim podizanjem napona da bi se prevalni moment održao konstantnim (nije korišćeno na slici 2). Nadalje, konstantan momenat je moguće održati do nominalne brzine, koja odgovara nominalnom naponu na mašini. Nakon te brzine mi ne možemo više uvećavati napon i moramo ga zadržati na konstantnoj, nominalnoj vrednosti. Tada ulazimo u režim slabljenja polja, u kome dalje povećanje frekvencije napon ne prati i slabi fluks (polje), kao i prevalni momenat.

Page 3: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

3

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

.].[/ upnoms ωω

.].[/ max upmm cc

Slika 2: Zavisnost momenta konverzije i brzine pri Vs/ωs = const.

Idealna naponsko-frekventna karakteristika pri napajanju asinhronog motora data je na slici 3. S

obzirom na statorski napon, statorsku struju, moment konverzije i klizanje postoje četiri oblasti rada. 1) Prva je oblast malih brzina gde je neophodno kompenzovati pad napona RsIs i napon se nelinearno uvećava da bi se održao nominalan fluks. 2) Zatim tu je oblast brzina do nominalne, oblast u kojoj prosto održavanje odnosa Vs/ωs =const daje nominalni fluks. 3) Oblast slabljenja polja u kojoj efektivna vrednost statorskog napona dostigla svoj maksimum i mašina ulazi u oblast konstantne mehaničke snage (mcωs =const) . Ovaj deo karakteriše smanjenje fluksa u zazoru i povećanje statorskih struja zahvaljujući rastu klizanja. 4) Na desnoj ivici ove oblasti opteretni moment je dostigao prevalni, i brzina mašine se može povećati povećavanjem frekvencije statorskih struja uz redukciju njihove efektivne vrednosti. Karakteristika mašine u ovoj oblasti se može iskazati formulom mcωs

2 =const i ekvivalentna

je karakteristici DC mašine za odvojenu pobudu statora i rotora.

1 2 0

1

Klizanje s

moment mc

struja statora Is

napon statora Vs

kompenzacija pada napona na statoru

m constc mω = .m constc = . m constc sω 2 = .

.].[/ upnoms ωω

.].[/ max upVV ss

Slika 3. Oblasti rada pri U/f regulaciji realnog pogona asinhrone mašine.

ŠTA JE ZADATAK PRI SKALARNOM UPRAVLJANJU ASINHRONIM MOTOROM ?

• Potrebno je motoru nametnuti trofazni napon odgovarajuće frekvencijom i amplitude. • Da bi se optimalno upravljalo brzinom i fluksom asinhronog motora, oba ova parametra

izlaznog napona je neophodno menjati u vremenu, sa promenom brzine i opterećenja. • Naizmenični napon kontrolisane amplitude i frekvencije se jedino može realizovati primenom

PWM upravljanog trofaznog naponskog invertora.

Page 4: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

4

2 Skalarni pogon asinhronog motora upravljan mikroprocesorom

Optimalno upravljanje trofaznim naizmeničnim motorom je moguće samo kontrolom amplitude i frekvencije statorskog napona. Obe ove veličine su skalari tako da se ovaj način upravljanja naziva skalarno upravljanje. Skalarno upravljanje se u praksi ostvaruje primenom PWM upravljanog trofaznog naponskog invertora kojim je najlakše upravljati digitalno.

2.1. Blok šema digitalno upravljanog pogona sa naponskim PWM invertorom

Važni blokovi digitalno upravljanog pogona sa asinhronim motorom (slika 4) su :

1) Neregulisani ispravljač, 2) jednosmernom međukolo sa kondenzatorom, 3) trofazni naponski invertor – na primer IGBT modul sa šest tranzistora u mostu, 4) galvanski odvajači i pojačavači šest upravljačkih PWM impulsa, 5) mikrokontroler i potrebna okolna kola (napajanje, oscilator), 6) Naponski razdelnik i blok za odvajanje i pojačanje mernog signala DC napona, 7) LEM sonde za merenje faznih struja motora, 8) pojačavači i komparatori mernih signala faznih struja na izlazima LEM sondi, 9) enkoder i prilagodna kola za merenje mehaničke brzine rotora. 10) kolo za zadavanje referentne brzine obrtanja (serijska veza, potenciometar ili tasteri).

RE0 RE1 RE2 RE3 RE4 RE5

optičko odvajanje

opt. odvajanje i pojačanje

pojačanjex2 Signal struje motora

Signal dc napona

AN1 AN2

Paljenje T2,T4,T6

Encoder receiver Odvajanje i prilagođenje naponski nivoa

LEM

QEA QEB

ATX ARX

dsPIC 4011

Serial driver

PWM signali X 6

Enkoder A Enkoder B

komparator x2 FLTA

AN0

IMAX

Regulator napona

VSS VDD

OSC1 OSC2

OSC

ACM

+enkoder

Paljenje T1

Paljenje T3

Paljenje T5

Transformator ~380V/~9V 5 sekundara

Napon za paljenje T2, T4, T6 Napon za paljenje T1 Napon za paljenje T3 Napon za paljenje T5

AN3 POT

VDD

T1

T2

T3

T4

T5

T6

3f∼ R1

R2

C

Ka gate-u T2

Ka emitoru T2

Ia

Ib

A

B C

N

Slika 4. Blok dijagram digitalno regulisanog naizmeničnog pogona sa PWM invertorom

Page 5: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

5

2.2. Upravljačka struktura skalarno regulisanog pogona sa asinhronim motorom

Skalarno upravljanje asinhronim motorom se svodi na kontrolu amplitude i frekvencije napona na njegovim terminalima. Isto se može ostvariti sa i bez povratne veze po mehaničkoj brzine. U slučaju otvorene veze, zadaje se odgovarajuća statorska frekvencija i na osnovu nje, po v/f=const zakonu, se računa amplituda napona. U slučaju zatvorene povratne sprege, uspostavlja se pozitivna povratna sprega po brzini rotora, sa linearnim regulatorom koji kontroliše zadato klizanje. Referentna statorska frekvencija se dobija kao zbir trenutne frekvencije rotora i zadate frekvencije klizanja.

PWM generator

Naponski invertor

AM

PI regulator

+

+ +

-

fs

Vs PWM

frREF

fr

Otvorena sprega

Zatvorena sprega

fk

UDC v/f=const

Slika 5. Upravljačka struktura za skalarno upravljanje naizmeničnim motorom.

Bez obzira na tip regulacione strukture, pri skalarnom upravljanju je neophodno obezbediti izlazni napon čija su frekvencija i amplituda jednake zadatim vrednostima. Ovo se ostvaruje primenom PWM (Pulse Width Modulation – modulacija širine impulsa) modulisanog trofaznog naponskog invertora.

2.3. Sinusna PWM modulacija

Za generisanje trofaznog prostoperiodičnog naponskog signala zadate amplitude i frekvencije koristi se trofazni sinusni PWM modulator. Trofazni PWM modulator je programski modul koji, u zavisnosti od zadate amplitude i frekvencije, na svom izlazu daje potrebna vremena vođenja tranzistora u tri grane invertora, za svaki novi PWM period. Ova vremena se mogu direktno upisati u PDC registre Motor Control jedinice, koja generiše šest PWM izlaza (tri komplementarna para) u skladu sa upisanim faktorima ispune. Ovim se reguliše srednja vrednost napona tri grane PWM invertora u svakoj novoj PWM periodi. U slučaju jedne grane, naponski PWM signal je prikazan na sledećoj slici

Slika 6. Rad jedne grane naponskog invertora.

Ukoliko zanemarimo padove napona na prekidačkim elementima, trenutna vrednost izlaznog napona je

Page 6: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

6

ton ⇒ Ui ≈ E toff ⇒ Ui ≈ 0 Za srednju vrednost napona u jednoj PWM periodi se dobija (UDC=E)

DCPWM

onSRi U

TtU =

Ali, nama ne treba jednosmerni napon na trofaznom naizmeničnom motoru. Za potrebe naizmeničnog motora treba generisati takav naponski PWM signal čija se srednja vrednost menja u vremenu i u svakom novom PWM periodu je jednaka trenutnoj vrednosti prostoperiodičnog signala željene amplitude i frekvencije. Da bi se to ostvarili, pored PWM nosioca, neophodan nam je referentni prostoperiodični signal koji ćemo modulisati sa PWM nosiocem. Poređenjem ova dva signala dobijamo signal promenjiva vremena vođenja ton, tj promenjive širine impulsa. Iz tog razloga ova modulacija i dobija naziv Impulsno Širinska modulacija (IŠM), ili Pulse Width Modulation (PWM). Na sledećoj slici 7 dati su trougaoni PWM nosioc, modulišući sinus signal, kao i rezultujući PWM signal. Direktno poređenje nosioca i modulišućeg signala je metod korišćen u analognim verzijama i najlakši je za objašnjenje rada PWM modulatora.

0 4ms 8ms 12ms 16ms 20ms0

VDC

0

1

t (s)

Trougaoni PWM nosioc (500Hz) i modulišući signal (sinus 50Hz)

Izlazni PWM signal jedne grane invertora

t (s)

Slika 7. Gornja tragovi: Trougaoni PWM nosilalac i modulišući prostoperiodični signal. Donji trag Rezultujući PWM signal. (fsin=50Hz, fPWM=500Hz, indeks modulacije 0.8.)

Za PWM period dovoljno mali, srednja vrednost dobijenog PWM signal potpuno se približava trenutnoj vrednosti modulišućeg signala. Pored ovo nisko frekventne komponente, izlazni PWM signal poseduje i dominanti harmonik na PWM učestanosti, kao i više neparne harmonike. Radi preglednosti slike, prikazani signali su sa odnosom frekvencije modulišućeg i PWM signala jednakim 10. U praktičnoj primeni ovaj odnos uobičajeno ne bi bio dovoljan, barem 32 tačke (PWM perioda) su potrebne da se dovoljno dobro rekonstruiše osnovni harmonik prostoperiodičnog signala. U praksi je taj broj i veći, na primer za fpwm=16kHz , fout=50Hz dobijamo prilično lep prostoperiodičan signal sa 320 tačaka. Osnovni harmonik PWM signala, direktno utiče na talasnost izlazne struje naponskog invertora. Talasnosti ove struje je takođe na frekvenciji PWM signala, ili 2 fPWM u slučaju trougaonog nosioca, a njena amplituda zavisi od indeksa modulacije, PWM frekvencije i dominante vremenske konstante statorskog kola.

PWM

onPWMDC

Ttmmm

LTUI =−=∆ ),1(

4 σ

gde su: ∆I – talasnost struje, m – indeks modulacije, Lσ- ukupna rasipna induktivnost statorskog kola. Na sledećoj slici prikazan je izgled strujnog signala.

Page 7: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

7

Slika 8. Jedna faza invertora i njena izlazna struja pri PWM modulaciji.

Izbor nosioca PWM signala

Bilo da se radi o digitalnoj ili analognoj realizaciji, princip PWM modulacije je isti, porede se PWM noseći signal n(t) i modulišući signalom m(t). U zavisnosti od rezultata, m(t) > n(t) ⇒ ton

m(t) < n(t) ⇒ toff gornji tranzistor se uključuje ili isključuje i nalazimo se u ON ili OFF periodu. Izgled rezultujućeg PWM signal zavisi i od izbora nosioca. Za testerasti nosioc, rezultujući PWM signali su dati na sledećoj slici

Slika 9. PWM sa testerastim nosiocem

Testerasti nosioc ima beskonačnu strminu. Pre ivice (trenutak 0-) ua = ub = uc = UDC uab = ubc = uca =0 nakon ivice (trenutak 0+) ua = ub = uc = 0 uab = ubc = uca =0 U trenutku 0-0+, dolazi do promene stanja svih šest prekidačkih elemenata, ali u pogledu upravljanja ništa se nije postiglo. Ovo nije optimalan način regulacije, jer uvećanje broja komutacija u jednoj PWM periodi dovodi do uvećanja prekidačkih gubitaka. Za trougaoni nosioc, rezultujući PWM signali su dati na sledećoj slici. Trougaoni nosilac je optimalan izbor za trofazni PWM invertor, ni jedna komutacija nije uzalud.

Page 8: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

8

Slika 10. PWM sa trougaoni nosiocem

• Kod testerastog nosioca, od šest komutacija u periodi (po dve u svakoj fazi), tri bacamo. • Kod trougaonog nosioca, pri svakoj komutaciji dolazi i do promene linijskog napona (ni

jedna nije uzalud). o Trougaona modulacija je malo teža za implementaciju jer brojač mora da broji u oba

smera. Na sreću, većima danas poznatih PWM jedinica podržava kako testerasti, tako i trougaoni nosilac.

o Takođe, ovde imamo dve promene linijskog napona (dva impulsa) u periodi, pa je frekvencija viših harmonika veća i talasnost signala struje je na duplo većoj frekvenciji, manjeg intenziteta (više se filtrira sa τs=Lσ/Rs).

Maksimalni izlazni napon pri sinusnoj PWM modulaciji

Prilikom sinusne PWM modulacija za modulišući signal se koristi referentni napon za jednu granu invertora (faza A ka N). Maksimalna amplituda prostoperiodičnog napona je jednak UDC/2.

)sin(22

)( tUAUtu sdcdc

AN ω+=

A je relativna amplituda faznog napona, ωs frekvencija. Ovo je logično, sinus maksimalne amplitude jedne faze se u vremenu prostire od VDC kao svog maksimuma, do 0 V kao minimuma, slika 11.

0

VDC

t (s)

VDC

2

UA(t) za A =1

Slika 11. Maksimalni fazni napon pri sinusnoj PWM modulaciji.

U slučaju maksimalnog indeksa modulacije, dobija se 2dcAMP

ANUU = i efektivna vrednost faznog napona

22dcRMS

ANUU =

Efektivna vrednost međufaznog napona (linijskog) tada iznosi

DCdcRMS

ANRMSAB UUUU 61.0

2233 ≈==

Page 9: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

9

Ovim nije maksimalno iskorišćena naponska margina invertora. Ali, sinusna PWM modulacija je jednostavna za implementaciju i zasad ćemo se samo njome baviti. Ukoliko se želi maksimalno iskoristiti naponske mogućnosti invertora, neophodno je preći na space vector modulaciju. Sinusna modulacija kontroliše fazne napone, tj napone na izlazima naponskog invertora u odnosu na negativni napon jednosmernog međukola. Ovim se potpuno ne koristi sloboda u izboru prekidačkih kombinacija dve grane invertora tako da je iskorišćeno samo 78.5% naponskih mogućnosti invertora.

( ) 785.0/25.0

_

_==

DC

DCMAXAMP

SQUARE

MAXAMPAN

VV

UU

π

Space vektor modulacija se bavi direktno međufaznim naponima i dozvoljava maksimalni međufazni napon ±UDC što dovodi do koriščenja 90.6% naponskog kapaciteta invertora.

( ) 906.0/2

3/)(_

_==

DC

DCMAXAMP

SQUARE

MAXAMPAN

VV

USVU

π

Ukoliko se dozvoli nadmodulacija, space vector modulacija može iskoristiti i 100% naponske margine.

2.4. Program za skalarno upravljanje naizmeničnim motorom

Pri skalarnom upravljanju naizmeničnim motorom neophodno je obezbediti trofazni naizmenični napon čiji su parametri, frekvencija i amplituda, u skladu sa zadatim vrednostima mehaničke brzine i fluksa u mašini. Osnovni zadatak mikroprocesorskog programa za skalarno upravljanje asinhronim motorom je generisanje odgovarajućeg trofaznog PWM signala kojim se ovaj napon i ostvaruje.

2.4.1. Račun potrebnih vremena uključenja

U savremenom mikrokontroleru ili DSP mi ne trebamo da brinemo o nosećem PWM signalu. Noseći signal će automatski generisati PWM modulator (Motor Control Unit) u sklopu mikrokontrolera ili DSP. Noseći PWM signal generiše PWM timer u Free run modu (testerasti nosioc) ili up/down modu (trougaoni nosioc), on se menja maksimalno brzim clock signalom i mi o tome nećemo više da brinemo. Mi nećemo da brinemo ni kako će se generisati izlazni PWM signal. Izlazni PWM signal će se automatski generisati u PWM modulatoru (Motor Control Unit) skoro trenutnim (maksimalno brz clock) poređenjem stanja PWM timera i PWM duty cycle registara. Ono što mi treba da obezbedimo u programu, jeste trofazni modulišući prostoperiodični signal. Pre svakog novog PWM perioda program mora da izračuna željenu vrednost izlaznog napona u sve tri faze invertora i da pripremi tri nova faktora ispune koji će odgovarati tim željenim vrednostima, t.j. obezbedi PWM signale sa odgovarajućim srednjim vrednostima u toku tog PWM perioda. Dakle, potrebno je napraviti takav algoritam koji će kao ulazne veličine imati željenu amplitudu (A) i učestanost (ωs) trofaznog napona a na izlazu dati vremena uključenja tranzistora u tri grane invertora.

Slika 12. Ulazi i izlazi programskog sinus PWM modulatora

Mi treba da obezbedimo sledeće fazne napone,

)3/4sin(22

)(

)3/2sin(22

)(

)sin(22

)(

πω

πω

ω

−+=

−+=

+=

tUAUtu

tUAUtu

tUAUtu

sdcdc

C

sdcdc

B

sdcdc

A

Algoritam (sinus PWM modulator)

A

ωs Tpwm

tONA (kTpwm)

tONB (kTpwm)

tONC (kTpwm)

Tpwm

Page 10: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

10

A - predstavlja relativnu amplitudu napona ili indeks modulacije A∈{0,1} , ampl. ∈ {0,UDC/2} ωs - predstavlja frekvenciju željenog izlaznog napona (njegove fundamentalne komponente) PWM je nedeljiv vremenski period i ovo ima smisla raditi samo jednom za svaki novi PWM period. Znači, period ovog proračuna je jednak TPWM. Zato su na slici 12 prikazani vremenski odabirači. Mi kontrolišemo srednju vrednost PWM signala u jednoj PWM periodi. Veza između srednje vrednosti faznog napona u toku jedne PWM periode i vremena uključenja u toku te iste PWM periodi glasi

dcPWM

onSRA U

Ttu =

Izjednačavanjem srednje vrednosti koju možemo kontrolisati, sa željenom vrednošću izlaznog napona koju želimo dočarati, dobijamo potrebno vreme vođenja u toku jedne PWM periode.

)sin(22

)sin(22

)(

tTATt

tUAUUT

ttu

sPWMPWM

on

sdcdc

dcPWM

onA

ω

ω

+=⇒

+==

Konačno, na isti način dobijamo sva tri potrebna vremena koja treba generisati u vremenu da bi se ostvario trofazni izlazni napon učestanosti ωs i sa osnovnim harmonikom relativne amplitude A.

)3/4sin(22

)(

)3/2sin(22

)(

)sin(22

)(

πω

πω

ω

−+=

−+=

+=

tTATtt

tTATtt

tTATtt

sPWMPWMC

on

sPWMPWMB

on

sPWMPWMA

on

Mikroprocesor treba da rešava ove jednačine samo u diskretnim trenucima, tj jednom za svaku novu PWM periodu (kTPWM, k =0,1,2,…). U tom slučaju, jednačine koje treba rešavati postaju:

)3/4sin(22

)(

)3/2sin(22

)(

)sin(22

)(

πω

πω

ω

−+=

−+=

+=

PWMsPWMPWM

PWMCon

PWMsPWMPWM

PWMBon

PWMsPWMPWM

PWMAon

kTTATkTt

kTTATkTt

kTTATkTt

2.4.2. Diskretan račun promene ugla vektora statorskog napona

Prostoperiodični signal se nemilosrdno menja u vremenu. Da bi izračunali nova vremena vođenja mi treba prvo da prepoznamo u kojoj smo tački u vremenu. Za pomenuto nam je potrebna nova vrednost ugla, koju mi kontrolišemo i čija brzina promene treba da zavisi od zadate frekvencije. Svakom novom PWM periodu odgovara diskretni ugaoni pomeraj, čija se vrednost dobija jednostavnim diskretnim računom. Uzmimo da trenutni ugao, u kTpwm intervalu, iznosi

PWM

sPWMsPWM f

fkkTkT πωθ 2)( ==

Ovaj ugao se dalje menja u vremenu, kao što je prikazano na slici 13.

2π(k-1)TPWM fs 2πkTPWM fs

∆θs = 2πTPWM fs

θs (fs)

Slika 13. Inkrement ugla u toku jedne PWM periode.

Page 11: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

11

Koji je potreban inkrement ugla u jednom PWM periodu? Vrlo prosto, rešenje je Euler aproksimacija integrala brzine,

PWMss Tkkdt ωθθωθθ +−=→+= ∫ )1()(0 koja dovodi do

][][

2)(Hzf

HzfTT

PWM

sPWMsPWMrad πωθ ==∆

Promena ugla se vrši na početku svakog PWM perioda.

)())1(()( PWMradPWMradPWMrad TTkkT θθθ ∆+−=

Ukoliko u ∆θrad izdvojimo konstanti deo, od dela koji zavisi od komande frekvencije, dobija se

][2))1(()( Hzff

TkkT sPWM

PWMradPWMradπθθ +−=

Za fPWM =16kHz dobijamo

][)926.3())1(()( 4 HzfTkkT sPWMradPWMrad−+−= θθ

Ako nastavimo da računamo ugao u radijanima, imamo problem. Usled činjenice da je PWM period relativno mali, kao i da je ugao zapisan u radijanima relativno mali broj, sve konstante i brojevi su takođe relativno mali brojevi puni decimala. Čini se da bi zbog dovoljno dobre preciznosti trebalo raditi sa floating point aritmetikom. Ali, to nam je problem jer veoma mali broj procesora danas podržava brzu floating point aritmetiku. Ako sve račune vršimo na taj način ukupno vreme izračunavanja postaje duže od same PWM periode i potreban račun ne može da se odradi u realnom vremenu.

Neophodno je koristiti relativne jedinice i fixed point aritmetiku ! Fixed point brojevi su brojevi sa nepokretnim zarezom. Ukoliko postavimo zarez na fiksno mesto nakon prve cifre, dobijamo brojeve u opsegu -1 do 0.9999. Ova aritmetika je idealna za jednačine pogona izražene u relativnim veličinama u brojnom opsegu ±1. U fixed point matematici sa zarezom nakon prve cifre brojevi iz opsega ±1 se zapisuju u 16-bitne registre u opsegu [-32768, 32767]. Prvo, frekvenciju nećemo zapisivati i računati u Hz. Kao i sve druge veličine u DSP, i nju pamtimo i obrađujemo kao broj relativan u odnosu na svoj maksimum.

max

)()(

fHzf

unitperf ss =

Zapamtite, ovim načinom ste maksimalno iskoristili n–bitne registre. Koliko je fmax zavisi od primene pogona. Uobičajeno se usvaja broj jednak maksimalnoj izlaznoj frekvenciji. Na primer, radi lakšeg pregleda rada programa, možemo usvojiti da je broj za frekvenciju ±32767 u 16-bitno registru ekvivalentan frekvenciji u rpm (o/min) u iznosu ±32767 rpm. Ovim se pravi greška od ±1 rpm na motoru (±p/60 Hz), što je za mnogo primene sa daljim mehaničkim redukovanjem brzine sasvim zadovoljavajuće. U ovom slučaju, za motor sa jednim parom polova, maksimalna izlazna frekvencija iznosi 32767/60 = 546.11 Hz. Nadalje, ugao nećemo računati i pamtiti u radijanima. I ugao ćemo pamtiti i obrađivati kao relativan broj. Većina fixed point trigonometriskih funkcija ionako prihvataju ±1 broj (±32767) na ulazu kao ±π . Ove funkcije su na raspolaganju na raznim internet site-ovima. Da bi se ostvarila bolja tačnost, svaku vrstu akumulacije, pa i naš ugao, treba pamtiti kao 32-bitni broj, a koristiti je kao 16-bitni broj. U tabeli je dat prikaz 16-bitnog i 32-bitnog opsega.

Theta[rad] Theta[p.u.] – 16 bita Theta[p.u.] – 32 bita -π -32768 (0x8000) 0x 8000 0000 +π +32767 (0x7FFF) 0x 7FFF FFFF

Page 12: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

12

Ovo je važno kod svih tipova integratora, pamtiti 32-bitnu vrednost i time ne odsecati vremenske inkremente manje od 2-16 a opet ne komplikovati dalji račun i koristiti samo gornjih 16 bitova. Za promenu ugla u relativnim jedinicama sada dobijamo (32767 ≡π !)

.].[][][

327672][

][327672)(.. upf

HzfHzf

HzfHzf

T sPWM

MAX

PWM

sPWMup ⋅⋅=⋅⋅=∆θ

Za fPWM =16kHz sada dobijamo

2236_,.].[_))1(()( .... =⋅+−= CONSTTHETAupfCONSTTHETATkkT sPWMupPWMup θθ

THETA_CONST =2236 važi samo za slučaj fixed point množenja. Kako se množe dva fixed point broja (broja sa nepokretnim zarezom)? Kod većina DSP procesora, kao i mnogih mikrokontrolera, množenje dva 16-bitna fixed point broja je operacija koja se završava u jednom mašinskom ciklusu. Iz tog razloga modeli sa relativnim jedinicama i promenjivama, koji koriste ovu vrstu aritmetike, danas postaju veoma aktuelni u el. pogonima.

Registar A Registar B

Gornjih 16 bitova Donjih 16 bitova

Množač i pomerač Automatski shift

za 1 bit ulevo

16 bit 16 bit

32 bit

Akumulator

Data bus Data bus

Data bus Data bus

Slika 14. DSP realizacija fixed point množenja.

Množenje dva fixed point 16-bitna broja je podržano u većini DSP, primer integrisanog množača je dat na slici 14. Ono se vrši tako što se brojevi pomnože kao dva cela broja i automatski se izvrši pomeranje rezultata za jedan bit ulevo. U akumulatoru sada imam 32-bitni broj i

• Ukoliko se želi 16 bitni rezultat, uzme se samo gornjih 16 bitova akumulatora • Ukoliko se želi 32 bitna preciznost, pamtimo svih 32 bita. Ova aritmetika omogućava izuzetnu

preciznost, sa 31 cifrom iza decimalne tačke. Ponovo, sa 32-bita se uobičajeno čuvaju svi rezultati integracije, akumulacije ili filtracije a samim tim i naš ugao !

Primer: A = 1 , B =1, oba sa nepokretnim zarezom, zapisani kao 32767. ACC = (A* B)fixed point = 32767 * 32767 << 1 (<< 1 pomeranje ulevo za jedan bit) ACC= 2147352578 = 0x7FFE0002 Ako uzmemo samo gornjih 16 bitova dobijamo rezultat u ACC približno 1*1= 1, što nam i odgovara.

Tačnije, dobijamo bitabita 3216 3276832768

10736762893276832766

3276832767

3276832767

⎟⎠⎞

⎜⎝⎛

⋅=⎟

⎠⎞

⎜⎝⎛=⋅

Sledi C-program sa nepokretnim zarezom za generisanje ugla, radi preciznosti ugao se pamti kao 32 bitna promenjiva

Page 13: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

13

definisanje konstante #define THETA_CONST (Frac16)2*32767*FREQ_MAX/FREQ_PWM Program koji se poziva svake PWM periode: dTheta_Stator_32b = (long) Freq_Stator *THETA_CONST >>15; Theta_ Stator _32b = Theta_Stator_32b +dTheta_Stator_32b; // 32-bit verzija ugla Theta_ Stator = (int)(Theta_Stator_32b>>16); // 16-bit verzija, odsečeno 16b Korišćene promenjive Freq_stator izlazna frekvencija, promenjiva koja se kreće u opsegu ±32767, ± fmax. Theta_Stator_32b ugao napona statora, promenjiva se kreće u opsegu ±231, ±π. (32b) Theta_Stator ugao napona statora, promenjiva se kreće u opsegu ±32767, ±π. (16b) Važna napomena. Usled relativno visoke PWM frekvencije inkrement ugla u jednoj PWM periodi je relativno mali broj. Ukoliko bi ugao pamtili kao 16-bitnu promenjivu, akumulisala bi se značajna greška usled odsecanja jer upravo donjih 16 bitova značajno doprinose inkrementu. Sa daljim umanjenjem komande frekvencije statora, inkrement ugla bi postao nula, jer sva promena akumulacije ostaje odbačena odsecanjem nižih 16 bitova inkrementa. Umesto sporopromenjivog sinusa, dobili bi jednosmerni signal. Ali, kada se konačno koristi taj ugao, i računa sinus toga ugla (sledeće poglavlje) dovoljno je samo 16 gornjih bitova jer time je sinus dovoljno dobro definisan a i trigonometrijske funkcije i tabele uobičajeno ne podržavaju 32-bitni ulaz. Ali, ponovo, ovo ne znači da 32-bitno pamćenje i akumulacija ugla nemaju smisla, naprotiv od izuzetnog su značaja. Ugao se mora pamtiti i računati kao 32-bitni broj! Druga važna napomena. Rad u fixed point aritmetici stvarno ima smisla kada se uzme u obzir i sledeće. Bez obzira da li je ugao statora računat i pamćen kao 32b ili kao 16b promenjiva, isti je menjan inkrementima svake PWM periode usled nenulte frekvencije statora. Kada se registar koji čuva vrednost ugla prepuni, nije potrebna nikakva naša akcija. Jednostavno se vrednost ugla iz okoline +π preliva u okolinu -π (desio se overflow, ali ovde nam ne smeta) i akumuliranje vrednosti ugla nastavlja dalje, u krug. Ovo je prikazano na slici 15.

0x7FFF (ili 0x7FFF FFFF)

θD = θC+ ∆θ

θD

θB=θA+ ∆θ θA

θB

θC

0x8000 (ili 0x8000 0000)

≡ π

≡ -π

Slika 15. Kretanje relativnog ugla statorskog napona pri zadatoj konstantnoj statorskoj frekvenciji.

Promenu od θA do θB je lako objasniti. Ali θC do θC može zadati velike glavobolje osim ako se ne iskoristi ideja sa slike 15, automatski overflow. Ova nagrada važi samo u slučaju odabranog ±1 opsega za ugao statora. Da smo intuitivno odlučili da se ugao statora menja kao brojna vrednost u opsegu ±314, imali bi problem prekoračenja opsega. Na primer, ugao 300, sa inkrementom 50 daje novu vrednost ugla 350, koja izlazi iz opsega i ovu situaciju je neophodno detektovati i korigovati, čime se dodatno gubi procesorsko vreme a i pravi ružan program.

2.4.3. Praktičan račun sinus/cosinus funkcije

Dobili smo ugao, koji se menja svakog novog PWM perioda, u zavisnosti od frekvencije. Ugao je u relativnim jedinicama , 32767 = π. Ali nema stajanja dok traje obnova. Sledeći korak prilikom računa

Page 14: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

14

vremena vođenja potrebnih za sinusnu PWM modulaciju je račun sinus funkcije za taj ugao. Originalna sinus funkcija prihvata double argument i daje rezultat u double formatu. Ovaj račun zahteva procesorsko vreme i nije prihvatljiv pri praktičnoj primeni. Mikrokontroler to radi malo drugačiji, kod njega uobičajeno računamo sinus funkciju 1) adresiranjem unapred zapisanih rezultata u lookup tabeli ili 2) primenom fixed point aproksimacije sinus funkcije.

Račun sinus funkcije upotrebom lookup tabele

Lookup tabela predstavlja grupu unapred izračunatih rezultata neke funkcije. Ovaj račun je optimalan po pitanju brzine izvršenja neke funkcije ali koristi dosta memorije. Da ne bi trošili veliku količinu memorije, neophodno je prvo definisati skup ulaznih argumenata za koje želimo da unapred zapišemo rešenje. Odabir broja tačaka lookup tabele se ne može teorijski jasno definisati. Premalo tačaka, dolazi do distorzije željenog rezultata , previše tačaka troši previše memorije.

Za sinus/cosinus funkcije uobičajeno je dovoljno 256 tačaka koje definišu jednu periodu. Moguće je i napraviti lookup tabelu od 256 tačaka samo za prvi kvadrant i funkciju za sve argumente rešavati transformacijom u prvi kvadrant i čitanjem lookup tabele. Radi jednostavnosti izrade, kao i minimalnog potrebnog procesorskog vremena za račun, ovde ćemo opisati lookup tabelu od 256 tačaka koja predstavlja rezultate sinus funkcije za argumente u celom opsegu, ±π.

Pošto radimo sa fixed point brojevima, mi želimo da zapišemo rezultat sinus funkcije koji se kreće u opsegu 0x7FFF (32767) do 0x8000 (-32768). To su naši ekvivalenti ±1 rezultata.

Radi uštede u vremenu (jedno množenje manje), moguće je u lookup tabelu unapred zapisati rezultat ne sam za sin(x), već rezultat proizvoda PWM_PERIOD⋅sin(x), što nam je konačno potrebno za račun vremena vođenja. Ipak, prilikom projektovanja sistema i razvoja programa, moguće su odluke o promeni TPWM koje bi dovele do promene cele lookup tabele. Takođe, program ne bi mogao biti prenosiv, tabela ne bi bila opšti rezultat za sinus funkciju i ne bi se mogla ponovo iskoristiti. Prevelika cena da se plati, kao rezultat je uobičajeno tabela samo sa rezultatima sin(x).

Za pisanje lookup tabele mogu poslužiti razni programi , Matlab, Microsoft Excel, C++ , itd. Koje vrednosti upisati u 256 mesta u tabeli? Sledi primer skupa od 256 rešenja sin(x) funkcije za

x∈0-2π. Floating point rezultat prostoperiodične funkcije se prvo množi sa 32767 i zatim zaokružuje. SINUS_TABELA[i]= floor(32767* sin [(i/256) ⋅ 2π]) , i = 0,255 Na sledećoj slici je dat prikaz ovih 256 rezultata za sin(x) funkciju.

-40000

-30000

-20000

-10000

0

10000

20000

30000

40000

0 50 100 150 200 250

Slika 16. Potrebne vrednosti za lookup tabelu rezultata sinus funkcije sa 256 tačaka

Ove vrednosti treba zapisati u tabelu i u datoteku u skladu sa kompajlerom koji koristimo. Za slučaj C kompajlera, tabela se zapisuje kao konstanti niz sa 256 tačaka, kao što prikazuje sledeća linija koda. const Frac16 SINE_TABLE[256]={ 0x0000, 0x0324, 0x0647, …., 0xFCDC};

Page 15: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

15

Da bi se ova lookup tabele iskoristila neophodno je ugao iz 16-bitnog opsega (-32678, +32767) prebaciti u 8-bitni opseg 0-255. Za to nam je neophodna prosta transformacija prilikom uzimanja rezultata iz tabele.

Pointer na tabelu= Theta_ Stator /256 + 128

Za druge dve faze invertora neophodno je ostvari pomak od ±2π/3. Ovaj pomak se može ostvari sabiranjem i oduzimanjem brojnog ekvivalenta 2π/3, što je u ovom slučaju broj 0x5555 (21845). Program za čitanje tri nove vrednosti sinusa je sada prilično prost, čine ga tri sukscesivna čitanja različitih lokacija istog konstantnog niza i brzo se izvršava. #define DVA_PI_TRECINA 21845 // 2π/3 ≡ (2/3)32768 Sinus_A = SINUS_TABELA [Theta_Stator >> 8 + 128]; Sinus_B = SINUS_TABELA [(Theta_Stator- DVA_PI_TRECINA)>>8+128]; Sinus_C = SINUS_TABELA [(Theta_Stator+ DVA_PI_TRECINA)>>8+128]; Memorijsko mesto lookup tabele je opisano na sledećoj slici. Apsolutno mesto lookup tabele zavisi od linkera, koji odlučuje na koje mesto da postavi konstanti niz SINE_TABLE koji se sastoji od 256 sukcesivno u memoriji poređanih 16-bitnih brojeva.

Relativna adresa Zapisana 16 bitna reč 0 0x0000 1 0x0324 - - - - - - - - - - - - - - - - - - - - - -

254 0xF9B8 255 0xFCDC

0x8000 0x7FFF

Trenutni pokazivač na lookup tabelu = SIN_TABLE+128 + Theta_Stator>>8

Početna adresa lookup tabele = SIN_TABLE (apsolutna adresa)

0x0000

Slika 17. Memorijsko mesto lookup tabele sa 256 tačaka Zamena sinus funkcije fixed point aproksimacijom

Koristi se aproksimacija sinus funkcije petog stepena. Ulazni argument funkcije je 16-bitni fixed

point broj u opsegu ±1 (±32767), što predstavlja ugao ±π u radijanima. Funkcija koristi polinom petog stepena.

y=sin(x) ≈ 3.1407 x +0.02026x1-5.325x3+0.5446x4+1.8x5

Ovaj polinom daje dobro aproksimaciju sinus funkcije samo u prvom kvadrantu (0-16383). Da bi se polinom primenjivao za ceo opseg neophodno je ulazni ugao iz ostalih kvadranta transformisati u prvi kvadrant. Nakon transformacije ulaznog broja u opseg od 0 do 0.5 (0-16383) pet puta u petlji se izvršava množenje i sabiranje odgovarajućih sabiraka. Ovim se vrši 10 fixed point množenja i sabiranja što i dalje predstavlja samo oko 25 mašinskih ciklusa (u slučaju za 16 bitno množenje optimiziranog DSP procesora). C-code funkcije koja vrši fixed point aproksimaciju sinus funkcije dat je u prilogu.

Ovu funkciju je potrebno tri puta pozivati u toku jednog PWM perioda. Funkcija prihvata ugao kao ulazni argument u ±32767 opsegu. Za prvu fazu ugao napona statora je već pripremljen u tom opsegu. Za druge dve faze invertora neophodno je ostvari pomak od ±2π/3. Ovaj pomak se može ostvari sabiranjem i oduzimanjem brojnog ekvivalenta 2π/3, što je u ovom slučaju broj 21844.

Page 16: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

16

Konačan redosled poziva ove funkcije dat je u sledećem kodu.

#define DVA_PI_TRECINA 21844 // 2π/3 ≡ (2/3)32767 Sinus_A = SinApprox (Theta_ Stator); Sinus_B = SinApprox (Theta_ Stator- DVA_PI_TRECINA); Sinus_C = SinApprox (Theta_ Stator+DVA_PI_TRECINA);

2.4.4. Račun PWM on-time u zavisnosti od željene amplitude izlaznog napona

U svakom PWM periodu je neophodno izračunati novo punjenje sva tri registra trofaznog PWM modulatora. Zasad, na osnovu zadate frekvencije izračunali smo novi korak ugla ωst, izračunate su i nove vrednost prostoperiodične funkcije za taj ugao, kao i za ugao pomeren 2π/3 i 4π/3. Ostaje, da se uvaži komanda amplitude napona, i da se izračunaju odgovarajuća punjenja PWM registara za sve tri grane invertora (u slučaju dsPIC registri su PDC1, PDC2 i PDC3).

CSinusT

AT

kTt

BSinusT

AT

kTt

ASinusT

AT

kTt

PWMPWMPWM

Con

PWMPWMPWM

Bon

PWMPWMPWM

Aon

_22

)(

_22

)(

_22

)(

+=

+=

+=

Zadatu vrednost amplitude (A), takođe procesiramo u fixed point aritmetici. Amplituda može da se menja od 0 - 1 , gde 0 – predstavlja minimalnu, 1 – maksimalnu amplitudu izlaznog napona. Za slučaj sinusne modulacije važi: A Amplituda[p.u.] – 16 bita Amplituda faznog napona Amplituda linijskog napona 0 0 (0x0000) 0 0 +1 +32767 (0x7FFF) UDC/2 1.732 UDC/2

Iz tabele je jasno da je za sinusnu PWM modulaciju komanda napona relativna u odnosu na UDC/2.

][][2)(VU

VArelADC

⋅=

Period TPWM se uobičajeno ne menja u toku rada pogona i može se predstaviti konstantom. Na primer, za fPWM = 20kHz, i clock PWM jedinice od 30MHz, za period se dobija

1500_ ==PWM

clk

ff

PERIODPWM

Ova vrednost se upisuje prilikom inicijalizacije u periodu registar PWM jedinice (PTPER).

PERIODPWMPTPER _=

Za slučaj PWM sa trougaonim nosiocem, vreme uključenja se upisuje dva puta, na početku i na sredini PWM periode. U tom slučaju, kod većine DSP, treba koristiti polovinu gornje konstante

7502

2__ ==PWM

clk

ff

PERIODPWM

U slučaju dsPIC ovo nije slučaj, pošto upisano vreme uključenja od 1500 odgovara vremenu 750. Dodatni bit u vremenu uključenja se koristi za dodatnu preciznost pri generisanju PWM, promena stanja se dešava na uzlaznoj ili na silaznoj ivici clock-a PWM modula. Tako, za slučaj dsPIC, dobijamo

)3/4sin(__3)3/2sin(__2

)sin(__1

πωπω

ω

−⋅⋅+=−⋅⋅+=

⋅⋅+=

PWMs

PWMs

PWMs

kTPERIODPWMAPERIODPWMPDCkTPERIODPWMAPERIODPWMPDCkTPERIODPWMAPERIODPWMPDC

Page 17: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

17

I to je to , treba samo još pomnožiti fixed point amplitudu , rezultat sinusa, kao i maksimalni period. Deo program sinus modulatora za upis PWM vremena: Temp =(int)( (long) Amplituda⋅ Sinus_A>>15); Temp =(int)( (long) PWM_PERIOD⋅Temp>>15); PDC1 = PWM_PERIOD+ Temp; Temp =(int)( (long) Amplituda⋅ Sinus_B>>15); Temp =(int)( (long) PWM_PERIOD⋅Temp>>15); PDC2 = PWM_PERIOD+ Temp; Temp =(int)( (long) Amplituda⋅ Sinus_C>>15); Temp =(int)( (long) PWM_PERIOD⋅Temp>>15); PDC3 = PWM_PERIOD+ Temp;

2.4.5. Algoritam za račun vremena vođenja za trofazni sinusni PWM modulator U prethodnim poglavljima opisan račun vremena vođenja za tri grane naponskog invertora mora da se izvršava sinhrono sa PWM periodom. U toku svakog PWM perioda se računaju tri nove tačke trofaznog izlaznog napona i na osnovu toga se računaju vremena vođenja tri grane invertora. Ulazne veličine za ovaj račun su zadata frekvencija statorskog napona – fs, i zadata relativna amplituda izlaznog napona – Amp. Na kraju ovog računa dolazi do punjenja tri PWM duty cycle registra koja postaju aktivna u sledećoj PWM periodi. Blok dijagram ovog računa dat je na sledećoj slici

Prekid PWM jedinice (Tpwm)

Dozvoli sledeći prekid

Return

Sinis A = SinApprox(Theta stator)

Theta_stator (kT) = Theta_stator (kT-T)+THETA_CONST ⋅ fs

Sinis_B = SinApprox(Theta_stator -2π/3)

Sinis_C = SinApprox(Theta_stator +2π/3)

PDC1 = PWM_PER + PWM_PER⋅ Amp⋅Sinus_A PDC2 = PWM_PER + PWM_PER⋅ Amp⋅Sinus_B PDC3 = PWM_PER + PWM_PER⋅ Amp⋅Sinus_C

Slika 16. Algoritam za račun vremena vođenja za sinusnu PWM modulaciju.

2.4.6. Račun potrebne amplitude napona –zakon upravljanja sa konstantnim v/f Fluks u mašini možemo održavati na konstantnom (nominalnom) nivou održavanjem konstantnog odnosa između amplitude i frekvencije izlaznog napona (v/f =const). Ovaj odnos treba održavati konstantnim do nominalne vrednosti napona, nakon koje prelazimo u režim slabljenja polja. U ovom režimu rada napon ostaje na nominalnoj vrednosti. Pojednostavljeni v/f =const zakon upravljanja prikazan je na sledećoj slici.

Page 18: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

18

Amp – amplituda izlaznog napona

fs – frekvencija izlaznog napona

fnom

Ampnom

Slika 17. Pojednostavljeni v/f =const zakon upravljanja.

Na osnovu frekvencije izlaznog napona (koje se zadaje i procesira u relativnim jedinicama -poglavlje 2.4.2), treba izračunati potrebnu amplitudu: Amplituda izlaznog napona se takođe dalje procesira u relativnim jedinicama (1 ≡ UDC/2). Usled velikih mehaničkih konstanti, promena mehaničke brzine je mnogo sporija od rada PWM jedinice, tako da se promena izlazne frekvencije a samim tim i napona može vršiti sporije, u vremenskim intervalima Tvf (Tvf >> TPWM).

• Ukoliko je frekvencija manja od nominalne (fs < fnom)

)(_)()( vfvfnom

nomvf TfCONSTVFTf

fA

TA ⋅==

o Ukoliko je Anom < fnom , VF_CONST ostaje u opsegu 0-1(0-32767) i računa se

nom

nomfA

CONSTVF =_

Za račun nove relativne amplitude se koristi jednostavno fixed point množenje

)(_)( vfvf TfCONSTVFTA ⋅=

o Ukoliko je Anom > fnom (obe veličine u relativnim jedinicama), VF_CONST izlazi iz

opsega 0-1. Tada VF_CONST treba računati

Nnom

nom

fA

CONSTVF2

_⋅

=

gde N treba izabrati tako da VF_CONST ostane u opsegu 0-1. Za račun nove relativne amplitude sada se koristi

[ ] NTfCONSTVFTA vfvf <<⋅= )(_)(

Pomeranjem N bitova ulevo nakon množenja dobija se pravilan rezultat.

• Ukoliko je frekvencija veća od nominalne (fs > fnom)

nomvf AmpTA =)(

Page 19: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

19

2.4.7. Blok dijagram algoritma skalarnog upravljanja asinhronim motorom

Osnovni program ulazi u beskonačnu petlju u kojoj čita novu vrednost izlazne frekvencije. U prekidu Timer 1, računa se nova amplituda izlaznog napona, u skladu sa v/f=const zakonom upravljanja. Prekid PWM jedinice je najvišeg prioriteta i poziva se u skladu sa generisanim PWM signalom, jednom na početku svakog TPWM. U njemu se računa nova tačka izlaznog signala, na osnovu zadate frekvencije, i amplitude, kao i vrši punjenje odgovarajućih vremena vođenja u tri PWM registra. Start

glavnog prg.

Inicijalizacija programski promenjivih

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

Inicijalizacija Timer 1 1) clock divider 2) Dozvola prekida Timer 1 3) Dozvola rada Timer 1 start

Dozvola fault ulaza - FLTA

Prekid PWM jedinice (Tpwm)

Dozvoli sledeći prekid

Return

Sinis A = SinApprox(Theta stator)

Theta_stator (kT) = Theta_stator (kT-T)+THETA_CONST ⋅ fs

Sinis_B = SinApprox(Theta_stator -2π/3)

Sinis_C = SinApprox(Theta_stator +2π/3)

PDC1 = PWM_PER + PWM_PER⋅ Amp⋅Sinus_A PDC2 = PWM_PER + PWM_PER⋅ Amp⋅Sinus_B PDC3 = PWM_PER + PWM_PER⋅ Amp⋅Sinus_C

Inicijalizacija Motor Control module 1) PTCON enable, set PWM clock, mode 2) PTPER = PWM_PERIOD 3) PWMCON2 updates enable 4) PDC1,PDC2,PDC3 = 0 (0 duty cycle) 5) selekcija 6 PWM izlaza (PWMCON1)

Dozvola prekida MCM

Čitanje zadate frekvencije fs

Prekid Timer 1

Dozvoli sledeći prekid

fs > fnom

Amp= Ampnom

Amp = VF_CONST⋅ fs

Return

yesno

Slika 18. Blok dijagram algoritam skalarnog upravljanja uz otvorene povratnu spregu po brzini.

2.4.8. C-code za skalarnog upravljanja asinhronim motorom (to be continue ..)

Page 20: Primena mikroprocesora u energetici - Pogoni naizmenične struje

Primena mikroprocesora u energetici – Skalarno upravljani pogoni naizmenične struje

20

2.4.9. Prilog – funkcija za sinus aproksimaciju

Funkcija prihvata ugao kao fixed point broj u opsegu ±1. Koristi aproksimaciju petog stepena. y=sin(x) ≈ 3.1407 x +0.02026x1-5.325x3+0.5446x4+1.8x5

Polinom važi samo za fixed point brojeve u opsegu 0 – 0.5, tako da se svi ulazni argumenti prvo prenose u taj opseg a zatim se rešava polinom. Nakon dobijanja rešenja ovog polinoma, konačan rezultat se formira u skladu sa kvadrantom u kome se nalazio ulazni argument. Frac16 sinCoef[] = {0x3240, 0x0053, 0xaacc, 0x08b7, 0x1cce}; Frac16 SinApprox(Frac16 theta){ register Frac32 y; // sine result in 32b precision register Frac16 x; // x factor register Frac16 i; // loop counter register Frac16 Sign_Flag; // sign flag Sign_Flag=0; if(theta&0x8000){ Sign_Flag = 1; // for quadrant 3 and 4, set the sign flag theta&=0x7fff; // that removes the sign and converts these two to sector 1 or 2 } if(0x4000 & theta){ // mirror from 2 quadrant to quadrant 1 (4 quadrant also,, it become 2 already) theta&=0x3fff; // theta = Pi/2 - Theta theta=0x3fff-theta; } x=theta; // now all theta are transfered to the first quadrant y=0; for(i=0;i<5;i++){ //fifth order loop y = y + (long)x*(long)sinCoef[i]; //f15.1 * f12.4 x = mult_r(x,theta); //Next Power(X(i+1)) } y=y<<3; //transfer f4.12 back to f1.15 x = extract_h(y); // extract high 16 bits of result if(Sign_Flag) x=negate(x); //if theta was < 0, result = -result return (Frac16) x; // return the result }