Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék
Demonstrációs eszköz fejlesztése hallgatói méréshez Mosógép modell fejlesztése Önálló laboratórium beszámoló
Készítette: Rácz Melinda FIGCJ1 Konzulens: Dr. Pilászy György 2015
Tartalomjegyzék Bevezetés.......................................................................................................................3 Rendszerséma ................................................................................................................4 A mikrokontrolleres rendszer ismertetése ..........................................................................6 A kapcsolás ismertetése................................................................................................7 Tápegység ...............................................................................................................7 Mikrokontroller és kommunikációs perifériák ..............................................................7 Be- és kimeneti jelek illesztése....................................................................................8 Ajtózár ....................................................................................................................9 Motorvezérlés ..........................................................................................................9 A/D átalakító ..........................................................................................................10 A szimuláció fizikai modellje ........................................................................................... 12 Vízszint .................................................................................................................12 Hőmérséklet ..........................................................................................................13 Útban a mikrokontrolleres realizáció felé...................................................................14 A téma folytatása ..........................................................................................................16
2
Bevezetés 2014-ben a villamosmérnöki és mérnök informatikusi képzés átalakult; ennek részeként a hallgatók egy félévvel korábban, az ötödik szemeszterben specializálódnak. A tartalmukban is megújult specializációk része lesz a témalaboratórium című tárgy, amely bevezeti a hallgatókat az általuk választott ágazatot gondozó tanszék munkájába, megismerteti velük annak laboratóriumait és felkészíti őket a további önálló munkára. Az Irányítástechnika és Informatika Tanszék témalaboratóriumának egyik mérésének tárgya egy automata mosógép vezérlésének implementálása lesz, amelyhez – mivel laboratóriumi körülmények között nehézkes lenne valódi mosógéppel dolgozni – az önálló laboratórium és a szakdolgozat keretein belül én fejlesztek egy mikrokontrolleres rendszert, amely képes lesz a vezérlés számára annak környezetét szimulálni.
3
Rendszerséma A rendszer egyszerűsített fizikai vázlata a következő:
A vezérlést a hallgatók egy Arduino Uno kártyára írják, amelynek 14 digitális és 6 analóg beés kimenete van; ehhez az elég limitált lábszámhoz kell a hardvertervezés során igazodni. Az ajtó mágneszár segítségével zárható-nyitható; ha a zár nem működik, a mosás nem indítható el (vizet tölteni, üríteni vagy fűteni illetve a motort működtetni csak zárt ajtónál szabad), ezért a program indítása elején a zárásra vonatkozó utasítás kiadása után le kell kérdezni az állapotát. A dobba víz a hálózatból érkezik, nyomása a hálózati víznyomásnak felel meg; onnan távozni a szivattyún keresztül tud, amelynek teljesítménye az adott szivattyú típusára jellemző. A dob belsejében két érzékelő található: egyikük hőmérsékletszenzor (NTC termisztor), a másik (háromállapotú presostat kapcsoló) a vízszintet érzékeli, vonalai akkor válnak logikai 1 értékűvé, ha a víz magassága a dob magasságának 20, 50 és 70%-át elérte. A hőmérsékletszenzor jelkondicionáló áramköre szintén diszkrét jeleket szolgáltat: mindössze azt tudja jelezni, hogy a hőmérséklet a 30, 60, 90°C-ot túllépte-e. A fűtőszál rögzített teljesítményű, működtetni csak azután szabad, hogy a vízszint egy adott értéket elért (legalábbis ellepi azt). A motor szénkefés egyenáramú motor, amely váltóáramú működésre is képes; ez esetben egyenáramról fogjuk működtetni. Az állórész tekercsei sorba kapcsoltak, a forgásirányt az határozza meg, hogy a forgórész kivezetéseit a tekerccsel vagy a földdel kontaktáljuk; a 4
fordulatszámot impulzusszélesség-modulációval (PWM) fogjuk szabályozni, a tényleges fordulatszámmal arányos ellenőrző jelet a motor tachogenerátora szolgáltat. A folytonos nyilak fizikai huzalozásnak felelnek meg, amelyek logikai vagy analóg jeleket szolgáltatnak a központi vezérlő számára. Értelmezésüket a következő, logikai vázlat segíti:
5
A mikrokontrolleres rendszer ismertetése A rendszer blokkvázlata:
A modell felhasználói szempontból az alábbi jellemzőkkel rendelkezik: Ki- és bemenetek (összhangban az Arduino Uno digitális és analóg vonalainak számával) Bemenetek Digitális Tölt: bemenő szelep nyitása Ürít: szivattyú indítása PWM: motor fordulatszámának szabályozása impulzusszélesség-modulációval DIR1: motor forgatása az egyik irányba DIR2: motor forgatása a másik irányba Ajtózár: az ajtót záró beavatkozó működtetése Fűt: fűtés bekapcsolása Kimenetek Digitális Ajtó zárt: ajtózár állapota H20: víz magassága a dobban elérte a dobmagasság 20%-át H50: víz magassága a dobban elérte a dobmagasság 50%-át H70: víz magassága a dobban elérte a dobmagasság 70%-át T30: víz hőmérséklete a dobban elérte a 30°C-ot T60: víz hőmérséklete a dobban elérte a 60°C-ot 6
T90: víz hőmérséklete a dobban elérte a 90°C-ot Analóg: Tachogenerátor kimenő feszültsége
A rendszerben két feszültségszint van jelen: a tápegység bemenetére csatlakoztatott 12 V, amely a motor működtetéséhez megfelelő, és a táp kimenetén megjelenő 5 V, amely a logikai áramkörök tápfeszültsége. Mint az a blokkvázlat alapján látható, a rendszer az alapfunkciók mellett kommunikációs interfészekkel is szolgál: a modell mind RS-232 (UART), mind USB porton keresztül számítógépre köthető, így (pl. LabView-n keresztül) programozható, beállíthatók a rendszer jellemzői (pl. a mosógép dobjának geometriája és a kontrolleren futó szoftver által használt egyéb paraméterek), valamint lekérdezhető a rendszer aktuális állapota (motor forgásiránya, fordulatszáma, a kontroller által kiadott PWM jel, az ajtózár állapota, valamint a dobban uralkodó viszonyok). Ez az LCD kijelzőn is nyomon követhető. A zümmer arra szolgál, hogyha a rendszer túllépett valamely határértéket (pl. a dobban levő víz felforrt, vagy a dob teljesen megtelt), jelezze a felhasználónak. Fontos megjegyezni, hogy ezek az adatok nem egyeznek a vezérlő (Arduino) számára is hozzáférhető jelekkel, hanem a mikrokontroller szoftvere által közvetlenül kiszámított értékek.
A kapcsolás ismertetése Tápegység A tápegység egy egyszerű, szűrő- és pufferkondenzátorokkal ellátott feszültségstabilizátor, amely a kimenetén 5V egyenfeszültséget ad; a rendszer működtetéséhez szükséges másik egyenfeszültséghez (12V) a bemeneti szűrés után jutunk. Szintén ezen az áramköri részleten láthatók a kapcsolás egyéb részeiben használt műveleti erősítők tápvonalai (lent).
Mikrokontroller és kommunikációs perifériák Bár a blokkvázlaton ez a két funkcionális egység különválasztva szerepel, a köztük fennálló kapcsolat szempontjából célszerűbb egyszerre tárgyalni őket. A rendszer vezérlését egy Microchip dsPIC33EV128GM002 mikrokontroller (az ábrán fent) látja el. Bemenetein megkapja a digitális bemenő jeleket és a tachogenerátor impulzussorozattá 7
konvertált kimenő jelét (motorfrekvencia-számítási lehetőség a mikrokontroller szoftvere számára), kimenetein a vízszinttel és a hőmérséklettel arányos PWM-jel jelenik meg. Szintén a kontroller felelős az LCD- UART-, valamint USB-modulok vezérléséért (az LCD-modul a kontroller alatt jobbra látható), valamint a zümmer (lent, balra) működtetéséért.
Az RS-232 port illesztéséért a jól ismert MAX232 típusú áramkör felelős. Az USB-porton megjelenő jel az RS-232 porton megjelenő jel illesztett változata, képzéséhez a Future Technology Devices International FT232RL áramkörét használjuk fel. Mivel a számítógép saját táplálással rendelkező eszköz (nem az USB porton keresztül jut energiához), a kapu táplálását is vele célszerű megoldani; így, ha éppen nem használjuk az USB portot, a csatlakozó 1. lábára kapcsolódó ellenállásosztón keresztül resetelhetjük a vezérlőt.
Be- és kimeneti jelek illesztése Az Arduino digitális kimeneteinek jelei az ULN2003AN áramkörök formájában Darlingtontranzisztorpáros illesztőfokozaton keresztül jutnak, amelynek célja a vonalak mindig definit 8
állapotra hozása (a felhúzó ellenállások segítségével), valamint jelkondicionálás. A bemenetek aktív állapotáról a LED-ek adnak információt (a földre húzva aktívak, a Darlington-párok jelfordító hatása miatt). Hasonló a kimenetek illesztése is, csak itt az ULN2003AN bemeneti oldalán helyezkednek el a LED-ek, mégpedig a bemenethez képest ellentétes konfigurációban. A rendszer számára a külvilágot jelentő portokat szabadon hagyjuk, hogy a külső kártyához történő illesztés a felhasználó számára egyszerűbb legyen (ne csak 5 V táplálású kártyával lehessen meghajtani).
Az Arduino Dx a kártya digitális kimeneteit jelöli.
Ajtózár A lent látható kis áramköri részlet az ajtózár fizikai működésének szimulációja, a zár esetleges működésképtelenségét a mechanikus kapcsoló oldása szimbolizálja.
Motorvezérlés A motorvezérlő a lehető legegyszerűbb kapcsolás: relék segítségével szabályozhatjuk, hogy a motor kapcsai az állórész tekercsére vagy a földre (pontosabban a PWM-vezérléshez használt MOSFET gate-jére) kapcsolódjon; a két relé egymástól független, előfordulhat, hogy egyik sem kapcsol be (vagy mindkettő), ekkor a motor áll. 9
Ha a motor bekapcsolt, PWM segítségével szabályozhatjuk a fordulatszámot (a kapcsolási sebesség növelésére kapcsoló gyanánt MOSFET-et alkalmazunk).
A motor külső kapcsainak elnevezése az alkalmazott DC-motor kapcsainak számozásához illeszkedik:
A/D átalakító Impulzusgenerátor a motor tachogenerátorához A mikrokontrolleres rendszer működése során monitorozni szeretnénk a modell belső folyamatait, ide tartozik a motor fordulatszámának nyilvántartása is. Hogy ezt megtehessük, a motor tachogenerátorán megjelenő váltakozó feszültségből impulzusokat generálunk és ezeket az impulzusokat számláljuk a kontroller egyik számlálójának segítségével. Az impulzussorozat kívülről nem hozzáférhető, a felhasználónak a tachogenerátor analóg jelét kell frekvenciaszámításhoz felhasználnia. Az impulzusgenerátor egy ofszetképző és egy hiszterézises komparátor együttese: mivel a tachogenerátor szimmetrikus feszültségjelet ad, mi pedig 0 és 5 V közti feszültségeket használunk, a generátor jelét el kell tolnunk az érvényes tartományba, ezt egy feszültségosztóval és a leosztott feszültséget követő erősítővel tesszük meg, ez lesz a generátor kimenő jelének ofszetje. Az így eltolt jelet már össze tudjuk hasonlítani a középértékével.
10
A kivezetések elnevezése szintén illeszkedik a motor kivezetéseiéhez, az Arduino ANx a vezérlőkártya egyik analóg bemenetét jelöli.
Vízszint- és hőmérséklet-kimenetillesztő A kontrolleren futó szoftver elő képes állítani a dob belsejében levő vízszint és hőmérséklet értékét, amelynek – a valóságnak megfelelően – csak néhány értékét kapja meg a vezérlőkártya, nevezetesen, hogy a vízszint elérte-e a dob magasságának 20, 50, 70%-át, illetve a hőmérséklet a 30, 60, 90°C-ot. Ezt a néhány jelet felesleges a mikrokontroller segítségével előállítani a pillanatnyi érték ismeretével szoftveresen, mivel egyrészt futási időt, másrészt kimeneteket veszítenénk. Ezért, a kontroller kimenetén 10 kHz-es PWM jelként megjelenő vízszint- és hőmérsékletértékeket szűréssel analóg jellé alakítjuk, majd hiszterézises komparátorokkal figyeljük, hogy elérték-e az adott értéket, a kívánt jelszinteket az 5V-os tápfeszültségből ellenállásosztókkal képezve (az ábrán balról jobbra láthatók az egyre magasabb jelszintek). A specifikáció része volt az is, hogy az egyes értékeket manuálisan is lehessen állítani, ezért mechanikus kapcsolóval megadható, hogy a kontroller jelét vagy a potenciométereken beállított értékeket hasonlítjuk-e össze az egyes feszültségszintekkel.
11
A szimuláció fizikai modellje Mivel a mosógép vezérlése nem független a dob belsejében uralkodó viszonyoktól, azoknak modellezése elengedhetetlen. Jelen esetben két paramétert veszünk figyelembe, ezek a víz magassága és hőmérséklete.
Vízszint A vízszint meghatározásához szükségünk van a mosógép dobjának, valamint a beömlő szelep és a szivattyú geometriai paramétereire, továbbá a hálózati víznyomás és a szivattyú nyomásának értékeire. A dobot H magasságú, r sugarú hengerként modellezzük, a beömlő cső keresztmetszete legyen A1 , a hálózati víznyomás p1 , a szivattyú szelepének keresztmetszete
A2 , nyomása p 2 . A pillanatnyi vízszint legyen h , számításánál a Bernoulli-egyenletből indulunk ki:
p1
1 2 1 v 1 gh1 p 2 v 22 gh2 . 2 2
Feltételezzük, hogy a beömlő szelep bemenetén a nyomás p1 , itt a víz sebessége 0, kimenetén a víz sebességev 2 , itt nincs statikus nyomás; továbbá, hogy a cső bemenete és kimenete egy magasságban helyezkedik el és a víz sűrűsége is mindkét oldalon ugyanakkora ( ). Ennek megfelelően
p1
1 2 v 2 . 2
Igaz továbbá, hogy a dobban a térfogat változása felírható a cső keresztmetszetének és a rajta átömlő vízmennyiségnek szorzatával: V Av , 1 2
és
V r 2 h . Innen:
V r 2 h . v2 A1 tA1 Tehát: 2
1 r 2 h p1 h 2 tA1
2 p1 A1 t. r 2
Nagyon hasonlóan csökken a víz mennyisége, ha a szivattyú lép működésbe a maga fix keresztmetszetével és nyomásával. Vezessük be a következő mennyiségeket:
h1 h2
2 1 r 2
p1 At 1 h01t
2 1 r 2
p 2 A2t h02t .
,
12
Innen
h h1 h2 .
Hőmérséklet A mosógép dobjában uralkodó termikus viszonyok számításánál a tartályt egytárolós tagként vesszük figyelembe, vagyis a víz hőkapacitásával és termikus ellenállásával számolunk. Feltételezzük, hogy a fűtőszál a dob alján helyezkedik el, a hő felfelé áramlik. Mivel a dobban levő víz kismértékben hőt ad le környezetének, feltételezünk egy, a dob és a környezet közötti (bár elég nagy) termikus ellenállást is. Ezt, bár fizikailag nem igaz (a leadott hő nagy része a hengerpaláston keresztül távozik) a henger tetejére koncentráljuk (a továbbiakban Rth ,dob , értéke méréssel meghatározható). 1L , ahol a víz fajlagos hővezetési együtthatója, L a A hővezetési szakasz hossza, A pedig a keresztmetszete. Behelyettesítve az ismert mennyiségeket, h1 és h2 analógiájára:
A víz termikus ellenállása: Rth ,víz
Rth ,víz1
1
2 1 r 2
Rth ,víz 2
1
2 1 r 2
2
p1 At 1 R 01t ,
2
p 2 A2t R 02t ,
Rth ,víz Rth ,víz1 Rth ,víz 2 A víz hőkapacitása: C th ,víz c v m cv AL , ahol cv a víz fajlagos hőkapacitása, a sűrűsége,
A és L a fent használt geometriai paraméterek. Behelyettesítés után: C th ,víz cv 2 p1 At 1 C 01t , C th ,víz cv 2 p 2 A2t C 02t , C th ,víz C th ,víz1 C th ,víz 2 1
2
adódik. A rendszer termikus helyettesítőképe:
13
Tm s Tv s
Rth ,víz Rth ,dob P Ta 1 sC th ,víz Rth ,víz Rth ,dob
Rth ,dob Rth ,víz Rth ,dob Tm s Ta P Ta Rth ,víz Rth ,dob Rth ,víz Rth ,dob 1 sC th ,víz Rth ,víz Rth ,dob
Inverz Laplace-transzformáció után: t Cth ,víz Rth ,víz Rth ,dob P Ta t . Tv t Rth ,dob 1 e
Ha nem fűtjük a rendszert ( P 0 ), akkor az azonos időállandóval a szobahőmérséklethez tart (Tmax a fűtés során elért maximális hőmérséklet): t Cth ,víz Rth ,víz Rth ,dob Tv t T max Ta e Ta t . A modell levezetése során nem vettük figyelembe azt, hogy a dobba ömlő víz hőmérséklete alacsonyabb a környezeténél (legalábbis általában) és hogy a dobban levő, már bizonyos mértékben felmelegített vizet folyamatosan hűti. A hideg víz beömlése során adott pillanatban előálló hőmérséklet a komponensek hőmérsékletés tömegviszonyaitól függ: hTv hT beömlő cv A h h Tössz c v AhTv cv AhT T . beömlő össz h h Értelemszerűen, ha a szivattyú lép működésbe, a víz fogyatkozása a dob hőmérsékletére nincs hatással, csupán a termikus ellenállás és a hőkapacitás csökken.
Útban a mikrokontrolleres realizáció felé A mikrokontrollerek az asztali számítógépektől eltérően nem képesek a transzcendens függvények kezelésére, így az exponenciális függvényt közelítenünk kell. Figyelembe véve a tényt, hogy a termikus modell egy egytárolós, stabil tag, vagyis az exponenciális függvénynek csak a negatív félsíkra eső részével számolunk, a választás a következő hatványfüggvényre esett: 1 . e t 16 0,065t 1 Időállandóval kiegészítve:
e
t
1
16
0,065 t 1 Az exponenciális függvény (kék) és közelítése (zöld) közös ábrán megjelenítve:
14
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
7
8
9
10
A közelítés abszolút hibáját megjelenítve látható, hogy az mindenütt kisebb 0,01-nál (a teljes értékkészlet 1%-ánál): -3
10
x 10
8
6
4
2
0
-2
-4
-6
-8
0
1
2
3
4
5
6
7
8
9
10
A mikrokontrollerek másik sajátossága, hogy folytonos mennyiségeket nem tudnak kezelni, így az időt is diszkretizálni kell, ezért az idő megváltozását a program ciklusidejével tudjuk közelíteni.
15
A téma folytatása Mivel a téma befejezéséhez nem állt rendelkezésemre elég idő, a következő félévben is ezzel szeretnék foglalkozni. Ennek része lesz az áramkör megépítése és a működést leíró egyenletek mikrokontrollerre adaptálása.
16