Programsko inženirstvo

Praktični del tega predmeta je izvedba programske specifikacije krmilnega sistema na osnovi danih zahtev in upoštevanja vseh pravil programskega inženirstva. Celoten projekt je malce šriši, saj zajema še spoznavanje in razumevanje celotnega sistema, za katerega se bi naj napisala specifikacija in bi v končni fazi bilo izvedeno tudi načrtovanje (izvedeno v Sistemih realnega časa).

Na tej strani lahko vidite celotno programsko specifikacijo krmilnega sistema.


1. Uvod

Naziv projekta:

Kaskadna regulacija položaja in vrtljajev enosmernega servomotorja 

Definicija (kratek opis) projekta: 

Naloga projekta je načrtovanje in specifikacija krmilnega sistema za nadzor, vodenje in regulacijo položaja in vrtilne hitrosti (vrtljajev) servopogona, izvedenega z enosmernim motorjem s permanentnimi magneti in pripadajočim napajalnikom.

2. Zahteve

Zahteve (projektni cilji): 

- delovno območje spreminjanja vrtljajev od 0 do 6000 /min (na osi motorja) v obe smeri 

- dovoljeno regulacijsko odstopanje +- 2 delca (v stacionarnem stanju) 

- sprotni prikaz dejanskega položaja, hitrosti, reference in odstopanja v številski in/ali grafični obliki na zaslonu osebnega računalnika  - Start/Stop regulacije preko stikala "S1" na kontrolnem panelu 

- signalizacija odstopanja vrtljajev za več kot 10% (LED1 indikator na kontrolnem panelu) 

- signalizacija vrtenja v levo ali desno (LED2) 

- signalizacija odstopanja položaja za več kot +-5 delcev (LED3) 

- vnos parametrov regulatorja (v "Off-line" režimu) preko tipkovnice osebnega računalnika 

- vnos referenčne pozicije in maksimalne hitrosti (v "On-line" režimu oz. med delovanjem pogona) 

- kot testni model servomotorja z napajalnikom in vključenim tokovnim regulatorjem uporabite enosmerni motor ESCAP28DT 12-219P moči (20W) s krmilnim vhodom -10 do +10V, tahogeneratorjem (-10 do +10V) in inkrementalnim dajalnikom (144 p./obrat) 

- kot krmilni sistem uporabite Miniaturni krmilnik MPU V1.1 z mikrokrmilnikom H8/532, ustreznimi vhodno/izhodnimi vmesniki in osebni računalnik (PC) 

- servopogon je povezan na krmilni sistem kot je prikazano na blokovni shemi 

- določite potreben korak (časovni interval) diskretne regulacije 

- regulator hitrosti naj bo diskretni PI, regulator položaja diskretni P 

- v okviru kaskadne regulacije generirajte trapezni profil referenčne veličine - hitrost z upoštevanjem maksimalne dovoljene hitrosti 

3. Analiza

Kontekstni diagram Kaskadna_regulacija (CD)

3.1. Terminatorji

3.1.1. Opis terminatorja kontrolni_pano

V kontrolnem panoju imamo stikalo in tri LED diode:

Stikalo S1 -nam služi za začetek in konec regulacije.

LED 1 -predstavlja indikator odstopanja vrtljajev za več kot 10%

LED 2 -predstavlja indikator vrtenja motorja levo/desno

LED 3 -predstavlja indikator odstopanja položaja za več kot +-5 delcev

V kontrolni pano imamo naslednje vhode:

Vhod LED_1

Vhod LED_2

Vhod LED_3

Iz kontrolnega panoja imamo naslednji izhod:

Izhod On_Off

2. Opis terminatorja operater

Operater nam v bistvu predstavlja osebo, ki uporablja PC računalnik, s katerim komunicira z mikrokrmilnikom. Le-ta je omogočena s serijskim vmesnikom RS 232. Operaterju se na PC-ju sproti prikazujejo podatki o položaju, hitrosti, referenčni vrednosti ter odstopanju. Ti so v številski in/ali grafični obliki.

Operater deluje v On-line in Off-line režimu. V On-line režimu vnaša preko PC-ja parametre regulatorja. V Off-line režimu pa vnaša referenčno pozicijo in maksimalno hitrost.

V operater imamo naslednje vhode:

Vhod hitrost

Vhod odstopanje

Vhod polozaj

Iz operater imamo naslednje izhode:

Izhod Start_Stop

Izhod parametri_reg

Izhod ref_pozicija

Izhod max_hitrost

3.1.3. Opis terminatorja servopogon

Kot servopogon je v našem primeru uporabljen enosmerni motor ESCAP 28DT 12-219P. Motor je krmiljen s signalom, pripeljanim preko signalne linije nast_hitrosti. Na motorju je inkrementalni dajalnik pulzov za določitev pozicije motorja, ter tahogenerator, ki ima kot izhod napetost v mejah -10V do +10V in je le-ta proporcionalna motorjevi hitrosti.

V servopogon imamo naslednje vhode:

Vhod sprostitev_reg

Vhod nast_hitrosti

Iz servopogon imamo naslednje izhode:

Izhod ID

Izhod hitrostni_senzor

3.2. Proces KaskReg

3.2.1. Opis procesa KaskReg

Proces KaskReg nam predstavlja model za kaskadno regulacijo položaja in vrtljajev enosmernega servomotorja. V procesu je kot krmilni sistem uporabljen miniaturni krmilnik MPU V1.1 z mikrokrmilnikom H8/532. Kaskadna regulacija je izvedena v obliki programa shranjenega v mikrokrmilniku. Regulator hitrosti je diskretni PI regulator, regulator položaja pa je diskretni P regulator. Mikrokrmilnik je povezan z:

  • Operatejem (preko RS232 vmesnika)
  • Kontrolnim panelom (preko digitalnih vhodno/izhodnih linij)
  • Servopogonom
Z operaterjem ima naslednje povezave:

Kot vhode ima 

    • referenčno pozicijo
    • maximalno hitrost
    • parametre regulatorja
Kot izhode ima
    • trenutno hitrost motorja
    • trenutni položaj motorja
    • referenčne vrednosti
    • odstopanja
S kontrolnim panelom ima naslednje povezave:

Kot vhode ima 

    • start/stop signal za začetek in konec regulacije
Kot izhode ima 
    • signal za vklop LED1
    • signal za vklop LED2
    • signal za vklop LED3
S servopogonom ima naslednje povezave:

Kot vhode ima 

    • hitrost
    • pozicijo (ID)
Kot izhode ima 
    • signal za nastavitev hitrosti
    • kontrolni signal za omogočitev (1) in blokado (0) regulatorja
V KaskReg imamo naslednje vhode:

Vhod parametri_reg

Vhod ref_pozicija

Vhod hitrostni_senz

Vhod ID

Vhod max_hitrost

Vhod On_Off

Vhod Start_Stop

Iz KaskReg imamo naslednje izhode:

Izhod LED_1

Izhod LED_2

Izhod LED_3

Izhod polozaj

Izhod hitrost

Izhod odstopanje

Izhod nast_hitrosti

Izhod sprostitev_reg

V procesu KaskReg imamo tudi naslednje pomnilne elemente, ki jih uporabljamo za shranjevanje podatkov na disk:

  • max_hitr_transf
  • ID_transf
  • ref_poz_transf
  • hitrost_transf
  • param_reg_transf
3.2.1.2. Proces sprejem_podat

Vhodi v sprejem_podat: 

    • param_reg (za P regulator je to: kr, ter za PI regulator: a(k) in a(k-1))
    • ref_pozicija (je podana v inkrementih)
    • max_hitrost (je podana v vrtljajih na minuto in ima delovno območje 0 do 6000 vrt/min v levo in desno stran)
Izhodi iz sprejem_podat: 
    • param_reg
    • ref_pozicija
    • max_hitrost
Pri celem procesu je potrebno paziti na časovni interval in sicer mora veljati: Ts < 0.1*Ti

3.2.1.3. Proces reg_hitrosti

V proces reg_hitrosti imamo naslednje vhode:

Vhod parametri_reg

Vhod nast_pozicija

Vhod hitrost

V proces reg_hitrosti imamo naslednje izhode:

Izhod nas_hitrosti

Izhod LED_1

Kot regulator hitrosti smo v procesu reg_hitrosti uporabili PI regulator, kateremu parametre izračunamo po naslednji formuli:

a(k) =kr(1+Ts/Ti)

a(k-1) =-kr

Za vhod PI regulatorja velja naslednja formula:

u(k)=e_hit=ref_hit(k)-hitrost(k)

Pri tem moramo pretvoriti pozicijo (nast_pozicija) v hitrost (ref_hit), kar naredimo z naslednjo enačbo:

ref_hit=nast_pozicija/(4*144)

Za izhod PI regulatorja velja naslednja formula:

y(k)=nast_hitrosti=a(k)*u(k)+a(k-1)*u(k-1)+y(k-1)

Za izhod LED_1, velja naslednje pravilo: 

če e_hit >10% potem LED_1=1 drugače LED_1=0

3.2.1.4. Proces prikaz_rez

V proces prikaz_rez imamo naslednje vhode:

Vhod ID

Vhod hitrost

Vhod interval_prik

Iz procesa prikaz_rez imamo naslednje izhode:

Izhod polozaj

Izhod hitrost

Izhod odstopanje

Pri tem pošljemo hitrost v vrtljajih na minuto (0-6000 v levo in desno stran), položaj v inkrementih (vrtljaj 4*144 inkrementov) ter za odstopanje pozicije razliko ID-ref_pozicija. Interval prikaza pa mora biti Ts < 0.1*Ti

3.2.1.5. Proces meritev_hit

V proces meritev_hit imamo naslednje vhode:

Vhod hitrostni_senz

Vhod interval_reg

Iz procesa meritev_hit imamo naslednje izhode:

Izhod LED_2

Izhod hitrost

Pri tem je LED_2 signalizacija za vrtenje motorja v levo oz. desno stran. Za signal hitrost se nam napetost, generirano od tahogeneratorja na motorju, pretvori v A/D pretvorniku, ki je v mikrokrmilniku, v številsko vrednost (v intervalih Ti). Mikrokrmilnik ima vgrajen 10-bitni A/D pretvornik z multiplekserjem 8 na 1, tako, da je na voljo 8 analognih vhodov, z napetostnim območjem 0-5V. Čas pretvorbe znaša 13.8 ms na kanal ob frekvenci takta 10MHz.

3.2.1.6. Proces nast_PWM

V proces nast_PWM imamo naslednje vhode:

Vhod nast_hitrosti

Iz procesa nast_PWM imamo naslednje izhode:

Izhod nast_hitrosti

Mikrokrmilnik ima tri 8-bitne pulzno-širinske izhode, ki so na čelni plošči in označeni z PWM1, PWM2 in PWM3. Izhodi so napetostno zaščiteni ter vodeni naprej v nizkoprepustno sito prvega reda s časovno konstanto 0.5ms, izhodi pa so speljani na OA0, OA1 in OA2 (ne smejo se tokovno obremeniti nad 4A za doseganje valovitosti izhoda pod 50mV). Pri uporabi analognih izhodov je priporočljivo uporabljati frekvenco PWM izhodov 20kHz za doseganje minimalne valovitosti analognega izhoda.

3.2.1.7. Proces reg_pozicije

V proces reg_pozicije imamo naslednje vhode:

Vhod ref_pozicija

Vhod ID

Vhod parametri_reg

Vhod max_hitrost

Iz procesa reg_pozicije imamo naslednje izhode:

Izhod LED_3

Izhod nast_pozicija 

Kot regulator pozicije smo v procesu reg_pozicije uporabili P regulator, kateremu parameter je: kr.

Za vhod P regulatorja velja naslednja formula:

u(k)=e_poz=ref_pozicija(k)-ID(k)

Za izhod P regulatorja velja naslednja formula:

y(k)=nast_pozicija=kr*u(k)

Za izhod LED_3, velja naslednje pravilo: 

če e_poz > +-5delcev potem LED_3=1

3.2.1.8. Proces meritev_poz

V proces meritev_poz imamo naslednje vhode:

Vhod ID

Vhod interval_reg

Iz procesa meritev_poz imamo naslednji izhod:

Izhod ID

V področju med H'FA20-HFA2F je naslov 24-bitnega vmesnika inkrementalnega dajalnika. Uporabljajo se lahko vsi inkrementalni dajalniki, ki potrebujejo za svoje delovanje 5 V napajanje.Pri tem se uporablja zapis , kompatibilen s podatkovnim tipom "long" v programskem jeziku C, kjer moramo paziti na predznačenje.

Način delovanja inkrementalnega dajalnika določamo z skakačem J9:

J9 -Način dela

ON -dekodiranje kota 

OFF -dekodiranje položaja

3.3. Krmilni proces KaskReg

3.3.1. C-spec procesa KaskReg

Vhodi v proces KaskReg:

Vhod On_Off

Vhod Start_Stop

Izhodi iz procesa KaskReg

Izhoda interval_reg

Izhod interval_prik

Izhod sprostitev_reg

4. Seznam vseh povezav

4.1. Povezava hitrost

Je dejanska hitrost v številski obliki.

4.2. Povezava ID

Iz ID (inkrementalnega dajalnika impulzov) potujejo impulzi v ID števec v mikrokrmilniku. Priključek je 9 polni SUB-D.

4.3. Povezava ID_transf

Pomnilni element za pozicijo v številu inkrementov.

4.4. Povezava hitrostni_senz

Iz tahogeneratorja, ki je na gredi motorja se prenaša napetostni signal na A/D pretvornik ANI0, ter dobimo napetost proporcionalno hitrosti.

Vhod v kanal: -10V do +10V

Izhod iz kanala: 0V do 5V (TTL tehnologija)

4.5. Povezava hitrost_transf

Pomnilni element za hitrost.

4.6. Povezava interval_prik

Signal za prikazovanje. Rezultati se na zaslonu obnovijo vsako periodo Ts.

4.7. Povezava interval_reg

Signal za regulacijo.

4.8. Povezava max_hitrost

Linija za prenašanje podatka o maksimalni hitrosti motorja v mikrokrmilnik (on-line).

4.9. Povezava max_hitr_transf

Pomnilni element za maksimalno hitrost.

4.10. Povezava nast_hitrosti

Je signal iz PWM1 v obliki pulzov s frekvenco 20 kHz na krmilni vhod motorja. 

vhod v kanal: 0V do 5V ; pulzno širinski signal ; frekvenca 20kHz

izhod iz kanala: -10V do +10V

4.11. Povezava nast_pozicija

Prenos pozicije iz P regulatorja v PI regulator.

4.12. Povezava odstopanje

Je podatek o odstopanju regulacije med referenco ter izmerjeno vrednostjo in teče od mikrokrmilnika na PC.

4.13. Povezava On_Off

Je kontrolna povezava med kontrolnim panelom in mikrokrmilnikom. On pomeni začetek regulacije, Off pomeni blokada regulacije.

4.18. Povezava parametri_reg

Prenos parametrov regulatorja v pomnilnik mikrokrmilnika (Off-line režim).

4.19. Povezava param_reg_transf

Pomnilni element za shranjevanje parametrov obeh regulatorjev:

Za P regulator shranjujemo: kr

Za PI regulator shranjujemo: a(k-1) in a(k)

4.20. Povezava polozaj

Prenos podatkov o trenutnem položaju motorja iz mikrokrmilnika.

4.21. Povezava LED_1

Povezava predstavlja signalizacijo odstopanja vrtljajev za več kot 10% (LED1 indikator na kontrolnem panelu).

4.22. Povezava LED_2

Povezava predstavlja signalizacijo vrtenja v levo ali desno (LED 2 indikator na kontrolnem panelu).

4.23. Povezava LED_3

Povezava predstavlja signalizacijo odstopanja položaja za več kot +-5 delcev (LED3 indikator na kontrolnem panelu).

4.24. Povezava ref_pozicija

Povezava za prenašanje podatkov o želeni (referenčni) poziciji. Podatki se prenašajo v On-Line režimu

4.25. Povezava ref_poz_transf

Pomnilni element za referenčno oz. želeno pozicijo.

4.26. Povezava sprostitev_reg

Kontrolna linija za sprostitev regulatorja. Pri tem velja:

signal: 1 -omogočitev

signal: 0 -blokada

4.27. Povezava Start_Stop

Predstavlja krmilno povezava iz PC-ja na mikrokrmilnik. Uporabljena je za kontrolo sprejema podatkov iz mikrokrmilnika in za kontrolo prenosa parametrov in reference na mikrokrmilnik. 

Avtor: Boštjan Štumberger


V kolikor želite sodelovati z nami, vas vljudno vabimo, da se nam pridružite, pošljete članke, ali pa samo izrazite vaša mnenja.