MIB I. – 147/2006/2011.
SZAKDOLGOZAT
NÉMETH KRISZTIÁN 2011
Pécsi Tudományegyetem Pollack Mihály Műszaki Kar Mérnök Informatikus Szak
SZAKDOLGOZAT Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Készítette: Németh Krisztián Témavezető: Tukora Balázs Pécs 2011
PÉCSI TUDOMÁNYEGYETEM POLLACK MIHÁLY MŰSZAKI KAR Mérnök Informatikus Szak
Szakdolgozat száma: MIB I. – 147/2006/2011.
SZAKDOLGOZAT FELADAT
Németh Krisztián hallgató részére A záróvizsgát megelőzően szakdolgozatot kell benyújtania, amelynek témáját és feladatait az alábbiak szerint határozom meg:
Téma:
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Feladat: • • •
Különböző típusú sebességváltók összehasonlítása, hatásuk elemzése a jármű gyorsulására A motor és a váltó együttes teljesítményének maximalizálása, a módszer ismertetése A kiválasztott sebességváltó áttételének szabályozása egy elektronika, a benne lévő mikrovezérlő és a rajta futó program segítségével: o A kapcsolás bemutatása, kifejtése o A bemenetek jeleinek ismertetése, ezek előfeldolgozása o A fordulatszám mérés elve, eszközei o A program működése, a szabályozás megvalósítása, kimenő jel generálása a sebességváltó áttételét állító motor számára
A szakdolgozat készítéséért felelős tanszék: Műszaki Informatika Tanszék Témavezető: Munkahelye:
Tukora Balázs PTE PMMK MIT
Pécs, 2010 szeptember 30. dr. Szakonyi Lajos op. szakvezető
HALLGATÓI NYILATKOZAT
Alulírott szigorló hallgató kijelentem, hogy a szakdolgozat saját munkám eredménye. A felhasznált szakirodalmat és eszközöket azonosíthatóan közöltem. Egyéb jelentősebb segítséget nem vettem igénybe. Az elkészült szakdolgozatban talált eredményeket a főiskola, a feladatot kiíró intézmény saját céljaira térítés nélkül felhasználhatja.
Pécs, 2011. január 7.
................................................. Németh Krisztián
Köszönetnyilvánítás
Ezúton szeretnék köszönetet mondani a feladat során jelentkező kérdésekben segítséget nyújtó témavezető tanáromnak, Tukora Balázsnak, továbbá Háber Istvánnak, és az IT Rockets csapat tagjainak, akik nélkül a projekt nem jöhetett volna létre. Külön köszönöm Németh Lászlónak az áramkör tervezésénél és megépítésénél nyújtott szakmai segítségét.
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Tartalomjegyzék 1.
A BOSCH Elektromobil verseny és az arra készült jármű bemutatása .................... 9 1.1.
A verseny ........................................................................................................... 9
1.2.
Műszaki kiírás .................................................................................................. 10
1.3.
A mi autónk ...................................................................................................... 12
2.
Tervezési irányelvek ............................................................................................... 13
3.
A dolgozat témája, a megoldandó feladatok ........................................................... 14
4.
5.
6.
3.1.
A sebességváltó szükségessége ........................................................................ 14
3.2.
Egy másik alternatíva a gyorsulás javítására ................................................... 14
3.3.
A dolgozat témája ............................................................................................ 15
Különböző hajtási módok összehasonlítása ............................................................ 16 4.1.
Az elektromotor jellemzői................................................................................ 16
4.2.
A végsebesség és az ehhez tartozó motor:kerék áttétel meghatározása ........... 17
4.3.
A jármű gyorsulása .......................................................................................... 18
4.3.1.
Gyorsulás fix áttétel esetén ....................................................................... 18
4.3.2.
Gyorsulás háromfokozatú sebességváltóval ............................................. 20
4.3.3.
Hogyan hozzuk ki a motorból és a váltóból a maximumot?..................... 22
4.3.4.
Gyorsulás fokozatnélküli sebességváltóval .............................................. 25
4.3.5.
A három hajtási mód összehasonlítása ..................................................... 29
A fokozatmentes sebességváltó (CVT) működése ................................................. 33 5.1.
A szíj hajtású CVT működése .......................................................................... 34
5.2.
A gyűrűs (toroidal) CVT működése ................................................................. 35
Az Elektromobil sebességváltója ............................................................................ 36 6.1.
A sebességváltó jellemzői, működése .............................................................. 36
6.2.
A sebességváltás hiszterézise ........................................................................... 38
6
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
7.
A szabályozó áramkör ............................................................................................ 40 7.1.
Az áramkör részei ............................................................................................ 40
7.1.1.
Feszültségszabályozó ................................................................................ 40
7.1.2.
Jel-előfeldolgozó egység........................................................................... 41
7.1.3.
Számító és kijelző modul .......................................................................... 42
7.1.4.
Galvanikus leválasztó ............................................................................... 45
7.1.5.
Motorvezérlő áramkör .............................................................................. 46
7.1.5.1.
A motorvezérlők típusai .................................................................... 46
7.1.5.1.1. Egynegyedes motorvezérlő............................................................. 46 7.1.5.1.2. Kétnegyedes motorvezérlő ............................................................. 47 7.1.5.1.3. Négynegyedes motorvezérlő .......................................................... 48 7.1.5.2.
Az Elektromobil szabályozó áramkörében alkalmazott motorvezérlő kapcsolás ..................................................................... 49
8.
A PIC és a program ................................................................................................. 51 8.1.
Mi is a PIC valójában? .................................................................................... 51
8.2.
A PIC felépítése .............................................................................................. 51
8.3.
A PIC programozási nyelve ............................................................................ 52
8.4.
A program felépítése, működése .................................................................... 54
8.4.1.
A megszakítási (időmérő és számláló) rutin (1) ....................................... 55
8.4.1.1.
Időmérő (1.1) ..................................................................................... 55
8.4.1.2.
Számláló (1.2).................................................................................... 56
8.4.2.
Az inicializáló rész (2) .............................................................................. 57
8.4.3.
A főprogram (3) ........................................................................................ 57
8.4.3.1.
A kijelző eljárás (3.1) ........................................................................ 57
8.4.3.2.
A konvertáló eljárás (3.2) .................................................................. 59
8.4.3.3.
A váltóvezérlő eljárás (3.3) ............................................................... 59 7
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Értékelés és továbbfejlesztési lehetőségek ............................................................. 62
9.
9.1.
Az elkészült rendszer és az elvégzett munka értékelése ................................. 62
9.2.
Továbbfejlesztési lehetőségek ........................................................................ 62
10.
Összegzés ............................................................................................................ 64
11.
Irodalomjegyzék ................................................................................................. 66
12.
Mellékletek ......................................................................................................... 68
8
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
1. A BOSCH Elektromobil verseny és az arra készült jármű bemutatása 1.1. A verseny A miskolci BOSCH kéziszerszámgyár 2009-ben megrendezett első Elektromobil versenyének [1] nagy sikerén felbuzdulva úgy döntött, hogy 2010-ben megismétli a versenyt. Ez alkalommal még több csapat nevezett, így nagy számú különböző megoldással lehetett találkozni a járművek felépítése kapcsán. A körülbelül nyolcvan csapat nagy része hazai főiskolák, egyetemek és középiskolák közül került ki, de nem volt elhanyagolható a környező országok iskoláiból érkező csapatok száma sem. Annak ellenére, hogy számos, a jármű felépítésére vonatkozó előírást be kellett tartani, a nagyjából 80 járgányt végignézve sokszínű képet kapunk. Ahány csapat, annyi féle megoldás született. A gépekben egy valami közös volt, ez pedig a meghajtást szolgáló 6 db BOSCH akkumulátoros fúró-csavarozó kéziszerszám. A BOSCH kiírása szerint a feladat egy olyan „Li-Ion-os jármű” – ELEKTROMOBIL tervezése és elkészítése, amely a BOSCH PSB 18 LI-2 akkumulátoros ütvefúrógépet használja a „jármű” meghajtására. A verseny két részből állt, az egyik a körverseny, a másik pedig a gyorsulási verseny. A pályát Miskolc belvárosában alakították ki, a környék ideiglenesen le volt zárva a forgalom elől. A körversenyen egyidőben mindig négy jármű indult. A Start vonalnál felsorakozott a négy csapat, s amikor a zöld lámpa jelzést adott, mindenki megindult a vonalnál várakozó járműve felé. A sofőr beült az autóba, a többiek pedig amilyen gyorsan csak lehetett, beszerelték a hat barkácsgépet a járműbe. A gépek rögzítését követően a sofőr már indulhatott is. Ebből látható, hogy nagy hangsúly volt azon, hogy olyan rögzítési mechanizmust alkalmazzanak a csapatok, amely kellőképpen fixálja a barkácsgépeket, és emellett rövid beszerelési időt tesz lehetővé. A verseny végeztével az a csapat jutott tovább, akinek a sofőrje a legrövidebb idő alatt teljesítette a hét, 300 m hosszúságú kört. A hét kör alatt egyszer kötelezően ki kellett jönni a „box utcába” akkumulátorcserére.
9
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Az első forduló végén a 80 autóból a 20 győztes továbbjutott a második fordulóba, ahogy négyes csoportokra bontva újra megmérkőzhettek egymással. Végül az öt továbbjutó hosszas, nagyon szoros és látványos küzdelmének eredményeként megszületett az abszolut győztes. A gyorsulási verseny egy 100 m hosszú útszakaszon történt, itt is azt mérték, hogy melyik jármű mennyi idő alatt teljesíti az adott távolságot, de itt egyidőben csak egy járgány tartózkodhatott a pályán. 1.2. Műszaki kiírás A BOSCH által megjelentetett műszaki kiírás a következő: - Általános feltételek: a. Feladat egy olyan „Li-Ion-os jármű” – ELEKTROMOBIL - tervezése és elkészítése, amely a BOSCH PSB 18 LI-2 akkumulátoros ütvefúrógépet használja a „jármű” meghajtására. - Méretek, tömeg, kialakítás: a. A jármű tömege nincs megkötve b. Méretek: a méretek meghatározásánál a helyszínre szállítás feltételeit figyelembe kell venni. (szélesség; max.130 cm) c. A versenyző lába és a jármű eleje közötti távolságnak minimum 300 mm-nek kell lennie d. Az ülést úgy kell elhelyezni, hogy a lehető legnagyobb biztonsági távolság legyen az ülés és a jármű oldalai között e. Kötelező egy olyan bukócső beépítése, amelynek minimálisan 100 mm-rel a versenyző bukósisakja fölé emelkedik f. A vezetőülésnek biztosítania kell a vezető megfelelő oldaltartását. A váll és a comb vonalában az ülésnek minimum 100 mm-rel az ülés síkjából ki kell emelkednie. Verseny kagylóülés használata megengedett, g. A járműnek két vagy három nyomvonalon kell haladnia, három vagy négy kerékkel kell rendelkeznie. A kerék és gumiméret, a kerékfelfüggesztés és a meghajtott kerekek száma tetszőleges h. A jármű hasmagasságának min. 70 mm-nek kell lennie - Biztonság: a. Legalább kétpontos rögzítésű biztonsági öv használata kötelező, a rögzítési pontokat fel kell tüntetni a kinetikai vázlaton b. Állvédős bukósisak használata kötelező
10
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
c. Zárt, kezet és lábat is teljes mértékben eltakaró ruházat (pamut) szintén kötelező. Versenyoverál használata megengedett d. A további – eredeti 6 szerszámgépen kívüli - áramforrást (pl.:akkumulátor) biztonságosan kell rögzíteni és a járművön, áramtalanító kapcsolóval kell ellátni e. A járműnek olyan oldalmerevítéssel kell rendelkeznie, amely esetleges ütközés esetén a járművezetőt a sérülésektől megvédi f. A jármű lábtere lefelé nem lehet nyitott (lábsérülések elkerülése végett) g. A jármű felépítménye ne tartalmazzon éles ill. kiálló részeket, amelyek a vezetőt vagy a versenytársakat egy esetleges ütközés során veszélyezteti h. A járművet úgy kell kialakítani, hogy az ülés ülőfelületének magassága max. a jármű szélességének fele lehet. - Vázszerkezet, karosszéria: a. A jármű vázszerkezetének a 2.a bekezdésnek megfelelően kell készülnie, amely hordozza a meghajtó barkácsgépet (gépeket) a teljes hajtásláncot és a hajtott kereket (kerekeket) b. A járműre nem szükséges zárt karosszériát építeni, de a hajtómű mozgó alkatrészeit, biztonsági okokból, védőburkolattal kell ellátni. - Motor: a. A Bosch PSB 18 Li-2 akkumulátoros ütvefúrógép felhasználásával kell a meghajtást megoldani b. A Bosch PSB 18 Li-2 ütvefúrógép a felhasználáshoz nem alakítható át, nem szedhető szét (eredeti funkcióját – ütvefúrógép – nem veszítheti el) c. A jármű meghajtásához kizárólag a 6 darab Bosch PSB 18 Li-2 szerszámgép saját akkumulátora használható fel (átalakítása nem engedélyezett) d. A meghajtáshoz mind a 6 darab Bosch PSB 18 Li-2 kézhezkapott szerszámgépet fel kell használni e. A felhasznált kéziszerszámok saját akkumulátora a felkészülés idejére használható, a verseny teljes ideje alatt a szükséges mennyiségű és feltöltöttségű akkumulátort a Robert Bosch Power Tool Kft. adja a csapat számára f. A 6 darab szerszámgépet a Robert Bosch Power Tool Kft. biztosítja a nevezést követően a csapatoknak - Hajtáslánc: a. Szabadonfutó alkalmazása kötelező. - Kormánymű: a. A jármű könnyen irányítható legyen, a vezető képes legyen normál erőkifejtés mellett az egyenes haladást és a kanyarodást biztosítani. b. A járműnek 10 méter széles versenypályán meg kell tudni fordulni (fordulókör).
11
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
- Fék: a. A járművet két egymástól független fékkel el kell látni (rögzítőfék és üzemi fék), amelyek a mozgásban lévő jármű esetén, a sebesség hatékony csökkentését és a jármű megállítását képesek garantálni (adott sebességről adott méteren tudjon megállni; 25km/h sebességről 7 méteren belül meg kell tudjon állni) b. A fékek közül az egyiknek az álló járművet biztonságosan rögzítenie kell. 1.3. A mi autónk A fent leírtaknak megfelelően mi is elkészítettük saját járművünket, mellyel 2010. április 27-én kijutottunk a miskolci Elektromobil versenyre:
1.1. sz. ábra - A Pécsi Tudományegyetem csapata, az IT Rockets, a sikeres gépátvételt követően a II. Elektromobil versenyen (2010. április 27.) Könnyű, merev, üveg-, és szénszálerősítésű kompozit váz, három kerék, ezek közül a hátsó hajtott, az első kettő kormányzott. Elöl tárcsafék mindkét keréken (üzemi fék), hátul patkófék, ami a rögzítőfék szerepét tölti be. Fokozatmentes sebességváltó (CVT), melynél az áttételszabályozás egy az arra a feladatra szánt vezérlőelektronika és az általa hajtott villanymotor feladata.
12
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
2. Tervezési irányelvek Ahhoz, hogy csapatunk a sikeresen szerepeljen, megkerestük azokat a döntő fontosságú tényezőket, amelyek jelentősen befolyásolják járművünk versenyen való helytállását, és amelyek lehetőséget adnak arra, hogy megfelelő ellenfelei lehessünk a többi konkurens csapatnak. A járművel szemben támasztott követelményeink a következők voltak: •
Legyen könnyű
•
Tengelytávolsága ne legyen túl nagy a kisebb fordulókör érdekében
•
A nyomtáv legyen minél nagyobb a jobb stabilitás miatt (az előírásokat betartva)
•
Rendelkezzen jó gyorsulási képességgel
•
Végsebessége legyen minél nagyobb a jó gyorsulási képesség megtartása mellett
Speciális kompozit anyagból készítettük el a jármű vázát, amely kis súlyt és nagy teherbíró képességet eredményezett. Az üveg-, és szénszálerősítésű, belül üreges elemek falvastagsága alig nagyobb, mint 2 mm, merevségük és terhelhetőségük eléggé kecsegtető. Ezzel sikerült eleget tenni az első követelménynek. A jármű konstrukciója miatt (három kerék, hátul keresztben a hajtómű) a tengelytávolság, és a teljes hossz az elvártnál kissé nagyobb lett, de ez nem okozott semmiféle problémát a vezethetőség terén. Kihasználtuk a maximális megengedett szélességet (max. 130 cm), így az első kerekek nyomtáva is a lehetőségekhez képest a legnagyobb lett. A három kerék miatt ez nagyon fontos, hiszen kanyarodáskor könnyen megbillenhet a jármű, ha nem megfelelő a súlyelosztás és ha nem kellőképpen nagy az első kerekek talajjal érintkező pontjai közötti távolság (nyomtáv). A jó gyorsulás érdekében induláskor kis áttételt kell használni. Így ugyan nagyobb a kerékre jutó forgatónyomaték (mint nagyobb áttétel használata esetén), de viszont a végsebesség ugyanebben az arányban kisebb. Ahhoz, hogy nagy végsebességet is el tudjunk érni, mindenképpen több sebességi fokozatra van szükség. Ha ez teljesül, akkor eleget tettünk a 4. és az 5. követelménynek is (a továbbiakban részletesen ismertetve).
13
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
3. A dolgozat témája, a megoldandó feladatok 3.1. A sebességváltó szükségessége Az előző fejezet végén szó esett arról, hogy hogyan tudunk megfelelni annak a két követelménynek, miszerint a járműnek a jó gyorsulási képesség mellett nagy elérhető végsebességgel is rendelkeznie kell. Ha csak egy sebességi fokozat lenne a hajtó fúrógépek (a továbbiakban motor) és a meghajtott kerék között, akkor az előbbi két előírás közül csak az egyik teljesülhetne. Pontosabban ha az egyik jobban érvényesül, akkor az elnyomja a másikat. Ez alatt azt értem, hogy ha azt szeretnénk, hogy jól gyorsuljon a jármű, akkor kis áttételt kell használni a motor és a kerék között. Ezzel nagy forgatónyomaték kerül a kerékre, így nagyobb lesz a gyorsulás is. Ebben az esetben – a kis áttétel miatt – a jármű végsebessége alacsony lesz. Ha nagy áttételt használunk, akkor nagy végsebesség érhető el, de értelem szerűen a gyorsulás arányosan lecsökken. Ha azt szeretnénk, hogy mindkét tulajdonság egyaránt teljesüljön, akkor több sebességfokozatra, és valamilyen sebességváltóra van szükség. Az egyik megoldandó feladat megtalálni a számunkra legmegfelelőbb sebességváltót. 3.2. Egy másik alternatíva a gyorsulás javítására A motor tulajdonságainak mélyebbre ható tanulmányozását követően láthatóvá válik, hogy a motor által leadott forgatónyomaték és vele együtt a kimenő teljesítmény a fordulatszám függvényében változik. Ez azt jelenti, hogy ha valamilyen úton-módon lehetőség nyílna arra, hogy a motort az idő túlnyomó részében egy olyan szűk fordulatszám tartományban üzemeltessük, ahol a leadott teljesítmény maximális, akkor jelentős előnyt szerezhetnénk azokkal a járművekkel szemben, ahol fokozatos váltót használnak, vagy egyáltalán nem használnak sebességváltót (azaz, a hajtómotor széles tartományban üzemel, ezzel nem mindig a maximális teljesítményt leadva). Ha ezzel csak néhány (8-10) %-os teljesítménynövekedést is el tudunk érni a versenytársakkal szemben, már megérte a fáradozást. A későbbiekben látható lesz, hogy ezzel a módszerrel a fenti értékeknél jóval nagyobb százalékos különbséget is el lehet érni
14
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
(motorfordulatszámtól, váltóáttételtől és sebességtől függően). Ez tehát a másik megoldandó feladat. 3.3. A dolgozat témája A dolgozat témája a fent említett problémák részletes ismertetése, lehetséges megoldásainak áttekintése, összehasonlítása, és ezek közül a legmegfelelőbbnek a kiválasztása, a választás indoklása. Ezt követően sor kerül a feladat előzőleg kiválasztott módon történő megoldására, megvalósításának leírására. A következő fejezetekben összehasonlítjuk a különböző meghajtási módokat, ezek hatását a jármű gyorsulására és végsebességére. Megnézzük, mi történik akkor, ha több sebességi fokozat áll rendelkezésre, és ha ezek között tetszőlegesen kapcsolgathatunk. Végül láthatjuk azt az ideális esetet, amikor a hajtáslánc kiképzése a legoptimálisabb, és azt is, hogy ennek milyen előnyeit élvezhetjük a jármű dinamikáját illetően. A meghajtási módszerek előnyeit-hátrányait számítással igazoljuk, és különböző grafikonokon szemléltetjük a jármű viselkedését az eltérő módszerek használata esetén. Az imént említett ideális eset eléréséhez egy olyan szabályozási eljárást alkalmazunk, amely a motor fordulatszámától és a sebességváltó aktuális áttételétől függően variálja a váltó áttételét (a váltó fizikai korlátait figyelembe véve) oly módon, hogy ennek hatására a motorfordulatszám a kívánt tartományban maradjon, ezzel maximalizálva a leadott teljesítményt és a jármű gyorsulását. Ennek megvalósításához egy olyan rendszert alkalmazunk, melynek bemeneteire a következő jelek érkeznek: •
Impulzussorozat egy külső jeladótól, melynek frekvenciája tükrözi a motor fordulatszámát
•
Kétértékű jel (0 vagy 1), mely azt jelzi, hogy a sebességváltó a legkisebb sebességi fokozatban van-e (alsó végálláskapcsoló)
•
Kétértékű jel (0 vagy 1), mely azt jelzi, hogy a sebességváltó a legnagyobb sebességi fokozatban van-e (felső végálláskapcsoló)
15
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
E három bemeneti jelből a rendszer feladata egy olyan kimenő jel előállítása, mely megmondja, hogy a sebességváltó áttételét kell-e változtatni, és ha igen, akkor milyen irányba történő beavatkozásra van szükség. A dolgozat témája e folyamat ismertetése.
4. Különböző hajtási módok összehasonlítása 4.1. Az elektromotor jellemzői A
jármű
gyorsulása
egyenesen
arányos
a
motor
adott
fordulaton
leadott
forgatónyomatékával és fordított arányban van a motor és a kerék közti áttétel nagyságával. A jó gyorsulás érdekében tehát nagy forgatónyomatékra és kis váltóáttételre van szükség. A motor forgatónyomatéka adott, hiszen ez a fúrógépek villanymotorjainak vele járó jellemzője. A nyomaték nem állandó. Induláskor (kis fordulaton) értéke nagy, a fordulatszám növekedésével pedig egyre kisebb, míg a maximális motorfordulaton nulla. Ez látszik a BOSCH PSB 18 LI-2 szerszámgép [2] villanymotorjának [3] nyomaték-fordulatszám görbéjéből is:
4.1. sz. ábra - A Mabuchi RS-775WC-8514 típusú szénkefés motor jelleggörbéi 16
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Számunkra jelen esetben csak az „N” (fordulatszám) jelzéssel ellátott csökkenő tendenciát mutató egyenes szakasz érdekes. A vízszintes tengely a motor által leadott nyomaték. Látható, hogy 0 RPM-es fordulatszámnál maximális a nyomaték (1216 mNm), és hogy 0 mNm-es nyomaték mellett maximális a fordulatszám (19500 RPM). Az itt ábrázolt fordulatszám (és nyomaték) értékek magára a villanymotorra vonatkoznak, a fúrógép tokmánya közel sem forog ilyen nagy sebességgel. A szerszámgépet a gépbe beépített belső kétfokozatú sebességváltó segítségével alacsony fokozatba kapcsolva használjuk, mert a nagyobb fokozat olyan biztonsági védelemmel van ellátva, ami lehetetlenné tenné a gép nagyobb mértékű terhelhetőségét. Így, az alacsony fokozatban a gép tokmányának fordulatszám tartománya 0-tól 400 RPM-ig terjed. Ki lehet számolni, hogy ez mekkora áttételt jelent: 400 RPM / 19500 RPM = 0,0205, azaz 1 : 48,75. Ez azt jelenti, hogy a fordulatszám a motortól a tokmányig a 48,75-ad részére csökkent, de ez egyben azt is magával vonja, hogy a tokmányon mérhető forgatónyomaték a motor forgatónyomatékának a 48,75-szorosa. A motor indítónyomatéka 1216 mNm, így a tokmányon érzékelhető forgatónyomaték az indulás pillanatában 1216 mNm * 48,75 / 1000 = 59,28 Nm. A hat fúrógépé összesen 355,68 Nm! Ez meglehetősen nagy érték, összehasonlításképp egy kisebb személyautó motorjának maximális forgatónyomatéka 80-100 Nm környékén van. 4.2. A végsebesség és az ehhez tartozó motor:kerék áttétel meghatározása Előzetes megbeszélés eredményeképpen arra a megfontolásra jutottunk, hogy a versenypályán a jármű végsebessége elegendő, ha 40 km/h környékén van, mert a pálya elég kanyargós, így nem tudnánk ennél nagyobb sebességre gyorsítani. A gyorsulási versenyen viszont hosszú, egyenes szakasz áll rendelkezésre, így itt érdemes lenne nagyobb végsebességet alkalmazni. Ennek hatására 70 km/h-s végsebesség mellett döntöttünk. Ennek alapján már kiszámítható, hogy a 20 hüvelyk átmérőjű hajtott keréknek mekkora percenkénti fordulatszámra van szüksége a maximális 70 km/h-s sebességhez. Az erre szolgáló képlet a következő:
17
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
𝑣𝑣 =
N ∙ d ∙ π ∙ 60 1000
4.1. sz. képlet – A sebesség, a fordulatszám és a kerékátmérő kapcsolata ahol „v” a kerületi sebesség [km/h], „N” a fordulatszám [1/min], „d” pedig a hajtott kerék átmérője [m]. A képlet alapján számítva 70 km/h-s sebességhez 731 RPM-es fordulatszám tartozik. Ez a hajtott kerék maximális fordulatszáma. Ezt kell a megfelelő áttétel segítségével összepárosítani a motor maximális 400 RPM-es fordulatszámával. Áttétel alatt azt az arányszámot értem, ami kifejezi, hogy a hajtott kerék fordulatszáma hányszorosa az azt meghajtó motor fordulatszámának. Ez alapján ez az érték számolható: 731 RPM / 400 RPM = 1,8275, azaz 1 : 0,5472. Pontosan ekkora áttételt nehéz lenne kivitelezni, de jól lehet közelíteni pl. két különböző fogszámú lánckerék összeláncolásával. Ekkora áttétel szükséges a motor és a kerék közé a legnagyobb sebességi fokozatban (70 km/h-s sebesség eléréséhez). 4.3. A jármű gyorsulása Ebben az alfejezetben összehasonlítunk három olyan gyorsulási esetet, amelyek között a különbség csak a használt áttételben van. Az első esetben végig fix áttételt használunk (nincs sebességváltó), a másodikban három különböző áttétel között fokozatosan kapcsolgatunk a legkisebbtől kezdve a legnagyobbig (háromfokozatú sebességváltó), a harmadik esetben pedig végtelen sok áttétel közül válogatunk úgy, hogy minden időpillanatban
a
számunkra
legkedvezőbbet
választjuk
ki
(fokozatmentes
sebességváltó). Mindhárom esetben megegyezik a legnagyobb sebességi fokozat, így a maximális elérhető sebesség is azonos (70 km/h). A fejezet végére kirajzolódnak a jármű gyorsulását illető, eltérő esetek közti különbségek. 4.3.1. Gyorsulás fix áttétel esetén Ha az autóban nem alkalmaznánk sebességváltót, hanem csak egy ”fix” áttétel kapcsolná össze a motort a hajtott kerékkel, akkor a jármű gyorsulása a következőképp alakulna (a 4.2.-es fejezetben kiszámított 1,8275-ös áttételt használva):
18
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
4.2. sz. ábra - Az Elektromobil dinamikájára vonatkozó görbék fix (1,8275-es) áttétel esetén A grafikon görbéi a következő jellemzőket mutatják:
4.3. sz. ábra – Jelmagyarázat a járműdinamikai grafikonokhoz Az ábrán a narancssárga (motorfordulatszám) görbe azért nem látszik, mert takarásban van a zöld (sebesség) görbe által. A grafikonról leolvasható, hogy a sebesség növekedésének mértéke kezdetben a legnagyobb, s a motorfordulatszám (és a sebesség) növekedésével folyamatosan csökken. Ez az elektromotor nyomaték-fordulatszám jelleggörbéjének tudható be (4.1. sz. ábra). A sebesség növekedése addig tart, míg a motorfordulat el nem éri a maximális 400 RPM-es értéket. Ekkor a jármű sebessége 70 km/h. A piros színnel megkülönböztetett görbe az Elektromobil gyorsulásáért felelős gyorsító nyomatékot mutatja, mely közvetlenül függ a motor által leadott nyomatéktól és a használt áttételtől. Jelen dolgozat célja a sebesség görbe alatti terület, azaz az adott idő alatt megtett út maximalizálása.
19
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
A három különböző meghajtás összehasonlítását adott idő alatt megtett út (vagy adott távolság megtételéhez szükséges idő) alapján végezzük. Mindhárom esetben kiszámítjuk, hogy 100 m-t mennyi idő alatt tesz meg a jármű. Miután ez megtörtént, viszonyítjuk őket a leggyorsabb esetben elért időhöz, így megkapjuk, hogy amikor a legjobb eredményt elért hajtással a megtett távolság elérte a 100 m-t, abban az időpillanatban a másik két hajtási móddal éppen mekkora (mennyivel kisebb) távolságnál járunk. A sebességváltó nélküli hajtással elért eredmény:
4.4. sz. ábra – 100 m megtételéhez szükséges idő fix (1,8275-es) áttétel esetén 4.3.2. Gyorsulás háromfokozatú sebességváltóval A három sebességfokozat közül a legnagyobbnak az áttétele a mindhárom esetben használt maximális áttétel: 1,8275, így itt is 70 km/h a jármű végsebessége. A másik két fokozat úgy lett meghatározva, hogy a tartományt egyenlő részekre osszák: az első fokozat áttétele 1,8275 * 1/3 = 0,60917, a második fokozaté 1,8275 * 2/3 = 1,2183. Akkor történik sebességváltás, amikor a motorfordulat elér egy előre meghatározott értéket (jelen beállítás mellett a maximális motorfordulatszám 90%-át). A váltás idejét vehetnénk nullának, de mivel a valóságban a fokozatok közti váltás igényel valamekkora időt, ezért a szimulációban is figyelembe veszünk egy valószerű késleltetést, mégpedig 0,3 s-ot. A valóságban ez az idő valószínűleg nagyobb ennél az értéknél, de tételezzük fel, hogy a sebességváltáshoz elegendő csupán ekkora időtartam. A szimuláció során ezalatt az idő alatt a jármű sebessége nem csökken (mint a valóságban), mert eltekintünk mindenféle ellenállástól, ami a járműt gyorsító erő ellen hat (ez mindhárom szimulációra igaz), ezzel is javítva a háromfokozatú váltóval elért időeredményt:
20
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
4.5. sz. ábra – 100 m megtételéhez szükséges idő háromfokozatú sebességváltó esetén És íme a grafikon:
4.6. sz. ábra - Az Elektromobil dinamikájára vonatkozó görbék háromfokozatú sebességváltó esetén Az első szembetűnő különbség a fix hajtás grafikonjával szemben, hogy kitüntetett időpillanatokban a görbék mindegyikén észrevehető egy fajta törés, vagy ugrás (legkevésbé a kék, megtett út görbe esetében). Ezek az időpillanatok a sebességváltások időpontjai. Látható, ahogy a motor fordulatszáma (narancssárga) elér egy bizonyos értéket, akkor a váltás következtében hirtelen visszaesik. A gyorsító nyomatékban (piros) szintén vannak ugrások, megjegyezném, hogy ez a görbe a sebességváltás ideje alatt 0 értéket vesz fel. Ezzel érjük el azt, hogy a jármű ezalatt a 0,3 s alatt ne gyorsuljon. Ha a légellenállás és egyéb ellenerők következtében fellépő lassulást is belevettük volna a modellbe, akkor a piros görbe a váltás ideje alatt negatív értékeket venne fel, de az egyszerűség kedvéért ettől eltekintünk. A fix áttételes hajtással összehasonlítva látható, hogy a gyorsító nyomaték az időtartomány elején ez esetben jóval nagyobb, és ennek következtében nagyobb a sebesség növekedésének mértéke is.
21
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Figyeljük meg, hogy az első sebességváltás időpontja (~9 s) előtt és után más a járműre ható gyorsító nyomaték. Értéke a váltás időpontja után közvetlenül kb. 2,5-szer nagyobb, mint közvetlenül a sebességváltás előtt. Ugyanilyen arányú nyomatékbeli különbséget figyelhetünk meg a második sebességváltás időpontjának közvetlen közelében. Ezek a gyorsító nyomatékban lévő hirtelen ugrások jelentősen befolyásolják a jármű gyorsulását, azaz a sebesség változás mértékét: látható, hogy a zöld (sebesség) görbe meredeksége a váltások pillanataiban kb. 2,5-szeresére növekszik. A grafikonról leolvasva az első váltás következtében a motorfordulatszám 360 RPM-ről a felére, 180 RPM-re csökken, a váltóáttétel pedig 0,60917-ről a kétszeresére, 1,2183-re növekszik. Fele akkora motorfordulatszámon kétszeres áttétel mellett azt hihetnénk, hogy csökken a gyorsító nyomaték, mert hasonló körülmények között egy robbanómotoros hajtás így viselkedne. Ez esetben azonban az ellenkezője történik. A villanymotor legfőbb különbsége a belsőégésű motorokhoz képest az, hogy a fordulatszám csökkenésével növekszik a motor által leadott nyomaték (4.1. sz. ábra), ellentétben a robbanómotorral, hiszen ott a fordulatszám változása kevésbé befolyásolja a motor nyomatékát. Ahhoz, hogy kiderítsük, hogy az áttétel változása milyen hatással van a motor fordulatszámára, nyomatékára és ezen keresztül a gyorsító nyomatékra, szükség van némi számításra: 4.3.3. Hogyan hozzuk ki a motorból és a váltóból a maximumot? Vegyük azt az esetet, mikor a jármű sebessége éppen 20 km/h. Próbáljunk ehhez a sebességhez találni egy olyan áttételt, amely használata esetén a kerékre ható forgatónyomaték (gyorsító nyomaték – piros görbe) a legnagyobb. Az alább látható 4.1. számú táblázatban 20 km/h-s haladási sebesség mellett 0,55-től 2ig terjedő áttétel tartományban 0,05-os lépésekben ki van számolva a motor aktuális fordulatszáma, az ehhez tartozó forgatónyomaték és a hátsó kerékre ható (a jármű gyorsulásáért közvetlenül felelős) gyorsító nyomaték. Megfigyelhető, hogy a keréken megjelenő forgatónyomaték a motorfordulatszám növekedésével egy bizonyos pontig növekszik, majd ezután csökkenni kezd. Egy kitüntetett fordulatszám értéknél csúcsa van a görbének. Ezt illusztrálja a 4.7. számú ábra. Ez a kitüntetett érték a motor maximális (üresjárati) fordulatszámának pontosan a fele. Ha felmerül bennünk a kérdés, hogy miért pont a fele, akkor elvégezhetjük a számítást több különböző sebességre is.
22
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Sebesség (v) [km/h]
Váltóáttétel
Motor fordulatszáma (N) [1/min]
Motor nyomatéka (Mmot) [Nm]
Nyomaték a keréken (Mker) [Nm]
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0,55 0,60 0,65 0,70 0,75 0,80 0,85 0,90 0,95 1,00 1,05 1,10 1,15 1,20 1,25 1,30 1,35 1,40 1,45 1,50 1,55 1,60 1,65 1,70 1,75 1,80 1,85 1,90 1,95 2,00
380 348 321 298 278 261 246 232 220 209 199 190 182 174 167 161 155 149 144 139 135 131 127 123 119 116 113 110 107 104
18 46 70 90 108 124 137 149 160 170 179 187 194 201 207 213 218 223 228 232 236 240 243 246 250 253 255 258 260 263
33 77 108 129 144 154 161 166 169 170 170 170 169 167 166 164 162 159 157 155 152 150 147 145 143 140 138 136 134 131
4.1. sz. táblázat – A gyorsító nyomaték alakulása különböző áttételek esetében, adott sebesség mellett
A motor nyomatéka [Nm] A keréken mérhető nyomaték [Nm] 300
Nyomaték (M) [Nm]
250 200 150 100 50 0 0
100 200 300 A motor fordulatszáma (N) [1/min]
400
4.7. sz. ábra – A gyorsító nyomaték csúcsa a motor maximális fordulatszámának felénél 23
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Ha így teszünk, akkor láthatjuk, hogy az újonnan kapott piros görbe csúcsánál a gyorsító nyomaték az ábrázoltnál akár kisebb, akár nagyobb, az a tény, hogy a csúcsponthoz tartozó fordulatszám érték a motor maximális fordulatszámának pontosan a fele, továbbra sem változik. Ez a piros görbe - jellegét tekintve - nem más, mint a motor teljesítménygörbéje.
4.8. sz. ábra – A Mabuchi RS-775WC-8514 típusú szénkefés motor jellemzői A 4.8. számú ábrán a fúrógépek villanymotorjainak jellemzői láthatók [3]. Ennek alapján elkészítettem a hat fúrógépből álló ”motor” tulajdonságait ábrázoló grafikont (amit egy program generál), mely a 4.9. számú ábrán látható:
4.9. sz. ábra – Az elektromobil motorjának jelleggörbéi
24
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Ez a grafikon nagyban hasonlít a 4.1. számú ábrára, mely magának a villanymotornak a tulajdonságait mutatja. A fenti ábra annyiban tér el ettől, hogy nem egy villanymotor fordulatszámát/nyomatékát tükrözi, hanem a hat gép tokmányain együttesen mérhető fordulatszámot/nyomatékot. A két ábrán a fordulatszám, az áram és a hatásfok görbék megegyeznek (a 292-szeres nyomaték és a 49-szeres fordulatszám különbséget figyelmen kívül hagyva), a fenti ábra ezen felül még tartalmazza a felvett és leadott teljesítményt, és a feszültséget. [4],[5],[6] A 4.8. sz. ábra szerint a motor kimenő teljesítménye 273 W a legnagyobb hatásfok mellett. Ha összehasonlítjuk a program által kiszámított 1640 W-os értékkel [7], akkor láthatjuk, hogy ez utóbbi pontosan a hatszorosa az előbbi teljesítmény értéknek. Ezek szerint a program jól számolt. Ezt az is bizonyítja még, hogy a program által kiszámított maximális 81,1 %-os hatásfok érték a 4.1.-es ábra szerint is helytálló. Még egy dolgot meg kell említeni (ami számunkra fontos), hogy a számítás szerint a motor maximális leadott teljesítménye 5 lóerő. Ami ennél is fontosabb, hogy ezt az 5 lóerőt a motor 200 RPM-es fordulaton adja le, ami a maximális 400 RPM-es fordulatszámnak az ½ része! 4.3.4. Gyorsulás fokozatnélküli sebességváltóval Most már látható, hogy az lenne az optimális meghajtási mód, ha a motor mindig a maximális fordulatszámának a felén üzemelhetne. Ezt nagy részben meg is lehet valósítani egy olyan sebességváltóval, melynek áttétele nagyon kis lépésekben változtatható. Az Elektromobil tervezése során ezért is döntöttünk a CVT mellett. A CVT az angol Continuously Variable Transmission rövidítése. Szó szerinti fordításban folyamatosan változtatható sebességváltót jelent, de a magyar nyelvben a fokozatmentes sebességváltó az elfogadott megnevezés (bár gyakran találkozhatunk a helytelen ”CVT váltó” megnevezéssel is). Sok területen alkalmazzák az ilyen sebességváltókat, ezek közül kettőt megemlítenék: a sokak által jól ismert, egyszerű, hétköznapi robogókat, amelyekben többnyire csak CVT-t alkalmaznak, s néhány manapság gyártott (főleg japán) személyautót, melyeknél szintén kihasználják a váltó nyújtotta előnyöket. Ez alkalommal a szimuláció során olyan fokozatmentes váltót alkalmazunk, melynek maximális áttétele az előző két esetben is használt 1,8275. Ez azt jelenti, hogy a végsebesség itt is 70 km/h. A fokozatmentes váltók általában nagyobb áttétel tartományt
25
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
fednek le, mint a normál, fokozatos sebességváltók. Az Elektromobilban alkalmazott fokozatmentes váltó legnagyobb sebességfokozatához tartozó áttétel több, mint a 7szerese a legkisebb fokozatához tartozó áttételnek. Ez jelentősen nagyobb tartomány, mint amit az előző esetben ismertetett háromfokozatú váltó le képes fedni. Ott a legnagyobb fokozatban 3-szor akkora volt az áttétel, mint a legkisebben. Fentebb említésre került, hogy jelen szimulációban a CVT legnagyobb sebességfokozathoz tartozó áttétele ugyanúgy 1,8275, mint az előző két esetben. Ebből az következik, hogy a legkisebb fokozatban elég kicsi, pontosan 1,8275 * 1/7 = 0,26107 az áttétel értéke. Ilyen kis áttétellel meglehetősen nagy gyorsulás érhető el, igaz, csak nagyon rövid ideig, hiszen a motor fordulatszáma szinte egy pillanat alatt eléri a kívánatos 200 RPM-es értéket. Amint ez megtörtént, a fordulatszám 200 RPM-en való tartásához folyamatosan, kis lépésekben növelni kell a váltóáttételt úgy, hogy a motor fordulatszáma nagyon közel maradjon a 200-as értékhez. Ezzel a jármű (szokatlan módon) állandó motorfordulaton gyorsulni fog mindaddig, míg a váltóáttétel el nem éri a maximális 1,8275-es értéket. Ezután - mivel nem lehet magasabb fokozatba váltani - a motor fordulatszáma már elkezd emelkedni egészen a végsebesség eléréséig. Ennek a módszernek az a nagy előnye az előző, fokozatos váltási módokhoz képest, hogy a motor a gyorsítási időtartam jelentős részében egy olyan fordulatszámon jár, ahol a leadott teljesítménye, s ezáltal a hajtott kerékre jutó gyorsító nyomaték a lehető legnagyobb. Lássuk, 100 m-en milyen időeredményt tudunk ezzel elérni:
4.10. sz. ábra – 100 m megtételéhez szükséges idő fokozatmentes sebességváltó esetén Sebességváltó nélkül 21,262 s-os, háromfokozatú váltóval 17,956 s-os, fokozatmentes váltóval pedig 16,459 s-os időt sikerült elérni, a három gyorsulási eset között a különbség pedig kizárólag az eltérő sebességváltók miatt van. Az időkülönbségek is sokat mondanak, de talán látványosabb az összehasonlítás, ha a 16,459 s alatt megtett távolságot nézzük. Ezt szemlélteti a 4.11. sz. ábra:
26
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
16,459 s alatt megtett út: Fokozatmentes sebességváltóval
100
Háromfokozatú sebességváltóval
87,3
Sebességváltó nélkül (fix áttétel)
62,4 0
20
40
60
80
100
Megtett távolság [m]
4.11. sz. ábra – Azonos idő alatt megtett út különböző sebességváltók alkalmazásával A fokozatmentes váltóval 16,459 s alatt megtett út 14,5 %-kal több a háromfokozatú váltóval teljesített távolságnál, s 60,3 %-kal nagyobb a fix áttétel esetében elért értéknél. A különbség méterben kifejezve 12,7 m és 37,6 m. A fokozatmentes váltó a gyorsulási versenyen jelentős előnyt jelent, még a háromfokozatú sebességváltós megoldással szemben is. A jármű mindhárom esetben ugyanazokkal a paraméterekkel rendelkezik, ugyanaz a motor hajtja, a tömege is ugyanakkora, a különbség csak a használt sebességváltóban van. Ennyit számít az, hogy a motor - teljes ”gázon” való gyorsítás mellett - mekkora fordulatszámon jár. A motor fordulatszáma határozza meg a motor által leadott nyomatékot, az áttétel pedig (adott sebesség mellett) a motor fordulatszámát. A jármű gyorsulását a motor nyomatéka és az áttétel együttesen befolyásolja. A gyorsulás és a motor által leadott teljesítmény bármilyen sebesség mellett akkor lesz maximális, ha mindig olyan motorfordulatszám - áttétel párt alkalmazunk, ahol a váltóból kimenő, azaz a hátsó kereket meghajtó forgatónyomaték a legnagyobb. Ez pedig - mint fentebb láthattuk - csak akkor teljesül, ha a motor aktuális fordulatszáma az üresjárati fordulatszámának pontosan a fele. A 4.12. sz. ábrán látható a jármű fokozatmentes váltóval történő gyorsulására vonatkozó grafikon:
27
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
4.12. sz. ábra - Az Elektromobil dinamikájára vonatkozó görbék fokozatmentes sebességváltó esetén Ami szembetűnő változás a háromfokozatú váltós megoldás grafikonjához képest, hogy a gyorsító nyomaték (piros) ez esetben egy törés és ugrás nélküli folytonos görbe. Fontos még, hogy a görbe alatti terület jelen esetben jóval nagyobb (a váltó korlátain belül a lehető legnagyobb), bár ez alapján akkor lehetne helyesen hasonlítani, ha a gyorsító nyomaték nem az idő, hanem a sebesség függvényében lenne feltüntetve. Látható még, hogy a motor fordulatszáma (narancssárga) a kb. 1 mp-től a 18 mp-ig terjedő időtartományban konstans 200-as értéket vesz fel. Ezen időtartam alatt a motor a maximális teljesítményével működik, ami kb. 5 lóerő (3,725 kW). Ezt mutatja a lila görbe. A teljesítmény görbét ezidáig nem lehetett látni, most először van csak feltüntetve. Az egyszerűség és a jobb érthetőség kedvéért lehagytam az előző grafikonokról, de a következő fejezetben láthatjuk mindhárom ábrát egymás mellett, így könnyebben össze lehet őket hasonlítani. Ezeken már fel lesz tüntetve a teljesítmény, s emellett még egy eddig nem látott tulajdonság is, a motor hatásfoka. Megfigyelhetjük, hogy a zöld (sebesség) görbe a három grafikon közül a fenti esetében rendelkezik a legnagyobb kezdeti meredekséggel. Ennek következtében a sebesség értéke jelen ábrán bármely időpillanatban nagyobb, mint a két előző szimulációban az azonos időpillanatokhoz tartozó értékek. Ez azt vonja magával, hogy a sebesség görbe
28
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
integrálja, vagyis a megtett út (kék) szintén ez esetben a legnagyobb, bármely időpillanatot is nézzük. A sebességváltó áttételéről azt lehet elmondani, hogy 1 mp-től kb. 18 mp-ig a sebesség nagyságával arányos (mivel ezen időtartam alatt a motor fordulatszáma konstans), ezen időtartományon kívül viszont két féle értéket vesz fel. Az indulás pillanatától kezdve a sebességváltás megkezdéséig a legkisebb sebességfokozathoz tartozó áttétel értékét, 0,26107-et. Értéke ezen kívül lehet még a legnagyobb sebességfokozathoz tartozó áttétel (1,8275), amivel azután rendelkezik, miután a motor fordulatszáma a nagyobb sebességi fokozatba váltás lehetetlensége miatt elkezdi túllépni a 200 RPM-es értéket. A fokozatmentes sebességváltóval mind az út, a sebesség, és a gyorsulás tekintetében jobb eredményt tudtunk elérni, mint az előzőleg ismertetett váltó típusokkal, köszönhetjük mindezt a teljesítmény görbe alatti nagy területnek, mert a három meghajtási módszer közül ez jelen esetben a legnagyobb. 4.3.5. A három hajtási mód összehasonlítása A következőkben láthatjuk egymás mellé állítva a három különböző sebességváltóval történő gyorsulás szimulációinak grafikonjait. Ezeken látható mind a hét mennyiség, azok is, amelyek az előző ábrákon még nem voltak megjelenítve. A jelmagyarázat az ábrákhoz megegyezik a 4.3. sz. ábrával, de a könnyebb olvashatóság érdekében ezt újra feltüntetem:
4.13. sz. ábra – Jelmagyarázat a járműdinamikai grafikonokhoz Alább látható a három grafikon (4.14. sz. ábra). Fentről lefelé: nincs sebességváltó (fix áttétel), háromfokozatú sebességváltó és fokozatmentes sebességváltó:
29
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
4.14. sz. ábra – Az Elektromobil dinamikájára vonatkozó görbék a három különböző sebességváltó esetében az idő függvényében
30
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
4.15. sz. ábra – Az Elektromobil dinamikájára vonatkozó görbék a három különböző sebességváltó esetében a sebesség függvényében
31
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Mint egyszer már említettem, a különböző váltókkal elérhető gyorsító nyomatékot az idő függvényében nem lehet helyesen összehasonlítani, viszont ha a sebesség függvényében ábrázoljuk őket, akkor ez megoldhatóvá válik. A 4.15. sz. ábrán láthatjuk a jármű dinamikáját leíró mennyiségeket, ezúttal a sebesség függvényében ábrázolva. A három grafikont szemlélve tisztán látható, hogy a gyorsító nyomatékok kb. 42 km/h-s sebességtől felfelé teljesen megegyeznek (az azonos váltóáttétel miatt), ezen sebesség alatt viszont minden sebesség-értéknél a fokozatmentes váltóval elért gyorsító nyomaték a legnagyobb a három közül. Látható, hogy a harmadik grafikon piros görbéje alatt helyezkedik el a másik két grafikon piros görbéje, sehol sem emelkedik e fölé egyik sem. A fokozatmentes váltóhoz tartozó piros görbe alatti területből fednek le bizonyos részeket a másik két fajta váltóhoz tartozó piros görbék, mindegyik alatti terület csak része a fokozatmentes váltóhoz tartozó piros görbe alatti területnek. Itt látszik egyértelműen a gyorsító nyomatékban (és a jármű gyorsulásában) jelentkező különbség. Megfigyelhetjük, hogy a teljesítmény görbe alatti terület is a harmadik esetben a legnagyobb, ez igaz a 4.14.-es ábrára is. A motor hatásfokáról eddig még nem esett szó. Visszatérve a 4.9.-es ábrához, leolvasható, hogy a motor maximális hatásfoka 81,1 %, ez azt jelenti, hogy a befektetett villamos teljesítmény 81,1 %-a alakul át mechanikai teljesítménnyé. Ezen hatásfok mellett a motor teljesítménye jóval alacsonyabb, a maximális teljesítményének kb. a 44 %-a (2,2 LE). Ez is fordulatszámfüggő, jelen esetben a maximális hatásfok a motor üresjárati fordulatszámának a 7/8 részénél érhető el. Ez akkor lenne fontos, ha a verseny során nem az időeredmény, hanem a megtett távolság lenne az értékelés alapja. Ekkor mindenképpen 350 RPM-es fordulaton kellene üzemeltetni a motort, s a lehető legalacsonyabb sebességen kellene haladni. A mi esetünkben a maximális teljesítmény mellett a hatásfok csupán 52 %, de ez is messze meghaladja a belsőégésű motorok (maximális) hatásfokát.
32
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
5. A fokozatmentes sebességváltó (CVT) működése A fokozatos sebességváltókban adott fogszámú fogaskerék vagy lánckerék párok adják át egymásnak a hajtást. A fogak számának aránya határozza meg az áttételt. Ahány fogaskerék vagy lánckerék párt lehet alkotni, annyi sebességfokozat érhető el az adott sebességváltóval. A fokozatok fogas/lánckerék párjai közti áttétel adott, ugyanígy a párok száma is. Emiatt az áttétel szakaszos értékkészletű, azaz csak kitüntetett értékeket vehet fel. Ezzel szemben a fokozatmentes váltókkal végtelen sok áttétel megvalósítható. Ez nem azt jelenti, hogy az áttétel értéke tetszőleges, sokkal inkább azt, hogy az áttétel értéke egy tartományon belül tetszőleges (nincsenek kitüntetett felvehető értékek). A tartományon belül az áttétel változtatása nagyon kis lépésekben is lehetséges, így mondhatjuk, hogy az áttétel folytonos értékkészletű. A fokozatmentes sebességváltóknál a forgatónyomaték továbbítása általában nem fogas- vagy lánckerekekkel történik, hanem valamilyen kúpos forgástesteken keresztül. Működésük alapja, hogy a kúpos forgástestek felületén a forgás tengelyétől távolodva növekszik a kerületi sebesség, s csökken a forgatónyomaték. A forgó alkatrész felületéről a nyomaték átadása egy másik ugyanilyen test számára egyszerű felületi érintkezés folytán történik, nincs fogazás, ami elősegítené az erő átadását. Az áttétel változtatása során az érintkezési pontokat a forgástengelytől távolabbra vagy ahhoz közelebb helyezik át, így módosítva a fordulatszámot és a nyomatékot. Több féle fizikai megvalósítása létezik ezeknek a sebességváltóknak, de a működésük elve nagyon hasonló. Leggyakoribbnak számít a szíj hajtású CVT, de az autóiparban alkalmazzák még a gyűrűs (toroidal) CVT-t is. Szíj hajtású CVT-vel gyártják a mindenki által jól ismert robogók nagy részét, s a személyautók fokozatmentes sebességváltóinak túlnyomó többsége is ilyen fajtájú. Az 5.1.-es ábrán látható a szíj hajtású CVT működésének elve.
33
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
5.1. A szíj hajtású CVT működése
5.1. sz. ábra – Az áttétel változtatása szíj hajtású CVT-vel [8] A szíj hajtású fokozatmentes sebességváltó - amint a fenti ábrán is látható – két, rögzített pozíciójú tengelyekre szerelt kúpos tárcsapárból és az őket összekötő bordásszíjból áll. Az egy tengelyen lévő tárcsák közül az egyik (mindkét tengely esetében) a tengelyre van rögzítve, a másik pedig axiális irányban bizonyos határok között tud mozogni a tengelyen. A hajtott tengelyen a mozgó tárcsa egy, a tengelyhez fixált erős rugó által a rögzített tárcsa felé van nyomva oly módon, hogy a két tárcsa a köztük lévő bordásszíjat oldalról összeszorítja. A hajtó tengelyen a csúszó tárcsa pozíciója (bizonyos korlátok között) tetszőlegesen beállítható, ezzel meghatározható az ezen a tengelyen lévő tárcsák közti távolság, így a szíj fordulási átmérője. Minél jobban közelítjük egymáshoz a hajtó tengelyen elhelyezett tárcsákat, annál nagyobb ívben fog a tárcsák között a szíj átfordulni, s a hajtott tengelyen a rugó ellenében annál jobban széthúzódnak a tárcsák, ezzel csökkentve ott a szíj fordulási átmérőjét. Nagy hajtó tengelyi szíj átmérő kis hajtott tengelyi szíj átmérő mellett nagy sebességi fokozatot, s kis hajtó tengelyi szíj átmérő nagy hajtott tengelyi szíj átmérő mellett kis sebességi fokozatot jelent. Robogók esetében a csúsztatható tárcsa pozícióját a motor fordulatszámának függvényében kis röpsúlyok szabályozzák. A röpsúlyok tömegében
34
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
és a nyomórugó erejében történő változások befolyásolják a jármű gyorsulását és végsebességét. A szíj hajtású CVT-vel felszerelt személyautóknál a mozgatható tárcsa állítása hidraulikus vagy mechanikus elven történik, a vezérlést pedig egy külön erre a célra készült elektronika biztosítja. 5.2. A gyűrűs (toroidal) CVT működése A gyűrűs CVT működése látszólag eltér a szíjas váltóétól, de alapelve ugyanaz: a hajtást egymásnak átadó alkatrészek közötti érintkezési felület forgástengelytől való távolságának változtatásával változik a váltóáttétel. Egy ilyen fajta sebességváltó elvi rajza látható az 5.2.-es ábrán:
5.2. sz. ábra – Az áttétel változtatása gyűrűs CVT-vel [9] A függőleges tengelyen elhelyezett két kúpos forgástest egyike a hajtó, másik a hajtott alkatrész. Mint az ábrán is látszik, az áttétel állítása a középső két forgó elem szögének változtatásával lehetséges. Az ezen az elven működő sebességváltók (még) ritkák, többnyire a nagyobb testű és tömegű személyautókban alkalmazzák őket.
35
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
6. Az Elektromobil sebességváltója 6.1. A sebességváltó jellemzői, működése A járművünkben használt sebességváltóhoz egy használaton kívüli 150 cm3-es nagytestű robogóból jutottunk hozzá. Ez egy szíj hajtású fokozatmentes váltó, melyen az áttétel szabályozó mechanikát kissé átalakítottuk, hogy lehetséges legyen az áttétel tetszőleges, pontos beállítása. A sebességváltó áttétel tartománya nagy, a legnagyobb fokozatbani áttétel több, mint a 7-szerese a legkisebb fokozathoz tartozó áttételnek. Ezzel a jó gyorsulás mellett nagy végsebesség elérése is lehetséges. A robogóból kiszerelt alkatrészek közül a kúpos tárcsákat, a szíjfeszítő rugós mechanizmust és a bordásszíjat (variátorszíjat) tudtuk felhasználni. A tárcsákhoz egyedi tengelyeket készítettünk, az áttétel állításához pedig egy speciális, villanymotor működtetésű tárcsa kiemelő szerkezetet gyártottunk. Emellett megvalósításra került egy szabályozó áramkör, benne egy PIC mikrovezérlővel, amely a motor fordulatszámát mérve kapcsolgatta a váltóáttétel állító villanymotorra a megfelelő polaritású feszültséget. Az áttétel állító villanymotor valójában egy hajdani akkumulátoros fúrógép, melyről eltávolítottuk a felesleges részeket. Csak a motort, a hajtóművet és a befogótokmányt használtuk fel. A tápfeszültséget nem az egykori akkumulátoráról, hanem a szabályozó elektronikától kapja, mely egy 12 V-os kismotor akkumulátorról működik. Az áramkörnek a motor fordulatszámának megméréséhez szüksége van egyéb alkatrészekre is, ilyen pl. az optokapu és a lyukas tárcsa. Az optokapu két alkatrész, egy fény kibocsátó dióda és egy fototranzisztor egy tokba zárva. Ezen két alkatrész az optokapun belül úgy van elhelyezve, hogy közéjük beférjen egy külső test, melynek a feladata a dióda fényének eltakarása. A dióda infravörös fényt bocsát ki, mely hatására a fototranzisztor vezetni kezd. Ha a tranzisztorhoz nem jut el a dióda által kibocsátott fény, akkor nem vezet. Ezt a jelenséget kihasználva, ha az optokapun lévő nyílásba belógatunk egy forgó tárcsát, melynek a kerületén lyukak vannak, akkor a tranzisztoron átfolyó áramimpulzusok frekvenciája a tárcsa fordulatszámával lesz arányos. Ezeken kívül szükség van még két végálláskapcsolóra, melyek jelzik a mikrovezérlőnek, ha a sebességváltó áttétele elérte a minimális vagy a maximális értéket. Ezekre azért van szükség, mert a sebességváltó hajtó tengelyén lévő csúsztatható tárcsa csak bizonyos
36
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
fizikai korlátok között mozgatható, azaz az egyik végállástól a másik végállásig. A kapcsolók jeleznek, ha a tárcsa elérte valamelyik végállást, s ekkor az áttétel állító motort leállítja az elektronika. Ha ez nem így lenne, akkor a motor leégne, vagy az áttétel állító szerkezet valamely alkatrésze meghibásodna. Ennyi bevezető után lássuk az Elektromobilban alkalmazott sebességváltó Solid Edge programban elkészített 3D-s modelljét:
6.1. sz. ábra – Az Elektromobil fokozatmentes sebességváltójának modellje Az ábrán látható fényszenzor (optokapu) érzékeli a lyukas tárcsa elfordulását, ami a váltó hajtó oldali tengelyére van rögzítve. Ennek a tengelynek a fordulatszáma adott áttételen keresztül arányos a motor fordulatszámával, tehát az optokapuban lévő fototranzisztoron folyó áramimpulzusok frekvenciájából számolható a motor aktuális fordulatszáma. Ha a motor fordulatszáma túllépi azt az értéket, ahol a motor a legnagyobb teljesítményt adja le (pontosabban a 200 RPM-es fordulatszám értéket környező szűk tartomány felső határát), akkor a szabályozó áramkör a váltóáttétel állító motorra olyan polaritású feszültséget kapcsol (±12 V), hogy a motor a forgásával az áttétel állító karon keresztül közelítse a hajtó tengelyen lévő csúsztatható kúpos tárcsát a vele szemben lévő, tengelyre rögzített tárcsához, ezzel nagyobb átmérőre kényszerítve
37
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
ott a szíjat. Ennek következtében a hajtott oldali tárcsákon csökken a szíj átmérője, s ez egyben a váltó áttételének megváltozását (növekedését) jelenti. A megnövekedett váltóáttétel következtében a motor fordulatszáma visszaesik, s ha ez kellő mértékű, vagyis a fordulatszám lecsökkent a kikapcsolási határ alá, akkor a sebességváltás leállításra kerül, az áramkör az állítómotor kapcsaira 0 V feszültséget kapcsol. Ez a folyamat ellenkezőképp játszódik le a jármű lassulásakor, azaz, amikor a váltóáttételt csökkentjük, hogy a motor fordulatszáma 200 RPM-en maradhasson. 6.2. A sebességváltás hiszterézise A sebességváltásnak három megkülönböztetett állapota van: •
áttétel növelése (magasabb fokozatba váltás)
•
áttétel csökkentése (alacsonyabb fokozatba váltás)
•
nincs beavatkozás (nyugalmi állapot, nincs sebességváltás)
Ha nem definiáltunk volna nyugalmi állapotot, akkor a váltómotor az üzemidő bármely pillanatában valamely irányba forgatna, azaz sebességfokozatot váltana. Ez nem lenne szerencsés pl. állandó sebességen való haladáskor, hiszen az állítómotor ebben az esetben is folyamatosan változtatná az áttételt oda-vissza egy szűk tartományban, holott erre nem lenne semmi szükség. Emiatt érdemes biztosítani egy olyan állapotot, ahol szünetel a sebességváltás. A motor elérni kívánt fordulatszáma 200 RPM. Ezen érték környezetében létrehozunk egy szűk tartományt, amelyből ha kilép a fordulatszám, akkor elkezdünk sebességet váltani. Ahhoz, hogy a sebességváltás végeztével a nyugalmi állapotba térjünk vissza, s ne az ellenkező irányú sebességváltás állapotába, az adott irányba történő váltás kikapcsolási határát el kell tolni az ellenkező irányú váltás bekapcsolási határától a 200as középérték felé. Ezzel elkerülhető a fentebb említett folyamatos oda-vissza váltogatás. Az itt leírtakat szemlélteti a sebességváltás hiszterézisgörbéje, mely a 6.2. számú ábrán látható:
38
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
6.2. sz. ábra – A sebességváltás hiszterézise A vízszintes tengelyen látható a 200 RPM-es középérték, és az ezt körülvevő határértékek. A sebességváltás megkezdődik, ha a motor fordulatszáma meghaladja a 230-as értéket, vagy ha 170 alá ereszkedik. Ekkor átlépünk a megfelelő irányú sebességváltás állapotába, mely hatására csökken illetve növekszik a fordulatszám. Ha elértük a 180-as vagy a 220-as kikapcsolási fordulatszám értékeket, akkor a sebességváltás leáll, visszatérünk a nyugalmi állapotba. A kikapcsolási értékek a középértékhez közelebb kell, hogy elhelyezkedjenek, mint a bekapcsolási értékek, ellenkező esetben az egyik irányú váltásból azonnal a másik irányú váltás állapotába jutnánk, így a váltómotor nem állna le. A hiszterézis szoftveresen lett megvalósítva, ezt a későbbi fejezetekben láthatjuk részletesen.
39
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
7. A szabályozó áramkör A szabályozó elektronika feladata, hogy az optokaputól érkező áramimpulzusok gyakoriságából megállapítsa a motor fordulatszámát, s ennek megfelelően, a két végálláskapcsoló jelét figyelembe véve megfelelő polaritású feszültséget kapcsoljon a váltómotorra, ha szükséges. Ezzel megvalósul a (hajtó)motor fordulatszámának közvetett szabályozása. Az áramkör emellett kijelzi a motor aktuális fordulatszámát, a sebességváltás állapotát és az optokaputól érkező jel szintjét. 7.1. Az áramkör részei Az áramkör 5 részre osztható. Mindegyik résznek, vagy modulnak megvan a maga feladata. A modulok többsége rendelkezik ki és/vagy bemenetekkel, ezeken keresztül kommunikálnak egymással. A részegységek a következők: •
Feszültségszabályozó
•
Jel-előfeldolgozó egység
•
Számító és kijelző modul
•
Galvanikus leválasztó
•
Motorvezérlő áramkör
7.1.1. Feszültségszabályozó A fordulatszám szabályozó áramkör egy külső, 12 V-os akkumulátorról van megtáplálva, azonban bizonyos részáramköreinek 5 V-os feszültségre van szükségük a működéshez. A feszültségszabályozó lehetővé teszi ezeknek a részeknek az 5 V-ról való megtáplálását.
100n 1
2
L7805CV 100n
3
BD246A 3
5V KI 12V
7.1. sz. ábra – A feszültségszabályozó részáramkör 40
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
A feszültségszabályozó a 12 V-os bemeneti feszültségből egy feszültségstabilizáló IC (L7805CV) segítségével 5 V-ot állít elő. A többi áramköri elemre a nagyobb terhelhetőség érdekében van szükség [10]. 7.1.2. Jel-előfeldolgozó egység A PIC mikrovezérlő a bemenetein TTL-szintű jeleket képes fogadni. Ez azt jelenti, hogy a bemenetére kapcsolt feszültség két féle értékű lehet: 0 V-hoz közeli és 5 V-hoz közeli. Az optokaputól érkező jel viszont nem ebben a feszültségtartományban mozog, és a feszültsége sem csak két értéket vehet fel. A forgó lyukas tárcsa az idő folyamán hol eltakarja a dióda által a fototranzisztorra kibocsátott fényt, hol átereszti azt. Ennek következtében a tranzisztoron átfolyó áram a négyszögjelhez hasonlít, azonban az alacsony és a magas jelszintek közötti átmenet nem olyan meredek, mint az ideális négyszögjel esetében. Ebből, a lassan változó, kissé hullámos jelből egy komparátor IC-vel megoldható egy sokkal meredekebben változó négyszögjel előállítása, ami már megfelel a mikrovezérlő számára. 5V
TTL-szintû jel a PIC számára Jel1
LED 47k
10k
1k
100
10k OUT2 OUT1 V+ IN1IN1+ IN2IN2+
900k 900k
OUT3 OUT4 GND IN4+ IN4IN3+ IN3-
LM339N
K
C
A EE-SJ5-B E
7.2. sz. ábra – A jel-előfeldolgozó áramkör
41
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Az LM339N típusú komparátor IC IN1- jelzésű lábára kapcsoljuk a referencia feszültséget, amelyhez ez az IN1+ kivezetésre adott feszültséget hasonlítja. Ha az IN1+ feszültség nagyobb, mint az IN1-, akkor az IC az OUT1 kivezetésén magas (5 V), ellenkező esetben alacsony (0 V) szintet jelenít meg. Az ábra alján látható az EE-SJ5-B típusú optokapu. Ha az optokapuban lévő dióda fénye eljut a fototranzisztorhoz, akkor a tranzisztor kinyit, és a komparátor IC IN1+ lába alacsony szintet kap, ennek hatására az OUT1 lábon is alacsony szint jelenik meg. Ha viszont a tárcsa éppen eltakarja a fényt, akkor az IN1+ láb magas szinten lesz, így az OUT1-en is magas szint jelentkezik. Az ábrán látható egy visszajelző LED, amely akkor világít, ha a fototranzisztor fényt kap. [11] A jel-előfeldolgozó áramkör kimenetén (az IC OUT1 lábán) keletkező négyszögjel be van vezetve a mikrovezérlő egyik bemenetére, amely ebből megállapítja a motor aktuális fordulatszámát. 7.1.3. Számító és kijelző modul Ez a részegység tartalmazza a PIC16F84A típusú mikrovezérlőt és a 4 db TIL311 típusú LED-es kijelzőt. Emellett megtalálhatók a végálláskapcsolók és a PIC működéséhez szükséges egyéb alkatrészek. A kapcsolási rajz a 7.3. sz. ábrán látható. A PIC az RB4 jelzésű lábán kapja az LM339-es komparátor IC-től a TTL-szintű jelet, melynek frekvenciája a motor fordulatszámával arányos. A mikrovezérlő feladata, hogy ebből az impulzussorozatból megállapítsa a motor fordulatszámát, és ezt kijelezze a négy, egyenként egy számjegyet megjelenítő kijelzőn. Ez úgy valósul meg, hogy a mikrovezérlőn futó szoftver bizonyos ideig (0,1 s-ig) számlálja az RB4 lábra beérkező impulzusokat (pontosabban a magas és az alacsony szintek számát együttesen), s az idő leteltével a megszámlált érték nagysága megadja a fordulatszámot. A sebességváltó hajtott tengelyére rögzített lyukas tárcsa kerületén 30 db furat található. A program minden, a bemenő jelben történő változásra (azaz a felfutó és a lefutó élre egyaránt) megnöveli egy változó (számláló) értékét 1-gyel. Tegyük fel, hogy a lyukas tárcsa pontosan 100 RPM-es fordulatszámmal forog. Ez azt jelenti, hogy egy perc alatt 100 teljes fordulatot tesz meg.
42
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
5V
5V
100n 22p 2,2k
2,2k TIL2.EN 5V TIL.DatA
TIL.DatB TIL.DatC TIL.DatD
RA2 RA1 RA3 RA0 RA4 OSC1 MCLR OSC2 Vss Vdd RB0 RB7 RB1 RB6 RB2 RB5 RB3 RB4
TIL3.EN TIL4.EN 5V
4MHz 22p MotFel A MotLe A
TIL1.EN Jel1 PIC16F84A (Az LM339-tõl érkezõ négyszögjel)
5V TIL1 PIC.RB1 PIC.RB0 PIC.RB5
LED+ LOGIC+ DataB DataC DataA DataD LDPC NC EN RDPC NC NC GND BLANK
TIL311
PIC.RB2 PIC.RB3
5V TIL2
PIC.RB1 PIC.RB0 PIC.RA2
LED+ LOGIC+ DataB DataC DataA DataD LDPC NC EN RDPC NC NC GND BLANK
PIC.RB2 PIC.RB3
TIL311 5V TIL3 PIC.RB1 PIC.RB0 PIC.RA1
LED+ LOGIC+ DataB DataC DataA DataD LDPC NC EN RDPC NC NC GND BLANK
TIL311
PIC.RB2 PIC.RB3
5V TIL4
PIC.RB1 PIC.RB0 PIC.RA0
LED+ LOGIC+ DataB DataC DataA DataD LDPC NC EN RDPC NC NC GND BLANK
PIC.RB2 PIC.RB3
TIL311
7.3. sz. ábra – A számító és kijelző modul kapcsolási rajza Mivel 30 lyuk (és 30 takaró rész) található a kerületén, ezért az egy fordulat alatt történő változások száma 60. 100 RPM-es fordulatszám mellett 60 * 100 = 6.000 a jelben történő változások száma, így egy perc alatt 6.000-szer növekszik meg a számláló értéke. Egy perces számlálási idő nagyon sok, viszont 0,1 s már elegendő reakcióidőt biztosít a szabályozásnak. 0,1 s alatt 6.000 / 600 = 10-zel növekszik a számláló értéke, s ez 100 RPM-es fordulatszámra vonatkozik. Kimondható, hogy a program által mért érték a valóságos értéknek az 1�10 része. Ez a forgó tárcsán lévő lyukak száma és a
mérési idő arányának a következménye. Ahhoz, hogy a kijelzőn a valóságos
fordulatszám érték jelenjen meg, a mért értéket meg kell szorozni 10-zel. Ezt egyszerűen meg tudjuk oldani, ha a 4 db LED-es kijelzőn megjelenő számot eltoljuk 43
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
1-gyel a magasabb helyiérték felé. A négy kijelző közül emiatt a legkisebb helyiértékű mindig 0-t fog mutatni. A kijelzett fordulatszám érték egy négy számjegyű szám. A PIC szoftvere a kiszámított fordulatszám értéket felbontja számjegyeire, s minden kijelzőnek egyenként elküldi az ahhoz a helyiértékhez tartozó számjegyet. A kiküldött számjegy a PIC RB0-RB3 kivezetésein (adat busz) jelenik meg, s azt, hogy ezt melyik kijelzőnek szánja, azt az RB5, RA2, RA1 és RA0 lábakon (cím busz) mondja meg. A cím busz vezetékei egyenként csatlakoztatva vannak az egyes kijelzők EN (engedélyező) lábaira [12]. Az adat busz el van vezetve mind a négy kijelzőhöz, a buszra kitett érték egyszerre minden kijelző adat bemenetén megjelenik. Az a kijelző fogja felvenni az adat buszon lévő értéket a belső tárolójába, amelyiknek az EN lábára alacsony szint érkezik (a cím busz négy vezetéke közül egyidőben mindig csak egy lehet alacsony szinten). A PIC RB4 bemenetére érkező impulzusok számlálása 0,1 s-ig tart, ezután a fordulatszám aktuális értékét felveszik a kijelzők. A 0,1 s-os mérési idő következményeként a kijelzőkön a kijelzett érték 1 s alatt 10-szer változik (változhat). Ez 10 Hz-es frissítési frekvenciát jelent. Ennek következtében, ha a motor fordulatszáma kilép a 200 RPM körüli tartományból, akkor legfeljebb 0,1 s múlva elkezdődik az áttétel állítása a megfelelő irányba. Ez a 0,1 s ebben az alkalmazásban kellően alacsony reakcióidőnek számít. A PIC RA3 és RA4 lábára van kötve a két végálláskapcsoló, melyek az alacsony szintet kapcsolják rá a bemenetekre. A kapcsolók és a bemenetek között található egy-egy felhúzó ellenállás, melyeken keresztül a kapcsolók kikapcsolt állapotakor magas szintet kapnak a bemenetek. Az elenállások segítségével elkerülhető a bemenetek bizonytalan állapota. A PIC az RB6 és RB7 lábakon továbbítja a sebességváltás állapotát tartalmazó jelet. Ha mindkét bit értéke 0 (alacsony szint), akkor nincs sebességváltás, így a váltómotorra nincs feszültség kapcsolva. Ha RB7 értéke 1 (magas szint) és a másik 0, akkor magasabb fokozatba váltásról van szó, ekkor a váltómotorra kapcsolt feszültség 12 V. Ha RB7 értéke 0 és RB6 értéke 1, akkor alacsonyabb fokozatba kell váltani, ekkor a váltómotorra kapcsolt feszültség -12 V, ez ellenkező irányba való forgást jelent, mint 44
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
+12 V esetén. RB6 és RB7 kizárják egymást, tehát egyidőben csak egyikük lehet magas szinten. Mindkettő magas szintre állítása tiltott, mert ez a motorvezérlő áramkörben rövidzárat eredményezne. Arról, hogy ez ne történhessen meg, a szoftver gondoskodik. A 4 MHz-es kvarckristály és a mellette lévő két kondenzátor szolgáltatja a mikrovezérlő számára az órajelet, amely meghatározza a rajta futó program futási sebességét. A két kondenzátor értékének változtatásával pontosan beállítható az órajel frekvenciája. A tápfeszültség és a föld közé kapcsolt kondenzátor zavarszűrést végez. 7.1.4. Galvanikus leválasztó A galvanikus leválasztó csatolja össze a PIC mikrovezérlőt a motorvezérlő áramkörrel. Azért szükséges elszigetelni egymástól a két részt, mert a motorvezérlő áramkör 12 Vról működik, és ekkora feszültség tönkretenné a PIC-et. 1k
AN
B
1k
CAT
C
NC
E
MotFel A MotLe
A
MotFel B
4N25 1k
1k
AN
B
CAT
C
NC
E
MotLe
B
4N25
7.4. sz. ábra – Galvanikus leválasztó 2 db 4N25 típusú optocsatolóval Az optocsatoló az optokapuhoz hasonló alkatrész, azzal a különbséggel, hogy itt nincs lehetőség a fénykibocsátó dióda fényét eltakarni a fototranzisztor elől. Ha a diódára megfelelő feszültséget kapcsolunk, akkor a fototranzisztor nyitott állapotba kerül. Ezzel megoldható két áramkör egymástól való elszigetelése, a kapcsolatot a kettő között kizárólag a fény hozza létre. A mikrovezérlő RB7 és RB6 kivezetéseiről érkező MotFel A és MotLe A jelek valamelyikének magas szintjével nyitható az egyik optocsatolóban lévő fototranzisztor, mely a nyitás következtében a motorvezérlő áramkör felőli MotFel B és MotLe B vezetékek egyikét alacsony szintre kapcsolja. Attól függően, hogy ezen két vezeték
45
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
közül melyik rendelkezik alacsony szinttel, a motorvezérlő a váltómotorra pozitív vagy negatív polaritással feszültséget kapcsol. Ez a feszültség pedig 12 V, a tápellátást biztosító akkumulátor kapocsfeszültsége. A leválasztó kapcsolási rajzán látható két visszajelző LED, ezek a sebességváltás állapotát mutatják. 7.1.5. Motorvezérlő áramkör Ahhoz, hogy egy elektromotor fordulatszámát, forgásának irányát, esetleg fékezését szabályozni tudjuk, nem elég szimplán egy kapcsoló, erre a feladatra motorvezérlő áramkör használata szükséges. Ezek az áramkörök valamilyen kapcsoló elemekkel (pl. tranzisztorokkal) kapcsolgatják a motor két kivezetését az áramkör bizonyos pontjaira. Ezáltal a motort képesek egyik, s másik irányba forgatni, azt a körből kikapcsolni (szabadonfutás), és a motor kivezetéseit összezárni (fékezés, generátor üzemmód). A motorvezérlő áramköröket csoportosíthatjuk képességeik szerint, azaz, hogy a fent felsorolt feladatok közül mennyit képesek ellátni: 7.1.5.1. A motorvezérlők típusai 7.1.5.1.1. Egynegyedes motorvezérlő Az egynegyedes hajtással a motor egy irányba történő vezérlése oldható csak meg, ennek vázlatos rajzát a 7.5. sz. ábrán láthatjuk: VCC
MOTOR
MOSFET Vezérlés
7.5. sz. ábra – Egynegyedes motorvezérlő
46
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Ennél a megoldásnál a motor egyik kivezetésén mindig jelen van a tápfeszültség, s az áram csak a kapcsolóelem (jelen rajzon egy MOSFET) nyitásakor indul meg. Itt a motoron csak egy irányban tud áram folyni, ezért a motor csak egyik irányba képes forogni. A motorral párhuzamosan kapcsolt dióda egy úgynevezett ”szabadonfutó freewheel” dióda. Erre azért van szükség, mert ha a motorra kapcsolt feszültséget kikapcsoláskor hirtelen megszüntetjük, akkor a motor tekercse - tehetetlensége miatt megpróbálja fenntartani a rajta átfolyó áramot. Ekkor a kikapcsolás sebességével, vagyis az áramváltozás nagyságával arányos feszültség indukálódik rajta. Ez a feszültség meglehetősen nagy, ha nem lenne ott a motorral párhuzamosan kapcsolt dióda, akkor könnyen tönkretehetné a MOSFET-et. A dióda szabad utat nyit a motor tekercseinek mágneses terében tárolt energia elektromos áram formájában történő kisülésének. [13] A kapcsolással lehetséges a motor fordulatszámának szabályozása is, de jelen alkalmazásban az egyszerűség kedvéért ezt a képességét nem használjuk fel. 7.1.5.1.2. Kétnegyedes motorvezérlő A kétnegyedes hajtás szintén csak egy irányba képes a motort forgatni, viszont ezzel már lehetőség nyílik a motor fékezésére is. Ez úgy valósul meg, hogy az előző kapcsolásban lévő dióda helyett itt egy kapcsolóelemet (szintén MOSFET-et) alkalmazunk, mely, ahogy a 7.6. sz. ábrán is látszik, egy dióda szerepét is be tudja tölteni (a belső MOSFET dióda miatt). VCC
MOSFETP MOTOR Vezérlés
MOSFETN Vezérlés
7.6. sz. ábra – Kétnegyedes motorvezérlő
47
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
A felső kapcsolóelem (MOSFETP) a motor meghajtásakor ki van kapcsolva, így ez, az előzőleg ismertetett szabadonfutó (freewheel) diódaként működik. Mikor MOSFETN kikapcsol (és MOSFETP is kikapcsolt állapotban van), akkor a felső MOSFET-re ellenkező irányú feszültség kerül, mint hajtás esetén. Ez azért van, mert a motor ekkor még forgásban van, és feszültség indukálódik a tekercseiben. Ha ekkor a motor két kivezetését rövidre zárjuk MOSFETP kinyitásával, akkor a motor generátorként fog működni. A motoron ellenkező irányba meginduló árammal egy, az árammal arányos terhelő nyomaték is keletkezik, mely a motort lassítani igyekszik. Ha a motor tengelyére nem kapcsoltunk semmiféle terhelést, akkor a motor pólusainak rövidrezárása azonnal megállítja a motort. Ha viszont a motorra rögzítve van egy adott tömegű, tehetetlenségű test, akkor a motor a rövidre záráskor lassulni fog, de nem olyan nagy mértékben, s a forgási sebességgel arányos feszültség jelenik meg a kapcsain. Ekkor a motor generátorként működik. Természetesen a rövidre zárás a motor töktremeneteléhez vezethet, ezért valamekkora terheléssel korlátozni kell a létrejövő áramot. Másik alternatíva az áram korlátozására, ha MOSFETP-t egy PWM (Pulse Width Modulated – Impulzusszélesség-modulált)
jellel
vezéreljük,
ekkor
a
kitöltési
tényezővel
tetszőlegesen beállítható a motor általt generált áram erőssége, és vele együtt a fékezési nyomaték. A két kapcsolóelem egyidejű bekapcsolása tiltott, ez rövidzárhoz vezetne. 7.1.5.1.3. Négynegyedes motorvezérlő A négynegyedes vezérléssel lehetőség nyílik a motor fékezésére, s ami számunkra még fontosabb, a motor mindkét irányba történő forgatására. VCC
MOSFETP1 Vezérlés
VCC
Vezérlés MOTOR
MOSFETN2
MOSFETN1 Vezérlés
MOSFETP2
Vezérlés
7.7. sz. ábra – Négynegyedes motorvezérlő, más néven H-híd
48
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Ahogy a kapcsolási rajzon is látható, itt 4 db kapcsolóelem található, kettő a tápfeszültséget kapcsolja a motor kapcsaira, kettő pedig a föld potenciált. Ha pl. MOSFETP1 és MOSFETN2 nyitva van, és a másik kettő ki van kapcsolva, akkor a motoron P1 MOSFET felől N2 MOSFET felé áram folyik. Ha MOSFETP2 és MOSFETN1 van bekapcsolva és a másik kettő nem vezet, akkor ellentétes írányú áramot, és ellentétes forgásirányt kapunk. Így oldható meg a motor kétirányú vezérlése. Tegyük fel, hogy a motor éppen feszültség alatt van, méghozzá P1 és N2 MOSFET-ek által. Ha ki szeretnénk kapcsolni a motort, akkor csak P1 MOSFET-et kell kikapcsolni, így a tekercsekben tárolt energia N2 és N1 MOSFET-eken keresztül, áram formájában távozhat. N1-nek ekkor nem kell bekapcsolva lennie, hiszen az áram a belső diódáján keresztül vissza tud jutni a motorhoz. Ezen kívül fékezni is tudjuk a motort, ha a két alsó kapcsolóelemet bekapcsoljuk (a két felső természetesen ekkor ki van kapcsolva). Ekkor a forgásban lévő motor által generált feszültség hatására a testen keresztül áram tud folyni a motor egyik pólusától a másik felé. [13] Az egy oldalon (bal/jobb) lévő MOSFET-ek egyidejű bekapcsolása tiltott, hiszen ez rövidzárat okozna az áramkörben. 7.1.5.2. Az Elektromobil szabályozó áramkörében alkalmazott motorvezérlő kapcsolás A váltómotor kétirányú vezérléséhez egy négynegyedes, más néven H-hidas kapcsolást alkalmaztunk. Ez annyiban tér el az előző fejezetben ismertetett H-hidas megoldástól, hogy MOSFET-ek helyett itt tranzisztorok végzik a feszültség kapcsolását. Egy kapcsolóelem itt több tranzisztorból van felépítve, a pozitív oldalon kettő, a negatív oldalon pedig három tranzisztor helyettesít egy MOSFET-et. A 7.8. sz. ábrán látható kapcsolási
rajzon
átlóban
elhelyezett
tranzisztorcsoportok
vezérlő
bemenetei
összeköttetésben állnak egymással, s az optocsatolótól jövő vezérlőszálak egyikével (MotFel B, MotLe B). Ezzel a megoldással, ha az egyik vezérlőszálon alacsony szint jelentkezik, akkor az ehhez az irányhoz tartozó két, átlóban elhelyezett 2N3055 típusú tranzisztor bekapcsolja a körbe a motort. A kikapcsoláskor a motorban lévő tekercsek
49
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
tehetetlensége miatt létrejövő rövid idejű áram elvezetésére szolgálnak a fent említett tranzisztorokkal párhuzamosan kapcsolt 1N4002 típusú diódák. Ezek látják el a MOSFET-ek belső diódáinak szerepét. 12V
1k
1k BC308
BC308
1N4002
2N3055
1N4002
2N3055
560 MotFel B 560 MotLe
1
B
MOTOR
1 BC308
BC308
510
510 BC238
BC238
1N4002
10k
1N4002
10k 2N3055
220u 120
2N3055
220u 120
7.8. sz. ábra – A váltómotort vezérlő H-hidas kapcsolás
Miként az előző fejezetben említésre került, kikapcsoláskor az éppen bekapcsolt kapcsolóelemek közül csak a felsőt kell kikapcsolni, így az áram az alsón és az ez mellett lévő másik alsó kapcsolóelem diódáján keresztül vissza tud jutni a motorba. Mivel jelen áramkörben az egy irányba vezérlő, átlóban elhelyezett két kapcsolóelem csak egyszerre kapcsolható, ezért biztosítani kell az alsó oldali elemek kikapcsolási késleltetését. Ezt a feladatot látja el a rajzon feltüntetett két kondenzátor. A motorral sorba kötött ellenállások a nagy indulási áram megakadályozását szolgálják.
A szabályozó áramkör nyomtatott áramköri rajza és az elkészült panelról készült képek megtalálhatók a mellékletek között.
50
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
8. A PIC és a program A fordulatszám szabályozó áramkör önmagában működésképtelen a PIC mikrovezérlő, és
a
rajta
futó
szoftver
nélkül.
Az
előző
fejezetekben
megfogalmazott
fordulatszámmérés, kijelzés és a szabályozási eljárás mind a mikrovezérlőre írt programban van implementálva. 8.1. Mi is a PIC valójában? A PIC mikrovezérlő olyan, mint egy kis méretű, nagyon egyszerű számítógép. Hasonló, mint egy processzor, de van saját memóriája és rendelkezik ki-, és bemenetekkel. Mivel a PIC működését a rátöltött program határozza meg, ezért nagyon sok féle feladat elvégzésére alkalmas. Szükségtelenné teszi az egykori cél-IC-k használatát. [14] A PIC mikrovezérlőknek rengeteg típusa van, a típus kiválasztása függ az alkalmazási területtől. Ezek a típusok alapvetően hasonlóak, a különbséget inkább az ”extra felszereltséget” jelentő speciális hardveres funkciók jelentik. Az előzőekben kifejtett fordulatszámmérési, kijelzési és vezérlési feladatokra a PIC mikrovezérlők, 8 bites PIC16 családjának egyik tagját, a PIC16F84A-t választottuk. Ez a típus elegendő számú ki-, és bemenettel rendelkezik, minden szempontból alkalmas a feladatra. 8.2. A PIC felépítése Az esetünkben használt PIC16F84A PDIP tokozással készült. Kivezetéseinek száma 18, ebből 8+5 a kommunikációs (I/O, bemeneti/kimeneti) lábak száma. A maradék 5 kivezetés közül kettő a tápellátást szolgálja (14. és 5. láb), szintén kettő a külső kvarckristály kivezetéseire csatlakozik (15. és 16. láb), s egy a mikrovezérlő újraindítására szolgál (RESET – 4. láb), ezutóbbit a normál működéshez magas szintre kell helyezni. A PIC16F84A lábkiosztása a 8.1. sz. ábrán látható [15]. A PIC-nek két ún. I/O portja van, ezeken zajlik a kommunikáció. Ezek nevezetesen a PORTA és a PORTB. A PORTA 5 bites (RA0 - RA4), a PORTB pedig 8 bittel rendelkezik (RB0 - RB7). A külső perifériákkal a kommunikációt tehát ezen a 13 biten lehet véghezvinni. Ez a 13 bit számunkra éppen elegendő, hiszen a jel-előfeldolgozótól érkező 1, a motorvezérlőhöz kimenő 2, a végálláskapcsolók számára fenntartott szintén
51
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
2 vezeték, és a kijelzők meghajtására szolgáló 8 szál összege pontosan 13. Ezzel a PIC I/O portjainak összes bitje fel van használva.
8.1. sz. ábra – A PIC16F84A lábkiosztása A PIC jelzi nekünk, ha a PORTB felső 4 bitjének (RB4 - RB7) valamelyikén a feszültségszint megváltozott. Ezért is van a PIC RB4 lábára kötve a jel-előfeldolgozó áramkörtől érkező négyszögjel, aminek frekvenciáját meg kell mérnünk. Így, a bemenő jelben történő változást (felfutó élt, lefutó élt) a mikrovezérlő szoftveresen jelzi, s mi ebből már tudjuk, hogy meg kell növelni egy számláló értékét. Ezzel a bemenőjel minden változására a számláló értéke 1-gyel növekszik. Mivel a mérési idő 0,1 s, ezért az idő leteltével a számláló a valóságos frekvenciának az 1�10 részét fogja tartalmazni. Ezt a kijelzéskor korrigáljuk a számjegyek egy helyiértékkel való eltolásával. 8.3. A PIC programozási nyelve A PIC16F84A, a működéséhez szükséges órajelet egy külső kvarckristály segítségével állítja elő. Az általunk használt kristály 4 MHz-es, de a mikrovezérlő ennél nagyobb frekvenciájú órajellel is képes működni, a felső határ 20 MHz. A program futási sebessége arányos a kristály frekvenciájával. Egy órajelciklus ideje a 4 MHz-es kristály mellett 250 ns. A PIC-nek egy utasítás végrehajtásához (egy műveleti ciklushoz) az órajelciklus idejének 4-szeresére, 1 μs-ra van szüksége. A PIC16F családnak összesen 35 utasításból álló utasításkészlete van. Az utasítások nagy része egy műveleti ciklusban végrehajtható, azonban van közöttük néhány, melyek végrehajtásához két műveleti ciklus szükséges, ilyenek az elágazó, és ugró utasítások. A leggyakrabban használt utasítások az összeadás, kivonás, növelés, csökkentés, nullázás (törlés), a logikai (és,
52
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
vagy, kizáró vagy), és az adatmozgató műveletek. Ezek mellett használatosak még a tesztelő, azaz nullával összehasonlító, és az ugró utasítások. Mivel a PIC egy RISC (Reduced Instruction Set Computer – Csökkentett Utasításkészletű Számítógép), ezért kevés utasítás áll rendelkezésre. A rövid, egyszerű utasításokat gyorsan végre tudja hajtani a mikrovezérlő, azonban a rendelkezésre álló utasítások kis száma a programozást bonyolulttá teszi. Erre néhány példa: •
Az utasítások között nem szerepel szorzás vagy osztás művelet. A szorzást még aránylag egyszerűen meg lehet oldani az adott szám többszöri összeadásával, az osztást viszont már bonyolultabb lenne megoldani.
•
A programozás során különböző trükköket kell alkalmazni pl. két szám összehasonlításánál, mivel erre szolgáló utasítás sincs a készletben. Ezt úgy lehet megoldani, hogy a két szám (vagyis két bájt, mivel a PIC 8 bites, azaz bájtokkal végzi a műveleteket) között (bitenként) XOR (kizáró vagy) műveletet kell végezni. Az XOR eredménye ott nulla, ahol a két szám bitjei megegyeznek. Ha az eredmény bájt minden bitje 0, akkor az azt jelenti, hogy a két szám egyenlő. Azt, hogy 0-e az eredmény bájt értéke, azt a PIC-től tudjuk lekérdezni, ugyanis van neki egy nullajelző bitje, amely 1-re vált, ha a legutóbb elvégzett művelet eredménye 0 lett. Elég tehát ezt a jelzőbitet figyelni, s ennek állapotából tudunk következtetni a két szám egyenlőségére.
•
A PIC-nek a nullajelző bit mellett van még túlcsordulás-jelző bitje is. Ez akkor vált 1-re, ha a legutóbbi összeadás vagy kivonás során az eredménybájt túlcsordult (pl. kivontunk egy kisebb számból egy nagyobbat). Ezt fel tudjuk használni arra, hogy két számot összehasonlítsunk (kisebb, nagyobb), úgy, hogy kivonjuk őket egymásból. Ha a túlcsordulás-jelző bit 1-re vált, az azt jelenti, hogy az a nagyobb, amelyiket kivontuk, ellenkező esetben a másik a nagyobb, vagy egyenlőek.
Ezekkel, és ezekhez hasonló programozási ”trükkökkel” kell a megoldandó problémát megfogalmazni. Ez a programozási nyelv a PIC saját, assembly nyelve. A PIC utasításkészlete a 13. sz. mellékletben található.
53
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
8.4. A program felépítése, működése A program három fő feladatot lát el, ezek a következők: •
Bejövő impulzusok adott ideig tartó számlálása (fordulatszámmérés)
•
A mért érték kijelzése
•
Kimenő jel generálása a motorvezérlő számára (a fordulatszám aktuális értékétől, a végálláskapcsolók, és a sebességváltás állapotától függően)
Mindegyik feladathoz tartozik egy, a programon belüli alprogram, vagy más néven eljárás (rutin), mely az adott feladat elvégzéséért felel. A program három fő részből áll. Az egyik a főprogram, a másik az inicializáló rész, a harmadik pedig a megszakítási rutin. A PIC bekapcsolásakor az inicializáló rész egyszer lefut, s ezután rögtön a főprogramra kerül a vezérlés. A főprogram mindaddig futni fog, míg a mikrovezérlőt le nem áramtalanítjuk, ugyanis a főprogram egy végtelen ciklusban van elhelyezve. Ez azt jelenti, hogy mikor a főprogram lefutott, akkor abban a pillanatban az elejétől újra futásnak indul, s ez így ismétlődik egészen a kikapcsolásig. Ennek ellenére, bizonyos esetekben megszakadhat a főprogram végrehajtása. Bizonyos események, ún. megszakítási események bekövetkezésekor a főprogram futása megszakad, s a megszakítási rutinra kerül a vezérlés. Ezt a jelenséget megszakításnak nevezzük. Az idő mérése, és a mérendő jelben lévő impulzusok számlálása a megszakítási rutinban történik. Az inicializáló részben a program futásához szükséges kezdeti beállításokat adjuk meg, a főprogram pedig a kijelző, a BCD-ből binárissá alakító és a váltóvezérlő eljárásokat tartalmazza. A következőkben ezen részek részletes ismertetésére kerül sor. A PIC szoftverének teljes kódja megtalálható a 14. mellékletben. A kódban számozással el vannak különítve a különböző programrészek, és minden rész sorszáma fel van tüntetve az ezeket ismertető alfejezetek elején.
54
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
8.4.1. A megszakítási (időmérő és számláló) rutin (1) A megszakítási rutin a 14. mellékletben az (1) jelöléssel van ellátva. 8.4.1.1. Időmérő (1.1) Az általunk használt PIC-nek 4 megszakítási eseménye van, ezek közül mi egyet használunk fel, ez pedig nem más, mint a TIMER0 megszakítás. A mikrovezérlőnek van egy TMR0 nevű változója (egy bájt), melynek értéke a program futásával párhuzamosan növekszik. Ha a TIMER0 megszakítás engedélyezve van (mint ahogy esetünkben is), akkor a TMR0, mikor 255-ről 0-ra ”növekszik”, azaz túlcsordul, akkor keletkezik egy megszakítás. Ez azt eredményezi, hogy a főprogram futása megáll, és meghívódik a megszakítási rutin. Az a programkód amit ebben a rutinban megírunk, az a TMR0 periodikus túlcsordulása következtében azonos időközönként végrehajtódik. Ha pl. azonos időközönként folyamatosan növeljük egy számláló értékét, akkor kapunk egy olyan programot, mely képes az idő mérésére. Ezt a lehetőséget használjuk fel a program írásakor. A TMR0 számláló értéke a 2-es előosztó miatt minden második műveleti ciklusban növekszik 1-gyel. Mivel 4 MHz-es a kvarckristály, ezért egy utasítás végrehajtásához 1 μs-ra van szüksége a mikrovezérlőnek. Ebből az következik, hogy mire a TMR0, 0-tól folyamatosan növekedve újra 0 lesz (azaz túlcsordul), addig 512 μs telik el. Nem szerencsés, ha egy ehhez hasonló, nem kerek értéket választunk az időmérés alapjaként. Jelen program esetében 250 μs-onként hívódik meg az időmérő eljárás (megszakítási rutin), ezt úgy értük el, hogy a TMR0 kezdeti értékének mindig 138-at adunk meg. Mikor a TMR0 eléri a 255-öt, s ezután túlcsordul, akkor kezdeti értéknek azonnal 138at írunk bele. Ezzel a megoldással pontosan 250 μs fog eltelni, mire 138-ról növekedve újból túlcsordul a számláló, s ekkora időközönként kerül meghívásra az időmérő (megszakítási) rutin. Az idő mérése azon alapszik, hogy meghatározott időközönként (250 μs) megnöveljük egy számláló értékét. Ez a számláló a qms (negyed milliszekundum) nevet kapta, mivel ez minden eltelt
1� 4
ms után megnövekszik 1-gyel. Ezután megnézzük, hogy ez a
számláló elérte-e a 4-es értéket, és ha igen, akkor lenullázzuk, és megnöveljük a
55
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
következő számlálót, az ms-t. Ez már az eltelt ezredmásodperceket tartalmazza. Ezt a számlálót is megvizsgáljuk, hogy elérte-e a maximális értékét: ha értéke 100 lett, akkor ezt is nullázzuk, és megnöveljük 1-gyel a következő számlálót, a ds-t, amiben a tizedmásodperceket számoljuk. Ez így megy tovább még 4 változón (s1, s2, m1, m2) keresztül, ezekben az eltelt másodperceket és perceket számoljuk. Az s1 0-tól 9-ig számol, s2 pedig 0-tól 5-ig. Az m1 10-ig, m2 pedig 255-ig. Ezzel a módszerrel 42,5 órán keresztül tudunk számolni, ez a cél szempontjából elegendő. Az időmérő rész végén minden tizedmásodperc elteltével a tizedmp változó 0-s helyiértékű bitjét 1-re állítjuk, ezzel jelezve a főprogram számára, hogy a mérési idő lejárt, megtörténhet a megszámlált impulzusok számának kiírása a kijelzőkre. Az időmérő rész, futásának végeztével átugrik a megszakítási rutin 2. felére, melyben az optokaputól érkező impulzusok számlálása történik. 8.4.1.2. Számláló (1.2) Mikor ez a rész kerül végrehajtásra, a program először megnézi, hogy az előző megszakítás óta volt-e változás a PORTB 4-es számú bitjén, RB4-en, ugyanis ide van bevezetve az LM339 komparátor IC-től érkező négyszögjel, melynek a frekvenciájára vagyunk kíváncsiak. Ha nem történt változás a jel szintjében, akkor a megszakítási rutinból visszaugrunk a főprogramra, s az onnan folytatja a futást, ahol felfüggesztődött. Ha a jel szintjében történt változás, akkor az azt jelenti, hogy a sebességváltón lévő lyukas tárcsa forgásban van, tehát meg kell növelnünk egy számláló értékét. A számlálónk három bájtból, pontosabban három változóból áll, ezekben három számjegyként, BCD kódban tároljuk a megszámlált értéket. Így, ha a bemenő jelben változás történt, akkor megnöveljük a d1 számláló értékét 1-gyel. Az időmérő eljárásban leírtakhoz hasonlatos módon, ha d1 eléri a felső határát (10-et), akkor ezt nullázzuk, és a következőt (d10-et) megnöveljük. Ez a tízig való számolás ismétlődik d10 és d100 esetében is. Ezzel, a számlálás végére a BCD kódban tárolt megszámlált értéket egyszerűen, számjegyenként ki tudjuk küldeni a számjegyes, LED-es kijelzőknek.
56
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
A számláló eljárás lefutásával a vezérlés visszakerül a főprogramra, ahol tovább folytatódhat az éppen megszakított művelet. 8.4.2. Az inicializáló rész (2) Az inicializáló rész az, ami az áramkör bekapcsolásakor először végrehajtódik. Itt meghatározzuk PORTA és PORTB szálainak irányát (bemenet/kimenet), és beállítjuk TMR0 előosztóját a legkisebb értékre, 2-re, így TMR0 minden
második
utasításciklusban növekedni fog 1-gyel. Ezután kezdőértékkel látjuk el TMR0-t, de a megszakítási rutinnal ellentétben itt 146-ra módosítjuk. Az eltérő érték amiatt van, hogy kezdőértékadás időpontjában a bekapcsolás óta néhány utasítás már végrehajtódott, s az ezalatt eltelt időt is figyelembe kell venni. Ezután lenullázzuk az időméréshez és az impulzusszámláláshoz szükséges változókat, majd PORTA-t és PORTB-t is ellátjuk kezdőértékkel. Végül engedélyezzük TMR0-ra a megszakítást. Az inicializáló rész lefutásával a program végrehajtása a főprogrammal folytatódik. 8.4.3. A főprogram (3) A főprogram három kisebb egységből, a kijelző, a konvertáló és a váltóvezérlő eljárásból áll. A főprogram, - mivel egy végtelen ciklusban van elhelyezve - futásának végeztével elölről újra elkezd végrehajtódni. Ez, az idő nagy részében a write és a vege címkék közötti ugrálást jelent. A főprogram lényegi része, a kijelző, konvertáló és váltóvezérlő eljárások csak akkor hajtódnak végre, ha letelt a 100 ms-on mérési idő. Ez azt jelenti, hogy 0,1 mp-enként történik a kijelzők, és a váltás állapotának frissítése. 8.4.3.1. A kijelző eljárás (3.1) Ebben a részben történik a megszakítási rutinban megszámlált impulzusok számának kijelzése. Korábban említésre került, hogy mivel a mért érték a valóságos fordulatszámnak az 1�10 része, ezért ezt a kijelzésnél korrigáljuk, úgy, hogy a három számjegyet eggyel magasabb helyiértékre csúsztatjuk. A mért érték három számjegye, d1, d10 és d100 így a tízes, százas és ezres helyiértékeken fognak állni, míg az egyes helyiértékre ”fix” 0-t írunk.
57
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
A TIL311 típusú LED-es kijelzők meghajtása egyszerűbb, és kevesebb processzoridőt igényel, mint a 7 szegmenses LED-es kijelzőké. Míg a 7 szegmenses kijelzőknél 7 adatvezetékre van szükség a 7 LED egyenkénti meghajtása miatt, addig a TIL kijelzőknek elegendő 4, hiszen ezek binárisan kódolt decimális (BCD) értékeket fogadnak. Fontos dolog, ami még a TIL kijelzők mellett szól, hogy elegendő csupán kitenni az adatbuszra (a 4 adatvezetékre) a kijelzendő értéket, és egy pillanatra alacsony szintre állítani a kijelző engedélyező (EN) lábát. A kiküldött számjegy ekkor beíródik a kijelző belső tárolójába, s ezen kívül mást nem is kell vele tenni a következő érték kiírásáig [12]. Ez nagy előny a 7 szegmenses kijelzőkkel szemben, hiszen ezeknél a közös adatbusz miatt egyszerre csak egy kijelző jeleníthet meg értéket. Több számjegy együttes megjelenítése itt úgy történik, hogy a buszon az adott helyiértéknek megfelelő értékkel, sorban bekapcsoljuk a kijelzőket, de egy időpillanatban mindig csak egy ”világíthat”. Ha megfelelő gyorsasággal történik a kapcsolgatás, akkor az emberi szem tehetetlensége miatt láthatóvá válik a kijelzőkön megjelenő összes számjegy (holott valójában egyszerre csak egy jelenik meg). Ennek a megoldásnak a hátránya, hogy sok processzoridőt igényel, hiszen folyamatosan szükség van a vezérlésre. A kijelzendő számjegy kiírása úgy történik, hogy az értéket kitesszük PORTB alsó 4 bitjére (az adatbuszra), és az adott TIL kijelző EN (engedélyező) bemenetét egy utasításciklus idejére alacsony szintre helyezzük. Ez az idő elegendő ahhoz, hogy a kijelző tárolói felvegyék az adatbuszra kitett értéket. Sorra végigmegyünk mind a négy kijelzőn, és mindegyiknek odaadjuk a neki szánt számjegyet. A kijelzendő érték buszra történő kiküldéséhez PORTB-nek kizárólag az alsó 4 bitjét szabad módosítani, hiszen a felső 4 (RB4 – RB7) más célra van fenntartva. Ha véletlenül ezeket is módosítanánk, akkor felborulhat a kijelzési művelet, és ami még veszélyesebb, a sebességváltást vezérlő szálak értékei is módosulhatnak (pl.: mindkettő magas → rövidzár a motorvezérlőben). Ennek elkerülése érdekében először kiolvassuk PORTB tartalmát, ezt lemaszkoljuk (”összeéseljük”) egy félig 0-t, félig 1-et tartalmazó bájttal, úgy, hogy PORTB alsó 4 bitjét lenullázzuk vele, majd ehhez hozzáadjuk (”összevagyoljuk vele”) a kijelzendő számot. Ezzel a megoldással PORTB-n módosul a 4 adatbit értéke, viszont a másik 4 bit változatlan marad.
58
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
8.4.3.2. A konvertáló eljárás (3.2) Ahhoz, hogy a váltóvezérlő eljárásban a mért fordulatszám értéket össze tudjuk hasonlítani a váltást elindító vagy megállító konstans határértékekkel, ahhoz a mért értéknek bináris számnak kell lennie. A mért fordulatszám érték viszont három külön változóban, BCD kódként tárolódik, ezért ez közvetlenül nem alkalmas az összehasonlításra. A BCD kódolású számból egyetlen bináris számot kell előállítani, ezt a feladatot végzi el a konvertáló eljárás. A mért érték számjegyeit d1, d10 és d100 változók tartalmazzák. Az egyes helyiértéken d1, a tízes helyiértéken d10, a százas helyiértéken pedig d100 áll. Ebből a három számjegyből nagyon egyszerűen meghatározható a szám valódi értéke. Az adott helyiértéken szereplő számjegyeket be kell szorozni a helyiértékükkel, s ezután össze kell adni a szorzatokat. Az átalakítás végére az RPM változóban a következő összeg eredménye fog szerepelni: d1 + d10 × 10 + d100 × 100.
Mivel a PIC utasításkészletében nem szerepel szorzás művelet, ezért más eszközhöz kell folyamodni. Összeadás művelet szerencsére van, ezt alkalmazva a szorzás megoldható többszöri összeadásként. RPM változó értéke kezdetben 0. Ehhez ezután hozzáadjuk d1-et egyszer, d10-et tízszer, majd d100-at százszor. A többszöri összeadás többszöri lefutású ciklusokban történik. 8.4.3.3. A váltóvezérlő eljárás (3.3) Ebben a részben történik a sebességváltás állapotának megváltozását előidéző feltételek kiértékelése, és ezektől függően a váltás állapotának módosítása. A sebességváltásnak 3 állapota lehet: magasabb fokozatba váltás, alacsonyabb fokozatba váltás, és nincs sebességváltás. Ezen állapotok között 4 átmenet van, kettő a (felfelé vagy lefelé történő) váltás elindításakor, és kettő a (felfelé vagy lefelé történő) váltás leállításakor. A 6.2. sz. ábrán a függőleges nyilak jelzik a 4, váltási állapotok közti átmenetet. Ebből láthatóvá válik, hogy 4 feltételre van szükség a sebességváltás állapotának módosításához, ezek pedig a következők:
59
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
•
Ha éppen alacsonyabb fokozatba váltunk, és a fordulatszám meghaladja 220-at, vagy elértük a legkisebb sebességfokozatot, akkor a váltást leállítjuk.
•
Ha éppen magasabb fokozatba váltunk, és a fordulatszám lecsökken 180 alá, vagy elértük a legnagyobb sebességfokozatot, akkor a váltást leállítjuk.
•
Ha a fordulatszám kisebb, mint 170, és még nem értük el a legkisebb sebességfokozatot, akkor váltás alacsonyabb fokozatba.
•
Ha a fordulatszám nagyobb, mint 230, és még nem értük el a legnagyobb sebességfokozatot, akkor váltás magasabb fokozatba.
A fenti feltételeket logikai műveletekkel is megfogalmazhatjuk. A műveletek operandusaiban használt jelzések a következők: •
RPM: az aktuális fordulatszámot tartalmazza
•
Min: az alsó végálláskapcsoló jele (értéke 0, ha elértük a legkisebb fokozatot)
•
Max: a felső végálláskapcsoló jele (értéke 0, ha elértük a legnagyobb fokozatot)
•
MotFel: értéke 1, ha éppen magasabb fokozatba váltunk, s 0, ha ebbe az irányba nem történik sebességváltás
•
MotLe: értéke 1, ha éppen alacsonyabb fokozatba váltunk, s 0, ha ebbe az irányba nem történik sebességváltás
A feltételek pontosítva, logikai műveletekkel megfogalmazva: •
HA (((RPM >= 22) VAGY (Min = 0)) ÉS (MotLe = 1)), AKKOR MotLe = 0
•
HA (((RPM <= 18) VAGY (Max = 0)) ÉS (MotFel = 1)), AKKOR MotFel = 0
•
HA ((RPM <= 17) ÉS (Min = 1)), AKKOR MotLe = 1
•
HA ((RPM >= 23) ÉS (Max = 1)), AKKOR MotFel = 1
A váltóvezérlő eljárásban ezeket a feltételeket sorra kiértékeljük, és az eredménytől függően módosítjuk a sebességváltás állapotát. Fontos, hogy a váltást leállító feltételeket helyezzük előre. Ennek oka a következő: Vegyük azt az esetet, mikor éppen magasabb fokozatba váltunk, és ennek hatására csökken a motor fordulatszáma. Ha ebben az állapotban hirtelen lefékezzük a járművet, akkor a fordulatszám nagy sebességgel csökkenni fog. A csökkenés nagy mértéke
60
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
okozhat olyan jelenséget, hogy az egyik mérési ciklusban a fordulatszám még a 180-as kikapcsolási határ felett van, a következő méréskor viszont már 170 alá csökkent, amikor is el kell indítani az ellenkező irányú sebességváltást. Ha ez megtörténik, és a váltást kikapcsoló feltételeket az azt bekapcsoló feltételek után helyeztük volna el, akkor, mivel az ellenkező irányba való váltást még azelőtt elindítjuk, hogy a másik irányba történőt kikapcsolnánk, egy pillanatra zárlatot okoznánk a motorvezérlő áramkörben. Ennek elkerülése érdekében a váltást 1-re állító részek előtt helyezzük el az azt kikapcsoló, 0-ra állító részeket. Ezzel a megoldással zárlat még véletlenül sem fog tudni kialakulni. Programozáskor ennek a feladatnak a megoldására a PIC ”és” és ”vagy” utasításait nem tudjuk felhasználni, mert az összehasonlítandó bájtoknak csak 1-1 bitjét kell összehasonlítanunk egymással, ezek a bitek pedig nem ugyanazon a helyiértéken állnak. A problémát más eszközzel is meg lehet oldani: Létrehozunk egy Eredmény nevű változót, amelynek csak a két alsó bitjét használjuk fel (értékük kezdetben 0). Az egymással ”vagy” kapcsolatban álló feltételek teljesülésekor az Eredmény változó ugyanazon bitjét magasra állítjuk. Az egymással ”és” kapcsolatban álló feltételek teljesülésekor az Eredmény változó két különböző bitjét állítjuk 1-re. Az egyiket akkor, ha az egyik feltétel teljesült, a másikat pedig akkor, ha a másik. Ezután megnézzük, hogy az Eredmény változó értéke egyezik-e azzal a bájttal, amelynek értékét kell, hogy felvegye Eredmény, ha az állítás igaz volt. Példa: A kiértékelendő állítás: ((A VAGY B) ÉS C) Eredmény változó értéke kezdetben: 0000 0000 Ha ”A” igaz, akkor Eredmény változó 0. bitjét 1-re állítjuk (Eredmény 0000 0001 lesz) Ha ”B” igaz, akkor Eredmény változó 0. bitjét 1-re állítjuk (Eredmény 0000 0001 lesz) Ha ”C” igaz, akkor Eredmény változó 1. bitjét 1-re állítjuk (Eredmény 0000 001x lesz) Ha ezek után Eredmény változó értéke 0000 0011 (decimálisan 3), akkor az állítás igaz. A váltóvezérlő eljárásban ezzel a módszerrel van felírva a fent ismertetett 4 feltétel, a program működéséről részletesen a 14. melléklet 3.3-as pontjában lehet olvasni.
61
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
9. Értékelés és továbbfejlesztési lehetőségek 9.1. Az elkészült rendszer és az elvégzett munka értékelése A sebességváltás szabályozásából a járművek működtetése során jelentős előnyök származhatnak.
Fokozatmentes
sebességváltóval
lehetőség
nyílik
a
rendszer
teljesítményének és/vagy hatásfokának a maximalizálására, ezzel üzemanyag/energia megtakarítás érhető el, és csökkenthető a környezeti terhelés is. Számos robbanómotoros járműben alkalmaznak ilyen típusú sebességváltót, ezek közül napjainkban egyre többet hallani a CVT-vel szerelt személyautókról. A közeljövőben egyre csak tért hódító hibrid, és tiszta elektromos hajtású járműveknél is ki lehet használni a váltó nyújtotta előnyöket. Az elektromotorral meghajtott járműveknél a sebességváltás megoldható több villanymotor soros/párhuzamos kapcsolásának változtatásával. Ezzel szükségtelenné válhatnak a mechanikus sebességváltók, de a módszer hátránya, hogy kevés (2, vagy esetleg 3) sebességfokozat áll rendelkezésre. A fokozatnélküli váltóknak még ezzel szemben is megvan az az előnye, hogy a fokozatok közti űr kitölthetővé válik, ezzel a motor az idő túlnyomó részében az optimális fordulatszámon tud üzemelni. Manapság egyre inkább az energiafelhasználás csökkentésén, az energiaátalakítás hatásfokának javításán van a hangsúly, ezért úgy gondolom, hogy a dolgozatban ismertetett módszernek van jövője. 9.2. Továbbfejlesztési lehetőségek A fent leírt szabályozási eljárás a motor fordulatszámát egy szűk tartományban tartja. Bár ebben a tartományban a motor teljesítménye közel van a maximális teljesítmény értékéhez, a tartomány szűkítésével ezen még tovább lehet javítani. A teljesítmény további javítását szolgálná egy olyan szabályozási eljárás alkalmazása, mellyel lehetséges a váltómotor fordulatszámának szabályozása. Ezzel a hajtómotor fordulatszámát pontosabban be lehetne állítani, és a fordulatszám ingadozása is csekélyebb lenne. A mérendő impulzusokat létrehozó forgó lyukas tárcsán lévő lyukak számának növelésével a mérés pontossága javítható.
62
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
A motorvezérlő áramkörben lévő tranzisztorok korszerű MOSFET-ekkel történő helyettesítése csökkentené a hőveszteségeket, és javítaná a rendszer hatásfokát. A belső tárolós, TIL311 típusú kijelzők jelentős fogyasztással bírnak. Ezek helyettesíthetők például normál, 7 szegmenses LED-es kijelzőkkel, vagy alacsony fogyasztású LCD kijelzővel. A motorvezérlő áramkör meghajtását biztonságosabbá tehetjük a PIC és a motorvezérlő közé helyezett kombinációs logikával. Ez logikai kapuk segítségével, a két, PIC-től jövő bemeneti szál értékeiből képez négy kimeneti értéket, mellyel a motorvezérlő négy kapcsolóelemét vezérli. A kombinációs logika alkalmazásával a szoftver hibás működésekor jelentkező helytelen vezérlőjel esetében sem tud rövidzár keletkezni a motorvezérlőben. A fordulatszámmérő program megírására van egy másik, jobb alternatíva is. Ez felhasználja a PIC hardveres impulzusszámlálóját. A TMR0 hozzárendelhető az RA4/T0CKI kivezetéshez, ekkor a lábra érkező jel felfutó vagy lefutó éleire változhat (növelődhet) TMR0 értéke. A TMR0 számláló előtt van egy (szintén hardveres) előosztó, amelyet ha beállítunk a legnagyobb osztáshoz (osztás 256-tal), akkor a RA4 lábra érkező impulzusok 16 biten számlálhatók. Mindez teljesen hardverből, szoftveres beavatkozás nélkül. Amit szoftveresen kell megvalósítani, az a bejövő jel adott ideig tartó beengedése (kapuzás), és a mért érték előosztóból való kiolvasása. Ezzel a módszerrel nagy frekvenciájú, 50 MHz-es jel is mérhető, míg a dolgozatban ismertetett programmal a mérendő jel maximális frekvenciája csupán 4 kHz. [16]
63
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
10.
Összegzés
Az áramkör tervezésekor, megépítésekor, a programozáskor és a szakdolgozat írása során nagyon sok új információt sikerült összegyűjtenem. Az Elektromobil verseny hatására, önként tanultam meg PIC mikrovezérlőt programozni. Az információ nagy részét az internetről gyűjtöttem, kisebb hányadához könyvekből jutottam hozzá, de nem elhanyagolható a bizonyos emberek által elmondott ismeretanyag sem. A verseny rákényszerített arra, hogy rövid idő alatt a lehető legtöbbet produkáljam, ennek eredményeképpen rengeteg új ismerettel gazdagodtam: Betekintést nyertem a PIC programozás rejtelmeibe. A program megírásakor alapszintű tudás állt rendelkezésre, de a téma érdekel, és azóta is folyamatosan foglalkozom vele. Gyakoroltam az áramköri panelek tervezését. Középiskolában, és az egyetem évei alatt is számos panelt elkészítettem már, de ekkora méretű, és ilyen bonyolultságú áramköri panellel eddig még nem volt dolgom. Az alkatrészek elhelyezése és a vezetősávok megrajzolása nem okozott különösebb gondot, de szükséges volt hozzá némi utánajárás. A LabVIEW programban elkészített szimulációs programok írásának következtében a grafikus programozásban is sikerült egy kis gyakorlatot szerezni. Kezdetben fejtörést okozott a problémák megfogalmazása, de idővel sikerült minden feladatot elvégezni. Az áramkör elkészítéséhez elengedhetetlen volt a szénkefés villanymotorok és az ezeket működtető
motorvezérlő
kapcsolások
megismerése.
A
motor
jelleggörbéinek
számolásánál nehéznek bizonyult a villamos és a mechanikai teljesítmény közti kapcsolat felállítása, de komolyabb tanulmányozást követően végül sikerült dűlőre jutni, ezt bizonyítja, hogy a program által kiszámított motor jelleggörbék megegyeznek a gyári adatlapon megadottakkal. Megismerkedtem a PWM (Pulse Width Modulation) módszer alkalmazásával a villanymotorok fordulatszámának szabályozásában, erre kísérleti hardver és szoftver is készült, de ez az idő rövidsége miatt nem kerülhetett bele a megépített áramkörbe.
64
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
Úgy gondolom, hogy dolgozatom, témájával és eredményeivel újszerűnek és egyedinek mondható, talán gyakorlati alkalmazása sem áll távol a valóságtól. A dolgozatírás során, nagy részben ismeretlen területekről sikerült tapasztalatot szereznem, jövőbeni célom ezen ismereteket tovább gyarapítani, mert a témakört érdekesnek találom. A dolgozat lehetővé tette, hogy elmélyülhessek abban, ami érdekel, és amit szeretek csinálni.
65
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
11.
Irodalomjegyzék
[1] A BOSCH Elektromobil verseny http://www.bosch-elektromobil.hu/ [2] A BOSCH PSB 18 LI-2 akkus ütvefúró/csavarozó jellemzői http://www.bosch-do-it.co.uk/boptocs2uk/DIY/Tools/GB/en/hw/Bosch+Cordless+Combi+Drill/95231/PSB+18+LI2/23903/index.htm [3] A MABUCHI RS-775WC-8514 típusú szénkefés villanymotor jellemzői http://www.mabuchi-motor.co.jp/en_US/cat_files/rs_775vcwc.pdf [4] Tsukasa Electric CO., LTD: DC motor specifications - Villanymotor jelleggörbék http://www.tsukasa-d.co.jp/en/product/spec.html [5] R/C Combat Vehicles, Powertrain Design - Villanymotorok paraméterei, számítások http://delic.awger.net/tanks/drivetrain-design/ [6] Enigma Industries: Electric Drive Train Simulator - Elektromos hajtás szimulációja http://www.enigmaindustries.com/EDTSim.htm [7] Wikipedia: Torque - A teljesítmény, a nyomaték és a fordulatszám kapcsolata http://en.wikipedia.org/wiki/Torque [8] Az 5.1. sz. ábra (Az áttétel változtatása szíj hajtású CVT-vel) forrása http://auto.howstuffworks.com/cvt2.htm [9] Az 5.2. sz. ábra (Az áttétel változtatása gyűrűs CVT-vel) forrása http://auto.howstuffworks.com/cvt3.htm [10] L7805CV adatlapja, 18. oldal, 18. ábra: High Current Voltage Regulator http://www.datasheetcatalog.org/datasheet/stmicroelectronics/2143.pdf [11] Fizikai kísérletek gyűjteménye: Kapcsolóérzékelők csatlakoztatása a számítógéphez - Az optokapu és a jel-előfeldolgozó áramkör rajza (I.26. ábra) http://metal.elte.hu/~phexp/doc/kin/a4s2s1.htm
66
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
[12] Texas Instruments: A TIL311 típusú hexadecimális kijelző adatlapja http://www.alldatasheet.net/datasheet-pdf/pdf/222932/TI/TIL311.html [13] Microchip Tech. Inc.: AN905 - Brushed DC Motor Fundamentals (6., 7., 8. Ábra) http://ww1.microchip.com/downloads/en/AppNotes/00905a.pdf [14] PIC tanfolyam: 1. szám - Bevezető (Mi az a PIC?) http://www.freeweb.hu/fairco/pic/1/p1.html [15] Microchip Tech. Inc.: A PIC16F84A adatlapja http://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf [16] Microchip Tech. Inc.: AN592 - Frequency Counter Using PIC16C5X http://ww1.microchip.com/downloads/en/AppNotes/00592d.pdf
67
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
12.
Mellékletek
1. sz. melléklet – Az Elektromobil hajtási rendszere (1)
2. sz. melléklet – Az Elektromobil hajtási rendszere (2)
68
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
3. sz. melléklet – Az áttétel-állító mechanika (részlet)
4. sz. melléklet – A 4.2. sz. ábrán látható grafikont generáló LabVIEW program blokk diagramja (Gyorsulás fix áttétel esetén) 69
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
5. sz. melléklet – A 4.6. sz. ábrán látható grafikont generáló LabVIEW program blokk diagramja (Gyorsulás háromfokozatú sebességváltóval)
70
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
6. sz. melléklet – A 4.12. sz. ábrán látható grafikont generáló LabVIEW program blokk diagramja (Gyorsulás fokozatmentes sebességváltóval)
71
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
7. sz. melléklet – A 4.9. sz. ábrán látható grafikont generáló LabVIEW program blokk diagramja (A motor jelleggörbéi)
72
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
8. sz. melléklet – A fordulatszám szabályozó áramkör nyomtatott áramköri rajza
9. sz. melléklet – Fotó a kész panelról
73
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
10. sz. melléklet – Fotó a panel hátoldaláról
11. sz. melléklet – A fordulatszámmérő még a fejlesztési fázisban
74
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
12. sz. melléklet – A kezdetleges fordulatszámmérő működés közben
75
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
13. sz. melléklet – A PIC16F84A utasításkészlete (forrás: a PIC16F84A adatlapja ([15]), 36. oldal, 7-2 táblázat)
76
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
14. sz. melléklet – A PIC mikrovezérlőn futó program kódja (asm): list p=16f84a include p16f84a.inc ;Beállítások az égetőprogram számára: __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON ;*** Változók deklarálása: ************************************************************* CBLOCK 0x0C
;Memória lefoglalása a 0C címtől kezdve.
;A megszakításkor a W és a STATUS regiszter értékének mentéséhez szükséges változók: wsave statusSave ;Az idő méréséhez szükséges változók: qms ms ds s1 s2 m1 m2 tizedmp ;A bejövő jelben történő változások számlálásához szükséges változók: d1 d10 d100 ;A kijelzéshez és egyéb számításokhoz szükséges változók: temp i1 RPM Eredmeny ENDC ;*** Deklarációs rész vége ************************************************************* org
0
goto
start
;A PIC bekapcsolásakor innen, a 0-s címről indul a program ;futása, ;rögtön át is ugrunk az inicializáló részhez.
;(1) Itt kezdődik a megszakítási rutin ************************************************* org nop movwf movfw movwf bcf
4 wsave STATUS statusSave STATUS,RP0
;250 us-onként történik megszakítás, ekkor a 4-es ;memóriacímen lévő utasítás hívódik meg. ;Elmentjük a munkaregiszter (W), ;és a STATUS regiszter aktuális értékét.
;(1.1) Itt kezdődik az időmérő rész **************************************************** bcf
movlw movwf
INTCON,T0IF ;Töröljük a T0IF jelzőbitet, mellyel a PIC azt jelzi nekünk, ;hogy a TMR0 túlcsordulása miatt hívódott meg a megszakítási ;rutin. d'138' ;Kezdőértékkel látjuk el a TMR0 számlálót, a 138-as érték TMR0 ;azt eredményezi, hogy a túlcsordulások között pontosan ;250 us lesz az eltelt idő.
incf movfw xorlw btfss goto
qms,f qms d'4' STATUS,Z kilep0
;250 us-onként megnöveljük a qms változót. ;Megvizsgáljuk, hogy qms értéke elérte-e a 4-et, és ha igen,
clrf
qms
;akkor lenullázzuk,
77
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
kilep0
incf movfw xorlw btfss goto
ms,f ms d'100' STATUS,Z kilep0
clrf incf movfw xorlw btfss goto
ms ds,f ds d'10' STATUS,Z kilep0
clrf incf movfw xorlw btfss goto
ds s1,f s1 d'10' STATUS,Z kilep0
clrf incf movfw xorlw btfss goto
s1 s2,f s2 d'6' STATUS,Z kilep0
clrf incf movfw xorlw btfss goto
s2 m1,f m1 d'10' STATUS,Z kilep0
;(Ha nem érte el, akkor ugrunk a kilep0 címkére.)
clrf incf goto
m1 m2,f kilep0
;akkor lenullázzuk, ;és (10 percenként) megnöveljük az m2 változót. ;(Ha nem érte el, akkor ugrunk a kilep0 címkére.)
movfw iorwf xorlw btfsc bsf
qms ;Ha qms és ms változók értéke egyaránt nulla, ms,w ;akkor letelt a 100 ms-os mérési idő. b'00000000' STATUS,Z tizedmp,0 ;Ekkor 1-re állítjuk a tizedmp változó 0-s bitjét, ;ezzel jelezve a főprogram számára, hogy kezdődhet a ;mért érték kijelzése, és a váltás állapotának frissítése. IntRB ;Ugrunk az IntRB címkére.
goto
;és (1 ms-onként) megnöveljük az ms változót. ;Megvizsgáljuk, hogy ms értéke elérte-e a 100-at, ha igen, ;(Ha nem érte el, akkor ugrunk a kilep0 címkére.) ;akkor lenullázzuk, ;és (100 ms-onként) megnöveljük a ds változót. ;Megvizsgáljuk, hogy ds értéke elérte-e a 10-et, és ha igen, ;(Ha nem érte el, akkor ugrunk a kilep0 címkére.) ;akkor lenullázzuk, ;és (1 s-onként) megnöveljük az s1 változót. ;Megvizsgáljuk, hogy s1 értéke elérte-e a 10-et, és ha igen, ;(Ha nem érte el, akkor ugrunk a kilep0 címkére.) ;akkor lenullázzuk, ;és (10 s-onként) megnöveljük az s2 változót. ;Megvizsgáljuk, hogy s2 értéke elérte-e a 6-ot, és ha igen, ;(Ha nem érte el, akkor ugrunk a kilep0 címkére.) ;akkor lenullázzuk, ;és (60 s-onként) megnöveljük az m1 változót. ;Megvizsgáljuk, hogy m1 értéke elérte-e a 10-et, és ha igen,
;(1.1) Itt végződik az időmérő rész **************************************************** ;(1.2) Itt kezdődik az impulzusszámláló rész ******************************************* IntRB
btfss goto bcf
INTCON,RBIF ;Ha történt jelszint-változás a PORTB 4-es lábán, ki0 ;akkor belépünk a számláló eljárásba, ha nem, akkor ;ugrunk a ki0 címkére. INTCON,RBIF ;0-ra állítjuk az RBIF jelzőbitet, mellyel a PIC jelezte, ;hogy jelszint-változás történt PORTB-n.
incf movfw xorlw btfss goto
d1,f d1 d'10' STATUS,Z ki0
clrf incf movfw xorlw btfss goto
d1 d10,f d10 d'10' STATUS,Z ki0
;Megnöveljük d1-et. ;Ha d1 értéke 10, akkor ;(Ha d1 nem érte el a 10-et, akkor kilépünk innen, ugrunk ;a ki0 címkéhez.) ;lenullázzuk, ;és megnöveljük d10-et. ;Ha d10 értéke 10, akkor ;(Ha d10 nem érte el a 10-et, akkor kilépünk innen, ugrunk ;a ki0 címkéhez.)
78
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
ki0
clrf incf goto
d10 d100,f ki0
;lenullázzuk, ;és megnöveljük d100-at. ;A számláló eljárás lefutott, ugrunk a ki0 címkéhez.
movfw movwf movfw retfie
statusSave STATUS wsave
;A megszakítási rutin lefutott, visszaállítjuk ;a STATUS ;és a W regiszter értékét. ;Visszatérünk a főprogram azon pontjához, ahol annak ;végrehajtása megszakadt.
;(1.2) Itt végződik az impulzusszámláló rész ******************************************* ;(1) Itt végződik a megszakítási rutin *************************************************
;(2) Itt kezdődik az inicializáló rész ************************************************* start
clrf bsf movlw tris bcf clrf bsf movlw tris bcf bsf movlw movwf bcf movlw movwf
PORTA STATUS,RP0 b'00011000' PORTA STATUS,RP0 PORTB STATUS,RP0 b'00010000' PORTB STATUS,RP0 STATUS,RP0 b'00000000' OPTION_REG STATUS,RP0 d'146' TMR0
clrf clrf clrf clrf clrf clrf clrf clrf clrf clrf clrf movlw movwf movlw movwf
qms ms ds s1 s2 m1 m2 d1 d10 d100 tizedmp b'11111111' PORTA b'00100000' PORTB
bsf bsf
;PORTA 3-as és 4-es bitjét bemenetnek, ;a többit kimenetnek állítjuk.
;PORTB 4-es bitjét bemenetnek, a többit kimenetnek állítjuk.
;1:2 arányú előosztást állítunk be a TMR0-hoz, így ;értéke minden második utasításciklusban növekszik 1-gyel. ;TMR0-t 146-os kezdőértékkel látjuk el, így a program ;indulása és az első túlcsordulás között pontosan 250 us ;fog eltelni. ;Lenullázzuk az időmérő, és az impulzusszámláló változókat.
;PORTA-nak mind a 3 kimeneti bitjét 1-re állítjuk (a TIL ;kijelzők EN lábai miatt). ;PORTB 5-ös bitjét az 1. TIL kijelző EN lába miatt 1-re ;állítjuk, a többit (az adatbiteket és a váltóvezérlő ;biteket) 0-ra. INTCON,GIE ;Engedélyezzük a megszakításokat, INTCON,T0IE ;és ezen belül a TIMER0 megszakítást.
;(2) Itt végződik az inicializáló rész *************************************************
;(3) Itt kezdődik a főprogram ********************************************************** write
btfss goto
tizedmp,0 vege
clrf
tizedmp
;Csak akkor hajtjuk végre a kijelző, konvertáló és ;váltóvezérlő részeket, ha letelt a 100 ms-os mérési idő. ;Ha ez még nem történt meg, akkor a program semmi mást ;nem csinál, csak ugrál a vege és a write címkék között. ;Ha letelt a mérési idő, akkor nullázzuk a tizedmp változót, ;és hozzálátunk a főprogram lényegi részéhez.
;(3.1) Itt kezdődik a mért érték kijelzése ********************************************* ;4. számjegy kiírása: movlw d'0'
;Betöltjük a W regiszterbe a kiírandó szám egyes ;helyiértékén lévő számjegyét, majd lemaszkoljuk úgy,
79
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
andlw movwf
b'00001111' ;hogy csak az alsó 4 bitje maradjon meg (a többi 0), temp ;és ezt betesszük a temp nevű változóba.
movfw andlw
PORTB ;Betöltjük PORTB aktuális értékét a W-be, és ezt is b'11110000' ;lemaszkoljuk, de itt a felső 4 bitet hagyjuk meg, ;és az eredményt a W-ben hagyjuk. temp,w ;A temp és a W értékeit "összevagyoljuk", és az eredményt PORTB ;kitesszük PORTB-re. Ezáltal az adatbuszon jelen lesz a ;kijelezni kívánt számjegy.
iorwf movwf
bcf bsf
PORTA,0 PORTA,0
;A 4. TIL kijelző engedélyező lábát egy pillanatra alacsony ;szintre helyezzük, hogy a belső tárolói felvegyék az ;adatbuszra kitett értéket.
;3. számjegy kiírása: movfw d1 andlw movwf movfw andlw iorwf movwf
bcf bsf
;Betöltjük a W regiszterbe a kiírandó szám tízes ;helyiértékén lévő számjegyét, majd lemaszkoljuk úgy, b'00001111' ;hogy csak az alsó 4 bitje maradjon meg (a többi 0), temp ;és ezt betesszük a temp nevű változóba.
PORTB ;Betöltjük PORTB aktuális értékét a W-be, b'11110000' ;és ezt is lemaszkoljuk, de itt a felső 4 bitet hagyjuk meg, ;és az eredményt a W-ben hagyjuk. temp,w ;A temp és a W értékeit "összevagyoljuk", és az eredményt PORTB ;kitesszük PORTB-re. Ezáltal az adatbuszon jelen lesz a ;kijelezni kívánt számjegy. PORTA,1 PORTA,1
;A 3. TIL kijelző engedélyező lábát egy pillanatra alacsony ;szintre helyezzük, hogy a belső tárolói felvegyék az ;adatbuszra kitett értéket.
;2. számjegy kiírása: movfw d10 andlw movwf movfw andlw iorwf movwf
bcf bsf
;Betöltjük a W regiszterbe a kiírandó szám százas ;helyiértékén lévő számjegyét, majd lemaszkoljuk úgy, b'00001111' ;hogy csak az alsó 4 bitje maradjon meg (a többi 0), temp ;és ezt betesszük a temp nevű változóba. PORTB ;Betöltjük PORTB aktuális értékét a W-be, b'11110000' ;és ezt is lemaszkoljuk, de itt a felső 4 bitet hagyjuk meg, ;és az eredményt a W-ben hagyjuk. temp,w ;A temp és a W értékeit "összevagyoljuk", és az eredményt PORTB ;kitesszük PORTB-re. Ezáltal az adatbuszon jelen lesz a ;kijelezni kívánt számjegy. PORTA,2 PORTA,2
;A 2. TIL kijelző engedélyező lábát egy pillanatra alacsony ;szintre helyezzük, hogy a belső tárolói felvegyék az ;adatbuszra kitett értéket.
;1. számjegy kiírása: movfw d100 andlw movwf movfw andlw iorwf movwf
bcf bsf
;Betöltjük a W regiszterbe a kiírandó szám ezres ;helyiértékén lévő számjegyét, majd lemaszkoljuk úgy, b'00001111' ;hogy csak az alsó 4 bitje maradjon meg (a többi 0), temp ;és ezt betesszük a temp nevű változóba.
PORTB ;Betöltjük PORTB aktuális értékét a W-be, b'11110000' ;és ezt is lemaszkoljuk, de itt a felső 4 bitet hagyjuk meg, ;és az eredményt a W-ben hagyjuk. temp,w ;A temp és a W értékeit "összevagyoljuk", és az eredményt PORTB ;kitesszük PORTB-re. Ezáltal az adatbuszon jelen lesz a ;kijelezni kívánt számjegy. PORTB,5 PORTB,5
;Az 1. TIL kijelző engedélyező lábát egy pillanatra alacsony ;szintre helyezzük, hogy a belső tárolói felvegyék az ;adatbuszra kitett értéket.
;(3.1) A mért érték kijelzésének vége **************************************************
80
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
;(3.2) BCD-ből binárissá alakítás kezdete ********************************************** ;A BCD kódban tárolt mért érték nem alkalmas arra, hogy összehasonlítási ;műveleteket végezzünk rajta, ezért ebből egy bináris számot kell képezni:
mult10
clrf movfw addwf
RPM d1 RPM,f
movlw movwf movfw addwf decfsz goto
d'10' i1 d10 RPM,f i1,f mult10
movlw movwf mult100 movfw addwf decfsz goto
;Lenullázzuk az RPM változót, és ezután hozzáadjuk a d1, d10 ;és d100 számjegyek helyiértékükkel való szorzatát.
d'100' i1 d100 RPM,f i1,f mult100 ;Az átalakítás végére az RPM változó értéke: ;d1 + d10*10 + d100*100
;(3.2) BCD-ből binárissá alakítás vége ************************************************* ;(3.3) A váltóvezérlő eljárás kezdete ************************************************** ;Sorra végigmegyünk a 4 feltételen, és ha valamelyik igaz, ;akkor változtatunk a sebességváltás aktuális állapotán. ;Az RPM változó tartalmazza az aktuális fordulatszámot. ;Ha felfelé (magasabb fokozatba) váltunk, akkor MotFel értéke 1. ;Ha lefelé (alacsonyabb fokozatba) váltunk, akkor MotLe értéke 1. ;Egyszerre csak egyik lehet 1, a másiknak 0-nak kell lennie. ;MotFel és MotLe együttes 0 értéke azt jelzi, hogy nincs sebességváltás. ;Ha az alsó végálláskapcsoló jelez, akkor Min értéke 0, egyébként 1. ;Ha a felső végálláskapcsoló jelez, akkor Max értéke 0, egyébként 1.
;HA (((RPM>=22) VAGY (Min=0)) ÉS (MotLe=1)) ;AKKOR MotLe = 0 clrf Eredmeny ;Nullázzuk az Eredmeny változót. movfw RPM sublw d'21' ;Kivonjuk 21-ből RPM-et, és ha ennek következtében a STATUS btfss STATUS,C ;regiszter C bitje 0 lesz (RPM > 21), akkor bsf Eredmeny,0 ;1-re állítjuk az Eredmeny változó 0-s bitjét. btfsc bsf
PORTB,6 Eredmeny,1
;Ha MotLe értéke 1, akkor ;1-re állítjuk az Eredmeny változó 1-es bitjét.
btfss bsf
PORTA,3 Eredmeny,0
;Ha Min értéke 0, akkor ;1-re állítjuk az Eredmeny változó 0-s bitjét.
movfw xorlw btfsc bcf
Eredmeny b'00000011' STATUS,Z PORTB,6
;Ha az Eredmeny változó értéke 3, az azt jelenti, hogy ;teljesült az éppen folyamatban lévő, alacsonyabb fokozatba ;történő váltás leállításának feltétele, ;ezért 0-ra állítjuk MotLe értékét (leállítjuk a váltást).
;HA (((RPM<=18) VAGY (Max=0)) ÉS (MotFel=1)) ;AKKOR MotFel = 0 clrf Eredmeny ;Nullázzuk az Eredmeny változót. movlw d'19' subwf RPM,w ;Kivonunk RPM-ből 19-et, és ha ennek következtében a STATUS btfss STATUS,C ;regiszter C bitje 0 lesz (RPM < 19), akkor bsf Eredmeny,0 ;1-re állítjuk az Eredmeny változó 0-s bitjét.
81
Fokozatmentes sebességváltó áttételének szabályozása a fordulatszám függvényében PIC16F84A mikrovezérlővel
btfsc bsf
PORTB,7 Eredmeny,1
;Ha MotFel értéke 1, akkor ;1-re állítjuk az Eredmeny változó 1-es bitjét.
btfss bsf
PORTA,4 Eredmeny,0
;Ha Max értéke 0, akkor ;1-re állítjuk az Eredmeny változó 0-s bitjét.
movfw xorlw btfsc bcf
Eredmeny b'00000011' STATUS,Z PORTB,7
;Ha az Eredmeny változó értéke 3, az azt jelenti, hogy ;teljesült az éppen folyamatban lévő, magasabb fokozatba ;történő váltás leállításának feltétele, ;ezért 0-ra állítjuk MotFel értékét (leállítjuk a váltást).
;HA ((RPM<=17) ÉS (Min=1)) ;AKKOR MotLe = 1 clrf Eredmeny ;Nullázzuk az Eredmeny változót. movlw d'18' subwf RPM,w ;Kivonunk RPM-ből 18-at, és ha ennek következtében a STATUS btfss STATUS,C ;regiszter C bitje 0 lesz (RPM < 18), akkor bsf Eredmeny,0 ;1-re állítjuk az Eredmeny változó 0-s bitjét. btfsc bsf
PORTA,3 Eredmeny,1
;Ha Min értéke 1, akkor ;1-re állítjuk az Eredmeny változó 1-es bitjét.
movfw xorlw btfsc bsf
Eredmeny b'00000011' STATUS,Z PORTB,6
;Ha az Eredmeny változó értéke 3, az azt jelenti, hogy ;teljesült az alacsonyabb sebességfokozatba történő váltás ;elindításának feltétele, ;ezért 1-re állítjuk MotLe értékét (elindítjuk a váltást).
;HA ((RPM>=23) ÉS (Max=1)) ;AKKOR MotFel = 1 clrf Eredmeny ;Nullázzuk az Eredmeny változót. movfw RPM sublw d'22' ;Kivonjuk 22-ből RPM-et, és ha ennek következtében a STATUS btfss STATUS,C ;regiszter C bitje 0 lesz (RPM > 22), akkor bsf Eredmeny,0 ;1-re állítjuk az Eredmeny változó 0-s bitjét. btfsc bsf
PORTA,4 Eredmeny,1
;Ha Max értéke 1, akkor ;1-re állítjuk az Eredmeny változó 1-es bitjét.
movfw xorlw btfsc bsf
Eredmeny b'00000011' STATUS,Z PORTB,7
;Ha az Eredmeny változó értéke 3, az azt jelenti, hogy ;teljesült a magasabb sebességfokozatba történő váltás ;elindításának feltétele, ;ezért 1-re állítjuk MotFel értékét (elindítjuk a váltást).
;(3.3) A váltóvezérlő eljárás vége *****************************************************
vege
clrf clrf clrf
d1 d10 d100
;Nullázzuk a számlálókat.
goto
write
;A főprogram lefutott, visszaugrunk az elejére és újra ;elkezdjük végrehajtani.
;(3) Itt végződik a főprogram ********************************************************** end
82