laboratorija za mikroprocesorsko upravljanje ...ddc.etf.rs/vektra.pdf · detektovane pozicije i...
TRANSCRIPT
LABORATORIJA ZA MIKROPROCESORSKO UPRAVLJANJE ELEKTROMOTORNIM POGONIMA
LABORATORIJA ZA ELEKTRI^NU VU^U
Naziv ve`be
Laboratorijska stanica za ispitivanje algoritama upravljanja indirektno vektorski upravljanim asinhronim motorom
VEKTRA
Beograd, 2006.
Laboratorijska stanica VEKTRA
1
SADR@AJ
Strana
1. Uvod ..................................................................................................................................... 3
2. Pitanja za proveru znanja ................................................................................................. 6
3. Zadatak .............................................................................................................................. 7
3.1 Upoznavanje S/W laboratorijske stanice VEKTRA ................................................... 8
3.1.1 Program za generisanje Real-Time prekida (realtime.exe) ............................. 8
3.1.2 Program za ~itanje inkrementalnog enkodera (enc2000.exe) ........................ 8
3.1.3 Program za generisanje obrtnih vektora (sin2000.exe) ................................... 9
3.1.4 Program za indirektno vektorsko upravljanje asinhronim motorom
sa direktnim zadavanjem momenta (direct.exe) ............................................. 9
3.1.5 Program za indirektno vektorsko upravljanje asinhronim motorom
sa regulacijom brzine (speed.exe) ................................................................... 10
3.2 Eksperimentalni rad na laboratorijskoj stanici VEKTRA .......................................... 10
3.2.1 Snimanje valovitosti statorske struje asinhronog motora ............................... 10
3.2.2 Analiza uticaja promene temperature na ta~nost rada algoritma
indirektnog vektorskog upravljanja ................................................................ 11
3.3 Izmena S/W laboratorijske stanice VEKTRA ............................................................ 11
3.3.1 Izmena sinusne tabele u programu sin2000.exe (2000 u 501) ........................ 11
3.3.2 Izmena sinusne tabele u programu sin2000.exe (2000 u 126) ........................ 12
3.3.3 Izmena periode odabiranja regulatora brzine u programu speed.exe ............. 12
4. Teorijski osnovi .................................................................................................................. 13
4.1 Indirektno vektorsko upravljanje asinhronim motorom ............................................. 13
4.1.1 Svrha ............................................................................................................... 14
4.1.2 Implementacija ............................................................................................... 16
4.1.3 H/W zahtevi .................................................................................................... 19
4.1.4 S/W zahtevi ..................................................................................................... 20
4.1.5 Prakti~na realizacija ........................................................................................ 21
4.2 Nelinearna strujna regulacija ...................................................................................... 22
Laboratorijska stanica VEKTRA
2
5. Prakti~ni aspekti rada sa laboratorijskom stanicom VEKTRA ................................... 24
5.1 Opis H/W laboratorijske stanice VEKTRA ................................................................ 24
5.1.1 PC ra~unar i prilagodna kartica 1 ................................................................... 26
5.1.2 Prilagodna kartica 2 ........................................................................................ 28
5.1.3 Strujno regulisani naponski invertor ............................................................... 30
5.1.4 Asinhroni motor i optere}enje ........................................................................ 36
5.1.5 Inkrementalni opti~ki enkoder ........................................................................ 37
5.2 Opis S/W laboratorijske stanice VEKTRA ................................................................ 38
5.2.1 Program za generisanje Real-Time prekida (realtime.exe) ............................. 38
5.2.2 Program za ~itanje inkrementalnog enkodera (enc2000.exe) ......................... 39
5.2.3 Program za generisanje obrtnih vektora (sin2000.exe) .................................. 40
5.2.4 Program za indirektno vektorsko upravljanje asinhronim motorom
sa direktnim zadavanjem momenta (direct.exe) ............................................. 40
5.2.5 Program za indirektno vektorsko upravljanje asinhronim motorom
sa regulacijom brzine (speed.exe) ................................................................... 41
5.3 Procedura uklju~enja/isklju~enja laboratorijske stanice VEKTRA ............................ 42
5.4 Postupak merenja na laboratorijskoj stanici VEKTRA .............................................. 42
6. Prilozi ................................................................................................................................. 44
6.1 Elektri~ne {eme veza H/W laboratorijske stanice VEKTRA ...................................... 44
6.2 Izvorni kod S/W laboratorijske stanice VEKTRA ...................................................... 55
6.3 Simulink model brzinske regulacione petlje speed.mdl .............................................. 66
6.4 Opis programa vektor.exe ........................................................................................... 67
7. Literatura ............................................................................................................................ 68
Laboratorijska stanica VEKTRA
3
1. Uvod
Ve`ba je namenjena studentima koji poha|aju nastavu iz predmeta:
Mikroprocesorsko upravljanje elektromotornim pogonima (TE5MUE) Elektri~na vu~a (EG4EV)
Cilj ve`be: Upoznavanje studenata sa savremenim digitalno regulisanim servo pogonom koji za izvr{ni organ koristi indirektno vektorski upravljani asinhroni motor. U tu svrhu, predvi|eno je da studenti samostalno ve`baju na laboratorijskoj stanici VEKTRA, i kroz niz od 10 zadataka, prakti~no se upoznaju sa:
H/W resursima savremenog servo pogona Digitalnim kontrolerom D/A konvertorima Strujno regulisanim naponskim invertorom Asinhronim motorom Dava~em (inkrementalnim opti~kim enkoderom) Broja~em enkoderskih impulsa
S/W resursima savremenog servo pogona Real-time prekidnom rutinom Algoritmom za ~itanje inkrementalnog enkodera Algoritmom za generisanje obrtnih vektora Algoritmom indirektnog vektorskog upravljanja Digitalnim regulatorom brzine
Laboratorijska stanica VEKTRA se nalazi u Laboratoriji za Mikroprocesorsko upravljanje elektromotornim pogonima (ETF) u sobi 40a. Termini za ve`banje se odre|uju u dogovoru sa predmetnim asistentom. Za detaljne informacije obratiti se na:
lokal: 373 (soba 40a), ili 369 (soba 27) ili na:
binella@ etf.bg.ac.yu
Laboratorijska stanica VEKTRA
4
Sadr`aj: Ve`ba je organizovana u sedam poglavlja slede}eg sadr`aja:
Uvodne napomene date su u prvom poglavlju.
U drugom poglavlju, data su pitanja za proveru znanja.
U tre}em poglavlju, nazna~en je zadatak ve`be.
U ~etvrtom poglavlju, dati su teorijski osnovi neophodni za razumevanje i uspe{nu reali-zaciju ve`be. Izlo`eni su koncepti indirektnog vektorskog upravljanja asinhronim motorom i nelinearne strujne regulacije.
U petom poglavlju, detaljno su opisani H/W i S/W resursi laboratorijske stanice VEKTRA, pocedura uklju~enja/isklju~enja laboratorijske stanice VEKTRA i postupak merenja izlaznih veli~ina laboratorijske stanice VEKTRA.
U {estom poglavlju, date su elektri~ne {eme veza H/W i izvorni C kod S/W laboratorijske stanice VEKTRA. Opisani su Simulink model brzinske regulacione petlje speed.mdl i program za indirektno vektorsko upravljanje asinhronim motorom sa grafi~kim interfejsom vektor.exe.
Spisak referentne literature dat je u sedmom poglavlju. Postupak:
Pre dolaska na ve`bu: Pro~itati tekst ve`be Odgovoriti na pitanja za proveru znanja (vidi Poglavlje 2) Odgovore uneti u Izve{taj Re{iti zadatke iz Poglavlja 3.3 Re{enja zadataka uneti u Izve{taj
Po dolasku na ve`bu: Re{iti zadatake iz Poglavlja 3.1 i 3.2 Verifikovati re{enja zadataka iz Poglavlja 3.3
Po zavr{etku ve`banja: Re{enja zadataka prikazati u Izve{taju Izve{taj predati predmetnom asistentu
Potrebni alati (samo za studente TE5MUE):
PC ra~unar ANSI C kompajler za DOS Programski paket Matlab/Simulink (verzija 5.1 ili vi{e)
Potrebne datoteke (samo za studente TE5MUE):
Simulink model speed.mdl i Matlab komandna datoteka go_speed.m Izvorni kod S/W laboratorijske stanice VEKTRA source.zip Programi demo501.exe i demo126.exe
Pomenute datoteke su dostupne na WEB site-u:
Laboratorijska stanica VEKTRA
5
ddc.etf.bg.ac.yu
Laboratorijska stanica VEKTRA
6
2. Pitanja za proveru znanja
U ovom poglavlju, data su pitanja za proveru znanja na koja treba odgovoriti pre dolaska na ve`bu. Pitanja se odnose na laboratorijsku stanicu VEKTRA. Odgovore na pitanja uneti u Izve{taj. Pitanje 1: Za pogon lifta koristi se indirektno vektorski upravljani asinhroni motor sa podacima:
fnom = 50 Hz, nnom = 1400 ob/min, In = 20 A.
Ako je pobuda asinhronog motora nominalna (Id = Idnom), skicirati rukom talasni oblik jedne faze statorske struje asinhronog motora za slu~aj kada je:
a) n = 0 [ob/min], Mopt = Mnom
b) n = 1400 [ob/min], Mopt = Mnom
Na svakom od talasnih oblika nazna~iti kolika je amplituda i u~estanost statorske struje.
Pitanje 2: Koliko energetskih prekida~a ima u invertoru laboratorijske stanice VEKTRA?
Pitanje 3: ^emu slu`i otpornik za ko~enje i kada se on koristi?
Pitanje 4: Koliko iznosi mrtvo vreme (vreme potrebno za komutaciju dva energetska prekida~a u istoj grani invertora) i na koji na~in je ono realizovano u laboratorijskoj stanici VEKTRA.
Pitanje 5: Navesti pozitivna i negativna svojstva koncepta nelinearne strujne regulacije.
Pitanje 6:
Izlazni napon osmobitnog D/A konvertora uzima vrednosti iz opega [-10 ÷ 10] VDC. Ako se na ulaz D/A konvertora dovede broj 0040h, koliki napon }e se pojaviti na njegovom izlazu?
Pitanje 7: Inkrementalni opti~ki enkoder sa 1000 markera i dva detekciona kompleta koristi se kao dava~ u laboratorijskoj stanici VEKTRA. Ako je brzina obrtanja vratila asinhronog motora konstantna i iznosi n = 300 ob/min, skicirati rukom talasne oblike napona koji se javljaju na izlazima detekcionih kompleta i nazna~iti koliko iznosi njihova u~estanost.
Pitanje 8: Koliko ~esto se resetuje dvosmerni broja~ ekoderskih UP/DOWN impulsa u laboratorijskoj stanici VEKTRA pri brzini n = 300 ob/min? Obrazlo`iti.
Pitanje 9: Koliko iznosi perioda odabiranja regulatora brzine u laboratorijskoj stanici VEKTRA?
Pitanje 10: Napisati diferencne i algebarske jedna~ine algoritma indirektnog vektorskog upravljanja. Uzeti da je fluks nominalan i da su poznati parametri asinhronog motora.
Laboratorijska stanica VEKTRA
7
3. Zadatak
U ovom poglavlju, nazna~en je zadatak ve`be. Ve`banje se sastoji iz tri dela.
Prvi deo ve`banja ~ine zadaci nazna~eni u Poglavlju 3.1. Ve`banje je namenjeno studentima smera EG4EV i TE5MUE. Zadaci se re{avaju putem eksperimenta na laboratorijskoj stanici VEKTRA. Za ve`banje koristiti programe: realtime.exe, enc2000.exe, sin2000.exe, direct.exe i speed.exe. Pomenuti programi se nalaze na PC ra~unaru laboratorijske stanice VEKTRA u direktorijumu D:\TC\VEKTRA.
Drugi deo ve`banja ~ine zadaci nazna~eni u Poglavlju 3.2. Ve`banje je namenjeno studen-tima smera EG4EV i TE5MUE. Zadaci se re{avaju putem eksperimenta na laboratorijskoj stanici VEKTRA. Za ve`banje koristi program vektor.exe. Pomenuti program se nalazi na PC ra~unaru laboratorijske stanice VEKTRA u direktorijumu D:\TC\VEKTRA.
Tre}i deo ve`banja ~ine zadaci nazna~eni u Poglavlju 3.3. Ve`banje je namenjeno studen-tima smera TE5MUE. Zadaci su programskog tipa i njihovo re{avanje ne zahteva rad na laboratorijskoj stanici VEKTRA. Zadatke treba re{iti pre dolaska na ve`bu. Po dolasku na ve`bu, dobijene rezultate eksperimentalno verifikovati na laboratorijskoj stanici VEKTRA. Za ve`banje je potrebno imati (i) Simulink model speed.mdl i Matlab komandnu datoteku go_speed.m (ii) Programe demo501.exe i demo126.exe. Pomenuti programi i datoteke dati su su u prilog ve`bi.
Laboratorijska stanica VEKTRA
8
3.1 Upoznavanje S/W laboratorijske stanice VEKTRA
Cilj ve`banja: Upoznavanje studenata sa S/W resursima laboratorijske stanice VEKTRA:
Real-time prekidnom rutinom Algoritmom za ~itanje inkrementalnog enkodera Algoritmom za generisanje obrtnih vektora Algoritmom indirektnog vektorskog upravljanja Digitalnim regulatorom brzine
U nastavku, date su smernice za izradu prvog dela ve`banja. 3.1.1 Program za generisanje Real-Time prekida (realtime.exe)
Zadatak: (i) Snimiti izlaz programa realtime.exe (ii) Odgovoriti na pitanja
Postupak:
Pro~itati Poglavlje 5.2.1 (sadr`i detaljan opis programa realtime.exe) Uklju~iti laboratorijsku stanicu VEKTRA (vidi Poglavlje 5.3) Pokrenuti izvr{enje programa realtime.exe Snimiti izlaz programa realtime.exe (povorku pravougaonih impulsa) Dobijeni talasni, rukom skicirati u Izve{taju Iza}i iz programa realtime.exe
Pitanja:
1. Koliko iznosi u~estanost prekida u programu realtime.exe 2. [ta je potrebno izmeniti u izvornom kodu programa realtime.exe da u~estanost prekida
bude 2 puta ve}a?
Odgovore na pitanja uneti u Izve{taj. 3.1.2 Program za ~itanje inkrementalnog enkodera (enc2000.exe)
Zadatak: (i) Snimiti izlaz programa enc2000.exe (ii) Odgovoriti na pitanja Postupak:
Pro~itati Poglavlje 5.2.2 (sadr`i detaljan opis programa enc2000.exe) Uklju~iti laboratorijsku stanicu VEKTRA (vidi Poglavlje 5.3) Pokrenuti izvr{enje programa enc2000.exe Rukom okretati vratilo asinhronog motora Snimiti izlaz programa enc2000.exe (detektovanu poziciju) Dobijeni talasni oblik, rukom skicirati u Izve{taju Iza}i iz programa enc2000.exe
Pitanja:
1. Nazna~iti sekvencu u izvornom kodu programa enc2000.exe koja ~ita sadr`aj broja~a enkoderskih impulsa?
2. Objasniti ulogu kontrolnog signala ENABLE u ovoj sekvenci?
Odgovore na pitanja uneti u Izve{taj.
Laboratorijska stanica VEKTRA
9
3.1.3 Program za generisanje obrtnih vektora (sin2000.exe)
Zadatak: (i) Snimiti izlaz programa sin2000.exe (ii) Odgovoriti na pitanja Postupak:
Pro~itati Poglavlje 5.2.3 (detaljan opis programa sin2000.exe) Uklju~iti laboratorijsku stanicu VEKTRA (vidi Poglavlje 5.3) Pokrenuti izvr{enje programa sin2000.exe Rukom okretati vratilo asinhronog motora Snimiti izlaz programa sin2000.exe (sinus detektovane pozicije) Dobijeni talasni oblik, rukom skicirati u Izve{taju
Iza}i iz programa sin2000.exe Pitanja:
1. Nazna~iti sekvencu u izvornom kodu programa sin2000.exe koja izra~unava sinus detektovane pozicije i izra~unatu vrednost ispisuje na D/A konvertor?
2. Koliko odbiraka ima sinusna tabela i kako je ona organizovana?
Odgovore na pitanja uneti u Izve{taj. 3.1.4 Program za indirektno vektorsko upravljanje asinhronim motorom
sa direktnim zadavanjem momenta (direct.exe)
Zadatak: (i) Snimiti izlaz programa direct.exe (ii) Odgovoriti na pitanja Postupak:
Pro~itati poglavlje 5.2.4 (sadr`i detaljan opis programa direct.exe) Uklju~iti laboratorijsku stanicu VEKTRA (vidi Poglavlje 5.3) Pokrenuti izvr{enje programa direct.exe U programu direct.exe, zadati odsko~nu promenu struje Iq sa 0 na 5 Snimiti izlaz programa direct.exe (brzina obrtanja vratila asinhronog motora) Dobijeni talasni oblik, rukom skicirati u Izve{taju Iza}i iz programa direct.exe
Pitanja:
1. Kakav je karakter odsko~nog odziva brzine i {ta on sugeri{e? 2. Nazna~iti sekvencu u izvornom kodu programa direct.exe koja realizuje algoritam
indirektnog vektorskog upravljanja asinhronim motorom? 3. Objasniti ulogu konstane SLIPGAIN u ovoj sekvenci?
Odgovore na pitanja uneti u Izve{taj.
Laboratorijska stanica VEKTRA
10
3.1.5 Program za indirektno vektorsko upravljanje asinhronim motorom sa regulacijom brzine (speed.exe) Zadatak: (i) Snimiti izlaz programa speed.exe (ii) Odgovoriti na pitanja Postupak:
Pro~itati Poglavlje 5.2.5 (sadr`i detaljan opis programa speed.exe) Uklju~iti laboratorijsku stanicu VEKTRA (vidi Poglavlje 5.3) Pokrenuti izvr{enje programa speed.exe U programu speed.exe, zadati odsko~nu promenu brzine od 0 do 500 [ob/min] Snimiti izlaz programa speed.exe (brzina obrtanja vratila asinhronog motora) Dobijeni talasni oblik, rukom skicirati u Izve{taju Iza}i iz programa speed.exe
Pitanja:
1. Kakav je karakter odsko~nog odziva brzine? 2. Koliko traje prelazni proces zaletanja? 3. Koliko iznosi perioda odabiranja regulatora brzine?
Odgovore na pitanja uneti u Izve{taj.
3.2 Eksperimentalni rad na laboratorijskoj stanici VEKTRA
Cilj ve`banja: Upoznavanje studenata sa izgledom talasnog oblika struje statora asinhronog motora, uobli~ene putem histerezisnog strujnog regulatora i uticajem temperature na ta~nost rada algoritma indirektnog vektorskog upravljanja. U nastavku, date su smernice za izradu drugog dela ve`banja.
3.2.1 Snimanje valovitosti statorske struje asinhronog motora
Zadatak: (i) Snimiti talasni oblik struje statora asinhronog motora u laboratorijskoj stanici VEKTRA (ii) Odgovoriti na postavljena pitanja. Postupak:
Uklju~iti laboratorijsku stanicu VEKTRA (vidi Poglavlje 5.3) Pokrenuti izvr{enje programa vektor.exe (vidi Poglavlje 6.4) Zadati referentnu brzinu n = 300 ob/min (motor je neoptere}en) Na mernom mestu 3, snimiti struju statora asinhronog motora (vidi Poglavlje 5.1.2) Dobijeni talasni oblik prikazati u Izve{taju Ponoviti zadnje tri ta~ke za slu~aj referentne brzine n = 0 ob/min. Iza}i iz programa vektor.exe
Pitanja:
1. Koliko iznosi u~estanost fundamentala struje statora pri brzini n = 300 ob/min? 2. Koliko iznosi u~estanost strujnog ripla pri brzini n = 0 ob/min? 3. Koliko iznosi amplituda strujnog ripla pri brzini n = 0 ob/min?
Laboratorijska stanica VEKTRA
11
3.2.2 Analiza uticaja promene temperature na ta~nost rada algoritma indirektnog vektorskog upravljanja
Zadatak: (i) Putem eksperimenta na laboratorijskoj stanici VEKTRA, analizirati uticaj temperature na ta~nost rada algoritma indirektnog vektorskog upravljanja (ii) Odgovoriti na postavljena pitanja. Postupak:
Uklju~iti laboratorijsku stanicu VEKTRA (vidi Poglavlje 5.3) Pokrenuti izvr{enje programa vektor.exe (vidi Poglavlje 6.4) U programu vektor.exe, zadati referentnu brzinu n = 300 ob/min (opcija 1.) Ko~ioni asinhroni motor opteretiti strujom Idc = 1.5 A (vidi Poglavlje 5.1.4) Na ekranu PC ra~unara, uo~iti talasni oblik pokreta~kog momenta i brzine Ne menjaju}i referentnu brzinu, postepeno smanjivati konstantu klizanja SLIPGAIN (opcija 9.), od po~etne vrednosti SLIPGAIN = 2634 ka nuli, sa korakom 100
Pri svakoj promeni konstante SLIPGAIN, uo~iti promene na talasnom obliku pokreta~kog momenta
Konstantu SLIPGAIN smanjivati sve dok brzina naglo ne opadne (skoro na nulu) Kada se to desi (incidentna situacija), OBAVEZNO (u roku od 30 sekundi) izlazni napon AT smanjiti na nulu, a konstantu SLIPGAIN vratiti na po~etnu vrednost (SLIPGAIN = 2634)
Struju Idc smanjiti na nulu Po potrebi, ogled ponoviti
Pitanja:
1. Prethodni ogled simululira rad indirektno vektorski upravljanog asinhronog motora u prisustvu (a) povi{ene radne temperature (b) sni`ene radne temperature?
2. Usled ~ega je do{lo do naglog smanjenja brzine? Obrazlo`iti. 3.3 Izmena S/W laboratorijske stanice VEKTRA
Cilj ve`banja: Upoznavanje studenata sa algoritmima za brzo izra~unavanje trigonometrij-skih funkcija SIN i COS, i uticajem koji smanjenje periode odabiranja digitalnog regulatora brzine ima na svojstva brzinske regulacione petlje. U nastavku, date su smernice za izradu tre}eg dela ve`banja.
3.3.1 Izmena sinusne tabele u programu sin2000.exe (2000 na 501)
Zadatak: Izmeniti program sin2000.exe tako da sinusna tabela ima 501 odbirak ¼ sinusnog talasnog oblika. Izra~unavanje trigonometrijskih funkcija SIN i COS prilagoditi novom formatu sinusne tabele. Tako dobijeni program nazvati sin501.exe. Postupak:
Pre dolaska na ve`bu: Pro~itati Poglavlje 4.1.4. Na~initi program sin501.exe
Laboratorijska stanica VEKTRA
12
Izvorni kod programa sin501.exe prikazati u Izve{taju
Po dolasku na ve`bu, eksperimentalno verifikovati rad programa sin501.exe.
U prilog ve`bi, dat je program demo501.exe (Win32). Program izra~unava SIN i COS digitalne pozicije [0 1999] na osnovu look-up tabele sa 501 odbirak ¼ sinusnog talasnog oblika. Studentima se preporu~uje da po ugledu na demo501.exe, zadatak re{e na PC ra~unaru a zatim, da korisne rutine prebace u sin501.exe.
3.3.2 Izmena sinusne tabele u programu sin2000.exe (2000 na 126)
Zadatak: Izmeniti program sin2000.exe tako da sinusna tabela ima 126 odbiraka ¼ sinusnog talasnog oblika. Izra~unavanje trigonometrijskih funkcija SIN i COS prilagoditi novom formatu sinusne tabele. Zbog redukovanog broja odbiraka u sinusnoj tabeli (R = 2), ta~nost prora~una SIN i COS obezbediti primenom linearne interpolacije. Tako dobijeni program nazvati sin126.exe. Postupak:
Pre dolaska na ve`bu: Pro~itati Poglavlje 4.1.4 Na~initi program sin126.exe Izvorni kod programa sin126.exe prikazati u Izve{taju
Po dolasku na ve`bu, eksperimentalno verifikovati rad programa sin126.exe.
U prilog ve`bi, dat je program demo126.exe (Win32). Program izra~unava SIN i COS digitalne pozicije [0 1999], na osnovu look-up tabele sa 126 odbiraka ¼ sinusnog talasnog oblika i linearne interpolacije. Studentima se preporu~uje da po ugledu na demo126.exe, zadatak re{e na PC ra~unaru a zatim, da korisne rutine prebace u sin126.exe.
3.3.3 Izmena periode odabiranja regulatora brzine u programu speed.exe
Zadatak: (i) Izmeniti program speed.exe tako da perioda odabiranja regulatora brzine bude T = 5 ms. Za novu vrednost periode T, izra~unati vrednosti parametra regulatora brzine KP i KI tako da propusni opseg brzinske regulacione petlje bude fbw = 3 Hz, a odsko~ni odziv brzine, striktno aperiodi~an (maksimalno brz, bez preba~aja). Tako dobijeni program nazvati speed5ms.exe (ii) Eksperimentalno verifikovati rad programa speed5ms.exe na laboratorij-skoj stanici VEKTRA. Postupak:
Pre dolaska na ve`bu:
Upoznati se sa Simulink modelom speed.mdl (vidi Poglavlje 6.3) U skladu sa zadatkom, modifikovati speed.mdl (dobijeni model nazvati speed5ms.mdl) Na osnovu speed5ms.mdl, na~initi program speed5ms.exe Izvorni kod programa speed5ms.exe prikazati u Izve{taju
Po dolasku na ve`bu, eksperimentalno verifikovati rad programa speed5ms.exe.
Laboratorijska stanica VEKTRA
13
4. Teorijski osnovi
U ovom poglavlju dati su teorijski osnovi neophodni za razumevanje i uspe{nu realizaciju vezbe. Izlo`eni su koncepti:
Indirektnog vektorskog upravljanja asinhronim motorom Nelinearne strujne regulacije
4.1 Indirektno vektorsko upravljanje asinhronim motorom
Zna~aj asinhronih ma{ina u industriji je veliki, a primena raznovrsna. Po pravilu, mre`om vo|ena asinhrona ma{ina se koristi kao izvr{ni organ (aktuator elektromagnetnog momenta) u pogonima od kojih se zahteva pouzdan rad u uslovima te{ke industrijske eksploatacije i gde ne postoje strogi zahtevi u pogledu kvaliteta izlaznog momenta. Primera radi, asinhrone ma{ine se koriste za pogon velikih pumpnih postrojenja u vodoprivredi i naftnoj industriji. Relevantne analize na~injene u 2001 godini [1] pokazuju da asinhrone ma{ine tro{e do 50% ukupno proizvedene elektri~ne energije.
U primenama u kojima postoje strogi zahtevi u pogledu kvaliteta izlaznog momenta (servo aplikacije i elektri~na vu~a), mre`om vo|ena asinhrona ma{ina se ne koristi jer ima izrazito nepovoljne regulacione karakteristike. Ovu ~injenicu najbolje ilustruje naredna simulacija. Simuliran je ogled zaletanja asinhronog motora koji se napaja mre`nim naponom, bez i u prisustvu optere}enja. Rezultat simulacije je prikazan na sl. 1.
Pod dejstvom mre`nog napona, motor se zale}e u praznom hodu a zatim se optere}uje nominalnim momentom. U toku zaletanja, odsko~ni odziv izlaznog momenta je oscilatoran kao posledica visokog reda diferencijalnih jedna~ina kojima se mo`e opisati dinami~ki model asinhronog motora. Iz tog razloga, mre`om vo|ena asinhrona ma{ina se ne koristi u elektri~noj vu~i i servo aplikacijama, gde se zahteva brz i precizan odziv aktuatora.
0.5 s/pod -2
-1
0
1
2
3
4
5
moment
brzina
Slika 1. Odsko~ni odziv mre`om vo|enog asinhronog motora.
Laboratorijska stanica VEKTRA
14
4.1.1 Svrha
Svrha indirektnog vektorskog upravljanja je da od asinhrone ma{ine na~ini linearni izvr{ni organ po ugledu na strujno napajanu ma{inu jednosmerne struje sa nezavisnom pobudom. Podsetimo, ma{ina jednosmerne struje (MJS) sa nezavisnom pobudom poseduje armaturno strujno kolo i pobudno strujno kolo (vidi sl. 2).
Slika 2. Zamenska elektri~na {ema MJS sa nezavisnom pobudom.
U linearnom re`imu rada i pri konstanoj pobudnoj struji ip, MJS se pona{a kao sistem prvog
reda upravljan naponom ua (vidi sl. 3).
Slika 3. Dinami~ki model MJS napajane iz naponskog izvora.
Ako se MJS napaja iz strujnog izvora, dinami~ki model na sl. 3 se dodatno upro{}ava. Na priklju~ne krajeve armaturnog namotaja (A i B), dovodi se jednosmerni napon ua tako da
armaturna struja ia sledi referentni ulaz ia*. Ako je strujni regulator dovoljno brz, opravdano
je uzeti da je ia = ia* . Tada je saglasno modelu na sl. 3, izlazni moment MJS direktno
proporcionalan referentnom ulazu ia*, pa se strujno napajana MJS mo`e smatrati linearnim izvr{nim organom.
M ua
ia
e
A
B ip
C D
Mem Ra La
Ψp = f(ip)
Rp, Lp
Σ ua
sLR aa +1
ω
ip
ia
Ψp
KmMem
Ke
sK
p
p
τ+1
Laboratorijska stanica VEKTRA
15
Dinami~ki model strujno napajane MJS sa nezavisnom pobudom prikazan je na sl. 4.
Slika 4. Dinami~ki model MJS napajane iz strujnog izvora.
U indirektnom vektorskom upravljanju, pomo}u trofaznog strujno regulisanog naponskog invertora (strujnog izvora), u asinhronu ma{inu se injektuje statorska struju odgovaraju}e amplitude i prostorne orijentacije (vidi sl. 5).
Slika 5. Indirektno vektorsko upravljanje asinhronim motorom.
Pomo}u ids komponente statorske struje, koja se injektuje u pravcu rotorskog fluksa Ψr,
upravlja se fluksom asinhrone ma{ine. Pomo}u iqs komponente statorske struje, koja se
injektuje normalno na pravac rotoskog fluksa Ψr, upravlja se izlaznim momentom asinhrone ma{ine. Pritom, upravljanje momentom i fluksom je raspregnuto, pa je indirektno vektorski upravljana asinhroni ma{ina, linearni izvr{ni organ pogodan za primenu u elektri~noj vu~i i servo aplikacijama.
Dinami~ki model indirektno vektorski upravljanog asinhronog motora prikazan je na sl. 6.
Slika 6. Dinami~ki model indirektno vektorski upravljanog asinhronog motora.
ip
ia*
Ψp
KmMem
sK
p
p
τ+1
d
q
α, A
β
is
ids iqs θm
θe θk
Ψr
polo`aj rotora
ids
iqs
Ψdr
Mem
sM
rτ+1
rLMp
223
Laboratorijska stanica VEKTRA
16
4.1.2 Implementacija
Jedna~ine naponskog balansa za stator i rotor asinhronog motora u sinhronom koordinatnom sistemu glase:
qssds
dssds tiRu ΨωΨ
−+=d
d (1a)
dssqs
qssqs tiRu Ψω
Ψ++=
dd
(1b)
qrkdr
drr tiR ΨωΨ
−+=d
d0 (1c)
drkqr
qrr tiR Ψω
Ψ++=
dd
0 (1d)
Ako se pretpostavi linearna karakteristika magne}enja, jedna~ine fluksnih obuhvata glase
drdssds MiiL +=Ψ , (2a)
qrqssqs MiiL +=Ψ , (2b)
dsdrrdr MiiL +=Ψ , (2c)
qsqrrqr MiiL +=Ψ , (2d)
gde su Ls i Lr, induktivnosti statora i rotora date izrazima
),( sss LMMLL γγ >>+= (3a)
).( rrr LMMLL γγ >>+= (3b)
Zadatak indirektnog vektorskog upravljanja je da omogu}i {to ta~nije upravljanje izlaznim momentom asinhronog motora:
)(22
3)(22
3dsqrqsdr
rdsqsqsdsssem ii
LMpiipiM ΨΨΨΨΨ −=−=×=
rr (4)
Da bi se to postiglo, potrebno je ostvariti
.0=qrΨ (5)
Tada je, saglasno izrazu (4)
qsdrr
em iLMpM Ψ
223
= . (6)
Klizanje pri kojem je zadovoljen uslov (5) dobija se iz izraza (1d) i (2d) i glasi
qsdrr
k MiΨτ
ω 11= , (7)
gde je τr, dominanta vremenska konstanta rotora data izrazom
r
rr R
L=τ . (8)
Laboratorijska stanica VEKTRA
17
Fluksom Ψdr upravlja se pomo}u struje ids. Iz izraza (1c) i (2c) uz uslov (5), dobija se
dsr
drr
dr Mit τ
Ψτ
Ψ 11d
d+−= (9)
Jedna~inama (6) i (9) odgovara dinami~ki model prikazan na sl. 6.
Dakle, uz uslove:
Motor je strujno napajan (propusni opseg strujne petlje je velik),
Poznata je orijentacija rotorskog fluksa (klizanje ωk), d-osa je orijentisana u pravcu rotorskog fluksa,
dinami~ki model asinhronog motora se svodi na model strujno napajane MJS sa nezavisnom pobudom.
Za realizaciju algoritma indirektnog vektorskog upravljanja, klju~no je poznavanje prostorne
orijentacije rotorskog fluksa (vidi sl. 5). Ugao θe se mo`e proceniti kao
kme θθθ += , (10)
gde je θm, ugaoni pomeraj rotora asinhrone ma{ine u odnosu na stator (meri pomo}u dava~a
pozicije koji se nalazi na vratilu asinhronog motora) i gde je θk ugao klizanja se pocenjuje na osnovu brzine klizanja (7) kao
ttt
kk ∫=0
d)(ωθ . (11)
Upravlja~ka struktura koja realizuje algoritam indirektnog vektorskog upravljanja asinhro-nim motorom, prikazana je na sl. 7.
Ulazi u algoritam indirektnog vektorskog upravljanja su:
Referentni moment M*
Referentni fluks Ψdr*
Polo`aj rotora asinhronog motora θm
Izlaz algoritma indirektnog vektorskog upravljanja su:
Strujne reference ia*, ib* i ic*
Strujne reference se prosle|uju strujno regulisanom naponskom invertoru (strujnom izvoru) koji na priklju~nim krajevima asinhrone ma{ine generi{e sistem trofaznih napona tako da statorske struje slede zadate strujne reference. Ako je propusni opseg strujne petlje dovoljno velik, izlazni moment asinhrone ma{ine jednak je referentnom momentu M*. Tada asinhrona ma{ina, kao i strujno napajana MJS sa nezavisnom pobudom, postaje linearni izvr{ni organ pogodan za primenu u elektri~noj vu~i i servo aplikacijama.
Laboratorijska stanica VEKTRA
18
Slika 7. Blok dijagram indirektno vektorski upravljanog asinhronog motora.
U brojnim primena algoritma indirektnog vektorskog upravljanja, elektromagnetni fluks asinhrone
ma{ine je konstantan i nominalan (Ψdr* = Ψn*). Tada se klizanje ωk, saglasno izrazima (7) i (9), mo`e proceniti kao
.*
qsn
qsknk i
iωω = (12)
U tom slu~aju, algoritam indirektnog vektorskog upravljanja ima izgled kao na sl. 8.
Slika 8. Algoritam indirektnog vektorskog upravljanja.
kθ
kω
Ψdr*
M1
M* p2
32 ÷
r
Mτ
dq/αβ 2F/3F
invertor sa
strujnom regulacijom
AM
rsτ+11 Σ∫
θm
θe
Parkova Klarkova
ids*
iqs*
drΨ
θe
Dava~
iα*
iβ*
ia*
ib*
ic*
÷
E
Algoritam indirektnog vektorskog upravljanja
D
kθkω
Ψn* M1
M* p2
32
qsn
kn
iω
dq/αβ 2F/3F
Σ∫θm
θe
Parkova Klarkova
idsn*
iqs*
iα*
iβ*
ia*
ib*
ic*
÷ θe
Laboratorijska stanica VEKTRA
19
4.1.3 H/W zahtevi
Za realizaciju algoritma indirektnog vektorskog upravljanja prikazanog na sl. 8, potrebno je imati digitalni kontroler koji ima mogu}nost generisanja Real-Time prekida i koji poseduje (i) broja~ enkoderskih impulsa (ii) dva D/A konvertora (vidi sl. 9).
Slika 9. H/W zahtevi indirektnog vektorskog upravljanja.
Prekidna rutina u ekvidistantnim vremenskim intervalima sa periodom T, izvr{ava algoritam indirektnog vektorskog upravljanja. Algoritam na ulazu o~itava sadr`aj broja~a enkoderskih impulsa θm(k) i digitalne strujne reference ids*(k) i iqs*(k), koje sti`u iz nadre|ene brzinske ili
pozicione petlje. Na izlazu, algoritam generi{e digitalne strujne reference iα*(k) i iβ*(k) i prosle|uje ih D/A konvertorima. Pomo}u D/A konvertora, digitalne strujne reference iα*(k) i iβ*(k) se pretvaraju u analogne strujne reference iα*(t) i iβ*(t). Zadatak strujno regulisanog naponskog invertora je da zadate analogne strujne reference isprati {to br`e i {to preciznije.
Perioda odabiranja algoritma indirektnog vektorskog upravljanja T, mora biti barem za red veli~ine manja od vremenske konstante rotora (8). Tada strujni regulator ima mogu}nost da potisne sporopromenljivi poreme}aj u vidu indukovane elektromotorne sile statora i obezbedi zahtevanu dinamiku i ta~nost strujne regulacije. Tipi~no, vrednost periode T iznosi
od x10μs do x100μs. Ovo relativno kratko vreme name}e potrebu za brzim digitalnim kon-trolerima, koji u realnom vremenu mogu da obave slo`ena izra~unavanja. Pre svega, tu se misli na obrtnu transformaciju, jer podrazumeva prora~un trigonometrijskih funkcija SIN i COS.
Broja~ enkoderskih impulsa
iα*(t)
iβ*(t)
iα*(k)
iβ*(k)
θe(k)
θm(k)
DIGITALNI KONTROLER
faza A
faza B
)1()()( −−= kkk mmm θθθΔ
)(sin)()(cos)()( kkikkiki eqseds θθβ +=
)(sin)()(cos)()( kkikkiki eqseds θθα −= ids*(k)
iqs*(k)
D/A
D/A
)()()1()( kkkk kmee θΔθΔθ θ ++−=
Tkk kk )()( ωθ =Δ
Real-Time prekidna rutina
Laboratorijska stanica VEKTRA
20
4.1.4 S/W zahtevi
Za izra~unavanje trigonometrijskih funkcija SIN i COS u algoritmu indirektnog vektorskog upravljanja, naj~e{}e se koristi aproksimativni metod koji se zasniva na upotrebi sinusne (look-up) tabele. U ovom pristupu, odbirci 1/4 sinusnog talasnog oblika se u vidu tabele sme{taju u programsku memoriju digitalnog kontrolera. Na~in formiranja sinusne tabele prikazan je na sl. 10.
Slika 10. Tabeliranje 1/4 sinusnog talasnog oblika.
U fazi izvr{enja programa, za vrednost digitalnog ekvivalenta pozicije iz opsega [0 4N – 1], iz sinusne tabele direktno se o~itava sinus u Q15 formatu. Prednost ovog pristupa ogleda se u velikoj brzini rada. Mana je veliko zauze}e programske memorije.
Primenom linearne aproksimacije, mogu}e je smanjiti veli~inu sinusne tabele a da se pritom,
zna~ajno ne smanji ta~nost prora~una. Tipi~no, uzima se 2R puta manje odbiraka (R ≥ 2), jer tada programska realizacija linearne interpolacije zahteva deljenje faktorom 2R, {to se u digitalnom kontroleru jednostavno implementira (aritmeti~ko {iftovanje akumulatora za R mesta udesno). Primera radi, pri faktoru R = 2, za izra~unavanje trigonometrijske funkcije SIN koristi se obrazac prikazan na sl. 11.
Slika 11. Izra~unavanje SIN pomo}u sinusne tabele i linearne aproksimacije.
⎟⎠⎞
⎜⎝⎛=
Nkky
2sin2)( 15 π
0
. . .
N
. . .
1
k
. . .
y(k)
(4k) 4k + 3
y(k)
y(k + 1)
4k + 1 4k + 2 (4k + 4)
mod4 (k) mod4 (k + 1)
y(4k + 2)
Laboratorijska stanica VEKTRA
21
4.1.4 Prakti~na realizacija Polaze}i od upravlja~ke strukture na sl. 9, u laboratorijskoj stanici VEKTRA prakti~no je realizovan algoritam indirektnog vektorskog upravljanja asinhronim motorom (vidi Poglavlje 6.2). Parametri asinhronog motora dati su u Poglavlju 5.1.4. Za date parametre, izra~unate su dq komponente statorske struje u nominalnom radnom re`imu
A93.1A37.12 =⋅=dsni , (13a)
A24.2A59.122 22 =⋅=−= dsnsnqsn IIi . (13b)
U poglavlju 5.1.2 je pokazano da broju 255 upisanom u registar D/A konvertora odgovara izlazni napon od +10 VDC. Otuda, procesorski ekvivalenti struja idsn i iqsn uzimaju vrednosti
9852552 =⋅⋅=
AII dsnDNOM , (14a)
11452552 =⋅⋅=
AII qsnQNOM . (14b)
Polaze}i od izraza (12), izvodi se procesorka konstanta SLIPGAIN, koja defini{e zavisnost
prira{taja ugla klizanja Δθk od struje iqs*, u toku jedne periode odabiranja T
21082602SLIPGAIN 16 ==πω
nQNOM
kn KI
T, (15)
gde su:
ωk = 110 [ob/min], nominalna brzina klizanja
T = 0.001 [s], perioda odabiranja
Kn = 2000/2π, prenosni odnos inkrementalnog enkodera
Mno`enjem sa 216, obezbe|uje se 32-bit ta~nost prora~una.
Izvorni C kod koji realizuje algoritam indirektnog vektorskog upravljanja glasi:
TETA.WORD.HI += nIncPos; TETA.WORD.HI += nIncPos; nSlipInc = (long)SLIPGAIN*nIQref;
TETA.ALL += nSlipInc; TETA.ALL += nSlipInc; if(TETA.ALL > LONG1999) TETA.ALL -= LONG2000; if(TETA.ALL < 0) TETA.ALL += LONG2000; nTetaE = (UINT)TETA.WORD.HI; nSinTeta = SIN(nSineTable, nTetaE); nCosTeta = COS(nSineTable, nTetaE); ACC.ALL = (long)IDNOM*nCosTeta - (long)nIQref*nSinTeta; nIalfa = ACC.WORD.HI; // Strujne reference ACC.ALL = (long)IDNOM*nSinTeta + (long)nIQref*nCosTeta; nIbeta = ACC.WORD.HI; // Strujne reference
Laboratorijska stanica VEKTRA
22
4.2 Nelinearna strujna regulacija Zahtev indirektnog vektorskog upravljanja koji se odnosi na strujno napajanje asinhronog motora mo`e biti zadovoljen ako se za regulaciju statorske struje asinhronog motora koristi histerezisni regulator prikazan na sl. 12.
Slika 12. Nelinearna regulacija statorske struje asinhronog motora.
Princip rada:
Histerezisni regulator poredi referentnu struju ia* i faznu struju ia:
Kada ia padne na vrednost ia* – H, pali se prekida~ S1 (struja ia raste)
Kada ia dostigne vrednost ia* + H, pali se prekida~ S2 (struja ia opada)
Izgled statorske struje asinhronog motora, obli~ene putem histerezisnog strujnog regulatora, dat je na sl. 13.
Slika 13. Struja statora asinhronog motora uobli~ena putem histerezisnog strujnog regulatora.
Fazna struja ia osciluje u histerezisnom prozoru oko zadate reference ia* (vidi sl. 13) Pritom, uslov koji mora biti zadovoljen glasi
maxd*d
2 tiLemsE a
sγ+> . (16)
Σ
+E/2
Lγs ia*(t)
ia(t)
S1
S2 Ui
+/-H
-E/2
~ωΨr
ems
ia
+ H
- H
ia
ia* t
Laboratorijska stanica VEKTRA
23
Invertor mora imati dovoljnu naponsku marginu kako ne bi do{lo do izobli~enja statorske struje ia.
Amplituda strujnog ripla je konstantna i odre|ena je {irinom histerezisnog prozora H, dok se u~estanost menja. U literaturi [2] je pokazano da u~estanost strujnog ripla zavisi od indeksa
modulacije izlaznog napona m i parametara E i Lγs
)(2
)( 2mmHL
Emfs
sw −=γ
(14)
Prednosti: Histerezisni regulator trenutno reaguje na strujnu gre{ku, pa se mo`e smatrati da je propusni opseg strujne petlje teorijski beskona~an. Mane: Komutacije u invertorskom mostu nisu stacionarne. Saglasno izrazu (14), njihova u~estanost zavisi od indeksa modulacije m (vidi sl. 14).
Slika 15. Nestacionarne komutacije prekida~a u invertoru.
U~estanost komutacija je najmanja kada m → 0 i m → 1, a najve}a za m = 0.5.
Zbog nestacionarnih komutacija, spektru izlaznog napona ne poseduje samo harmonijsku komponentu na u~estanosti 1/T (kao kod PWM modulacije), ve} i mno{tvo vi{ih harmonika. Ovo za posledicu ima pove}anu buku i jako izra`ene elektromagnetne smetnje, koje je te{ko potisnuti. Komutaciona u~estanost raste u oblasti malih brzina kada je indukovana ems statora mala. U~estanost komutacija je odre|ena vremenom potrebnim da strujna gre{ka napravi ekskurziju 2H, i osim od H, zavisi i od strmine struje koja je uslovljena sa E, ems i
Lγs.
uisr
+E/2
+E
t
0
m = 0.5
m → 1
m → 0
t
~este komutacije
retke komutacije
ui
E
0
Laboratorijska stanica VEKTRA
24
5. Prakti~ni aspekti rada sa laboratorijskom stanicom VEKTRA U ovom poglavlju, dat je detaljan opis laboratorijske stanice VEKTRA. Opisani su:
H/W resursi laboratorijske stanice VEKTRA S/W resursi laboratorijske stanice VEKTRA Procedura uklju~enja/isklju~enja laboratorijske stanice VEKTRA Postupak merenja na laboratorijskoj stanici VEKTRA
5.1 Opis H/W resursa laboratorijske stanice VEKTRA
Izgled laboratorijske stanice VEKTRA dat je na sl. 16.
Slika 16. Laboratorijska stanica VEKTRA. Rednim brojevima na sl. 16, ozna~eni su H/W resursi laboratorijske stanice VEKTRA:
1. PC ra~unar sa prilagodnom karticom 1 2. Prilagodna kartica 2 3. Strujno regulisani naponski invertor 4. Asinhroni motor i optere}enje 5. Inkrementalni opti~ki enkoder
Osciloskop prikazan na sl. 16 deo je merne opreme laboratorijske stanice VEKTRA. Koristi se za snimanje izlaznih veli~ina laboratorijske stanice VEKTRA.
Funkcionalni blok dijagram laboratorijske stanice VEKTRA prikazan je na sl. 17. Ima za cilj da uka`e na uzajamnu povezanost H/W resursa laboratorijske stanice VEKTRA i osvetli tok najva`nih digitalnih i analognih signala u njoj. U tu svrhu, uzeto je da PC ra~unar izvr{ava program za indirektno vektorsko upravljanje asinhronim motorom sa regulacijom brzine speed.exe.
1
3
4 5
2
Laboratorijska stanica VEKTRA
25
Slika 17. Funkcionalni blok dijagram laboratorijske stanice VEKTRA.
Program speed.exe sadr`i rutinu main (program niskog prioriteta) i real-time prekidnu
rutinu new_timer_handler (vidi Poglavlje 5.2.5). Rutina main omogu}ava korisniku
zadavanje vrednosti referentne brzine i kontrolisani izlazak iz programa. Prekidna rutina se izvr{ava u ekvidistantnim vremenskim intervalima sa periodom TSPL = 1 ms. Ulazi u prekidnu rutinu su (i) referentna brzina (ii) digitalni ekvivalent pozicije enc(k) koji se dobija o~itavanjem sadr`aja broja~a enkoderskih impulsa. Na osnovu ovih ulaza, u prekidnoj rutini se izvr{avaju upravlja~ke rutine (regulacija brzine i indirektno vektorsko upravljanje) koje na izlazu daju (i) digitalne signale op{te namene var1(k) i var2(k) (ii) digitalne strujne reference iα*(k) i iβ*(k) (iii) digitalni kontrolni signal enable koji je aktivan pri ~itanju enc(k). Digitalni izlazi op{te namene se koriste za ispis digitalnih veli~ina na D/A konvertor. Tada se mogu posmatrati pomo}u osciloskopa. U slu~aju programa speed.exe, digitalni izlaz var1(k) je upotrebljen za ispis regulisane brzine dok se var2(k) ne koristi.
Prilagodna kartica 1 se nalazi na ISA magistrali PC ra~unara. Omogu}ava prenos digitalnih signala var1(k), var2(k), iα*(k), iβ*(k), enc(k) i enable izme|u PC ra~unara i prilagodne kartice 2. Prenos digitalnih signala se obavlja putem flat-kabla.
Prilagodna kartica 2 poseduje ~etiri D/A konvertora (DAC1 do DAC4), broja~ enkoderskih impulsa i tri merna mesta (MM1 do MM3). D/A konvertori DAC1 i DAC1 vr{e konverziju digitalnih signala op{te namene var1(k) i var2(k) u analogne signale var1(t) i var2(t), respektivno. Analogni izlazi var1(t) i var2(t) se posmatraju pomo}u osciloskopa na mernom mestu 2 (MM2). D/A konvertori DAC3 i DAC3 vr{e konverziju digitalnih strujnih referenci iα*(k) i iβ*(k) u analogne strujne reference iα*(t) i iβ*(t), respektivno. Analogne strujne
reference iα*(t) i iβ*(t) se prosle|uju strujno regulisanom naponskom invertoru. Posmatraju se pomo}u osciloskopa na mernom mestu 3 (MM3).
korisnik
program
1. 2.
iα*(k) iβ*(k)
enc(k)
enable
3x8255
DAC1
Broja~enkoderskih
impulsa
8-bit 8-bit
1-bit
12-bit
var1(k) var2(k)
8-bit 8-bit
DAC2DAC3DAC4
PK1
iα*(t) iβ*(t)
5.
Faza
A
Faza
B
AM
ia(t)
3.
4.
ib(t) ic(t)
u v wxy
z
main
MM2
MM3
MM1
~220V
AT
Prek
ida
rutin
a
iα(t) iβ(t)
Laboratorijska stanica VEKTRA
26
Strujno regulisani naponski invertor generi{e trofazni sistem napona na priklju~nim krajevi-ma asinhronog motora tako da statorske struje ia(t), ib(t) i ic(t) odnosno, iα(t) i iβ(t) slede
zadate analogne strujne reference iα*(t) i iβ*(t). Statorske struje iα(t) i iβ(t) posmatraju se pomo}u osciloskopa na mernom mestu 3 (MM3) prilagodne kartice 2.
Inkrementalni opti~ki enkoder sa 1000 impulsa po obrtu i dva detekciona kompleta (A i B) koristi se za merenje pozicije vratila asinhronog motora. Prilikom obrtanja vratila asinhronog motora, inkrementalni enkoder generi{e impulse ~ija je u~estanost direktno proporcionalana ugaonoj brzini obrtanja. Impulsi faza A i B inkrementalnog enkodera prosle|uju se broja~u enkoderskih impulsa. Posmatraju se pomo}u osciloskopa na mernom mestu 1 (MM1) prilagodne kartice 2.
Broja~ enkoderskih impulsa uobli~ava i broji impulse koji sti`u sa faza A i B inkremental-nog opti~kog enkodera. Rezultat brojanja impulsa-digitalni ekvivalent pozicije enc(k), nalazi se u dvosmernom broja~u u vidu 12-bitne digitalne re~i. Prilikom ~itanja digitalnog ulaza enc(k), kontrolni signal enable mora biti aktivan. Nakon ~itanja enc(k), kontrolni signal enable mora biti neaktivan. Stanje signala enable defini{e se programskim putem.
U poglavljima koja slede, dat je detaljan opis H/W resursa laboratorijske stanice VEKTRA.
5.1.1 PC ra~unar i prilagodna kartica 1
PC ra~unar i prilagodna kartica 1 (PK1) prikazani su na sl. 18.
Slika 18. PC ra~unar i prilagodna kartica 1.
Elektri~na {ema veza prilagodne kartice 1 data je u Poglavlju 6.1 na sl. 28.
PK1
Laboratorijska stanica VEKTRA
27
Prilagodna kartica 1 se nalazi na 8-bitnoj ISA magistrali PC ra~unara. Poseduje:
Tri paralelna porta 8255 (1P, 2P i 3P) Logiku za dekodovanje adresa iz opsega 0x0300 do 0x030B
Prilagodna kartica 1 poseduje jo{ i tajmer 8253 i dva A/D konvertora. Me|utim, kako ih laboratorijskoj stanici VEKTRA ne koristi, nisu prikazani na elektri~noj {emi veza prilagodne kartice 1.
Konfiguracioni registri (CON) i registri podataka (A, B, C) paralelnih portova (1P, 2P i 3P) mapirani su u I/O prostor PC ra~unara. Funkcije registara i njihove adrese nazna~ene su u Tabeli 1. Tabela 1. Funkcija registara 8255 paralelnih portova i njihove adrese.
Port Registar Adresa Funkcija registra (bita)
1P A 0x0300 Ne koristi se
1P B 0x0301 Ne koristi se
1P C 0x0302 1PC[7 – 4] → ulaz 1PC[3 – 0] → izlaz. 1PC1 je enable
1P CON 0x0303 Konfiguracioni registar
2P A 0x0304 2PA[7 – 0] → izlaz. [alje iα*(k) na DAC3
2P B 0x0305 2PB[7 – 0] → izlaz. [alje iβ*(k) na DAC4
2P C 0x0306 2PC[7 – 0] → izlaz. [alje var1(k) na DAC1
2P CON 0x0307 Konfiguracioni registar
3P A 0x0308 3PA[7 – 0] → ulaz. ^ita gornja 4-bita enc(k)
3P B 0x0309 3PB[7 – 0] → ulaz. ^ita donjih 8-bita enc(k)
3P C 0x030A 3PC[7 – 0] → izlaz. [alje var2(k) na DAC2
3P CON 0x030B Konfiguracioni registar
Oznake u Tabeli 1 slede notaciju:
S obzirom da su adrese registara nPA, nPB, nPC i nPCON (n = 1, 2 i 3) mapirane u I/O prostor PC ra~unara, za obra}anje ovim registarima (~itanje/upis) S/W laboratorijske stanice VEKTRA koristi makroe inp i outp programskog jezika C ~iji prototipovi glase:
int inp(int port, int byte_value);
int outp(int port, int byte_value);
P
Port (1, 2 ili 3)
Registar (A, B, C ili CON)
Bit [7 – 1]
Laboratorijska stanica VEKTRA
28
Sekvenca programskog koda koja inicijalizuje portove prilagodne kartice 1 na na~in opisan u Tabeli 1 glasi:
outp(0x0303, 0x92); outp(0x0307, 0x80); outp(0x030b, 0x9a);
5.1.2 Prilagodna kartica 2
Izgled prilagodne kartice 2 dat je na sl. 19.
Slika 19. Izgled prilagodne kartice 2.
Elektri~na {ema veza prilagodne kartice 2 data je u Poglavlju 6.1 na sl. 29(a), 29(b) i 29(c).
Prilagodna kartica 2 poseduje:
^etiri 8-bitna D/A konvertora (DAC1 do DAC4) Dvosmerni 12-bitni broja~ enkoderskih impulsa Tri merna mesta (MM1 do MM3) Konektor za flat-kabl (F)
Na sl. 19, oblast D/A konvertora ozna~ena je sa DAC a oblast broja~a enkoderskih impulsa sa E. Sa MM1, MM2 i MM3 ozna~ena su merna mesta 1, 2 i 3, respektivno.
D/A konvertori DAC1 i DAC1 vr{e konverziju digitalnih izlaza op{te namene var1(k) i var2(k) u analogne izlaze var1(t) i var2(t), respektivno. Analogni izlazi var1(t) i var2(t) se posmatraju pomo}u osciloskopa na mernom mestu 2 (MM2). Analogni izlazi D/A konver-tora DAC1 i DAC2 nisu galvanski izolovani od PC ra~unara.
E
DAC
MM1 MM2
MM3
F
Laboratorijska stanica VEKTRA
29
D/A konvertori DAC3 i DAC3 vr{e konverziju digitalnih strujnih referenci iα*(k) i iβ*(k) u analogne strujne reference iα*(t) i iβ*(t), respektivno. Analogne strujne reference iα*(t) i iβ*(t) se prosle|uju strujno regulisanom naponskom invertoru (vidi sl. 17). Posmatraju se pomo}u osciloskopa na mernom mestu 3 (MM3). Tako|e, na mernom mestu 3 mogu se posmatrati i struje statora asinhronog motora iα(t) i iβ(t). Analogni izlazi D/A konverta DAC3 i DAC4 galvanski su izolovani od PC ra~unara pomo}u optokaplera. Na ovaj na~in, PC ra~unar se {titi od pojave prenapona na invertoru. Izlazni napon 8-bitnih D/A konvertora DACn uzima vrednosti iz opsega [–10 +10] VDC. Ako se u prihvatni registar D/A konvertora upi{e broj 0, na njegovom izlazu }e se pojaviti napon – 10 VDC. Broju 128 odgovara napon 0 VDC a broju 255, napon +10 VDC.
Broja~ enkoderskih impulsa uobli~ava i broji impulse koji sti`u sa faza A i B inkremental-nog opti~kog enkodera. Enkoderski impulsi se uvode u prilagodnu karticu 2 preko opto-kaplera. Posmatraju se pomo}u osciloskopa na mernom mestu 1 (MM1). Logika za derivaciju UP/DOWN impulsa generi{e UP i DOWN impulse na osnovu uzlazne i silazne ivice jedne enkoderske faze i logi~kog stanja impulsa druge enkoderske faze [2]. Uobli~eni UP/DOWN impulsi se vode na ulaz dvosmernog broja. Broja~ je 12-bitni i broji od 0 do 2499. Pri stanju broja~a 2499, UP impuls postavlja vrednost broja~a na 0; DOWN impuls dekrementira sadr`aj broja~a. Pri stanju broja~a 0, DOWN impuls postavlja vrednost broja~a na 2499; UP impuls inkrementira sadr`aj broja~a. Sadr`aj broja~a enkoderskih impulsa enc(k) postaje transparentan ako je stanje kontrolnog signala enable = 1 i ako je stanje broja~a stabilno. Naime, interna logika broja~a onemogu}ava aktiviranje izlaznog latch-a dok traje promena stanja broja~a. Nakon ~itanja enc(k), kontrolni signal enable mora biti neaktivan (enable = 0). Stanje kontrolnog signala enable defini{e se programskim putem. U nastavku, nazna~ena je sekvenca programkog koda koja ~ita sadr`aj broja~a enkoderskih impulsa:
outp(0x0302, 0x02); /* enable = 1 */ EncHiByte = inp(0x0308); /* Cita gornjih 4 bita 12-bit brojaca */ EncLoByte = inp(0x0309); /* Cita donjih 8 bita 12-bit brojaca */ outp(0x0302, 0x00); /* enable = 0 */
Konektor (F) uvodi flat-kabl u prilagodnu karticu 2. Putem flat-kabla, ostvarena je veza izme|u prilagodne kartice 1 (PC ra~unara) i prilagodne kartice 2. U poglavlju 6.1 na sl. 29(d) nazna~ena je funkcija pinova na konektoru (F).
Comment [ZH1]: Predavanja iz MPU
Comment [ZH2]: Ovo mora sa necrta (iskopira)
Laboratorijska stanica VEKTRA
30
5.1.3 Strujno regulisani naponski invertor Generi{e trofazni sistem napona na priklju~nim krajevima asinhronog motora tako da struja statora sledi zadate strujne reference iα*(t) i iβ*(t). Struja statora i strujne reference iα*(t) i iβ*(t) posmatraju se pomo}u osciloskopa na mernom mestu 3 (MM3) prilagodne kartice 2.
Izgled strujno regulisanog naponskog invertora dat je na sl. 20.
Slika 20. Strujno regulisani naponski invertor. Strujno regulisani naponski invertor ~ine:
Monofazni autotransformator (AT) Upravlja~ko kolo invertora (UK) Energetsko kolo invertora (EK)
Izgled upravlja~kog kola invertora dat je na sl. 21.
Slika 21. Upravlja~ko kolo invertora.
K1 K2 K3 K4 K5 K6 K7 K8 K9
P2
AT UK
EK
P1
Laboratorijska stanica VEKTRA
31
Upravlja~ko kolo invertora sadr`i:
Napajanje upravlja~kog kola invertora (kartice K1 i K2) ^etiri upalja~ke kartice (kartice K3 do K6) Karticu prekostrujne i prenaponske za{tite (K7) Karticu strujne regulacije (K8) Karticu koja strujne reference iα*(t) i iβ*(t) uvodi u invertor (kartica K9) Prekida~ za konfigurisanje moda rada invertora (P1) Prekida~ za uklju~enje energetskog kola invertora (P2)
Izgled energetskog kola invertora dat je na sl. 22.
Slika 22. Energetsko kolo invertora.
Energetsko kolo invertora sadr`i:
Energetske bipolarne tranzistore invertorskog mosta (T1 do T6) Energetski bipolarni tranzistor za otporni~ko ko~enje (T7) Diodu za otporni~ko ko~enje (D) Diodni most za napajanje energetskog kola invertora (DE) Diodni most za napajanje upravlja~kog kola invertora (DU) Sabirnice jednosmernog me|ukola (SP – plus sabirnica, SM – minus sabirnica) [ant otpornik za merenje struje jednosmernog me|ukola ([ANT) Elektrolitske kondenzatore jednosmernog me|ukola Otpornik za ko~enje
Elektrolitski kondenzatori i otpornik za ko~enje deo su energerskog kola invertora iako se fizi~ki nalaze u industrijskom reku, zajedno sa upravlja~kim kolom invertora.
T1
T2
T3 T5
T4 T6
T7
DE
DU
D
SP
SM
[ANT
Laboratorijska stanica VEKTRA
32
Blok {ema strujno regulisanog naponskog invertora prikazana je na sl. 23.
Slika 23. Blok dijagram strujno regulisanog naponskog invertora.
AT
∼ 220 V Umax = 325 V
R
T7
D
[ANT
T4 T5 T6
T1 T2 T3 C
ia ib ic
AM
Kolo prenaponske
za{tite
+15 V
K6
Signal za paljenje T7
K3, K4, K5
Signali za paljenje T1-T6
B'1 B'2 B'3 B'4 B'5 B'6
Kolo prekostrujne
za{tite
Up
Blokira T1-T3
RESET
K7
1Ω
1Ω
1Ω
Klarkova
3F/2F
Strujni regulator
Up
iα*
iβ*
iα
iβ
Δiα Δiβ
Σ
Σ
K8
Laboratorijska stanica VEKTRA
33
Kartice K1 i K2 su identi~ne. Napajaju upravlja~ko kolo invertora. Kartice se napajaju iz zasebnog diodnog ispravlja~a (DU) (vidi sl. 22) sa 300VDC ~ime je razdvojeno napajanje upravlja~kog kola i energetskog kola invertora. Na svakoj kartici se nalaze izvori jednosmer-nog napona, me|usobno galvanski izolovani, i to po ~etiri izvora od +/– 5 VDC i po jedan od +/– 15 VDC. Izvori su galvanski izolovani zbog razli~itih naponskih nivoa na kojima se nalaze energetski tranzistori invertora. Spu{tanje napona i galvanska izolacija ostvareni su pomo}u DC/DC konvertora.
Elektri~na {ema veza kartica K1 i K2 data je u Poglavlju 6.1 na sl. 30. Kartice K3 do K6 su identi~ne. Uobli~avaju, poja~avaju i opti~ki izoluju signale za paljenje energetskih tranzistora u invertoru koji sti`u sa kartice strujne regulacije (K8). Kartice K3, K4 i K5 slu`e za paljenje energetskih tranzistora u invertorskom mostu (T1 do T6). Kartica K6 slu`i za paljenje energetskog tranzistora za ko~enje (T7). Svakoj kartica poseduje po dva upalja~a. Na karticama K3, K4 i K5 nalaze se upalja~i za tranzistore T1 do T6. Na kartici K3 se nalaze upalja~i za tranzistore T1 i T2, na kartici K4 upalja~i za tranzistore T3 i T4 a na kartici K5, upalja~i za tranzistore T5 i T6. Na kartici K6 se nalaze dva upalja~a, ali se samo jedan, donji upalja~, koristi za paljenje tranzistora za otporni~ko ko~enje (T7). Signali za paljenje tranzistora mogu se posmatrati pomo}u osciloskopa. Na prednjoj ivici svake kartice nalaze se po ~etiri izvoda, dva za baze i dva za emitere. Izvodi se vide na sl. 21.
Elektri~na {ema veza kartica K3 do K6 data je u Poglavlju 6.1 na sl. 31. Kartica K7. [titi energetsko kolo invertora od strujnog preoptere}enja i ograni~ava vrednost napona u jednosmernom me|ukolu. Izgled kartice dat je na sl. 24.
Slika 24. Kartica prekostrujne i prenaponske za{tite.
RESET
NL
Laboratorijska stanica VEKTRA
34
Prekostrujna za{tita reaguje kada struja jednosmernog me|ukola invertora dostigne strujni limit. Informacija o struji jednosmernog me|ukola na karticu K7 sti`e sa {ant otpornika ([ANT), vidi sl. 22. Napon na {antu UP direkto je proporcionalan vrednosti struje jedno-
smernog me|ukola. Napon UP se vodi na ulaz komparatora gde se poredi sa naponom reagovanja prekostrujne za{tite. Kada napon na {antu dostigne vrednost referentnog napona, blokiraju se donji tranzistori T1, T2 i T3, pa struja statora asinhronog motora pada na nulu (vreme opadanja statorske struje reda je nekoliko vremenskih konstanti rotorskog namotaja). Deblokada prekostrujne za{tite vr{i se pritiskom na taster RESET (vidi sl. 24)
Taster RESET se nalazi na prednjoj ivici kartice K7. Crvene je boje. Vidi se i na sl. 21.
Po uklju~enju pogona, donji tranzistori su blokirani kao da je reagovala prekostrujna za{tita, pa je potrebno pritisnuti taster RESET da bi se pogon pokrenuo.
U slu~aju da prekostrujna za{tita reaguje u toku rada, obavezno isklju~iti napajanje invertora i obavestiti asistenta!
Prenaponska za{tita reaguje kada napon jednosmernog me|ukola dostigne naponski limit definisan potenciometrom NL (vidi sl. 24). Naponski limit je pode{en na 325 VDC i ne treba ga menjati. Kada reaguje prenaponska za{tita, uklju~uje se tranzistor T7 i vi{ak energije se prazni preko otpornika za ko~enje R. Kada napon jednosmernog me|ukola padne ispod 325 VDC, tranzistor T7 se isklju~uje. Otpornik R ne mo`e da disipira veliku koli~inu energije, pa bi u slu~aju ~estih uklju~enja tranzistora T7, do{lo do njegovog pregorevanja. Napon jednosmernog me|ukola tada postaje previsok, pa dolazi do proboja na elektorolitskim kondezatorima. Do proboja mo`e do}i (i) usled ~estih reversa motora, kada se usled ko~enja ~esto uklju~uje tranzistor T7 (ii) ako je izlazni napon AT ve}i od 230V (napon jednosmernog me|ukola tada je ve}i od 325 VDC). Zato treba biti pa`ljiv prilikom pu{tanja u rad laboratorijske stanice VEKTRA.
Izlazni napon AT treba pove}avati postepeno i NIKADA preko 230V!
Elektri~na {ema veza kartica K7 data je u Poglavlju 6.1 na sl. 32.
Ulazni signali u karticu su PSZAS_5 (napon UP) i PNZAS_31 (napon jednosmernog me|u-kola). Masa kartice se nalazi na potencijalu donje grane invertorskog mosta. Izlazni signali iz kartice su PC_1 do PC_4, PC_6 i PC_7. Njima se blokira rad poja~ava~a okidnih impulsa u karticama K3, K4 i K5 koji uklju~uju donje tranzistore u invertorskom mostu. Izlazni signali kola prenaponske za{tite (PC_21 i PC_22) aktiviraju rad donjeg poja~ava~a impulsa u kartici K6 koji upravlja tranzistorom za ko~enje T7. Kartica K8 generi{e impulse za paljenje energetskih tranzistora u mostu invertora tako da
komponente struje statora iα(t) i iβ(t) slede zadate strujne reference iα*(t) i iβ*(t).
Elektri~na {ema veza kartice K8 data je u Poglavlju 6.1 na sl. 33.
Na ulaz kartice K8 dovode se (i) referentni naponi iα*(t) i iβ*(t) prethodno skalirani u kartici K9 sa faktorom 2/3 (ii) naponi sa {antova koji se nalaze u zvezdi{tu asinhronog motora (vidi sl. 23). Zvezdi{te motora sa {antovima nalazi se van motora, u industrijskom reku zajedno sa upravlja~kim kolom invertora.
Laboratorijska stanica VEKTRA
35
Primenom Klarkove transformacije, na osovu ia(t), ib(t) i ic(t) dobijaju se naponi iα(t) i iβ(t).
Podsetimo, veza izme|u αβ-komponente statorske struje i faznih struja glasi:
cba iiii21
21
−−=α (15a)
)(23
cb iii −=β (15b)
Histerezisni komparatori porede referentne napone iα*(t) i iβ*(t) i napone iα(t) i iβ(t), i zavisnosti od znaka i amplutude (strujne) gre{ke, generi{u signale za paljenje tranzistora T1 do T6. Mrtvo vreme (vreme potrebno za komutaciju dva energetska prekida~a u istoj grani invertora) jednako je vremenu potrebnom da napon u ta~ama Z1, Z2 i Z3 promeni polaritet od -6.5VDC do +6.5VDC i obratno, i zavisi od strmine promene izlaznog napona kompara-tora 741 (slew-rate SR).
Komparator 741 ima slew-rate SR = 1V/μs, pa }e se pri svakoj komutaciji izlaznog napona od -15VDC do +15VDC (signal za paljenje/ga{enje tranzistora T1 do T6), generisati mrtvo vreme od 13μs.
Masa kartice strujne regulacije K8 nalazi se na potencijalu zvezdi{ta asinhronog motora. Referentni naponi iα*(t) i iβ*(t) se u karticu uvode preko pinova 11DAC_1 i 12_DAC2 a naponi sa {antova preko pinova koji su ozna~eni sa SANT_A, SANT_B i SANT_C. Izlazni signali za paljenje energetskih tranzistora T1 do T7 ozna~eni su sa PB_1 do PB_14. Preko opti~ki izolovane veze, ovi signali se {alju do kartica K3 do K6.
Kartica K9 mno`i referente napone iα*(t) i iβ*(t) sa 2/3 i uvodi ih u karticu K8.
Faznoj struji ia = 5A odgovara napon na {antu ua = 5V (R[ = 1Ω) i saglasno izrazu (15),
napon uα = 3/2⋅5V = 7.5V. S druge strane, referentni naponi iα*(t) i iβ*(t) na izlazima D/A
konvertra DAC3 i DAC4 pripadaju opsegu [-10V +10V]. Otuda ih je pre uvo|enja u karticu strujne regulacije K8 potrebno pomno`iti faktorom 2/3. Tada referentnom naponu
iα*(t) = 10V odgovara fazna struja ia = 5A.
Prekida~ P1 konfiguri{e mod rada invertora. Izgled prekida~a P1 dat je na sl. 25.
Slika 25. Prekida~ P1 za konfigurisanje moda rada invertora.
1
2
3
4
5
6
7
8
9
ON
ON
ON
ON
ON
ON
ON
ON
ON
OFF
OFF
OFF
OFF
OFF
OFF
OFF
OFF
OFF
Laboratorijska stanica VEKTRA
36
Postoje dva moda rada: MOD1 i MOD2.
MOD1 (default) se koristi kada invertor koristi strujnu regulaciju odnosno, kada signale za paljenje energetskih tranzistora generi{e kartica strujne regulacije K8. U ovom modu rada, kontakti prekida~a P1 su stavljeni u polo`aj:
SW1(ON), SW2(ON), SW3(ON) i SW4(OFF), SW5(OFF), SW6 (OFF)
Plo`aj prekida~a SW7, SW8 i SW9 nije bitan.
MOD2 se koristi kada invertor ne koristi strujnu regulaciju odnosno, kada signale za palje-nje energetskih tranzistora generi{e kartica sa 8098 mikrokontrolerom. U ovom modu rada, kontakti prekida~a P1 su stavljeni u polo`aj:
SW1(OFF), SW2(OFF), SW3(OFF) i SW4(ON), SW5(ON), SW6 (ON)
Plo`aj prekida~a SW7, SW8 i SW9 nije bitan. Prekida~ P2 uklju~uje/isklju~uje energetsko kolo invertora.
5.1.4 Asinhroni motor i optere}enje
Asinhroni motor (AM1) i optere}enje (AM2) prikazani su na sl. 26.
Slika 26. Asinhroni motor i optere}enje.
Asinhroni motori AM1 i AM2 su identi~ni. Tipa su ZK80B4 (SEVER) sa parametrima:
Sprega Y, Un = 380V, In = 2.1 A, Pn = 0.75kW, cosϕ = 0.72, nnom = 1390 ob/min, fn = 50Hz
Moment inercije mehani~kog podsistema je JMPS = 0.0115 kgm2.
Parametri zamenske elektri~ne {eme asinhronog motora AM1 (AM2) su:
Otpornost statora Rs = 8.1 Ω, Otpornost rotora (svedena na stranu statora) Rr = 9.6 Ω Induktivnost rasipanja statora Lγs = 54 mH Induktivnost rasipanja rotora (svedena na stranu statora) Lγr = 36.95 mH Induktivnost magne}enja Lm = 768.4 mH
AM1 AM2
ENC
S
Laboratorijska stanica VEKTRA
37
Asinhroni motor AM1 je pokreta~ki motor. Napaja se trofaznim naponom kojeg generi{e strujno regulisani naponski invertor. Zvezdi{te motora sa {antovima za merenje faznih struja izvedeno je van motora i nalazi se u industrijskom reku, zajedno sa upravlja~kim kolom invertora. Na vratilu AM1 montiran je dava~ pozicije-inkrementalni opti~ki enkoder (ENC). Osovina AM1 je mehani~ki spregnuta sa osovinom AM2 pomo}u mehani~ke spojnice S. Asinhroni motor AM2 je opteretni motor. Ko~i se jednosmernom strujom na na~in prikazan na sl. 27.
Slika 27. Dinami~ko ko~enje AM jednosmernom strujom.
Postupak ko~enja AM2:
Uklju~iti laboratorijsku stanicu VEKTRA Pokrenuti izvr{enje programa vektor.exe Zadati referentnu brzinu Uklju~iti dvopolni uklopni prekida~ P Pri konstantnoj brzini obrtanja vratila AM1, postepenim pove}avanjem izlaznog napona AT, pove}avati vrednost jednosmerne struje IDC (ne vi{e od IDC = 1.5 In)
Na monitoru PC ra~unara, posmatrati porast Iq komponente statorske struje (momenta) Po zavr{etku ve`banja, smanjiti izlazni napon AT na nulu Isklju~iti dvopolni uklopni prekida~ P
Detaljan opis metoda dinami~kog ko~enja AM jednosmernom strujom i uputstvo za kori{}enje ogledne opreme prikazane na sl. 27, dati su u laboratorijskoj ve`bi: “Dinami~ko ko~enje vu~nog asinhronog motora”.
5.1.5 Inkrementalni opti~ki enkoder
Za merenje polo`aja vratila asinhronog motora u laboratorijskoj stanici VEKTRA koristi se inkrementalni opti~ki enkoder ENC (vidi sl. 26). Enkoder ima 1000 markera i dva detekcio-na kompleta (faze A i B). Impulsi enkoderskih faza vode se na ulaz prilagodne kartice 2, gde se poznatom metodom (i) uobli~avaju u UP/DOWN impulse (ii) broje pomo}u dvosmernog broja~a. Detaljan opis inkrementalnog opti~kog enkodera dat je u literaturi [2].
AM2V
A
Imax = 1.5 In
AT
SENC
AM1
Mopt Mpok
Invertor i prilagodna kartica 2
~220V
Laboratorijska stanica VEKTRA
38
5.2 S/W laboratorijske stanice VEKTRA
S/W laboratorijske stanice VEKTRA ~ine:
Program za generisanje Real-Time prekida (realtime.exe) Program za o~itavanje inkrementalnog enkodera (enc2000.exe) Program za generisanje obrtnih vektora (sin2000.exe) Program za indirektno vektorsko upravljanje asinhronim motorom sa direktnim
zadavanjem momenta (direct.exe) Program za indirektno vektorsko upravljanje asinhronim motorom sa regulacijom brzine
(speed.exe)
Program realtime.exe predstavlja osnovu S/W laboratorijske stanice VEKTRA. Ilustruje kako se organizuje Real-Time prekidna rutina na PC ra~unaru. Izvorni C kod programa realtime.exe dat je u Poglavlju 6.2 (Listing 1).
Program enc2000.exe predstavlja pro{irenje programa realtime.exe. Ilustruje kako se o~itava inkrementalni enkoder i kako se na osnovu o~itanog inkrementa pozicije formira apsolutna pozicija vratila asinhronog motora. Izvorni C kod programa enc2000.exe dat je u Poglavlju 6.2 (Listing 2).
Program sin2000.exe predstavlja pro{irenje programa enc2000.exe. Ilustruje kako se na osnovu detektovane pozicije i sinusne look-up tabele generi{u obrtni vektori SIN i COS. Izvorni C kod programa sin2000.exe dat je u Poglavlju 6.2 (Listing 3).
Program direct.exe predstavlja pro{irenje programa sin2000.exe. Ilustruje kako se program-skim putem realizuje algoritam indirektnog vektorskog upravljanja asinhronim motorom sa direktnim zadavanjem momenta. Izvorni C kod programa direct.exe dat je u Poglavlju 6.2 (Listing 4).
Program speed.exe predstavlja pro{irenje programa direct.exe. Ilustruje kako se program-skim putem realizuje algoritam indirektnog vektorskog upravljanja asinhronim motorom sa regulacijom brzine. Izvorni C kod programa speed.exe dat je u Poglavlju 6.2 (Listing 5).
U nastavku, dat je detaljan opis S/W laboratorijske stanice VEKTRA.
5.2.1 Program za generisanje Real-Time prekida (realtime.exe) Svrha: Prekidanje programa niskog prioriteta kako bi se u ekvidistantnim vremenskim intervalima sa periodom TSPL = 1 ms, u prekidnoj rutini sinhrono izvr{io skup upravlja~kih rutina: (i) generisanje povorke pravougaonih impulsa (ii) ispis generisane povorke na D/A konvertor radi prikaza na osciloskopu.
Organizacija: Izvorni kod realtime.c (vidi Poglavlje 6.2, Listing 1) sadr`i:
Rutinu main (program niskog prioriteta)
Prekidnu rutinu new_timer_handler
Zadatak rutine main:
Inicijalizacija portova Prilagodne kartice 1 Organizacija Real-Time prekidne rutine sa periodom TSPL = 1 ms Organizacija izlaska iz programa
Laboratorijska stanica VEKTRA
39
Zadatak prekidne rutine new_timer_handler:
Generisanje povorke pravougaonih impulsa Ispis povorke na D/A konvertor radi prikaza na osciloskopu Organizacija povratka iz prekidne rutine u program niskog prioriteta
Pokretanje: Program se pokre}e iz komandne linije DOS-a naredbom:
D:\TC\VEKTRA\realtime.exe <Enter>
Merenje: Izlaz programa realtime.exe dostupan je na mernom mestu 2 (MM2) prilagodne kartice 2 (vidi Poglavlje 5.1.2). Meri se pomo}u osciloskopa na na~in opisan u Poglavlju 5.4.
Zaustavljanje: Program se zaustavlja naredbom:
QUIT <Enter>
5.2.2 Program za ~itanje inkrementalnog enkodera (enc2000.exe) Svrha: Prekidanje programa niskog prioriteta kako bi se u ekvidistantnim vremenskim intervalima sa periodom TSPL = 1 ms, u prekidnoj rutini sinhrono izvr{io skup upravlja~kih rutina: (i) ~itanje inkrementalnog enkodera (ii) ispis detektovane pozicije na D/A konvertor radi prikaza na osciloskopu.
Organizacija: Izvorni kod enc2000.c (vidi Poglavlje 6.2, Listing 2) sadr`i:
Rutinu main (program niskog prioriteta)
Prekidnu rutinu new_timer_handler
Zadatak rutine main:
Inicijalizacija portova Prilagodne kartice 1 Organizacija Real-Time prekidne rutine sa periodom TSPL = 1 ms Organizacija izlaska iz programa
Zadatak prekidne rutine new_timer_handler:
^itanje inkrementalnog enkodera ^itanje dvosmernog broja~a enkoderskih impulsa Odre|ivanje inkrementa pozicije
Odre|ivanje pozicije vratila asinhronog motora Ispis detektovane pozicije na D/A konvertor radi prikaza na osciloskopu Organizacija povratka iz prekidne rutine u program niskog prioriteta
Pokretanje: Program se pokre}e iz komandne linije DOS-a naredbom:
D:\TC\VEKTRA\enc2000.exe <Enter>
Merenje: Izlaz programa enc2000.exe dostupan je na mernom mestu 2 (MM2) prilagodne kartice 2 (vidi Poglavlje 5.1.2). Meri se pomo}u osciloskopa na na~in opisan u Poglavlju 5.4.
Zaustavljanje: Program se zaustavlja naredbom:
QUIT <Enter>
Laboratorijska stanica VEKTRA
40
5.2.3 Program za generisanje obrtnih vektora (sin2000.exe) Svrha: Prekidanje programa niskog prioriteta kako bi se u ekvidistantnim vremenskim intervalima sa periodom TSPL = 1 ms, u prekidnoj rutini sinhrono izvr{io skup upravlja~kih rutina: (i) ~itanje inkrementalnog enkodera (ii) generisanje obrtnih vektora (iii) ispis obrtnih vektora na D/A konvertor radi prikaza na osciloskopu.
Organizacija: Izvorni kod sin2000.c (vidi Poglavlje 6.2, Listing 3) sadr`i:
Rutinu main (program niskog prioriteta)
Prekidnu rutinu new_timer_handler
Zadatak rutine main:
Generisanje sinusne tabele Inicijalizacija portova Prilagodne kartice 1 Organizacija Real-Time prekidne rutine sa periodom TSPL = 1 ms Organizacija izlaska iz programa
Zadatak prekidne rutine new_timer_handler: ^itanje inkrementalnog enkodera
^itanje dvosmernog broja~a enkoderskih impulsa Odre|ivanje inkrementa pozicije
Odre|ivanje pozicije vratila asinhronog motora Generisanje obrtnih vektora Ispis obrtnih vektora na D/A konvertor radi prikaza na osciloskopu Organizacija povratka iz prekidne rutine u program niskog prioriteta
Pokretanje: Program se pokre}e iz komandne linije DOS-a naredbom:
D:\TC\VEKTRA\sin2000.exe <Enter>
Merenje: Izlaz programa sin2000.exe dostupan je na mernom mestu 2 (MM2) prilagodne kartice 2 (vidi Poglavlje 5.1.2). Meri se pomo}u osciloskopa na na~in opisan u Poglavlju 5.4.
Zaustavljanje: Program se zaustavlja naredbom:
QUIT <Enter>
5.2.4 Program za indirektno vektorsko upravljanje asinhronim motorom sa direktnim zadavanjem momenta (direct.exe) Svrha: Prekidanje programa niskog prioriteta kako bi se u ekvidistantnim vremenskim intervalima sa periodom TSPL = 1 ms, u prekidnoj rutini sinhrono izvr{io skup upravlja~kih rutina: (i) ~itanje inkrementalnog enkodera (ii) odre|ivanje brzine obrtanja vratila asinhro-nog motora (iii) indirektno vektorsko upravljanje asinhronim motorom (iv) ispis brzine na D/A konvertor radi prikaza na osciloskopu.
Organizacija: Izvorni kod direct.c (vidi Poglavlje 6.2, Listing 4) sadr`i:
Rutinu main (program niskog prioriteta) Prekidnu rutinu new_timer_handler
Laboratorijska stanica VEKTRA
41
Zadatak rutine main:
Generisanje sinusne tabele Inicijalizacija portova Prilagodne kartice 1 Organizacija Real-Time prekidne rutine sa periodom TSPL = 1 ms Organizacija izlaska iz programa i unos referentne Iq-komponene statorske struje
Zadatak prekidne rutine new_timer_handler:
^itanje inkrementalnog enkodera ^itanje dvosmernog broja~a enkoderskih impulsa Odre|ivanje inkrementa pozicije
Odre|ivanje brzine obrtanja vratila asinhronog motora Indirektno vektorsko upravljanje asinhronim motorom Ispis brzine na D/A konvertor radi prikaza na osciloskopu Organizacija povratka iz prekidne rutine u program niskog prioriteta
Pokretanje: Program se pokre}e iz komandne linije DOS-a naredbom:
D:\TC\VEKTRA\direct.exe <Enter>
Merenje: Izlaz programa direct.exe je dostupan na mernom mestu 2 (MM2) prilagodne kartice 2 (vidi Poglavlje 5.1.2). Meri se pomo}u osciloskopa na na~in opisan u Poglavlju 5.4.
Zaustavljanje: Program se zaustavlja naredbom:
QUIT <Enter> 5.2.5 Program za indirektno vektorsko upravljanje asinhronim motorom sa regulacijom
brzine (speed.exe) Svrha: Prekidanje programa niskog prioriteta kako bi se u ekvidistantnim vremenskim intervalima sa periodom TSPL = 1 ms, u prekidnoj rutini sinhrono izvr{io skup upravlja~kih rutina: (i) ~itanje inkrementalnog enkodera (ii) odre|ivanje brzine obrtanja vratila asinhro-nog motora (iii) digitalna regulacija brzine (iv) indirektno vektorsko upravljanje asinhronim motorom (v) ispis digitalnih strujnih referenci i regulisane brzine na D/A konvertore.
Organizacija: Izvorni kod speed.c (vidi Poglavlje 6.2, Listing 5) sadr`i:
Rutinu main (program niskog prioriteta)
Prekidnu rutinu new_timer_handler
Zadatak rutine main:
Generisanje sinusne tabele Inicijalizacija portova Prilagodne kartice 1 Organizacija Real-Time prekidne rutine sa periodom TSPL = 1 ms Organizacija izlaska iz programa i unos referentne brzine
Zadatak prekidne rutine new_timer_handler:
^itanje inkrementalnog enkodera ^itanje dvosmernog broja~a enkoderskih impulsa Odre|ivanje inkrementa pozicije
Odre|ivanje brzine obrtanja vratila asinhronog motora
Laboratorijska stanica VEKTRA
42
Digitalna regulacija brzine Indirektno vektorsko upravljanje asinhronim motorom Ispis strujnih referenci na D/A konvertore DAC3 i DAC4, respektivno Ispis regulisane brzine na D/A konvertor DAC1 radi prikaza na osciloskopu
Pokretanje: Program se pokre}e iz komandne linije DOS-a naredbom:
D:\TC\VEKTRA\speed.exe <Enter>
Merenje: Izlaz programa speed.exe dostupan je na mernom mestu 2 (MM2) prilagodne kartice 2 (vidi Poglavlje 5.1.2). Meri se pomo}u osciloskopa na na~in opisan u Poglavlju 5.4.
Zaustavljanje: Program se zaustavlja naredbom:
QUIT <Enter> 5.3 Procedura uklju~enja/isklju~enja laboratorijske stanice VEKTRA
Procedura uklju~enja:
Uklju~iti glavni prekida~ na razvodnoj tabli u sobi 40 (nosi oznaku LAB 40a) Uklju~iti prekida~e na radnom stolu laboratorijske stanice VEKTRA Uklju~iti PC ra~unar Pokrenuti izvr{enje teku}eg programa Obrtni kontakt AT staviti u polo`aj 30V Resetovati prekostrujnu za{titu kartice strujne regulacije (vidi Poglavlje 5.1.3) Obrtni kontakt AT staviti u polo`aj 220V
Laboratorijska stanica je sada spremna za rad!
Od opisane procedure odstupiti samo u slu~aju kada teku}i program ne zahteva rad invertora, {to je slu~aj sa programima: realtime.exe, enc2000.exe i sin2000.exe.
U ovim slu~ajevima, presko~iti zadnje tri ta~ke u proceduri uklju~enja!
Procedura isklju~enja:
Obrtni kontakt AT staviti u polo`aj 0V Obustaviti izvr{enje teku}eg programa Isklju~iti PC ra~unar Isklju~iti prekida~e na radnom stolu laboratorijske stanice VEKTRA Isklju~iti glavni prekida~ na razvodnoj tabli u sobi 40 (nosi oznaku Lab 40a)
Laboratorijska stanica VEKTRA je sada isklju~ena! 5.4 Postupak merenja na laboratorijskoj stanici VEKTRA
Na prilagodnoj kartici 2 (vidi sl. 19), nalaze se tri merna mesta:
Merno mesto 1 (MM1) Merno mesto 2 (MM2)
Laboratorijska stanica VEKTRA
43
Merno mesto 3 (MM3)
Na MM1 posmatraju se impulsi faza A i B inkrementalnog enkodera.
Na MM2 posmatraju se digitalni izlazi op{te namene var1(t) i var2(t) (izlazi D/A konvertora DAC1 i DAC2).
Na MM3 posmatraju se referentne struje iα*(t) i iβ*(t) (izlazi D/A konvertora DAC3 i DAC4) i stvarne struje iα(t) i iβ(t).
Za merenje se koristi digitalni osciloskop prikazan na sl. 16. Sonde digitalnog osciloskopa se priklju~uju na izvode MM1, MM2 i MM3. Ispod svakog mernog mesta, nalazi se nalepnica sa odgovaraju}om oznakom:
Na MM1: faza A, faza B, MASA.
Na MM2: 774, 778, MASA
Na MM3: iα*, iβ*, iα, iβ, MASA
Pri merenju, osciloskop staviti u digitalni (STORAGE) mod. Tada se promena posmatranog talasnog oblika mo`e zaustaviti pritiskom na dugme HOLD.
Laboratorijska stanica VEKTRA
44
6. Prilozi
U prilog ve`bi dati su:
Elektri~ne {eme veza H/W laboratorijske stanice VEKTRA Izvorni kod S/W laboratorijske stanice VEKTRA Simulink model brzinske regulacione petlje speed.mdl Opis programa vektor.exe
6.1 Elektri~ne {eme veza H/W laboratorijske stanice VEKTRA
Slika 28: Elektri~na {ema veza prilagodne kartice 1 Elektri~na {ema veza prilagodne kartice 2
Slika 29(a): Logika za derivaciju i brojanje enkoderskih impulsa Slika 29(b): Logika za ~itanje dvosmernog broja~a enkoderskih impulsa Slika 29(c): Oblast D/A konvertora Slika 29(d): Konektor za flat-kabl
Slika 30: Elektri~na {ema veza kartica K1 i K2 (Napajanje upravlja~kog kola invertora) Slika 31: Elektri~na {ema veza upalja~kih kartica K3 do K6 Slika 32: Elektri~na {ema veza kartice K7 (Kartica prekostrujne i prenaponske za{tita) Slika 33: Elektri~na {ema veza kartice K8 (Kartica strujne regulacije) Slika 34: Elektri~na {ema veza invertorskog mosta
Laboratorijska stanica VEKTRA
45
Slika 28. Elektri~na {ema veza prilagodne kartice 1.
1PA_2
2PA_5
1PC_6
A3
0 0Thursday, November 19, 2020
Size Document Number Rev
Date: Sheet of
3PA_2
3PC_4
U6A
74LS04
1 2
1PB_3
2PA_7
DATA1PA_0
3PB_2
U10A
74LS08
1
23
1PA_1
U8A
74LS21
12
45
6
U11A
74LS04
1 2
1PA_4
3PB_3
2PA_3
CLOCK_0
U2A
74LS04
1 2
1PB_6
2PC_6
U5A
74LS04
1 2
U3A
74LS04
1 2
1PB_1
GATE_0
GATE_2
1PB_2
2PB_4
3PB_1
3PA_4
1PC_4
2PB_5
2PA_6
U1
74LS138
123
645
15141312111097
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
U13
74LS244
2468
11131517
119
181614129753
1A11A21A31A42A12A22A32A4
1G2G
1Y11Y21Y31Y42Y12Y22Y32Y4
2PC_3
1PB_5
2PA_2
PPI #2
8255
3433323130292827
53698
356
432140393837
1819202122232425
1415161713121110
D0D1D2D3D4D5D6D7
RDWRA0A1RESETCS
PA0PA1PA2PA3PA4PA5PA6PA7
PB0PB1PB2PB3PB4PB5PB6PB7
PC0PC1PC2PC3PC4PC5PC6PC7
U14
74LS244
2468
11131517
119
181614129753
1A11A21A31A42A12A22A32A4
1G2G
1Y11Y21Y31Y42Y12Y22Y32Y4
3PA_0
2PC_1
3PC_3
+5V
2PB_6
1PC_1
1PB_0
2PA_1
1PC_0
2PB_7
3PC_0
3PA_6
2PA_0
3PC_1
1PC_3
3PC_6
GATE_1
ADRES
3PA_1
U7A
74LS21
12
45
6
3PC_2
SHEMA PC KARTICE
PPI #3
8255
3433323130292827
53698
356
432140393837
1819202122232425
1415161713121110
D0D1D2D3D4D5D6D7
RDWRA0A1RESETCS
PA0PA1PA2PA3PA4PA5PA6PA7
PB0PB1PB2PB3PB4PB5PB6PB7
PC0PC1PC2PC3PC4PC5PC6PC7
3PB_7
3PA_3
2PB_1
1PC_2
1PA_6
2PC_2
1PA_7
1PC_7
3PB_6
2PB_0
3PC_7
2PC_42PC_5
1PA_3
CLOCK_1
1PC_5
8253
87654321
22231920
21
91110
151413
181617
D0D1D2D3D4D5D6D7
RDWRA0A1
CS
CLK0G0OUT0
CLK1G1OUT1
CLK2G2OUT2
3PA_5
2PA_4
3PC_5
3PA_7
3PB_4
U4A
74LS04
1 2
2PC_7
3PB_0CLOCK_2
U9A
74LS02
2
31
ADRES
2PB_2U15
74LS244
2468
11131517
119
181614129753
1A11A21A31A42A12A22A32A4
1G2G
1Y11Y21Y31Y42Y12Y22Y32Y4
PPI #1
8255
3433323130292827
53698
356
432140393837
1819202122232425
1415161713121110
D0D1D2D3D4D5D6D7
RDWRA0A1RESETCS
PA0PA1PA2PA3PA4PA5PA6PA7
PB0PB1PB2PB3PB4PB5PB6PB7
PC0PC1PC2PC3PC4PC5PC6PC7
1PA_5
1PB_4
3PB_5
2PB_3
1PB_7
2PC_0
Laboratorijska stanica VEKTRA
46
Slika 29(a). Elektri~na {ema veza prilagodne kartice 2 (Logika za derivaciju i brojanje enkoderskih impulsa).
IC5D
74LS32
12
1311
U?A
74LS04
1 2
IC11 IC17B74LS27
3456
1
1K
1K
3PB5
3K3
3K3
IC3C
74LS00
9108
ENABLE
3PB0
1
1K
IC18B74LS27
3456
1K
IC5A
74LS32
1
23
ENABLE
1
IC3B
74LS00
4
56FF_IC2
U?A
74LS04
1 2
IC1C
74LS14
5 6
IC5C
74LS32
9108
470 om
IC7
74LS54
12345910111213
6
ABCDEFGHIJ
Y
IC4B
74LS14
3 4
0
DOWN
IC16C
74LS14
56
0
1K
IC5B
74LS32
4
56
0
3PB3
940pF
3PB4
ISOBHCPL2630
4
3
5
6
8
3PA1
IC17_4
IMP_B
0
IC4C
74LS04
5 6
ISOAHCPL2630
1
2
5
7
8
IC18A74LS27
121312
IC1A
74LS14
1 2
3K3
0
1K
IC6
74LS5412345910111213
6
ABCDEFGHIJ
Y
68pF
UP
IC14
74LS30
1234
561112
8
3K3
3PA3
DOWN
A3
0 0Sunday, November 22, 2020
Size Document Number Rev
Date: Sheet of
1K
U21SN74LS75
2367134
1611514101198
D1D2D3D4C12
C34
Q1Q1Q2Q2Q3Q3Q4Q4
100pF
1
560pF
IC10
74LS193
151109
541114
3267
1213
ABCD
UPDN
LOADCLR
QAQBQCQD
COBO
IC1E
74LS14
11 10
IC16E
74LS14
1110
IC17A74LS27
121312
SET
3PB2
3K3
IC?A
74LS04
1 2
3K3
3PA2
IMP_A
940pF
IC1B
74LS14
3 4
U19
SN74LS75
2367134
1611514101198
D1D2D3D4C12
C34
Q1Q1Q2Q2Q3Q3Q4Q4
1
RESET
UP
IC1D
74LS14
9 8
3PA0
SET
IC9
74LS193
151109
541114
3267
1213
ABCD
UPDN
LOADCLR
QAQBQCQD
COBO
IC3D
74LS00
121311
dipl
3PB1
470 om
SET
SHEMA ENCODER-A (BROJACI)
IC4D
74LS04
9 8
560pF
IC8
74LS193
151109
541114
3267
1213
ABCD
UPDN
LOADCLR
QAQBQCQD
COBO
1
3PB6
IC17_10
3PB7
100pF
3K3
U20
SN74LS75
2367134
1611514101198
D1D2D3D4C12
C34
Q1Q1Q2Q2Q3Q3Q4Q4
RESET
ENABLE
1
EN_IC4
0
IC?A
74LS04
1 2
MSB
RESET
1
Laboratorijska stanica VEKTRA
47
Slika 29(b). Elektri~na {ema veza prilagodne kartice 2 (Logika za ~itanje dvosmernog broja~a enkoderskih impulsa).
IC4F
74LS14
13 12
IC28A
74LS86
1
23
IC3A
74LS00
1
23
3K3
IC4F
74LS14
13 12
IC19A
74LS14
1 2
3K3
1K
1K
RESET
EN_IC4
dipl
SET
IC2A
74LS86
1
23
ENABLE
FF_IC2
IC19B
74LS14
3 4
IC17B
74LS74
12
11
9
8
1013
D
CLK
Q
Q
PRCL
IC20B
74LS00
4
56
300pF
SHEMA ENCODER-A (FLIP-FLOPOVI)
1PC_1
A3
0 0Sunday, November 22, 2020
Size Document Number Rev
Date: Sheet of
IC19C
74LS14
5 6
1K
IC4A
74LS14
1 2
IC17_4
IC17A
74LS74
2
3
5
64
1
D
CLK
Q
QPR
CL
IC17_10
3K3100pF
IC21A
74LS74
2
3
5
6
41
D
CLK
Q
Q
PRCL
300pF
IC1E
74LS14
11 10
Laboratorijska stanica VEKTRA
48
Slika 29(c). Elektri~na {ema veza prilagodne kartice 2 (Oblast D/A konvertora).
390
+23
55
57
6
8
+5V
+
2PA_5
390
UXB
74LS04
34
UYE
74LS04
1110
390390
9
74LS04
+23
55
57
6
8+23
55
57
6
8
+5V
+
UZA
74LS04
12
100nF
390
2PB_4
AM1408L8
1K
4K
2K
390
UZB
74LS04
34
A3
0 0Thursday, November 19, 2020
Size Document Number Rev
Date: Sheet of
390
UXD
74LS04
98
390
+23
55
57
6
8+23
55
57
6
8 +23
55
57
6
8
HCPL2601
UXC
74LS04
56
+
DAC1
390
+23
55
57
6
8
8
U1A
74LS04
12
100nF
UZD
74LS04
98
390
5
390
13
+23
55
57
6
8100nF
+23
55
57
6
8 +23
55
57
6
8
7
100nF
+23
55
57
6
8+23
55
57
6
8
+
+23
55
57
6
8
3
390
12DAC_2
+ +
100nF
UYD
74LS04
98
390
390
6
U3D
74LS04
98
100nF
UYF
74LS04
1312
+23
55
57
6
8
2PB_5
U1F
74LS04
1312
+
+23
55
57
6
8
5
-15V
+23
55
57
6
8
+ -
U2LM741 3 2
6
71
45
100nF
1nF
2PA_7
14
+
390
-15V
11DAC_1
AM1408L8
16
+23
55
57
6
8 +23
55
57
6
8
2PB_1
U1E
74LS04
1110
U3C
74LS04
56
4
UXF
74LS04
1312
13 1
390
+23
55
57
6
8
+
+23
55
57
6
8
2PB_6
+23
55
57
6
8
100nF
UYC
74LS04
56
UZC
74LS04
56
12
3 2
100nF
+23
55
57
6
8
390
+23
55
57
6
8
+5V
+23
55
57
6
8
390
+
100nF
1K
U3B
74LS043
4
11
+23
55
57
6
8
16 15
4K
+23
55
57
6
8
+5V
U1C
74LS04
56
+23
55
57
6
8
100nF
UXA
74LS04
12
100nF
2PB_0
2PA_2
+
1nF
+5V
+23
55
57
6
8
390
10
2PB_22PA_6
390
+23
55
57
6
8
390
1 14
DAC2
100nF
390
2PA_3
+5V
390390
+23
55
57
6
8
+
U1D
74LS04
98
+23
55
57
6
8
2PA_4
100nF
U12C
74LS04
56
2PB_7
9
2 4
dipl
390390
+
8
U2A
74LS04
12
390
U1B
74LS04
34
390
12
SHEMA D/A KONVERZIJE
+23
55
57
6
8
U2E
74LS04
1110
U2B
74LS04
34
U2D
74LS04
98
+
7
UYA
74LS04
12
+23
55
57
6
8
2K
100nF
1K
11
74LS04
1K
+23
55
57
6
8
+ -
U1LM741 3 2
6
71
45
390390
2PB_3
100nF
UXE
74LS04
1110
15
+
390
U2F
74LS04
1312
UYB
74LS04
34
2PA_0
6
390
10
HCPL2601
+
U3A
74LS04
12
2PA_1
Laboratorijska stanica VEKTRA
49
Slika 29(d). Elektri~na {ema veza prilagodne kartice 2 (Konektor za flat-kabl).
pin 1b pin 2b pin 3b pin 4b pin 5b pin 6b pin 7b pin 8b pin 9b pin 10b pin 11b pin 12b pin 13b pin 14b pin 15b pin 16b pin 17b pin 18b pin 19b pin 20b pin 21b pin 22b pin 23b pin 24b pin 25b pin 26b pin 27b pin 28b pin 29b pin 30b pin 31b pin 32b
pin 1a pin 2a pin 3a pin 4a pin 5a pin 6a pin 7a pin 8a pin 9a pin 10a pin 11a pin 12a pin 13a pin 14a pin 15a pin 16a pin 17a pin 18a pin 19a pin 20a pin 21a pin 22a pin 23a pin 24a pin 25a pin 26a pin 27a pin 28a pin 29a pin 30a pin 31a pin 32a
PC masa 3PC3 3PC1 3PC4 3PC6 3PA0 CLK 1 = CLK 0 GATE 0 = GATE 2
3PA4 3PA6 3PB7 3PB5 3PB3 3PB1 3PA3 2PB7 2PB5 2PB3 2PB1 2PC3 2PC1 2PC4 2PC6 2PA4 2PA7 2PA1 2PA3 1PC0 PC + 5V
NEISKORI[]ENO
PC masa 3PC2 3PC0 3PC5 3PC7 3PA1
CLK 2 GATE 1
3PA5 3PA7 3PB6 3PB4 3PB2 3PB0 3PA2 2PB6 2PB4 2PB2 2PB0 2PC2 2PC0 2PC5 2PC7 2PA5 2PA6 2PA0 2PA2 1PC1
PC + 5V
NEISKORI[]EN analogni ulaz ka prilagodnoj kartici 1
analogni ulaz ka prilagodnoj kartici 2
Ka tajmeru 8253 na PK1
Ka tajmeru 8253 na PK1
Laboratorijska stanica VEKTRA
50
Slika 30. Elektri~na {ema veza kartica K1 i K2 (Napajanje upravlja~kog kola invertora).
SHEMA ZUCE (DC-DC NAPAJANJE)
-15V
T3
12
TR2N'
330KR1
1000nFC2
0.22mFC4
A4
0 0Thursday, November 19, 2020
Size Document Number Rev
Date: Sheet of
D3
+15V
56omR3
BU208T2
D1
2
TR2N"
PB_19
PB_15
0.22mFC6
PB_17
- +
TR1
7915
E
DC+_32
BU208T1
D2
F
TR1T4
0.22mFC5
0.22mFC7
MC
D6
DC-_2
MC 3
DIAC
D7
3
D4
D1
N'"
4700nFC1
220KR2
D
0V
dipl
D5
7815
22nFC3
1
TR1
Laboratorijska stanica VEKTRA
51
Slika 31. Elektri~na {ema veza upalja~kih kartica K3 do K6
6K3BC286
100
12
BC107
2K2
A3
0 0Thursday, November 19, 2020
Size Document Number Rev
Date: Sheet of
BC287
E_1
BC107
1K
PB_5
22nF
450
dipl
47
PB_1
B_2
450
1N4001
SHEMA UPALJACA TRANZISTORA
680pF
22nF
1K
4N28
6K3
12K
PB_2
E_2
BC286
BC107
12K
2K2
BC287
1N4001
100
1K
BC287
BC287
47
12
BD233
1K
4N28
PG_9
PB_6
BC107
0.47mF
1N4001
BD234
100
12
100
0.47mF16V
1N4001
BD234
0.47mF16V
BD233
1000.47mF
12
B_1
100PG_19
680pF
Laboratorijska stanica VEKTRA
52
Slika 32. Elektri~na {ema veza kartice K7 (Kartica prekostrujne i prenaponske za{tite).
BC286
470
PC_7
PC_21
1K2
1K
33
2N2955
100K
ZF6.8
BAY80
10K
PC_19
2K2
220pF250V
330
BC286
+15V
2.2nF100V
6K8
PC_15
-15V
1K2
A3
0 0Sunday, November 22, 2020
Size Document Number Rev
Date: Sheet of
1K
470
1K
+
-
U3
LM741
3
26
7 14 5
+15V
2N2955
4K7
+
-
U1
LM741
3
26
7 14 5
47
PC_3
+
-
U2
LM741
3
26
7 14 5
PC_6
PC_22
10K
+15V
1N4001
100K
2N2955
PC_2
PC_1
1K
220
1K
PSZAS_5
0.1mF25V
PC_4
-15V
0.1mF25V
dipl
+15V
100nF63V
6.8nF
RESET
1K
470
ZF6.8
10K
PRENAPONSKA I PREKOSTRUJNA ZASTITA
BC286
1K
ZF5.6
33
100K
ZF6.8
10K
BC286
PNZAS_31
1K
BC286
1K
33
1K
10K
PSZAS_17
3K3
Laboratorijska stanica VEKTRA
53
Slika 33. Elektri~na {ema veza kartice K8 (Kartica strujne regulacije).
110
110
Ix
-15V
220 5.6
1K
PB_15
BC286
100K
47
220100nF
220
4K
+
-
U7
LM741
3
26
7 14 5
BC286
Ix*
-15V
100nF
3K464
PB_16
2K
PB_1
PB_3
3K464
PB_13
47
2K
47
ZVEZDISTE
BC287
2K
+15V
A3
0 0Thursday, November 19, 2020
Size Document Number Rev
Date: Sheet of
4K
+
-
U5
LM741
3
26
7 14 5
100K
dipl
1K
P210k
2K
4K
SHANT_A
5.6
47
5.6
PB_18
+0.1mF
SHEMA STRUJNOG REGULATORA
+15V
+15V
+
-
U6
LM741
3
26
7 14 5
PB_14
1K
BC287
5.6
220
PB_6
2K
BC286
PB_2
Iy*
PB_7
100nF
10K
P3
+15V
220
1K3K464
47+
-
U4
LM741
3
26
7 14 5
2K
SHANT_B
3K464
-15V
+15V
110
3K464
PB_20
+ 0.1mF
+15V
110
+
-
U2
LM741
3
26
7 14 5
-15V
110
BC287
5.6
110
5.6
PB_4
PB_17
2K
PB_5
+15V
47
10K
P4
SHANT_C
+
-
U3
LM741
3
26
7 14 5
3K464
12DAC_2
-15V
-15V
220
-15V
PB_10
+
-
U1
LM741
3
26
7 14 5
Iy
1K
11DAC_1
PB_9
PB_19
P110K
PB_8
Laboratorijska stanica VEKTRA
54
Slika 34. Elektri~na {ema veza invertorskog mosta.
Q6QM100HY-H
B_6
Q3
E_7
DC-_2
Q4
FAZA_A
PSZAS_17
-+
BRIDGE
Q7
Q1
E_1
B_2
E_4
SHEMA ENERGETSKOG KOLA INVERTORA
B_7
dipl
B_1
VS_4
E_2
PSZAS_5
VS_2
BYT30D1
E_5
PNZAS_31
39om
10W
47omRd
C11.1mF
DC+_32
E_6
C21.1mF
Q5QM100HY-H
-+
BRIDGE
0.33mFC3
B_3
B_4
E_3
B_5
VS_1
25A
Rs1
A4
0 0Sunday, November 15, 2020
Size Document Number Rev
Date: Sheet of
Q2
VS_3
FAZA_C
60W
Rs2
FAZA_B
Laboratorijska stanica VEKTRA
55
6.2. Izvorni kod S/W laboratorijske stanice VEKTRA Listing1. Izvorni C kod programa realtime.exe #include <stdio.h> #include <conio.h> #include <dos.h> #include <math.h> typedef unsigned int UINT; void interrupt (*old_timer_handler)(); void interrupt new_timer_handler(); int main(void) { char str[16]; /* Incijalizacija portova Prilagodne kartice 1 */ outp(0x303,0x92); /* 1PA-in, 1PB-in, 1PCup-in, 1PClo-out */ outp(0x307,0x80); /* 2PA-out, 2PB-out, 2PC-out */ outp(0x30b,0x9a); /* 3PA-in, 3PB-in, 3PC-out */ /* Organizacija Real-Time prekidne rutine sa periodom T = 1 ms */
disable(); old_timer_handler = getvect(0x1c);
outp(0x043, 0x36); /* Novi sistemski tajmer (cntr #0 mode 3) */ outp(0x040, 0xa8); /* LSB za T = 1ms */ outp(0x040, 0x04); /* MSB za T = 1ms */ setvect(0x1c, new_timer_handler); enable(); /* Kontrolisani izlazak iz programa */
while(1) { printf("> Enter QUIT to exit: "); gets(str); if(!(strcmp(str, "QUIT"))) { disable(); setvect(0x1c,old_timer_handler); outp(0x043,0x36); /* Stari sistemski tajmer (cntr #0 mode 3) */ outp(0x040,0xff); /* Default LSB */ outp(0x040,0xff); /* Default MSB */ enable(); return(0); } } } void interrupt new_timer_handler() { static UINT nTicTac = 0; /* Generisanje povorke pravougaonih impulsa */ nTicTac++; nTicTac &= 0x0001; /* Prikaz generisane povorke na digitalnom osciloskopu */
Laboratorijska stanica VEKTRA
56
outp(0x306, (nTicTac) ? 255 : 128); } Listing 2. Izvorni C kod programa enc2000.exe #include <stdio.h> #include <conio.h> #include <dos.h> #include <math.h> typedef unsigned int UINT; void interrupt (*old_timer_handler)(); void interrupt new_timer_handler(); int main(void) { char str[16]; /* Incijalizacija portova Prilagodne kartice 1 */ outp(0x303,0x92); /* 1PA-in, 1PB-in, 1PCup-in, 1PClo-out */ outp(0x307,0x80); /* 2PA-out, 2PB-out, 2PC-out */ outp(0x30b,0x9a); /* 3PA-in, 3PB-in, 3PC-out */ /* Organizacija Real-Time prekidne rutine sa periodom T = 1 ms */
disable(); old_timer_handler = getvect(0x1c);
outp(0x043, 0x36); /* Novi sistemski tajmer (cntr #0 mode 3) */ outp(0x040, 0xa8); /* LSB za T = 1ms */ outp(0x040, 0x04); /* MSB za T = 1ms */ setvect(0x1c, new_timer_handler); enable(); /* Kontrolisani izlazak iz programa */
while(1) { printf("> Enter QUIT to exit: "); gets(str); if(!(strcmp(str, "QUIT"))) { disable(); setvect(0x1c,old_timer_handler); outp(0x043,0x36); /* Stari sistemski tajmer (cntr #0 mode 3) */ outp(0x040,0xff); /* Default LSB */ outp(0x040,0xff); /* Default MSB */ enable(); return(0); } } } void interrupt new_timer_handler() { static UINT nEncHiByte, nEncLoByte, nNewEnc,
Laboratorijska stanica VEKTRA
57
nOldEnc = 0; static int nTeta = 0, nIncPos; /* Citanje dvosmernog brojaca enkoderskih impulsa */ outp(0x302, 0x02); /* Disable Encoder latch (output) */ nEncHiByte = inp(0x308); /* Cita visih 4 bita 12-bit latch-a */ nEncLoByte = inp(0x309); /* Cita nizih 8 bita 12-bit latch-a */ outp(0x302, 0x00); /* Enable Encoder latch (output) */ nNewEnc = nEncHiByte << 8; nNewEnc |= nEncLoByte; /* Odredjivanje inkrementa pozicije */ nIncPos = nNewEnc - nOldEnc; nOldEnc = nNewEnc; if(nIncPos > 1250) nIncPos -= 2500; if(nIncPos < -1250) nIncPos += 2500; /* Odredjivanje pozicije vratila asinhronog motora */ nTeta += nIncPos; if(nTeta > 1999) nTeta -= 2000; if(nTeta < 0) nTeta += 2000; /* Prikaz detektovane pozicije na digitalnom osciloskopu */ outp(0x306, (nTeta >> 5) + 128); } Listing 3. Izvorni C kod programa sin2000.exe #include <stdio.h> #include <conio.h> #include <dos.h> #include <math.h> typedef unsigned int UINT; #define PI 3.1415927 #define HIBYTE(w) (w >> 8) void interrupt (*old_timer_handler)(); void interrupt new_timer_handler(); void fill_sine_table(int*); int SIN(const int*, const UINT); int COS(const int*, const UINT); int nSineTable[2000]; int main(void) { char str[16]; fill_sine_table(nSineTable); /* Incijalizacija portova Prilagodne kartice 1 */ outp(0x303,0x92); /* 1PA-in, 1PB-in, 1PCup-in, 1PClo-out */ outp(0x307,0x80); /* 2PA-out, 2PB-out, 2PC-out */ outp(0x30b,0x9a); /* 3PA-in, 3PB-in, 3PC-out */ /* Organizacija Real-Time prekidne rutine sa periodom T = 1 ms */
Laboratorijska stanica VEKTRA
58
disable(); old_timer_handler = getvect(0x1c); outp(0x043, 0x36); /* Novi sistemski tajmer (cntr #0 mode 3) */ outp(0x040, 0xa8); /* LSB za T = 1ms */ outp(0x040, 0x04); /* MSB za T = 1ms */ setvect(0x1c, new_timer_handler);
enable(); /* Kontrolisani izlazak iz programa */
while(1) { printf("> Enter QUIT to exit: "); gets(str); if(!(strcmp(str, "QUIT"))) { disable(); setvect(0x1c,old_timer_handler); outp(0x043,0x36); /* Stari sistemski tajmer (cntr #0 mode 3) */ outp(0x040,0xff); /* Default LSB */ outp(0x040,0xff); /* Default MSB */ enable(); return(0); } } } void interrupt new_timer_handler() {
static UINT nEncHiByte, nEncLoByte, nNewEnc, nOldEnc = 0; static int nTeta, nIncPos, nSinTeta, nCosTeta; /* Citanje dvosmernog brojaca enkoderskih impulsa */ outp(0x302, 0x02); /* Disable Encoder latch (output) */ nEncHiByte = inp(0x308); /* Cita visih 4 bita 12-bit latch-a */ nEncLoByte = inp(0x309); /* Cita nizih 8 bita 12-bit latch-a */ outp(0x302, 0x00); /* Enable Encoder latch (output) */ nNewEnc = nEncHiByte << 8; nNewEnc |= nEncLoByte; /* Odredjivanje inkrementa pozicije */ nIncPos = nNewEnc - nOldEnc; nOldEnc = nNewEnc; if(nIncPos > 1250) nIncPos -= 2500; if(nIncPos < -1250) nIncPos += 2500; /* Odredjivanje pozicije vratila asinhronog motora */ nTeta += nIncPos; if(nTeta > 1999) nTeta -= 2000; if(nTeta < 0) nTeta += 2000;
Laboratorijska stanica VEKTRA
59
/* Generisanje obrtnih vektora */ nSinTeta = SIN(nSineTable, nTeta); nCosTeta = COS(nSineTable, nTeta); /* Prikaz obrtnih vektora na digitalnom osciloskopu */ outp(0x306, HIBYTE(nSinTeta) + 128); } void fill_sine_table(int *SineTable) { register UINT i; for(i = 0; i < 1000; i++) { SineTable[i] = (int)(32767*sin(2*PI*i/2000) + 0.5); } for(i = 1000; i < 2000; i++) { SineTable[i] = (int)(32767*sin(2*PI*i/2000) - 0.5); } } int SIN(const int *SineTable, const UINT Teta) { UINT nTeta = Teta; return SineTable[nTeta]; } int COS(const int *SineTable, const UINT Teta) { UINT nTeta = Teta; nTeta += 500; if(nTeta >= 2000) nTeta -= 2000; return SineTable[nTeta]; } Listing 4. Izvorni C kod programa direct.exe #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <dos.h> #include <ctype.h> #include <math.h> #define IDNOM 98 #define IQNOM 114 #define SLIPGAIN 2108 #define LONG1999 131006464 #define LONG2000 131072000 #define IQMAX 119537664 #define TRUE 1 #define FALSE 0 #define PI 3.1415927 typedef unsigned int UINT; typedef unsigned char BOOL;
Laboratorijska stanica VEKTRA
60
union LONG { long ALL; struct { int LO; int HI; } WORD; }; void interrupt (*old_timer_handler)(); void interrupt new_timer_handler(); void fill_sine_table(int*); int SIN(const int*, const UINT); int COS(const int*, const UINT); int nSineTable[2000]; int nIQref = 0; int main(void) { char str[16]; /* Generisanje sinusne tabele */ fill_sine_table(nSineTable); /* Incijalizacija portova Prilagodne kartice 1 */ outp(0x303,0x92); /* 1PA-in, 1PB-in, 1PCup-in, 1PClo-out */ outp(0x307,0x80); /* 2PA-out, 2PB-out, 2PC-out */ outp(0x30b,0x9a); /* 3PA-in, 3PB-in, 3PC-out */ /* Organizacija Real-Time prekidne rutine sa periodom T = 1 ms */ disable(); old_timer_handler = getvect(0x1c); outp(0x043, 0x36); /* Novi sistemski tajmer (cntr #0 mode 3) */ outp(0x040, 0xa8); /* LSB za T = 1ms */ outp(0x040, 0x04); /* MSB za T = 1ms */ setvect(0x1c, new_timer_handler); enable(); /* Kontrolisani izlazak iz programa i zadavanje Iq-referentne struje */ while(1) { printf("> Iqref or QUIT to exit: "); gets(str); if(!(strcmp(str, "QUIT"))) { disable(); outp(0x304, 128); /* Ialfa = 0 */ outp(0x305, 128); /* Ibeta = 0 */ setvect(0x1c,old_timer_handler); outp(0x043,0x36); /* Stari sistemski tajmer (cntr #0 mode 3) */ outp(0x040,0xff); /* Default LSB */ outp(0x040,0xff); /* Default MSB */ enable(); return(0);
Laboratorijska stanica VEKTRA
61
} nIQref = atoi(str); if(nIQref > 10) { nIQref = 10; printf("> Limit +10!\n"); } if(nIQref < -10) { nIQref = -10; printf("> Limit -10!\n"); } } } void interrupt new_timer_handler() { static UINT nEncHiByte, nEncLoByte, nNewEnc, nOldEnc = 0, nLoopID = 10; static int nTetaE, nIncPos, nPosDif = 0, nSinTeta, nCosTeta, nIalfa, nIbeta; static long nSlipInc; static union LONG ACC, TETA = {0}; if(nLoopID == 10) { /* Prikaz detektovane brzine na digitalnom osciloskopu */ outp(0x306, (nPosDif >> 2) + 128); nPosDif = 0; } if(--nLoopID == 0) nLoopID = 10; /* Citanje dvosmernog brojaca enkoderskih impulsa */ outp(0x302, 0x02); /* Disable Encoder latch (output) */ nEncHiByte = inp(0x308); /* Cita visih 4 bita 12-bit latch-a */ nEncLoByte = inp(0x309); /* Cita nizih 8 bita 12-bit latch-a */ outp(0x302, 0x00); /* Enable Encoder latch (output) */ nNewEnc = nEncHiByte << 8; nNewEnc |= nEncLoByte; /* Odredjivanje inkrementa pozicije */ nIncPos = nNewEnc - nOldEnc; nOldEnc = nNewEnc; if(nIncPos > 1250) nIncPos -= 2500; if(nIncPos < -1250) nIncPos += 2500; /* Procena brzine obrtanja vratila asinhronog motora */ nPosDif += nIncPos;
Laboratorijska stanica VEKTRA
62
/* Indirektno vektorsko upravljanje asinhronim motorom */ TETA.WORD.HI += nIncPos; TETA.WORD.HI += nIncPos; nSlipInc = (long)SLIPGAIN*nIQref; TETA.ALL += nSlipInc; TETA.ALL += nSlipInc; if(TETA.ALL > LONG1999) TETA.ALL -= LONG2000; if(TETA.ALL < 0) TETA.ALL += LONG2000; nTetaE = (UINT)TETA.WORD.HI; nSinTeta = SIN(nSineTable, nTetaE); nCosTeta = COS(nSineTable, nTetaE); ACC.ALL = (long)IDNOM*nCosTeta - (long)nIQref*nSinTeta; nIalfa = ACC.WORD.HI; /* Referentna struja Ialfa */ ACC.ALL = (long)IDNOM*nSinTeta + (long)nIQref*nCosTeta; nIbeta = ACC.WORD.HI; /* Referentna struja Ibeta */ outp(0x304, nIalfa + 128); outp(0x305, nIbeta + 128); } void fill_sine_table(int *SineTable) { register UINT i; for(i = 0; i < 1000; i++) { SineTable[i] = (int)(32767*sin(2*PI*i/2000) + 0.5); } for(i = 1000; i < 2000; i++) { SineTable[i] = (int)(32767*sin(2*PI*i/2000) - 0.5); } } int SIN(const int *SineTable, const UINT Teta) { UINT nTeta = Teta; return SineTable[nTeta]; } int COS(const int *SineTable, const UINT Teta) { UINT nTeta = Teta; nTeta += 500; if(nTeta >= 2000) nTeta -= 2000; return SineTable[nTeta]; }
Laboratorijska stanica VEKTRA
63
Listing 5. Izvorni C kod programa speed.exe #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <dos.h> #include <ctype.h> #include <math.h> #define IDNOM 98 #define IQNOM 114 #define SLIPGAIN 2108 #define LONG1999 131006464 #define LONG2000 131072000 #define IQMAX 119537664 #define TRUE 1 #define FALSE 0 #define PI 3.1415927 typedef unsigned int UINT; typedef unsigned char BOOL; union LONG { long ALL; struct { int LO; int HI; } WORD; }; void interrupt (*old_timer_handler)(); void interrupt new_timer_handler(); void fill_sine_table(int*); int SIN(const int*, const UINT); int COS(const int*, const UINT); int nSineTable[2000]; UINT KP = 2393, /* P-dejstvo regulatora brzine (vidi speed.mdl) */ KI = 150; /* I-dejstvo regulatora brzine (vidi speed.mdl) */ long nSpeedRef = 0; /* Referentna brzina */ int main(void) { char str[16]; int nRetVal; fill_sine_table(nSineTable); /* Incijalizacija portova Prilagodne kartice 1 */ outp(0x303,0x92); /* 1PA-in, 1PB-in, 1PCup-in, 1PClo-out */ outp(0x307,0x80); /* 2PA-out, 2PB-out, 2PC-out */ outp(0x30b,0x9a); /* 3PA-in, 3PB-in, 3PC-out */ /* Organizacija Real-Time prekidne rutine sa periodom T = 1 ms */ disable(); old_timer_handler = getvect(0x1c);
Laboratorijska stanica VEKTRA
64
outp(0x043, 0x36); /* Novi sistemski tajmer (cntr #0 mode 3) */ outp(0x040, 0xa8); /* LSB za T = 1ms */ outp(0x040, 0x04); /* MSB za T = 1ms */ setvect(0x1c, new_timer_handler); enable(); /* Kontrolisani izlazak iz programa i zadavanje referentne brzine */ while(1) { printf("> Speed[rpm] or QUIT to exit: "); gets(str); if(!(strcmp(str, "QUIT"))) { disable(); outp(0x304, 128); /* Ialfa = 0 */ outp(0x305, 128); /* Ibeta = 0 */ setvect(0x1c,old_timer_handler); outp(0x043,0x36); /* Stari sistemski tajmer (cntr #0 mode 3) */ outp(0x040,0xff); /* Default LSB */ outp(0x040,0xff); /* Default MSB */ enable(); return(0); } nRetVal = atoi(str); if(nRetVal > 800) { nRetVal = 800; printf("> Limit +800 [rpm]!\n"); } if(nRetVal < -800) { nRetVal = -800; printf("> Limit -800 [rpm]!\n"); } nSpeedRef = (long)100*nRetVal; } } void interrupt new_timer_handler() { static UINT nEncHiByte, nEncLoByte, nNewEnc, nOldEnc = 0, nLoopID = 10; static int nTetaE, nIncPos, nPosDif = 0, nIQref, nSinTeta, nCosTeta, nIalfa, nIbeta;
Laboratorijska stanica VEKTRA
65
static long nSlipInc, nSpeedDif = 0, nSpeedFdb, nSpeedErr, nSpeedOld = 0, nOldAcc = 0; static union LONG ACC, TETA = {0}; if(nLoopID == 10) { /* Prikaz regulisane brzine na digitalnom osciloskopu */ outp(0x306, (nPosDif >> 2) + 128); /* Digitalna regulacija brzine (vidi SIMULINK model speed.mdl) */ nSpeedFdb = (long)300*nPosDif; nPosDif = 0; nSpeedErr = nSpeedRef - nSpeedFdb; nSpeedDif = nSpeedFdb - nSpeedOld; nSpeedOld = nSpeedFdb; ACC.ALL = (long)nOldAcc + (long)KI*nSpeedErr - (long)KP*nSpeedDif; if(ACC.ALL > +IQMAX) ACC.ALL = +IQMAX; if(ACC.ALL < -IQMAX) ACC.ALL = -IQMAX; nOldAcc = ACC.ALL; nIQref = ACC.WORD.HI >> 3; } if(--nLoopID == 0) nLoopID = 10; /* Citanje dvosmernog brojaca enkoderskih impulsa */ outp(0x302, 0x02); /* Disable Encoder latch (output) */ nEncHiByte = inp(0x308); /* Cita visih 4 bita 12-bit latch-a */ nEncLoByte = inp(0x309); /* Cita nizih 8 bita 12-bit latch-a */ outp(0x302, 0x00); /* Enable Encoder latch (output) */ nNewEnc = nEncHiByte << 8; nNewEnc |= nEncLoByte; /* Odredjivanje inkrementa pozicije */ nIncPos = nNewEnc - nOldEnc; nOldEnc = nNewEnc; if(nIncPos > 1250) nIncPos -= 2500; if(nIncPos < -1250) nIncPos += 2500; /* Procena brzine obrtanja vratila asinhronog motora */ nPosDif += nIncPos; /* Indirektno vektorsko upravljanje asinhronim motorom */ TETA.WORD.HI += nIncPos; TETA.WORD.HI += nIncPos; nSlipInc = (long)SLIPGAIN*nIQref; TETA.ALL += nSlipInc; TETA.ALL += nSlipInc; if(TETA.ALL > LONG1999) TETA.ALL -= LONG2000; if(TETA.ALL < 0) TETA.ALL += LONG2000;
Laboratorijska stanica VEKTRA
66
nTetaE = (UINT)TETA.WORD.HI; nSinTeta = SIN(nSineTable, nTetaE); nCosTeta = COS(nSineTable, nTetaE); ACC.ALL = (long)IDNOM*nCosTeta - (long)nIQref*nSinTeta; nIalfa = ACC.WORD.HI; /* Referentna struja Ialfa */ ACC.ALL = (long)IDNOM*nSinTeta + (long)nIQref*nCosTeta; nIbeta = ACC.WORD.HI; /* Referentna struja Ibeta */ outp(0x304, nIalfa + 128); outp(0x305, nIbeta + 128); } void fill_sine_table(int *SineTable) { register UINT i; for(i = 0; i < 1000; i++) { SineTable[i] = (int)(32767*sin(2*PI*i/2000) + 0.5); } for(i = 1000; i < 2000; i++) { SineTable[i] = (int)(32767*sin(2*PI*i/2000) - 0.5); } } int SIN(const int *SineTable, const UINT Teta) { UINT nTeta = Teta; return SineTable[nTeta]; } int COS(const int *SineTable, const UINT Teta) { UINT nTeta = Teta; nTeta += 500; if(nTeta >= 2000) nTeta -= 2000; return SineTable[nTeta]; } 6.3 Simulink model brzinske regulacione petlje speed.mdl
Simulink model brzinske regulacione petlje u laboratorijskoj stanici VEKTRA speed.mdl izveden je iz SIMULINK modela A.mdl, koji je detaljno opisan u okviru laboratorijske ve`be: "Ispitivanje dinami~kih svojstava digitalno regulisanog brzinskog servomehanizma putem ra~unarskih simulacije".
Pokre}e se izvr{enjem komandne datoteke go_speed.m iz komandne linije MATLAB-a:
go_speed <Enter>
Napomena: SIMULINK model speed.mdl i komandna datoteka go_speed.m moraju biti na stazi vidljivoj MATLAB-u.
Laboratorijska stanica VEKTRA
67
6.4 Opis programa vektor.exe Program za indirektno vektorsko upravljanje asinhronim motorom sa grafi~kim interfejsom vektor.exe nalazi se u direktorijumu D:\TC\VEKTRA, na PC ra~unaru laboratorijske stanice VEKTRA. Poseduje grafi~ki interfejs koji omogu}ava posmatranje talasnih oblika momenta, brzine i pozicije u realnom vremenu.
Pokre}e se iz komandne linije DOS-a naredbom:
D:\TC\VEKTRA\vektor.exe <Enter>
Po pokretanju programa, aktivan je PI regulator brzine. Pomo}u opcije SEMAFOR, mogu}e je izabrati nelinearni PID regulator pozicije ili, direktno zadavanje momenta. Zadavanjem vrednosti SEMAFOR = 1, aktivira se PI regulator brzine (default vrednost); zadavanjem vrednosti SEMAFOR = 2, aktivira se nelinearni PID regulator pozicije; zadavanjem vrednosti SEMAFOR = 3, direktno se zadaje vrednost momenta asinhronog motora.
U toku rada, mogu}e je menjati parametre regulatora brzine (KP i KI), pozicije (KP, KI i KD) i algoritma indirektnog vektorskog upravljanja (SLIPGAIN) i zadavati vrednost i trenutak delovanja odko~ne pobude (momenta, brzine i pozicije).
Talasni oblici momenta, brzine i pozicije koji se ispisuju na monitoru PC ra~unara, mogu se sa~uvati u vidu ASCII datoteke sa ekstenzijom *.prn. Najpre se pomo}u opcije FREEZ, zaustavi dalja promena talasnih oblika na ekranu; pomo}u opcije ZOOM, nazna~i se i uve}a deo ekrana od interesa a zatim se, izborom opcije SAVE SCREEN, taj deo ~uva u tekstualni fajl sa ekstenzijom *.prn. Dobijeni fajl se nalazi u direktorijumu D:\TC\VEKTRA.
Laboratorijska stanica VEKTRA
68
7. Literatura [1] Slobodan N. Vukosavi}: "Digitalno upravljanje elektri~nim pogonima ", Akademska misao,
ETF Beograd, 2003.
[2] Slobodan N. Vukosavi}: "Predavanja iz predmeta Mikroprocesorsko upravljanje
elektromotornim pogonima ", Elektrotehni~ki fakultet, Beograd, 1996.