Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
i
Zahvala Za pomo se zahvaljujem mentorju prof. dr. Rudolfu Babiu za strokovno in vsestransko pomo pri izdelavi magistrske naloge. Zahvaljujem se tudi Ministrstvu za šolstvo, znanost in šport Republike Slovenije, ki mi je pomagalo financirati moj študij
ii
Kljune besede: digitalna obdelava signalov, digitalni filtri, rekurzivni filtri, eliptini filtri, PLC krmilnik UDK : 621.391.82:621.372.54 Povzetek V nalogi je opisan postopek nartovanja in izvedbe rekurzivnega digitalnega filtra tretje stopnje s programirnim loginim krmilnikom. Namen filtra je izloanje neželenih signalov nizkih frekvenc pri obdelavi analognih vrednosti v sistemu industrijskega krmiljenja, ki je nartovan s PLC krmilnikom. Pri praktini realizaciji in izraunu je uporabljen PLC krmilnik SIEMENS S7-315-DP. Kot pomo pri vizualizaciji in analizi rezultatov je uporabljen operaterski panel S7-OP270. Za vizualizacijo smo generirali ve diagramov, ki so nam pomagali pri sklepanju o obnašanju filtra. Ker karakteristike operaterskega panela v popolnosti ne zadošajo zahtevam pri analizi filtra, smo bolj podrobno analizo opravili s primerjavo impulznega odziva filtra. Za praktino izvedbo smo izbrali eliptini filter, mejno frekvenco smo izbrali pri 3 Hz, frekvenca vzorenja pa je bila 50 Hz. Primerjali smo vrednosti, katere je generiral PLC krmilnik in vrednosti, dobljene z MATLAB-om. Pri tem smo loeno analizirali obnašanje PLC krmilnika pri vnosu koeficientov v skrajšani obliki in loeno za vnos v razširjeni obliki. Rezultati so prikazani za matematini model in za dejanski krmilnik. Odstopanje rezultatov za skrajšano obliko koeficientov, zaradi rekurzivnega naina obdelave, ni zanemarljivo. Digitalni filter tretje stopnje smo realizirali kot kaskadno vezavo dveh struktur prve in druge stopnje. Primerjava dejanskih vrednosti in matematine simulacije nam pokaže zelo dobro ujemanje rezultatov. Kot drugi primer uporabe digitalnega filtra smo izdelali oscilator zelo nizke frekvence. Pokazali smo, da lahko tudi za oscilator uporabimo isto digitalno strukturo implementirano v PLC krmilniku.
iii
Keywords : Digital signal processing, Digital filters, IIR filter, Eliptic filter, PLC controler UDK : 621.391.82:621.372.54 In master thesis is described the executing of third order recursive digital filter (IIR) with PLC controller. The cutoff frequency is 3 Hz and sampling frequency is 50 Hz. We made the eliptic filter. Purpose of the filter is eliminating unwanted signals at processing of analog values with PLC controller. At practic realisation and calculation there is used PLC controller Siemens S7-315-DP. As a help in visualisation in the result analysis, there is used operator panel S7-OP270. For visualisation we generated more diagrams, which had helped us at considering the behavior of the filter. Because the caracteristic of operator panel do not completely satisfing demand at the filter analysis, we made more detailed analysis with comparison of impulse response. For practical realisation, we choose eliptical filter, cuttoff frequency was 3 Hz and sampling frequency was 50 Hz. We compared the values generated by PLC controller and values made with MATLAB. Simultaneously, we analised separately behavior of PLC controller at the input of coefficients in shortened mode and separated for input in full mode. The results are shown for mathematic model and for real controller. Alteration of the results for the shortened mode of coefficients for recursive mode of processing, is not neglible. With the same module, we realised the third order digital filter, as cascade of two second order structures. Comparision of the real values and the mathematic simulation shows very good matching between both of them. As the second example of using digital filter, we made oscilator with very low frequency. Oscilator is realised with the same circuit, but coefficients are consequently modificated, so that the circuit is out of area of stability. We shows that we can use for oscilator the same digital structure implemented in PLC controller.
iv
Kazalo
Zahvala Povzetek Abstract Kazalo iv Slike vi Kratice in oznake viii
0 Uvod .............................................................................................. 1 1. Opis sistema z LDE ....................................................................... 3 1.1 Specifikacija karakteristik filtra...................................................... 5 2. Osnovne filtrske strukture........................................................... 7 2.1 Geometrijska interpretacija prenosne funkcije in lege
polov/niel...................................................................................... 8
2.2 Vrste digitalnih filtrov..................................................................... 10 2.2.1 Nartovanje rekurzivnih filtrov...................................................... 11
2.2.1.1 Specifikacija karakteristik filtra....................................................... 11 2.2.1.2. Izbira tipa filtra................................................................................ 11
2.2.1.3. Specifikacija stopnje filtra............................................................... 11 2.2.1.4. Nartovanje IIR filtra (doloanje koeficijentov)............................. 12
2.2.1.5 Nartovanje IIR filtra s pomojo bilinearne transformacije............ 12 2.2.1.6 Nartovanje IIR filtra s pomojo impulzno invarijantne metode... 16 2.2.1.7 Direktno nartovanje optimalnih filtrov – MATLAB..................... 18 2.2.1.8 Direktno nartovanje IIR filtrov – metoda Yule-Walker ............... 19 2.2.1.9 Nartovanje NOTCH filtra s pomojo MATLAB-a........................ 20
3. Optimalni filtri............................................................................... 26 3.1 Butterworth...................................................................................... 33 3.2 Bessel............................................................................................... 34 3.3 Chebyshev....................................................................................... 35 3.4 Eliptini........................................................................................... 36 3.5 Primerjava razlinih filtrov.............................................................. 38 3.5.1 Primerjava stopnje razlinih filtrov za enake zahteve ................ 38 3.5.2 Primerjava frekvenne karakteristike razlinih filtrov enake
stopnje............................................................................................. 43
3.6 Izbira digitalnega filtra.................................................................... 45 4. Stabilnost digitalnega filtra.......................................................... 46 5. Efekti kvantizacije ........................................................................ 49 5.1 Motnje v sistemih s PLC krmilnikom.............................................. 50 6. PLC krmilnik................................................................................. 52 6.1 Karakteristike vhodno/izhodnih enot krmilnika............................. 55 6.2 Poenostavljen živlenjski ciklus programa PLC krmilnika............. 56 6.3 Pogosto uporabljani filtri v PLC krmilniku.................................... 58 6.3.1. Delta filter........................................................................................ 58 6.3.2 Moving average – premikajoe povpreje....................................... 59 6.3.3 «Fluke filter»................................................................................... 61 6.3.4 Empirini filter................................................................................ 63 7. Realizacija digitalnega filtra v PLC krmilniku.......................... 65 7.1 Opis strojne opreme dejanskega PLC krmilnika............................. 65 7.2 Vhodni testni signal......................................................................... 66 7.3 Signal motnje................................................................................... 67
v
7.4 Nizkoprepustni digitalni filter prve stopnje..................................... 67 7.5 Digitalni filter druge stopnje............................................................ 72 7.6 Digitalni filter tretje stopnje............................................................ 82 7.7 Digitalni filter etrte stopnje realiziran v direktni obliki................. 86 7.8 Digitalni filter etrte stopnje realiziran kot kaskada ....................... 90 7.9 Oscilator realiziran s PLC krmilnikom............................................ 92 7.10 Digitalni filter s celoštevilno spremenljivko.................................. 94 8. Zakljuek........................................................................................ 97 Literatura......................................................................................... 99 Priloge.............................................................................................. 100 Življenjepis...................................................................................... 120
vi
Kazalo slik Slika 1.1 Blok dijagram rekurzivnega diskretnega sistema 2. stopnje......................... 3 Slika 1.2 Parametri nizkoprepustnega filtra................................................................. 5 Slika 2.1 Direktna kanonina oblika digitalnega filtra 2.stopnje................................. 7 Slika 2.2 Direktna kanonina transponirana oblika digitalnega filtra 2.stopnje......... 8 Slika 2.3 Doloanje amplitude frekvennega odziva................................................... 9 Slika 2.4 Bilinearna transformacija – preslikava......................................................... 12 Slika 2.5 Povezava med frekvenco digitalnega in analognega filtra........................... 14 Slika 2.6 Frekvenna karakteristika realnega filtra..................................................... 14 Slika 2.7 Preslikava iz s ravnine v z ravnino s pomojo impulzne transformacije...... 16 Slika 2.8 Preslikava dela s ravnine v celotno z ravnino............................................... 17 Slika 2.9 Frekvenna karakteristika nizkoprepustnega eliptinega filtra 4.stopnje za
Fc=5 kHz in Fz=8 kHz................................................................................
19 Slika 2.10 Frekvenna karakteristika notch filtra nartovanega s pomojo funkcije
YULEWALK...............................................................................................
20 Slika 2.11 Frekvenna karakteristika digitalnega notch filtra za frekvenco =/2 .... 21 Slika 2.12 Lega polov in niel digitalnega notch filtra za frekvenco =/2 ............... 22 Slika 2.13 Frekvenna in fazna karakteristika digitalnega notch filtra za frekvence
50 in 100 Hz,pri fs=500 Hz..........................................................................
23 Slika 2.14 Lega polov in niel za notch filter 50 in 100 Hz Hz,pri fs=500 Hz............. 23 Slika 2.15 Frekvenna karakteristika modificiranega notch filtra,za razline lege
polov.............................................................................................................
24 Slika 3.1 Grafina predstavitev lege polov digitalnega filtra....................................... 27 Slika 3.2 Potek frekvenne karakteristike pri spremembi oddaljenosti polov od
izhodiša za filter 2. stopnje.........................................................................
27 Slika 3.3 Potek frekvenne karakteristike za razline kote ....................................... 28 Slika 3.4 Primerjava karakteristike eliptinega filtra in spremenjenega filtra ,e
spremenimo oddaljenost polov od izhodiša...............................................
29 Slika 3.5 Primerjava karakteristike eliptinega filtra in spremenjenega filtra,e
spremenimo lego niel (dvojna nila)...........................................................
30 Slika 3.6 Frekvence digitalnega filtra na enotinem krogu........................................... 30 Slika 3.7 Poli in nile nartovanega pasovnoprepustnega filtra.................................. 31 Slika 3.8 Izraun oddaljenosti pola od izhodiša za pasovnoprepustni IIR filter........ 31 Slika 3.9 Frekvenna karakteristika pasovnoprepustnega IIR filtra
nartovanega s pomojo metode z razmestitvijo polov in niel................
32 Slika 3.10 Frekvenna karakteristika Butterworthovega filtra...................................... 34 Slika 3.11 Frekvenna karakteristika Besselovega sita................................................. 34 Slika 3.12 Frekvenna karakteristika Chebyshev filtra 1.tipa....................................... 35 Slika 3.13 Frekvenna karakteristika Chebyshev filtra 2.tipa....................................... 36 Slika 3.14 Frekvenna karakteristika Eliptinega filtra................................................. 37 Slika 3.15 Primerjava frekvenne karakteristike razlinih filtrov za enake zahteve.... 38 Slika 3.16 Primerjava lege polov in niel razlinih filtrov za enake zahteve................ 39 Slika 3.17 Frekvenna karakteristika Butterworthovega filtra stopnje 18..................... 40 Slika 3.18 Frekvenna karakteristika Chebyshev filtra 1. vrste,stopnje 7..................... 41
vii
Slika 3.19 Frekvenna karakteristika Chebyshev filtra 2. vrste,stopnje 7..................... 41 Slika 3.20 Frekvenna karakteristika eliptinega filtra 5. stopnje................................. 42 Slika 3.21 Frekvenna karakteristika FIR filtra za podane zahteve............................... 42 Slika 3.22 Frekvenna karakteristika razlinih optimalnih filtrov enake stopnje ................... 44 Slika 4.1 Impulzni odziv filtra za razline lege korenov – stabilne
rešitve....................................................................................................................... 47
Slika 4.2 Impulzni odziv filtra za razline lege korenov – nestabilne in mejno stabilne rešitve ........................................................................................................
47
Slika 5.1 Blokovna shema vezja pri obdelavi napetostnega analognega signala s PLC krmilnikom in superponiranim signalom motnje.................................................
50
Sl. 5.1.a Blokovna shema vezja pri obdelavi tokovnega analognega signala s PLC krmilnikom (napetostni vhodni modul) in superponiranim signalom motnje......................................................................................................................
51 Sl. 5.1.b Blokovna shema vezja pri obdelavi tokovnega analognega signala s PLC
krmilnikom (tokovni vhodni modul) in superponiranim signalom motnje......... 51
Slika 6.1 as obdelave funkcije v odvistnosti od asa prekinitve......................................... 53 Slika 6.2 LAD oblika programa............................................................................................. 54 Slika 6.3 FBD oblika programa............................................................................................. 54 Slika 6.4 STL oblika programa.............................................................................................. 55 Slika 6.5 Ciklus izvajanja PLC programa.............................................................................. 56 Slika 6.6 Ciklus izvajanja PLC programa v primeru alarmov - asinhroni mod.................... 57 Slika 6.7 Odziv na motnjo za delta filter............................................................................. 59 Slika 6.8 Frekvenna karakteristika t.i. «FLUKE» filtra za razline koeficijente
glajenja....................................................................................................................
63 Slika 6.9 Frekvenna karakteristika t.i. «empirinega» filtra za razline
koeficijente glajenja...............................................................................................
64 Slika 7.1 Oblika vhodnega signala na izhodu eliptinega filtra 1. in 2. stopnje.................... 66 Slika 7.2 Vhodni testni signal pri simulaciji ........................................................................ 67 Slika 7.3 Signal motnje za simulacijo digitalnega filtra........................................................ 67 Slika 7.4 Frekvenna karakteristika nizkoprepustnega filtra za razline koeficijente
glajenja S................................................................................................................
68 Slika 7.5 Funkcija digitalnega filtra prikazana v LAD nainu editorja S7............................ 72 Slika 7.6 Rezultati simulacije IIR sita.................................................................................... 75 Slika 7.7 Stopnini odziv rekurzivnega filtra (Cauer) 1. in 2. stopnje................................... 76 Slika 7.7a Impulzni odziv rekurzivnega filtra (Cauer) 2. stopnje............................................ 76 Slika 7.8 Frekvenna karakteristika 3 Hz nizkoprepustnega eliptinega filtra 2 stopnje ... 77 Slika 7.9 Impulzni odziv eliptinega filtra 3Hz, 2.stopnje.................................................... 78 Slika 7.10 Del organizacijskega bloka OB1 rekurzivnega digitalnega filtra- vnos
koeficijentov v skrajšani obliki in obliki dvojne natannosti................................
81 Slika 7.11 Frekvenna karakteristika 3 Hz nizkoprepustnega eliptinega filtra 3.
stopnje....................................................................................................................
83 Slika 7.12 Impulzni odziv eliptinega filtra 3Hz,3.stopnje.................................................... 84 Slika 7.13 Del organizacijskega bloka OB1 digitalnega filtra – vnos koeficijentov v prvo in
drugo strukturo druge stopnje.................................................................................
87 Slika7.13a Blokovna shema digitalnega rekurzivnega filtra 4. stopnje 88 Slika 7.14 Frekvenna karakteristika nizkoprepustnega eliptinega filtra 4. stopnje z mejno
frekvenco 3 Hz 89
Slika 7.15 Odstopanje vrednosti impulznega odziva digitalnega filtra 4. stopnje za razline naine realizacije in preciznosti koeficientov.
91
Slika 7.16 Lega polov za 3 Hz oscilator , pri frekvenci vzorenja 50 Hz.............................. 92 Slika 7.17 Graf izhodnih vrednosti oscilatorja 3 Hz pri Fs=50 Hz ( Ts = 20 mS).................. 93 Slika 7.18 Izhodni signal oscilatorja prikazan na OP panelu Siemens ................................... 94 Slika 7.19 Varijante obdelave signala in filtriranja.................................................................. 95 Slika 7.20 Impulzni odziv digitalnega filtra 2. stopnje za celoštevilno spremenljivko-
prvih 24 odtipkov...................................................................................................
96
viii
Kratice in oznake
AI Analogni vhod AO Analogni izhod Ap Slablenje v prepustnem podroju As Slablenje v zapornem podroju
ax,bx koeficienti filtra DP Distribuiran vhod/izhod FB Funkcijski blok FC Funkcija
f Frekvenca h(n) Impulzni odziv H(s) Prenosna funkcija analognega filtra H(z) Prenosna funkcija digitalnega filtra
m marker - pomnilniška lokacija dolžine 1 bit MW marker word - beseda - pomnilniška lokacija dolžine 16 bitov MD marker double word - dvojna beseda - pomnilniška lokacija dolžine 32 bitov
N Stopnja filtra OB Organizacijski blok
PLC Programmable Logic Controller – krmilnik Ts Perioda vzorenja analognega signala
y(n-u) Izhodna vrednost sita – zakasnitev „u“ taktov x(n-u) Vhodna vrednost sita – zakasnitev „u“ taktov
1 Valovitost frekvenne karakteristike v prepustnem pasu 2 Valovitost frekvenne karakteristike v zapornem pasu Parameter valovitosti Krožna frekvenca digitalnega filtra Krožna frekvenca
- 1 -
UVOD Uporaba digitalnih metod obdelave signalov, oz.digitalne obdelave signalov že dolgo ni ni
novega. V ta namen je razvita cela vrsta programske in strojne opreme za uinkovito obdelavo signalov. Danes je prisotna praktino tudi v vseh sistemih industrijskega krmiljenja, za izvajanje osnovnih in pomožnih funkcij krmiljenja in regulacije. Eno od najpomembnejših podroij uporabe digitalne obdelave signalov, ki ga bomo uporabili v programirnih loginih krmilnikih kot pomožno funkcijo, je digitalno filtriranje signalov. Vsak linearen, asovno neodvisen sistem, lahko obravnavamo kot filter, ne glede na frekvenco in lastnosti vhodnega ali izhodnega signala in ga lahko implementiramo tudi v programirnih loginih krmilnikih.
Uporaba digitalnih filtrov je danes tudi ekonomsko upraviena, zaradi ugodnih cen strojne opreme in tudi pri uporabi digitalnega filtra v nenamenskem sistemu, oz. sistemu ki opravlja nekatero drugo nalogo. V tem primeru je cena strojne opreme zanemarljiva. Digitalni filtri imajo nekatere izredno pomembne lastnosti:
- programabilnost – možnost spremembe karakteristike brez novih komponent, - absolutna ponovljivost frekvenne karakteristike, - ni težav z impedannimi prilagoditvami, - možnost uporabe tudi pri zelo nizkih frekvencah in - preprosto nartovanje.
eprav imajo tudi slabe lastnosti - kompleksnost : za analogni filter potrebujemo le kondenzator in upor, so danes vse bolj prisotni.
Digitalni filtri se nartujejo kot nizko prepustni. Pasovno-prepustne, pasovno-zaporne in visoko-prepustne nartujemo iz nizko-prepustnega s frekvennimi transformacijami, eprav obstajajo postopki za direktno nartovanje, predvsem s pomojo MATLAB-a.
Pri nartovanju industrijskega sistema krmiljenja, se moramo zavedati, da je sistem omejen z mehanskimi lastnostimi – vztrajnost, vibracije, elastinost mehanskih struktur in podobnimi neželjenim lastnostimi. Ker ne obstaja eksaktna metoda opisa kompleksnega mehanskega sistema, ne moremo vnaprej nartovati krmilje, ki bo delovalo brezhibno. Zaradi omenjenih lastnosti se zgodi da sistem dobi neželjene vhodne signale tudi zaradi mehanske povratne vezave: udarci ventilov in hidravlike, zagon motorjev in podobno, saj uporabljeni senzorji in pretvorniki sprejemajo tudi te signale kot motnje. e pride do resonance, bo krmilje popolnoma neuporabno.
Za regulacije in krmilja industrijskih procesov so najbolj pogosto uporabljeni PLC krmilniki (Programmable logic controller). Obstajajo tudi drugi naini oziroma naprave za to: DCS sistemi – pri bolj zahtevnih aplikacijah (rafinerije, petrokemija, letališa), kjer je zahtevana visoka stopnja zanesljivosti in varnost in PC based kontrolni sistemi, pri katerih se navadni raunalnik z nekoliko vhodno/izhodnih modulov uporablja kot del sistema regulacije ali krmilja (t.i. soft PLC). To so zaradi nestabilnosti ponavadi manj zahtevni sistemi. Prvi nain se uporablja redko, zaradi cene opreme in inštalacije.
PLC krmilniki opravljajo v takih procesih predvsem svojo osnovno nalogo in vsaka dodatna naloga oz. aplikacija mora biti nastavljena tako da ne moti osnovnega namena, glede stabilnosti in hitrosti izvajanja osnovnega procesa ali asovne zasedenosti strojne opreme.
Ti problemi nas silijo, da se lotimo reševanja naloge – odprave motenj na dva povsem razlina naina: z vstavitvijo analognega filtra na analogni vhod PLC krmilnika ali s programsko izvedbo digitalnega filtra kot del programa v PLC-ju. Tako implementiran digitalni filter mora biti razmerno nizke stopnje zaradi hitrosti izvajanja in enostavnosti nartovanja. V magistrski nalogi sta analizirana možnost uporabe analognega filtra na vhodu analognega modula PLC krmilnika in uporaba digitalnega rekurzivnega (IIR) eliptinega filtra 2., 3. in 4. stopnje. Veina primerov za dejanski PLC se nanaša na Siemens S7-300/400 skupino krmilnikov. Matlab scripti in scripti PLC programa so podani sproti v poglavju, daljši scripti so podani kot priloge.
V prvem poglavlju je podan osnovni pregled teorije digitalne obdelave signalov in nain specifikacije karakteristik filtra.
V drugem poglavju so predstavljene osnovne filtrske strukture. Nakazane so osnove nartovanja filtrov, kot je doloanje koeficientov in stopnje filtra. Opisana sta postopka nartovanja po bilinearni metodi in impulzno invarijantni metodi, kot postopki brez raunalniške pomoi. Na koncu poglavja je opisano nartovanje filtrov s pomojo MATLAB-a, kot metode, ki je standard v nartovanju digitalnih struktur.
- 2 -
V tretjem poglavju so opisani optimalni filtri in njihove lastnosti. Podana je primerjava razlinih filtrov za enake zahteve in primerjava filtrov enake stopnje. Podane so tudi karakteristike optimalnih filtrov, e jih modificiramo, oziroma premaknemo nilo ali pol. Na koncu poglavja je zapisanih nekaj zakljukov o izbiri vrste filtra glede na obnašanje PLC krmilnika.
V etrtem poglavju je na kratko opisana stabilnost filtrov glede na lastnosti, ki izhajajo iz karakteristine enabe oziroma prenosne funkcije. Podani so tudi primeri razlinih filtrov in prikaz obnašanja glede na lego polov prenosne funkcije. V petem poglavju je opisan problem kvantizacije pri uporabi digitalnega filtra pri realizaciji s PLC krmilnikom. V drugem delu poglavja je podan kratek opis in geneza razlinih motenj s kateremi se sreamo pri avtomatizaciji procesov. Šesto poglavje opisuje zgradbo in namen PLC krmilnika, programski takt krmilnika in podrobnosti obdelave enega takta. Opisani so razlini filtri katere obiajno sreamo v PLC krmilnikih. V sedmem poglavju so opisani rezultati, ki smo jih dosegli z nartovanjem in izvedbo filtrov prve, druge, tretje in etrte stopnje. Opisana je strojna oprema s katero smo testirali obnašanje filtra.
- 3 -
1. Linearni asovno neodvisni sistemi Linearni asovno neodvisni sistem opišemo z linearno diferenno enabo (LDE) naslednje oblike
( ) ( ) ( ) ( ) ( ) ( )mnxbnxbknyanyanyany mkk −++=−++−+−+ −− 0021 ........21 (1.1) Pri tem sta y(n) izhod in v(n) vhod sistema. e je 0≠k , je sistem rekurziven (izhod je odvisen tudi od prejšnjih izhodnih vrednosti).
Sistem, podan z linearno diferenno enabo, lahko predstavimo z blokovnim diagramom elementarnih funkcij. Na sliki 1.1 je prikazan blokovna shema rekurzivnega sistema druge stopnje.
Slika 1.1. Blokovni dijagram rekurzivnega diskretnega sistema 2. stopnje e izhod iz prvega seštevalnika (vhod v prvi pomini len) oznaimo s sum(n), izhod iz prvega pominega lena z sum(n-1) in izhod iz drugega pominega lena s sum(n-2), tedaj je : y(n)= )2()1()( 012 −+−+ nsumbnsumbnsumb (1.2) in : sum(n)= )2()1()( 01 −−−− nsumansumanx
sum(n-1)= )3()2()1( 01 −−−−− nsumansumanx
sum(n-2)= )4()3()2( 01 −−−−− nsumansumanx
y(n)= [ ] [ ][ ])4()3()2(
)3()2()1()2()1()(
010
011012
−−−−−+−−−−−+−−−−
nsumansumanxb
nsumansumanxbnsumansumanxb
(1.3) e enabo preuredimo, dobimo :
n-1 n-1+
-a1
b1b2
-a0
b0
+y(n)
x(n)
- 4 -
y(n) =
[ ][ ])4()3()2(
)3(()2()1(
)2(()1()(
0120
0121
012
−+−+−−−+−+−−
−+−+
nsumbnsumbnsumba
nsumbnsumbnsumba
nxbnxbnxb
Izraza v oglatih oklepajih sta y(n-1) in y(n-2) in e ju uredimo dobimo :
)2()1()()2()1()( 01201 −+−+=−+−+ nxbnxbnxbnyanyany (1.4) oziroma :
)1()2()2()1()()( 10012 −−−−−+−+= nyanyanxbnxbnxbny (1.5) nerekurzivni del rekurzivni del za 0a in 1a 0≠ je sistem rekurziven (dovolj je, e je le eden od 0≠ia , torej lahko namesto in pišemo ali ).
- 5 -
1.1 Specifikacija lastnosti filtra Filter je sistem, sestavljen iz programske in/ ali strojne opreme, ki pretvori vhodni signal v izhodni signal po znanem pravilu (algoritmu). Pri tem je frekvenni spekter vhodnega signala povezan s spektrom izhodnega signala po tem pravilu, ki ga lahko prikažemo kot frekvenno / fazno karakteristiko ali kot prenosno funkcijo. Da si olajšamo specifikacijo lastnosti filtra, obstajajo parametri s pomojo katerih enolino doloimo zahteve za nartovanje filtra. Ti parametri so razen oblike amplitudne frekvenne karakteristike (nizkoprepustni, visokoprepustni itn.): mejna frekvenca prepustnega pasu, mejna frekvenca zapornega pasu, maksimalna valovitost prepustnega pasu in minimalno dušenje zapornega pasu. Alternativno sta lahko podana valovitost v zapornem podroju in maksimalno slablenje v prepustnem pasu. Na naslednji sliki so prikazani tipini parametri za specifikacijo filtra.
Slika 1.2 – Parametri nizkoprepustnega filtra
Oblika amplitudne karakteristike za razline vrste filtrov izgleda razlino v prepustnem in zapornem pasu. Pri tem je : 1δ - valovitost v prepustnem pasu
2δ - valovitost v zapornem pasu
pΩ - mejna frekvenca = meja prepustnega pasu
sΩ - mejna frekvenca zapornega pasu
- 6 -
Iz znane valovitosti, dobimo slabljenje v prepustnem oz. zapornem podroju z : ( )110 1log20 δ−⋅−=pA (dB) (1.6)
( )210log20 δ⋅−=sA (dB) (1.7)
- 7 -
2.Osnovne filtrske strukture
Izhodiše za oblikovanje filtrske strukture je sistemska funkcija H(z), ali diferenna enaba. Za vsak linearni, asovno neodvisni diskretni sistem obstaja ve enakovrednih struktur. Strukture so lahko kanonine in nekanonine oblike. Za filtrsko strukturo pravimo, da je kanonine oblike, e je število zakasnilnih lenov natanno enako stopnji filtra. Nekanonine strukture (t.i. strukture 1. variante) obiajno uporabljamo pri procesorjih za aritmetiko s fiksno vejico (fixed point), ker imajo le 1 seštevalnik. Kanonine strukture so v literaturi opisane kot strukture 2.varijante. Za filtre 1.in 2 stopnje lahko uporabimo direktno kanonino in direktno transponirano kanonino strukturo. Obe sta enakovredni. Razlika je le v številu seštevalnikov in množilnikov potrebnih za realizacijo. Strukture višjih stopenj lahko sestavimo s kaskadno ali vzporedno povezavo struktur 1. in 2. stopnje.
Za funkcijo 20
11
20
112
012
012
2
1)( −−
−−
++++
=++++
=zazazbzbb
azazbzbzb
zH (2.1)
sta možni naslednji izvedbeni strukturi: direktna kanonina oblika in transponirana oblika:
+
1−z
1−z
+
b1
-b0
-a1
-a0
b2Y(n)
X(n)
Slika 2.1- Direktna kanonina oblika digitalnega filtra 2.stopnje
Iz direktne oblike dobimo transponirano obliko (sl.2.2) po naslednjih pravilih : - vhod in izhod zamenjata mesta - v vseh vejah spremenimo smer signala ter - v vseh vozliših namesto seštevalnika vstavimo vejanje in obratno
- 8 -
Slika 2.2 –Direktna kanonina transponirana oblika digitalnega filtra 2. stopnje
2.1 Geometrijska interpretacija prenosne funkcije
Za funkcijo:
NN
MM
NN
Mm
zAzAAzBzBB
DzDzACzCzCzB
zH −−
−−
−−−−
−−−−−−
+⋅⋅⋅⋅⋅+++⋅⋅⋅⋅++
=−⋅⋅⋅⋅−⋅
−⋅⋅⋅⋅−⋅−= 1
10
110
1111
1
11)12
111
1
)()()()()(
)( (2.2)
izhaja : )()()( 112
110
−−− −⋅⋅⋅⋅−⋅−⋅= Mm CCCBB in )()()( 11
21
10−−− −⋅⋅⋅⋅−⋅−⋅= NN DDDAA
Amplitudna karakteristika je :
112
11
112
11
)(−−−−−−
−−−−−−
−⋅⋅⋅⋅⋅−−
−⋅⋅⋅⋅−−=
Njjj
N
Mjjj
M
DeDeDeA
CeCeCeBejH
ωωω
ωωω
ω
N
M
Njjj
Mjjj
j
PDPDPDPDA
PCPCPCPCB
DeDeDeA
CeCeCeBeH
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
=−⋅⋅⋅−−
−⋅⋅⋅−−=
3210
3210
210
210)(
ωωω
ωωωω
polovdoztocketioddaljenosproduktniclidoztocketioddaljenosprodukt
AB
eH j
__________
)(0
0 ⋅=ω (2.3)
=amplituda v toki ωjez = , ki jo raunamo za razline frekvence od 0 do . (2)
- 9 -
Slika 2.3- Doloanje amplitude frekvennega odziva
pri tem je Nquistova frekvenca :
kjer je Ts perioda vzorenja zveznega signala (=1/fs). Iz enabe 2.3 in slike 2.3 izhajajo naslednji sklepi o obnašanju sita: - nila ali pol bosta imela najveji upliv na podroje frekvenne karakteristike, ki se
ujema z delom enotinega kroga, v bližini tega pola/nile
- s približevanjem pola/nile enotini krožnici, se vpliv na frekv. karakteristike povea - za pol ki ima absolutno vrednost v bližini 1, ima frekv. karakteristika lokalni
maksimum pri tej frekvenci - za nilo, ki ima absolutno vrednost v bližini 1, ima frekv. karakteristika lokalni
minimum za frekvenco, ki je najbližja nili
- e se pol nahaja na enotini krožnici, je amplituda za to frekvenco neskonna - poli/nile v izhodišu, ne uplivajo na amplitudno karakteristiko. Pole in nile v
izhodišu imenujemo trivijalne. Vplivajo le na fazno karakteristiko - Funkcije, katere imajo nile znotraj enotinega kroga, so funkcije z minimalno fazo. S
funkcijo minimalne faze ni mogoe hkrati aproksimirati amplitudno in fazno karakteristiko
ωjez =
1C1D
2π
π
]Im[z
]Re[z
1=z
[ ]HzTs
RadTT
Rad
sss 21=
=
ππ
- 10 -
2.2. Vrste digitalnih filtrov Splošno lahko digitalne filtre razdelimo glede na lasnosti na naslednje vrste: glede na trajanje impulznega odziva : - nerekurzivni – izhodna vrednost je sestavljena na osnovi preteklih vhodnih vrednosti,
- rekurzivni – izhodna vrednost je sestavljena na osnovi preteklih vhodnih in izhodnih vrednosti,
glede na vnos oziroma izraun koeficientov :
- doloeni (fiksni koeficienti) – koeficienti so izraunani pred prvim taktom filtra - adaptivni – koeficienti se raunajo sproti med delovanjem filtra in so spreminljivi
glede na zahtevano karakteristiko oz. obnašanje : - poljubni - neoptimalni (izraun glede na zahtevano frekvenno karakteristiko) - optimalni (optimirani glede na nekatero od lastnosti)
Nizkoprepustni digitalni filter Nizkoprepustni filter je osnova za nartovanje drugih vrst, ker lahko z ustreznim transformacijami „transformiramo“ njegovo frekvenno karakteristiko v želeno obliko: nizko prepustni filter, pasovno prepustni, pasovno zaporni ali visoko prepustni. Ena od splošnih oblik rekurzivnega filtra 1. stopnje je (1):
)(2)1()1(
11
21
)( 1
1
kzzk
kzzk
zH−⋅
+⋅−=−+⋅−= −
−
(2.4)
Pri tem je s 1<k doloen pogoj stabilnosti. Nila funkcije je pri z= -1 oz. =. Maksimalna
vrednost funkcije je 1 pri =0. Funkcija je monotono upadajoa. Iz prenosne funkcije H(z) dobimo izraz za ojaenje (absolutno vrednost):
( )( )ω
ωω
cos212cos1)1(
)( 2
22
⋅⋅−+⋅−⋅−=kk
keH j , (2.5)
e za mejno frekvenco cω (-3dB), vstavimo v enabo kvadrat ojaenja 0.707*0.707 = 0.5 dobimo naslednje :
( )( ) ( ) ( ) cc kkk
kkk ωω
ωω
cos21cos1121
cos212cos1)1( 22
2
2
⋅−+=−⋅−=>=⋅⋅−+⋅
−⋅−
212
coskk
c +⋅=ω ;
stabilna rešitev je, ko je c
ckω
ωcos
sin1−= za 1<k .
(2.6)
- 11 -
2.2.1. Nartovanje rekurzivnih filtrov Praktino nartovanje digitalnega filtra poteka v naslednjih korakih : 1. Specifikacija karakteristik filtra 2. Izbira vrste filtra 3. Specifikacija stopnje filtra 4. Nartovanje filtra ( doloanje koeficientov) 5. Testiranje stabilnosti in lastnosti filtra (v praksi in/ali MATLAB - lega polov) 2.2.1.1 Specifikacija karakteristik filtra - je opisana v poglavju 1.1. 2.2.1.2. Izbira vrste filtra - glede na želene lastnosti digitalnega filtra in opremo, ki je na razpolago (HW in SW), lahko izberemo vrsto filtra za doloeno aplikacijo. Pri tem se moramo zavedati vsaj osnovnih lastnosti FIR in IIR filtrov : - FIR filtri so vedno stablini in lahko imajo linearni fazni potek. Stopnja je za red velikosti veja kot pri IIR filtrih =>> imajo ve koeficientov; vsak koeficient pomeni zakasnitev izhodnega signala za eno periodo, obenem pa porabi 1 pomnilniško lokacijo v pomnilniku. - IIR filtri so bolj „kompaktni“, potrebujejo manjšo stopnjo za enake zahteve, ampak nimajo linearnega faznega poteka (ni mogoe) in so lahko nestabilni. Nekaj ve o izbiri vrste filtra je opisano v pogl. 3.6. 2.2.1.3.Stopnjo filtra dobimo iz želenih karakteristik filtra: valovitost v zapornem in prehodnem podroju, dušenje v zapornem podroju, širina prehodnega pasu itn. V primeru Butterworth filtra stopnjo doloimo iz enab :
p
NΩ
≥loglogε
, (2.7)
in ( )
s
AN
Ω⋅−≥
log21log 2
; (2.8)
pri temu morata biti hkrati izpolnjena oba pogoja ! Za N izberemo prvo veje celo število. (ε je parameter povezan z valovitostjo in δ1=A , sΩ je meja neprepustnega podroja). Podobno doloimo stopnjo digitalnega filtra za ostale optimalne filtre – nain in enabe so razline, (6). e stopnjo filtra za optimalne filtre doloamo s pomojo MATLAB-a, uporabimo naslednje funkcije za razline vrste : [N,Wn]=buttord(Wp,Ws,Rp,Rs) [N,Wn]=ellipord(Wp,Ws,Rp,Rs) [N,Wn]=cheb1ord(Wp,Ws,Rp,Rs) [N,Wn]=cheb2ord(Wp,Ws,Rp,Rs) pri tem je N najmanjša stopnja filtra ki ustreza zahtevam, in Wn frekvenca, pri kateri je ojaenje -3 dB. Alternativno lahko stopnjo doloimo vnaprej zaradi omejitev strojne opreme. V tem primeru dušenje v prepustnem oz. zapornem pasu ne moremo podati kot zahtevo, ampak jo lahko le izraunamo za podano stopnjo filtra.
- 12 -
2.2.1.4. Nartovanje filtra ( doloanje koeficientov) Nartovanje digitalnega filtra lahko opravimo na ve nainov : - nartujemo analogni filter (prototip) => diskretizacija v digitalni filter s pomojo bilinearne transformacije (a) ali impulzno invariantne metode (b) - (c) direktno nartovanje optimalnih filtrov - MATLAB - (d) direktno nartovanje – metoda Yule-Walker –MATLAB funkcija yulewalk - (e) nartovanje NOTCH filtra s pomojo MATLAB-a 2.2.1.5 Nartovanje s pomojo bilinearne transformacije Bilinearna transformacija se uporablja za definiranje funkcije digitalnega filtra iz znane funkcije analognega filtra (original) . Osnovna ideja pri tem je, da bodo asovni odzivi analognega in digitalnega filtra enaki, v intervalih doloenih s frekvenco tipanja. Bilinearna transformacija predstavlja algebrsko transformacijo spremenljivke s v z. Preslikava iz s ravnine v diskretno z ravnino, je definirana z :
1
1
11
−
−
+−=
zz
ks (2.9)
oziroma
1
1
1
1)()(−
−
+−=
=z
zks
sHzH (2.10)
Ime bilinearna transformacije izhaja iz dejstva, da se spremenljivka s transformira v kvocient dveh linearnih funkcij spremenljivke z.. Zaradi tega to transformacijo imenujemo bi-linearna ali Tustinova transformacija.
Inverzna transformacija je : ( )( ) sT
sTz
⋅−
⋅+=
2121
; kjer je kT
=2. e uporabimo substitucijo
Ω+= js δ , enaba dobi obliko :
2/2/12/2/1
TjTTjT
zΩ−−Ω+⋅+=
δδ
. (2.11)
Iz te enabe je oitno, da je za ,0δ 1z , in za 0δ , 1z . S tem je dokazano, da se leva
polravnina preslika v notranjost enotinega kroga v z ravnini. e so poli analognega filtra )(sH a v
levi polravnini, bodo poli diskretne funkcije (filtra) )(zH v notranjosti enotinega kroga. S pomojo bilinearne transformacije se imaginarna os ( Ωj ) preslika v krožnico z=1 z
ravnine, in leva polravnina s v notranjost kroga 1=z
- 13 -
Slika 2.4 - Bilinearna transformacija – preslikava iz s v z ravnino Filter realiziran s pomojo bilinearne transformacije iz analognega, bo stabilen, e je stabilen original (analogni filter). To izhaja iz dejstva da so vsi poli v levi s polravnini, preslikani v notranjost kroga
1=z , kar je pogoj za stabilnost digitalnega sistema.
Težavo za direktno aplikacijo bilinearne transformacije vnaša dejstvo, da je preslikava nelinearna :
Iz 1
1
11
−
−
+−=
zz
ks in Ω= js in Tjez ω= izhaja
Tj
Tj
ee
kj ω
ω
−
−
+−=Ω
11
(2.12)
Relacija med Ω (analogna frekvenca) in ω (digitalna frekvenca) je :
2T
tgkω⋅=Ω ; (2.13)
to je potrebna frekvenca za analogni filter. e normiramo tako, da bo mejna frekvenca prepustnega pasu (cutoff) 1=Ωc , potem dobimo izraz za konstanto k :
2T
ctgk cω= ; kjer je cω mejna (cutoff) frekvenca digitalnega filtra
- 14 -
Slika 2.5 - Povezava med frekvenco digitalnega in analognega filtra
Slika 2.6 - Frekvenna karakteristika realnega filtra
- 15 -
Bilinearna transformacija je postopek, ki je zelo primeren za preslikavo amplitudne karakteristike filtra iz s ravnine v z ravnino. Slabost tako nartovanega filtra je nelinearni potek fazne karakteristike. Fazna karakteristika je nelinearna. Oitno je, da s to metodo ne moremo ustvariti filter z linearno fazno karakteristiko, e ima original karakteristiko z linearno fazo. Pri praktinem nartovanju, za vse kritine frekvence pri definiranju filtra, izraunamo ustrezne frekvence za analogni filter po enabi 2.13 :
2T
tgk xx
ω⋅=Ω ;
filter raunamo glede na : -mejno frekvenco v prepustnem pasu (cutoff) = cf
-Mejno frekvenco v zapornem pasu = nf
Max slabljenje v prepustnem pasu = ca
Minimalno slabljenje v zapornem pasu = na
Frekvenco vzorenja f sf , oziroma periodo sT , izberemo;
e normiramo frekvenco , torej 1=Ωc (rad/s) , dobimo 2
scTctgkω
= ;
Mejno frekvenco v zapornem pasu :
s
n
s
nsn
ff
tgkf
ftgk
Ttgk
⋅⋅=
⋅⋅⋅=⋅=Ω
ππω2
221
S temi frekvencami izraunamo analogni filter, oz. prenosno funkcijo H(s). Z bilinearno transformacijo potem dobimo H(z). Na primer, e želimo doloiti nizkoprepustni filter 3. stopnje, naslednjih specifikacij : - frekvenca vzorenja kHzf s 8= ,
- mejna frekvenca kHzf c 1= in
- maksimalna valovitost v prepustnem pasu ca = 1 dB prenosno funkcijo analognega filtra H(s) doliimo iz tablic.
Ker za bilinearno transformacijo velja : 1
1
112
−
−
+−⋅=
zz
Ts (2.14)
in povezava med analogno in digitalno frekvenco :
22 ω
tgT
⋅=Ω oz.
2
2ω
tgTΩ= (
s
c
ffπω 2
= = mejna frekvenca v radijanih)
s
c
c
ff
tg
fT π
π22 = ; ta izraz vstavimo v enabo 2.14 in izraunamo prenosno funkcijo H(z) iz izraza H(s).
Postopek je zamuden in zapleten, predvsem za višje stopnje prenosnih funkcij H(s).
- 16 -
2.2.1.6 Nartovanje s pomojo impulzno invarijantne metode Osnovna ideja snovanja filtra po metodi impulzne invarijance je v izbiri analognega filtra, kateri ima enak odtipani impulzni odziv kot želeni digitalni filter.
)()( nThnh a= (2.15) iz enabe
)2
(1
)( kT
jsHT
zHk
aez sT ∞
−∞==
+= π (2.16)
vidimo, da se deli funkcije, širine Tπ2
, preslikajo v z ravnino, kot je razvidno iz slike.
Slika 2.7 – Preslikava iz s ravnine v z ravnino s pomojo impulzne transformacije
Frekvenno karakteristiko dobimo s substitucijo : zT
sez j ln1
,... == ω ;
∞
−∞=
+=k
aj k
Tj
Tj
HT
eH )2
(1
( ) πωω (2.17)
- pri tem se preslika imaginarna os v s ravnini )0( =σ =>> v enotno krožnico v z ravnini ( )1=z
leva s polravnina )0( <σ =>> v notranjost enotne krožnice ( )1<z
desna polravnina )0( >σ =>> v z ravnino zunaj enotne krožnice Poli stabilnega filtra se preslikajo v notranjost krožnice ( )1=z . Transformacija sTez = preslika vse
toke s ravnine podane z kT
jjsπσ 2+Ω+= v eno toko v z ravnini :
TjT eez Ω⋅= σ ;
- 17 -
horizontalni odsek TTππ ≤Ω≤−
v s ravnini, se preslika v celotno z ravnino. Vsak
horizontalni odsek T
kT
k ππ )12()12( +≤Ω≤− v s ravnini se preslika v celotno z ravnino.
Transformacija sTez = je vekratno preslikavanje iz s v celotno z ravnino.
Slika 2.8 – Preslikava dela s ravnine v celotno z ravnino Iz enabe 2.17
∞
−∞=
+=k
aj k
Tj
TjH
TeH )
2(
1( ) πωω
vidimo, da je frekvenna karakteristika, vsota premaknjenih kopij frekvenne karakteristike analognega filtra. e je frekvenna karakteristika analognega filtra omejena, torej e velja :
0)( =ΩjH a za Tπ≥Ω , tedaj velja :
)(1
)(T
jHT
eH aj ωω = za πω < , torej ni prekrivanja (aliasing).
V praksi ne obstaja filter z omejeno frekvenno karakteristiko. Impulzno invarijantna metoda ni primerna za filtre, kateri niso frekvenno omejeni, npr. visokoprepustne, to pa je obenem omejitev uporabe takšne metode trensformacije. Primerna je pa za filtre pri katerih je pomemben impulzni odziv (oblika signala, stopnice ali podobno). V praktinem nartovanju, postopamo po naslednjih korakih :
- doloimo ekvivalent digitalne frekvence iz digitalne frekvence cc Ωω , ss Ωω (relacija ed digitalno in analogno frekvenco je linearna
: πω=Ω )
- doloimo analogno prenosno funkcijo )(sH a
- Razvijemo )(sH a v vsoto parcijalnih vlomkov - doloimo z-transformiranko posameznega vlomka in tedaj z transformacijo celotnega filtra
- 18 -
Na primer, e je prenosna funkcija analognega filtra )52)(3(
)2(16)( 2 +++
+=sss
ssH a
potem, ko rastavimo na parcijalne vlomke, dobimo :
2222222 2)1(2
62)1(
12
32
2)1(142
32
52142
32
)(++
+++
+++
−=++
+++
−=++
+++
−=ss
sss
ssss
ss
sH a
doloimo z transformiranko :
TT
T
T eTzezTTzez
ezz
zH 22
2
3 2cos2)2cos22sin6(22
)( −−
−
− +−⋅−⋅++
−−=
Kaskada dva digitalna filtra, nartovana po impulzno invarijantni metodi, nima impulzni odziv enak impulznemu odzivu kaskade 2 analogna originala. Z drugimi besedami, filter nartovan po ti metodi, moramo nartovati v enem koraku.
2.2.1.7 Direktno nartovanje optimalnih filtrov (doloanje koeficientov prenosne funkcije) - MATLAB - za to nartovanje uporabljamo (ob znanem redu filtra) funkcije za razline vrste filtrov : [B,A]=BUTTER(N,Wn) ; [B,A]=ELLIP (N,Rp,Rs,Wn) ; [B,A]=CHEBY1(N,R,Wn); [B,A]=CHEBY2(N,R,Wn); Kot primer vzemimo eliptini nizkoprepustni filter , mejna frekvenca fc=5kHz, frekvenca vzorenja100 kHz,(Fn=50 kHz) menja frekvenca zapornega pasu fz=8 kHz, valovitost v prep.pasu 1dB, slablenje v zapornem pasu 40dB. za ta primer je MATLAB script: [n,w]=ellipord(5/50,8/50,1,40) %dolocanje stopnje filtra [B,A]=ellip(n,1,40,w) % dolocanje stevca in im. Fs=100000 % frekvenca vzorcenja [H,W]=freqz(B,A,32768); figure; plot(W*Fs/(2*pi),20*log(abs(H))); title ('Frekvencni odziv'); xlabel('Frekvenca (Hz)'); Ylabel('Ojacanje (dB)'); axis([0 10000 -120 1]); grid on
- 19 -
Slika 2.9 - Frekvenna karakteristika nizkoprepustnega eliptinega filtra 4.stopnje
za Fc=5 kHz in Fz=8 kHz 2.2.1.8 Direktno nartovanje – metoda Yule-Walker – MATLAB funkcija YULEWALK e zahtevana frekvenna karakteristika ne ustreza nobeni optimalni vrsti filtra, ali e ima ve prepustnih ali zapornih podroij, je na razpolago direktna metoda Yule-Walker, za katero je tudi v MATLAB-u implementirana funkcija „yulewalk“. Funkcija : [B,A]=yulewalk(n,f,m) nam doloa vektorja b in a, ki predstavljajo števec in imenovalec prenosne funkcije filtra, katerega amplitudna karakteristika je opisana v vektorju f in vektorju m. Z vektorjem f so opisane toke na frekvenni osi, za katere je podana želena amplituda frekvenne karakteristike. Z vektorjem m so opisane amplitude frekvennega odziva v tokah, katere so doloene z vektorjem f. S tema dvema vektorjema lahko opišemo katerkoli karakteristiko, tudi delno gladko funkcijo, e vzamemo dovolj veliko število vzorcev (tok v vektorju f ). Funkcija YULEWALK ne podaja informacije glede faze. Kot primer vzemimo pasovno zaporni filter, oziroma notch filter, stopnje 10, z naslednjimi podatki:
- 20 -
n=10 Fs=500 Hz; F1=50 Hz; (0.2 Fs) F2=100 Hz ; (0.4 Fs) MATLAB script za ta primer je naslednji : m=[1 1 0 1 0 1 1 1 1 1] f=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1] [b,a]=yulewalk(10,f,m); [h,w]=freqz(b,a,128); plot(f,m,w/pi,abs(h));
Slika 2.10 - Frekvenna karakteristika notch filtra nartovanega s pomojo funkcije YULEWALK 2.2.1.9 Nartovanje notch filtra s pomojo MATLAB-a Notch filter (filter s zarezo) je v osnovi FIR filter in deluje le za frekvenco za katero je nartovan. eprav ne gre za IIR filter, je v PLC aplikacijah pogosto uporabljen, zato si oglejmo vsaj osnove. Primer uporabe takšnega filtra je elminacija omrežne frekvence (50 Hz) pri vezjih. Pri tem imamo pogosto probleme tudi z drugim harmonikom oz. s 100 Hz pri polnovalnem usmerniku. Za notch filter želimo, da bo frekvenni odziv za doloeno frekvenco , ni.
- 21 -
Prenosna funkcija bo :
( ) ( )Ω−Ω −⋅−= jj ezezzH )( ; (2.18) Prenosna funkcija ima dve kompleksno-konjugirani nili, v tokah Ω= jez in Ω−= jez , ker želimo realne koeficiente filtra.
( ) 1)( 2 +⋅+−= Ω−Ω zeezzH jj (2.19) e uporabimo Eulerjevo enabo Ω=+ Ω−Ω cos2jj ee , dobimo prenosno funkcijo :
1cos2)( 2 +Ω⋅−= zzH (2.20) Na ta nain napisan filter, bi uporabljal bodoe vzorce, zato ga množimo z z-2 (zakasnitev za 2 asovna intervala), kar je dovoljeno zaradi asovne invarijantnosti.
[ ] 22
110
21222 cos211cos2)( −−−−− ++=+Ω⋅−=+Ω⋅⋅−= zbzbbzzzzzzHz (2.21) Koeficienti diferenne enabe (prenosne funkcije) so : A=[1], - za nerekurzivni filter B=[1,-2cos ,1] , števec prenosne funkcije Zaradi enostavnosti, naj bo =/2 ; z MATLAB-om dobimo naslednji graf : a=[1]; b=[1,-2*cos(pi/2),1]; [H,omega]=freqz(b,a); plot(omega,abs(H));
Slika 2.11 - Frekvenna karakteristika digitalnega notch filtra za frekvenco =/2
- 22 -
in lega polov, oz. niel: zplane(b,a);
Slika 2.12 - Lega polov in niel digitalnega notch filtra za frekvenco =/2
Opazimo še, da digitalni notch filter v popolnosti izloi želeno frekvenco. Tega s praktinim analognim filtrom nikdar ne moremo dosei. Pojavlja se vprašanje, kako realizirati notch filter za ve frekvenc, oziroma e želimo izloiti ve frekvenc? Na primer, e želimo izloiti 50 Hz in 100 Hz. Naj bo H1 prenosna funkcija (= impulzni odziv) prvega filtra, za prvo frekvenco in naj bo H2 prenosna funkcija filtra za drugo frekvenco katero želimo izloiti. H1=[1,-2cos 1,1] H2=[1,-2cos 2,2] Potem je konvolucija teh funkcij impulzni odziv celotnega filtra, oz.frekvenna karakteristika. To je ekvivalent množenja funkcij v s prostoru - (H(s)). H=H1*H2 (2.22) Kot primer vzamimo frekvenci 50 in 100 Hz, ter frekvenco vzorenja 500 Hz ;
550050
221
πππ ===Ωsf
f
52
500100
222
πππ ===Ωsf
f
Z MATLAB-om, filter realiziramo (simuliramo) na naslednji nain : f1=pi/5; f2=2*pi/5;
- 23 -
H1=[1,-2*cos(f1),1]; H2=[1,-2*cos(f2),1]; H=conv(H1,H2); A=[1]; freqz(H,A);
Slika 2.13 - Frekvenna in fazna karakteristika digitalnega notch filtra za frekvence
50 in 100 Hz, pri fs=500 Hz Lega niel in polov : zplane(H,A);
Slika 2.14 - Lega polov in niel za notch filter 50 in 100 Hz Hz, pri fs=500 Hz
- 24 -
e želimo narediti iz notch filtra pasovno zaporni filter, to lahko naredimo s transformacijo FIR filtra v IIR filter. To naredimo tako, da vstavimo par polov v bližino niel :
( ) ( )( ) ( ) 221
21
11
11
cos21cos21
1111
)( −−
−−
−Ω−Ω
−Ω−−Ω
⋅+Ω⋅⋅⋅−+Ω⋅⋅−=
⋅⋅−⋅⋅⋅−⋅−⋅⋅−=
zrzrzz
zerzerzeze
zHjj
jj
22
2
2
2
221
21
cos21cos2
cos21cos21
)(rzrz
zzzz
zrzrzz
zH+Ω⋅⋅⋅−−Ω⋅⋅−=⋅
⋅+Ω⋅⋅⋅−+Ω⋅⋅−= −−
−−
(2.23)
Za r izberemo vrednost v neposredni bližini enice 0.999, 0.99 ali 0.95. Na sliki so prikazani rezultati simulacije :
Slika 2.15 - Frekvenna karakteristika modificiranega notch filtra, za razline lege polov Matlab script za ta primer je naslednji : f1=pi/5; fs=500 T = 1/fs; hz = wT/(2*pi*T); % normirana frekv. filtra r1=0.999 r2=0.99 r3=0.95 B1=[1,-2*cos(f1),1]; A1=[1,-2*r1*cos(f1),r1*r1]; B2=[1,-2*cos(f1),1]; A2=[1,-2*r2*cos(f1),r2*r2]; B3=B2 A3=[1,-2*r3*cos(f1),r3*r3];
- 25 -
% [H1,wT] = freqz(B1,A1,100); [H2,wT]=freqz(B2,A2,100); [H3,wT]=freqz(B3,A3,100); axis([20 80 0 1.2]) plot(hz,abs(H1),hz,abs(H2),hz,abs(H3)),...
- 26 -
3.Optimalni in neoptimalni filtri Filtrsko strukturo poljubne karakteristike lahko nartujemo tudi s pomojo postopka opisanega v 3.1. Oglejmo si na primeru vpliv lege polov na frekvenno karakteristiko in impulzni odziv.
( ) ( ) ( ) ( )θθ jj erzerzz
pzpzz
zH −⋅−⋅⋅−=
−⋅−=
2
21
2
)( za konjugirano kompl. par polov lahko
zapišemo tudi :
( ) ( ) ( ) 212
2
21212
2
21
2
)(azaz
zppzppz
zpzpz
zzH
+⋅+=
⋅+⋅−−+=
−⋅−= (2.24)
( )θθθ sincos1 jrerp j +⋅=⋅=
( )θθθ sincos2 jrerp j −⋅=⋅= −
22
21
121 cos2
arpp
arpp
==⋅
−=⋅=+ θ... (
s
c
ff
⋅= πθ 2 )
e to vstavimo v enabo 2.24, dobimo :
( ) ( ) 22
22
cos2)()(
rrzzz
erzerzz
zHjj +⋅⋅−
=⋅−⋅⋅−
= − θθθ (2.23)
Za podana r in θ je: ( ) ( )( ) ( )21
11
cos
sin
prerpre
pimrpim
=⋅=−=⋅=
θθ
za razline r =0.8 0.9 0.99 in =θ 0 /6 2 /3 ; dobimo vrednosti koeficientov
iz : 2
2
1 cos2
ra
ra
=
⋅−= θ
r
0 /6 2/3 0.8 a1=-1,6
a2=0,64 a1=-1,3856 a2=0,64
a1=0,8 a2=0,64
a1=1,6 a2=0,64
0.9 a1=-1,8 a2=0,81
a1=-1,5588 a2=0,81
a1=0,9 a2=0,81
a1=1,8 a2=0,81
0.99 a1=-1,98 a2=0,9801
a1=-1,71468 a2=0,9801
a1=0,99 a2=0,9801
a1=1,98 a2=0,9801
Tabela 3.1 – Vrednosti koeficientov v z ravnini za razline vrednosti radijusa in kota lege polov
- 27 -
Slika 3.1 –Grafina predstavitev lege polov digitalnega filtra
Na naslednji sliki si oglejmo frekvenno karakteristiko digitalnega filtra 2. stopnje za r=0.76, 0.8, 0.9 in 0.99 pri =0, pri frekvenci vzorenja 50 Hz. V tem primeru ima prenosna funkcija dvojno nilo v izhodišu.
Slika 3.2– Potek frekvenne karakteristike pri spremembi oddaljenosti polov
od izhodiša za filter 2. stopnje Iz slike je razvidno, da je obnašanje, oziroma strmina dušenja, odvisna od oddaljenosti polov od izhodiša. e je pol blizu izhodiša, manjši je vpliv na izhodni signal in obratno – za pol zelo blizu izhodišu, je filtriranje bolj izraženo. Glede na to, da je pol na realni osi, gre za nizkoprepustni filter. Na naslednji sliki oglejmo kako se spreminja frekvenna karakteristika s spremembo kota . Prikazan je primer za r=0.76.
- 28 -
Slika 3.3 - Potek frekvenne karakteristike za razline kote Na sliki 3.3 vidimo, da je obnašanje, oz. mejna frekvenca odvisna od kota lege polov . S
spreminjanjem kota lahko vplivamo na obnašanje filtra, tako da pri =0 imamo nizkoprepustni in pri = - visokoprepustni filter.
Oglejmo si še, kako se spremeni frekvenna karakteristika eliptinega filtra, e ob nespremenjenem kotu spreminjamo oddaljenost polov od izhodiša.
- 29 -
Slika 3.4 – Primerjava karakteristike eliptinega filtra in spremenjenega filtra, e spremenimo oddaljenost polov od izhodiša
Iz slike 3.4 je razvidno, da ima filter s približanjem polov enotini krožnici (= veji r), nekoliko bolj strmo karakteristiko, ima pa tudi veji prenihaj v prepustnem podroju. Z zmanjšanjem r –oddaljujemo se od enotine krožnice, se karakteristika spremeni in ni ve tako strma in tudi ni prenihaja v prepustnem podroju. V vseh prejšnjih primerih smo analizirali vpliv premika lege polov na obnašanje digitalnega filtra. Na naslednjem primeru bomo analizirali vpliv premika nile na frekvenno karakteristiko. Analizo bomo opravili za eliptini filter 2. stopnje, oziroma za modificirani eliptini filter pri kateremu je nila na =0 in = . Nartovan eliptini filter ima prenosno funkcijo :
5765.01621.11508.00276.01508.0
)( 2
2
+⋅−+⋅+⋅=
zzzz
zH
Modificirani eliptini filter pri kateremu dvojna nila premaknjena v z=1 oz. z=-1 ima prenosno funkcijo :
5765.01621.112
)( 2
2
+⋅−+⋅−=
zzzz
zH oziroma :
5765.01621.112
)( 2
2
+⋅−+⋅+=
zzzz
zH
Na naslednji sliki so podane frekvenne karakteristike filtra za razline imenovalce.
- 30 -
Slika 3.5 – Primerjava karakteristike eliptinega filtra in spremenjenega filtra , e spremenimo lego niel (dvojna nila)
Iz dosedaj analiziranih lastnosti filtra v odvistnosti od lege polov in niel, se lahko lotimo nartovanja filtra z direktnim nastavljanjem polov in niel v odvistnosti od željene karakteristike filtra.
Slika 3.6 -Frekvence digitalnega filtra na enotinem krogu
Za primer si vzamimo pasovnoprepustni filter pri frekvenci vzorenja 500Hz in nielnim ojaanjem pri 0 Hz in 250 Hz. Širina prepustnega pasu naj bo 10 Hz za 3 dB slablenje.
- 31 -
e želimo nielno ojaanje pri 0 in 250 Hz, zadostuje da postavimo nile na te dve frekvenci. Tako nartovan filter je le groba aproksimacija željene karakteristike.
Zato postavimo pol na frekvenco 125 Hz, 21
πj
erp ⋅= . Ker se za realne koeficiente, kompleksen pol
pojavi le kot konjugirano-kompleksni par, postavimo še en pol v 3/2, 23
2
πj
erp ⋅= . Za veji r, imamo boljši filter, oziroma ožji prepustni pas.
Slika 3.7 - Poli in nile nartovanega pasovnoprepustnega filtra Problem je izraun radijusa r za slablenje 3 dB oz.1/1.42. Za dovolj velik r (>0.9) in majhno frekvenco prepustnega pasu, lahko krožnico aproksimiramo s premico in dobimo naslednji trikotnik, prikazan na sliki:
Slika 3.8 - Izraun oddaljenosti pola od izhodiša za pasovnoprepustni IIR filter Za naš primer je d=5Hz (prepustni pas je 10 Hz);
( ) ( )222 121 rrd −⋅=−+ oz. dr −= 1 Prepustno pas =PP= 10Hz ;
- 32 -
π22 ⋅=fs
PP
d (2.25)
in
937.0063.011 =−=⋅−= πfs
PPr , in dobimo prenosno funkcijo :
( )( ) ( )( )
( ) ( )11
11
1212
11
937.01937.0111
937.01937.01
11)( −−
−−
−−−
−−
⋅+⋅⋅−+−=
⋅⋅−⋅
⋅⋅−
+−=zz
zz
zeze
zzzH
jjππ
( )
8782.01
8782.011
)( 2
2
2
2
+−=
+−= −
−
zz
zz
zH
Na naslednji sliki je prikazana frekvenna karakteristika nartovanega filtra.
Slika 3.9 - Frekvenna karakteristika pasovnoprepustnega IIR filtra
nartovanega s pomojo metode z razmestitvijo polov in niel (Pole-zero placement) Matlab script za ta primer (simulacijo) je naslednji : fs = 500; % frekvenca sempliranja 500 Hz fn = fs/2; T = 1/fs; [B] = [1 0 -1];% stevec [A]=[1 0 0.8782] %imenovalec
- 33 -
[H1,wT] = freqz(B,A,100); % z-transform freq.odziva filtra hz = wT/(2*pi*T); % normirana frekv. filtra plot(hz,20*log10(abs(H1))); title('Pasovno prepustni filter '); grid; xlabel('Frekvenca (Hz)'),ylabel('Ojacanje (dB)') Podobno lahko nartujemo tudi druge vrste filtrov. Za nartovanje je potrebno ve poskusov - interaktivno nartovanje. e so zahtevane tudi dodatne lastnosti filtra, je nartovanje na ta nain zelo težavno.
Bolj obiajno je, da si izberemo razen mejnih frekvenc in slablenja, tudi druge kriterije katere mora izpolnjevati nartovan filter, kot so valovitost, strmina amplitudne karakteristike, asovni odziv vezja na stopnini signal, prenihaj in podobno. V ta namen so kreirane razline strukture, optimirane za posamezne kriterije. Prenosna funkcija optimalnih filtrov ima vedno konjugirano kompleksne pole. Takšne strukture imajo svojo «preslikavo» v digitalni filter le za IIR filtre. Oglejmo si osnovne karakteristike nekaterih optimalnih struktur. Omenili bomo le najbolj pomembne lastnosti, ve o optimalnih filtrih je opisano v (4). 3.1 Butterworthova sita - so optiomalna glede na monotono in maksimalno položno amplitudno frekvenno karakteristiko. Amplitudni odziv je v prepustnem podroju brez valovitosti, v zapornem pa monotono upada z naklonom ./20 dekdBn ⋅ Dušenje je podkritino. Karakteristika Butterworthovih sit je najbližja karakteristiki nerekurzivnih sit.
Prenosna funkcija sita 2. stopnje je :
1141.1)(
12
2
02
0
++=
++=
pCpCH
ppH
pH , (3.1)
kje sta koeficienta Butterworthovih polinomov (iz tabele) za n=2: 12 =C in 41.11 =C .
- 34 -
Slika 3.10 – Frekvenna karakteristika Butterworthovega filtra
3.2-Bessel – ova sita (Thomsonova sita) - imajo linearni fazni potek in konstantno asovno zakasnitev v širšem frekvennem obmoju. Amplitudna frekvenna karakteristika je monotono upadajoa in ima najslabše slablenje (najmanjšo strmino) od vseh optimalnih sit. Uporabna so tam kje je potrebno najmanjše popaenje stopninega ali pravokotnega signala. Besselova sita so doloena skoeficienti Besselovih polinomov. Na sliki 4.11 je prikazana amplitudna frekvenna karakteristika Besselovega sita.
Slika 3.11 – Frekvenna karakteristika Besselovega sita
- 35 -
3.3 ebiševa sita (Chebyshev I in II)
Imajo enakomerno valovito obliko amplitudne frekvenne karakteristike (equiripple passband response ) za 1Ω in strmi prehod iz prepustnega v zaporno podroje. Zaradi tega je prehodno podroje med prepustnim in zapornim podrojem, ožje kot pri ostalih sitih. Karakteristika je povsem nelinearna. S ebiševimi siti dosežemo pri isti stopnji polinoma prenosne funkcije, veje dušenje v zapornem frekv. pasu kot z Butterworthovimi siti.
Amplitudni odziv je podan z absolutno vrednostjo prenosne funkcije :
( )Ω+=Ω
22
0
1)(
nC
HH
ε (3.2)
kje je )(ΩnC , ebišev polinom n-te stopnje in ε koeficient valovitosti. Filtrske karakteristike so naslednje : Valovitost :
21
1log20)(
ε+−=∆ dbp oziroma 110 10 −=
∆p
ε (3.3)
Željeno dušenje zD je podano s ( )[ ]22 arccoscosh1
1
z
zhn
DΩ⋅⋅+
=ε
. (3.3a)
Z željenim dušenjem je doloena najveja dovoljena vrednost amplitudnega odziva v zapornem frekvennem pasu. Poli funkcije se nahajajo na elipsi. Koeficienti ebiševih sit so podani v tabelah glede na stopnjo sita in dopustno valovitost. Tako je na primer za filter stopnje 2 in dopustno valovitost v prepustnem frekvennem pasu 1 dB, prenosna funkcija podana z :
H(p)=19403.06595.0 2
0
++ PPH
Slika 3.12 – Chebyshev filter 1.vrste
- 36 -
Chebyshev filter 1. vrste, ima minimalno absolutno razliko med idealno in dejansko amplitudno frekvenno karakteristiko v celem prepustnem podroju na raun prenihaja v prepustnem podroju. Zaporno podroje je maksimalno gladko.
Slika 3.13 – Chebyshev filter 2.vrste
Chebyshev filter 2. vrste– minimalna absolutna razlika med idealno i dejansko frekvenno karakteristiko v celem zapornem podroju s pomojo prenihaja v zapornem podroju. Frekvenna karakteristika je v prepustnem podroju maksimalno gladka.V zapornem podroju se filter ne približa nili tako hitro kot Chebishev 1. vrste. V prepustnem podroju ni prenihaja.
- 37 -
3.4 Eliptini filter (Cauer )
Karakteristika eliptinega filtra je prenihaj v prepustnem in zapornem podroju in zelo neugoden potek fazne karakteristike.Obenem ima pa eliptini filter najožji prehodni pas.Ugotavljamo pa, da razen eliptinega, ne obstaja filter enake stopnje z ožjim prehodnim pasom.
Slika 3.14 – Eliptini filter
- 38 -
3.5 Primerjava razlinih filtrov V naslednjem poglavju si bomo ogledali primerjavo obnašanja razlinih filtrov za enake zahteve in v drugem primeru obnašanje razlinih filtrov enake stopnje. Analiziran je primer nizkopasovnega filtra. 3.5.1 Primerjava stopnje razlinih filtrov za enake zahteve
Na naslednjem primeru si oglejmo primerjavo obnašanja razlinih vrst filtrov, oziroma kakšna je najnižja stopnja stopnja posamezne vrste filtra za zadostitev zahtevanih lastnosti.
πω 4.0=p
πω 5.0=s
05.0
1.0
2
1
==
δδ
Slika 3.15 - Primerjava frekvenne karakteristike razlinih filtrov za enake zahteve
- 39 -
Slika 3.16 - Primerjava lege polov in niel razlinih filtrov za enake zahteve Iz zgornjih slik je razvidno, da je potrebna stopnja filtra za naše zahteve:
Vrsta Stopnja Butterworth Nb = 12 Chebyshev I Nc = 6 Chebyshev II Nc = 6 Eliptini Ne = 4
Tabela 3.2 – Potrebna stopnja filtra za naše zahteve in NE < NC < NB (3.4)
Implementacija eliptinega filtra je dovolj enostavna in daje najboljše rezultate glede amplitudne frekvenne karakteristike, e zanemarimo potek faznega kota, kjer so prisotna pa najveja fazna popaenja v prepustnem pasu. Za enake zahteve ima eliptini filter najnižjo stopnjo. To tudi pomeni, da ima najhitrejši odziv in najmanjšo aparaturno kompleksnost..
Oglejmo rezultate še ene analize obnašanja razlinih digitalnih filtrov za naslednje zahteve : Frekvenca vzorenja Fs=10 Hz Frekvenca prepustnega pasu, Fc1 =2 Hz Frekvenca zapornega pasu(mejna), Fc2 = 2.4 Hz Max.valovitost v prepustnem pasu Ap=0.5 dB Minimum slablenje v zapornem pasu As =30dB
- 40 -
Analizirani so naslednje vrste filtrov: - Butterworth - Chebyshev 1.vrste - Chebyshev 2.vrste - Elliptini (Cauer) in FIR filter , Kaiser okenska funkcija
Slika 3.17 – Frekvenna karakteristika Butterworthovega filtra stopnje 18
- 41 -
Slika 3.18 – Frekvenna karakteristika Chebyshev filtra 1. vrste, stopnje 7
Slika 3.19 – Frekvenna karakteristika Chebyshev filtra 2. vrste, stopnje 7
- 42 -
Slika 3.20 – Frekvenna karakteristika eliptinega filtra 5. stopnje
Slika 3.21- Frekvenna karakteristika FIR filtra za podane zahteve
Rezultate prikazane na slikah 3.17, 3.18, 3.19, 3.20 in 3.21 lahko prikažemo tudi v tabeli
- 43 -
Vrsta optimalnega filtra Stopnja filtra
IIR Butterworth 21 IIR Chebyshev 1.vrste 9 IIR Chebyshev 2.vrste 9 IIR Eliptini filter (Cauer) 5 FIR Kaiserovo okno 56
Tabela 3.3 – Potrebna stopnja sita za podane zahteve
Vsi nartovani filtri imajo karakteristike ustrezne zahtevam. Iz tabele je razvidna tudi lastnost FIR filtrov, ki imajo za enake zahteve vsaj 3 krat vejo stopnjo. e gledamo kompleksnost strukture realizacije, imajo FIR filtri 4 krat vejo stopnjo kot IIR filter enake kompleksnosti. To dejstvo izhaja iz izrauna potrebnih množilnih lenov za realizacijo nartovane strukture. (5). FIR filtri imajo tudi nekatere dobre lastnosti - so vedno stabilni - lahko imajo linearni fazni potek Matlab script za ta primer je podan v prilogi 3.1. e linearni fazni potek ni pomembna lastnost filtra, potem je Eliptini filter glede na kompleksnost, hitrost odziva in amplitudno frekvenno karakteristiko prava izbira za tiste aplikacije katere so asovno kritine. 3.5.2 Primerjava frekvenne karakteristike razlinih filtrov enake stopnje Na naslednjem primeru si oglejmo obnašanje razlinih nizkoprepustnih filtrov enake stopnje. Enako kot v prejšnjem primeru, fazne razmere niso obravnavane. Analiza lastnosti je opravljena za naslednje vhodne parametre filtrov : fs = 80 - frekvenca vzorenja 80 Hz fn = fs/2; N = 4; - Stopnja filtra wn = 10/fn - mejna frekvenca filtra= 10 Hz Ap = 2 - max. slabl. v prep. pasu (dB) As = 20 - min. slablenje v zapornem pasu (dB)
- 44 -
Slika 3.22 - Frekvenne karakteristike razlinih optimalnih filtrov enake stopnje
Kot v prejšnjem primeru, je tudi iz te slike razvidno, da ima eliptini filter najožji prehodni pas, žal pa ima prenihaj v prepustnem in zapornem podroju.
Matlab script za ta primer je v prilogi 3.2.
- 45 -
3.6 Izbira digitalnega filtra Obstajajta dve razlini vrsti digitalnih filtrov; s konnim trajanjem impulznega odziva (FIR) in z neskonnim trajanjem impulznega odziva (IIR). Pri izbiri moramo vpoštevati vse dobre in slabe lastnosti posamezne vrste, da bi izbrali optimali filter za doloeno aplikacijo. Pri tem se moramo zavedati da so FIR filtri vedno stabilni in lahko imajo tudi linearni fazni potek, eprav so za red velikosti bolj kompleksni (imajo vejo stopnjo). Veja stopnja digitalnega filtra ima tri neugodne posledice :
- vejo porabo pomnilniškega prostora - vejo zakasnitev vhodnega signala - so bolj poasni (obdelava signala porabi ve asa)
Vsaki koeficient pomeni eno periodo zakasnitve in vsak vzorc vhodne ali izhodne vrednosti, moramo shraniti v pomnilniku zaradi izrauna sprotnih vrednosti izhoda. Klasine analogne filtre (Chebyshev, Elliptini, Buttherworth, Bessel), ni mogoe projektirati kot FIR filtre, ker potrebujujejo sistem s povratno vezavo; projektiramo jih, oz. obstajajo transformacije le za IIR filtre. Chebyshev in Elliptini (Cauer) vrsti, obiajno zahtevajo nižjo stopnjo od Butterworth filtra, ampak imajo tudi bistveno veji prenihaj prenosne karakteristike v prehodnem oz. zapornem pasu . Pri avtomatizaciji industrijskih procesov, razen v specijalnih primerih, gre za poasne spremembe in procese, tako da so IIR filtri boljši za te aplikacije. Za filtriranje pri katerem priakujemo predvsem glajenje vhodnega signala in e zakasnitev odziva ni pomembna, lahko uporabimo FIR filter-premikajoe povpreje. Pri PLC aplikacijah uporabimo Eliptini filter ker ima najožji prehodni pas ne glede na prenihaje v prepustnem in zapornem podroju.
- 46 -
4.Stabilnost digitalnega filtra–uporaba bilinearne transformacije Linearni, pomino neodvisni diskretni sistem je v popolnosti opisan z sistemsko funkcijo :
01
11
011
1
........
)(azazaz
bzbzbzbzH n
nn
mm
mm
++++++++= −
−
−− ; (4.1)
koreni karakteristine enabe (karakt. enabo dobimo tako da z zamenjamo z λ ) : 0... 01
11 =++++ −
− aaa nn
n λλλ (4.2) so poli sistemske funkcije in v celoti doloajo stabilnost sistema. Med zveznimi in diskretnimi sistemi je analogija –
- Zvezni sistem je stabilen e so vsi poli sistemske funkcije H(s) v levi polravnini s. Enkratni poli na imaginarni osi pomenijo mejno stabilen (pri mejno stabilnem sistemu gre sistem impulzni odziv proti konstanti ali proti sinusni komponenti s konstantno amplitudo) Vekratni poli na imaginarni osi ali vsaj en pol v desni polravnini pomenijo nestabilen sistem (nestabilen sistem je sistem ko gre impulzni odziv h(k) in seveda izhod, z narašanjem k prek vseh mej).
- Diskretni sistem je stabilen, e so vsi poli sistemske funkcije H(z) v notranjosti enotinega kroga z ravnine. Enkratni pol na obodu tega kroga pomeni mejno stabilni sistem. Vekratni poli na obodu tega kroga ali vsaj en pol izven njega pa pomeni nestabilni sistem.
Ugotavljanje stabilnosti diskretnega sistema se reducira na ugotavljanje lege polov H(z). e uporabimo tako preslikavo, katera bi notranjost enotinega kroga z ravnine preslikala v odprto levo polravnino w, lahko stabilnost diskretne funkcije kontroliramo po Routhovem kriteriju. Preslikava katera preslika notranjost enotinega kroga v levo odprto polravnino w, se imenuje bilinearna transformacija in je definirana na naslednji nain :
11
+−=
zz
w - ali ww
z−+=
11
(4.3)
S pomojo te transformacije, lahko najdemo lego polov zvezne funkcije in tako sklepamo o stabilnosti diskretnega sistema. Funkcija H(w) ni enakovredna transformacija diskretne funkcije in nima enake lastnosti kot diskretni original. Na primer sistemska funkcija :
H(z)=4.04.1
12 +− zz
→ ww
z−+=
11
→ ( )
www
wH2.18.2
1)( 2
2
+−= → 01 =w in 42.01 −=w
Zaradi korena 01 =w je sistem lahko le mejno stabilen. Za primer analizirajmo obnašanje digitalnega vezja katero ima naslednje pole in nile : a) z1=0.5 ; z2=0.6 z2 -1.1z+0.3 b) r=1 ,fi=0.01 c) z1=0.707+j0.707 ; z2= 0.707-j0.707 z2 -1.42z+1 d) z1=j ; z2=-j z2 +1 e) r=0.99 , fi =pi/4
Od teh primerov, prvi in zadnji primer predstavljata stabilna vezja. Drugi, tretji in etrti primer so nestabilna vezja, katera oscilirajo na razlinih frekvencah, v odvisnosti od lege polov na krožnici v z ravnini. Šesti primer je mejno stabilno vezje z 2 konjugirano kompleksnima poloma na krožnici in s frekvenco 0.01 normirane frekvence.
- 47 -
Slika 4.1. – Impulzni odziv filtra za razline lege korenov – stabilne rešitve
Slika 4.2. – Impulzni odziv filtra za razline lege korenov – nestabilne in mejno stabilne rešitve
- 48 -
Iz prikazanih grafov lahko vidimo, kako se obnaša digitalno vezje, e so poli prenosne
funkcije znotraj enotinega kroga, za primere enkratnih in konjugirano-kompleksnih polov in za primere lege polov na obodu kroga in zunaj enotinega kroga.
Opazimo, da predstavlja tudi mejna stabilna rešitev za regulacijske aplikacije neuporabno vezje, ker je za vhod=0, izhod razlien od ni. Matlab script je za ta primer podan v prilogi 4.1.
- 49 -
5. Efekti kvantizacije pri uporabi digitalnih filtrov Kaj je kvantizacija ?
Kvantizacija je v osnovi predstavitev analogne spremenljivke s konnim številom nivojev, kar je povezano s konno dolžino bitov za zapis spremenljivke v binarni obliki. Pri izvedbi digitalnih filtrov jo obravnavamo v treh skupinah:
1. kvantizacija vhodnega signala 2. vpliv aritmetike z omejeno natannostjo na kvantizacijo notranjih spremenljivk sistema 3. kvantizacija koeficientov digitalnega filtra
Na kvantizacijo vhodnega signala ne moremo vplivati razen pri specijalnih enotah, pri tem se
hkrati spremeni tudi frekvenca odtipanja. Na kvantizacijo aritmetike znotraj strojne opreme tudi ne moremo vplivati, ker je le ta povezana z izbiro tipa spremenljivke. Na kvantizacijo koeficientov, tudi pri PLC krmilniku, lahko vplivamo, ker koeficienti niso nujno konstantni, tudi pri neadaptivnimi filtrih. Naini kvantiziranja pri vseh treh skupinah so povezani z : - rezanjem ali - zaokroževanjem
Kvantizacija je nujna zaradi omejenega (konnega) pomnilniškega prostora (registri), na raun dolžine besede pa lahko tudi poveamo hitrost delovanja. Konna dolžina koeficientov digitalnega filtra spremeni karakteristiko filtra in v primeru IIR filtra lahko pripelje do nestabilnega vezja.
Ne glede na zmogljivost procesorja s katerim realiziramo filter, je kvantizacija notranjih spremenljivk sistema nujna, ker bi sicer v primeru IIR filtra, potrebna dolžina registrov za shranjevanje sprotnih produktov, narašala v neskonnost.
Proces kvantizacije ima naslednje (slabe) lastnosti : - nelinearnost - neinvertibilnost (ve analognih vrednosti se preslika v 1 diskretno) - ireverzibilnost (ne obstaja nain da iz da iz kvantizirane vrednosti dobimo nazaj original, e je
kvantizirano na konno število nivojev)
as obdelave enega takta je as katerega PLC potrebuje za branje, obdelavo in vpisovanje
vrednosti v izhodne vrednosti (module) in markerje (interna pomnilniška lokacija dolžine 1 bit). as obdelave je odvisen od vsebine programa (zanke, izrauni, odloanje in podobno).
as obdelave se bistveno povea, e je spremenljivka dolga. Povea se tudi potreben pomnilniški prostor. Za doloitev dolžine binarne spremenljivke (na doloeno število bitov) uporabljamo postopek (algoritem) rezanja ali zaokroževanja.
=> rezanje =>
krajšanje spremenljivk kvantizacija (pogrešek). => zaokroževanje =>
e spremenljivke in koeficiente krajšamo z rezanjem, ni nevarnosti za limitni cikel, e je sistem dobro umerjen (skaliran) in ni prekoraitve zaradi seštevanja. Vrednost takšne spremenljivke je enaka ali manjša od originalne.
e bi v našem primeru želeli uporabiti postopek zaokroževanja, je potrebno za PLC napisati posebne procedure, saj v nekaterih PLC-jih zaenkrat ne obstajajo (niso implementirane), oz. so
- 50 -
dolge in porabljajo preve asa za obdelavo. Ta postopek je uporaben v primeru adaptivnih filtrov, kje v odvistnosti od vhodne in izhodne vrednosti ter vrednosti pogreška, korigiramo (raunamo nove vrednosti koeficientov) koeficiente. Enak primer je pri neadaptivnih filtrih, pri katerih v odvisnosti od želenega obnašanja filtra (vrsta ali velikost izdelka), spremenimo koeficiente, kateri niso vnaprej znani, ampak ih izraunamo sproti. Procedure zaokroževanja so zapletene in porabljajo ve asa kot pri rezanju. e je takih filtrov ve, lahko as obdelave presega dovoljen as skupne obdelave (=1/fs).
5.1 Motnje v sistemih s PLC krmilnikom Splošno lahko motnje razdelimo v dve skupini : a) Motnje, ki so generirane z mehanskimi dogodki b) Motnje, ki so rezultat medsebojne indukcije, stresanih kapacitivnosti ali padcev napetosti Motnje generirane z mehanskimi dogodki – vibracije konstrukcij zaradi zagona motorjev, vetra, in podobno, ozko gledano sploh niso motnje za PLC krmilnik, ampak so dejanski signal. Ker takšen signal moti delovanje sistema, ga želimo izloiti s filtrom. Elektrine motnje so obiajno nizkih frekvenc, zelo redko samo ena frekvenca, obiajno je to spekter nizkih frekvenc. Odvisno od frekvennega spektra motnje, izberemo nizkoprepustno filter ali filter s zarezo. Motnje so posebno nevarne e se frekvenca ujema z mehansko resonanno frekvenco katere od naprav v sistemu (ventil, regulator ali kaj podobnega).
Na voljo so nekateri naini odprave motenj :
- odpravimo vir motnje (skoraj nemogoe) - motnjo filtriramo z RC vezjem (ali samo s C) na vhodu modula (frekvenca je odvisna od R, kateri je zajet v dolžini kablov, upornosti kontaktov, notranji upornosti pretvornika-vira signala, in podobno) - nastavimo RC konstanto analognega vhoda (pri nekaterih PLC- razlini moduli istega proizvajalca razlino interpretirajo zahtevo, e je vhod tokovno krmiljen, zelo zahtevna naloga, skoraj nemogoe. - v programu vstavimo digitalni filter (nizkoprepustni, nizkopasovni ali pasovno zaporni) rekurzivni filter programska rešitev znotraj PLC krmilnika
Slika 5.1. Blokovna shema vezja pri obdelavi napetostnega analognega signala s PLC krmilnikom in s superponiranim signalom motnje
AnalogInputCard
CPUAnalogOutputCard
R
C
MOTNJA
- 51 -
Na sliki 5.1 je prikazana obiajna konfiguracija meritve analognega signala s PLC krmilnikom. Prikazana sta upor in kondenzator. V praksi so to upornosti in kapacitivnosti linije od dajalnika do PLC modula (vhodne analogne enote). V upornosti so zajeti upor vodnikov, eventualnih stikal ter prikljukov.
Slika 5.1.a. Blokovna shema vezja pri obdelavi tokovnega analognega signala s PLC krmilnikom (napetostni vhodni modul) in s superponiranim signalom motnje
Na sliki 5.1.a je prikazana pogosto uporabljena oblika meritve analognega signala, predvsem pri dolgih linijah. Uporabljen je tokovni vir signala, pretvornik I-U (250 upor) in napetostni analogni vhod, tako da vhodni signal ni odvisen od upornosti linije. Ker gre za nizkoomsko zanko, je obutljivost takšnega vezja na motnje nizka. Žal, pa je tudi težko odpraviti motnje, e so prisotne v zanki. Na naslednji sliki je prikazano podobno vezje, pri kateremu je namesto napetostnega vhodnega modula, uporabljen tokovni.
Slika 5.1.b. Blokovna shema vezja pri obdelavi tokovnega analognega signala s PLC krmilnikom (tokovni vhodni modul) s superponiranim signalom motnje Na sliki 5.1.b. je prikazano vezje za meritev (in regulacijo) tokovnega analognega signala s tokovnim analognim modulom.Vezje se razlikuje od prejšnjega v tem, da ima zanka še manjši upor, kar pomeni, da je vezje manj obutljivo na motnje. Motnje v tej zanki zelo težko otpravimo. Pri tokovno krmiljenih vezjih, analogno filtriranje ni obiajno, tako da lahko vstavimo RC vezje v bližino PLC modula le v primeru vezja s slike 5.1.a.
- 52 -
6. PLC krmilnik
Programabilni krmilnik (PLC) je namensko mikroraunalniško vezje, ki se uporablja predvsem za obdelavo razlinih signalov na podroju avtomatizacije in daljinskega vodenja procesov. V zaetku so bili signali v PLC-ju le digitalni. Moderni PLC krmilniki obdelajo digitalne in analogne signale, vhodne in izhodne. To pomeni da so sposobni programsko simulirati filter ali PID regulator. Tako simulirani filter je ekvivalenten dejanskemu, fizinemu filtru (= samostojna enota).
Osnovni deli PLC-ja so naslednji : - Vhodna enota (moduli) - Izhodna enota (moduli) - Vir napajalnih napetosti (in reset vezje) - CPU - Pomnilniški del - Vodila (podatkovna, naslovna in sistemska)
as takta
as izvajanja enega takta je zelo pomemben kriterij za oceno hitrosti PLC krmilnika. Njegova vrednost podaja informacijo o asu, potrebnem za opravilo vseh funkcij v enem taktu. Ta as je razdeljen na dva dela : sistemski as in programski as. Bolj podrobno je as takta opisan v prilogi 6.1.
Programski as
Programski as lahko izraunamo iz vsebine programa, oziroma inštrukcij v programu.
Sistemski as Aktivnosti krmilnika, ki so neodvisne od vsebine programa, se izvajajo v ti. sistemskem asu. Sistemski as je relativno kratek v primerjavi s programskim asom. V tem asu se opravlja prenos podatkov med dvema ali ve PLC-jev, testiranje strojne opreme in podobno. Odzivni as as, ki ga PLC potrebuje za branje enega vhoda oz. statusa ene periferne naprave (konno stikalo ali podobno) in postavljanje enega izhoda kot rezultat obdelave vhoda, je nekoliko daljši kot as takta. Razlog temu so zakasnitve na digitalnem vhodu (modulu PLC-ja). Analogno vezje s katerem je to realizirano – nizkopasovni filter, je vstavljen da preprei odvene vhodne impulze zaradi mehanskih vibracij kontaktov aktuatorja (debouncing ). Tipini as te zakasnitve je 0.2 ms.Po izteku tega asa, vhodni signal je na razpolagu CPU-ju. Izhodna zakasnitev je odvisna od tipa izhodnega vezja. Zakasnitev pri tranzistorskemu vezju lahko zanemarimo. Pri relejnemu izhodnemu vezju, zakasnitev je reda velikosti 5 ms. as odziva PLC krmilnika se spreminja v odvisnosti od faze v kateri se trenutno nahaja znotraj enega takta programa kadar je nova vhodna vrednost prisotna na fizini toki (vhodu). e se vhodna vrednost spremeni med izvajanjem takta, reakcija ni trenutna. Nova vhodna vrednost bo vpoštevana šele ob zaetku naslednjega takta, kadar se stanja vseh vhodov preslikajo v vhodno sliko («image»). V najslabšem primeru, bo vhodni signal zakasnjen za en polni takt. as odziva lahko razumemo tudi kot as med detekcijo (branjem) vhodnega signala in modifikacijo pripadajoeg izhodnega signala.
- 53 -
Ciklina prekinitev Ciklino prekinitev lahko realiziramo na ve nainov, pri S7-300/400 je realizirana z funkcijo oz. organizacijskim blokom OB35. Obstajata dva naina realizacije :
- V OB35 generiramo impulz katerega v glavnem programu uporabimo kot uro = semplirno periodo
- V OB35 pokliemo funkcijo v kateri je implementiran digitalni filter, oz. filter realiziramo kar v OB35
Prvi nain je mogoe implementirati le v primeru, ko je as prekinitve OB35 veji od asa enega takta. Naslednja omejitev je da interval prekinitve OB35 mora biti daljši od asa potrebnega za obdelavo funkcije katera je poklicana iz OB35. To je prikazano na sliki 6.1
Slika 6.1 as obdelave funkcije v odvistnosti od asa prekinitve
e ta pogoj ni ozpolnjen, sistem (S7-300/400) klie prekinitev za obdelavo napake (OB80). Metode programiranja PLC krmilnikov – programski jeziki Na trgu obstaja veliko proizvajalcev PLC krmilnikov in periferne opreme, katero je velikokrat potrebno implementirati v enoten projekt, ali pa že konan projekt implementirati na drugi krmilnik. V ta namen je z normo IEC/EN 1131 standardizirana uporaba programskih in drugih pripomokov pri uporabi PLC krmilnikov. Pri programiranju nas predvsem zanima standardizacija naslavljanja in programskih jezikov katere uporabljamo pri PLC krmilnikih. Prednost takšnega naina programiranja so : - zmanjšanje stroškov zaradi uporabe razlinega PLC-ja - zmanjšanje stroškov zaradi testiranja - zmanjšanje stroškov šolanja uporabnikov in inženirov za razvoj Glavni naini programiranja (predstavitev programa) so : LAD – lestviasto vezje, podobno navadnemu nartu (navadnem nartu v ZDA) IL - instruction list, nain podoben zbirniku, prilagojen PLC-ju FBD - function block diagram, podobno digitalnem vezju (IN, ALI ...) SFC - sequention function chart – specijalni modul
- 54 -
ST - structured text, je programski jezik višjega nivoja, podoben PASCAL-u.Je zelo ugoden za obdelavo dogodkov v zankah, pogojne zanke, izraune in podobno. Po navadi je del nebveznega programskega paketa. V programu S7, so oznabe nekaj razline, v tabeli so prikazane oznabe IEC standarda in SIEMENS oznabe :
IEC SIEMENS S7 LAD LAD IL STL FBD FBD SFC SFC ST SCL
Tabela 6.1 – Primerjava oznab IEC standarda in S7 naina Program generiran z LAD ali FBD editorjem, lahko prevedemo v vsako obliko (LAD, FBD ,STL...). Obratno ne velja. Na naslednjem primeru bomo ogledali enostavno operacijo pogojnega množenja dveh celih števil, v vse tri oblike LAD, FBD in STL.
Slika 6.2 – LAD oblika programa
Slika 6.3 – FBD oblika programa
- 55 -
Slika 6.4 – STL oblika programa
Vse tri oblike so enakovredne in podajajo enak rezultat, razlika je le v predstavitvi. Najboljše rezultate dobimo z mešanim nainom, ker lahko nekatere operacije izvedemo z enim od nainov, druge pa bolj komplicirano in tudi manj pregledno. 6.1 Karakteristike vhodno/izhodnih enot krmilnika Proizvajalci PLC krmilnikov imajo razline tipe modulov, kakšenkrat tudi specijalne. Ne glede na proizvajalca se najvekrat sreamo z naslednjimi tipi modulov :
- Vhodni - Izhodni - Encoder - SSI (sinchronious serial interface) - CP (communication processor) - funkcijski (obdelava v zaprti zanki - pozicioniranje in podobno)
Nas pri digitalnemu filtriranju zanimata analogni vhodni in izhodni modul.
a) Analogni vhodi - napetostni 0-5V,0-10V , +/-10V,resolucija 13 bit (0-27648) - tokovni 0-20 mA,4-20mA,resolucija 13 bit(0-27648) - uporovni 150,300,600 Ω ,ali PTC sonda as vzorenja nastavimo programsko. (S7-300/400) b)Analogni izhodi – 13 bit,0-10V,+/-10V,0-20 mA
- 56 -
6.2 Poenostavljen živlenjski ciklus programa PLC krmilnika
Izvajanje programa PLC krmilnika je ciklino. To pomeni, da se eventualne spremembe vrednosti spremenljivk znotraj zanke (1 takta programa) ne bodo izvedla (vpoštevala). Vpoštevana bo le zadnja sprememba, oz. le zadnja sprememba spremenljivke. To bomo pokazali z naslednjim primerom (pisan v sintaksi S7-Siemens):
S M0.1 % set marker 0.1 R M0.1 % reset marker 0.1 BE in R M0.1 % reset marker 0.1 S M0.1 % set marker 0.1 BE eprav sta primera podobna in navidezno podajata enaka rezultata, bo v v prvem primeru
vrednost spremenljivke M0.1 ni (reset funkcija) v drugem primeru pa ena (set funkcija), ker PLC obravnava zadnjo inštrukcijo kot prioritetno. To dejstvo moramo upoštevati pri snovanju in projektiranju katerkoli strukture v PLC-ju.
Na naslednji sliki je simbolino prikazan živlenski takt programa v PLC-ju.
Slika 6.5 – Ciklus izvajanja PLC programa e želimo zelo hitro obdelavo nekaterih signalov ali funkcij, npr. alarmov, PID regulatorji
itn., lahko uporabimo razlino shemo izvajanja programa - prekinitvene funkcije. Te nam omogoajo direkten pristop vhodnim in izhodnim spremenljivkam in tudi sprotno obdelavo, ne glede na tekoi
- 57 -
takt PLC programa. Na naslednji sliki je simbolino prikazan takšen nain obdelave signalov/dogodkov.
Slika 6.6 – Ciklus izvajanja PLC programa v primeru alarmov – asinhroni mod
Nain pristopa do teh funkcij je razlien pri razlinih proizvajalcih PLC-jev in programske opreme. Obiajno obstajajo specijalne procedure oz. bloki kateri omogoajo prekinitve krmiljene z dogodki ali asovno krmiljene prekinitve.
PLC lahko obdeluje sekvenna in decizijska vezja. Decizijska vezja so vezja pri katerih je vrednost izhoda ali vmesne spremenljivke odvisen le od trenutnih stanj vhodov, izhodov in vmesnih spremenljivk. Pri sekvennih vezjih je vrednost izhodnih spremenljivk in /ali vmesnih spremenljivk odvisna tudi od vrednosti prejšnjih vhodnih, izhodnih vrednosti in/ali vmesnih spremenljivk.
To lastnost nam podaja možnost da v PLC krmilniku realiziramo tudi IIR filter, kateri pri izraunu nove izhodne vrednosti, upošteva tudi n prejšnjih vrednosti izhoda ali vmesnih spremenljivk.
Pomnilniški prostor (uporabniški) je obiajno organiziran in razdeljen na dva podroja :
- retentivno - ne retentivno
Retentivna pomnilniški prostor ohrani vsebino tudi pri izklopu napajalne napetosti ali resetu krmilnika. Katere podatke bomo shranili v kateri del je odvisno od projektanta sistema. eprav je obstaja možnost da ohranimo vrednosti spremenljivk tudi po izklopu ali resetu zaradi napake zelo ugodna, je pri nekaterih aplikacijah, predvsem varnostnim, nezaželena in tudi nevarna. Zato je potrebna previdna uporaba te možnosti.
- 58 -
6.3 Pogosto uporabljeni filtri v PLC krmilniku Realizacija digitalnih filtrov v PLC krmilniku je relativno pogosta naloga za inženirje ki programirajo PLC krmilnike. Obiajno takšni inženirji nimajo dovolj predznanja o digitalni obdelavi signalov. Zato je razvito nekaj tipov filtrov, kateri se uporabljajo za manj zahtevne aplikacije. Ti filtri so vedno nizkoprepustni in njihovo delovanje je doloeno s t.i. koeficientom glajenja. Opisali bomo nekatere tipe takšnih filtrov. 6.3.1 Delta filter - adaptivni eprav je podoben empirinem filtru, je ideja drugana : -razlika med vhodno vrednostjo x(n) in izhodno y(n-1) -razliko «uniimo» v k iteracij – ciklov – T=1/fs Algoritem dela z razliko med vhodno vrednostjo in izhodno vrednostjo. V vsaki iteraciji odpravi.1/k razlike. ‘Filter with final time constant =16 iterations (linear) X var word ‘current input value Y var word ‘smoothed value output
[ ] [ ] [ ] [ ]k
nxnynxny
−−+= 1 ;
prenosna funkcija ima obliko :
1)1(
)(−−=
zkkz
zH
Oglejmo izhodne vrednosti za nabor vhodnih vrednosti in motnjo za n=4, e želimo odpraviti razliko v 4 cikla.
n x(n) y(n) 0 0 0 1 10 7.5 2 10 9.375 3 10 9.843 4 20 17.46 5 10 11.865 6 0 2.96 7 0 0.74
Tabela 6.2 – Vhodne in izhodne vrednosti za delta filter
- 59 -
n 1 2 3 4 5 6
10
20izhod
vhod
Slika 6.7 - Odziv na motnjo za delta filter 6.3.2 Moving average –Premikajoe povpreje - je pogosto uporabljen filter, predvsem za glajenje. Moving average je FIR filter. Osnovna oblika je
[ ] [ ]−
=
−⋅=1
0
1 M
k
knxM
ny (6.1)
oz. [ ] [ ]=
−=−M
k
knxny1
1 -to je rekurzivna verzija prejšnje formule
[ ] [ ] [ ] [ ] [ ]−
=
−
=
−−=−=−−−1
0
1
1
1M
k
M
k
nxknxknxMnxny , (6.2)
kje je M število uporabljenih prejšnjih vhodnih vrednosti. im veji je M, tem boljše je glajenje. Izhodni signal predstavlja povpreje M prejšnjih vhodnih vrednosti, ima zakasnitev (M-1)/2 ciklov.(1)
[ ] [ ] [ ] [ ]( )MnxnxM
nyny −−+−= 11 ; (6.4)
Prenosna funkcija je naslednja :
( )[ ]11
1111
)( 1
1
01 −
−=−−⋅== −
−
=−
−− zzM
zzz
Mz
MzH
M
MM
n
Mn (6.5)
Nile funkcije so na enotini krožnici na Mkjez /π= , k=1, 2, 3... M-1, pol reda (M-1) v izhodišu in enkratni pol v z=1 kateri se pokrajša z enakoležeo nilo. Primer za M=3 :
( ) ( )11
31
111
31
131
)( 2
3
2
221
−−⋅=
−−⋅++⋅=++= −−
zzz
zz
zzz
zzzH
V okolju PLC krmilnika, izvorna koda je obiajno podobna naslednjemu zapisu (prikazan je funkcijski blok kateri opravlja funkcijo filtra za 200 vzorcev ) : %FB ime vhodne spremenljivke: %VAR_INPUT %input: INT; (*vhod za signal*) %IndexNo: UINT; (*stevilo vzocev za filtriranje*) %END_VAR
- 60 -
%izhodna spremenljivka: %VAR_OUTPUT %DataOut: INT; (*izhodni signal*) %END_VAR FUNCTION_BLOCK FB_FilterMAV VAR_INPUT input: INT; IndexNo: UINT; END_VAR VAR_OUTPUT DataOut: INT; END_VAR VAR DataArray: ARRAY[0..199]OF INT;’ primer za 200 vzorcev’ i: UINT; j: UINT; k: UINT; n: UINT; DataSum: INT; INo: UINT; END_VAR (*FB for recording last n data in sample rate*) LD IndexNo SUB 1 ST INo (*increment of the index*) LD i ADD 1 ST i LD i GE INo JMPCN array_data (*reset index*) LD 0 ST i array_data: (*begin from last record*) LD INo ST j loop1: LD j ADD 1 ST k (*move data index j to j+1*) LD DataArray[j]
- 61 -
ST DataArray[k] LD j EQ 0 JMPC data_input LD j SUB 1 ST j (*loop to begin*) JMP loop1 data_input: (*push to first record*) LD input ST DataArray[0] (*moving average*) LD 0 ST n ST DataSum loop_av: LD n ADD 1 ST n LD DataSum ADD DataArray[n] ST DataSum LD n GE IndexNo JMPC endav (*loop*) JMP loop_av endav: (*average*) LD DataSum DIV IndexNo ST DataOut 6.3.3 «Fluke filter» T.i. Fluke filter je bil uporabljan v razvoju digitalnih inštrumentov in je podan v obliki :
kny
knx
nyk
nynxnyny
)1()()1(
)1()()1()(
−−+−=−−+−= (6.6)
- 62 -
knx
knyny
)(11)1()( +
−⋅−=
knx
knyny
)()
11()1()( =−⋅−−
kzX
kzzYzY
)(11)()( 1 =
−⋅⋅− − =
⋅
−−⋅ −1111)( z
kzY
( ) kkzzH
zXzY
+−⋅== − 1
1)(
)()(
1 ;
kk
z
zk
zH−+
⋅=1
1)( (6.7)
pri k=2 dobimo srednjo vrednost prejšnje izhodne in trenutne vhodne vrednosti. Za razline k , dobimo naslednje oblike za H(z) : k=1 => 1)( =zH - ni filtriranja- vhodna vrednost gre direktno na izhod
k=2 => 5.0
5.05.02
1)(
−⋅=
−⋅=
zz
zz
zH ;
k=5 => 8.0
2.08.05
1)(
−⋅=
−⋅=
zz
zz
zH :
k=50 => 98.0
02.098.050
1)(
−⋅=
−⋅=
zz
zz
zH
Oitno gre za nizkopasovni rekurzivni filter prve stopnje. Oglejmo si frekvenne karakteristike za te primere :
- 63 -
Slika 6.8 Frekvenna karakteristika t.i. «FLUKE» filtra za razline koeficiente glajenja 6.3.4 Empirini filter – je filter katerega pogosto sreamo v PLC aplikacijah, eprav uporabnik (pogosto) ne ve za teoretino ozadje digitalne obdelave signalov in teorijo filtrov. Gre za rekurzivni nizkopasovni filter prve stopnje, brez natanno doloene frekvence vzorenja. Kot bomo pokazali v tem poglavju so, lastnosti filtriranja predvsem omejene na glajenje vhodnega signala. Izhodna_vrednost=0.01(Izhodna_vrednost*k+Vhodna_vrednost*(100-k)) Pri tem je treba opazovati spremenljivko «Izhodna_vrednost» znotraj oklepaja kot prejšnjo vrednost oz. vrednost iz prejšnjega takta.
100)100()())1((
)(knXknY
nY−⋅+⋅−= (6.8)
Pri tem za k=0 - ni filtriranja k=100 - max. filtriranje k=0 )()( nXnY = - vhod direktno na izhod, ni vpliva prejšnje vrednost izhoda k=99 )(01.0)1(99.0)( nXnYnY +−= - max filtriranje, vpliv vhodnega signala najmanjši e opravimo z-transformacijo dobimo : ( )
100100
)()(100
)( 1 kzXzzY
kzY
−⋅+⋅= −
kzkz
zkk
zHzXzY
−⋅−⋅=
⋅−−== − 100
)100(100
100)(
)()(
1
- 64 -
Za k=1, dobimo naslednjo prenosno funkcijo :
1100
99)(
−⋅⋅=zz
zH ,
Prenosna funkcija ima pol pri z=0.01. Za k=99, dobimo naslednjo prenosno funkcijo:
99100
)(−⋅
=zz
zH
Na naslednji sliki so prikazane frekvenne karakteristike filtra za razline vrednosti koeficienta k.
Slika 6.9 Frekvenna karakteristika t.i. «empirinega» filtra za
razline koeficiente glajenja(k=1 – modra, k=50 – zelena, k=99 – rdea)
Frekvenca vzorenja oz. as takta ni zajet v formuli (ni upoštevan). Zato ne moremo doloiti k pri katerem je mejna frekvenca npr. 2,5 ali 10 Hz. Pri nekaterih PLC-jih je možno nastaviti as vzorenja vhoda na modulu, primer takega PLC-ja je PLC – 5, Allen Bradley, pri kateremu je branje vhodne vrednosti opravljeno s funkcijo BTR katera je asinhrona glede na as takta. Pri AB modulu 1771-IFE, je ta as nastavljiv v mejah 25 do 3000 mS.
Ker ne vemo natanno za frekvenco signala motnje, k doloimo empirino za najboljši rezultat filtriranja. Probleme lahko priakujemo pri kompliciranem osnovnem programu PLC-ja, kateri ima as izvajanja enega cikla spremenljiv, odvisno od vejanja v programu. e so te razlike bistvene za razline pogoje (= razline poti) v programu, je lahko tako nartovan filter neuporaben pri doloenih pogojih. V primerih kjer je as vzorenja T manjši kot as obdelave enega takta PLC-ja, bo informacija katero dobimo kot analogno vrednost, ustrezala vhodni spremenljivki. e je as veji kot je as obdelave takta, dobimo allias pogrešek, ker v vsakem taktu ne bo nove informacije o vhodni vrednosti. Podoben filter najdemo tudi v literaturi (prironiki firme SIEMENS in ALLEN BRADLEY): (6.9)
100)100()1()(
)(−⋅−−⋅= unYnXu
nY
- 65 -
Pri tem za u=1
za u=99
e opravimo z-transformacijo dobimo :
100100
)()(100
)( 1 −⋅⋅−⋅= − uzzYzX
uzY
( ) 100100100100)(
)()(
1 −+⋅⋅=
−⋅+== − uz
zuuz
uzH
zXzY
Za u=1, dobimo prenosno funkcijo :
99100
)(−⋅
=zz
zH
Ker je koren z=0.99, je sistem na meji stabilnosti in filterlahko postane nestabilen. Za u=99, dobimo prenosno funkcijo
1100
99)(
−⋅⋅
=zz
zH ;
Ko je koren pri z=0.01, pri izhodišu, ni nevarnosti za oscilacije, je pa efekt filtriranja skoraj neopazen. S pomojo MATLAB-a se lahko prepriamo, da so frekvenne karakteristike takšne, kot smo nartovali. e v enabo (prvega) empirinega filtra vstavimo substitucijo : u=100- k, se prepriamo da gre za isto enabo ( isti filter). Razlika je le v tem da je efekt filtriranja najbolj izražen pri k=99 oz. u=1. 7. Realizacija digitalnega filtra v PLC krmilniku PLC krmilnik je mikroraunalniško vezje, ki ima splošno drugane lastnosti, kot so lastnosti vezij, ki so namenjena za digitalno obdelavo signalov. Zato bomo v tem poglavju podali kratek opis krmilnika in druge opreme, s katero smo nartali in izvedli filter, opis signalov, ki smo jih uporabili pri analizi in nain realizacije filtrov s PLC krmilnikom. 7.1 Opis strojne opreme dejanskega PLC krmilnika Strojna oprema s katero je testiran digitalni filter je sestavljena iz Siemens komponent. Uporabili smo: - PLC krmilnik S7-315-DP2 (CPU) - HMI panel Siemens OP 270 (human machine interface) in - napajalna enota Enote krmilnika in OP panel sta povezana s PROFIBUS-DP omrežjem.
)1(99.0)(01.0)( −+= nYnXnY
)1(1.0)(99.0)( −+= nYnXnY
- 66 -
Za potrebe simulacije in testiranje ni bil uporabljen OP panel, ampak je simuliran v osebnem raunalniku.
eprav je simulacija PLC krmilnika tudi možna, nam zaradi slabih karakteristik osebnega raunalnika daje bistveno drugae rezultate testiranja. Razlike so predvsem v asu odziva oz. asu takta simuliranega PLC krmilnika. S primerjavo realnega in simuliranega PLC-ja se prepriamo da je as takta simuliranega krmilnika približno 10 krat veji od asa takta realnega krmilnika.
7.2. Vhodni testni signal Ker v PLC konfiguraciji niso predvidene vhodno-izhodno enote, je kot vhodni signal uporabljen poasi spreminjajoi signal žagaste oblike, ki doseže maksimum v 5 sekundah (obmoje vrednosti 0- 1000). Signal je generiran s asovno bazo in števcem v FC2. Na sliki 7.2 je podan takšen signal, kjer je P=1000 in T=5 s.
Signal ima višje harmonske komponente in njegova sestava je naslednje oblike :
++++⋅−=n
nxxxxkaY
sin...
33sin
22sin
1sin
(7.1)
Iz tega lakho sklepamo da bo tudi vhodni signal pri prehodu preko filtra popaen, ker bodo nekatere harmonske frekvence izloene oz. slabljene. Na naslednji sliki je pokazano popaenje vhodnega signala pri eliptinem filtru 1. in 2. stopnje.
Slika 7.1 Oblika vhodnega signala na izhodu eliptinega filtra 1. in 2. stopnje
Iz slike je razvidno, da filter duši višje harmonske frekvence in s tem popai obliko signala.
Na sliki je filter 2. stopnje zaradi boljšeg razlikovanja prikazan z manjšim ojaanjem.
- 67 -
Slika 7.2 Vhodni testni signal pri simulaciji
7.3. Signal motnje Kot signal motnje, je v PLC-ju generiran pravokotni signal frekvence 15 Hz in amplitude 500 vrednosti. Signal je generiran s asovno bazo v FC8. Signal in motnja sta sešteta s pomojo funkcije FC9, na nain da je prepreena prekoraitev vrednosti z rezanjem. Za vsote veje od 1000, izhodna vrednost je 1000. Vrednost zgornje meje lahko spreminjamo, e je to potrebno. Na sliki 7.3 je prikazan signal motnje.
Slika 7.3 Signal motnje za simulacijo digitalnega filtra 7.4 Nizkoprepustni digitalni filter prve stopnje
Pri naslednjem PLC filtru tudi gre za empirini rekurzivni filter, ker ni izrauna koeficientov, ampak izberemo karakteristiko (oz. strmino) s izbiro koeficienta glajenja. Gre za nizkoprepustni IIR filter 1. stopnje. Iz naina realizacije, je razvidno kako se filter realizira v PLC-ju, tako da lahko nastavimo tudi izraunate koeficiente. Praktini PLC filter 1. stopnje se obiajno realizira na naslednji nain: e na zapisu trenutne izhodne vrednosti
( ) ( )( )nxSnySny ⋅−+−⋅⋅= 16)1(161
)( (7.2)
uporabimo z transformacijo :
( )[ ]XSZYSY ⋅−+⋅⋅= − 16161 1
Od tod sledi prenosna funkcija, ki je naslednja :
- 68 -
( ) ( )SzSz
zSS
zH−−⋅=
⋅−−= − 16
1616
161 (7.3)
Na naslednji sliki so prikazane frekvenne karakteristike filtra za razline vrednosti koeficienta S.
Slika 7.4 Frekvenna karakteristika nizkoprepustnega filtra za razline koeficiente glajenja S Matlab script za simulacijo je naslednji : %S=1 num1=[15 0]; den1=[16 -1]; %zplane(num1,den1); [H1,w] = freqz(num1,den1,512,1); %plot(w, 20*log10(abs(H))); %S=10 num2=[6 0]; den2=[16 -10]; %zplane(num2,den2); [H2,w] = freqz(num2,den2,512,1); %S=15 num3=[1 0]; den3=[16 -15]; %zplane(num3,den3); [H3,w] = freqz(num3,den3,512,1); plot(w, 20*log10(abs(H1)),w,20*log10(abs(H2)),w,20*log10(abs(H3))); text(0.22,-3,'S=1'); text(0.22,-12,'S=10');
- 69 -
text(0.22,-22,'S=15'); xlabel('Normirana frekvenca'); ylabel('Ojacanje (dB)') Source napisan za Siemens S7 v STL nainu je naslednji : FUNCTION "FILTER" : VOID TITLE =GLAJENJE //Nizkoprepustni filter 1. stopnje. // //Funkcija racuna novo izhodno vrednost tako da sesteje S/16 prejsnje vrednost k //(16-S)/16 trenutne vrednosti // //Funkcija po kateri racunamo novi izhod je : // //Out = ([S]/16)*[Prev_value]+((16-[S])/16)*[Input_value] //S = smoothing factor- koeficient glajenja // //X1 = initial value/previous output //X2 = new input from I/O table // //Vrednosti koeficienta glajenja S // //brez glajenja- vhod na izhod S=0 //minimalno glajenje S=1 //maximalno filtriranje S= 15 // VERSION : 0.1 VAR_INPUT Smooth_factor : REAL ; END_VAR VAR_OUTPUT OUT_smoothed : REAL ; END_VAR VAR_IN_OUT Input_value : REAL ; //x(n) CLK : BOOL ; Prev_value : REAL ; //y(n-1) Dummy_bit_1 : BOOL ; Dummy_real_1 : REAL ; Dummy_real_2 : REAL ; Calc_ON : BOOL ; END_VAR BEGIN NETWORK TITLE =timer //Timing function (Fs) //treba postaviti #CLK taksen da se dobije Fs dovolj velika,ali vse skupaj //poklicati iz OB35 U #CLK; //impulz ure za Fs FP #Dummy_bit_1; // pozitivni odvod Fs –Prednji rob pulza = #Calc_ON; // One-shot clock UN #Calc_ON; //Timng calculation,ce ni impulza ure,gre na konec bloka BEB ; NETWORK TITLE =formula
- 70 -
L #Smooth_factor; L 1.600000e+001; /R ; // [Smooth_factor]/16 L #Prev_value; *R ; // ([Smooth_factor]/16)*[Prev_value] T #Dummy_real_1; // L 1.600000e+001; L #Smooth_factor; -R ; // 16-[Smooth_factor] L 1.600000e+001; /R ; // (16-[Smooth_factor])/16 L #Input_value; *R ; // ((16-[Smooth_factor])/16)*[Input_value] T #Dummy_real_2; // L #Dummy_real_1; L #Dummy_real_2; +R ; // ([Smooth_factor]/16)*[Prev_value] + ((16-[Smooth_factor])/16)*[Input_value] T #OUT_smoothed; // Izhodna vrednost T #Prev_value; // shrani predhodno vrednost END_FUNCTION e si ogledamo klasino formulo digitalnega filtra 1. stopnje (slika 2.2),
1
121
1
112
1)(
azbzb
zazbb
zH+
+⋅=⋅+⋅+= −
−
, se prepriamo, da je v prejšnji formuli 16
161
Sb
−= , 02 =b ,
161S
a = . Za tako modificiran filter je potrebno napisati novi program v STL nainu :
FUNCTION "FILTER_1_STOPNJE_KOEF" : VOID TITLE =FILTER 1. STOPNJE // //Funkcija po kateri racunamo novi izhod je : // //Y(n)=Out =-a1*y(n-1)+b2*x(n)+b1*x(n-1) //Y(n)= Dummy_real_1+Dummy_real_2+Dummy_real_3 // VERSION : 0.1 VAR_INPUT b2 : REAL ; //stevec funkcije b1 : REAL ; //stevec funkcije a1 : REAL ; //imenovalec funkcije Input_value : REAL ; //x(n) - vhod CLK : BOOL ; END_VAR VAR_OUTPUT OUT_smoothed : REAL ; //Y(n) - izhod END_VAR VAR_TEMP
- 71 -
X_n_1 : REAL ; //prejsnja vrednost vhoda Calc_ON : BOOL ; Prev_value : REAL ; //y(n-1) Dummy_bit_1 : BOOL ; //bit za pozitivni rob pulza ure Dummy_real_1 : REAL ; //prvi vmesni rezultat Dummy_real_2 : REAL ; //drugi vmesni rezultat Dummy_real_3 : REAL ; //tretji vmesni rezultat END_VAR BEGIN NETWORK TITLE =timer //Timing function (Fs) // postaviti #CLK taksen da se dobije Fs dovolj velika,ali vse skupaj //poklicati iz OB35 U #CLK; //impulz ure za Fs FP #Dummy_bit_1; // pozitivni odvod Fs = #Calc_ON; // One-shot clock UN #Calc_ON; //Timng calculation BEB ; NETWORK TITLE =formula L #a1; L #Prev_value; *R ; //=a1*y(n-1) T #Dummy_real_1; // L #b2; L #Input_value; *R ; T #Dummy_real_2; // b2*x(n) L #b1; L #X_n_1; *R ; T #Dummy_real_3; //b1*x(n-1) // izracun izhodne vrednosti L #Dummy_real_2; L #Dummy_real_3; +R ; L #Dummy_real_1; -R ; T #OUT_smoothed; // Izhodna vrednost T #Prev_value; // shrani predhodno vrednost L #Input_value; // vhodna vrednost bo x(n-1) v naslednjem ciklu T #X_n_1; END_FUNCTION
- 72 -
Prikazan je tekstualni nain prikaza funkcije, prikaz v okolju S7 je prikazan v prilogi 6.2. e pokliemo takšno funkcijo, dobili bomo naslednjo «masko» za vnos spremenljivk, oz. za branje izhodne vrednosti :
Slika 7.5 – Funkcija digitalnega filtra prikazana v LAD nainu editorja S7
Vrednosti spremenljivk b2, b1, a1, naslovi spremenljivk Input_value, CLK in OUT_smoothed, so podani kot primer, pri dejanskem klicu funkcije bodo na teh mestih simboli «???». e vnesemo napaen vrsto spremenljivke (BIT,BYTE,WORD ali REAL), editor avtomatsko zavrže takšen vnos in vnos obarva v rdee . 7.5. Digitalni filter 2. stopnje Vse lastnosti opisane pri situ 1. stopnje, lahko razširimo tudi na filter 2. stopnje, razen doloanja stopnje glajenja s koeficientom glajenja. Ker je filter 2. stopnje bolj splošen primer sita, ga bomo definirali le kot filter, doloen s koeficienti prenosne funkcije. Razlika je tudi v tem da je klic funkcije oz. funkcijskega bloka možen samo iz OB35 (asinhrona prekinitev), ker dobimo drugae v primeru ve sit, nestabilne rešitve zaradi prekrivanja vmesnih rezultatov. Razlika je tudi v preslikavi spremenljivk na koncu izrauna oz. takta, ker je spremenljivk ve, je procedura nekoliko bolj komplicirana. Maska za vnos koeficientov, vhodnih in izhodnih spremenljivk je prikazana tudi na sliki 7.10, pri obravnavi impulznega odziva. Script v S7 STL editorju je naslednji : FUNCTION_BLOCK "IIR_2_ST_ojacanje_sys" TITLE = //Osnovna formula IIR filtera 2. stopnje- kanonina struktura ,je : // //y(n)=b2*x(n)+b1*x(n-1)+b0*x(n-2)- a0*y(n-2)-a1*y(n-1) AUTHOR : SANDRO VERSION : 0.1 VAR_INPUT Smooth_factor : REAL ; Input_value : REAL ; //vhodna vrednost x(n) b0 : REAL ; //koeficient
- 73 -
b1 : REAL ; //koeficient b2 : REAL ; //koeficient a0 : REAL ; //koeficient a1 : REAL ; //koeficient a2 : REAL ; //koeficient GAIN : REAL ; END_VAR VAR_OUTPUT OUT_smoothed : REAL ; //y(n) END_VAR VAR D_r_1 : REAL ; D_r_2 : REAL ; Prev_value : REAL ; //y(n-1) D_r_3 : REAL ; D_r_4 : REAL ; D_r_5 : REAL ; prev_prev_val : REAL ; //y(n-2) prev_input : REAL ; //x(n-1) prev_prev_in : REAL ; //x(n-2) med_var : REAL ; END_VAR VAR_TEMP probni : REAL ; END_VAR BEGIN NETWORK TITLE =timer //Timing function (Fs) // // U #clk //impulz ure za Fs // FP #Dummy_bit_1 // pozitivni odvod Fs // = #Calc_ON // One-shot clock // UN #Calc_ON //Timng calculation // BEB NETWORK TITLE =formula //This network apply the smoothing formula L #b2; L #Input_value; //x(n) *R ; T #D_r_1; L #b1; L #prev_input; //x(n-1) *R ; T #D_r_2; L #b0; L #prev_prev_in; //x(n-2) *R ; T #D_r_3;
- 74 -
L #a0; L #prev_prev_val; //y(n-2) *R ; T #D_r_4; L #a1; L #Prev_value; //y(n-1) *R ; // T #D_r_5; // dummy real 5 L #D_r_1; L #D_r_2; +R ; T #med_var; L #D_r_3; +R ; T #med_var; L #D_r_4; -R ; T #med_var; L #D_r_5; -R ; T #med_var; L #GAIN; *R ; T #OUT_smoothed; NETWORK TITLE =updating //y(n-1) =>> y(n-2) //y(n) =>> y(n-1) //x(n-1) =>> x(n-2) //x(n) =>> x(n-1) L #Prev_value; //y(n-1) T #prev_prev_val; //y(n-2) L #OUT_smoothed; //y(n) T #Prev_value; //y(n-1) L #prev_input; //x(n-1) T #prev_prev_in; //x(n-2) L #Input_value; //x(n) T #prev_input; END_FUNCTION_BLOCK Opozorimo, da so spremenljivke katere so uporabljene v programu In, OUT, GAIN, koeficienti ax in bx in tudi vmesni rezultati #D_r_1-5; spremenljivke tipa REAL, torej s plavajoo vejco. Ker je funkcija po kateri raunamo izhodno vrednost klicana iz OB35, je v funkcijskem bloku klic s timer funkcijo preskoen, (oz. je ohranjen kot komentar, s «//»).
- 75 -
V delu funkcijskega bloka «formula» je dejanski izraun delnih rezultatov ter seštevanje za izhodno vrednost. V ta namen so uporabljene zaasne spremenljivke D_r_1 do D_r_5. Spremenljivke so shranjene v pripadajoi podatkovni blok (DB). Na koncu funkcijskega bloka, je preslikava spremenljivk. Vrstni red je pomemben, sicer izgubimo spremenljivko katera je še potrebna. Rezultate simulacije (in tudi izhod dejanskega PLC-ja) si bomo ogledali v asovnem prostoru. Na sliki 7.6 so prikazani rezultati simulacije pri koeficientu glajenja S=12: vhodni, vhodni s superponirano motnjo in izhodni signal. Oitno je, da filter deluje, eprav je izhodni signal še dale od (priakovanega) vhodnega originala. Oitno je tudi da pravokotni signal ni enako širok. To izhaja iz dejstva, da operacijski panel (kateri je tudi simuliran) bere podatke iz PLC-ja vsakih 100 mS.
Slika 7.6 Rezultati simulacije IIR sita
Ena od pomembnih karakteristika filtra je stopnini odziv. Na naslednji sliki je prikazan stopnini odziv eliptinega filtra 1. in 2. stopnje. Pri tem je stopnica (stopnini signal ) generirana interno v programu.
- 76 -
Slika 7.7 Stopnini odziv rekurzivnega filtra (Cauer) 1. in 2. stopnje Na sliki 7.7 vidimo prenihaj kateri je posebno izražen pri filtru 2. stopnje. Za razliko od
prejšnje slike, takrat smo uporabili na X osi namesto asa, število odtipkov. Še ena pomembna karakteristika filtra, tudi najbolj pomembna, je impulzni odziv, oz. odziv
na Dirac-ovo funkcijo. V PLC okolju je to analogni signal kateri ima vrednost X v enem taktu, v ostalih taktih pa je vrednost ni. Za potrebe analize je signal generiran programsko, v FB4. Na naslednji sliki je prikazan impulzni odziv eliptinega filtra 2. stopnje realiziranega v PLC-ju, odziv pa je posnet s HMI panelom Siemens OP 270 vsakih 100 ms. Kot v prejšnjem primeru, smo tudi pri impulznem odzivu na asovni osi oznaili število odtipkov.
Slika 7.7a Impulzni odziv rekurzivnega filtra (Cauer) 2. stopnje
- 77 -
Iz dosedaj prikazanih rezultatov in ustreznih slik lahko sklepamo da: - filter deluje in - je filter stabilen
Ker nismo imeli možnosti meritve frekvenne karakteristike filtra realiziranega s PLC krmilnikaom, da bi tudi ugotovili, ali se karakteristika dejanskega filtra ujema s simulacijskimi rezultati, ki smo jih dobili s pomojo MATLAB-a, smo primerjavo izvedli na osnovi primerjave impulznih odzivov simuliranega in izvedenega filtra. Zato smo posneli 25 vzorcev impulznega odziva. Za generiranje in snemanje impulznega odziva PLC krmilnika smo kreirali poseben funkcijski blok (FB5), pri katerem smo rono prožili vsak posamezni takt. Pri tem v prvem taktu nastavimo vhodno vrednost na 1000.0 in za vse ostale pa 0.0. (e bi pustili vhodno vrednost naprej na 1000.0, bi dobili stopnini odziv).
Ker je v našem primeru frekvenca vzorenja bistveno veja od mejne frekvence filtra, nam ta nain podaja realne rezultate in ni nevarnosti za pogrešek prekrivanja spektra. Frekvenna karakteristika in impulzni odziv takšnega filtra sta podana na sliki 7.8 :
V 7.1 tabeli so podani rezultati impulznega odziva nizkoprepustnega eliptinega filtra 2.
stopnje za naslednje specifikacije : Fs= 50Hz
Fm=3 Hz Apass= 1dB Astop= 40 dB S pomojo MATLAB-a smo dobili vrednosti koeficientov : b2= 0.03679945320611 b1=0.04153456075581 b0= 0.03679945320611 a2=1.0 a1=- 1.53728291988207 a0= 0.66646479475237 Matlab script za ta primer je naslednji : % Frekvenca vzorcenja Fs=50 Hz % Mejna frekvenca Fm=3 Hz % Apass = 1dB % Astop = 40 dB format long fs=50 fm=3 T=1/fs [b,a]=ellip(2,1,40,0.12) freqz(b,a,512,100) xlabel('Frekvenca (Hz)') %impulzni odziv za 40 tock -pomnozen s 1000 [y,t]=impz(b,a,40);stem(t,1000*y) grid %drugaci nacin prikaza frekvencne karakteristike [H,W]=freqz(b,a,100); hz=W/(2*pi*T);
- 78 -
plot(hz,20*log10(abs(H))); axis([ 0 50 -70 5]) xlabel('Frekvenca (Hz)') grid
Slika 7.8 – Frekvenna karakteristika nizkoprepustnega eliptinega filtra 2. stopnje z mejno frekvenco 3 Hz
- 79 -
Slika 7.9 – Impulzni odziv nizkoprepustnega eliptinega filtra 2.stopnje z mejno frekvenco 3Hz
- 80 -
Odtipek MATLAB X 1000 PLC-precizno ODSTOPANJE (%) 0 36,79940 36,799400 0 1 98,10570 98,105700 0 2 163,09010 163,090000 6,13158E-05 3 185,33170 185,332000 -0,000161872 4 176,21300 176,213000 0 5 147,37200 147,373000 -0,000678555 6 109,11370 109,114000 -0,000274943 7 69,51980 69,519800 0 8 34,15117 34,151200 -8,78447E-05 9 6,16752 6,167530 -0,00016214
10 -13,27933 -13,279300 0,000225915 11 -24,52450 -24,524500 0 12 -28,85090 -28,850900 0 13 -28,00700 -28,007300 -0,001071161 14 -23,82700 -23,827000 0 15 -17,96300 -17,963000 0 16 -11,73400 -11,734300 -0,002556673 17 -6,06728 -6,067280 0 18 -1,50661 -1,506620 -0,000663742 19 1,72754 1,727540 0 20 3,65982 3,659820 0 21 4,47484 4,474840 0 22 4,43995 4,439950 0 23 3,84314 3,843140 0 24 2,94489 2,948920 -0,13677921
Tabela 7.1. Rezultati primerjave impulznega odziva Matlab simulacije in odziva dejanskega PLC-ja z dvojno preciznostjo koeficientov
Ker je z transformiranka impulznega odziva prenosna funkcija H(z), lahko primerjanje
impulznega odziva razumemo kot primerjanje prenosnih funkcij. Zato lahko trdimo da sta dva filtra identina, e imata enaka impulzna odziva. Iz tabele 7.1 je razvidno da ima filter realiziran v PLC-ju enak impulzni odziv kot filter nartovan s MATLAB-om. To pomeni da ima tudi frekvenno karakteristiko enako kot na sliki 7.8, torej da deluje pravilno. Odstopanje katero se pojavi je zelo majhno in je posledica zaokroževanja, oziroma neenako število decimalnih mest v PLC-ju in MATLAB-u. Oglejmo še impulzni odziv in odstopanje pri realizaciji s PLC-jem, e pri vnosu spremenljivke skrajšamo : b2= 0.0367 b1=0.041534 b0= 0.0368 a2=1.0 a1=- 1.53 a0= 0.66 Takšne, okrajšane vrednosti dobimo s MATLAB-om, e ne zahtevamo dvojno natannost (format long). Impulzni odziv za tako skrajšane dolžine koeficientov je podan v naslednji tabeli.
- 81 -
Odtipek matlab X 1000 PLC Odstopanje (%) 0 36,79940 36,80000 -0,001630461 1 98,10570 97,83800 0,272868957 2 163,09010 162,10400 0,604635107 3 185,33170 183,44600 1,017472996 4 176,21300 173,68400 1,435194906 5 147,37200 144,66200 1,838883913 6 109,11370 106,70100 2,211179714 7 69,51980 67,77200 2,514103896 8 34,15117 33,27470 2,566442087 9 6,16752 6,17794 -0,168949594
10 -13,27933 -12,50900 5,80097038 11 -24,52450 -23,21630 5,334257579 12 -28,85090 -27,26490 5,497228856 13 -28,00700 -26,39260 5,764273217 14 -23,82700 -22,38580 6,048600327 15 -17,96300 -16,83120 6,300729277 16 -11,73400 -10,97710 6,450485768 17 -6,06728 -5,68634 6,27859601 18 -1,50661 -1,45523 3,410305255 19 1,72754 1,52648 11,63851488 20 3,65982 3,29597 9,941745769 21 4,47484 4,03535 9,821356741 22 4,43995 3,99875 9,937048841 23 3,84314 3,45476 10,1057989 24 2,94489 2,64760 10,09517497
Tabela 7.2 - Rezultati primerjave impulznega odziva Matlab simulacije in odziva dejanskega PLC- ja
Vidimo da odstopanje ni ve zanemarljivo. To je posledica rekurzivnega izrauna, pri katerem je napaka veja pri vsakem taktu.To pa je kvantizacijski pogrešek filtra, katerega se lahko izognemo pri vpisovanju koeficientov filtra, e ima filter konstantne koeficiente. e se vrednosti koeficientov spreminjajo med delovanjem filtra, npr.pri adaptivni vrsti filtra, moramo poskrbeti, da bodo vrednosti koeficientov vpisane dovolj natanno. Matlab script funkcijskeg bloka s katerim smo generirali impulzni odziv je podan v prilogi 6.3, »maska» za vnos v LAD editorju pa je podana na naslednji sliki :
- 82 -
Slika 7.10 – Del organizacijskega bloka OB1 rekurzivnega digitalnega filtra – vnos
koeficientov v skrajšani obliki in obliki dvojne natannosti 7.6. Digitalni filter tretje stopnje eprav dosežemo z digitalnim filtrom druge stopnje dobre rezultate, lahko s filtrom veje stopnje dosežemo veja dušenja oziroma bolj strmo upadanje amplitudne karakteristike. Pri tem ne smemo uporabiti filtra prevelike stopnje, glede na to da takšen filter moti delovanje PLC-ja ali ima prevelike asovne zakasnitve osnovnega programa PLC-ja. Zato si za primerjavo karakteristik vzamemo IIR filter 3. stopnje, za enake zahteve kot pri filtru 2. stopnje: - Fs= 50 Hz - Fm=3 Hz - Ap=1 dB - As=40 dB - Eliptini (Cauer) filter Koeficiente filtra dobimo z delno modificiranim MATLAB scriptom, ki smo ga uporabili pri filtru 2. stopnje, ali pa z FDA toolbox-om, ki je tudi del istega programskega paketa. b3= 0,0136 426 503 0127 b2=- 0,0018 096 880 4567 b1=- 0,0018 096 880 4567 b0= 0,0136 426 503 0127 a3= 1,00 a2= -2,5336 859 770 7381
- 83 -
a1= 2,2493 565 017 9860 a0= -0,6920 046 002 1359 Koreni so realni in konjugirano kompleksni in ležijo znotraj enotine krožnice, kar pomeni da filter lahko realiziramo in da je stabilen. (Lego polov lahko vidimo z uporabo inštrukcije zplane, vrednosti pa s inštrukcijo roots, ali oboje z FDA toolbox-om). e pri izraunu z MATLAB-om ispustimo inštrukcijo format long, bomo dobili koeficiente v skrajšani obliki : b3= 0,0136 b2= -2,5337 b1= -0,0018 b0= 0,0136 a3= 1,00 a2= -2,5337 a1= 2,2494 a0= -0,6920
Takšno krajšanje koeficientov, lahko razumemo kot kvantizacijo koeficientov (ne glede na uporabo inštrukcije format long, MATLAB vedno rauna z maksimalno preciznostjo). Ker je pri kvantizaciji najbolj obutljiva direktna struktura višje stopnje, bomo filter izvedli kot kaskadno vezavo filtrov prve in druge stopnje.
Za pretvorbo filtra višje stopnje v kaskadno strukturo ve filtrov 2 stopnje, lahko uporabimo FDA toolbox, kateri ima že implementirano to možnost, ali direktno iz MATLAB-a uporabimo inštrukcijo zp2sos, katera nam poda SOS matriko (second order structure).
Vsako prenosno funkcijo H(z) lahko izrazimo tudi na naslednji nain :
( ) ( ) ( ) ( )( ) ( ) ( ) ( )zH
pzpzpzzzzzzz
kzHL
kk
m
n ∏=
=−⋅⋅⋅⋅−⋅−−⋅⋅⋅⋅−⋅−
⋅=121
21 (7.4)
pri tem lahko ustrezne nile in pole v posamezne lene funkcije razvrstimo poljubno. Rezultirajoa funkcija, in s tem delovanje filtra, bo enako. Razlika bo nastala le pri krajšanju koeficientov – kvantizaciji.
SOS matrika je podana v obliki :
⋅⋅⋅⋅⋅⋅=
LLLLL aabbb
aabbb
aabbb
SOS
01012
0212021222
0111011121
1
11
(7.5)
V prvi vrstici so podani koeficienti prve strukture (števec in imenovalec), v drugi druge itn.
Pri tem je L število struktur 2. stopnje. e poznamo SOS matriko, lahko enabo 6.13 preoblikujemo v naslednjo obliko :
∏=
−−
−−
⋅+⋅+⋅+⋅+⋅=
L
k kk
kkk
zazazbzbb
gzH1
20
11
20
112
1)( (7.6)
- 84 -
Za filter, ki ima 2 strukturi, ki je sestavljen iz 2 filtrov, je SOS matrika naslednja :
⋅⋅⋅⋅⋅⋅= bbbbb
aaaaa
aabbb
aabbb
SOS 01012
01012
1
1
(7.7)
in prenosna funkcija 20
11
20
112
20
11
20
112
11)( −−
−−
−−
−−
⋅+⋅+⋅+⋅+⋅
⋅+⋅+⋅+⋅+⋅=
zazazbzbb
zazazbzbb
gzHbb
bbb
aa
aaa . (7.8)
Pri filtru 1. stopnje sta b0 =0 in a0=0. To lahko realiziramo v prvi ali drugi strukturi. Za filter dobimo s pomojo MATLAB-a naslednjo frekvenno karakteristiko :
Slika 7.11 – Frekvenna karakteristika nizkoprepustnega eliptinega filtra 3. stopnje z mejno frekvenco 3 Hz
S pomojo FDA toolboxa, dobimo naslednje vrednosti koeficientov struktur 1. in 2. stopnje :
−−−
=845622651,0715348626,100,100,1132649302,100,1
00,0818337350,000,100,000,100,1SOS
in ojaanje g = 0,013642650301 SOS matrika nam direktno podaja vrednosti koeficientov posamezne strukture : prva struktura (a) :
b2a = 1,00 b1a = 1,00 b0a = 0,00 a1a = -0,818337350 a0a = 0,00
- 85 -
druga struktura (b) : b2b = 1,00 b1b = -1,132649302 b0b = 1,00 a1b = -1,715348626 a0b = 0,8456226513
Ojaanje bomo uporabili pri prvi strukturi, ker ima manj koeficientov razlinih od ni in je torej manj množenj.
Na sliki 6.22 je prikazan impulzni odziv realiziranega filtra, v tabeli 7.3 pa je podana primerjava rezultatov dobljenih z MATLAB-om in z dejanskim PLC-jem.
Slika 7.12 – Impulzni odziv eliptinega filtra 3.stopnje z mejno frekvenco 3Hz
- 86 -
Odtipek št. MATLAB IZ PLC-JA ODSTOPANJE %
0 13,642650301273000 13,6426 0,000368706 1 32,756503712783000 32,7564 0,000316617 2 50,497821912436000 50,4977 0,000241421 3 77,347995718632000 77,3478 0,000253036 4 105,0555793178170 105,055 0,000551439 5 127,13935612429400 127,139 0,000280105 6 139,34892221216300 139,349 -5,58223E-05 7 139,83616962670000 139,783 0,0380228 8 128,70340523262500 128,703 0,000314858 9 108,10092058526500 108,101 -7,34635E-05
10 81,12485120469300 81,1248 6,31184E-05 11 51,45073780478000 51,4507 7,34776E-05 12 22,68763570368100 22,6877 -0,000283398 13 -2,10893694285100 -2,10885 0,004122591 14 -20,77181759385600 -20,7717 0,000566122 15 -32,18556365668600 -32,1855 0,00019778 16 -36,28428240826100 -36,2843 -4,84831E-05 17 -33,91036398052200 -33,9104 -0,00010622 18 -26,57448525769500 -26,5746 -0,000431776 19 -16,16379328939600 -16,164 -0,00127885 20 -4,64461306675500 -4,64483 -0,004670642 21 6,20047648642800 6,20026 0,003491448 22 14,97203161171800 14,9718 0,001546963 23 20,77325083551400 20,7731 0,000726105 24 23,24621594135100 23,2461 0,000498754 25 22,53287927 22,5329 -9,19983E-05 Tabela 7.3 - Rezultati primerjave impulznega odziva Matlab simulacije in odziva dejanskega PLC-ja digitalnega filtra tretje stopnje
- 87 -
Slika 7.13 – Del organizacijskega bloka OB1 digitalnega filtra – vnos koeficientov v prvo in drugo strukturo druge stopnje. Na sliki 6.23 je prikazana maska za vnos koeficientov digitalnega filtra. V tem primeru je izhod iz prve strukture vhod v drugo strukturo – MD 828. (MD je marker double word, del pomnilniškega prostora dolžine 32 bitov, dvojna dolžina besede). Iz rezultatov, prikazanih v tabeli 7.3, lahko sklepamo, da filter deluje, kakor je nartovan. Majhna odstopanja glede na simulacijske rezultate z MATLAB-om so posledica zaokroževanja znotraj PLC-ja. 7.7. Digitalni filter etrte stopnje realiziran v direktni obliki V naslednjem poglavju si bomo ogledali obnašanje rekurzivnega filtra etrte stopnje realiziranega v direktni obliki. V ta namen smo kreirali poseben funkcijski blok (FB), s katerem smo analizirali obnašanje takšnega filtra. Funkcijski blok je podan v prilogi 6.5. Za analizo smo zahtevali enake karakteristike filtra kot pri 2. in 3. stopnji : - Fs= 50 Hz - Fm=3 Hz - Ap=1 dB - As=40 dB - Eliptini (Cauer) filter
Blokovna shema filtra je podana na sliki 7.13a
- 88 -
Slika 7.13a – blokovna shema rekurzivnega filtra 4. stopnje Koeficiente filtra dobimo z delno modificiranim MATLAB scriptom, ki smo ga uporabili pri filtru 2. stopnje, ali pa z FDA toolbox-om, ki je tudi del istega programskega paketa. b4= 0,0128 150 304 b3=-0,0308 830 053 b2= 0,0416 358 137 b1=-0,0308 830 053 b0= 0,0128 150 304 a4= 1,00 a3=-3,5033 975 914 a2= 4,7510 732 531 a1=-2,9436 272 013 a0= 0,7021 224 885 Za filter dobimo s pomojo MATLAB-a naslednjo frekvenno karakteristiko :
- 89 -
Slika 7.14 - Frekvenna karakteristika nizkoprepustnega eliptinega filtra 4. stopnje z mejno
frekvenco 3 Hz Iz diagrama vidimo, da je frekvenna karakteristika bolj strma, kot pri 2. in 3. stopnji, kar je tudi priakovano. Analizo impulznega odziva bomo nadaljevali s skrajšanimi koeficienti. b4= 0,0128 b3= -0,0309 b2= 0,0416 b1= -0,0309 b0= 0,0128 a4= 1,00 a3=-3,5034 a2= 4,7511 a1=-2,9436 a0= 0,7020 V naslednji tabeli je podana primerjava impulznih odzivov dobljenih z MATLAB-om in z dejanskim PLC -jem.
- 90 -
Odtipek št. MATLAB IZ PLC-JA ODSTOPANJE % 0 12,81503050 12,8 0,1172 1 14,01314165 13,94352 0,4963 2 29,84427179 29,6356 0,6992 3 44,81855444 44,35656 1,0308 4 60,29166857 59,45411 1,3891 5 76,30091953 74,99483 1,7117 6 91,83710540 90,02527 1,9728 7 105,23871650 102,9529 2,1720 8 114,63757670 111,9784 2,3196 9 118,38576890 115,5098 2,4293
10 115,40354470 112,502 2,5142 11 105,40486000 102,6774 2,5876
Tabela 7.4 - Rezultati primerjave impulznega odziva Matlab simulacije in odziva dejanskega PLC-ja digitalnega filtra etrte stopnje s koeficienti v skrajšani obliki Iz tabele 7.4 je razvidno da pri direktni obliki izvedbe filtra in vnosu koeficientov v skrajšani
obliki, odstopanje od teoretinih rezultatov, ni ve zanemarljivo. Zato bomo v naslednjem stavku analizirali obnašanje digitalnega filtra etrte stopnje v kaskadni obliki izvedbe.
7.8 Digitalni filter etrte stopnje realiziran v kaskadni obliki Za izvedbo filtra v kaskadni obliki, bomo koeficiente ustrezno preoblikovali v koeficiente struktur druge stopnje. Kot pri filtru 3. stopnje, jih lahko doloimo direktno iz MATLAB-a s pomojo inštrukcije zp2sos, ali z uporabo FDA toolbox-a (tudi del MATLAB-a). Tako preoblikovana struktura ima naslednje koeficiente : b2a= 1,00 b1a= -0,7544 775 512 b0a= 1,00 a1a= -1,7130 355 574 a0a= 0,7587 406 071 b2b= 1,00 b1b= -1,6557 273 910 b0b= 1,00 a1b= -1,7903 620 340 a0b= 0,9253 788 211 e uporabimo inštrukcijo zp2sos, je ojaanje že zajeto v koeficientih b! To pomeni, da moramo pri implementaciji tako nartovane strukture, za ojaanje nastaviti vrednost 1. Rezultati impulznih odzivov in primerjave z dejanskim PLC-jem so podani v naslednji tabeli. Analizirali smo impulzni odziv filtra z natanno vpisanimi koeficienti in koeficienti vpisani v skrajšani obliki.
- 91 -
MATLAB X 1000
PLC Odstopanje % PLC - skrajšano Odstopanje % - skrajšano
12,81503050 12,81503 3,88992E-06 12,8 0,117288043 14,01314165 14,01315 -5,95899E-05 13,95440 0,419189722 29,84427179 29,84430 -9,45304E-05 29,73171 0,377163795 44,81855444 44,81860 -0,000101644 44,65276 0,369923677 60,29166857 60,29180 -0,000217991 60,06856 0,370048756 76,30091953 76,30110 -0,000236518 76,01693 0,37219674 91,83710540 91,83740 -0,000320783 91,49329 0,37437526
105,23871650 105,23910 -0,000364398 104,84320 0,375827951 114,63757670 114,63810 -0,000456498 114,20630 0,376208826 118,38576890 118,36810 0,014924823 117,94130 0,375441128 115,40354470 115,40430 -0,000654489 114,97260 0,373424142 105,40486000 105,40600 -0,001081544 105,01520 0,369679349
Tabela 7.5 - Rezultati primerjave impulznega odziva Matlab simulacije in odziva dejanskega PLC-ja digitalnega filtra etrte stopnje v kaskadni obliki realizacije
Iz dosedaj prikazanih rezultatov filtrov etrte stopnje, v kaskadni in direktni obliki, lahko sklepamo da je vpliv nenatannega vnosa koeficientov in /ali realizacije v direktni obliki, zelo pomemben za obnašanje digitalnega sita in s tem tudi za odstopanje od teoretinega izrauna impulznega odziva in s tem tudi dejanske frekvenne karakteristike. Grafini prikaz odstopanja za filter etrte stopnje v kaskadni obliki, za natannen in skrajšani vnos koeficientov ter za direktno obliko, je podan na sliki 7.15.
Slika 7.15 – Odstopanje vrednosti impulznega odziva digitalnega filtra 4. stopnje za razline naine realizacije in preciznosti koeficientov.
- 92 -
7.9. Izvedba oscilatorja s PLC krmilnikom V procesni tehniki nam je vasih potreben oscilator majhne frekvence, npr. pri krmilju osi za navijanje kabla ali vrvi na boben. Takšen oscilator je po navadi izveden kot poseben modul (fizina enota). V naslednjem poglavju bomo realizirali oscilator programsko in pri tem uporabili nartovano rekurzivno strukturo, iz katere bomo s primernimi koeficienti naredili oscilator poljubne frekvence. Zahteve – vhodni podatki : - frekvenca vzorenja 50 Hz - frekvenca oscilatorja 3 Hz Pole lahko doloimo po poenostavljenem postopku. e je 25 Hz (1/2 Fs) pri 180 °, potem je za toko 3 Hz pri kotu °= 6.21ϕ (r je seveda 1, gre za oscilator).
Slika 7.16 : Lega polov za 3 Hz oscilator, pri frekvenci vzorenja 50 Hz
Tedaj je :
( ) ( ) 1859552791.11cos2)( 22 +⋅−=+⋅⋅−=−⋅⋅−= − zzrzrzerzzH jj ϕϕϕ in je a2=1 a1=-1,859552791 a0=1
e takšne koeficiente apliciramo na funkcijski blok IIR filtra (FB2/DB23), dobimo naslednje rezultate izhodnih vrednost za prvih 18 odtipkov :
- 93 -
Tabela 7.6 - Prikaz izhodnih vrednosti oscilatorja 3 Hz pri Fs = 50 Hz
Izhodne vrednosti obdelane s programom EXCEL izgledajo kot je prikazano na naslednji sliki:
0
200
400
600
800
1000
1200
1400
1600
1800
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Slika 7.17 : Graf izhodnih vrednosti oscilatorja 3 Hz pri Fs=50 Hz ( Ts = 20 mS) Tudi s pomojo OP panela se lahko prepriamo, da oscilator dela z nartovano frekvenco. Seveda, zaradi zelo omejenih možnosti panela (interval branja vhodov je 100 mS), ni možno posneti natanno obliko izhodnega signala, ampak je razvidna frekvenca signala, v 5s imamo 15 period => 3 Hz. Na naslednji sliki je prikazan izgled signala posnet s panelom OP 270 :
ODTIPEK Številka : AMPLITUDA 1 36,7994 2 146,765 3 351,25 4 621,538 5 919,665 6 1203,76 7 1433,93 8 1577,84 9 1615,28
10 1540,99 11 1365,41 12 1113,19 13 819,765 14 526,338 15 274,123 16 98,5414 17 25,2533 18 61,6925
- 94 -
Slika 7.18 - Izhodni signal oscilatorja prikazan na OP panelu Siemens. Iz prikazanih rezultatov vidimo, da oscilator deluje in to z nartovano frekvenco. Oscilator v
takšni konfiguraciji obratuje samo s pozitivnimi vrednostmi. Iz tabele je tudi razvidno da je izhod filtra kvantiziran (vrednosti niso zvezne) na Fs/Fm vrednosti. e želimo bolj «goste» izhodne vrednosti oscilatorja, moramo izbrati vejo frekvenco vzorenja Fs glede na frekvenco oscilatorja Fm. To pomeni da mora biti kot polov zelo majhen. V bližini kotov 0 oz pi/2 se sreamo s težavami pri vpisovanju kota oz. koeficientov saj moramo vrednosti koeficientov zelo natanno vpisati.
e želimo simulirati filter s simulatorjem za PLC krmilnike, se sreamo z vrsto težav, ker simulator (PLCSIM – Siemens) ne obvlada zelo majhne periode. Tudi as enega takta je za red velikosti 10 krat veji kot pri dejanskemu krmilniku.V našem primeru smo oditali odtipke s pomojo simulatorja, dejansko delovanje krmilnika pa smo preverili brez simulatorja.
Sama metoda nartovanja, ki je bazirala z izbiro kota oz. asa vzorenja, nas opozori na pomembnost natannosti asovne baze katera krmili filter ali oscilator. Pri razlinih proizvajalcih je ta zadeva opravljena na razline naine, kakšen krat tudi ne najboljše. Pri nartovanju se moramo zavedati pomembnosti in omejitvi strojne opreme, katera je na razpolago.
Za dejansko strojno opremo (PLC krmilnike) je frekvenca vzorenja in seveda obdelave, omejena zaradi obdelave osnovnega programa in omejitev same strojne opreme. Mejna (uporabna) vrednost je doloena s Fs=2*Fm, tedaj bo izhodni signal oscilatorja prikazan s samo dvema vrednostima ( minimalno in maksimalno). 7.10. Digitalni filter s celoštevilno spremenljivko (tipa INTEGER) Dosedaj, smo vhodno spremenljivko obravnavali kot realno vrednost, torej vrednost s plavajoo vejco. Ker je izhodna vrednost analognega modula v naravi celo število, lahko filtriranje lahko opravimo s celoštevilno spremenljivko, in potem s ustrezno pretvorbo, preoblikujemo (filtriramo) spremenljivko v obliko s plavajoo vejco. Tudi analogne spremenljivke iz drugih virov so pogosto celoštevilne. Na naslednji sliki so prikazane dve možnosti obdelave analognega signala .
- 95 -
!"#$%
!"#$%
& "
& "
Slika 7.19. Varijante obdelave signala in filtriranja V prvem primeru, kateri smo do sedaj obravnavali, analogni signal (besedo ), s ustrezno funkcijo preoblikujemo v realno spremenljivko (skaliranje). Takšna funkcija je npr. FC105, katero najdemo, kot del S7 programskega paketa v knjižnici StandardLibrary/TI-S7 Converting blocks. V funkciji je vhodna spremenljivka že postavljena na vrednost 0-27 648. Nekoliko boljše, obstajajo tudi razline funkcije, katere imajo tudi druge možnosti. Takšne funkcije imajo tudi vhodni del nastavljiv, torej ni nujno da bo vhod 0-27 648. Pri funkciji FC 105, moramo podati spodnjo in zgornjo mejo v katero bo se preslikal vhodni signal 0-27 648, in izhodne spremenljivke, tipa REAL in WORD, v katere bo funkcija shranila rezultat konverzije in kodo napake. Po obdelavi, ko dobimo spremenljivko v formatu REAL, jo lahko filtriramo . V drugem primeru, vhodno vrednost najprej filtriramo kot celo število (tipa INTEGER) in potem preoblikujemo v spremenljivko s plavajoo vejco. Na naslednji sliki je podan impulzni odziv tako realiziranega filtra, obdelan z EXCEL-om.
- 96 -
-20
-10
0
10
20
30
40
50
60
70
1 3 5 7 9 11 13 15 17 19 21 23 25
Series1
Slika 7.20 Impulzni odziv digitalnega filtra 2. stopnje za celoštevilno spremenljivko- prvih 24 odtipkov Že iz samega diagrama impulznega odziva je razvidno, da je mono popaen v primerjavi s
identinim filtrom v realizaciji s realno spremenljivko. Pri temu zanemarimo skaliranje, oziroma ojaanje filtra kot sistema. Razlogov je ve, od zaokroževanja medrezultatov, do napak v procesu konverzije iz celoštevilne v realno spremenljivko. Konverzija je potrebna ker so vhodne in izhodne vrednosti ela števila, koeficienti filtra pa realna števila.
PLC krmilnik Siemens S7 ne dovoljuje matematine operacije med celimi števili in števili s plavajoo vejco (splošno – med razlinimi vrstami števil). Zaradi tega je že v samem bloku (FB7) opravljena konverzija iz celega števila v realno, potem je opravljen izraun in na koncu nazaj v celo število (s zaokroževanjem). Zaradi tako nerodnega izrauna izhodnega signala, je takšen filter skoraj neuporaben in tudi bolj poasen kot originalni s plavajoo vejco.
Uporaben celoštevilni filter najdemo le v primeru premikajoega povpreja – FIR filter, ker so vse vrednosti cela števila, izhodno vrednost nato zaokrožimo na celo število.
Programska koda S7 za ta primer je podana v prilogi 6.4.
- 97 -
8. ZAKLJUEK V našem prispevku smo prikazali možnosti realizacije digitalnih filtrov s PLC krmilnikom,
ki je v osnovi namensko mikroraunalniško vezje in ga uporabljamo predvsem za obdelavo razlinih digitalnih in analognih signalov v podroju avtomatizacije procesov.
Podali smo kratek pregled teorije digitalne obdelave signalov ter potrebne pri analizi in snovanju digitalnih filtrov. Predstavili smo tudi osnovne filtrske strukture in metode nartovanja filtrov, brez in z raunalniško opremo.
Ker pri nartovanju filtrov in njihovi izvedbi uporabljamo optimalne vrste filtrov, oziroma filtre optimirane glede na doloene lastnosti: prenihaj, strmino in podobno, smo podrobno analizirali takšne filtre. Nartali smo filtre razlinih vrst, rekurzivne in nerekurzivne, in primerjali njihove karakteristike pri enakih zahtevah in enakih stopnjah. Kakšen krat je potrebno nartovati spremenjen filter, filter katerega karakteristike se ne ujemajo s optimalnimi. V nalogi smo obravnavali tudi takšne primere, primere pri katerih smo uporabili drugane metode izrauna, brez MATLAB-a in bolj primerne izraunu na konkretnem primeru. V ta namen smo analizirali tudi delno modificirane filtre, pri katerih smo premaknili pole ali nile. V nalogi je tudi analiziran filter z zarezo, kateri je v osnovi FIR filter, ampak ga je mogoe spremeniti v pasovno nepropustni IIR filter. Pri teh primerih smo tudi pokazali kako spremeniti nartovani, optimalni filter v aplikacijo katera ustreza našim zahtevam.
Primerjava med FIR in IIR filtri je pokazala, da zahtevajo FIR filtri za enake zahteve vsaj 10-krat vejo stopnjo, pri IIR filtrih je stopnja bistveno manjša. Razen tega imajo FIR filtri tudi 10-krat vejo porabo pomnilniškega prostora za hranjenje vmesnih rezultatov in 10-krat vejo zakasnitev obdelave.
Glede na to, da nas pri aplikacijah v avtomatizaciji fazni potek ne moti, smo izbrali IIR filter kot rešitev. Med razlinimi IIR filtri smo izbrali eliptini filter, ker ima za podano strmino frekvenne karakteristike, najmanjšo stopnjo, najožji prehodni pas, oziroma, ne obstaja filter enake stopnje z ožjim prehodnim pasom, ne glede na prenihaje v prepustnem in zapornem podroju. Prenihaji niso pomembni, e filter nartujemo v doloenih mejah sistema.
Na kratko smo si ogledali stabilnost digitalnega sistema s uporabo Bilinearne transformacije ali odloanjem na podlagi lege polov. Pokazali smo kaj se zgodi ob premiku polov v bližino enotine krožnice. Vsi primeri so dokumentirani z MATLAB scriptom.
Ker v PLC krmilnik vpisujemo koeficiente z omejeno natannostjo (rono ali programsko), smo v kratkem opisali naine kvantizacije in njihove lastnosti - slabosti. Opisali smo posamezna odstopanja oziroma naine odstopanj do katerih pride v sistemu PLC-ja. Opisane so tudi motnje in nekateri naini za njihovo odpravo. Nekatere motnje sploh ne moremo odpraviti ali zelo težko. Nekatere motnje odpravimo na nain, ki je odvisen od upornosti in kapacitivnosti linije, torej se bo mejna frekvenca filtra spremenila ob vsaki spremembi karakteristik vhodne zanke. Nekateri signali pravzaprav sploh niso motnja, ampak so nezaželeni signali, ki motijo delovanje sistema. To so predvsem mehanski dogodki, ki se v PLC-ju pojavijo kot signali. Tukaj gre za mehanske vibracije ogrodja, valovanja površine tekoin in podobno. Takšne motnje so posebej nevarne, e se ujemajo z resonanno frekvenco mehanine konstrukcije ali e je frekvenca vzorenja zelo nizka. Splošno lahko z RC lenom na vhodu v enoto PLC-ja izvedemo le preprosti nizkoprepustni filter, LC filtre ali RC filtre višje stopnje ne moremo realizirati brez dodatne opreme.
Kot uvod v uporabo PLC krmilnika, so podane nekatere lastnosti PLC-ja, v glavnem tiste katere so pomembne za ciklino obdelavo, as trajanja urinih impulzov in odzivni as. Pokazali smo, da je ciklina prekinitev pri nekaterih aplikacijah zelo pomembna, oziroma, ne moremo vstaviti filter znotraj programske zanke, ker as enega takta ni konstanten ampak je odvisen od pogojev po katerih se program veja. Takšna odloanja znotraj programa lahko podaljšajo as izvajanja enega takta za red velikosti 10 krat.
Zaradi velike množice razlinih proizvajalcev PLC naprav, je nain programiranja krmilnikov delno unificiran z IEC normo, tako da smo nekatere oznabe IEC in Siemens prikazali tudi v tabeli. Obenem smo pokazali prikaz ene vrstice programa, ene operacije na ve nainov.
Filtri, s katerimi se pogosto sreamo v PLC aplikacijah, so empirini. To pomeni, da iz parametrov filtra, katere lahko poljubno nastavimo, ni mogoe sklepati o karakteristiki filtra. Takšni filtri so po pravilu nizkoprepustni. Pogosto se uporablja FIR filter kot premikajoe povpreje. Ta filter mora imeti vsaj stopnjo 100, da bi imel želeno dušenje. Druge vrste empirinih filtrov so rekurzivni,
- 98 -
torej IIR filtri. Takšni filtri so tudi nizkoprepustni in so nastavljivi s koeficientom dušenja. V nalogi smo analizirali karakteristike razlinih vrst, od katerih so nekateri identini – gre za razline vrednosti dušenja. V nadaljevanju smo filter prve stopnje, tako realiziran, preoblikovali v klasini IIR filter 1. stopnje, kateri ima definirano frekvenco vzorenja. Na enak nain smo realizirali tudi filter druge stopnje, pri kateremu je bistvena razlika nain preslikave vmesnih rezultatov – zaasnih spremenljivk. Oba tako realizirana filtra lahko s primernimi koeficienti nastavimo kot nizkoprepustni, visokoprepustni, pasovno zaporni in pasovno prepustni. Filtri so realizirani z uporabo funkcij programskega paketa S7 – FC. Takšne funkcije dovoljujejo kreiranje poljubnega bloka, ki je za uporabnika zelo ugoden, ima vhodne in izhode funkcije in se obnaša glede na zahteve. V funkciji so definirane zaasne spremenljivke potrebne za izraun izhodne vrednosti filtra – y(n-1), x(n-1) itn. Žal funkcije tipa FC nimajo pomnilnika takšnih vrednosti, tako da so te spremenljivke ob izhodu iz funkcije, izgubljene. e realiziramo samo en filter nas to ne moti, ampak e je filtrov ve, bomo v naslednji uporabi funkcije «prinesli» zaasne spremenljivke iz prejšnjega klica funkcije in bo prišlo do napake v izraunu, ker bo del izrauna opravljen z vrednostimi drugega filtra.
Zato smo kreirali modificiran filter z uporabo funkcijskega bloka – FB, ki ima lastnost, da mu je ob vsakem klicu pridružen razlien podatkovni blok (DB), v katerega so shranjene zaasne spremenljivke. V naši aplikaciji smo realizirali IIR filter 3. in 4. stopnje. Nartovali smo ga kot nizkoprepustni filter z mejno frekvenco 3 Hz in s frekvenco vzorenja 50 Hz. Ker je pri filtrih višje stopnje še bolj pomembna natannost koeficientov, so bolj obutljivi na kvantizacijo, smo filter 3. stopnje realizirali kot kaskadno vezavo dveh filtrov 2. stopnje. Ker smo potrebovali filter 3. stopnje, smo s koeficienti ustvarili prvo strukturo kot filter 1. stopnje. Filter 4. stopnje smo realizirali v direktni in kaskadni obliki. Rezultati analize kažejo da je pri kaskadni obliki filtra in natannem vnosu koeficientov, odstopanje minimalno. Veje odstopanje je pri kaskadni obliki in skrajšanem vnosu koeficientov. Najveje odstopanje smo dobili pri direktni obliki digitalnega filtra 4. stopnje in skrajšani obliki vpisanih koeficientov. Poleg direktne oblike in skrajšanega vnosa koeficientov, je veliko odstopanje posledica tudi majhne mejne frekvence glede na frekvenco vzorenja, ker je direktna oblika posebno obutljiva pri frekvencah okoli ni in pi [6] .
Ker je filter 2. stopnje, ki smoga izvedli z uporabo FB, splošna digitalna struktura, smo koeficiente tako preoblikovali, da se je struktura obnašala tudi kot oscilator tono doloene frekvence. To je druga mogoa uporaba opisanega bloka.
Pri nartovanju in izvedbi smo imeli na voljo PLC krmilnik SIEMENS S7-315-DP in operatorski panel OP270, povezana s PROFIBUS DP omrežjem. Operatorski panel ni namenjen za vizualizacijo hitrih sprememb kot so odzivi digitanega sita. Zato nam podajajo le omejene odgovore na vprašanja o obnašanju sita. Na podlagi generiranih grafov, katere smo dobili s operatorskim panelom OP270, smo sklepali, da filtri delujejo, oziroma da so stabilni. Enako smo ugotovili, da oscilator realiziran s funkcijskim blokom deluje z nartovano frekvenco. eprav operatorski panel podaja samo osnovne informacije o signalu, ker ima as vzorenja 100 ms, nam je dragoceno orodje v praksi, ker ima vsak PLC sistem nekakšno možnost vizualizacije analognih veliin. To možnost lahko prilagodimo našim potrebam. Ker nam uporaba OP270 ni podala odgovore o obnašanju sita glede na frekvenno karakteristiko, smo filter simulirali z MATLAB-om, poiskali impulzni odziv in nato posneli impulzni odziv filtra s PLC-jem. Klic funkcijskeg bloka smo izvedli s klicem oraganizacijskega bloka OB35, namen katerega je asinhrona (ciklina) prekinitev v natanno doloenih intervalih, ki doloajo tudi frekvenco vzorenja. Za analizo z impulznim odzivom smo funkcijski blok prožili rono, takt po taktu.
S primerjavo rezultatov smo se prepriali, da ima filter ustrezno frekvenno karakteristiko, saj imata dva sistema enaki frekvenni karakteristiki, e imata enaka impulzna odziva. Veja odstopanja se pojavijo pri vpisovanju koeficientov z manj decimalnimi mesti. Odstopanja so rezultat rekurzivnega izrauna izhodne vrednosti. Ne glede na število decimalnih mest pri vpisovanju koeficientov, ni bilo nevarnosti za nestabilnost izvedenih filtrov, pojavi se le doloen pogrešek. Nestabilnost bi se pojavila, e bi bila kvantizacijao < 3 bitov.
Poskusili smo realizirati tudi celoštevilni filter, filter pri kateremu so vse spremenljivke in koeficienti cela števila. Ker Siemens PLC ne dovoljuje operacije med razlinimi vrstami števil, smo morali spremenljivke ustrezno transformirati. Izkazalo pa se je, da se odziv filtra ne ujema z zahtevami in ni uporaben.
- 99 -
LITERATURA 1. Sanjit K.Mitra, Digital Signal Processing-A computer Based Approach, Mc.Graw Hill, 2002. 2. Ljubiša Stankovi, Digitalna obrada signala, Nauna knjiga Beograd, 1990. 3. Tine Zori, Dali onlagi, Teorija sistemov, Univerza v Mariboru, Tehniška fakulteta, Maribor1987. 4. Rudolf Babi, Aktivna elektrina sita, Fakulteta za elektrotehniko, raunalništvo in informatiko Maribor, Maribor 2001 5. Proakis J.G. and Manolakis D.G., Digital Signal Processing – Principles, Algorithms and Applications, Prentice-Hall, 1996. 6. Liljana Mili, Zoran Dobrosavljevi, Uvod u digitalnu obradu signala, Elektrotehniki fakultet Beograd 1999. 7. Davide Rocchesso, Introduction to sound processing, Universita di Verona, 2003. 8. SIEMENS S7-300 manual, programmable controller, hardware and instalation SIEMENS AG, 1998, EWA 4NEB 710 6084-002 01 9. Hans Berger, Automation with STEP7 in STL and SCL, MCD Verlag, Erlangen 2000. 10. Josef Weigmann, Gerhard Kilian, Decentralization with Profibus DP/DPV1, Siemens Aktiengesellscahft, Berlin 2003.
- 100 -
PRILOGE Priloga 3.1 – Primerjava razlinih vrst filtrov za enake zahteve – potrebna stopnja filtra % Specifikacija filtra Fs = 10;fs = Fs/2; % frekvenca vzorcenja Fpb = 2;fpb = Fpb/fs; % mejna frekvenca Fsb = 2.4;fsb = Fsb/fs; % Stopband frekvenca-zacetek zapornega podrocja Rpb = 0.5; % prenihaj v prehodnem podr. Rsb = 30; % slablenje v zapornem podrocju %---------------------------------------------------------------------- %Butterworth Filter [n,fn] = buttord(fpb,fsb,Rpb,Rsb); [b,a] = butter(n,fn); [H,w] = freqz(b,a,512,1); figure; % Izris amplitudne karakteristike %subplot(2,1,1); plot(w, 20*log10(abs(H))); grid on; title(['Butterworth nizkoprepustni filter, Amplitudna karakteristika,stopnja=',num2str(n)]); xlabel('f'); ylabel('|H(f)| dB'); % Izris lege poliv in nicel z = roots(b);%nicle p = roots(a);%poli figure; zplane(z,p); title('Lega polov in nicel Butterworth-evega nizkoprepustnega filtra'); %---------------------------------------------------------------------- %Chebyshev filter 1. vrste [n1,fn1] = cheb1ord(fpb,fsb,Rpb,Rsb); [b1,a1] = cheby1(n1,.1,fn1); [H1,w1] = freqz(b1,a1,512,1); figure; % Izris amplitudne karakteristike %subplot(2,1,1); plot(w1, 20*log10(abs(H1))); axis([0 0.5 -350 50]) grid on; title(['Chebyshev nizkoprepustni filter 1. vrste,amplitudna karakteristika ,stopnja=',num2str(n1)]); xlabel('f'); ylabel('|H(f)| dB'); % Izris lege poliv in nicel z = roots(b1);%zeros p = roots(a1);%poles figure; zplane(z,p); title('Lega polov in nicel Chebishev nizkoprepustnega filtra 1.vrste'); %----------------------------------------------------------------------
- 101 -
%Chebyshev filter 2.vrste [n2,fn2] = cheb2ord(fpb,fsb,Rpb,Rsb); [b2,a2] = cheby2(n2,30,fn2); [H2,w2] = freqz(b2,a2,512,1); figure; % Izris amplitudne karakteristike plot(w2, 20*log10(abs(H2))); grid on; title(['Chebyshev nizkoprepustni filter 2.vrste,amplitudna karakteristika,stopnja=',num2str(n2)]); xlabel('f'); ylabel('|H(f)| dB'); % Lega polov in nicel z = roots(b2);%nicle p = roots(a2);%poli figure; zplane(z,p); title('Lega polov in nicel Chebyshev nizkoprepustnega filtra 2 vrste'); %---------------------------------------------------------------------- %Elipticni (Cauer) filter [n3,fn3] = ellipord(fpb,fsb,Rpb,Rsb); [b3,a3] = ellip(n3,.1,30,fn3); [H3,w3] = freqz(b3,a3,512,1); figure; % Izris amplitudne karakteristike plot(w3, 20*log10(abs(H3))); grid on; title(['Elipticni nizkoprepustni filter,amplitudna karakteristika,stopnja=',num2str(n3)]); xlabel('f'); ylabel('|H(f)| dB'); % Lega polov in nicel z = roots(b3);%nicle p = roots(a3);%poli figure; zplane(z,p); title('Lega polov in nicel Elipticnega nizkoprepustnega filtra'); %---------------------------------------------------------------------- % Specifikacija filtra Kaiserovo okno Fs = 10;fs = Fs/2; %frekvenca vzorcenja Fpb = 2;fpb = Fpb/fs; %mejna frekvenca Fsb = 2.4;fsb = Fsb/fs; %Stopband frekvenca-zacetek zapornega podrocja Rpb = 0.09; %prenihaj v prehodnem podr. Rsb = 30; %slablenje v zapornem podrocju %Design f = [Fpb Fsb]; a =[1 0]; Gpb =1 -10^(-Rpb/20); % Odstopanje od amplitude v prehodnem podrocju (od 1) Gsb = 10^(-Rsb/20); % Min. stopband atten. dev = [Gpb Gsb];
- 102 -
[N,Wn,beta,ftype] = kaiserord(f,a,dev,Fs); h = fir1(N,Wn,kaiser(N+1,beta)); % Izracun frekvencnega odziva. figure; [H,w] = freqz(h,1,512,1); % Izris amplitudne karakteristike plot(w, 20*log10(abs(H))); grid on; title(['Kaiserovo okno: Amplitudna karakteristika, N=',num2str(N)]); xlabel('f'); ylabel('|H(f)| dB'); %Lega polov in nicel - oz. polov ni figure z = roots(h);%zeros den = [zeros(1,N-1) 1];%nicle p = roots(den);%poli zplane(z,p); title('Lega polov in nicel za FIR - Kaiser okno'); Priloga 3.2 – nizkoprepustni IIR filtri enake stopnje % *********************** Komparacija razlicnih IIR filtrov********** fs = 80; % frekvenca sempliranja 80 Hz fn = fs/2; T = 1/fs; %preracun parametrov,ce je podan prenihaj namesto slablenja (primer) %delta1=0.1; %delta2=0.05; %omegap=0.4*pi; %omegas=0.5*pi; %Rp=-20*log10(1-delta1); %Rs=-20*log10(delta2); %Wp=omegap/pi; %Ws=omegas/pi; N = 4; % Stopnja filtra wn = 10/fn; % 0.0 < wn < 1.0 in cut off freq 10 Hz Rp = 2; % Rp max. slabl. v prep. pasu Rs = 20; % Rs min. slablenje v zapornem pasu [B1,A1] = butter(N,wn); % filter koeficienti B ind A =plavi [B2,A2] = cheby1(N,Rp,wn);%=zeleni [B3,A3] = cheby2(N,Rs,wn);%=rdeci [B4,A4] = ellip(N,Rp,Rs,wn); [H1,wT] = freqz(B1,A1,100); % z-transform freq.odziva filtra [H2,wT] = freqz(B2,A2,100); % 100 pts [H3,wT] = freqz(B3,A3,100); [H4,wT] = freqz(B4,A4,100); hz = wT/(2*pi*T); % normirana frekv. filtra plot(hz,abs(H1),hz,abs(H2),hz,abs(H3),hz,abs(H4)),... axis([0 20 0 1.2])
- 103 -
title('Primerjava razlicnih IIR filtrov '); grid; gtext('Plava - Butter Zelena - cheby1 Rdeca - Cheby2 Plavo-Zel. - =ellip'),... xlabel('Frekvenca (Hz)'),ylabel('Ojacanje') PRILOGA 4.1– MATLAB script za analizo impulznega odziva digitalnega vezja za razline lege polov %ANALIZA IMPULZNEGA ODZIVA DIGITALNEGA VEZJA,V ODVISNOSTI OD LEGE POLOV %%prvi vzorec - z1=0.5,z2=0.6- stabilno vezje N=100 P1=[1 0 0] D1=[1 -1.1 0.3] x1=[1 zeros(1,N-1)]; y1=filter(P1,D1,x1); k1=0:1:N-1; subplot(2,2,1);stem(k1,y1); title('Impulzni odziv'); xlabel('Stevilo vzorcev'),ylabel('Amplituda') text(10.5,0.5,'z1=0.5,z2=0.6 '); subplot(2,2,2);zplane(P1,D1); title('Lega polov/nicel') %cetrti vzorec r=0.99 fi =pi/4 - stabilno vezje N=100 r=0.99; fi=pi/4 P4=[1 0 0] D4=[1 -2*r*cos(fi) r*r] x4=[1 zeros(1,N-1)]; y4=filter(P4,D4,x4); k4=0:1:N-1; subplot(2,2,3);stem(k4,y4); title('Impulzni odziv'); xlabel('Stevilo vzorcev'),ylabel('Amplituda') text(21.5,1.4,'r=0.99 fi =pi/4 ') subplot(2,2,4);zplane(P4,D4); %********************************************************************** % NESTABILNA VEZJA %% drugi vzorec r=1,fi=0.01 - nestabilno vezje %konjugirano-kompleksni pol okoli nicle N=100 P2=[1 0 0] D2=[1 -2*r*cos(0.01) r*r] x2=[1 zeros(1,N-1)]; y2=filter(P2,D2,x2); k2=0:1:N-1; subplot(4,2,1);stem(k2,y2); title('Impulzni odziv');
- 104 -
xlabel('Stevilo vzorcev'),ylabel('Amplituda'); text(21.5,1.4,'fi=0.01 ') subplot(4,2,2);zplane(P2,D2); %tretji vzorec r=1 fi=pi/4 - nestabilno vezje N=100 r=1; fi=pi/4 P3=[1 0 0] D3=[1 -2*r*cos(fi) r*r] x3=[1 zeros(1,N-1)]; y3=filter(P3,D3,x3); k3=0:1:N-1; subplot(4,2,3);stem(k3,y3); %title('Impulzni odziv'); %xlabel('Stevilo vzorcev'),ylabel('Amplituda'); text(21.5,1.4,'r=1 fi=pi/4 ') subplot(4,2,4);zplane(P3,D3); %zplane(P,D); %peti vzorec r=1 fi =pi/2 - nestabilno vezje N=100 r=1; fi=pi/2 P=[1 0 0] D=[1 -2*r*cos(fi) r*r] x=[1 zeros(1,N-1)]; y=filter(P,D,x); k=0:1:N-1; subplot(4,2,5);stem(k,y); subplot(4,2,6);zplane(P,D); %sesti vzorec,enkratni pol na obodu kroga ,z1=1,z2=0,4 - nestabilno vezje N=100 P6=[1 0 0] D6=[1 -1.4 0.4] x6=[1 zeros(1,N-1)]; y6=filter(P6,D6,x6); k6=0:1:N-1; subplot(4,2,7);stem(k6,y6); subplot(4,2,8);zplane(P6,D6);
- 105 -
Priloga 6.1 Sestavni deli takta as enega takta sestavljajo naslednji deli [8] : 1.as za izvajanje operativnega sistema 2.as potreben za transfer vhodne in izhodne slike analognih spremenljivk 3.as potreben za izvršitev uporabniškega programa 4.as potreben za obdelavo TIMER funkcij 5.as potreben za obdelavo informacij distribuirane periferije – PROFIBUS DP 6.Integrirane funkcije PLC-ja 7.as potreben za komunikacijo MPI ali PROFIBUS -FMS 8.as potreben za obdelavo prekinitev –procesne in dijagnostine prekinitve Dejanski as reakcije, kateri je odvisen od asa cilka, se nahaja med najkrajšim in najdolžjim asom, odvisno v kateri toki takta je spremenljivka prebrana in vpisana. Na naslednji sliki je podana nekoliko drugaa ponazoritev asa enega takta :
Na naslednji sliki so simbolino prikazani pogoji za najkrajši as reakcije:
- 106 -
Za ta primer je izraun asa naslednji : 1 X as branja vhodov + 1 X as procesiranja + 1 X as pisanja izhodov + 1 X as obdelavo TIMER funkcij + 1 X as zakasnitve vhodov in izhodov Temu asu ustreza vsota asa takta in zakasnitve vhodov/izhodov Na naslednji sliki so simbolino prikazani pogoji za najdaljši as reakcije:
- 107 -
Za ta primer je izraun asa naslednji : 2 X as branja vhodov + 2 X as procesiranja + 2 X as pisanja izhodov + 2 X as za obdelavo PROFIBUS-DP sistema vodila (pri CPU 3XX-2DP) + 1 X as obdelavo TIMER funkcij + 1 X as zakasnitve vhodov in izhodov Temu asu ustreza dvakratna vsota asa takta, dvakraten as vodila in zakasnitve vhodov/izhodov
- 110 -
PRLIOGA 6.3 – source code funkcijskega bloka rekurzivnega filtra 2. stopnje s katerim je generiran impulzni odziv FUNCTION_BLOCK FB 5 TITLE = //Osnovna formula IIR filtera 2. stopnje- kanonina struktura ,je : // //y(n)=b2*x(n)+b1*x(n-1)+b0*x(n-2)- a0*y(n-2)-a1*y(n-1) AUTHOR : SANDRO VERSION : 0.1 VAR_INPUT Smooth_factor : REAL ; Input_value : REAL ; //vhodna vrednost x(n) b0 : REAL ; //koeficient b1 : REAL ; //koeficient b2 : REAL ; //koeficient a0 : REAL ; //koeficient a1 : REAL ; //koeficient a2 : REAL ; //koeficient GAIN : REAL ; clk : BOOL ; END_VAR VAR_OUTPUT OUT_smoothed : REAL ; //y(n) END_VAR VAR D_r_1 : REAL ; D_r_2 : REAL ; Prev_value : REAL ; //y(n-1) D_r_3 : REAL ; D_r_4 : REAL ; D_r_5 : REAL ; prev_prev_val : REAL ; //y(n-2) prev_input : REAL ; //x(n-1) prev_prev_in : REAL ; //x(n-2) med_var : REAL ; Dummy_bit_1 : BOOL ; Calc_ON : BOOL ; END_VAR VAR_TEMP probni : REAL ; END_VAR BEGIN NETWORK TITLE = U #clk; //impulz ure za Fs FP #Dummy_bit_1; // pozitivni odvod Fs = #Calc_ON; // One-shot clock UN #Calc_ON; //Timng calculation BEB ; NETWORK
- 111 -
TITLE =timer //Timing function (Fs) // NETWORK TITLE =formula //This network apply the smoothing formula L #b2; L #Input_value; //x(n) *R ; T #D_r_1; L #b1; L #prev_input; //x(n-1) *R ; T #D_r_2; L #b0; L #prev_prev_in; //x(n-2) *R ; T #D_r_3; L #a0; L #prev_prev_val; //y(n-2) *R ; T #D_r_4; L #a1; L #Prev_value; //y(n-1) *R ; // T #D_r_5; // dummy real 5 L #D_r_1; L #D_r_2; +R ; T #med_var; L #D_r_3; +R ; T #med_var; L #D_r_4; -R ; T #med_var; L #D_r_5; -R ; T #med_var; L #GAIN;
- 112 -
*R ; T #OUT_smoothed; NETWORK TITLE =updating //y(n-1) =>> y(n-2) //y(n) =>> y(n-1) //x(n-1) =>> x(n-2) //x(n) =>> x(n-1) L #Prev_value; //y(n-1) T #prev_prev_val; //y(n-2) L #OUT_smoothed; //y(n) T #Prev_value; //y(n-1) L #prev_input; //x(n-1) T #prev_prev_in; //x(n-2) L #Input_value; //x(n) T #prev_input; END_FUNCTION_BLOCK Priloga 6.4 – Celoštevilni filter 2. stopnje FUNCTION_BLOCK "IIR_2_st_INTEGER" TITLE = //Osnovna formula IIR filtera 2. stopnje- kanonina struktura, je : // //y(n)=b2*x(n)+b1*x(n-1)+b0*x(n-2)- a0*y(n-2)-a1*y(n-1) AUTHOR : SANDRO VERSION : 0.1 VAR_INPUT Smooth_factor : REAL ; Input_value : INT ; //vhodna vrednost x(n) b0 : REAL ; //koeficient b1 : REAL ; //koeficient b2 : REAL ; //koeficient a0 : REAL ; //koeficient a1 : REAL ; //koeficient a2 : REAL ; //koeficient GAIN : REAL ; clk : BOOL ; END_VAR VAR_OUTPUT OUT_SMOOTHED_1 : INT ; //y(n)-IZHOD-REAL Input_value_R : REAL ; END_VAR
- 113 -
VAR D_r_1 : REAL ; D_r_2 : REAL ; Prev_value : REAL ; //y(n-1) D_r_3 : REAL ; D_r_4 : REAL ; D_r_5 : REAL ; prev_prev_val : REAL ; //y(n-2) prev_input : REAL ; //x(n-1) prev_prev_in : REAL ; //x(n-2) med_var : REAL ; Dummy_bit_1 : BOOL ; Calc_ON : BOOL ; Dint_dummy1 : DINT ; OUT_smoothed : REAL ; //y(n)-real END_VAR VAR_TEMP probni : REAL ; Dint_dummy2 : DINT ; END_VAR BEGIN NETWORK TITLE =timer //Timing function (Fs) U #clk; //impulz ure za Fs FP #Dummy_bit_1; // pozitivni odvod Fs = #Calc_ON; // One-shot clock UN #Calc_ON; //Timng calculation BEB ; NETWORK TITLE =converting Input_value (integer) to real // // U( ; L #Input_value; ITD ; T #Dint_dummy1; SET ; SAVE ; CLR ; U BIE; ) ; SPBNB _001; L #Dint_dummy1; DTR ; T #Input_value_R; _001: NOP 0; NETWORK TITLE =formula //This network apply the smoothing formula
- 114 -
L #b2; L #Input_value_R; //x(n) *R ; T #D_r_1; L #b1; L #prev_input; //x(n-1) *R ; T #D_r_2; L #b0; L #prev_prev_in; //x(n-2) *R ; T #D_r_3; L #a0; L #prev_prev_val; //y(n-2) *R ; T #D_r_4; L #a1; L #Prev_value; //y(n-1) *R ; // T #D_r_5; // dummy real 5 L #D_r_1; L #D_r_2; +R ; T #med_var; L #D_r_3; +R ; T #med_var; L #D_r_4; -R ; T #med_var; L #D_r_5; -R ; T #med_var; L #GAIN; *R ; T #OUT_smoothed; NETWORK TITLE =updating //y(n-1) =>> y(n-2) //y(n) =>> y(n-1) //x(n-1) =>> x(n-2) //x(n) =>> x(n-1)
- 115 -
L #Prev_value; //y(n-1) T #prev_prev_val; //y(n-2) L #OUT_smoothed; //y(n) T #Prev_value; //y(n-1) L #prev_input; //x(n-1) T #prev_prev_in; //x(n-2) L #Input_value; //x(n) T #prev_input; NETWORK TITLE =Conversion of OUTPUT data REAL to INTEGER U( ; L #OUT_smoothed; RND ; T #Dint_dummy2; UN OV; SAVE ; CLR ; U BIE; ) ; SPBNB _002; L LW 6; T #OUT_SMOOTHED_1; _002: NOP 0; END_FUNCTION_BLOCK
- 116 -
Priloga 6.5 - Rekurzivni filter 4. stopnje FUNCTION_BLOCK "Filter_4_STOPNJE" TITLE = //Osnovna formula IIR filtera 4. stopnje- kanonina struktura, je : // //y(n)=b4*x(n)+b3*x(n-1)+b2*x(n-2)+b1*x(n-3)+b0*x(n-4)- //a3*y(n-1)-a2*y(n-2)-a1*y(n-3)-a0*y(n-4) AUTHOR : SANDRO VERSION : 0.1 VAR_INPUT Smooth_factor : REAL ; Input_value : REAL ; //vhodna vrednost x(n) b0 : REAL ; //koeficient b1 : REAL ; //koeficient b2 : REAL ; //koeficient a0 : REAL ; //koeficient a1 : REAL ; //koeficient a2 : REAL ; //koeficient GAIN : REAL ; clk : BOOL ; b4 : REAL ; b3 : REAL ; a3 : REAL ; END_VAR VAR_OUTPUT OUT_smoothed : REAL ; //y(n) END_VAR VAR D_r_1 : REAL ; D_r_2 : REAL ; Prev_value : REAL ; //y(n-1) D_r_3 : REAL ; D_r_4 : REAL ; D_r_5 : REAL ; prev_prev_val : REAL ; //y(n-2) prev_input : REAL ; //x(n-1) prev_prev_in : REAL ; //x(n-2) med_var : REAL ; Dummy_bit_1 : BOOL ; Calc_ON : BOOL ; Prev_P_P_input : REAL ; //x(n-3) Prev_P_P_P_input : REAL ; //x(n-4) Prev_P_P_value : REAL ; //y(n-3) Prev_P_P_P_value : REAL ; //y(n-4) D_r_6 : REAL ; D_r_7 : REAL ; D_r_8 : REAL ; D_r_9 : REAL ; END_VAR VAR_TEMP probni : REAL ; END_VAR
- 117 -
BEGIN NETWORK TITLE = U #clk; //impulz ure za Fs FP #Dummy_bit_1; // pozitivni odvod Fs = #Calc_ON; // One-shot clock UN #Calc_ON; //Timng calculation BEB ; NETWORK TITLE =timer //Timing function (Fs) // NETWORK TITLE =formula //This network apply the smoothing formula L #b4; L #Input_value; //x(n) *R ; T #D_r_1; L #b3; L #prev_input; //x(n-1) *R ; T #D_r_2; L #b2; L #prev_prev_in; //x(n-2) *R ; T #D_r_3; L #b1; L #Prev_P_P_input; // x(n-3) *R ; T #D_r_4; L #b0; L #Prev_P_P_P_input; // x(n-4) *R ; T #D_r_5; L #a3; // y(n-1) L #Prev_value; *R ; T #D_r_6;
- 118 -
L #a2; L #prev_prev_val; //y(n-2) *R ; T #D_r_7; L #a1; L #Prev_P_P_value; //y(n-3) *R ; // T #D_r_8; // dummy real 8 L #a0; L #Prev_P_P_P_value; //y(n-4) *R ; T #D_r_9; L #D_r_1; L #D_r_2; +R ; T #med_var; L #D_r_3; +R ; T #med_var; L #D_r_4; +R ; T #med_var; L #D_r_5; +R ; T #med_var; L #D_r_6; -R ; T #med_var; L #D_r_7; -R ; T #med_var; L #D_r_8; -R ; T #med_var; L #D_r_9; -R ; T #med_var; L #GAIN; *R ;
- 119 -
T #OUT_smoothed; NETWORK TITLE =updating //y(n-3) =>> y(n-4) //y(n-2) =>> y)n-3) //y(n-1) =>> y(n-2) //y(n) =>> y(n-1) // //x(n-3) =>>x(n-4) //x(n-2) =>>x(n-3) //x(n-1) =>> x(n-2) //x(n) =>> x(n-1) // // //!!!!!!! zamenjal L #OUT_smoothed z #med_var L #Prev_P_P_value; // y(n-3) T #Prev_P_P_P_value; //y(n-4) L #prev_prev_val; //y(n-2) T #Prev_P_P_value; //y(n-3) L #Prev_value; //y(n-1) T #prev_prev_val; //y(n-2) L #med_var; //y(n) brez ojacanja T #Prev_value; //y(n-1) L #Prev_P_P_input; //x(n-3) T #Prev_P_P_P_input; //x(n-4) L #prev_prev_in; //x(n-2) T #Prev_P_P_input; //x(n-3) L #prev_input; //x(n-1) T #prev_prev_in; //x(n-2) L #Input_value; //x(n) T #prev_input; END_FUNCTION_BLOCK
- 120 -
Življenjepis Ime in priimek : Aleksandar Dodi Rojen : 7.3.1957 v Reki (Hrvaška) Šolanje : 1977. diplomiral na Pedagoški akademiji v Reki 1985. absolviral na Višji tehniški šoli v Mariboru 1996. diplomiral na Fakulteti za elektrotehniko, raunalništvo in informatiko v Mariboru Zaposlitev : 1977. - služenje vojaškega roka 1978. - Luka Rijeka – referent 1985. - Luka Rijeka –tehniški sodelavec v razvoju 1988. - Luka Rijeka - nadzorni inženir za žerjave 1990. - Luka Rijeka – vodja vzdrževanja za hladilnico 1996. - IPS Milano – PLC inženir za obdelavo vode – Assyut Egypt 1997. - Luka Rijeka – inženir v razvoju 1997. - IPS Milano – PLC inženir za obdelavo vode – Bandar Abbas, Iran 1997. - Prolab, Cremona – PLC inženir in vodja gradbiša v mlinu –
Tadmait in Ain Bessem, Alžirija 1998. - Luka uprava Rijeka - nadzorni inženir projekta modernizacije kontejnerskega terminala
2000. - Ses Enser Milano – PLC inženir v petrokemiji, Doha, Qatar 2000. - Luka uprava Rijeka – projektant in nadzorni inženir adaptacij industrijskih prostorov 2005. - Balaena inc. USA – projektant 1. faze modernizacije mlina –
Semarang, Indonesia 2005. - Luka uprava Rijeka – vodja projekta v modernizaciji luke Rijeka