analiza razliČitih naČina upravljanja asinkronog …

64
ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG MOTORA Galić, Mirko Undergraduate thesis / Završni rad 2020 Degree Grantor / Ustanova koja je dodijelila akademski / stručni stupanj: University of Split, University Department of Professional Studies / Sveučilište u Splitu, Sveučilišni odjel za stručne studije Permanent link / Trajna poveznica: https://urn.nsk.hr/urn:nbn:hr:228:059993 Rights / Prava: In copyright Download date / Datum preuzimanja: 2021-11-21 Repository / Repozitorij: Repository of University Department of Professional Studies

Upload: others

Post on 21-Nov-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

ANALIZA RAZLIČITIH NAČINA UPRAVLJANJAASINKRONOG MOTORA

Galić, Mirko

Undergraduate thesis / Završni rad

2020

Degree Grantor / Ustanova koja je dodijelila akademski / stručni stupanj: University of Split, University Department of Professional Studies / Sveučilište u Splitu, Sveučilišni odjel za stručne studije

Permanent link / Trajna poveznica: https://urn.nsk.hr/urn:nbn:hr:228:059993

Rights / Prava: In copyright

Download date / Datum preuzimanja: 2021-11-21

Repository / Repozitorij:

Repository of University Department of Professional Studies

Page 2: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

SVEUČILIŠTE U SPLITU

SVEUČILIŠNI ODJEL ZA STRUČNE STUDIJE

Preddiplomski stručni studij elektroenergetika

Mirko Galić

ZAVRŠNI RAD

ANALIZA RAZLIČITIH NAČINA UPRAVLJANJAASINKRONOGMOTORA

Split, rujan 2020.

Page 3: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

SVEUČILIŠTE U SPLITU

SVEUČILIŠNI ODJEL ZA STRUČNE STUDIJE

Preddiplomski stručni studij elektroenergetika

Predmet: Elektroaukustika

ZAVRŠNI RAD

Kandidat: Mirko Galić

Naslov rada: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA

ASINKRONOG MOTORA

Mentor: Predrag Đukić

Split, rujan 2020.

Page 4: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Sažetak

Svrha ovog rada je usporedba između različitih načina upravljanja asinkronog

motora. Posebna pažnju je posvećena na upotrebi digitalnih filtera koji poboljšavaju i

pojednostavljuju izvedbu upravljanja elektromotorima. Digitalni filter sinc je implementiran

u Verilogu za FPGA integrirane krugove. Opisane su različite metode upravljanja asinkronih

motora, dok je naglasak dan na algoritme koji koriste bezsenzorsko vektorsko upravljanje.

Upotreba bezsenzorske vrste upravljanja znatno snižava cijenu sustava upravljanja, te

omogućuje lakšu primjenu u praksi. Predložena arhitektura koristi FPGA kontroler, čime

poboljšava sigurnost i zaštitu, te primjenjuje digitalne filtere.

Implementacija bezsenzorskog algoritma je izvedena preko platforme otvorenog koda

VESC. Uz to je dan prijedlog poboljšanja, sa shemom za upravljanje elektromotorima baziran

naVESCplatformi, za kontrolu asinkronogmotora, maksimalnog napona 600V imaksimalne

struje 50A. Upotrebom izolacijskih ADC­ova smo omogućili sigurno mjerenje visokog

napona, dok se za upravljanje glavnih tranzistora (MOSFET­a ili IGBT­ova) koriste izolirani

upravljači vrata.

Ključne riječi: asinkroni motor, FPGA, digitalni fitler, izolacija, upravljanje

1

Page 5: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Analysis of different principles of controlling induction motor

Summary

The purpose of this work was comparison of different options for controlling induction

motor. Digital filter was one of main focuses, because use of digital filters in electro motor

control is highly beneficial in terms of cost and performance. Sinc filter was implemented

in Verilog for FPGA chip. Different algorithms and methods of induction motor control

are described, especially sensorless algorithms. Use of sensorless algorithms in control of

induction motor lowers the cost of control system of induction motor and provide more

flexible use in practice. Proposed architecture in this paper use FPGA, which adds to safety

and protection. Digital filters are implemented on FPGA.

Implementation of sensorless algorithm was done on open­source VESC platform. In

addition to that electric schemewas designed for control of inductionmotor, withmax voltage

of 600V and max current of 50A, as proposition for improvement of VESC hardware. With

usage of isolated ADC’s safe measurement of high voltage is provided. Isolated gate drive

for MOSFET’s and IGBT’s is used so we can ensure maximum safety.

Key words: induction motor, FPGA, digital filter, isolation, contorl

1

Page 6: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

SADRŽAJ

Sažetak 1

1 UVOD 5

2 ASINKRONI MOTORI 7

2.1 Nadomjesna shema asinkronog elektromotora . . . . . . . . . . . . . . . . 9

2.2 Clark­ova transformacija . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.3 Park­ova transformacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 UPRAVLJANJE ASINKRONIMMOTORIMA 12

3.1 Skalarna V/Hz metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2 Vektorska kontrola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2.1 FOC ­ kontrola zasnovana na ulančanom magnetnom toku . . . . . 13

3.2.2 Senzorska kontrola . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2.3 Bezsenzorska kontrola . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2.3.1 ”Promatrač” . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3 Vektorska modulacija napona . . . . . . . . . . . . . . . . . . . . . . . . . 18

2

Page 7: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

4 FPGA 21

5 DELTA­SIGMA ANALOGNO DIGITALNI PRETVORNIK 23

5.0.1 Manchester kodiranje . . . . . . . . . . . . . . . . . . . . . . . . . 24

6 DIGITALNI FILTERI 27

7 IMPLEMENTACIJA VEKTORSKE FOC KONTROLE ASINKRONOG

MOTORA 30

8 ZAKLJUČAK 34

LITERATURA 35

POPIS SLIKA 37

POPIS TABLICA 39

PRILOZI 40

1. Prilog 1 ­ Električna shema predloženog upravljača elektromotora 1

2. Prilog 2 ­ Shema LTSpice simulacije vektorske modulacije napona 11

3. Prilog 3 ­ Manchester dekoder 12

3..1 Manchester dekoder Verilog kod . . . . . . . . . . . . . . . . . . . . . . . 12

3..2 Manchester dekoder Verilog test kod . . . . . . . . . . . . . . . . . . . . . 14

4. Prilog 4 ­ sinc3 filter 16

3

Page 8: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

4..1 sinc3 Verilog kod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4..2 sinc3 Verilog test kod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4

Page 9: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1. UVOD

Električni motor ili elektromotor je stroj koji pretvara električnu energiju u mehanički

rad. Elektromotori koriste djelovanje magnetskih polja na električni vodič kojim teče

električna struja. U uporabi je mnogo vrsta i izvedbi elektromotora, i danas su najviše

korišteni pogonski strojevi u gotovo svim područjima ljudske djelatnosti; u kućanstvu,

industriji, prometu (hladnjaci, perilice, lokomotive, tramvaji, električni automobili i sl.).

Upravljanje je jedna on najbitnijih stvari kada su u pitanju elektromotori. Ono se danas

vrši sa algoritmima koji su omogućili odlične karakteristike elektromotora u vidu odziva,

početnog momenta itd.. Sa modernim sustavima upravljanja elektromotorima, možemo

unaprijediti postojeća industrijska postrojenja uz relativno mali trošak, tj. bez mijenjanja

elektromotora, nego samo dodavanjem boljeg upravljanja elektromotorom. Danas imamo

mnogo načina upravljanja, a sve ih možemo podijeliti na skalarne i vektorske.

Skalarno upravljanje je jedno od najstarijih metoda koja se koristi i dalje, radi svoje

jednostavnosti, cijene i prihvatljivih nedostataka u odnosu na moderne metode.

Današnja moderna metoda, koja se vrlo često koristi, je vektorsko upravljanje koje

možemo podijeliti na upravljanje direktno momentom (engl. Direct Torque Control­ DTC),

te vektorsko upravljanje zasnovano na ulančanom magnetnom toku (engl. Field­oriented

Control­ FOC).

U ovome radu će se opisati navedene metode, te njihova primjena i algoritmi, kao i

različite iteracije istih algoritama od kojih svaka ima svoje mane i prednosti. Također će

biti opisane prednosti primjene FPGA integriranog kruga i digitalnih filtera kod upravljanja

elektromotorima. Takva arhitektura primjenom FPGA integriranog kruga i digitalnih filtra

kod upravljanja elektromotorima je dizajnirana i simulirana u ovom radu. Implementacija

5

Page 10: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

bezsenzorskog algoritma je izvedena preko platforme otvorenog koda VESC. Uz to je dan

prijedlog poboljšanja, sa shemom za upravljač elektromotorima, baziran na VESC platformi,

i to za kontrolu asinkronog motora, maksimalnog napona 600V i maksimalne struje 50A.

6

Page 11: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

2. ASINKRONI MOTORI

Indukcijski elektromotor ili asinkroni elektromotor ima rotirajući dio (rotor) na koji

se električna nergija prenosi indukcijom, pod djelovanjem okretnog magnetskog polja koje

stvara sustav višefaznih struja u statoru.

Prema izvedbi rotorskog namota dijele se na kavezne i klizno­kolutne elektromotore.

Ovakvi električni strojevi su jednostavne konstrukcije i pouzdani u pogonu, pa se i najčešće

koriste u svim vrstama elektromotornih pogona. Princip rada asinkronih elektromotora

je takav da stator proizvodi okretno magnetno polje koje se vrti brzinom frekvencije

napona/struje koju dovedemo na stezaljke statorskih izvoda. Rotor asinkronog elektromotora

u motornom režimu rada se uvijek vrti sporije od statorskog magnetnog polja, dok je kod

generatorskog režima rada klizanje veće od jedan. Radi ovoga se magnetno polje statora

rotira relativno u odnosu na rotor. Zbog ove relativne brzine postoji indukcijska sprega

između statora i rotora, koja proizvodi struju u rotoru. Struje u rotoru proizvode magnetno

polje, koje se radi Lorentzovog zakona opire statorskom polju. Iz tog razloga da bi se struja

rotora oduprla izvoru, rotor se krene okretati u smjeru statorskog okretnog magnetnog polja.

Rotor krene ubrzavati do blizu sinkrone brzine, ali nikada ne dostigne sinkronu brzinu, jer

tada ne bi postojalo indukcije magnetnog polja rotora, a samim time i momenta. Ovu razliku

u brzini između rotora i sinkrone brzine nazivamo klizanje.

Asinkroni elektromotori su po tome i dobili naziv, jer brzine magnetnog polja statora

i mehanička brzina rotora nisu jednake. Formula za klizanje je jednaka razlici sinkrone i

trenutne brzine podijeljena sa sinkronom brzinom.[9]

s =ns − n

ns

(2.1)

Gore navedene brzine su svedene na mehaničke brzine, gdje je s ­ klizanje, ns ­ sinkrona

brzina, n ­ brzina rotora elektromotora. Brzinu okretnog magnetnog polja statora možemo

7

Page 12: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

izračunati preko frekvencije statorske struje.

ωel = 2 ∗ π ∗ f (2.2)

Veza između brzine okretnog polja statora ωel i sinkrone brzine rotora je broj pari polova ­ p.

ωs = ωel ∗ p (2.3)

Na kraju sve možemo preračunati u mehaničku brzinu okretaja po minuti.

ns =120 ∗ f

p(2.4)

Gdje je f ­ frekvencija struje, p ­ broj pari polova, a ns ­ mehanička brzina rotora izražena u

okretajima po minuti (okr./min.).

Indukcijski/asinkroni elektromotor je danas vrlo često upotrebljavan elektromotor,

osobito u industriji. Razlog tome je relativno niska cijena i robusnost samog stroja. Najčešće

primjenjivani asinkroni elektromotor je asinkroni elektromotor kaveznog tipa. Naziv je

dobio prema rotorskom namotu koji se sastoji od neizoliranih i kratko spojenih aluminijskih

vodiča raspoređenih po obodu željezne jezgre rotora, što izgleda slično kavezu.[7] Kako

Slika 2.1: Kavezni rotor asinkronog elektromotora.

rotor izgleda kao kavez, takav elektromotor nazivamo kaveznim elektromotorom. Drugi tip

asinkronih elektromotora, koji je gore spomenut, je klizno­kolutni asinkroni elektromotor.

Ovakva izvedba asinkronog elektromotora ima rotorske namote spojene preko kliznih koluta

na vanjske otpornike. Vanjski otpornici služe za smanjenje startne struje, te struje tokom

8

Page 13: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

rada. Prilikom starta, klizno­kolutni elektromotor ima namote rotora spojene na vanjski

napon, preko otpornika. Nakon što elektromotor dosegne punu brzinu, namoti rotora

se odspoje od vanjskog napona, te se ukratko spoje. Upravo iz ovoga razloga početni

moment klizno­kolutnog asinkronog elektromotora je dosta velik. Vanjski otpornici se

mogu koristiti za jednostavnu izvedbu kontrole brzine ove vrste elektromotora. Danas

ovaj tip elektromotora nalazi primjenu gdje je bitna cijena i iznimna robusnost, iako sve

rijeđe, jer je današnje upravljanje asinkronih elektromotora, konkretno kaveznog asinkronog

elektromotora, premostilo sve dobre strane klizno kolutnog elektromotora.

Slika 2.2: Shema klizno kolutnog elektromotora ­ statički model.[7]

2.1. Nadomjesna shema asinkronog elektromotora

Na Slici 2.2 nadomjesna shema asinkronog elektromotora. Ovdje je R1 ­ otpor

statorskog namota, X1 ­ rasipni induktivitet statora, Xm ­ induktivitet gubitaka jezgre, R0

­ otpor gubitaka u jezgri. X2 je induktivitet rotora reduciran na stranu statorske strane, te R2

­ otpor rotora, Rst ­ otpor rotora ovisan o klizanju. R2 i Rst možemo zajedno napisati kao

R2 =R2

s. Iz nadomjesne sheme možemo napisati da je ukupna struja elektromotora jednaka:

Is =U

Zeq

(2.5)

Gdje je Is ­ statorska struja, U ­ narinuti napon na statoru, a Zeq ­ ekvivalentni otpor kruga.

Iz nadomjesne sheme možemo vidjeti da kako se povećava klizanje, tako raste struja rotora,

a struja statora se smanjuje.

9

Page 14: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 2.3: Shema klizno kolutnog elektromotora.[7]

Snaga elektromotora za sve tri faze je:

Pf3 = 3 ∗ I2s (1− s

s)R

2 (2.6)

, a moment je:

M =Pf3

ω(2.7)

U realizaciji upravljanja asinkronog elektromotora, javlja se povećana potreba za

transformacijom struja, napona i ulančanih tokova statora i rotora, iz trofaznog sustava u

dvofazni i obratno. Također postoji potreba za prebacivanjem iz različitih koordinatnih

sustava, rotorskog, statorskog i rotirajućeg.

2.2. Clark­ova transformacija

Da bi mogli raditi gore navedene transformacije potrebna nam je Clarkova

transformacija. Ona se temelji na tome da tri struje vektora a,b,c, možemo prikazati kao

dva vektora α i β, s tim da je suma vektora is jednak za oba sustava.[17]

α = a (2.8)

β =(b− c)√

3(2.9)

Također možemo napisati:

is = iα + jiβ =2

3(ias + aibs + a2ics) (2.10)

10

Page 15: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

2.3. Park­ova transformacija

Pomoću Parkove transformacije dobijemo vrijednosti vektora rotirajućeg sustava.[17]

Transformacija se vrši na α,β vektorima te dobijamo d,q vektore.

id = iα ∗ cos(θ)λ + iβ ∗ sin(θ)λ (2.11)

iq = −iα ∗ sin(θ)λ + iβ ∗ cos(θ)λ (2.12)

Povratna transformacija je također vrlo jednostavna, s tim da su ove jednadžbe napisane u

naponskom obliku:

vα = vd ∗ cos(θ)λ − vq ∗ sin(θ)λ (2.13)

vβ = vd ∗ sin(θ)λ + vq ∗ cos(θ)λ (2.14)

11

Page 16: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

3. UPRAVLJANJE ASINKRONIMMOTORIMA

Postoji više metoda za upravljanje asinkronog motora. Možemo ih podijeliti u dvije

osnovne skupine:

• Skalarnu

• Vektorsku

3.1. Skalarna V/Hz metoda

U skalarnoj V/Hz metodi, brzina asinkronog motora se kontrolira pomoću amplitude i

frekvencije napona statora, tako da se magnetni tok u zračnom rasporu održava na željenoj

vrijednosti. Ova metoda se može jednostavno objasniti preko pojednostavljene nadomjesne

sheme statičkog stanja. Može se uzeti da je radni otpor statora jednak nuli, i da je rasipni

induktivitet statora ugrađen u rasipni induktivitet rotora.[9] Tako da se može pisati:

Im≈Vs

jωLm

(3.1)

Ako je elektromotor u linearnom području, Lm je konstanta, tako da se može pisati[7]:

Im =Vs

(2πf)Lm

Lm

(3.2)

Gdje je Ψ ­ magnituda statorskog toka. Iz ovoga se vidi da ako se odnos V/Hz drži

konstantnim, tada će i tok ostati konstantan.

Ova metoda upravljanja asinkronim elektromotorom se može primijeniti sa otvorenom

petljom, kao što je prikazano na Slici 3.2, ili se može primijeniti u zatvorenoj petlji, gdje

je povratna informacija brzina i struja asinkronog elektromotora.[2] Slika 3.3 prikazuje

12

Page 17: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 3.1: Asinkroni motor ­ statičko stanje[9]

karakteristiku ovisnosti brzine tereta umirovanju, i pogonu kad je spojen nekakav teret. Kako

se V/Hz postepeno povećava, tako proporcionalno raste i brzina, a krivulja momentna ostaje

konstantna, što se može vidjeti iz točaka od 1 do 7. Ova vrsta tereta mijenja moment ovisno o

brzini što se također vidi na točkama od 1 od 7. Nakon što elektromotor dosegne maksimalni

nazivni napon, dalje možemo povećavati samo frekvenciju, što dovodi do slabljenja polja. To

vidimo na točkama od 5 do 7. Također možemo primijetiti da prilikom ovog efekta slabljenja

polja, krivulja momenta se smanjuje, tj. maksimalni moment za brzinu poviše nazivne je

manji.[9]

3.2. Vektorska kontrola

Vektorska metoda upravljanja elektromotorom dalje može podijeliti na FOC (engl.

Field Oriented Control) ­ upravljanje zasnovano na ulančanom magnetnom toku, te DTC

(engl. Direct Torque Control) ­ izravna kontrola momenta.

3.2.1. FOC ­ kontrola zasnovana na ulančanom magnetnom toku

Vektorska kontrola motora ­ FOC (engl. Field Oriented Control) je metoda upravljanja

statorskih struja trofaznog asinkronog/sinkronog elektromotora sa dvije ortogonalne

vektorske komponente. Jedna komponenta definira magnetski tok motora, a druga moment.

Uređaj koji upravlja elektromotorom na osnovu zadane brzine i/ili momenta upravlja sa ovim

komponentama, kako bi se postigao željeni rezultat. Iako je prijedlog za vektorsku regulaciju

postoji još od 1968. godine, njegova primjena je tek započela pojavom mikrokontrolera,

13

Page 18: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 3.2: Blok shema V/Hz metode s otvorenom petljom[4]

početkom 1980. godine.

Vektorsko upravljanje motora temelji se na regulaciji momenta nezavisno uzbuđenog

istosmjernog motora. Upravljanje nezavisno uzbuđenog istosmjernog motora sastoji se od

upravljanja dva zasebna kruga, uzbudnog i armaturnog, tj. upravljanjem dvije zasebne

struje; struje armature i struje uzbude. To znači da je moment upravljan strujom armature,

a magnetni tok rotora strujom uzbude. Ovi tokovi kod asinkronog motora su okomiti,

pa možemo reći da su raspregnuti. Ovakav način upravljanja može se implementirati

kod asinkronih motora, ako se upravljanje promatra sa referentnog okvira rotirajućeg

koordinatnog sustava, gdje se sinusne varijable pojavljuju kao istosmjerne varijable Id i Iq.

Kao što je prikazano na Slici 3.5. Da bi izračunali varijable rotirajućeg sustava d,q, prvo se

treba izračunati dvofazne varijable statorskog sustava α i β[9]. Varijable α i β se računaju iz

statorskih struja/napona preko Clarkove transformacije. Zatim se iz statorskih varijabli α i β

preko Parkove transformacije računa struja/napon d,q. Obzirom da je asinkroni elektromotor

zatvorena strujna petlja, mogu se mjeriti samo dvije struje, a treću možemo proračunati iz

zbroja dvije izmjerene struje. Kao što je već navedeno, upravljanje se vrši preko rotirajućih

14

Page 19: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 3.3: Karakteristika momenta u odnosu na brzinu pri promjeni frekvencije, teretnog

momenta i napona[4]

veličina d,q gdje je Iq ­ struja momenta, a Id ­ struja magnetnog polja, što se može vidjeti sa

Slike 3.6.

Vektorska kontrola upravlja sa ove dvije veličine, pri tome struja Id treba biti konstanta,

a Iq treba odgovarati iznosu momenta tj. snage. Kada ”korisnik” povećava iznos tj. traži od

elektromotora veću snagu, ono što kontroler treba napraviti je da poveća struju Iq tj. moment,

a samim time i snagu jer je:

P = ω ∗M (3.3)

3.2.2. Senzorska kontrola

Kao što je prikazano na Slici 3.6, kako bi se moglo proračunati potrebnu struju Iq s

obzirom na zahtjev ”korisnika”, mora se poznavati trenutačna brzinu rotora. Ta informacija

se može dobiti preko ”promatrača”, što je prikazano na Slici 3.6. Kako bi se vrijednosti

d,q proračunale iz vrijednosti α, β, mora se poznavati kut rotora. Umjesto ”promatrača”,

senzorska kontrola koristi enkoder koji nam omogućuje preciznu brzinu i kut rotora.

15

Page 20: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 3.4: Blok dijagram FOC algoritma Blaschke 1971 US patent[3]

Slika 3.5: Vektorski dijagram[11]

3.2.3. Bezsenzorska kontrola

Glavna stvar kod bezsenzorske kontrole je pokušati dobiti iz vrijednosti struje i napona

asinkronog motora, vrijednost pozicije rotora i brzine rotora, kako bi ih mogli primijeniti u

FOC algoritmu, kao što je prikazano na Slici 3.6.

16

Page 21: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 3.6: Bezsenzorski FOC algoritam[8]

3.2.3.1. ”Promatrač”

”Promatrač” je dio FOC algoritma koji izračunava kut zakreta rotora. Algoritmi koji

se koriste su:

• Rotorski model

• Statorski model

• MRAS observer

• Kalman filter

Rotorski model se dobije iz diferencijalne jednadžbe rotorskog namota. Algoritam se

može implementirati sa statorskih koordinata ili koordinata rotirajućeg polja.[8]

τrdΨr

dτ+Ψr = jωτrΨr + lmis (3.4)

Ulančano magnetno polje rotoraΨ(S)r se može izračunati preko statorskih koordinata kako je

prikazano na slici 3.7. Argument od Ψr jednak je kutu rotorskog polja δ.

Ψ(S)r = Ψrcos(δ) + jΨrsin(δ) = Ψrα + jΨrβ (3.5)

Oba signala Ψrα i Ψrβ se dobiju preko slijedećih funkcija.

δ = arctanΨrβ

Psirα(3.6)

Ψr =√Ψrβ

2 + Psirα2 (3.7)

17

Page 22: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 3.7: Rotorski model u statorskim koordinatama

3.3. Vektorska modulacija napona

Vektorskamodulacija napona ­ SVM (engl. Space VectorModulation) je predstavljanje

trofaznih veličina a,b,c s pomakom od 120. S obzirom na topologiju koja je prikazana na

Slici 3.8 ima 8 mogućih kombinacija vektora. S obzirom na način na koji se koriste ovi

vektori možemo smanjiti/povećati harmonike i/ili gubitke. Referenti napon Vref se uzorkuje

Slika 3.8: Topologija trofaznog invertera

sa vremenomuzorkovanjaTs. Za vrijeme perioda uzorkovanjaVref se rekonstruira na temelju

najbližih vektora heksagona i nul­vektora.[17]

Vref = Vx ∗ T1 + Vy ∗ T2 + Vnull ∗ T0 (3.8)

Gdje je Vx ­ vektor sa najmanjim kutom, a Vy­ vektor sa najvećim kutom kao što je prikazano

na Slici 3.9.

Pošto se kao izbor pojavljuju dva nul­vektora, može se odlučiti koji ćemo odabrati. Za

motor nije bitno koji se nul­vektor odabere, jer će motor uvijek vidjeti sinusnu struju. Jedina

razlika je ta da prilikom odabira V0 vektora u odnosu na V7 mogu se smanjiti sklopni gubitci

kao što je prikazano na Slici 3.10. Vektorskamodulacija napona je simulirana preko LTSpice

18

Page 23: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 3.9: Svih osam mogućih vektora[17]

Slika 3.10: Vektorska modulacija razlika izmedu korištenja nul­vektora[17]

programa za simulaciju, a sama shema se nalazi u Prilogu 2. Na Slici 3.11 je prikazan rezultat

simulacije koji nam prikazuje signale prije modulatora VmodA, VmodB, VmodC .

19

Page 24: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 3.11: Vektorska modulacija ­ LTSpice simulacija

20

Page 25: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

4. FPGA

FPGA ­ (engl. Field Programmable Gate Array) je integrirani krug dizajniran tako

da korisnik može raditi promjenu u njemu nakon izrade. FPGA je sastavljen od niza malih

logičkih jedinica poznatih kao LUT­ovi (engl. Lookup Table), kao što je prikazano na Slici

4.1. Logičke jedince se sastoje od neke kombinacije I (engl. AND) i XILI (eng. XOR), ili

nekih drugih kompleksnih digitalnih elemenata. Ove logičke jedince se mogu povezivati

po želji korisnika, te se tako se mogu dobiti vrlo kompleksni algoritmi. FPGA integrirani

krugovi se programiraju sa takozvanim hardverskim opisnim jezicima HDL (engl. Hardware

Description Language). Primjeri takvih vrsta jezika su Verilog, VHDL te SystemVerilog.

Najznačajnija osobina FPGA integriranog kruga je mogućnost definiranja hardvera

po želji korisnika. U konkretnom slučaju upravljanja elektromotorom, to nam omogućuje

da neželjene radnje (paljenje dva tranzistora koji se ne bi smjeli istovremeno otvoriti jer

stvaraju kratki spoj) i greške (prevelika struja, napon itd.) otklone tj. registriraju se vrlo brzo,

osobito u odnosu na mikrokontroler. Također, implementacija zaštite tranzistora i motora u

FPGA integriranom krugu se tehnički smatra kao hardverska implementacija. Iz tog razloga

sigurnost i zaštite su na visokom nivou. Ovakva implementacija omogućuje da zaštita radi,

bez obzira na to koji program je stavljen u mikrokontroler.

Moderni FPGA integrirani krugovi danas u sebi imaju ugrađene i DSP (engl. Digital

Signal Processing) blokove, tako da je i filtriranje ulaznih digitalnih signala struje i napona

vrlo brzo i efikasno. Sa ovime su se oslobodili resursi mikrokontrolera, te mu omogućeno da

obavlja druge zadatke.

21

Page 26: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 4.1: Arhitektura FPGA integriranog kruga (Lattice ice40UP)[15]

22

Page 27: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

5. DELTA­SIGMA ANALOGNO DIGITALNI PRETVORNIK

Delta­sigma modulacija je metoda kodiranja analognih signala u digitalne signale kao

ADC ­ analogno digitalni pretvornik (engl. Analog­Digital Converter). Također se koristi i

kaometoda za dekodiranje digitalnih signala u analogne signale kaoDAC ­ digitalno analogni

pretvornik (engl. Digital­Analog Converter).

Prvi korak delta­sigma ADC­a je delta modulacija. Delta modulacija ne prikazuje

apsolutnu vrijednost signala nego njegovu razliku u odnosu na prethodni signal. Modulator

Slika 5.1: Delta modulator shema[14]

je napravljen tako da kvantizator konvertira razliku između ulaznog signala i usrednjenog

signala iz prijašnjeg koraka. Kvantizator se može izvesti kao komparator koji je referenciran

prema nuli. Takav komparator na izlazu daje 1 i 0 ovisno o tome je li ulazni signal pozitivan ili

negativan. Rezultat ovoga je niz pulseva. Ako se ovaj niz pulseva integrira, te provede kroz

nisko propusni filter, dobijemo ulazni signal. U delta ADC­u preciznost može se povećati

tako da se doda 1­bitni DAC, te se doda rezulatat integracije izlaznog signala delta modulacije

u ulazni signal, te se time smanji greška proizvedena delta modulacijom. Ovaj korak se

naziva sigma i sa time se dobije delta­sigmaADC.[1] Da bi mikrokontroleri i ostali integrirani

krugovi mogli razumijeti i manipulirati digitalnim podacima proizvedenim delta­sigmaADC­

om, kao izlaz trebamo imati takt pri kojem ADC vrši operacije, te izlaz samog ADC­a.

23

Page 28: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Slika 5.2: Principijelna shema delta­sigma analogno­digitalnog pretvornika[14]

5.0.1. Manchester kodiranje

Ponekad se radi smanjenja kompleksnosti ili radi olakšanja izvedbe moguće koristiti

kodiranje signala u kojem se takt i podaci prenose zajedno. Primjer takvog kodiranja

je Manchester kodiranje. Manchester kod se temelji na tome da su bitovi predstavljeni

Slika 5.3: Dijagram Manchester kodiranja[10]

prijelazima iz 0 u 1 i obratno. Kod originalnog G.E Thomas koda prijelaz iz 0 u 1 predstavlja

0, a prijelaz iz 1 u 0 predstavlja 1. Dok po IEEE802.4 standardu je obratno, prijelaz iz 1 u 0

predstavlja 0, a prijelaz iz 0 u 1 predstavlja 1. Radi toga Manchester kod uvijek ima prijelaz

na sredini svakoga bita. Ova vrstma kodiranja se primjenjuje kod prijenosa signala preko

galvanske izolacije jer istosmjerna komponenta ne ovisi o ulaznom signalu.[10] Manchester

kodiranje se može primjeniti uz pomoć XILI ­ ekskluzivno ILI vrata (engl. (XOR)). Jedan od

načina dekodiranja se bazira na principu da se iz signala zasebno dobiju takt i podaci. Radi

primjene FPGA integriranog kruga treba implementirati dekodiranje koje je prilagođeno za

hardversku implementaciju koja najviše odgovara FPGA integriranom krugu. Jedan takav

algoritam je baziran na tome da je vrijednost predstavljena u prvoj polovici vremena bita,

24

Page 29: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Podaci Takt Manchester kod

0

XOR

0 0

1 1

10 1

1 0

Table 5.1: Manchester kodiranje IEE802.4

Slika 5.4: Dekodiranje Manchester koda[16]

prije nego li se dogodi tranzicija. Ako se pokrene brojač koji je jednak 3/4 vremena takta, na

početku tranzicije, vrijednost koja će se dobiti kada brojač završi je vrijednost sljedećeg bita.

Potrebno vrijeme se može dobiti iz razlike vremena između dva najbliža brida.[16] Dobijeno

vrijeme je jednako polovici vremena takta. Ovaj algoritam je implementiran u Verilogu:

Kod 5.1 : Dekodiranje Manchester podataka

/ / Dekod i r a n j e poda t aka

a lways @( posedge c l k _ i n )

beg in

/ / P o c e t i b r o j a n j e na poz i t i vnom i nega t ivnom rubu

i f ( ( ( ! mdi1 && mdi2 ) | | ( ! mdi2 && mdi1 ) ) && c l k == 1 ’ b0 )

beg in

c l k <= ~ c l k ;

end

/ / 3 / 4 t a k t a

25

Page 30: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

i f ( c l k > 0)

beg in

i f ( coun t < de l a y )

beg in

coun t ++;

end

e l s e

beg in

n r z <= ~mdi ;

coun t <= 0 ;

c l k <= ~ c l k ;

end

end

end

endmodule

Ovaj algoritam smo također i simulirali što je prikazano na Slici 5.5

Slika 5.5: Rezultat Verilog simulacije

26

Page 31: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

6. DIGITALNI FILTERI

Digitalni filter je sistem koji vrši matematičke operacije nad uzorkovanim diskretnim

signalom kako bi smanjio ili poboljšao dijelove tog signala. Digitalni filter se većinom

sastoji od ADC­a koji uzorkuje signal, te FPGA, ASIC, DSP ili MCU koji vrše potrebne

matematičke operacije nad digitalnim signalom kako bi ga mogli filtrirati. Karakteristika

digitalnog filtera se može prikazati preko prijenosne funkcije u z­domeni.

H(z) =B(z)

A(z)(6.1)

B(z) i A(z) su polovi tj. nule te iste prijenosne funkcije. U praksi postoje i koriste se dvije

vrste digitalnih filtera. IIR ­ beskonačni impulsni odziv (eng Infinite Impulse Response) i

FIR ­ konačni impulsni odziv (engl. Finite Impulse Response) digitalni filteri. FIR filtri su

takvi da im je odziv na konačni impuls takav da ima konačno trajanje. IIR filteri mogu na

isti impuls imati beskonačan odziv zbog unutarnjeg pojačanja.[12] Kao što vidimo sa slike,

Slika 6.1: FIR filter u diskretnom vremenu[13]

FIR filter ne treba nikakvu povratnu vezu, te je posljedično radi toga stabilan. To je glavna

prednost FIR filtra u odnosu na IIR filter. Problem FIR­a je zahtijevanje velike procesorske

moći u odnosu na IIR filter iste selektivnosti i oštrine. Sa zahtjevom velike procesorske moći

27

Page 32: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

također dolazi do velike latencije FIR filtera, dok IIR za iste uvjete ima manju latenciju.[13]

Prilikom dizajniranja FIR filtera imamo mogućnost koristiti sljedeće metode:

• Metoda dizajna ”prozorima”

• Parks­McClellan metoda

• Metoda frekvencijskog uzorkovanja

• Metoda najmanje srednje kvadratne pogreške

Ovdje se može naići na još jednu prednost IIR­a, a to je taj da za dizajniranje IIR­a ne trebaju

se koristiti nove metode, nego se mogu uzeti postojeće metode za dizajniranje analognih

filtera.[13] Nakon dizajniranja u analognoj domeni, prijenosna funkcija analognog filtera se

može prebaciti u digitalnu domenu preko:

• Bilinearne transformacije

• Prebacivanje polova i nula iz Laplaceove s u z­domenu

Slika 6.2: IIR filter u diskretnom vremenu[5]

Filter koji je vrlo jednostavan i praktičan za primjenu za izlaz delta­sigma ADC­a je sinc filter.

Sinc filter se se ponaša kao idealni nisko propusni filter, te ima linearni fazni odziv. Odziv

ovog filter na impulsu funkciju u vremenskoj domeni je matematička sinc funkcija.[6]

sinc(x) =sin(x)

x(6.2)

28

Page 33: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

Još jedna bitna značajka ovoga filtera je njegova brzina, čime se rješava potreba da

filter ima što manji vremenski zaostatak za realnim vrijednostima, što je vrlo bitno kod

upravljanja elektromotorom. Ovaj filter smanjuje broj uzoraka delta­sigma ADC­a, što

nam je potrebno, jer se time na izlazu iz filtera dobije više­bitna riječ tj. vrijednost signal

u tom trenutku.[1] (ulaz je samo 1 bit). Kod je implementiran u Verilogu, i simuliran

simulatorom IcarusVerilogu. Na slici je prikazan digitalni signal koji je interpoliran u

Slika 6.3: Rezultat filtriranja sinc3 filterom

programu GTKWave.

29

Page 34: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

7. IMPLEMENTACIJA VEKTORSKE FOC KONTROLE ASINKRONOG

MOTORA

Implementacija upravljanja je izvedena sa VESC ­ (engl. Vedder Electric Speed

Control) platformom otvorenog koda za upravljanje BLDC/PMSM ­ (engl. Brushless

Direct Current Motor/Permanent Magnet Syncronus Motor). Na ovoj platformi algoritam

”promatrača” za BLDCmotor je zamijenjen sa algoritmom koji radi sa asinkronim motorima.

Algoritam koji je primjenjen je jednostavni ”promatrač”, baziran na rotorskom modelu.

Najučestaliji način bezsenzorske kontrole je preko statorskog ulančanog magnetskog

polja, koje se računa preko mjerenja struja i napona statora. Algoritam radi na principu

integriranja statorskog napona Vqds i iz njega se dobije ulančano magnetno polje statora.

Ψ(αβs) =∫(Vαβs − RsIαβs) (7.1)

Sljedeća potrebna stavka je izračun ulančanog magnetnog polja rotora, koje se vrši na

slijedeći način:

Ψ(αβs) =Lr

Lm

(Ψ(αβs)− L′

si′

αβs)) (7.2)

Gdje je Lr ­ induktivitet rotora, Lm ­ međuinduktivitet rotora i statora,Rs ­ otpor statora. Kut

zakreta rotora na kraju dobijemo iz sljedeće jednadžbe:

θ = arctan(Ψβ

Ψα

) (7.3)

Kod 7.1 : ”Promatrač” baziran na rotorskom modelu

vo id o b s e r v e r _ u p d a t e ( f l o a t v_a lpha , f l o a t v_be ta , f l o a t i _ a l p h a , f l o a t

i _ b e t a ,

f l o a t dt , v o l a t i l e f l o a t *x1 , v o l a t i l e f l o a t *x2 ,v o l a t i l e f l o a t *phase , v o l a t i l e m o t o r _ a l l _ s t a t e _ t *motor )

30

Page 35: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

v o l a t i l e mc_ c on f i g u r a t i o n *conf_now = motor −>m_conf ;

c o n s t f l o a t L = ( 3 . 0 / 2 . 0 ) * conf_now −> foc_mo to r _ l ;

f l o a t R = ( 3 . 0 / 2 . 0 ) * conf_now −> foc_mo to r_ r ;

/ / S a t u r a t i o n compensa t i on

c o n s t f l o a t s i g n = ( motor −>m_moto r_ s t a t e . i q * motor −>m_moto r_ s t a t e . vq

) >= 0 . 0 ? 1 . 0 : −1 . 0 ;

R −= R * s i g n * conf_now −> foc_sa t_comp * ( motor −>m_moto r_ s t a t e .

i _ a b s _ f i l t e r / conf_now −> l _ cu r r e n t _max ) ;

/ / Tempera tu r e compensa t i on

c o n s t f l o a t t = m c _ i n t e r f a c e _ t emp _mo t o r _ f i l t e r e d ( ) ;

i f ( conf_now −>foc_temp_comp && t > −25 .0 )

R += R * 0 .00386 * ( t − conf_now −>foc_temp_comp_base_temp ) ;

f l o a t r o t o r _ f l u x _ a l p h a = 0 . 0 ;

f l o a t r o t o r _ f l u x _ b e t a = 0 . 0 ;

f l o a t c o s _ r o t o r = 0 . 0 ;

f l o a t s i n _ r o t o r = 0 . 0 ;

c o n s t f l o a t L_ia = L * i _ a l p h a ;

c o n s t f l o a t L_ib = L * i _ b e t a ;

c o n s t f l o a t R_ia = R * i _ a l p h a ;

c o n s t f l o a t R_ib = R * i _ b e t a ;

c o n s t f l o a t lambda_2 = SQ( conf_now −> f o c _mo t o r _ f l u x _ l i n k a g e ) ;

c o n s t f l o a t gamma_half = motor −>m_gamma_now * 0 . 5 ;

c a s e FOC_OBSERVER_ORTEGA_ITERATIVE :

f l o a t LrLm = . 5 ;

f l o a t s t a t o r _ f l u x _ a l p h a = v_a lpha − R_ia ;

f l o a t s t a t o r _ f l u x _ b e t a = v_be t a − R_ib ;

/ / I n t e g r a t e

s t a t o r _ f l u x _ a l p h a = s t a t o r _ f l u x _ a l p h a * d t ;

s t a t o r _ f l u x _ b e t a = s t a t o r _ f l u x _ b e t a * d t ;

r o t o r _ f l u x _ a l p h a = LrLm * ( s t a t o r _ f l u x _ a l p h a − L_ia ) ;

r o t o r _ f l u x _ b e t a = LrLm * ( s t a t o r _ f l u x _ b e t a − L_ib ) ;

*x1 += s t a t o r _ f l u x _ a l p h a ;

31

Page 36: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

*x2 += s t a t o r _ f l u x _ b e t a ;

b r e ak ;

d e f a u l t :

b r e ak ;

UTILS_NAN_ZERO(* x1 ) ;UTILS_NAN_ZERO(* x2 ) ;

i f ( phase )

e l s e

*phase = u t i l s _ f a s t _ a t a n 2 ( r o t o r _ f l u x _ b e t a , r o t o r _ f l u x _ a l p h a ) ;

Kod je testiran na VESC platformi. Rezultat je prikazan na Slici 7.1

Slika 7.1: Kut θ ”promatrača” pri 100 okr/min

Drugi dio implementacije je prijedlog kako ovu platformu otvorenog koda pretvoriti

u platformu za kontroliranje visokonaponskih asinkronih elektromotora. Platforma koristi

32

Page 37: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

DRV8320 integrirani krug za kontrolu glavnih tranzistora. Ovaj krug ima sigurnosne osobine

poput sprječavanja kratkog spoja na tranzistorima, itd.. Za proračun i upravljanje se koristi

STM32 mikrokontroler koji je ostao i u predloženom dizajnu. DRV8320 se više ne koristi iz

razloga što je njegov maksimalni podnosivi napon 60V.

Ciljana vrijednost za ovaj prijedlog upravljača za asinkrone motore je napon od 600V i

struja od 50A. Zbog tog razloga se koristi Si8273 upravljač vrata za IGBT­ove i MOSFET­e

koji je konstruiran za napone do 2kV, te je logička strana izolirana od upravljačke strane. Ovaj

integrirani krug nema zaštitu od otvaranja dvaju serijskih tranzistora što će izazvati kratki

spoj i uništenje tranzistora. Iz tog razloga je korišten Lattice­ice40UP FPGA integrirani krug,

koji hardverski omogućuje sprječavanje navedenog slučaja. Zbog velikog napona, mjerenje

napona i struje su izvedena preko AMC1303 izolacijskih ADC­ova. Postoje dvije različite

verzije izolacijskih ADC­ova, verzija sa Manchester kodiranjem i druga bez Manchester

kodiranja. Sveukupno ima šest izolacijskih ADC­ova (za svaku fazu jedan naponski i jedan

strujni). Zbog manjka pinova na korištenom Lattice­ice40UP FPGA integriranom krugu

koristi se Manchester verzija izolacijskog ADC­a.

Unutar samog FPGA­a je implementiran sinc filter. Zbog načina rada sinc filtera,

prenaponske i nadstrujne pojave se mogu registrirati i prije nego što filter završi konverziju.

Nakon uočenog neželjenog stanja, FPGA prestaje davati signale prema upravljačima vrata.

Jedna od velikih prednosti primjene FPGA­a, a samim time i digitalnih filtera, je ta što

analogni filteri za ovu primjenu moraju biti precizni i stabilni, što diže cijenu proizvoda.

Odabirom digitalnih filtera, ne samo da smo smanjili cijenu, nego smo i izbjegli probleme

uzrokovane korištenjem analognih filtera uslijed starenja komponenti.

Mikrokontroler i FPGA imaju međusobnu komunikacije preko FSMC (engl. Flexible

Static Memory Controller) protokola. Ovo omogućuje bržu i bezbolniju komunikaciju među

njima.

33

Page 38: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

8. ZAKLJUČAK

Ovaj rad se fokusirao na predstavljanje metoda za kontroliranje asinkronih

elektromotora, te implementaciji nekih od njih na postojećoj platformi otvorenog koda

VESC.

Kao što je opisano u radu, skalarna metoda bazirana na V/Hz=konst. ima svoje

nedostatake, ali i prednosti, tako da se još primjenjuje u pumpama, ventilatorima gdje

precizna kontrola brzine nije potrebna.

Upotreba digitalnih filtera je iznimo povoljna u slučaju upravljanja elektromotora jer

omogućuje vrlo jednostavnu implementaciju nadstrujne i prenaponske zaštite koja je u ovom

slučaju implementira u FPGA integriranom krugu.

FOC (engl. Field Oriented Control) se bazira na upravljanju zasnovanom na

ulančanom magnetnom toku. Ova metoda upravljanja kompleksan problem svodi na

jednostavniji način upravljanja, vrlo sličan upravljanju nezavisno uzbuđenog istosmjernog

motora, gdje upravljamo sa dvije skalarne struje id i iq.

Većina asinkronih motora u praksi nema ugrađen enkoder koji je prijeko potreban

za upravljač elektromotora baziran na FOC algoritmu, jer mu je za kontrolu potrebna

informacija o trenutnom kutu rotora θ i trenutnoj brzini rotora. Iz ovog razloga bezsenzorski

FOC algoritam je vrlo poželjan u praksi jer omogućuje primjenu upravljača elektromotora

na većem broju elektromotora.

34

Page 39: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

LITERATURA

[1] Bonnie Baker. Delt­Sigma ADCs. URL: https://www.ti.com/analog­circuit/bonnie­

baker­ebook.html. 10.06.2020.

[2] Nishant Garg Bilal Akin. URL: https : / /www. ti . com/ lit / an / sprabq8 / sprabq8 .pdf.

(26.06.2020).

[3] F Blaschke. Apparatus for field­oriented control or regulation of asynchronous

machines. URL: https : / / patents . google . com / patent /US3805135A / en. (accessed:

01.09.2020).

[4] Bimal Kumar Bose.Modern Power Electronics and AC Drives. 2002.

[5] CCASL. Infinite impulse response. URL: https : / / en .wikipedia . org /wiki / Infinite ­

impulse­response. 05.06.2020.

[6] Gray R.M ChouW. Meng T.H. “Time domain analysis of sigma delta modulation”. In:

Acoustics, Speech, and Signal Processing 3 (1990), pp. 1751–1754. DOI: 10.1109/

ICASSP.1990.115820.

[7] Martin J. Bozidar F. Dinamika Električnih Strojeva.

[8] J. Holtz. “Sensorless control of induction motor drives”. In: 90.8 (2002), pp. 1359–

1394. DOI: 10.1109/jproc.2002.800726.

[9] Texas Instruments. Field Orientated Control of 3­Phase AC­Motors. URL: https : / /

www.ti.com/lit/an/bpra073/bpra073.pdf. (accessed: 26.06.2020).

[10] Brian Bailey Jatinder Gharoo. Manchester Decoder Using the CLC and NCO. URL:

http://ww1.microchip.com/downloads/en/AppNotes/01470A.pdf. 07.08.2020.

[11] Kompleksni vektor struje statora kod vektorskog upravljanja. URL: https://www.fer.

unizg.hr/_download/repository/DANFOSS_upute.pdf. (accessed: 26.06.2020).

35

Page 40: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

[12] Alan S.; OppenheimAlan V.;Willsky and Ian T. Young. Signals and Systems. Prentice­

Hall Inc., 1980. ISBN: 0­13­809731­3.

[13] Alan V. Oppenheim and Ronald W. Schafer. Digital Signal Processing. URL: https:

//ocw.mit.edu/resources/res­6­008­digital­signal­processing­spring­2011/index.htm.

05.05.2020.

[14] Arifur Rahman. “Assignment on Sigma­Delta Modulation”. In: Research gate (2017).

DOI: 10.13140/RG.2.2.30090.36807.

[15] Lattice Semiconductors. FPGA ice40UP. URL: https : / /www. latticesemi . com/en /

Products/FPGAandCPLD/iCE40UltraPlus. (accessed: 16.06.2020).

[16] Signalpro. Manchester Decoder. URL: http : / / www . signalpro . biz / mandec . pdf.

10.09.2020.

[17] David Wilson. Teaching old motors new tricks. URL: https : / / e2e . ti . com/support /

archive/motor/m/pdf_presentations/. (accessed: 01.09.2020).

36

Page 41: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

POPIS SLIKA

2.1 Kavezni rotor asinkronog elektromotora. . . . . . . . . . . . . . . . . . . . 8

2.2 Shema klizno kolutnog elektromotora ­ statički model.[7] . . . . . . . . . . 9

2.3 Shema klizno kolutnog elektromotora.[7] . . . . . . . . . . . . . . . . . . 10

3.1 Asinkroni motor ­ statičko stanje[9] . . . . . . . . . . . . . . . . . . . . . 13

3.2 Blok shema V/Hz metode s otvorenom petljom[4] . . . . . . . . . . . . . . 14

3.3 Karakteristika momenta u odnosu na brzinu pri promjeni frekvencije,

teretnog momenta i napona[4] . . . . . . . . . . . . . . . . . . . . . . . . 15

3.4 Blok dijagram FOC algoritma Blaschke 1971 US patent[3] . . . . . . . . . 16

3.5 Vektorski dijagram[11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.6 Bezsenzorski FOC algoritam[8] . . . . . . . . . . . . . . . . . . . . . . . 17

3.7 Rotorski model u statorskim koordinatama . . . . . . . . . . . . . . . . . . 18

3.8 Topologija trofaznog invertera . . . . . . . . . . . . . . . . . . . . . . . . 18

3.9 Svih osam mogućih vektora[17] . . . . . . . . . . . . . . . . . . . . . . . 19

3.10 Vektorska modulacija razlika izmedu korištenja nul­vektora[17] . . . . . . 19

3.11 Vektorska modulacija ­ LTSpice simulacija . . . . . . . . . . . . . . . . . 20

37

Page 42: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

4.1 Arhitektura FPGA integriranog kruga (Lattice ice40UP)[15] . . . . . . . . 22

5.1 Delta modulator shema[14] . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5.2 Principijelna shema delta­sigma analogno­digitalnog pretvornika[14] . . . . 24

5.3 Dijagram Manchester kodiranja[10] . . . . . . . . . . . . . . . . . . . . . 24

5.4 Dekodiranje Manchester koda[16] . . . . . . . . . . . . . . . . . . . . . . 25

5.5 Rezultat Verilog simulacije . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6.1 FIR filter u diskretnom vremenu[13] . . . . . . . . . . . . . . . . . . . . . 27

6.2 IIR filter u diskretnom vremenu[5] . . . . . . . . . . . . . . . . . . . . . . 28

6.3 Rezultat filtriranja sinc3 filterom . . . . . . . . . . . . . . . . . . . . . . . 29

7.1 Kut θ ”promatrača” pri 100 okr/min . . . . . . . . . . . . . . . . . . . . . 32

38

Page 43: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

POPIS TABLICA

5.1 Manchester kodiranje IEE802.4 . . . . . . . . . . . . . . . . . . . . . . . 25

39

Page 44: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

PRILOZI

40

Page 45: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1.. Prilog 1 ­ Električna shema predloženog upravljača elektromotora

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

A

B

C

D

E

F

A

B

C

D

E

F

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A3Id: 1/48

Title: Motor Controler (BLDC, IPM, Induction, SRM)File: motorcontroler.schSheet: /

Sheet: Acceleration input

File: 5v-to-3v.sch

IN+IN-

OUT

Sheet: PowerDRC

File: pwr.sch

Sheet: PSU-15V-isolated

File: 15iso.sch

GND_inVcc_in VCC_out

GND_out

Sheet: sheet61A5EFA4

File: 5v-to-3v.sch

IN+IN-

OUT

Sheet: MCU

File: MCU.sch

USB_D+USB_D-

HALL_1HALL_2

TEMP_MOTOR

PWM_C_B

PWM_B_B

PWM_A_B

FAULT

PWM_C_T

PWM_B_T

PWM_A_T

ADC_9

ADC_8

CAN_RXCAN_TX

LED_RED

LED_GREENADC_TEMP

HALL_3

ADC_15

TEMP_ATEMP_BTEMP_C

MCO2FPGA_RESET

CAN_2_RXCAN_2_TX

V_GATE_DRIVER

ADC_13

SPI3_SCKSPI3_MISOSPI3_MOSI

FSMC_AD4FSMC_AD5FSMC_AD6FSMC_AD7

FSMC_AD2FSMC_AD3

FSMC_CLKFSMC_NOE

FSMC_AD0FSMC_AD1

OT_FAULT

USART3_TXUSART3_RX

USART3_CLK

SPI1_SCK

SPI1_MISOSPI1_MOSI

LED_RED2

PE14PE15

FSMC_NADV

GATE_BGATE_C

GATE_A

BISS_SS

PC14

PC15

PB3

PB10

FPGA_SS

FSMC_NWAIT

OT_FAULT

ADC_TEMP2

Sheet: sheet61A944A7

File: 5v-to-3v.sch

IN+IN-

OUT

Sheet: Gate driver C

File: gate_driver.sch

VOAVOB

PWM_BPWM_T

ENGND_A

Vcc

Sheet: Gate driver B

File: gate_driver.sch

VOAVOB

PWM_BPWM_T

ENGND_A

Vcc

Sheet: BISS interface

File: biss.sch

5V_BISSGND_BISS

BISS_MA+BISS_MA-

BISS_SLO+BISS_SLO-

BISS_CSBISS_CLK

BISS_MISO

Sheet: sheet60C8D6EB

File: current_measurment.sch

I_in I_outDATA

Sheet: Current measurment

File: current_measurment.sch

I_in I_outDATA

Sheet: sheet60CBD4ED

File: current_measurment.sch

I_in I_outDATA

Sheet: CAN

File: CAN.sch

CAN_TXCAN_HCAN_L

CAN_RX

Sheet: Board temeprature

File: temp_board.sch

TEMP

Sheet: Gate driver A

File: gate_driver.sch

VOAVOB

PWM_BPWM_T

ENGND_A

Vcc

Sheet: Power

File: power.sch

5V3V31V2

GND

GND_INV_IN

PWRGD_3V3

Sheet: Hall, Temperature sensor

File: hall_temp.sch

HALL1_INHALL2_INHALL3_IN

MOTOR_NTC+MOTOR_NTC-

HALL3_OUTHALL2_OUTHALL1_OUT

TEMP_OUT

Sheet: CAN2

File: CAN.sch

CAN_TXCAN_HCAN_L

CAN_RX

Sheet: sheet5F4097D6

File: temp_board.sch

TEMP

Sheet: Protect outputs

File: protected_output.sch

IN1IN2IN3

OUT1OUT2OUT3

Sheet: Sheet607E0276

File: ntc_cond.sch

NTC_A+NTC_A-NTC_B+NTC_B-NTC_C+NTC_C-

OT_FAULT

TEMP_ATEMP_BTEMP_C

Sheet: tran_C

File: transistor.sch

DRAIN

SOURCEGATE

Sheet: tran_C

File: transistor.sch

DRAIN

SOURCEGATE

Sheet: tran_B

File: transistor.sch

DRAIN

SOURCEGATE

Sheet: tran_A

File: transistor.sch

DRAIN

SOURCEGATE

Sheet: tran_A

File: transistor.sch

DRAIN

SOURCEGATE

Sheet: tran_B

File: transistor.sch

DRAIN

SOURCEGATE

Sheet: Voltage measurment

File: voltage_measurment.sch

DATAVin+

Vin-

Sheet: sheet6044F055

File: voltage_measurment.sch

DATAVin+

Vin-

Sheet: Board to board connectors

File: connectors.sch

Sheet: FPGA

File: FPGA.sch

RESET

SPI_SISPI_SCK

U_phase_CU_phase_B

I_phase_A

U_phase_A

I_phase_CI_phase_B

PWM_C_B_uCPWM_C_T_uC

PWM_B_T_uCPWM_B_B_uC

PWM_A_B_uCPWM_A_T_uC

PWM_C_BPWM_C_T

PWM_B_TPWM_B_B

PWM_A_BPWM_A_T

TEMP_ATEMP_BTEMP_C

TEMP_A_uCTEMP_B_uCTEMP_C_uC

OT_FAULT

OV_FAULTOC_FAULT

SPI_SO

FAULT

CLKIN

SPI_SS

V_BUS

NOECLK

NADV

OT_FAULT_uC

NWAIT

GATE_A_uCGATE_B_uCGATE_C_uC

GATE_A

GATE_B

GATE_C

AD0AD1AD2AD3AD4AD5AD6AD7

OTFAULTOT_FAULT_uC

Sheet: sheet61A29AE1

File: 5v-to-3v.sch

IN+IN-

OUT

Sheet: sheet60394C70

File: voltage_measurment.sch

DATAVin+

Vin-

Sheet: sheet6010A733

File: voltage_measurment.sch

DATAVin+

Vin-5V_Sense

FB1

BEAD-220Ohm@100MHz

CP3

1000u

12

J3Gate driver

10-30V

12

J2PSU gate driver

22-26V

GND

+3.3V

NT1NT

C12u2

C22u2

CP2

1000u

S2Breaker1

J5BATT-

1 J4BATT+

1

J20B1

J19A 1

J21C

GND

R18 8k2

CP1

1000u

External module

12345

J22Header

GND

12

J18NTC_C

GND+1V2

12

J17NTC_B

12

J16NTC_A

1

23

Q1

IPN70R600P7

C310n

R30 8k2

R14 8k2

+15V

R20 8k2

R12 8k2

GND

GND

GND

+1V2

GND

GND

+3.3V

+15V

+5V

GND

GND

GND

+3.3VA

GND

+3.3V

GND

GND

GND

1234

J15Output

GND

+5V

GND

GNDA

+3.3V

GND

+3.3V

GND

GND

GND

GNDPWR

GND

GNDPWR

GND

D10RB161MM

R16220k

R22220k

R27220k

R1710

DZ13V6

1

23

Q2IPN70R600P7

A

B

C

1

2

3

M1

AC_MOTOR

C4100n

VBUS 1

D- 2D+ 3

ID 4

GN

D5

Shi

eld

6

J13USB_B_Micro F1

500mA

R31 8k2

1234

J12CAN

1234

J11CAN2

1

1011

23456789

J6Motor conector

C5100n

R3510k

R341k

JP1V_IN

GND

1234

J8Brake

R28 8k2

+3.3V

R3222

R3322

S3Breaker

S1Breaker

R1110k

R1010k

GND

R23 8k2

GND

R13 8k2

R19 8k2

R24 8k2

R29 8k2

R25 8k2

R15 8k2

R21 8k2

R26 8k2

+15V

D7

Green

D5

Red

12345

J24SPI

R61k

D6

Red

+5V

D9

Green

D8

Green

R9100

1234

J7Acceleration

R81k

R51k

R71k

1234

J9Sensor1

R11k

D1

RedR21k

D2

RedR31k

12345

J14USART

D3

Red

12

J1Aux PSU input

5-30V

D4

Red

+3.3V

+3.3V

+5V

+3.3V

1234

J10Sensor2

+5V

R41k

+5V

BATT-

PHASE_C

PHASE_B

PHASE_C

PHASE_A

PHASE_B

PHASE_C

PHASE_B

PHASE_C

PHASE_B

PHASE_A

BATT-

PHASE_A

BATT+5V_HVDCsense

5V_HVDCsense

PHASE_A

BATT+

PB10

SPI3_SCK

LED_RED2

LED_RED2LED_RED

LED_GREEN

PB3PB10

PB3

SPI3_MISO

CB

V_IN

SPI3_SCKSPI3_MISO

GND_IN

SPI3_MOSI

V_IN

15V_ISO

LED_RED

PWRGD_3V3

HALL3

CT

HALL2

BB

HALL1

I_phase_A

15V_ISO

OT_FAULT

15V_ISO

15V_ISO

I_phase_BI_phase_C

PWRGD_3V3

LED_GREEN

SPI3_MOSI

CB

I_phase_C

OT_FAULT

15V_ISO

I_phase_B

AT

AB

BT

BT

OC_FAULT

I_phase_A

OV_FAULT

AT

OC_FAULT

CT

OV_FAULT

AB

BB

3.3V

5V, 3.3V

5V, 3.3V

5V, 3.3V

10.25 kOhm20 secdischarge->600uF

3.3V

Current SHUNT's

3.3V

5V

A

LED's

3.3V

5V, 3.3V

Imax50A

DC Link Discharge

Isolation

Vmax130V

3.3V5V

3.3V5V

3.3V5V

3.3V

3.3V

3.3V

3.3V, 3.3VA

3.3V, 1.2V

Fault LED's

Power PCB

3.3V5V

Interface to other board

3.3V

3.3VA

DC Link

Encoder

Interface to other board

Power LED's

Extra pins

MCU LED's

Vin5-30V

SPI

3.3V

Not on PCB

3.3V

3.3V

Isolated power supply for gate drivers.

B C

Power inputs

5V

Board to board 44 Pins needed min.

As NOR/PSRAMmemory

FPGA2MCU

1

Page 46: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 2/48

Title: Motor Controler (BLDC, IPM, ACIN)File: transistor.schSheet: /tran_B/

R37R

C6C

1

23

Q3IXTP60N20T

R3610

DR

AIN

SO

UR

CE

GATE

32mOhmVgs=20VQg=73nCQgs=22nCQgd=22nC

Pgate = Pdrive + (Qgate * fsw * Vgate) + (Cge * fsw * Vgate^2)

fsw(max) = 40 kHzVgate = 15VPdriver = 0.6W

Pgate = 0.6W + .... = 0.85W

1W

Subber if needed.

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 8/48

Title: Motor Controler (BLDC, IPM, ACIN)File: CAN.schSheet: /CAN2/

R5260R4

TVS2VESD05A1

TVS1VESD05A1

GND

C1510n

+3.3V

+3.3V

GND

C12220p

R50100

GND

C14100n

R49100

+3.3V

R4810k

C13100n

TXD1

GN

D2

VC

C3

RXD4

VREF 5

CANL 6

CANH 7

S8

U1

SN65HVD1050D

R5360R4

R510

CAN_TX

CAN_H

CAN_RX

CAN_L

2

Page 47: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 9/48

Title: Motor Controler (BLDC, IPM, ACIN)File: hall_temp.schSheet: /Hall, Temperature sensor/

GND

GND

+3.3V

TVS6VESD05A1

TVS4VESD05A1

TVS3VESD05A1

TVS7VESD05A1

TVS5VESD05A1

F2500mA

F3500mA

C17100n

C1610n

C1810n

12

3 D11BAT54A

GND

GND

R5810k

+1

V-

2

-34

V+

5

U2LM321

GND

C20100n

GND

R591k

GND

R601k

C19100n

12

3 D13BAT54A

R5410k

R5710k

12

3 D12BAT54A

+3.3V

R5510k

R5610k

GND GND

+3.3V

+3.3V

+3.3V

+3.3V

HALL1_IN

TEMP_OUT

HALL3_OUTHALL2_OUTHALL1_OUT

MOTOR_NTC+

MOTOR_NTC-

HALL3_INHALL2_IN

NTC input

Hall input

BypassPlace close to ADC PIN

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 10/48

Title: Motor Controler (BLDC, IPM, ACIN)File: 5v-to-3v.schSheet: /Acceleration input/

C21220p

+3.3V

+3.3V

+5V

TVS9VESD05A1

R620

R6110k

TVS8VESD05A1

R63100

R64100

GND

R6610k

R6510k

R6910k

C23100n

R7010k+1

V-

2

-34

V+

5

U3LM321

C22220p

R6810k

R670

IN+

IN-

OUT

Place close to ADC pins

DNP

Reference for differential input

DNP

3

Page 48: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 11/48

Title: Motor Controler (BLDC, IPM, ACIN)File: temp_board.schSheet: /Board temeprature/

TH110k

R7110k

GND

C24100n

+3.3V

TEMP

Place near gate drivers

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 13/48

Title: Motor Controler (BLDC, IPM, ACIN)File: gate_driver.schSheet: /Gate driver A/

GND

C34100n

C35100n

GNDPWR

D14Bootstrap

C30100n

C292u2

C312u2

GNDPWRC324u7

C334u7

+3.3V

VIA1

VOB 10VDDB 11GNDA 14

VOA 15VDDA 16

VIB2

VDDI3

GNDI4EN5

VDDI8

GNDB 9

U5SI827(3,5)

VOAGND_AVcc

Vcc

VOBPWM_BPWM_T

EN

Bypass

Isolation

4

Page 49: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 14/48

Title: Motor Controler (BLDC, IPM, ACIN)File: biss.schSheet: /BISS interface/

R850

GND1

F4500mA

C43100n

C42100n

TVS15VESD05A1

TVS13VESD05A1

TVS14VESD05A1

TVS12VESD05A1

FB2BEAD-220Ohm@100MHz

C40100n

R8110

C41100n

R1RE2

DE3

D4

GN

D5

A 6B 7

VC

C8

U6

SN75LBC176D

R7910

C36220p

C38220p

R8010

R781k

R1RE2

DE3

D4

GN

D5

A 6B 7

VC

C8

U7

SN75LBC176DC37220p

GND1

GND1

GND1

GND1

GND1

R8460R4

GND

+5V

R8360R4

R8210

GND1

C39220p

BISS_CLK

BISS_CSBISS_MISO

BISS_SLO-

BISS_SLO+

GND_BISS

BISS_MA-

5V_BISS

BISS_MA+

5V_BISS

5V_BISS

5V_BISS1

Bypass

or SN65176

Clock

Data

http://biss-interface.com/download/biss-c-protocol-description-english/

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 16/48

Title: Motor Controler (BLDC, IPM, ACIN)File: voltage_measurment.schSheet: /Voltage measurment/

Sheet: sheet60519899

File: 5iso.sch

VCC_outGND_out

Vcc_inGND_in

R901k

C53100n

+3.3V

GND

+3.3V

C522u2

GND

R88180k

R87180k

AVDD1

AINP2

AINN3

AGND4 DGND 5DOUT 6DGND 7VDDD 8

U9

AMC1303E25020

R911k

C51330p

R86180k

R891k

GND

+5V

Vin-

5V_Sense

DATA

Vin+

Target 599 OhmVmax = 150VGot 540 OhmVmax = 130V

50^2 [A] * 0.001 [Ohm] = 2.5 [W]60^2 [A] * 0.001 [Ohm] = 3.6 [W]70^2 [A] * 0.001 [Ohm] = 4.9 [W]80^2 [A] * 0.001 [Ohm] = 6.4 [W]90^2 [A] * 0.001 [Ohm] = 8.1 [W]100^2 [A] * 0.001 [Ohm] = 10 [W]

250mV

Manchester encoding

Isolation

1000uOhm500uOhm

Imax = 50*10^-3 / 1000*10^-6 = 50 AImax = 50*10^-3 / 500*10^-6 = 100A

50^2 [A] * 0.0005 [Ohm] = 1.25 [W]60^2 [A] * 0.0005 [Ohm] = 1.8 [W]70^2 [A] * 0.0005 [Ohm] = 2.56 [W]80^2 [A] * 0.0005 [Ohm] = 3.2 [W]90^2 [A] * 0.0005 [Ohm] = 4 [W]100^2 [A] * 0.0005 [Ohm] = 5 [W]

5

Page 50: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 17/48

Title: Motor Controler (BLDC, IPM, ACIN)File: 5iso.schSheet: /Voltage measurment/sheet60519899/

C544u7

C554u7

-Vin1

+Vin2

-Vout 3

+Vout 4

U10RFM-0505S

L110u

Vcc_in

GND_in GND_out

VCC_out

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 20/48

Title: Motor Controler (BLDC, IPM, ACIN)File: power.schSheet: /Power/

R10010k

C652u2

C622u2

C77220p

R101180k

C78100n

R10368k1

L34u75A

C682u2

C7410n

L410u5A

CP422u

C634u7

R10210

C642u2

R9810k

S1 1

G12

S2 3

G24

D25D26D17D18

Q9DMP4047SSD

C76100n

C612u2

C71100n

1 2

3 4

FL1EMI_Filter_CommonMode

R991k

PHASE1

SW 10

BST 11

VCC12

AG

ND

13

SS14

FB 15

FREQ16VIN2 SW 3

PG

ND

4

EN5

SYNC6

PG7

BIAS 8PG

ND

9

U15MPQ4430

C694u7

DZ2ZMMxx7-15V

C70100n

C66100n

F52A SLOW

Vin1

GN

D2

SHDN3 PWRGD 4Vout 5

U14MCP1824T

C722u2

R10413k

SHDN1Vin2

GD

N3

Vout 4

PWRGD 5

U13MCP1827

CP530u

C67100n

C75100n

C732u2

3V3

GND

5V

5V

5VPWRGD_3V3

5V

1V2

GND_IN

V_IN

EN

GND

GNDGND

GND

GND

GND

GNDGND

EN

EN

Imax = 0.8A

SMPS 5-30V to 5V 3A

Vin(max) = 5.5VVout(min) = 3.2VIout(max) = 1.5AR(thermal resistance) = 31.2 C/WTa(max) = 70 CTj(max) = 125 CPd(LDO) = [Vin(max) - Vout(min)] * Iout(max) 3.5WPd(Iq) = Vin(max) * Ivin(120uA) = 0.66mWTj(max) = Ptotal * R(thermal resistance) + Ta(max) = 172 C < 125 C ----> Max Current = 0.8A

Power sequencing for FPGA

Vin(max) = 5.5VVout(min) = 1.1VIout(max) = 0.2R(thermal resistance) = 62C/WTa(max) = 70 CTj(max) = 125 CPd(LDO) = [Vin(max) - Vout(min)] * Iout(max) = 0.44WPd(Iq) = Vin(max) * Ivin(120uA) = 0.66mWTj(max) = Ptotal * R(thermal resistance) + Ta(max) = 97 C

Imax = 0.2A

1.2V

EMI filter

1.2V LDO

3.3V

Reverse polarity protection

3.3V LDO

DNP if using MCP1824T

6

Page 51: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 23/48

Title: Motor Controler (BLDC, IPM, ACIN)File: FPGA.schSheet: /FPGA/

D16Green

C85100n

IOB_18a10

IOB_20a11

IOB_22b12

IOB_24a13

IOB_32a_SPI_SO14

IOB_34a_SPI_SCK15

IOB_35b_SPI_SS16

IOB_33b_SPI_SI17

IOB_31b18IOB_29b19IOB_25b_G320

IOB_23b21

SP

I_V

CC

IO1

22

IOB_13b6

CDONE 7CRESET8

IOB_16a9

U18BICE40UP5K-SG48ITR

C92100n

+3.3V +1V2

R115100

IOT_37a23IOT_36b25

IOT_39a26IOT_38b27

IOT_41a28

IOT_42b31

IOT_43a32

VC

CIO

_033

IOT_44b34

IOT_46b_G035

IOT_48b36

IOT_45a_G137

IOT_50b38

RGB039

RGB140

RGB241

IOT_51a42

IOT_49a43

U18AICE40UP5K-SG48ITR

GND

GND

+3.3V

R1141k

GND

R1131k

C94100n

R11210k

C934u7

+3.3V

R11110k

GND

C844u7

VC

CIO

_21

IOB_6a2

IOB_9b3IOB_8a4

IOB_3b_G644

IOB_5b45

IOB_0a46

IOB_2a47

IOB_4a48

U18CICE40UP5K-SG48ITR

VPP_2V5 24

VCCPLL 29GND49 VCC 5

U18DICE40UP5K-SG48ITR

C904u7

C91100n

+1V2

D17Bootstrap

GND

C864u7

+3.3V

C884u7

+3.3V

C89100n

+3.3V

C87100n

AD4

PWM_B_B

U_phase_C

U_phase_B

I_phase_APWM_A_B

U_phase_A

AD5PWM_C_T_uC

AD3

AD2AD0

V_BUS

CLKIN

I_phase_B

I_phase_C

PWM_A_TPWM_B_T

PWM_C_TPWM_C_B

PWM_C_B_uC

AD1

PWM_B_T_uC

PWM_B_B_uCPWM_A_B_uC

PWM_A_T_uC

OC_FAULT

FAULT

TEMP_C_uC

TEMP_ATEMP_B_uCTEMP_A_uC

TEMP_CTEMP_B

AD7

RESET

OT_FAULT_uCOTFAULT

OV_FAULT

GATE_C

SPI_SO

GATE_BGATE_A

SPI_SI

GATE_C_uCGATE_B_uCGATE_A_uC

NWAIT

OT_FAULTOT_FAULT_uC

NADVSPI_SCK

SPI_SS

CLK

AD6

NOE

Bypass caps

FSMC NAND interface 16 pin for data + E + R + W + AL + CL + R/B= 24 pin+ 1 for SRAM interface.Adress use in multiplexing mode

Power sequencingVcc,VccpllSPI_Vccio1Vpp_2V5

Pin planingMake input filters for Delta-sigma

Passtrought

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 30/48

Title: Motor Controler (BLDC, IPM, ACIN)File: ntc_cond.schSheet: /Sheet607E0276/

Sheet: sheet6022EF67

File: ntc_input.sch

NTC+NTC-

OT_FAULTTEMP

Sheet: sheet6022FD32

File: ntc_input.sch

NTC+NTC-

OT_FAULTTEMP

Sheet: Sheet6020F2BB

File: ntc_input.sch

NTC+NTC-

OT_FAULTTEMP

OT_FAULT

OT_FAULT

NTC_A+

TEMP_C

TEMP_B

TEMP_A

NTC_C-NTC_C+

NTC_B-NTC_B+

OT_FAULTNTC_A-

7

Page 52: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 31/48

Title: File: ntc_input.schSheet: /Sheet607E0276/Sheet6020F2BB/

R15610k

R1524k99

R154NTC100

GNDA

R15710k

C121220p

+3.3VA

C11610n

+3.3VA

+3.3VA

C120220p

1

-2

+3

U26ALM393

V-

4V

+8

U26CLM393

C123100n

GNDA

+3.3VA

R159220k

R158220k

V-

2V

+5

1+3

-4

U25

MCP601-xOT

GNDA

C117100n

C11810n

C119100n

R1554k99

R1534k99

C122100n

NTC-

NTC+

TEMP

OT_FAULT

MCP601

Place close to ADC pin

Same as NTC value

Same resistance asNTC@protection temeprature--->

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 34/48

Title: Motor Controler (BLDC, IPM, ACIN)File: protected_output.schSheet: /Protect outputs/

Sheet: Sheet5F9DC163

File: gpio_protected.sch

IN OUT

Sheet: sheet5F9DE4E4

File: gpio_protected.sch

IN OUT

Sheet: sheet5F9DE5B2

File: gpio_protected.sch

IN OUT

IN1

IN2

IN3

OUT1

OUT2

OUT3

8

Page 53: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 35/48

Title: File: gpio_protected.schSheet: /Protect outputs/Sheet5F9DC163/

R176100

F6100mA

R1781k

+5V

TVS22VESD05A11

23

Q10BSS123

GND

R1771k

OUT

IN

DNP

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 40/48

Title: Motor Controler (BLDC, IPM, ACIN)File: MCU.schSheet: /MCU/

C14115p

GNDA

C1452u2

C1442u2

ESR < 2 Ohm

+3.3VA

GND

C1462u2

C147100n

GND

+3.3VA

C143100n

+3.3V

+3.3V

SW1Bootloader

C14215p

12345

J26TPUI

R18510k

+3.3V

GND

12345

J25JTAG/SWD

BOOT094

NRST14 PA0 23

PA1 24

PA10 69

PA11 70

PA12 71

PA13 72

PA14 76

PA15 77

PA2 25

PA3 26

PA4 29

PA5 30

PA6 31

PA7 32

PA8 67

PA9 68

PB0 35

PB1 36

PB10 47

PB11 48

PB12 51

PB13 52

PB14 53

PB15 54

PB2 37

PB3 89

PB4 90

PB5 91

PB6 92

PB7 93

PB8 95

PB9 96

PC0 15

PC1 16

PC10 78

PC11 79

PC12 80

PC13 7

PC14 8

PC15 9

PC2 17

PC3 18

PC4 33

PC5 34

PC6 63

PC7 64

PC8 65

PC9 66

PD081

PD182

PD1057

PD1158

PD1259

PD1360

PD1461

PD1562

PD283

PD384

PD485

PD586

PD687

PD788

PD855

PD956

PE097

PE198

PE1041

PE1142

PE1243

PE1344

PE1445

PE1546

PE21

PE32

PE43

PE54

PE65

PE738

PE839

PE940

PH012

PH113

VB

AT

6

VCAP_149

VCAP_273

VD

D10

0

VD

D11

VD

D19

VD

D28

VD

D50

VD

D75

VD

DA

22

VREF+21

VS

S10

VS

S27

VS

S74

VS

S99

VS

SA

20U32 STM32F405VGTx

C1492u2

C1502u2

VDD

GND

VDD

C1482u2

GND

C1542u2

1

2

3

Y18MHz 10ppm

C1532u2

C1512u2

GND

C1522u2

LED_GREEN

ADC_TEMP

SPI1_SCK

TEMP_A

SPI1_MISOSPI1_MOSI

TEMP_BTEMP_C

OT_FAULTADC_TEMP2

PWM_C_T

FSMC_NADV

PE15PE14

GATE_CGATE_BGATE_A

PB10

HALL_3

USART3_CLKUSART3_RXUSART3_TX

ADC_9

ADC_8

V_GATE_DRIVER

USB_D-USB_D+

ADC_15ADC_13

TEMP_MOTORLED_RED

FSMC_AD4

OT_FAULT

FSMC_NWAIT

FSMC_AD1FSMC_AD0

FSMC_NOEFSMC_CLK

FSMC_AD3FSMC_AD2

FSMC_AD7FSMC_AD6FSMC_AD5

PC14

LED_RED2

CAN_TXCAN_RX

FPGA_RESETSPI3_SCK

PWM_A_T

SPI3_MISOSPI3_MOSIBISS_SS

PWM_B_T

FAULT

CAN_2_TX

PWM_A_B

PC15

PWM_B_B

MCO2

PWM_C_B

FPGA_SS

HALL_2HALL_1

PB3

CAN_2_RX

SWCLK

SWDIONRST

NRST

SWDIOSWCLK

VREF

TRACED3TRACED2TRACED1TRACED0TRACECLK

TRACED3TRACED2TRACED1TRACED0TRACECLK

VREF

Reset pin internallypulled up

FSMC interface 8bit bus width

Required for USBto work

Programming / Debugconnector

Bypass, place next to VDD pinsVbat

TPUI interface

Vdda

Imax = 500mA

PWM output

9

Page 54: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 41/48

Title: Motor Controler (BLDC, IPM, ACIN)File: current_measurment.schSheet: /sheet60C8D6EB/

Sheet: sheet6055468B

File: 5iso.sch

VCC_outGND_out

Vcc_inGND_in

AVDD1

AINP2

AINN3

AGND4 DGND 5DOUT 6DGND 7VDDD 8

U33

AMC1303E05020

+3.3V

C157100n

GND

C1562u2

GND

+3.3V

GND

R1861k

+5V

RS1500u/1000u R187

1k

C155330p DATA

I_in

I_out

Imax = 50*10^-3 / 1000*10^-6 = 50 A

500uOhm 1000uOhm

Imax = 50*10^-3 / 500*10^-6 = 100A

50^2 [A] * 0.001 [Ohm] = 2.5 [W]60^2 [A] * 0.001 [Ohm] = 3.6 [W]70^2 [A] * 0.001 [Ohm] = 4.9 [W]80^2 [A] * 0.001 [Ohm] = 6.4 [W]90^2 [A] * 0.001 [Ohm] = 8.1 [W]100^2 [A] * 0.001 [Ohm] = 10 [W]

50^2 [A] * 0.0005 [Ohm] = 1.25 [W]60^2 [A] * 0.0005 [Ohm] = 1.8 [W]70^2 [A] * 0.0005 [Ohm] = 2.56 [W]80^2 [A] * 0.0005 [Ohm] = 3.2 [W]90^2 [A] * 0.0005 [Ohm] = 4 [W]100^2 [A] * 0.0005 [Ohm] = 5 [W]

SHUNT

Isolation

Filter

Manchester encoding

1 2 3 4 5 6

1 2 3 4 5 6

A

B

C

D

A

B

C

D

Date: KiCad E.D.A. kicad 5.1.6

Rev: Size: A4Id: 47/48

Title: Motor Controler (BLDC, IPM, ACIN)File: temp_board.schSheet: /sheet5F4097D6/

TH210k

R19210k

GND

C170100n

+3.3V

TEMP

Place near gate drivers

10

Page 55: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

2.. Prilog 2 ­ Shema LTSpice simulacije vektorske modulacije napona

PULSE(-0.5 0.5 0 p/2 p/2 0 p 1E6)

V1

SINE(0.5 0.5773 250 0 0 phase 1E6)

V2

5

V3A1

R1

3k

C1

200pF

D1

BAT54

A2

R2

3k

C2

200pF

D2

BAT54

V6

50M1

IRF530

E1

3

R3

150

R4

150E2

3

D3

1N5818

D4

1N5818

R8

20

R9

20 M2

IRF530

R7

0.5

L1

1mH

M3

IRF530

E3

3

R5

150

R6

150E4

3

D5

1N5818

D6

1N5818

R10

20

R11

20 M4

IRF530

V7

SINE(0 20 250 0 0 0 1E6)

B1

V=-v(Vbus)*i(V6)

R12

1k

C3

0.1µF

A3

R13

3k

C4

200pF

D7

BAT54

A4

R14

3k

C5

200pF

D8

BAT54

SINE(0.5 0.5773 250 0 0 120+phase 1E6)

V4

A5

R15

3k

C6

200pF

D9

BAT54

A6

R16

3k

C7

200pF

D10

BAT54SINE(0.5 0.5773 250 0 0 240+phase 1E6)

V8

M5

IRF530

E5

3

R17

150

R18

150E6

3

D11

1N5818

D12

1N5818

R19

20

R20

20 M6

IRF530

R21

0.5

L2

1mH

V9

SINE(0 20 250 0 0 120 1E6)

R22

0.5

L3

1mH

V10

SINE(0 20 250 0 0 240 1E6)

VCS

S1

A7

A8

A9

VCS

S4

V=if(V(Va)>V(Vb),V(Va),V(Vb))

B9

V=if(V(Vmax_ab)>V(Vc),V(Vmax_ab),V(Vc))

B10

V=if(V(Va)<V(Vb),V(Va),V(Vb))

B11

V=if(V(Vmim_ab)<V(Vc),V(Vmim_ab),V(Vc))

B12

0.5

E7

VCS

S2

VCS

S3

VCS

S5

VCS

S6

B2

V=V(Va)-0.5

V5

0.5

V11

0.5

R24

0.001

R25

0.001

-1000

E8

-1000

E9

z.o.h.

clk

z.o.h.

clk

PULSE(-1 1 1/(4*Fs)+2*T_aperture 0 0 T_aperture 1/Fs 1E6)

V12

B3

V=V(I_a)

B4

V=V(I_b)

B5

V= - V(I_b) - V(I_a)

Vd

d

Vb

us

Vb

us

Vb

us

Bus_Power

Vb

us

Vd

d

shunt_B

Va

Vb

Vc

Vm

ax_ab

Vm

im_ab

Vm

ax

Vmin

Vm

od

_a

Vm

od

_b

Vm

od

_c

Vd

dV

dd

Va_effectiveLimit_pos

Limit_neg

shunt_A

shunt_A

shunt_B

Clk1

I_a

I_b

A_Current

B_Current

C_Current

.tran 0 10E-3 10us uic

.param p=50us

.param phase=27

.model VCS SW(Ron=0.00001 Roff=1T Vt=0)

.options method = gear

.param T_aperture = 100E-9

.param Fs = 10E3

Three Phase Centered PWMsMotoring with Unity Power Factor

S V M W A V E F O R M G E N E R A T O RM O D U L A T O R D E A D T I M E G E N E R A T O R I N V E R T E R

P M S M O T O R

--- C:\users\mirko\My Documents\LTspiceXVII\schematics\TI-motors\08 Space Vector Modulation.asc ---

11

Page 56: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

3.. Prilog 3 ­ Manchester dekoder

3..1. Manchester dekoder Verilog kod

prilozi/md.v

/******************************************************************************

* F i l e Name : md . v

* Model : Manches t e r Decoder

****************************************************************************** /

module md (

i n p u t c l k_ i n ,

i n p u t mdi ,

o u t p u t c l k_ou t ,

o u t p u t ou t

) ;

/ / B u f f e r s f o r edge d e t e c t i o n

r eg mdi1 ;

r eg mdi2 ;

/ / Coun te r and de l a y ( i n i n p u t c l o ck t i c k s )

r eg [ 5 : 0 ] coun t ;

l o c a l p a r am de l a y = 13 ;

/ / Decoded d a t a

r eg n r z ;

r eg c l k ;

12

Page 57: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

/ / I n i t a l i z a t i o n

i n i t i a l b eg in

n r z <= 1 ’ b0 ;

c l k <=1’b0 ;

coun t <= 0 ;

end

/ / Ass ign o u t p u t s

a s s i g n ou t = n r z ;

a s s i g n c l k _ o u t = c l k ;

/ / Gene r a t e 2 FF r e g i s t e r t o a c c e p t s e r i a l Manches t e r d a t a i n

a lways @( posedge c l k _ i n )

beg in

beg in

mdi2 <= mdi1 ;

mdi1 <= mdi ;

end

end

/ / Data decod ing

a lways @( posedge c l k _ i n )

beg in

/ / S t a r t c l k on r i s i n g o r f a l l i n g edge

i f ( ( ( ! mdi1 && mdi2 ) | | ( ! mdi2 && mdi1 ) ) && c l k == 1 ’ b0 )

beg in

c l k <= ~ c l k ;

end

/ / Delay c l o ck 3 /4 o f T

i f ( c l k > 0)

beg in

i f ( coun t < de l a y )

beg in

coun t ++;

end

e l s e

beg in

n r z <= ~mdi ;

13

Page 58: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

coun t <= 0 ;

c l k <= ~ c l k ;

end

end

end

endmodule

3..2. Manchester dekoder Verilog test kod

prilozi/md_tf.v

‘ t i m e s c a l e 1 ns / 1 ns

‘ i n c l u d e ”md . v”

module md_tf ;

r eg r s t ;

r eg c lk16x ;

r eg mdi ;

w i r e c l k ;

w i r e ou t ;

md u1 ( c lk16x , mdi , c lk , ou t ) ;

i n i t i a l b eg in

r s t = 1 ’ b0 ;

c lk16x = 1 ’ b0 ;

mdi = 1 ’ b0 ;

end

p a r ame t e r c l o c k _ p e r i o d = 10 ;

a lways # ( c l o c k _ p e r i o d / 2 ) c lk16x = ~ c lk16x ;

i n i t i a l b eg in

$ d i s p l a y ( ” Ve r i l o gs imu l a t i o nofManches t e rdecode r \ n” ) ;

$dumpf i l e ( ” md_tf . vcd ” ) ;

$dumpvars ( 0 , u1 ) ;

#1 r s t = 1 ’ b1 ;

#100 r s t = 1 ’ b0 ;

14

Page 59: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

/ / I n p u t 8 l o g i c 0 s

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

#80 mdi = 1 ’ b1 ;

#80 mdi = 1 ’ b0 ;

$ d i s p l a y ( ” \ nS imu l a t i o nofManches t e rdecode ri scomple t e . ” ) ;

$ f i n i s h ;

end

endmodule

15

Page 60: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

4.. Prilog 4 ­ sinc3 filter

4..1. sinc3 Verilog kod

prilozi/sinc3.v

‘ t i m e s c a l e 1 ns / 100 ps

module dec256s i nc24b

(

i n p u t r e s e t _ i ,

i n p u t mc lkou t_ i ,

i n p u t mdata_i ,

o u t p u t da t a_ rdy_o , / / s i g n a l s when new da t a

i s a v a i l a b l e

o u t p u t r eg [ 1 5 : 0 ] da t a_o / / o u t p u t s f i l t e r e d d a t a

) ;

r eg i p _ d a t a 1 ;

r eg [ 2 3 : 0 ] acc1 ;

r eg [ 2 3 : 0 ] acc2 ;

r eg [ 2 3 : 0 ] acc3 ;

r eg [ 2 3 : 0 ] acc3_d1 ;

r eg [ 2 3 : 0 ] acc3_d2 ;

r eg [ 2 3 : 0 ] d i f f 1 ;

r eg [ 2 3 : 0 ] d i f f 2 ;

r eg [ 2 3 : 0 ] d i f f 3 ;

r eg [ 2 3 : 0 ] d i f f 1 _ d ;

r eg [ 2 3 : 0 ] d i f f 2 _ d ;

r eg [ 7 : 0 ] word_count ;

r eg word_c lk ;

16

Page 61: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

a s s i g n da t a_ r dy_o = word_c lk ;

/*ACCUMULATOR (INTEGRATOR)

* Per fo rm t h e a c cumu l a t i o n ( I IR ) a t t h e speed of t h e modu l a t o r .

* mc lkou t _ i = modu l a t o r s c o nv e r s i o n b i t r a t e * /a lways @( negedge mc lkou t _ i o r posedge r e s e t _ i )

beg in

i f ( r e s e t _ i == 1 ’ b1 )

beg in

/* i n i t i a l i z e acc r e g i s t e r s on r e s e t * /acc1 <= 0 ;

acc2 <= 0 ;

acc3 <= 0 ;

end

e l s e

beg in

/* pe r fo rm ac cumu l a t i o n p r o c e s s * /acc1 <= acc1 + mda ta_ i ;

acc2 <= acc2 + acc1 ;

acc3 <= acc3 + acc2 ;

end

end

/*DECIMATION STAGE (MCLKOUT_I / WORD_CLK) * /always@ ( posedge mc lkou t _ i o r posedge r e s e t _ i )

beg in

i f ( r e s e t _ i == 1 ’ b1 )

beg in

word_count <= 0 ;

end

e l s e

beg in

word_count <= word_count + 1 ;

end

end

17

Page 62: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

a lways @( word_count )

beg in

word_c lk <= word_count [ 7 ] ;

end

/*DIFFERENTIATOR ( i n c l u d i n g d e c ima t i o n s t a g e )

* Per fo rm t h e d i f f e r e n t i a t i o n s t a g e ( FIR ) a t a lower speed .

WORD_CLK = ou t p u t word r a t e * /a lways @( posedge word_c lk o r posedge r e s e t _ i )

beg in

i f ( r e s e t _ i == 1 ’ b1 )

beg in

acc3_d2 <= 0 ;

d i f f 1 _ d <= 0 ;

d i f f 2 _ d <= 0 ;

d i f f 1 <= 0 ;

d i f f 2 <= 0 ;

d i f f 3 <= 0 ;

end

e l s e

beg in

d i f f 1 <= acc3 − acc3_d2 ;

d i f f 2 <= d i f f 1 − d i f f 1 _ d ;

d i f f 3 <= d i f f 2 − d i f f 2 _ d ;

acc3_d2 <= acc3 ;

d i f f 1 _ d <= d i f f 1 ;

d i f f 2 _ d <= d i f f 2 ;

end

end

/* Clock t h e S inc o u t p u t i n t o an o u t p u t r e g i s t e r

C lock ing S inc Outpu t i n t o an Outpu t R e g i s t e r

WORD_CLK = ou t p u t word r a t e * /a lways @( posedge word_c lk )

beg in

da t a_o [ 1 5 ] <= d i f f 3 [ 2 3 ] ;

d a t a_o [ 1 4 ] <= d i f f 3 [ 2 2 ] ;

d a t a_o [ 1 3 ] <= d i f f 3 [ 2 1 ] ;

18

Page 63: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

da t a_o [ 1 2 ] <= d i f f 3 [ 2 0 ] ;

d a t a_o [ 1 1 ] <= d i f f 3 [ 1 9 ] ;

d a t a_o [ 1 0 ] <= d i f f 3 [ 1 8 ] ;

d a t a_o [ 9 ] <= d i f f 3 [ 1 7 ] ;

d a t a_o [ 8 ] <= d i f f 3 [ 1 6 ] ;

d a t a_o [ 7 ] <= d i f f 3 [ 1 5 ] ;

d a t a_o [ 6 ] <= d i f f 3 [ 1 4 ] ;

d a t a_o [ 5 ] <= d i f f 3 [ 1 3 ] ;

d a t a_o [ 4 ] <= d i f f 3 [ 1 2 ] ;

d a t a_o [ 3 ] <= d i f f 3 [ 1 1 ] ;

d a t a_o [ 2 ] <= d i f f 3 [ 1 0 ] ;

d a t a_o [ 1 ] <= d i f f 3 [ 9 ] ;

d a t a_o [ 0 ] <= d i f f 3 [ 8 ] ;

end

endmodule

4..2. sinc3 Verilog test kod

prilozi/sinc3_file_tb.v

‘ d e f a u l t _ n e t t y p e none

‘ t i m e s c a l e 10 ns / 1 ns

‘ i n c l u d e ” s i n c 3 . v”

module main_ tb ;

/ / S imu l a t i o n t ime : 100 ns (10 * 10 ns )

p a r ame t e r DURATION = 10 ;

l o c a l p a r am SIZE = 500000;

/ / i n t e g e r f i n ;

i n t e g e r i ;

r eg d [ SIZE : 0 ] ;

/ / I n p u t / Outpu t

r eg c l k ;

r eg d a t a ;

r eg r e s e t ;

19

Page 64: ANALIZA RAZLIČITIH NAČINA UPRAVLJANJA ASINKRONOG …

wi re [ 1 5 : 0 ] d a t a _ o u t ;

w i r e d a t a _ r d y ;

/ / Module i n s t a n c e

dec256s i nc24b SINC (

r e s e t ,

c lk ,

da t a ,

d a t a_ rdy ,

d a t a _ o u t

) ;

/ / Clock s i g n a l

a lways #1 c l k = ~ c l k ;

i n i t i a l b eg in

/ / F i l e were t o s t o r e t h e s im u l a t i o n r e s u l t s

$dumpf i l e ( ” s i n c 3 _ f i l e . vcd ” ) ;

$dumpvars ( 0 , SINC ) ;

c l k = 0 ;

#1 d a t a = 0 ;

#1 r e s e t = 1 ;

#1 r e s e t = 0 ;

#5 r e s e t = 1 ;

#1 r e s e t = 0 ;

$readmemh ( ” ds ” , d ) ;

f o r ( i = 0 ; i < SIZE ; i ++)

beg in

#1 d a t a = d [ i ] ;

end

# (100 ) $ d i s p l a y ( ”Endofs imu l a t i o n ” ) ;

$ f i n i s h ;

end

endmodule

20