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:
  1. mogućnost za definisanje i skladištenje svih mogućih stanja sistema
  2. mogućnost za definisanje i skladištenje svih mogućih pobuda sistema
  3. mogućnost lakog dodavanja i oduzimanja stanja i pobuda sistema
  4. mogućnost ubrizgavanja funkcija prelaza i
  5. 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ć.

Comments

  1. Kod možete preuzeti sa sledeće adrese: https://libstock.mikroe.com/projects/view/678/injection-system-behavior-state-machine-sm

    ReplyDelete
  2. Kod možete preuzeti sa sledeće adrese: https://libstock.mikroe.com/projects/view/748/stepper-motor-controller

    ReplyDelete

Post a Comment

Popular posts from this blog

Electrolytic capacitors and design rules