Obsah

 

1. Úvod ..............................................................  

2. Charakteristika použitého pohonu .................

2.1. Jednofázový indukčný (asynchrónny) motor ......      

2.1.1. Stavba a pôsobenie ..................................    

2.2. Riadenie jednofázových indukčných motorov ....      

2.2.1. Spúšťanie jednofázových motorov ............      

2.2.2. Regulácia otáčok ....................................      

2.2.3. Zastavovanie ..........................................      

2.2.4. Reverzácia .............................................             

2.3. Charakteristika DPC 100-2/16ET9 ...................       

2.3.1. Niektoré odlišnosti práčkových motorov ...      

2.3.2. Vnútorné zapojenie motora ......................      

3. Fuzzy riadenie ...............................................  

3.1. Úvod .............................................................     

3.2. Fuzzifikácia ...................................................      

3.4. Defuzzifikácia ................................................      

3.5. Zhodnotenie ...................................................     

3.6. Aplikácia fuzzy riadenia v pohonoch ...............       

4. Voľba riadiaceho čipu ................................... 

4.1. Základné technické údaje AT89C2051/24 ........

4.2. Mikropočítač pozostáva z týchto častí: ............              

4.2.1. Pamäťový podsystém ..............................     

4.2.2. Centrálna procesorová jednotka ...............      

4.2.3. Paralelné vstupy a výstupy ......................      

4.2.4. Čítače / časovače ....................................     

4.2.5. Sériový vstup / výstup ............................              

4.2.6. Prerušovací systém .................................     

4.2.7. Obsluha prerušenia .................................      

4.2.8. Inicializácia mikropočítača ......................      

4.2.9. Hodinový generátor ................................              

4.2.10. Prevádzka so zníženým príkonom ..........              

5. Návrh fuzzy regulátora .................................  

5.1. Použité názvy a skratky ..................................      

5.2. Požiadavky na konštrukciu regulátora ..............       

5.3. Činnosť regulátora .........................................      

5.4. Princíp regulátora ..........................................              

5.4.1. Popis blokov regulátora ..........................              

5.5. Programové riešenie .......................................      

5.5.1. Úskalia programového riešenia ................       

5.5.2. Realizacie funkcií príslušností .................      

5.5.3. Voľba funkcií príslušností ......................              

5.5.4. Výpočet akčného zásahu fuzzy regulátora         

5.6. Popis regulátora .............................................     

6. Záver ............................................................   

Zoznam použitej literatúry ........................... 

Zoznam príloh ..............................................  


1.  Úvod

 

         Súčasný vývoj techniky sa nesie v znamení automatizácie a regulácie procesov. Regulácia musí zvládnuť nielen reguláciu v ustálenom stave, ale samozrejme aj prechodné stavy ako rozbeh, brzdenie... Musí zvládať užívateľovi prístupné nastavovanie žiadaných parametrov procesu; prevádzky pri čiastočnom výpadku riadiaceho procesu, a pod.

         Úspech regulácie závisí na tom, ako dobre je popísaný proces, ktorý chceme regulovať. V praxi sa často vyskytujú procesy, ktoré matematicky popísať nevieme, alebo ich popis je taký zložitý, že sa nedá použiť. Ak by sme chceli takýto aspoň približne regulovať, potom tu existuje možnosť použiť fuzzy regulátor. Potom postačuje poznať zjednodušený popis systému, ktorý chceme regulovať. Treba poznamenať, že výsledok návrhu takéhoto regulátora bude závisieť od skúseností konštruktéra regulátora.

         Pokusy použiť pre reguláciu zložitých procesov teórie fuzzy množín sa ukázali veľmi sľubné a priniesli už konkrétne výledky.

         V tejto diplomovej práci by som chcel uviesť spôsob návrhu a realizácie fuzzy regulátora pohonu automatickej práčky, a to len realizovanom prostredníctvom jednočipového mikropočítača, čiže cenovo dostupnej regulácie.

 

 

 

 

 

2.  Charakteristika použitého pohonu

 

2.1.  Jednofázový indukčný (asynchrónny) motor

 

2.1.1.  Stavba a pôsobenie

Jednofázový indukčný motor má tú istú mechanickú stavbu ako trojfázový indukčný motor. Na statore (v 2/3-nách drážok) je uložené jednofázové vinutie. Do ostatných drážok sa zvyčajne vkladá pomocné vinutie na uľahčenie rozbehu. Rotor má viacfázové vinutie. Pre malé výkony prichádzajú do úvahy iba klietkové vinutia.

Majme trojfázový indukčný motor, ktorý je v chode. Keď tomúto motoru odpojíme jednu fázu vinutia statora od siete, bude pracovať ako jednofázový. Ak je takýto jednofázový motor v pokoji a pripojíme ho ku sieti, sám sa nerozbehne. V prípade, že ho nejakým spôsobom privedieme na určité otáčky v jednom alebo druhom smere, roztočí sa takmer na synchrónne otáčky a možno ho zaťažiť. V blízkosti synchrónnej rýchlosti, a to zaťažený alebo naprázdno, správa sa podobne ako viacfázový indukčný motor. Ak prekročí zaťaženie určitú hodnotu, vypadne z chodu a zastaví sa.

Správanie motora možno vysvetliť nasledujúco (vinutie statora je jednofázové, rotor je viacfázový, vinutý alebo klietkový). Keď je rotor v pokoji, motor sa správa ako transformátor, ktorého sekundárne vinutie je spojené nakrátko.

Jednofázové vinutie statora, ktoré sa napája striedavým prúdom, vytvára striedavé, stojaté (pulzujúce) pole a nie otáčavé magnetické pole. Hoci stojaté pulzujúce magnetické pole indukuje v tyčiach rotora prúdy, tangenciálne sily nimi vyvodené sa však navzájom rušia.

Stojaté pulzujúce magnetické pole možno rozložiť na dve fiktívne otáčavé magnetické polia, ktoré sa otáčajú v rôznych zmysloch (súsledné a inverzne pole). Každé toto otáčavé pole môže vyvodzovať užitočný moment len s tými prúdmi v tyčiach rotora, ktoré same indukovalo. Priemerná hodnota momentov, ktoré vznikajú napr. interakciou medzi poľom , a prúdmi rotora vzniknutými účinkom poľa , rovná sa nule. Preto pri teoretických úvahách možno jednofázový indukčný motor nahradiť skupinou, ktorá sa skladá z dvoch mechanicky spojených trojfázových motorov I a II. Predpokladajme, že ich vinutia statora su spojené do série podľa obr. 2.1 tak, že otáčavé pole motora I sa otáča v opačnom zmysle ako otáčavé pole motora II.

 

 

Obr. 2.1. Nahradenie jednofázového indukčného motora dvoma trojfázovými motormi

 

Súsledné pole indukuje v statore napätie a inverzné pole napätie . Napätia  a  majú sieťovú frekvenciu a s úbytkami na napätí vo vinutí statora sú v rovnováhe so sieťovým napätím  (rovnica (2.1)). Súsledné a inverzné pole indukujú vo vinutí rotora napätia  alebo . Hodnota a frekvencia obidvoch napätí je rozdielná a závisí od prevádzkového stavu stroja. Vo vinutí rotora sa skladajú dva prúdy s rôznou frekvenciou, ktoré vyvolajú vo vinutí rotora príslušné ohmické a reaktačné úbytky. Frekvencia prúdu  vyvolaná napätím , je  ( je sieťová frekvencia a  sklz) a frekvencia prúdu  vyvolaná napätím , je .

 

Obr. 2.2. Náhradná schéma jednofázového indukčného motora napájaného jednofázovo

a) Zapojenie na sieť bez pomocnej fázy, b) náhradná schéma

 

Pre obvod rotora teda platia dve napäťové rovnice (2.2) a (2.3). Ak všetky hodnoty rotora prepočítame na stator, dostaneme vzťahy:

 

                                              (2.1)

                                                       (2.2)

                                                (2.3)

                                                                 (2.4)

                                                                 (2.5)

 

kde    , sú fázové hodnoty napätia a prúdu statora,

      ohmický odpor statora,

             rozptylová reaktancia statora,

          hlavná reaktancia pri striedavom prúde statora,

               ohmický odpor rotora,

             rozptylová reaktancia rotora prepočítana na stator.

 

Rovnice (2.1), (2.2), (2.3) zodpovedajú náhradnej schéme na obr. 2.2b.

Prúdy  a  vytvárajú s otáčavými poľami (súsledným a inverzným) štyri momentotvorné zložky. Dve z nich (od prúdu  a inverzného poľa ako aj od prúdu  a súsledného poľa) sú časovo závislé a ich stredná hodnota je nulová. Súčet dvoch zostávajúcich zložiek (závislý od znamienka) od prúdu  a súsledného poľa ako aj prúdu  a inverzného poľa dáva výsledný moment  jednofázového motora

     ,                         (2.6)

                                                (2.7)

 

Prúdy  a  sa vypočítajú z rovníc (2.1), (2.2) a (2.3).

Pri s = 1, teda v pokoji, je  =  a záberný moment jednofázového indukčného motora je nulový. Rozbeh môže byť v ktoromkoľvek smere, závisí to od smeru impulzu.

Priebeh momentovej charakteristiky jednofázového indukčného motora  je na obr. 2.3.

 

 

 

Obr. 2.3. Priebeh momentovej charakteristiky

-moment od súsledného poľa, - moment od inverzného poľa

 

Najväčším nedostatkom jednofázového indukčného motora je, že sa nemôže samostatne rozbehnúť. Motor sa musí roztočiť zatiahnutím za remeň, kľukou alebo musí mať osobitné rozbehové zariadenie s pomocným rozbehovým vinutím. Toto vytvára (so zaradeným rezistorom, tlmivkou alebo kondenzátorom do obvodu pomocnej fázy) časovo posunuté pole proti poľu od hlavného vinutia. Tým sa docieli eliptické, príp. kruhové otáčavé pole, ktoré potom vytvára rozbehový moment. Po uskutočnení rozbehu sa pomocné vinutie odpojí odstredi-vým vypínačom, prúdovým alebo časovým relé.

 

2.2.  Riadenie jednofázových indukčných motorov

 

2.2.1.  Spúšťanie jednofázových motorov

Hlavné vinutie, ako sme už hovorili, je uložené v dvoch tretinách drážok statora. V jednej tretine drážok je navinutá pomocná fáza vinutia. Fiktívna os magnetického poľa hlavnej fázy a os poľa pomocnej fázy sú na seba kolmé. Otáčave magnetické pole vznikne vždy, keď striedavé prúdy, posunuté vzájomne časovo o uhol , prechádzajú vinutiami, ktoré sú proti sebe odchýlené o uhol . Pravidelné kruhové otáčavé pole by vzniklo vtedy, keby sme vinutie pomocnej fázy napájali vhodne veľkým striedavým prúdom časovo posunutým o  proti prúdu v hlavnej fáze.

Pri zábere je fázor prúdu  v hlavnej fáze oneskorený za fázorom napätia , o uhol  teda podobne ako pri trojfázovom indukčnom motore.

Pomocné vinutie sa má zapojiť tak, aby fázor prúdu  bol časovo posunutý proti  a to najlepšie o .

Najednoduchšie je spúšťanie s odporovým rozbehom. Fázový posun medzi prúdmi  a  sa dosiahne tým, že do obvodu pomocnej fázy zaradíme rezistor R. Prúd  musí byť pomerne veľký a fázový posun medzi , a  čo najmenší. Na obrázku 2.4a je schéma jednofázového indukčného motora s pomocnou fázou a rezistorom R.

 

Obr. 2.4. Jednofázový indukčný motor s pomocnou spúšťacou fázou a odporom R, kapacitou C a indukčnosťou L

 

Obr. 2.5. Poloha fázorov prúdov  a  a , jednofázového indukčného motora pri spúšťaní rezistorom v pomocnom vinutí

 

Uhol  nemôžeme dosiahnúť rovný . Otáčavé pole nebude kruhové, ale menej vhodné, eliptické. Priebeh časových fázorov prúdov  a  a napätia , pri zábere je na obr. 2.5.

V praxi sa pri odporovom rozbehu dosahuje rozbehový moment (1 až 1,3) . Aby pomocné vinutie pri spúšťaní nezhorelo, treba ho po dosiahnutí asi 2/3   odpojiť od siete (najčastejšie odstredivým vypínačom V). Priebeh momentovej charakteristiky je na obr. 2.6.         V tomto prípade možno pomocné vinutie spojené s rezistorom nahradiť vinutím z odporového materiálu.

 

Obr. 2.6. Momentová charakteristika jednofázového indukčného motora s odporovým rozbehom

    -záberny moment pri zaradeni rezistora R.

-maximálny moment v jednofázovom chode

 

Jednofázový indukčný motor s odporovým rozbehom možno použiť pri záberných momentoch motorov rovnajúcich sa menovitému momentu. Tento motor sa používa na pohon stolových brúsiek, ventilátorov, domácich vodárni a ostatných prístrojov pre domácnosť.

Spúšťanie s indukčnosťou sa vzhľadom na zhoršenie účinnosti a účinníka obyčajne nepoužíva.

Podstatne lepšie parametre pri zábere ma kondenzátorový motor alebo motor s kapacitným rozbehom. Do série s pomocnou fázou je podľa obr. 2.4c zapojený kondenzátor C. Ak sa vhodne zvolí kondenzátor C motora, fázor prúdu pomocnej fázy  predbieha fázor  hlavnej fázy o , takže pri zábere možno splniť všetky podmienky pre vznik pravidelného kruhového otáčavého poľa (obr. 2.7).

Obr. 2.7. Fázorový diagram kondenzátorového motora

 

V praxi môžeme pri kapacitnom motore dosiahnúť záberný moment až  a pritom záberný prúd je menší ako pri odporovom rozbehu motora s rovnakým výkonom. Obvod pomocnej fázy sa po rozbehu odpojí vypínačom V. Len ak sa uspokojíme s malým záberným momentom (napr. 30 až 60 % ), možno motor navrhnúť tak, že pomocná fáza môže byť trvalo zapojená cez pomerne malý kondenzátor, ktorý v prevádzke zlepšuje účinník.

Motor s rozbehovým kondenzátorom sa používa všade tam, kde sa požaduje veľký záberný moment (napr. pri kompresorových chladničkách).

Na obrázku 2.8 je zapojenie s prúdovým relé rozpájajúcim pomocnú fázu. Pri chladničkách je pohonný motor nepriedušne uložený a uzavrený s kompresorom v kovovom telese. Na spínanie pomocnej fázy sa v tomto prípade použije prúdové relé. Jeho cievka je zapojená do obvodu hlavnej fázy. Pri zábere pritiahne jadro kotvu relé a kontakty relé pripoja k sieti pomocnú fázu s kondenzátorom. Počas chodu motora je prúd v hlavnej fáze niekoľkokrát menší ako pri zábere. Kotva relé odpadne a obvod pomocnej fázy sa rozpojí.

Obr. 2.8. Zapojenie pohonu kompresorovej chladničky s odpájaním pomocnej fázy indukčného motora pomocou prúdového relé B

 

Pomocná fáza s kondenzátorom sa musí ihneď po rozbehu motora odpojiť od siete. Ak sa uspokojíme s malým záberným momentom (asi 30 až 50 % ), možno motor navrhnúť tak, že pomocná fáza môže byť stále pripojená na sieť a na malý kondenzátor, ktorý počas prevádzky zlepšuje účinník a zväčšuje moment zvratu, teda chod motora je pokojnejší. Motor v tejto úprave je vlastne dvojfázovy motor.

Tam, kde sa požaduje veľký záberný moment a dobrý účinník, použije sa úprava zapojenia podľa obr. 2.9a. Kondenzátor je dvojitý a pri rozbehu je pripojený celý ( a ) s pomocnou fázou ku hlavnej fáze. Po rozbehu, pri otáčkach asi 75%  sa kondenzátor  odpojí od hlavnej fázy. Záberný moment býva (130 až 150%)  pri zábernom prúde (3,5 az 4,5) . Priebeh momentových charakteristík je na obr. 2.9b. Charakteristika 3 je pri kondenzátore  a , charakteristika 2 pri kondenzatore , charakteristika 1 je pri pomocnej fáze bez kondenzátorov.

              

                            a                                             b

Obr. 2.9. Kondenzátorový motor s dvojitým kondenzátorom

Schéma zapojenia vinutí statora ( -prevádzkový, -záberný )

 

Pre veľkosť rozbehového kondenzátora, ktorý zostane zapojený aj počas prevádzky, možno určiť vzťah

                                                                  (2.8)

Ak predpokladáme, že pri 3/4 až plnom zaťažení dvojfázového, motora účinník cosj  » 0,65 až 0,75, účinnosť h » 0,6 až 0,75 a normálna frekvencia f = 50 Hz, pre kapacitu dostaneme výraz

                      (2.9)

Rozbehový moment, ktorý sa dosiahne pri kapacite podľa predchádzajúcej rovnice  je (0,2 až 0,4) . Ak tento moment nestačí, musí sa pripojiť väčší kondenzátor. Na dosiahnutie  je potrebná dvojnásobná až trojnásobná kapacita kondenzátora, ako vychádza z rovnice.

 

2.2.2.  Regulácia otáčok

Pri jednofázovom indukčnom motore sa otáčky obyčajne neregulujú. Pri motore nakrátko reguláciu otáčok nemožno tak ľahko uskutočniť.  Pri krúžkovom motore zaraďovaním odporu do obvodu rotora by sa síce otáčky dali regulovať, ale iba v malom rozpätí, pretože moment zvratu motora veľmi kolíše vzhľadom na odpor obvodu rotora.

 

2.2.3.  Zastavovanie

Motor sa zastaví jednoduchým odpojením od siete.

 

2.2.4.  Reverzácia

Motor sa reverzuje prehodením prívodov pomocnej fázy.

 

 

2.3.  Charakteristika DPC 100-2/16ET9

 

2.3.1  Niektoré odlišnosti práčkových motorov

         Tento motor bol navrhnutý pre pohon automatickej práčky. Je to  jednofázový asynchrónný motor s klietkou nakrátko ku ktorému je trvalo pripojený kondenzátor. Môže sa prevádzkovať ako dvojpól a aj ako šestnásťpól. Jeho zvláštnosťou je, že jeho rotor má zväčšenný odpor otvormi navŕtanými v smere osi. To spôsobuje veľký odpor rotora a tým  sa jeho charakteristika začína podobať charakteristike jednosmerného motora, čím môžeme jeho  otáčky riadiť zmenou strednej hodnoty napájacieho napätia. Na druhej strane to má veľkú nevýhodu, lebo účinnosť takto upraveného motora sa pohybuje okolo 30 %, čo je dosť málo.

 

2.3.2.  Vnútorné zapojenie motora

         Vnútorné zapojenie motora je na obrázku  2.10.

 

Spôsob pripojenia

 

2 - pól

Smer otáčania vpravo pri čelnom pohľade na hriadeľ motora

n  kondenzátor medzi svorky            6 - 2

n  napájacie napätie na svorky 3 - 2

 

 

16 - pól

Smer otáčania vpravo pri čelnom pohľade na hriadeľ motora

n  kondenzátor medzi svorky            5 - 1

n  napájacie napätie na svorky 3 - 5

Smer otáčania vľavo pri čelnom pohľade na hriadeľ motora

n  kondenzátor medzi svorky            5 - 1

n  napájacie napätie na svorky 3 - 1

 

 

 

 

 

 

 

 

 

 

 

Obr.  2.10


3.  Fuzzy riadenie

 

         Cieľom fuzzy regulátora je nahradiť človeka tam, kde jeho prítomnosť bola doposiaľ nutná (kormidelník, dispečer, a pod.). Takýto regulátor sa snaží, aby sa správal ako človek, keď reguluje daný proces.

         Človek nie je súčasne schopný sledovať viac než dve veličiny, preto sa počet veličín , podľa ktorých je proces regulovaný, často obmedzuje na dve. Takže fuzzy regulátor má obvykle dva vstupy, a to zvyčajne regulačnú odchýlku  a jej prírastok . Výstup z regulátora bude akčná veličina  resp. jej prírastok . Výstup z regulátora je vstupom do regulovaného systému.

 

3.1.  Úvod

Návrh riadenia systémov so známou štruktúrou a s približne konštantnými parametrami sa vykonáva obvyklými metódami vo frekvenčnej alebo v časovej oblasti. Pri premenlivých parametroch sa osvedčilo adaptívne riadenie. Ak matematický model alebo  parametre systému nie sú známe, dobré výsledky poskytuje fuzzy riadenie (fuzzy control). Na rozdiel od predošlých prístupov sa definuje pomocou slovných pravidiel, ktoré sa formulujú na základe skúsenosti a intuície navrhovateľa. Fuzzy riadenie vyhovuje aj pre nelineárne systémy a vykazuje robustnosť na zmeny parametrov a poruchy. Hoci jeho základnú ídeu publikoval Zadeh [11] ešte v roku 1965, k uplatneniu v praxi došlo až v osemdesiatych rokoch. V súčasnosti sa používa nie len v technických vedách ale aj v iných vedných odboroch ako je management, ekonomika a medicína.

Základná štruktúra fuzzy regulátora v jednoduchom regulačnom obvode je znázornená na obr. 3.1.

                                               Obr. 3.1

 

Zo žiadanej hodnoty w  a meranej skutočnej hodnoty x sa vypočíta regulačná odchýlka  a jej derivácia . Tieto hodnoty sa normujú (E, DE) tak, aby nepresiahli interval  .

         V procese fuzzifikácie sa obidvom veličinám priradia funkcie príslušnosti m(E), m(DE). Slovne formulované pravidlá riadenia R majú tvar logických výrokov, čo umožňuje ich vyhodnotenie v ta-buľke a v grafe. Z nich sa defuzzifikáciou odvodia hodnoty riadenia U. Po násobení normou sa získa konkrétna hodnota riadenia u, ktorá vstupuje do systému.

 

3.2.  Fuzzifikácia

Vstupnými veličinami sú regulačná odchýlka  a jej derivácia . Minimálna hodnota  je daná rozlišovacou  schopnosťou  snímača, za maximálnu sa volí taká hodnota, pri ktorej  dochádza k ohraničeniu. Po normovaní je

 

E(k)= W(k) - X(k),                                                                (3.1)

DE(k)= E(k) - E(k-1).                                                            (3.2)

Konvenčná dvojhodnotová logika jednoznačne vyjadruje, či  objekt x je alebo nie je prvkom množiny A. Výpoveď

je potom buď pravdivá alebo nepravdivá.Túto skutočnosť možno vyjadriť aj pomocou funkcie  príslušnosti (membership function):

Tento spôsob opisu však nie je vhodný pre spojité systémy. Preto sa zavádza spojitý rozsah hodnôt  v intervale [0, 1] pôvodne dvojhodnotovej funkcie príslušnosti

,

ktorý dovoľuje vyjadriť neostrú príslušnosť a súčasne zachovať hraničné hodnoty. Ako príklad vyjadríme slovne formulované konštatovanie, že uhlová rýchlosť motora je malá záporná (smer otáčania vľavo) a poloha malá kladná (vpravo od vzťažného miesta). Funkcie príslušnosti pre obidve veličiny sa obvykle volia v tvare symetrického trojuholníka alebo lichobežníka s polovičným presahom. Počet stavov sa určí na základe fyzikálneho názoru a  požadovanej presnosti. Voľme 7 stavov s nasledovným označením (obr. 3.2):

 

negative large                NL              positive large       PL

negative medium            NM             positive medium   PM

negative small               NS              positive small      PS

zero                               ZE

                                                      Obr. 3.2

Pre zvýšenie rozlišovacej schopnosti v blízkosti ustáleného stavu môžu sa funkcie  príslušnosti zhustiť, ako je ukázané na obr. 3.3

Obr. 3.3

 

V našom príklade odčítame z obr.2 pre :

pre uhol        pre rýchlosť

                       (3.3)

Nedefinované funkcie príslušnosti majú nulovú hodnotu.

 

3.3.  Vyhodnotenie pravidiel riadenia

Na základe úvahy a skúsenosti sa zostavia pravidlá riadenia, ktoré pre dve veličiny mávajú tvar

         IF E is A  AND  DE  is B  THEN  R  is C.                     (3.4)

Ako príklad uvedieme typický časový priebeh ozvy na jednotkový skok rýchlosti a regulačnú odchýlku (obr. 3.5) a funkcie príslušnosti E pre tri stavy :positive P, negative N a zero ZE (obr. 3.4).

 

Obr. 3.4

 

 

 

                                                                                     Obr. 3.5

Z obrázkov vyplýva 9 pravidiel riadenia:

1. IF E is P  AND DE is ZE      THEN U is P,

2. IF E is P AND DE is N       THEN  U is ZE,

3. IF E is ZE AND DE is N      THEN U is N,

4. IF E is N AND DE is N       THEN U is N

5. IF E is N AND DE is ZE      THEN U is N,

6. IF E is N AND DE is P        THEN U is ZE,

7. IF E is ZE AND DE is P      THEN U is P,

8. IF E is P AND DE is P        THEN U is P,

9. IF E is ZE AND DE is ZE    THEN U is ZE.                                 (3.5)

Na základe týchto pravidiel sa zostaví tabuľka na obr.6. Tento počet stavov je pre prax často príliš hrubý, preto v príklade použijeme tabuľku so siedmymi stavmi (obr. 3.7) odpovedajúcu priebehom  funkcií príslušnosti v obr. 3.2.

Obr. 3.6                                  Obr. 3.7

 

Keďže prekrývajúce sa funkcie príslušnosti dávajú viac hodnôt, treba formou logického výroku určiť jednu z nich. Fuzzy logika najčastejšie používa tri pravidlá:

 

R=E OR DE,     čomu odpovedá    ,      (3.6)

R=E AND DE   čomu odpovedá    ,       (3.7)

R=NEG E         čomu odpovedá    .                     (3.8)

 

V obr. 3.2 sme odčítali pre zvolenú hodnotu E na mZE a mPS, pre DE na mZE a mNS. Odpovedajúce výstupné stavy najdeme v strede tabuľky (obr. 3.7) NS, ZE, PS. Z nich podľa pravidla AND (3.7) dostaneme štyri hodnoty pre výstupy:

 

,          (3.9)

, (310)

,(311)

.(312)

 

 

3.4.  Defuzzifikácia

Výstupná hodnota regulátora musí byť jednoznačná, zatiaľ čo rovnice (3.9) až (3.12) dávajú štyri  výstupné hodnoty. Tieto sú však viazané logickým pravidlom OR (3.6), preto

 

.                               (313)

 

Keďže väčšia z hodnôt , postačujeuvážiť

 

         .                            (314)

 

Na obr. 3.8 je znázornené určenie výstupných funkcií príslušnosti podľa (3.13).

 

Z rovnice (3.14) a z obr. 3.8 vyplýva, že výsledná funkcia príslušnosti bude obálkou vyšrafovaných plôch odpovedajúcich jednotlivým pravidlám (obr. 3.9).

Obr. 3.9.

Určenie konkrétnej hodnoty riadenia y z neostrého vyjadrenia v obr. 3.8 sa robí viacerými metódami. Rozšírený je postup, podľa ktorého prírastok výstupnej hodnoty reprezentuje súradnica ťažiska uzavretej plochy Y podľa rovnice (3.15):

 

                                                                      (315)

Za predpokladu rovnakých tvarov a rozloženia funkcií príslušnosti hodnota Y sa zjednodušene vypočíta ako súčet súčinov hodnoty maxima a súradnice stredu [3]. V obr. 3.9 sú vyznačené príslušné hodnoty a z nich sa vypočíta Y :

 

Y= 0.3 x (-5) + 0.4 x 0 + 0.6 x 5 = 1.5

 

Takýto výpočet sa urobí pre každú dvojicu hodnôt E, DE.

Výsledné riadenie s PI fuzzy regulátorom U(k)= U(k-1)+KY (316)

kde K je voliteľná konštanta. Po násobení normou dostaneme riadiacu veličinu u vstupujúcu do systému.

 

 

3.5.  Zhodnotenie

Fuzzy riadenie vykazuje niektoré výhody voči iným metódam riadenia:

n  nepotrebuje detailnu znalosť štruktúry a parametrov systému potrebných pre zostavenie matematického modelu,

n  namiesto znalosti metód teórie riadenia postačuje slovná formulácia pravidiel riadenia vyplývajúca zo skúsenosti,

n  vývoj fuzzy procesorov umožňuje znížiť náklady na hardware.

 

 

Fuzzy riadenie má aj niektoré nevýhody:

n  v súčasnosti nie je  známa metóda kontroly stability obvodu s fuzzy regulátorom a preto táto sa len predpokladá,

n  voľba a nastavenie regulátora predpokladá dobré znalosti a skúsenosti. Bez nich sa môžu nastaviť protichodné pravidlá, ktoré neposkytnú optimálny výsledok.

n  regulátor môže zabezpečiť veľmi dobré riadenie nelineárneho systému. Nemôže ho však zaručiť, pretože nie sú k dispozícii potrebné  matematické metódy.

n  presnosť v ustálenom stave je nižšia v dôsledku približného opisu riadenia.

 

 

3.6.  Aplikácia fuzzy riadenia v pohonoch

Prvé aplikácie tohoto typu riadenia sa urobili pre jednosmerný motor ako náhrada obvyklých PI  regulátorov prúdu a rýchlosti [5]. Poukazovalo sa najmä na správnu činnosť aj pri veľkých zmenách parametrov, najmä momentu zotrvačnosti. Pozornosť sa venovala zabezpečeniu kľudného chodu a presnosti v ustálenom stave zhustením funkcií príslušnosti, alebo pridaním integrálu. V ďaľších návrhoch prúdového regulátora sa uvažoval aj vplyv meniča v oblasti prerušovaných prúdov [8].

V striedavých pohonoch s asynchrónnym motorom sa navrhlo vektorové riadenie s fuzzy regulátormi, kde na zvýšenie presnosti v ustálenom stave sa použilo prepínanie dvoch tabuliek (hrubá a jemná) [6]. Na zmenšenie vplyvu zmeny časovej konštanty rotora pri vektorovom riadení sa navrhla identifikácia jej hodnoty [2].  Ďaľšie práce sa zamerali na optimálne riadenie stavov spínania PWM-meniča . Veľa publikácií je venovaných aplikácii fuzzy riadenia pohonov rôznych technologických zariadení.


4.  Voľba riadiaceho čipu

 

 

Pri návrhu fuzzy regulátora som nutne potreboval buď integrovaný obvod s implementovanou hardwaerovou podporou fuzzy riadenia ako napr. (HC 12 od Motoroly), alebo použiť počítač a fuzzy regulátor realizovať programovo.

Počítač by nebol praktický, a preto som sa rozhodol pre jednočipový mikropočítač.

Vývoj jednočipových mikropočítačov radu 8048 ukázal, že tento rad mikroprocesorových prvkov má mnohé obmedzenia. Rad jednočipových mikropočítačov síce obsahuje na jednom čipe viaceré funkčné bloky, avšak chýbajúce funkcie sa musia realizovať pripojením podporných obvodov , obvykle radu 8080 (napr. 8251, 8253, atd.). Súbor inštrukcií  mikropočítačov radu 8048 obsahuje viac inštrukcií ako súbor inštrukcií mikroprocesora 8080, avšak chýbajú v ňom inštrukcie pre manipuláciu s bitmi, inštrukcie násobenia a delenia, atď. Uvedené nedostatky a obmedzenia mikropočítačov radu 8048 boli využité pri vývoji mikropočítačov radu 8051, ktoré sú inováciou 8 - bitových jednočipových mikropočítačov radu 8048.

Rad mikropočítačov 8051 je dosť značne rozšírený a má aj mnohé deriváty. Ja som sa rozhodol použiť pre konkrétny typ od firmy Atmel, a to AT89C2051/24. Je to plne komapktibilný jednočipový mikropočítač s mikropočítačom 8051 od firmy Intel, ale má menší počet vstupno - výstupných pinov.

 

 

4.1.  Základné technické údaje AT89C2051/24

n  napájacie napätie  = +5V

n  puzdro DIL 20

n  vyrobený technológiou CHMOS

n  2 kB  FLASH  EPROM

n  128 B  RWM  (RAM)

n  maximálna taktovacia frekvencia 24  MHz

 

4.2.  Mikropočítač pozostáva z týchto častí:

n  pamäťového podsystému

n  centrálnej procesorovej jednotky

n  obvodov časovania

n  bloku čítačov/časovačov

n  sériového programovateľného V/V obvodu

n  paralelného programovateľného V/V obvodu

n  prerušovacieho systému

n  presného analogového komparátora

 

Jenotlivé časti sú prepojené na internú 8 - bitovú zbernicu, ktorá slúži na prenos  údajov a inštrukcií.

 

4.2.1.  Pamäťový podsystém

Pamäťový podsystém možno rozdeliť na pamäť programu a pamäť údajov. Adresové priestory oboch pamätí sú oddelené.

Adresný priestor pamäti programu sa adresuje 16 - bitovým čítačom inštrukcií, ktorý adresuje internú pamäť programu 2 KB.

Interná pamäť údajov typu RWM má rozsah 128 B  a ďalších 128 B tvorí tzv. skupinu SFR. Interná pamäť údajov obsahuje 4 banky registrov. Každá banka obsahuje 8 registrov R0 až R7. Uvedené banky registrov sú umiestnené na adresách 00H až 1FH. Oblasť adries 20H až 2FH je oblasť bitovo adresovanej pamäte RWM. Zvyšná oblasť internej pamäte RWM (30H až 7FH) je určená na univerzálne použitie.

Treba poznamenať, že do tejto oblasti musí užívateľ zadefinovať aj zásobník.

Skupina SFR (Special Function Registers) obsahuje špeciálne registre.

 

4.2.2.  Centrálna procesorová jednotka

Centrálna procesorová jednotka pozostáva z jej dvoch základných častí:

n  aritmeticko - logickej sekcie

n  riadiacej jednotky

         Aritmeticko - logická sekcia obsahuje aritmeticko - logickú jednotku (ALU), dva dočasné registre a akumulátor. Práca s ALU tiež ovplyvňuje aj príznakové klopné obvody v registri PSW. Treba poznamanať, že ALU má podporu pre násobenie a delenie 8 - bitových registrov.

Súčasťou centrálnej procesorovej jednotky sú tiež špeciálne registre:

n  8 - bitový register B, používa sa pri násobení a delení

n  8 - bitový ukazovateľ vrcholu zásobníka SP

n  16 - bitový čítač inštrukcií

n  16 - bitový ukazovateľ údajov DPTR

         Riadiaca jednotka obsahuje obvody, ktoré vyrábajú potrebné synchronizačné signály pre časovanie vnútorných činností mikropočítača. Základné časovanie je rozdelené na inštrukčné a strojové cykly. Inštrukčný cyklus sa skladá z jedného až dvoch strojových cyklov. Každý strojový cyklus sa skladá zo  6 stavov. Trvanie jedného stavu je vymedzené dvoma periódami základného kmitočtu oscilátora.

 

 

4.2.3.  Paralelné vstupy a výstupy

         Mikropočítač AT89C2051/24 obsahuje dva vstupno - výstupné kanály, ktoré sú pseudoobojsmerné. Každý kanál obsahuje vyrovnávaciu pamäť, ktorú možno adresovať ako SFR, výstupný budič, vstupné hradlo, ktoré umožňuje prenos informácie z vývodov kanála na internú zbernicu.

         Všetky piny kanála P3 môžu mať ďalší význam [13].

         Každý z kanálov P0 a P3 možno použiť na vstup, resp. výstup údajov. Pre všetky kanály platí zásada, že ak sa cez kanál realizuje vstup údajov, musí vyrovnávacia pamäť príslušného bitu obsahovať „1“.

         Po signále RESET sa automaticky vyrovnávacie pamäte oboch kanálov nastavia do „1“.

 

 

4.2.4.  Čítače / časovače

         Mikropočítač AT89C2051/24 má dva 16 - bitové čítače / časovače: čítač 0 a čítač 1. Oba čítače môžu pracovať ako časovače alebo ako čítače vonkajších udalostí.

 

4.2.5.  Sériový vstup / výstup

         Sériový kanál je plne duplexný, t.j. prijímač a vysielač môžu pracovať úplne samostatne. Prijímač  a vysielač sú vybavené vyrovnávacou pamäťou, ktorá je súčasťou SFR. Ak sa prijaté údaje nestihnú prečítať z vyrovnávajúcej pamäte pred zápisom nových , sú tieto údaje stratené.

         Sériový kanál môže pracovať v 4 režimoch. Režimy 2. a 3. majú osobitné možnosti , ktoré možno využiť na realizáciu multiprocesorovej komunikácie.

 

4.2.6.  Prerušovací systém

         V mikropočítači  AT89C2051/24 existuje 5 zdrojov prerušenia. Externé zdroje prerušenia sa privádzajú na vstupy INT0 a INT1, ktoré sa môžu nastaviť tak, že reagujú na úroveň, alebo reagujú na nábežnú hranu vstupného impulzu. Čítače 0 a 1 generujú žiadosti o prerušenie vnútornými signálmi. Všetky žiadosti o prerušenie sa automaticky nulujú pri prechode na ich obslužný podprogram, až na žiadosť od sériového vysielača, kde sa nulovanie tejto žiadosti musí realizovať programovo.

         Okrem maskovania jednotlivých žiadostí  o prerušenie možno im priradiť jednu z dvoch úrovní priority.

 

4.2.7.  Obsluha prerušenia

         Osluha žiadosti o prerušenie generuje inštrukciu LCALL, ktorá uloží obsah čítača PC do zásobníka a naplní obsah PC vektorovou adresou príslušného zdroja prerušenia. Inštrukcia LCALL však neodkladá obsah registra PSW do zásobníka.

         Obslužný podprogram sa musí  ukončiť inštrukciou RETI.

 

4.2.8.  Inicializácia mikropočítača

         Na inicializáciu mikropočítača slúži vstup RST, na ktorý je zapojený interný Schmitov klopný obvod. Preto možno na tento vstup pripojiť tiež bez ďalšej úpravy aj spojite sa meniace napätie, napr. napätie na kondenzátore.

         Obsah internej pamäte RWM (adresy 00H až 7FH) sa inicializáciou neovplyvní a po zapnutí napájacieho napätia je v  tejto pamäti obsah náhodný.

 

4.2.9.  Hodinový generátor

         Mikropočítač AT89C2051/24 zahŕňa vo svojej štruktúre Pierceov oscilátor, ktorý sa stabilizuje externými obvodmi. Jednou z možností je použiť kryštál, ktorý sa pripojí na vývody XTAL1 a XTAL2. Pri použití kryštálu je potrebné použiť kondenzátory 30 pF. Na riadenie oscilátora je možno tiež použiť externé hodinové impulzy, ktoré sa privádzajú na vstup XTAL2, pričom vstup XTAL1 je uzemnený.

         Maximálna taktovacia frekvencia  môže byť až do  24  MHz.

 

4.2.10.  Prevádzka so zníženým príkonom

         V niektorých aplikáciách, kde je spotreba ovplyvňujúcim faktorom, môže mikropočítač  AT89C2051/24 pracovať v jednom z dvoch režimov so zníženým príkonom.


5.  Návrh fuzzy regulátora

 

5.1.  Použité názvy a skratky

n  Pracie otáčky                      -otáčky na hriadeli motora v                                                        režime prania

n  Odstreďovacie otáčky         -otáčky na hriadeli motora v                                                        režime odstreďovania

n  Nevyváženosť                      -nevyváženosť bubna práčky                                                         vplyvom nerovnomerného                                                                rozloženia prádla

n  Distribúcia                          -rozmiestňovanie prádla v bubne                                                  práčky počas plynulého nárustu                                                       otáčok

 

5.2.  Požiadavky na konštrukciu regulátora

1) Regulátor má byť realizovaný na doske plošného spoja, pričom plošný spoj musí vyhovovať požiadavkám z hľadiska horľavosti, navĺhavosti a plazivým prúdom podľa normy DIN VDE 0700  časť  1/A6.

 

2) Vodiče sú ku plošnému spoju regulátora pripojené z jednej strany pomocou násuvných svoriek.

 

3) Pracovné podmienky:

n  napájacie napätie 220/230 eff., +10%, -15%, kmitočet 50 Hz

n   maximálny prúd 12 A

n   teplotné rozmedzie +5 až 60 °C.

 

4) Zaručené hodnoty:

V jednotlivých pracovných režimoch musí byť presnosť regulácie otáčok na hriadeli motora:

n  pranie                                           185 min-1 ± 5%

n  distribúcia (na konci nárastu)       400 min-1 ± 10%

n  distribúcia (plynulý nárast)           185 až 400 min-1

n  odstreďovanie (n400/n800)          1355/2750 min-1 ± 5%

n  odstreďovanie I stupeň (n400)      143 ± 5 s

n  odstreďovanie II stupeň (n800)    zabezpečí progr. práčky

 

Obvod nevyváhy (vyváženosti bubna) vyhodnocuje vyváženie náplne prádla v rozmedzí 320 až 380 min-1.

n  hodnota nevyváženosti je 1,1 kg

 

V prípade zistenia nevyváženosti sa má  opakovať  režim distribúcie a to z pracích otáčok. Tento proces sa má opakovať až do vhodného rozloženia náplne. V prípade, že sa prádlo nerozložilo vhodne ani pri opätovných pokusoch, je celková doba ohraničená funkciou programátora práčky.

 

5) Regulátor musí zabezpečiť:

n  pri poruche tachogenerátora resp. pri prerušení prívodných vodičov z tachogenerátora, okamžité zamedzenie napájania elektrického motora (motor sa netočí)

n  10 rokov používania v práčke.

5.3.  Činnosť regulátora

Funkcia regulátora spočíva v regulácií uhlovej rýchlosti jednofázového asynchrónneho motora zmenou strednej hodnoty napájacieho napätia fázovým riadením triaku. Takéto riedenie je možné použiť len u špeciálne upraveného ASM. V danom prípade je takéto riešenie vyhovujúce.

Skutočná uhlová rýchlosť je sledovaná prostredníctvom impulzov získaných zo signálu tachogenerátora (TG). Otáčky na hriadeli motora v jednotlivých fázach pracieho procesu budú zodpovedať hodnotám uvedeným v prílohe č. 9. Časovanie pracích cyklov a reverzáciu motora zabezpečuje programátor práčky.

 

5.4.  Princíp regulátora

         Regulácia asynchrónneho motora je v tomto prípade riešená riadením uhla zopnutia triaku zapojeného do série s  motorom tak, aby bola skutočná uhlová rýchlosť (ws) čo najbližšia požadovanej uhlovej rýchlosti (wž). Rozdiel týchto dvoch rýchlostí vyhodnocuje mikropočítač a na základe regulačného algoritmu vypočíta ďalší uhol riadenia triaku tak, aby bol v konečnom dôsledku vypočítaný rozdiel rýchlostí (wž - ws) blízky nule.

         Samozrejme, toto je veľmi zjednodušený výklad. Na to, aby sa zabránilo nesprávnej činnosti mikropočítača vplyvom akýchkoľvek vplyvov, je program postavený tak, aby sa celý výpočet vykonal vždy v rámci jednej polperiódy sieťového napájacieho napätia. Vypočítaný regulačný zásah zaostáva vždy jednú polperiódu sieťového napájacieho napätia. Takýmto spôsobom dosiahneme, že ak zlyhá výpočet, nesprávna funkcia regulátora bude trvať maximálne 10 ms a správna činnosť sa obnoví po najbližšom prechode napájacieho napätia nulou. Vďaka tejto robustnej konštrukcii riadiaceho algoritmu možno použiť mikropočítač bez funkcie „ WATCH DOG“. Bloková schéma navrhnutého regulátora je na nasledovnom obrázku  5.1 .

Obr. 5.1

 

         Podrobná obvodová schéma je na uvedená v prílohe č. 2, zodpovedajúci plošný spoj v prílohe č. 4 a oasadzovací predpis v prílohe č. 3.

 

5.4.1.  Popis blokov regulátora

Podľa účelu a funkcie ktorú plnia je možné rozdeliť regulátor do deviatich blokov.

Základnou a najzložitejšou jednotkou regulátora je mikropočítač, ktorý zodpovedá za celkové riadenie a vykonávanie regulačného a riadiaceho algoritmu. Je predstavovaný blokom B1 a tvorí ho obvod U1 a kryštál Q1 s kondenzátormi C1, C2. Riadiaci a regulačný program je uložený v pamäti mikropočítača. Pamäť je typu FLASH EPROM a jej obsah sa uchováva aj po vypnutí napájacieho napätia.

Po pripojení sieťového napätia na svorku L sú obvody regulátora napájané z bloku napájania B2 tvoreného jednocestným usmerňovačom s diódou D1 zrážacím odporom R3 filtračným kondenzátorom C4, C5 , rezistorom R21 a stabilizátorom VZ1.

Správny nábeh a činnosť programu zabezpečuje generovaním signálu RST obvod vyhodnotenia prechodu napájacieho napätia nulou označený v blokovej schéme ako B3. Je tvorený tranzistormi T1, T2 ,T6 a rezistormi R4 , R12 , R16 , R10 , R11.

Blok B4 slúži pre vyhodnotenie signálu z tachogenerátora a na meranie celistvosti vinutia a prívodov tachogenerátora. Jeho funkcia spočíva v meraní celistvosti obvodu malým prúdom, a to tak, že ak sú prívody a vinutie nepoškodené, je na kolektore tranzistora T5 napätie zodpovedajúce log 0. V prípade prerušenia vinutia bude na kolektore tohoto tranzistora napätie zodpovedajúce log 1. Ak sa toto napätie nemení po určitú dobu, regulátor zopne triak s maximálnym uhlom riadenia a zisťuje či prichádzajú impulzy od TG. Ak ani teraz impulzy neprichádzajú, regulátor zabezpečí, aby v ďalšom zostal motor v kľude. Do tohoto bloku patrí aj rezistor R9 tvoriaci záťaž tranzistora T5.

Vyhodnotenie režimu prania (P) alebo odstreďovania (O) zabezpečuje obvod zahrnutý v bloku B6. Rezistor R17 obmedzuje prúd cez vysielacie IR diódy optočlena OPT1, na výstupe ktorého je v prípade neprítomnosti napätia 220V na svorkách P-O napätie zodpovedajúce log 1. Ak je na svorkách P-O prítomné zodpovedajúce napätie je na výstupe bloku úroveň log 0. Čítanie hodnoty výstupu je vykonavané vždy v 2/3 polperiódy.

Stav prepínača odstreďovacích otáčok 400/800 je vyhodnocovaný v bloku B6 tvorenom rezistormi R19, R15, a kondenzátorom C6.

Výsledkom spracovania údajov z vyššie uvedených blokov je generovanie zapínacieho impulzu na výstupe P3.2 obvodu U1 v čase zodpovedajúcom uhlu riadenia triaku vo výkonovom obvode tvoriacom blok  B8.

Dostatočnú energiu zapínacieho impulzu zabezpečuje blok B7 tvorený rezistormi R7 , R8 a tranzistormi T8 , T9 . Kondenzátor C4 tvorí v čase spínania zásobník energie pre spínanie triaku.

Výkonový obvod označený B8 je tvorený triakom Tr1, napäťovou ochranou a filtrom na potlačenie rušenia R1 , C3.

Zvláštnu funkciu plní blok B9. Je tvorený sadou prepojok, ktorých vhodnou kombináciou bude možné nastavovať regulátor pre požadovaný druh aplikácie, ak takáto požiadavka bude stanovená.

 

5.5.  Programové riešenie

         Vzhľadom na to, že veľkosť uhla riadenia triaku sa počíta vždy nanavo po resete, čiže na začiatku každej polperiódy sieťového napätia, bol by podrobný vývojový diagram veľmi zložitý a neprehľadný. Preto je tu uvedený zjednodušený vývojový diagram činnosti programu mikropočítača na základe ktorého je možné sledovať jeho činnosť.

   Treba poznamenať, že uvedená činnosť sa vykonáva 100 x za sekundu a tak je zabezpečené, že v prípade nesprávnej činnosti mikropočítača v niektorej polperióde, bude už v ďalšej polperióde pracovať normálne.

         Po pripojení napájacieho napätia sa vykonáva test , prvého pripojenia na napájacie napätie. Ak je prvýkrát pripojený, odovzdá sa riadenie inicializácii a čítaniu konštánt nastavených pre daný typ

regulátora a práčky a čaká sa na signál reset. Ak už je pripojený na napájacie napätie, potom sa nulujú „stopky“, ktorých úlohou je v režime distribúcie merať jej dobu t.j. cca 22 sekúnd.

Ďalej sa testuje funkčnosť tachogenerátora (TG). Ak sa zistí porucha, vyšetruje sa čo sa stalo, a ak sa porucha TG potvrdí, motor sa zastaví.

         Ak je test tachogenerátora úspešný, je rozhodujúce nastavenie bitu P-O (pranie - odstreďovanie) podľa ktorého sa nastaví režim regulátora. Až po tento krok sa program vykonáva rovnako, nezávisle od nastaveného režimu.

Od voľby režimu závisí aj zapojenie motora dvojpól / šestnásťpól. Len v režime pranie pracuje motor ako šestnásťpólový.

         Ak je nastavený režim pranie, potom algoritmus prechádza na distribúciu. Po vykonaní distribúcie, kedy sa uhlová rýchlosť motora (wž) zvyšuje lineárne v závislosti od obsahu „stopiek“, sa zisťuje nevyváženosť pracieho bubna práčky, a ak je táto v tolerancii, prechádza program na rýchly nárast odstreďovacích otáčok (n = 400).

         V závislosti na tom, v  akom stave je prepínač rýchlosti odstreďovania, budú nastavené odstreďovacie otáčky na n = 400, alebo n = 800. Tento prepínač bude tiež nastavovať programátor práčky.

         Fuzzy regulátor pracuje v každom režime rovnako, až s tým rozdielom, že v režime odstreďovanie sa zavedie korekcia pre výpočet uhla riadenia , pre prácu motora zapojeného ako dvojpól; totiž vtedy sa tento konkrétny motor správa ako kapacitná záťaž. Keď sú požadované odstreďovacie otáčky o hodnote n = 800, potom sa z regulačnej vetvy vynechá celý blok fuzzy regulátora, a nastaví sa minimálny uhol otvorenia triaku, čiže motor pracuje na maximálny výkon a vlastne pracuje bez možnosti fuzzy regulácie.

         Kompletný výpis programu je v prílohe č.1 .

 

 

5.5.1.  Úskalia programového riešenia

         Pri programovej realizácii nastal hlavný problém v tom, že celý výpočet mohol trvať maximálne 9 ms, a to ešte na pozadí (prerušenie od časovača 0, ktoré sa vykonáva cyklicky každých 100 µs) hlavného programu sa snímajú impulzy z tachogenerátora, čiže sa zisťovali skutočné otáčky motora. 1 ms, ktorá chýba do 10 ms, čo je čas trvania jednej polperiódy napájacieho napätia, sa rozdelí na čas potrebný na generovanie signálu reset a na časovú rezervu.

         Ďalší prolém vznikol pri delení čísel v pevnej rádovej čiarke, a to 16 bitová premenná delené 8 bitová premenná. Kvôli zjednodušeniu som predpokladal výsledok len ako 8 bitovú premennú a nie ako 16 bitovú. Pri delení som mal opäť problémy s časom. Nakoniec som to vyriešil tak, že do 8. programových cyklov sa vypočíta výsledok delenia. V každom cykle sa vypočíta jeden bit výsledku a začína sa od najvyššieho bitu. Delenie trvá maximálne 250 inštrukčných cyklov.

 

5.5.2.  Realizacie funkcií príslušností

         V algoritme sú implementované trojuholníkové funkcie príslušnosti a programovo sú riešené ako priamky s určitým sklonom. Bola by tu aj druhá, a to rýchlejšia možnosť, umiestniť funkcie príslušnosti do tabuľky a priamo z nej na základe regulačnej odchýlky vyčitávať jej hodnoty. Lenže touto cestou som sa nemohol vydať, lebo som mal len 2 kB pamäte. Ale ešte stále by tu bola možnosť pripojiť externú sériovú pamäť, napr. cez zbernicový protokol I2C.

         Algoritmus fuzzy riadenia je postavený tak, že sa môžu funkcie príslušnosti ľubovoľne prekrývať. Prakticky sú niektoré také pravidlá asi nezmyselné, ale algoritmus to zvláda.

 

 

5.5.3.  Voľba funkcií príslušností

         Na generovanie funkcií príslušnosti som vytvoril program, ktorý má štandartné užívateľské rozhranie pod WINDOWS, pomocou ktorého sa dajú priamo, vizuálne, pomocou myši upravovať funkcie príslušnosti. Tento program načíta z asemblerovského súboru pravidlá, môže ich na základe užívateľovho rozhodnutia modifikovať, a potom ich spätne zapíše do asemblerovského súboru.

         V algoritme som previedol regulačnú odchýlku vždy na kladnú, a ak bola záporná, nastavil som príznak mínus. Tým som nemusel definovať funkcie príslušností pre celú oblasť regulačnej odchýlky, ale len pre jej kladnú časť. To je možné urobiť za cenu rovnakej definície pravidiel pre kladnú a aj zápornú oblasť regulačnej odchýlky.

 

5.5.4.  Výpočet akčného zasahu fuzzy regulátora

         Výsledok som vypočítal metódou ťažiska plochy:

         Výsledné riadenie s PI fuzzy regulátorom je:

U(k)= U(k-1)+KY

a ak bol nastavený príznak mínus, potom:

U(k)= U(k-1)-KY

 

         Od konštanty K, ktorá je voliteľná, závisí „rýchlosť“ regulácie. V programe sa hodnota K volí podľa veľkosti regulačnej odchýlky. Ak je regulačná odchýlka veľká, potom je aj hodnota K väčšia. Od hodnoty K závisí aj kmitanie regulovanej veličiny, čiže otáčok, v ustálenom stave. V ustálenom stave je K = 1.

 

5.6.  POPIS REGULÁTORA

         Regulátor je realizovaný na doske plošného spoja typu SUPRA-CARTA-E-CU osadenej jednostranne technológiou zásuvnej montáže. Predloha plošného spoja je v prílohe č.4 .

         Kvôli lepšej orientácii a rozmiestneniu súčiastok na plošnom spoji, je v prílohe č. 3 popis rozmiestnenia súčiastok zo strany súčiastok.

         Strana spájkovania je upravená nespájkovateľnou maskou, čo zaisťuje úsporu spájky, zvyšuje kvalitu spájkovania a vylučuje vznik vád v dôsledku mostíkov. Predloha nespájkovateľnej masky v negatívnom vyhotovení je v prílohe č.5 .

         Pripojenie regulátora k obvodom práčky je realizované prostredníctvom násuvných svoriek typu ETINGER so šírkou 6.3 mm.


6.  Záver

 

         V predloženej diplomovej práci je navrhnutý hardware fuzzy regulátora; popísaný jeho algoritmus a je aj programovo realizovaný pre jednočipový mikropočítač.

         V rámci riešenia tejto úlohy som v skratke popísal štruktúru fuzzy riadenia. Súčasne som v skratke priblížil jednočipový mikropočítač AT89C2051 od firmy ATMEL. Je to pomerne úspešný a rozšírený typ rodiny 8051. Treba poznamenať, že má zastaralú architektúru a nebol navrhnutý pre takéto náročné aplikácie na výpočtový výkon.

         Nad rámec tejto diplomovej práce som vytvoril program, pomocou ktorého sa dajú meniť pravidlá fuzzy regulátora. Konštrukciu a fungovanie tohto programu som podrobne nerozoberal. Má štandartné rozhranie programov pod WINDOWS a ovládanie programu je intuitívne.

         Tento fuzzy regulátor nie je optimálne riešený hardwareovo a ani po softwareovej stránke, ale pri použití dostupných zdrojov ktorými disponuje katedra, si myslím, že je to v celku vydarené riešenie.


Zoznam použitej literatúry

 

[1] Cantú,M.: Mistrovsví v DELPHI I a II

[2] Košč,P.-Fedák,V.-Profumo,F.: AC Drives for High Performance Applications Using Fuzzy Logic Controllers. Trans.Int.Conf. EDPE Košice 1992, s. 289 - 296.

[3] Kucer,P.-Štrpko,F.-Čipčala,B.: Fuzzy Algorithms For Speed Control Realized By One Chip Mikroprocesor Conf. EDPE Stará Lesná 1996, s. 542 - 547.

[4] Levický,D.: Mikroprocesorové systémy II, s. 41 - 67.

[5] Li,Y.F.-Lau,C.C.: Development  of  Fuzzy  Algorithms  for  Servo  Systems. IEEE Control Systems Magazine, 1989, s. 65 - 72.

[6] Miki,I. et al.: Vector Control  of Induction  Motor  with  Fuzzy PI  Controller. IEEE 1991, s. 341 - 346.

[7] Poliak,F.-Fedák,V.-Zboray,L.: Elektrické pohony, s. 425 - 433.

[9] Timko,J.-Dudrík,J.: Elektrické pohony a výkonová elektronika, s. 91 - 94.

[8] Sousa,C.D.-Bose,B.K.: A Fuzzy Set Theory Based Control of a Phase-Controlled  Converter DC Machine Drive. IEEE 1991, s. 854 - 961.

[10] Vilém,N.: Fuzzy množiny a ich aplikácie Praha 1986

[11] Zadeh,L.: Fuzzy sete. Information and Control 8 (1965), s. 338 -353.

[12] Zboray,L.: Fuzzy riadenie, Prednáška 1996

[13] Analog Devices: AT89CX051 Users Manual 1995.

[14] Závereèná správa pre MEZ Michalovce: Regulácia práèkového pohonu, zodpovedný riešite¾ Fedor S.


 

 

 

 

 

 

 

Zoznam príloh

 

 

 

 

1. Výpis programu

2. Obvodová schéma

3. Predloha potlače

4. Predloha plošného spoja

5. Predloha nespájkovateľnej masky

6. Súpiska súčiastok

7. Technické údaje

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PRÍLOHA  č. 1

 

 

 

Výpis programu

 

 

 

 

 

 

 

 

 

 

 

;=====================================================================

;                             DIPLOMOVA PRACA

;      PROGRAM PRE RIADENIE PRACKOVEHO MOTORA POMOCOU FUZZY LOGIKY

;=====================================================================

;=====================================================================

;        PROGRAMOVE KONSTANTY A ROZDELENIE PAMATI PRE PREMENNE

;---------------------------------------------------------------------

PROG     EQU 0000H        ;zaciatok ulozenia programu

XTAL     EQU 12           ;frekvencia krystalu

C10ROZ   EQU 150          ;rozbehovy cas motora

C10DOB   EQU 50           ;dobehovy cas motora

MINP     EQU 8            ;minimalna sirka impulzu z TD x 100us

KTIM1    EQU (7008/12)*XTAL  ;konstanta pre TIM1  7.008ms

KTIM0    EQU (100*XTAL)/12   ;konstanta pre TIM0  100us

PMAX     EQU 100          ;maximalny uhol

PULZ     EQU 3            ;dlzka pulzu pre triak * 100us

TZSO     EQU 11           ;cas zotrvacnosti v ms od TD

;*********************************************************************

ZE2      EQU 57

PM1      EQU 39

PS2      EQU 65

PL1      EQU 73

PM2      EQU 115

PS3      EQU 122

PM3      EQU 171

PL2      EQU 139

;*********************************************************************

TGALFA   EQU ZE2

TGBETA   EQU PS2

TGGAMA   EQU PS3-PS2

TGDELTA  EQU PL2-PL1

TGOMEGA  EQU PM3-PM2

TGTETA   EQU PM2-PM1

uE_MAX   EQU 100

ZE        EQU 00000001B

PSS       EQU 00000010B

PM        EQU 00000100B

PL        EQU 00001000B

;---------------------------------------------------------------------

DNVVH     EQU 0            ;hranica nevyvahy

PO        EQU 185          ;pracie otacky

DO        EQU 410          ;otacky konca distribucia

OO1       EQU 1355         ;odstredovacie otacky (400)

OO2       EQU 2750         ;odstredovacie otacky (800)

ZTD       EQU 22           ;cas distribucie v sek

ZTO1      EQU 143          ;cas odstredovania(400) v sek.

ZNABEH   EQU 256*(DO-PO)/ZTD/100 ;strmost nabehu pri distribucii

ZTN       EQU 320          ;zaciatok testu nevyvahy(ot/min)

;---------------------------------------------------------------------

;z KTIMO su odvodene nasledujuce konstanty:

PP10MS   EQU 2500*XTAL/(3*KTIM0) ;pocet preruseni za 10ms

;---------------------------------------------------------------------

;ZAPOJENIE PINOV

TD       BIT     P3.3         ;impulzy z TD

ZAP      BIT     P3.2         ;hradlo triaku

PP_O     BIT     P3.5         ;prepinac PRANIE-ODSTREDOVANIE

P4_8     BIT     P3.4         ;prepinac odstredovacich otacok

NNT      BIT     P1.0         ;napatie na triaku

;---------------------------------------------------------------------

FLAGS    SEGMENT BIT

         RSEG    FLAGS

P_O:     DBIT    1           ;pranie-odstredovanie

O48:     DBIT    1           ;odstredovanie 400/800

BOLT1:   DBIT    1           ;bol Timer1 ?

MINUS:   DBIT    1           ;kladny/zaporny akcny zasah

;---------------------------------------------------------------------

INICS    SEGMENT DATA

         RSEG    INICS

         DS      4           ;miesto pre inicializacny retazec

;---------------------------------------------------------------------

;SYSTEMOVE PREMENNE:

         DSEG AT 20H

PNH:     DS      1           ;pocet nabeznych hran

LH       BIT     PNH.7       ;naposledy nacitana hrana z TD

 

XYZ      SEGMENT DATA

         RSEG    XYZ

STO:     DS      1           ;interne hodiny (x10ms)  - BCD

SEC:     DS      1           ;interne hodiny v sec.   - HEX

;

ALFA:    DS      1           ;zaciatok puzu pre triak

ALFA1:   DS      1           ;uhol vypnutia triaku

UHOL:    DS      1           ;cas x 100us v polvlne pre otvor. triaku

;

C10:     DS      1           ;pocitadlo resetov

CCAS:    DS      1

ZO:      DS      2           ;ziadane otacky

ZOBCD:   DS      1           ;ziadane otacky za desatinou bodkou

SOL:     DS      1

SO:      DS      2           ;skutocne otacky

E:       DS      2           ;regulacna odchylka obmedzena

;EK_1:    DS      2          ;predchadzajuca regulacna odchylka

EN:      DS      2           ;regulacna odchylka neobmedzena

WORK:    DS      3

FAZY:    DS      6

VAHA:    DS      2

;---------------------------------------------------------------------

         DSEG AT 50H

STKTOP:  DS      30H         ;zasobnik

;*********************************************************************

;*                                                                   *

;*                              PROGRAM                              *

;*                                                                   *

;*********************************************************************

         CSEG AT PROG

;OBSLUHA PRERUSENI PROCESORA

         jmp     HLPR           ;RST

         ORG     PROG+3         ;INT0

         reti

         ORG     PROG+0BH       ;TIMER0

         jmp     TIM0

         ORG     PROG+13H       ;INT1

         reti

         ORG     PROG+1BH       ;TIMER1

         jmp     TIM1

         ORG     PROG+23H       ;RS232

         reti

;=====================================================================

;TIME1 sa vykona iba raz za jedno kolo priblizne v polovicke periody.

TIM1:

         push    PSW

         mov     C,PP_O         ;precitaj si najskor pin

         mov     P_O,C          ;nastav PRANIE-ODTREDOVANIE

         mov     C,P4_8         ;a potom stav prepinaca

         mov     O48,C          ;400/800

         pop     PSW

         setb    BOLT1

         setb    NNT

         clr     ET1            ;a zakaz prerusenie od casovaca 1

         reti

;---------------------------------------------------------------------

;TIM0 sa vykonava kazdych 100us

TIM0:

         djnz    ALFA,TRNO      ;ak je cas zapnut triak,          2

         clr     ZAP            ;zapni ho !                       1

TRNO:

         djnz    ALFA1,TRYES    ;                                 2

         setb    ZAP            ;                                 1

TRYES:

         jb      TD,TIME0       ;skoc pri log.1 z TD              2

         mov     CCAS,#MINP     ;                                 2

         clr     LH             ;vynuluj priznak poslednej hrany  1

         reti                   ;a vrat sa !                      2

TIME0:

         jnb     LH,TIME1       ;ak je posledna hrana log.0,skoc  2

         mov     CCAS,#MINP     ;                                 2

         setb    LH             ;nastav priznak poslednej hrany   1

         reti                   ;a vrat sa                        2

TIME1:                          ;Tu sa dostane pri nabeznej hrane z TD

         djnz    CCAS,TIM_END   ;                                 2

         push    ACC            ;                                 2

         mov     A,PNH          ;                                 1

         inc     A              ;

         setb    ACC.7          ;

         mov     PNH,A          ;                                 1

         pop     ACC            ;                                 2

TIM_END:

         reti                   ;                                 2 20T

;=====================================================================

ROZBEH:

;V internej pamati nebol najdeny inicializacny retazec

;=> nabeh napajacieho napatia.

         clr     A

         mov     INICS,A

         mov     INICS+1,A

         mov     INICS+2,A

         mov     INICS+3,A

         jb      TD,STP1

         clr     BOLT1

         jnb     BOLT1,$        ;cakajna nevykonie prerusenia TIM1

         jnb     NNT,STP1

         mov     STO,A

         mov     SEC,A

         mov     PNH,A

         mov     SOL,A

         mov     SO,A

         mov     SO+1,A

         mov     UHOL,#1

         mov     CCAS,#MINP

         mov     C10,C10ROZ

         mov     INICS,#5AH     ;napise inicializacny retazec

         mov     INICS+1,0f0H

         mov     INICS+2,0FH

         mov     INICS+3,0A5H

 

STP1:

         mov     C,TD

         mov     LH,C

         jmp     STP1           ;pockaj si na reset

;=====================================================================

HLPR:

         clr     EA               ;zakaz vsetky prerusenia

         mov     SP,#3FH          ;STKTOP-1   ;inicializuj zasobnik

         mov     PSW,#0           ;nastav banku 0

         setb    NNT

         mov     TCON,#0

         mov     TMOD,#00010010B

         mov     TL0,#-1

         mov     TH0,#-KTIM0

         mov     TL1,#LOW(-KTIM1)

         mov     TH1,#HIGH(-KTIM1)

         mov     IE,#10001010B

         mov     IP,#00000010B    ;prioritu ma casovac 0

         setb    TR1

;Kontrola internej pamate

         mov     R0,#INICS        ;ak nie su v internej pamati

         cjne    @R0,#5AH,ROZBEH  ;zapisane bajty 5A F0 0F A5

         inc     R0               ;pokracuj na na navesti STOP

         cjne    @R0,#0F0H,ROZBEH

         inc     R0

         cjne    @R0,#0FH,ROZBEH

         inc     R0

         cjne    @R0,#0A5H,ROZBEH

;---------------------------------------------------------------------

         mov     A,CCAS

         add     A,#-MINP

         jc      FAJN

         jb      LH,FAJN

         jnb     LH,FAJN

         inc     PNH

         setb    LH

FAJN:

         mov     A,PNH

         anl     A,#80H

         xch     A,PNH

         anl     A,#7FH

         mov     B,A

         jnz     TIM_INIC

         djnz    C10,REGUL

         jb      TD,SKRAT

         inc     C10

         clr     BOLT1

         jnb     BOLT1,$

         jb      NNT,STOJ

SKRAT:

         clr     A

         mov     INICS,A

         mov     INICS+1,A

         mov     INICS+2,A

         mov     INICS+3,A

STOJ:

         jmp     $                  ;cakaj na RESET

;=====================================================================

TIM_INIC:

         mov     C10,#C10DOB

REGUL:

         mov     A,UHOL

         mov     ALFA,A

         mov     ALFA1,#(PMAX/2+PULZ)

         add     A,#-(PMAX/2)

         jnc     RL_ZATAZ

         add     A,#(PMAX/2+PULZ)

         mov     ALFA1,A

RL_ZATAZ:

         setb    TR0              ;spust casovac

         jb      P_O,ZMYKAJ

;=====================================================================

;Pranie:

PER:

         mov     SEC,#0

         mov     STO,#0

         mov     ZO,#LOW(PO)

         mov     ZO+1,#HIGH(PO)

         ajmp    FAZY_REG

;=====================================================================

ZMYKAJ:

;(Distribucia, Odstredovanie1, Odstredovanie2)

;Sem sa dostane len vtedy, ak na optoclen nie je privedene napatie

;Dalej bude fungovat podla internych hodin STO a SEC

;00:00   - Zaciatok rezimu Distribucie  (prepnutie na dvojpol)

;        - Je potrbny maximalny rezim

;        - Zaciatok postupneho narastu otacok

;ZTD     - Test otacok ZOD

;        - Kontrola nevyvahy ZNVVH

;        - Navrat na zaciatok, alebo prepnutie na ZOO1

;ZTO1    - Prepnutie na ZOO2 podla O48

;---------------------------------------------------------------------

         mov     A,STO

         orl     A,SEC

         jnz     PLUS10MS

         mov     ZOBCD,A

         mov     ZO,#LOW(PO)

         mov     ZO+1,#HIGH(PO)

         mov     VAHA,A

         mov     VAHA+1,A

;Inkrementovanie 16-bitovej premennej STO,SEC

PLUS10MS:

         mov     A,STO               ;Interne hodiny su odvodene

         add     A,#1                ;od siete a su inkrementovane

         da      A                   ;100x za sekundu. Stotiny

         mov     STO,A               ;sekund (STO) su v tvare BCD

         mov     A,SEC               ;a sekundy (SEC) su v HEXA tvare.

         addc    A,#0

         jnc     NEXT_Z              ;Treba dat pozor,

         mov     A,#0FFH             ;aby cas nepretiekol

NEXT_Z:

         mov     SEC,A

         clr     C

         subb    A,#ZTD

         jnc     ODSTREDUJ

         ;

         clr     C

         mov     A,ZO

         subb    A,#LOW(ZTN)

         mov     A,ZO+1

         subb    A,#HIGH(ZTN)

         jc      NVVHSK

         ;

         mov     DPL,EN

         mov     DPH,EN+1

         mov     A,DPH

         jnb     ACC.7,SUCET

         acall   NEG_DPTR

SUCET:

         mov     A,VAHA

         add     A,DPL

         mov     VAHA,A

         mov     A,VAHA+1

         addc    A,DPH

         mov     VAHA+1,A

         jnc     PAULA                 ;pretiekla VAHA ?

         mov     VAHA,#0FFH            ;ano, napln maximom

         mov     VAHA+1,#0FFH

PAULA:

         clr     C

         mov     A,#LOW(DNVVH)

         subb    A,VAHA

         mov     A,#HIGH(DNVVH)

         subb    A,VAHA+1

         jc      PER

NVVHSK:

         mov     A,ZOBCD

         add     A,#ZNABEH

         mov     ZOBCD,A

         mov     A,ZO

         addc    A,#0

         mov     ZO,A

         mov     A,ZO+1

         addc    A,#0

         mov     ZO+1,A

         ;

         ajmp    FAZY_REG

;---------------------------------------------------------------------

ODSTREDUJ:                             ;Odstredovanie

         clr     C

         mov     A,SEC

         subb    A,#ZTO1+ZTD

         mov     ZO,#LOW(OO1)

         mov     ZO+1,#HIGH(OO1);

         jnc     O2750

OZAJ:

         ajmp    FAZY_ODS

O2750:

         mov     SEC,#250

         jnb     O48,OZAJ

         mov     UHOL,#1               ;Otvor naplno triak

         ajmp    $

;=====================================================================

;=====================================================================

%*DEFINE(OBMEDZ(MIN,MAX)) LOCAL NO7 NO10 END_MAC

         (

         mov     A,DPH

         CPL     ACC.7

         mov     DPH,A

         clr     C

         mov     A,#LOW(%MIN)

         subb    A,DPL

         mov     A,#HIGH(%MIN)

         cpl     ACC.7

         subb    A,DPH

         jc      %NO7

         mov     DPTR,#%MIN

         ajmp    %END_MAC

%NO7:

         clr     C

         mov     A,#LOW(%MAX)

         subb    A,DPL

         mov     A,#HIGH(%MAX)

         cpl     ACC.7

         subb    A,DPH

         jnc     %NO10

         mov     DPTR,#%MAX

         ajmp    %END_MAC

%NO10:

         mov     A,DPH

         cpl     ACC.7

         mov     DPH,A

%END_MAC:

         )

;---------------------------------------------------------------------

%*DEFINE(MULA    MREG)

         (

         mov     R0,#(%MREG+2)

         mov     R7,#3

         acall   KRAT

         )

KRAT:

         push    ACC

         push    ACC

         push    ACC

         mov     DPTR,#0

KRAT_C:

         pop     ACC

         mov     B,@R0

         mul     AB

         add     A,DPL

         mov     DPL,A

         mov     A,B

         addc    A,DPH

         mov     @R0,A

         mov     DPH,DPL

         mov     DPL,#0

         dec     R0

         djnz    R7,KRAT_C

         ret

;---------------------------------------------------------------------

%*DEFINE(CPL     MREG)

         (

         mov     R0,#%MREG

         acall   REGNEG

         )

REGNEG:

         mov     R7,#3

         setb    C

NEG1:

         mov     A,@R0

         cpl     A

         addc    A,#0

         mov     @R0,A

         inc     R0

         djnz    R7,NEG1

         ret

;---------------------------------------------------------------------

%*DEFINE(FF2(EX,TG))

         (

         mov     A,E

         subb    A,#%EX

         mov     B,#uE_MAX             ;100 je maximum

         mul     AB

         mov     DPL,A

         mov     DPH,B

         mov     R3,#%TG

         acall   DELENIE

         mov     @R1,A

         inc     R2

         )

;---------------------------------------------------------------------

%*DEFINE(FF1(EX,TG))

         (

         mov     A,#%EX

         subb    A,E

         mov     B,#uE_MAX             ;100 je maximum

         mul     AB

         mov     DPL,A

         mov     DPH,B

         mov     R3,#%TG

         acall   DELENIE

         mov     @R1,A

         inc     R1

         )

;---------------------------------------------------------------------

;=====================================================================

; Vypocet FUZZY regulatora:   Vstup:  Ziadane otacky ZO

;                                     B -pocet pulzov za

;                                        poslednu polperiodu

;                             Vystup: Pozadovany uhol otvorenia triaku

;---------------------------------------------------------------------

FAZY_REG:

;Vypocitaj skutocne otacky:

         mov     A,B

         jz      FAZY_ODS

         mov     B,#1

FAZY_ODS:                               ;BA = B * 600

         mov     A,#40

         mul     AB

         mov     B,#600/40

         mul     AB

;WORK = BA-SO

         push    ACC

         clr     C

         mov     A,#0

         subb    A,SOL

         mov     WORK,A

         pop     ACC

         subb    A,SO

         mov     WORK+1,A

         mov     A,B

         subb    A,SO+1

         mov     WORK+2,A

         mov     F0,C

;WORK = t/T * WORK

         jnc     FF908

         %CPL    WORK

FF908:

         mov     A,#256*10/TZSO

         %MULA   WORK

         jnb     F0,FF909

         %CPL    WORK

FF909:

         mov     A,SOL

         add     A,WORK

         mov     SOL,A

         mov     A,WORK+1

         addc    A,SO

         mov     SO,A

         mov     A,WORK+2

         addc    A,SO+1

         mov     SO+1,A

         jnb     ACC.7,FF910

         mov     SOL,#0

         mov     SO,#0

         mov     SO+1,#0

FF910:

         mov     DPL,SO

         mov     DPH,SO+1

;A teraz vypocitaj regulacnu odchylku

;V DPTR su SO - skutocne otacky

         call    NEG_DPTR              ;OTz-OTs

         mov     A,ZO                  ;OTs < OTz   SIG=0

         mov     B,ZO+1                ;OTs > OTz   SIG=1

         call    ADPTR_BA

         mov     EN,DPL

         mov     EN+1,DPH

         %OBMEDZ(-250,250)

         mov     E,DPL

         mov     E+1,DPH

;V E,E+1 je nova regulacna odchylka

;---------------------------------------------------------------------

        mov   R1,#FAZY           ;smernik na premenne FAZZY

        mov   R7,#6              ;pocitadlo

MAZ:

        mov   @R1,#0

        djnz  R7,MAZ     

;FUZZYFIKACIA

         mov     A,E+1

         jnb     ACC.7,KLADNE

         setb    MINUS              ;nastav priznak zaporna odchylka

         acall   NEG_DPTR           ;urob kladne cislo

         mov     E,DPL

         mov     E+1,DPH

KLADNE:

;*********************************************************************

TEST_ZE:

         mov     A,E

         mov     R1,#FAZY

         cjne    A,#ZE2,JJZE

         ajmp    ZE_OK

JJZE:    jnc     TEST_PS

ZE_OK:   mov     @R1,#ZE            ; E = ZE

         %FF1(ZE2,TGALFA)           ;Eu = (ZE2-E)*tg(ALFA)

;*********************************************************************

TEST_PS:

         mov     A,E

         cjne    A,#PS3,JJPS

         ajmp    PS_OK

JJPS:    jnc     TEST_PM

PS_OK:   mov     @R1,#PS            ; E = PS

         inc     R1

         cjne    A,#PS2,PS_2

PS_2:    jnc     PS_3

         %FF2(0,TGBETA)             ;Eu = E*tg(BETA)

         ajmp    TEST_PM

PS_3:    %FF1(PS3,TGGAMA)           ;Eu = (PS3-E)*tg(GAMA)

;*********************************************************************

TEST_PM:

         mov     A,E

         cjne    A,#PM1,JJPM

         ajmp    PM_1

JJPM:    jc      TEST_PL

PM_1:    cjne    A,#PM3,PM_2

         ajmp    PM_OK

PM_2:    jnc     TEST_PL

PM_OK:   mov     @R1,#PM               ; E = PM

         inc     R1

         cjne    A,#PM2,PM_3

PM_3:    jnc     PM_4

         %FF2(PM1,TGTETA)              ;Eu = (E-PM1)*tg(TETA)

         ajmp    TEST_PL

PM_4:    %FF1(PM3,TGOMEGA)             ;Eu = (PM3-E)*tg(OMEGA)

;*********************************************************************

TEST_PL:

         mov     A,E

         cjne    A,#PL1,JJPL

         ajmp    PL_OK

JJPL:    jc      AKCIA

PL_OK:   mov     @R1,#PL               ; E = PL

         inc     R1

         cjne    A,#PL2,PL_1

PL_1:    jc      PL_2

         mov     @R1,#uE_MAX           ;Eu = 100;

         ajmp    AKCIA

PL_2:    %FF2(PL1,TGDELTA)             ;Eu = (E-PL1)*tg(DELTA)

;*********************************************************************

;DEFUZZIFIKACIA

AKCIA:

         mov     DPTR,#0

          mov     R1,#FAZY

          acall   DAJ_CFM

         mov     A,FAZY

         mov     B,FAZY+1

         mul     AB

         acall   SUCET1

          mov     R1,#FAZY+2

          acall   DAJ_CFM

         mov     A,FAZY+2

         mov     B,FAZY+3

         mul     AB

         acall   SUCET1

          mov     R1,#FAZY+4

          acall   DAJ_CFM

         mov     A,FAZY+4

         mov     B,FAZY+5

         mul     AB

         acall   SUCET1                ;teraz je v DPTR citatel

         mov     A,FAZY+1

         add     A,FAZY+3

         add     A,FAZY+5              ;v A je menovatel

          ;rr     A                     ;2 krat rychlejsi zasah

         mov     R3,A

         acall   DELENIE               ;v A je prispevok ku riadeniu

;*********************************************************************

         mov     B,A

         mov     A,UHOL

         jnb     MINUS,UBER

         add     A,B                   ;zvys naparie, cize zniz uhol

         jnc     CHOD

         mov     A,#0FFH               ;pretecenie, daj minimalny uhol

CHOD:

         mov     DPL,A

         mov     DPH,#0

         ajmp    KONIEC

UBER:

         clr     C

         subb    A,B                   ;zniz napatie, cize zvacs uhol

         jnc     CHOD

         mov     A,#0                  ;pretecenie, daj maximalny uhol

         ajmp    CHOD

KONIEC:

;V DPTR akcny zasah FUZZY REG. (len v DPL)

         %OBMEDZ(0,PMAX-1)

         mov     A,DPL

         mov     DPTR,#TAB_ALFA

         movc    A,@A+DPTR

         mov     UHOL,A

         ajmp    $                     ;Cakaj na dalsi RESET

;=====================================================================

ADPTR_BA:

         add     A,DPL

         mov     DPL,A

         mov     A,DPH

         addc    A,B

         mov     DPH,A

         jb      OV,NAD80

         ret

NAD80:

         mov     DPTR,#7FFFH

         jnc     BARET

         inc     DPTR

BARET:

         ret

;---------------------------------------------------------------------

NEG_DPTR:

         mov     A,DPL

         cpl     A

         mov     DPL,A

         mov     A,DPH

         cpl     A

         mov     DPH,A

         inc     DPTR

         ret

;---------------------------------------------------------------------

;Scita DPTR+AB (neberie do uvahy znamienka)

SUCET1:

         add     A,DPL

         mov     DPL,A

         mov     A,DPH

         addc    A,B

         mov     DPH,A

         ret

;---------------------------------------------------------------------

;Urobi z funkcie prislusnosti centrum fuzzy mnoziny (jej cislo)

DAJ_CFM:

         push    DPL

         push    DPH

         clr     C

         mov     B,#0FFH

         mov     A,@R1

TUU:

         rr      A

         inc     B

         jnz     TUU

         mov     A,B                   ;v A je cislo od 0 .. 7

         mov     DPTR,#TAB_CFM

         movc    A,@A+DPTR

         mov     @R1,A                 ;zapise cislo na povodne miesto

         pop     DPH

         pop     DPL

         ret

;---------------------------------------------------------------------

;v  R3  je delitel

;v DPTR je delenec

;v   A  je podiel

DELENIE:

         mov     R0,#128

         mov     R2,#128

XXX:

         mov     B,R3

         mov     A,R0

         mul     AB

         xch     A,B                   ;v A je vyssi bajt

         cjne    A,DPH,HOR

         xch     A,B                   ;horne bajty su rovnake

         cjne    A,DPL,DOL

         ajmp    PREC                  ;su rovnake aj dolne bajty

DOL:

         jc      MENSI                 ;A < DPL

         ajmp    VACSI                 ;A > DPL

HOR:

         jc      MENSI                 ;B < DPH

                                       ;B > DPH

VACSI:

         mov     A,R2

         clr     C

         rrc     A

         add     A,R0

         xrl     A,R2

         mov     R0,A

TU:

         mov     A,R2

         clr     C

         rrc     A

         mov     R2,A

         ;cjne    A,#1,YYY

         jnz YYY

         ajmp    PREC

YYY:

         ajmp    XXX

MENSI:

         mov     A,R2

         clr     C

         rrc     A

         add     A,R0

         mov     R0,A

         ajmp    TU

PREC:    mov     A,R0                  ;v R0 je podiel

         ret

;---------------------------------------------------------------------

;=====================================================================

;Linearizacna tabulka pre triak:

TAB_ALFA:

         DB      100,88,85,83,81,80,79,77,76,75

         DB       74,73,72,71,71,70,69,69,68,67

         DB       66,66,65,64,64,63,63,62,61,61

         DB       60,60,59,59,58,58,57,57,56,56

         DB       55,55,54,54,53,53,52,52,51,51

         DB       50,50,49,48,48,47,47,46,46,45

         DB       45,44,44,43,43,42,42,41,41,40

         DB       40,39,39,38,37,37,36,36,35,34

         DB       34,33,32,32,31,30,29,29,28,27

         DB       26,25,24,23,21,20,19,17,15,12

;---------------------------------------------------------------------

;Tabulka pre urcenie centier fuzzy mnozin

TAB_CFM:

         DB       0,2,5,7

;=====================================================================

 

         END


 

 

 

 

 

 

 

 

 

 

PRÍLOHA  č. 2

 

 

 

Obvodová schéma

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PRÍLOHA  č. 3

 

 

 

Predloha potlače

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PRÍLOHA  č. 4

 

 

 

Predloha plošného spoja

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PRÍLOHA  č. 5

 

 

 

Predloha nespájkovateľnej masky

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PRÍLOHA  č. 6

 

 

 

Súpiska súčiastok

 

 

 

 

 

 

 

 

 

 

 

 

 

Súčiastka

Hodnota

Označenie

Kolíky FASTON

Kolík

FASTON

Rezistor 0,6 W

22 kW

R9, R10, R13, R14, R15, R16

Rezistor 0,6 W

10 kW

R5, R6, R11, R12

Rezistor 0,6 W

470 kW

R2, R4

Rezistor 0,6 W

220 kW

R17, R18

Rezistor 0,6 W

330 W

R22

Rezistor 0,6 W

47 kW

R20, R31

Rezistor 0,6 W

47 W

R7, R21

Rezistor 0,6 W

1 kW

R8

Drôtová prepojka

X

X1

Dióda

1N4007

D1

Dióda

1N4148

D3

Zenerová dióda

KZ 260/5V1

VZ1

Optrón

PC 814

OPT1

Tranzistory

KC 237

T5, T6, T7, T8

Tranzistory

KC 636

T1, T2, T3, T4, T9

Kondenzátory

33 p

C1, C2

Kondenzátory

1 M

C6, C8

Kondenzátory

100 n

C7, C9

Kryštál

12 MHz

Q1

Varistor

275 V

VAR1

Rezistor

100 R

R1

Kondenzátor

100 n/250 V~

C3

Kondenzátor

470 M/10 V

C5

Kondenzátor

10 M/10 V

C4

Rezistor 10 W

4 k 9

R3

Triak

BTA 12/600

TR1

Procesor

AT89C2051/24

U1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PRÍLOHA  č. 7

 

 

 

Technické údaje

 

 

 

 

 

 

 

 

 

 

1. Konštrukcia regulátora

1.1. Určenie

         Regulátor je určený pre riadenie a reguláciu jednofázových asynchrónnych motorov v automatických práčkach.

 

1.1. Prevedenie

         Regulátor je realizovaný na doske jednostranného plošného spoja technológiou zásuvnej montáže. Chladič triaku sa musí k nemu pevne prichytiť. Kvôli lepšej orientácii je v prílohe č. 5 strana súčiatok popísaná pretlačou. Strana spojov by mala byť ošetrená nespájkovateľnou maskou.

         Rgulátor sa ku vonkajšiemu obvodu pripája plochými kolíkmi 6,3x0,8 prostredníctvom násuvných spojov.

 

2. Technické požiadavky

2.1. Pracovné podmienky

         Regulátor je konštruovaný tak, aby správne pracoval pri nasledovných podmienkách:

n  napájacie napätie 220/230 Vef +10%

  - 15%

n  maximálny prúd pripojeného as. Motora 12 A krátkodobe

n  meranie otáčok tachogenerátorom s parametrami:    f = 500 Hz

                                                                                              U = 45 Vef

n  voľba režimu (svorka 5 a 6)          0 Vef - odstreďovanie

    min 100  Vef - pranie

n  teplota prostredia +5 °C až  +80 °C

n  prostredie obyčajne suché

 

2.1. Údaje o zaručovaných parametroch

Zaručené hodnoty:

         V jednotlivých pracovných režimoch musí byť presnosť regulácie otáčok na hriadeli motora:

n  pranie                                                    185 min-1 ± 5%

n  distribúcia (na konci nárastu)                 400 min-1 ± 10%

n  distribúcia (plynulý nárast)        185 až 400 min-1

n  odstreďovanie (n400/n800)        1355/2755 min-1 ± 5%

n  odstreďovanie I stupeň (n400)                        143s +5 s

n  odstreďovanie II stupeň (n800)              zabezpečí prog. Práčky

        

         Obvod nevyváhy (vyváženosti bubna) vyhodnocuje vyváženie náplne prádla v rozmedzí 310 až 380 min-1.

V prípade zistenia nevyváženosti má sa opakovať režim distribúcie , a to z pracích otáčok. Tento proces sa má opakovať až do vhodného rozloženia náplne. V prípade, že sa prádlo nerozloží vhodne ani pri opätovných pokusoch, je celková doba ohraničená funkciou programátora práčky.

 

Regulátor musí zabezpečiť:

n  pri poruche tachogenerátora resp. pri prerušení prívodných vodičov z tachogenerátora, okamžité zamedzenie napájania el. motora (motor sa netočí)

n  10 rokov používania v práčke

2.1. Obvod nevyváženosti

         Obvod nevyváženosti kontroluje vyváženie náplne prádla v rozmedzí otáčok motora 310 až 380 min-1 (viď špecifikácia). V prípade, že sa náplň prádla nerozloží rovnomerne, musí regulátor zabezpečiť zníženie otáčok na pracie otáčky a opakpovanie režimu distribúcie.

         Vlastnosti obvodu nevyváženosti úzko súvisia s konštrukciou práčky. Preto pri inom type práčky, alebo pri zmene konštrukcii práčky je potrebné obvod nevyváženosti opäť nastaviť a jeho funkciu overiť.

 

2.1. Ochrana proti prerušeniu tachogenerátora

         Pri prerušení vinutia tachogenerátora alebo jeho prívodov, musí sa zamedziť spínanie triaku a tým dôjde k zastaveniu motora.

         Ak dôjde k prerušeniu vinutia alebo prívodov tachogenerátora v čase mimo prevádzky (napr. pri transporte), regulátor musí zabezpečiť, aby sa po pripojení motor nerozbehol.