řízení otáček ss motoru

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
ok1f
Příspěvky: 239
Registrován: 11 zář 2006, 00:00

řízení otáček ss motoru

#1 Příspěvek od ok1f »

Dobrý den, poraďte mi prosím, jak řídit otáčky motoru. zatím jsem stvořil pulsní regulaci výkonu pomocí 16f84a, jedním tlačítkem zvyšuji, druhým snižuji otáčky, ale vadí mě závislost otáček na napětí a na zátěži. Potřeboval bych v procesoru porovnávat otáčky naměřené (např. Hallův snímač) s nastavenými a při rozdílu provést korekci výkonu. Takže jakási zpětná vazba. Zatím mne nenapadá žádné rozumné řešení, chybí mi ta základní myšlenka. Děkuji.
Uživatelský avatar
stepa
Příspěvky: 4669
Registrován: 05 led 2007, 00:00
Bydliště: poblíž HK
Kontaktovat uživatele:

#2 Příspěvek od stepa »

Naco procak? Zbytecny :wink:

zapojeni KTE 9/2001 str. 8-9
Přílohy
otacky.png
(34 KiB) Staženo 496 x
NEONI
Příspěvky: 505
Registrován: 11 úno 2007, 00:00
Bydliště: SVK

#3 Příspěvek od NEONI »

Samozrejme konc. tranzistor treba vyberat podla regulovaneho prudu, ta 136 by toho vela nevydrzala.Ale akosi mi nieje jasne zapojenie pred tou prerusovanou ciarou, naco tyristor? :roll:
Uživatelský avatar
stepa
Příspěvky: 4669
Registrován: 05 led 2007, 00:00
Bydliště: poblíž HK
Kontaktovat uživatele:

#4 Příspěvek od stepa »

NEONI píše:Samozrejme konc. tranzistor treba vyberat podla regulovaneho prudu, ta 136 by toho vela nevydrzala.Ale akosi mi nieje jasne zapojenie pred tou prerusovanou ciarou, naco tyristor? :roll:


Achjo :roll: , proc jsem asi daval odkaz na to KTE? Aby ste si to precetli...ok1f chtel postrcit, tak jsem strcil. Je jasny ze trand musi dat podle motorku a to pred prerusovanou carou ne nadprouda ochrana. Misto tyristoru by se dal dat i trand. Kapis? :wink:

BTW tu nadporudou ochranu tam vubec cpat nemusis...ale preci nebudu zbytecne sekat schema...nekomu se to muze hodit.
masar
Příspěvky: 14453
Registrován: 03 pro 2005, 00:00

#5 Příspěvek od masar »

Tyristor je pojistka proti nadproudu. Při překročení úbytku napětí na odporu R2 zkratuje tyristor vstup 2 a 6 555 a ta přestane spínat výstupní tranzistor. Tlačítkem se tyristor vypne a uvolní regulaci.
Uživatelský avatar
Hill
Administrátor
Příspěvky: 21233
Registrován: 10 zář 2004, 02:00
Bydliště: Jičín, Český ráj

#6 Příspěvek od Hill »

Některé možnosti, jak lze řešit zpětnovazební regulaci otáček, jsem tu už popisoval:
http://www.ebastlirna.cz/modules.php?na ... 0&thold=-1
Jestli generuješ impulsy s proměnnou střídou přímo kontrolérem, tak využij třeba analogový vstup, na který přivedeš výstup z integrátoru. Strmost a charakteristiku du/dt pak můžeš nastavit jak analogově, tak ji můžeš ovládat programově.
Další možnost je třeba přivést výstupní napětí na okénkový komparátor a jeho výstupy připojit místo tlačítek přidat/ubrat.
Uživatelský avatar
ok1f
Příspěvky: 239
Registrován: 11 zář 2006, 00:00

#7 Příspěvek od ok1f »

Procesor je nutností, jedná se o ventilátor v nezávislém topení a potřebuji jeho výkon ovládat programem. Měl jsem na mysli vzít digitální signál z hallova snímače a jeho kmitočet porovnávat s nějakým referenčním, např. uloženým v tabulce. je nutno zachovat stávající ovládání tlačítky přidej/uber. Nemám ale s touto problematikou zkušenosti, základy jsem snad už nějaké získal, ale na toto potřebuji radu.
Uživatelský avatar
Hill
Administrátor
Příspěvky: 21233
Registrován: 10 zář 2004, 02:00
Bydliště: Jičín, Český ráj

#8 Příspěvek od Hill »

Inkrementuj impulsy ze snímače do čítače a programovým časováním jeho stav pravidelně snižuj, ale kontroluj jeho stav tak, aby nepodkročil nulu ani nepřetekl.
Při nižším obsahu čítače motoru přidej, při vyšším uber. Pro stav čítače 0 dej motoru plnou, pro stav 255 ho vypni.
Jeden cyklus tedy bude mít nanejvýše 255 impulsů.
Můžeš rozsah samozřejmě zúžit, například jen na +/- 64 kolem 127. Pak bude regulace strmější a regulátor bude udržovat otáčky tak, aby stav čítače byl větší část doby kolem těch 127
Uživatelský avatar
ok1f
Příspěvky: 239
Registrován: 11 zář 2006, 00:00

#9 Příspěvek od ok1f »

Jestli tomu dobře rozumím, tak stav čítače bude nějakým způsobem určovat střídu výst. napětí, stav 127 např. 1:1, chápu to správně?
Uživatelský avatar
Hill
Administrátor
Příspěvky: 21233
Registrován: 10 zář 2004, 02:00
Bydliště: Jičín, Český ráj

#10 Příspěvek od Hill »

Může, a to přímo.
Například příklad: Při stavu 0 bude střída 1:1, při stavu 255 bude střída 0:1, nebo naopak, podle toho, jestli výkonovým stupněm signál ještě invertuješ nebo jen zesiluješ.
Ale i to lze invertovat programově.
Druhý čítač bude řídit výstup a to tak, že bude čítat dokolečka a porovnávat. Dokud nedosáhne stavu prvního čítače, bude výstup aktivní, tedy do motoru jde šťáva. Než pak dopočítá do 255, bude výstup vypnutý.
Přitom není ani nezbytně nutné, aby tento čítač běžel na kmitočtu pevně svázaném s referenčním, jen je vhodné, aby konstantní frekvence inkrementovaných impulsů tohoto druhého čítače byla alespoň 16x vyšší, než frekvence dekrementující první čítač.
Je to na delší vysvětlování, nakresli si vývojový diagram a myslím, že další výklad ani nebude třeba.
Uživatelský avatar
ok1f
Příspěvky: 239
Registrován: 11 zář 2006, 00:00

#11 Příspěvek od ok1f »

Jen pro jistotu: první čítač čítá impulsy a toto číslo porovná po určitém čase s nějakým registrem, kde je uloženo, jak rychle se má točit motor. liší-li se výsledek od nuly, je na výstupu příkaz ubrat, nebo přidat.
Druhý čítač počítá do hodnoty téhož registru a než ji dosáhne, je na výstupu např. "1", když ji překročí, je na výstupu "0".
Jestli je to až potud OK, pak nechápu, jak tyto dvě funkce provázat, jak ten první čítač může ovlivnit trvání řídících impulsů. Třeba přednastavením určité hodnoty do druhého čítače? Že by nečítal od nuly, ale např. od 100 a ta přednastavená hodnota by byla třeba od 90 do 110, v závislosti na výsledku z prvního čítače?
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“