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 User’s 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
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.