Automat sa konačnim brojem stanja - Ubrizgavanje ponašanja u sistem
Ubrizgavanje
ponašanja u sistem
Uvod
Automat sa konačnim
brojem stanja kao generalni model za opis ponašanja sistema ima
široku primenu. Jedna od oblasti primene prikazana je u prošlom
broju magazina (#112) i odnosi se na opis ponašanja programabilnog
autonomnog vozila. Međutim, prikazana programska rešenja imaju
određene nedostatke – svaki novi zadatak povlači za sobom
reprogramiranje. Ubrizgavanje ponašanja u sistem (Injection System
Behavior) jeste metod/ideja za opis ponašanja sistema na apstraktnom
nivou koristeći se generičkom strukturom konačnog automata,
eliminišući reprogramiranje.
Ubrizgavanje
ponašanja u sistem
U prethodna dva broja
magazina (InfoElektronika #111 i #112) prikazana su dva različita
zadatka, dva različita programska rešenja, izvršavana
programabilnim autonomnim vozilom (u nastavku teksta PAV):
izbegavanje prepreke i definisano kretanje crnom putanjom. Oba
zadatka su modelovana automatom sa konačnim brojem stanja (u
nastavku teksta KA). Međutim, u čemu je problem programskih rešenja
za oba definisana zadatka? Problem je u reprogramiranju. Svaki novi
definisani zadatak povlači za sobom reprogramiranje - pisati program
iz početka. Sledi jednostavan niz logičkih pitanja. Zašto
reprogramirati? Kako reprogramiranje zaobići? Da li postoji
jednostavniji način? Da, reprogramiranje se zaobilazi ubrizgavanjem
ponašanja u KA sistema.
Slika 1. Konačni automat #1 |
O čemu se zapravo radi?
Osnovni gradivni elementi
KA su: stanja, funkcije prelaza i pobude. Funkcije prelaza na osnovu
trenutnog stanja i pobude definišu naredno stanje sistema. Na slici
1. prikazan je KA sa četiri stanja (kružnice) i funkcijama prelaza
(strelice) sa oznakom pobude koje opisuju ponašanje sistema.
Početno stanje sistema
je A. Ukoliko se na ulaz KA dovede pobuda Cmd1, sistem tj. KA prelazi
u stanje C. Onoga trenutka kada se na ulaz KA dovede pobuda Cmd4, KA
prelazi u stanje D itd. Kao što vidimo funkcije prelaza definišu
ponašanje sistema. Pogledajmo sada primer KA sa slike 2.
Slika 2. Konačni automat #2 |
Početno stanje sistema je C. Ukoliko se na ulaz KA dovede pobuda Cmd1, sistem prelazi u stanje A. Ukoliko se na ulaz KA dovede pobuda Cmd2, sistem prelazi u stanje B itd.
Šta možemo primetiti iz
prethodna dva primera KA? Primećujemo da oba KA imaju identična
stanja i pobude i da je jedina razlika u funkcijama prelaza!
Različitim povezivanjem stanja (kružnice) funkcijama prelaza
(strelice) dobijamo različita ponašanja za isti sistem iz čega
sledi osnova ideje o ubrizgavanju ponašanja u sistem (Injection
System Behavior). Kao što možemo videti, stanja i pobude jesu
postojane (nepromenljive) gradivne komponente KA, dok funkcije
prelaza čine promenljivu komponentu, onu koja se ubrizgava u sistem.
Stanja i pobude je dovoljno definisati samo jednom, onog trenutka
kada sistem započnemo modelovati KA. Funkcije prelaza je potrebno
definisati (matricom prelaza) za svaki zadatak zasebno a zatim iste
ubrizgati u KA sistema, slika 3.
Primena na PAV (Programabilno Autonomno Vozilo)
Primenimo sada metod na
PAV. Stanja PAV su: kretanje unapred, unazad, rotiranje točkova
ulevo, udesno, mirovanje, kočenje itd. Sva navedena stanja čine
konačan skup svih mogućih stanja sistema S i definisan je
samo jednom. Šta su pobude PAV? Pobude su senzori: Infracrveni,
pasivni infracrveni, mehanički, temperaturni, ultrasonic senzori
itd. Sve navedene pobude sistema čine konačan skup svih mogućih
pobuda sistema P i definisan je samo jednom (InfoElektronika
#112). Skupovi S i P čine nepormenljivu (postojanu)
komponentu KA. Promenljivu komponentu sistema čine funkcije prelaza.
Zadatak ”Izbegavanje prepreke”
putem funkcija prelaza definiše određene veze između stanja
kretanja unapred, unazad, rotiranja točkova itd. Ali te veze nisu
postojane, iste se mogu promeniti čime je promenjen i način
ponašanja sistema. Zadatak “kretanje
definisano crnom putanjom” opisuje potpuno
drugačije funkcije prelaza između stanja PAV.
Generički konačni
automat – infrastruktura ubrizgavanja
Realizacija ovakve
metode/ideje zahteva implementaciju
generičke infrastrukture KA. Generička struktura KA mora
zadovoljavati sledeće:
- mogućnost za definisanje i skladištenje svih mogućih stanja sistema
- mogućnost za definisanje i skladištenje svih mogućih pobuda sistema
- mogućnost lakog dodavanja i oduzimanja stanja i pobuda sistema
- mogućnost ubrizgavanja funkcija prelaza i
- generički algoritam za tranziciju između stanja
Slika 3. Model generičkog konačnog automata |
Generičkom strukturom KA
eliminisali smo potrebu reprogramiranja, jedino što trebamo uraditi
jeste „opisati“ ono što od sistema i zahtevamo da uradi,
a zatim da isto ubrizgavamo u generički KA.
Takođe, metoda ubrizgavanja ponašanja u sistem se može iskoristiti za programsku implementaciju mikroprocesorskog mikrosekvencera.
Autor: Vladimir Savić
Tekst je objavljen u InfoElektronika magazinu broj 15
Napomena: tekst će biti preveden na engleski jezik by Nera Marković.
Tekst je objavljen u InfoElektronika magazinu broj 15
Napomena: tekst će biti preveden na engleski jezik by Nera Marković.
Kod možete preuzeti sa sledeće adrese: https://libstock.mikroe.com/projects/view/678/injection-system-behavior-state-machine-sm
ReplyDelete