|
|
|
| Software projekti | |
|
FAZI LOGIČKI KONTROLERI Sa razvojem mikroračunarske tehnike otvorene su velike mogućnosti na polju digitalnog upravljanja sistemima. Informacije dobijene merenjima se brzo obrađuju i moguće je ostvariti upravljanje složenim sistemima koje je vrlo teško matematički opisati - modelovati. Softver za upravljanje postaje raznovrstan, a ljudska kreativnost dolazi do izražaja. Jedan relativno nov pristup upravljanju je primena fazi regulatora. Suština je u formiranju programskog koda koji implementira znanje čoveka eksperta o nekim procesom. Automatsko upravljanje procesima i mašinama je do pojave mikroračunara bilo zasnovano na analognim regulatorima. Iako su digitalni upravljački algoritmi u odnosu na analogne sporiji, prednosti koje su omogućene upravljanjem na bazi softvera su višestruke.
Jedna velika prednost je i fleksibilnost u pogledu realizacije upravljanja pomoću softvera, koji se po potrebi može menjati kako bi se prilagodio eventualnim promenama u sistemu upravljanja. Danas se u literaturi i časopisima prezentuju savremene metode upravljanja koje u mnogim uslovima pokazuju dobre rezultate. Konkretno se to odnosi na primenu neuronskih mreža i fazi logike na upra-vljanje sistemima. Digitalno upravljanje Digitalno upravljanje otvara mogućnost primene nekih novih postupaka koje analogni regulator ne može (ili vrlo teško) da odradi: akviziciju podataka, identifikaciju sistema, adaptivno upravljanje itd. (pojmovi poznati iz teorije digitalnog upravljanja). Za digitalne sisteme se vezuju dva važna pojma: diskretizacija po vremenu (pojam periode odabiranja) i kvantizacija po nivou. Periodom odabiranja se definišu sukcesivni trenuci u kojima se vrši odabir kontinualnih veličina. Kvantizacija kontinualne veličine nastaje usled AD konverzije.Primena inteligentnog upravljanja se može razumeti na osnovu potrebe da se izvrši regulacija neke fizičke veličine u sledećim uslovima:
Navedeni uslovi se često sreću u praksi i zbog toga je neophodno inteligentno upravljanje. Faze projektovanja FLC Fazi logički kontroler (FLC) je jedan način takvog upravljanja koji je naročito pogodan za sisteme koji se vrlo teško mogu modelovati. Kod projektovanja Fazi regulatora redosled operacija je sledeći:
Realizacija FLC u digitalnom sistemu upravljanja se svodi na pisanje programskog koda (ovde je korišten programski jezik C) koji na osnovu zadate vrednosti temperature dostiže tu vrednost i održava je sve dok se u sistemu ne dogodi zahtev za nekom drugom vrednošću koju postavlja korisnik. Pre pisanja programa neophodna je analiza (i posmatranje) konkretnog sistema upravljanja i poželjno je mate-matički opisati sistem kako bi se pre praktične implementacije programa u mikrokontroleru izvršila simulacija. Svrha simulacije je da se matematičkim algoritmima pokušaju opisati pojave u realnom sistemu kako bi praktična realizacija algoritma upravljanja u realnom sistemu ispunila zahteve. Obično se zahtevi zadaju u vremenskom domenu, a najčešći su da se obezbedi stabilnost, tačnost i brzina.
Fazi logika U klasičnoj teoriji skupova, kada se posmatra odnos pripadnosti nekih elemenata prema skupu kaže se da neki element ili pripada nekom skupu ili ne pripada.
U svakodnevnom govoru se mogu čuti i sledeći izrazi: malo toplije, hladno, jako hladno itd. šti pristup problemu je uvođenje sledećih oznaka (Sika 1.) za neku vrednost: Jako Negativno, Malo Negativno, Približno Nula, Malo Pozitivno i Jako Pozitivno (JN,MN,PN,MP i JP). Za predstavljanje ovakvih informacija uvedena je teorija fuzzy skupova čiji je tvorac Lotfi Zadeh. Neka vrednost može pripadati različitim oznakama čime njen opis postaje nejasan, odnosno maglovit (engl.fuzzy). Na primer, fazi vrednost F=3.5 je MP sa stepenom pripadnosti n=0.25 i JP sa n=0.75. Ekspertni sistemi Fazi logika se obično svrstava u oblast ekspertnih sistema u kojima se akcije koje u praksi preduzimaju eksperti mogu iskoristiti za programiranje računarskih sistema koji tada mogu zameniti (ili imitirati) eksperta. Kod ručnog upravljanja, suština inteligentne akcije je u čoveku koji posmatra i upra-vlja nekim procesom. Ovakvim pristupom se može ostvariti dobro upravljanje jer ekspert zna kako treba upravljati sistemom. bi se napisao program za FLC potrebno je na neki način uvesti skup fazi pravila koja opisuju akciju eksperta. Situacija u sistemu upravljanja se može opisati na sledeći način: ekspert posmatra sistem (npr. koliko trenutna vrednost temperature odstupa od zadane) i na osnovu toga donosi odgovarajuću odluku koliko dugo grejati.
Fazi pravila U ekspertnim sistemima, znanje eksperta opisano je na sledeći način: AKO je greška tolika TADA grejati toliko. U većini programskih jezika ovo se implementira primenom IF THEN pravila. Neka sledeća situacija posluži kao primer upravljanja: greje se voda koja se trenutno nalazi na sobnoj temperaturi (oko 22 oC) i treba je zagrejati na 40 oC. “Prosečan” ekspert će verovatno reagovati ovako: neka se voda greje sve dok se ne postigne 40 oC, a zatim održavati zahtevanu temperaturu na 40 oC po principu rada ON/OFF regulatora. Umesto običnog ON/OFF često se koristi ON/OFF regulator sa histerezisom, što znači da se temperatura održava u određenim granicama, na primer između 39 oC i 41 oC. Da li je ovakvo upravljanje sistemom dobro zavisi od zahteva kupca koji naručuje proizvod (regulator temperature). Prvo, možda bi bilo korisno primetiti da na ovakav način vrednost temperature osciluje između 39 i 41 oC. Drugo, ako u sistemu postoji primetno kašnjenje (pojava da se energija grejača ne prenosi trenutno) tada je za očekivati da se pri dostizanju temperature prebaci vrednost od 41 oC (više što je kašnjenje veće) i da se interval (39,41) povećava.
Kada bi se regulacija temperature po principu ON/OFF regulatora implementirala u fazi logici tada bi postupak upravljanja bio:
Ovakav regulator se može softverski ili hardverski (digitalno i analogno upravljanje respektivno) relativno lako realizovati i prilično je jasan. Postoji skup pravila kojima se može opisati malo finije upravljanje temperaturom u istom sistemu.
Teoretski je pokazano (Bart Kosko) da je Bulova algebra (ili jeste 1 ili nije 0) samo specijalan slučaj fazi logike, odnosno da je njen podskup. Dakle, ON/OFF regulator je samo specijalan slučaj FLC. FLC treba posmatrati kao postupak (algoritam) koji na osnovu dve veličine (greška i promena greške) izračunava upravljanje odnosno koliko (u okviru periode T=4 sekunde) grejati da bi postigli zadatu vrednost temparature (Slika 3).
Greška (zadata vrednost - trenutna vrednost) daje informaciju koliko je trenutna temperatura daleko od zadate , dok promena greške (trenutna greška - prethodna greška) daje informaciju o brzini kojom se dostiže zadata vrednost (Slika 3). Ove dve veličine su ulaz u FLC i one imaju konkretne vrednosti (u oC). Dobijanje stvarne vrednosti upravljanja Obrada dobijenih (izmerenih) informacija se odvija u tri faze:
FAZIFIKACIA: Greška i promena greške se fazifikuju. Npr., ako je zadata vrednost 40 oC, a trenutna vrednost je 30 oC tada je greška e=10 oC. Ako je prethodna vrednost greške bila 28 oC, tada je de=2 oC. Ove vrednosti se dobijaju u trenucima k*T gde je ceo broj. Greška i promena greške se zatim preračunaju u fazi promenljive ef i def. Usvojeno je da se fazi vrednosti nalaze u intervalu -4 do 4, kome je pridružen odgovarajući interval realnih vredosti (e i de). Na osnovu zadane vrednosti i početne vrednosti temperature, određuje se emin i emax. Npr. ako je zadata vrednost temperature 40oC i početna vredost 10 oC, izračuna se emin=-30oC i emax=30oC. Pod pretpostavkom da se za 4 sekunde temperatura maksimalno može povećati za 1 oC sledi da je demin=-1 oC i demax=1 oC.
LOOK UP TABELA: (izracunavanje fazi upravljanja). Kada se odrede ef i def , tada se na osnovu Look_up tabele odredi uf (fazi upravljanje).
DEFAZIFIKACIJA: Realno upravljanje zahteva prevođenje fazi upravljanja u realnu vrednost. Kako je perioda T=4 sekunde, tada upravljanje određuje u kom je delu intervala grejač uključen (Slika5). Upravljanje ima oblik PWM signala koji služi da uključuje i isključuje grejač. prethodnom izlaganju postupci fazifikacije i defazifikacije su relativno jednostavni. Ostalo je nedorečeno kako se dobije LOOK_UP tabela koja je u stvari osnova samog algoritma upravljanja. Formiranje Look-up tabele Pre izlaganja samog postupka dobijanja Look-up tabele pretpostavimo za trenutak da postoji gotova tabela. Analizom Look-up tabele može se primetiti da upravljanje može biti samo pozitivno odnosno da se sistem može isključivo zagrevati (hladi se tako što se grejanje isključi). Kako su vrednosti uf 1,2,3 ili 4 to je u periodi od 4 sekunde grejač uključen 1,2,3 ili 4 sekunde. Može se primetiti da je fazi upravljanje mnogo finije od ON/OFF upravljanja. Koliko je “finije” zavisi od same strukture FLC odnosno softvera. Postupak dobijanja vrednosti (0,1,2,3 i 4) koje se upisuju u Look-up tabela se može razumeti na osnovu pomoćne tabele koja se naziva Fazi Asocijativna Memorija (Tabela 2) i Slike7.
Pomoćna tabela (Tabela 2) predstavlja znanje koje se može opisati na sledeći način:
Kako su napisana gore navedena
pravila? Određivanje upravljanja Za izračunavanje fazi upravljanja potrebno je da se odredi težište unije površi (metoda težišta), koja je formirana u prethodnom koraku. Uprošteno izračunavanje je na osnovu formule: uf=(F1*n1+...+Fk*k)/(n1+...+nk), k=1: 6 se može razumeti na osnovu
analogije sa izrazunavanjem težišta mase u mehanici. Na primer, ako je ef=0.5 i def=-1
tada se sa Slike7 vidi da je uf=(0*1+2*0.25+4*0.25)/(1+0.25+0.25)=1.
Iz navedenih primedbi se vidi gde se krije mogućnost podešavanja. Poznavanje procesa kojim se upravlja je od velike važnosti za dobro podešavanje FLC. Pre praktične primene FLC-a, poželjno je da se uradi simulacija upravljanja na računaru i tako testira moguće ponašanje procesa u toku upravljanja. Za simulaciju se obično koristi programski paket MATLAB.
Opis realnog sistema Centralni deo FLC-a je pločica
sa motorolinim mikrokontrolerom MC68HC11F1 na 8 MHz. Na pločici se pored mikrokontrolera
nalaze: memorija od 32 Kb, naponski regulator 7805, naponski monitor sa reset kolom
TL7705, kao i svi potrebni pasivni elementi za rad pločice. Za prikaz očitane
temperature izabran je sedmo-segmentni displej sa 4 cifre pokretan Motorolinim čipom
MC14499. Potrošač (grejač) je vezan na mrežni napon preko tiristora koji se aktivira
optokaplerom sa zero-crossing kolom MOC 3043. Optokapler je spojen na nultu liniju porta G
( PG0 ), i aktivira se na logičku ‘0’.
Za merenje temperature se koristio NTC otpornik od 47K, firme Simens sa tolerancijom od 10%. Oznaka NTC (Negativni Temperaturni Koeficijent) opisuje prirodu otpornika da u zavisnosti od promene temperature menja i svoju otpornost. Promena može biti pozitivna, gde se otpornost povećava sa porastom temperature i negativna gde se otpornost smanjuje, kako se temperatura povećava. U ovom slučaju na 0 o C otpornost je 165.642K a na 25 o C ( koja im je ujedno i referentna) 47K. Inače, oznaka 47K označava vrednosti otpora na referentnoj temperaturi.
Zavisnost otpornosti se može i matematički opisati kao: R=RO exp(b/T) je RO konstanta koja zavisi od materijala i dimenzija otpornika, b je koeficijent temperaturne osetljivosti i T je temperatura (K). Promenom temperature menja se otpornost NTC otpornika, a sa njom i napon koji se snima na AD konverteru. Korišćen je interni 8-mo bitni AD konvertor sa tačnošću od 1LSB. Za prikaz temperature na displej potrebno je preračunavanje napona NTC-a u temperaturu. Postoje dva načina. Jedan je da se pomoću formule direktno izračuna temperatura. Drugi je da se eksperimentalno odredi tabela koja linearizuje stvarnu karakteristiku. U primeru je korišćen drugi pristup. Oznake PE0 i PG0 predstavljaju portove mikrokontrolera. Npr. PE0 je port E (ulaz AD konvertera), nulta linija. Na osnovu upotrebljenih komponenti maksimalna tačnost koja se može dobiti je 1 o C što je u merenju temperature najčešći slučaj. Upotrebom kvalitetnijih mernih pretvarača i AD konvertora veće rezolucije, mogu se postići bolji rezuiltati ali sa neproporcionalnim troškovima.
Na listingu 1 se deklarišu promenljive korišćene u programu i inicijalizuje Look-up tabela.
Listing 2 predstavlja RTI ( Real Time Interrupt) interapt rutinu u kojoj se vrši obrada rezultata AD konverzije i izračunava vreme uključenja grejača. U periodu od 4 sekunde ulazi se 244 puta u interapt rutinu i svaki put se očita vrednosti sa AD konvertora. Njihov ukupan zbir (PRIV) se po isteku 4 s deli sa brojem 244 čime se dobija veoma ujednačeno očitavanje temperature. Računanjem srednje vrednosti dobijaju se pouzdaniji rezultati i umanjuje se uticaj šuma.
Listing 3 je glavni program. U prvom delu se inicijalizuju promenljive koje se pojavljuju u programu, SPI komunikacija i RTI interapt. U beskonačnoj petlji se nalaze samo dve funkcije, prva vrši konverziju vrednosti temperature iz binarnog u decimalni oblik (potreban za displej) i druga koja šalje decimalne cifre trenutne vrednosti temperature preko SPI komunikacije. Komentar rezultata Pre implementacije algoritma upravljanja na realnom sistemu izvršena je simulacija. je izvedena na osnovu fizičkog zakona o transformaciji energije. Pretvaranje električne energije u toplotu se može opisati jednačinom : P*dt=m*c*dT gde je P=150W, snaga grejača, dt je vreme rada grejača, m=0.4 kg masa vode, c=4186J/Kg*K, specifični toplotni kapacitet vode a dT promena temperature vode usled grejanja. Nakon simulacije algoritam upravljanja je testiran na realnom sistemu.
Svake 4 sekunde vrednost sa AD konvertora se smešta u deo eksternog RAM-a, a zatim se te vrednosti serijskom komunikacijom prebacuju na računar gde su rezultati obrađeni.
Poređenjem simuliranog i realnog odziva sistema, može se primetiti velik stepen saglasnosti. Razlika između simuliranog i realnog odziva nastaje usled postojanja šuma u sistemu kao i nemogućnosti da se u potpunosti simulira realan sistem. Umesto zaključka, ponuđen je odgovor na pitanje zašto je fazi kontroler pogodan za inženjere automatike?
Na osnovu dobijenih eksperimentalnih rezultata može se zaključiti da je fazi logički kontroler primenljiv u problemima regulacije temperature, ali se ne može dati završna ocena o mogućnostima i kvalitetu, jer sistem nije testiran u uslovima poremećaja, niti je poređen sa drugim algoritmima upravljanja (od koji je PID regulator tipičan predstavnik).
|
|
C o p y r i g h t 1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji |