řízení stejnosměrného servomotoru

jaké jsou rozdíly z pohledu řízení
Odpovědět
a1225
Příspěvky: 2
Registrován: 24. 6. 2009, 2:03

24. 6. 2009, 2:24

Dělám pokusy s řízením DC serva s enkodérem. Mám H můstek, který řídím mikroproceserem (Atmega8). Točit motorem na obě strany je jednoduchý, i měnit otáčky pomocí PWM regulace. Teď bych chtěl ale vyzkoušet nastavovat mu různou polohu podle enkodéru, ale mám jen mlhavou představu jak se toto dělá, aby se motor natočil, kam chci a zůstal stát a držel. Chtěl bych mu po seriové lince poslat například příkaz aby se natočil o 1000 kroků, předpokládám, že ho budu muset nejdřív rozeběhnout a pak taky včas začít brzdit. Nemáte někdo link na nějaký stránky, kde by to bylo slušně popsáno? Nebo, nevysvětlil by to někdo?
Uživatelský avatar
lamoz
Sponzor fora
Příspěvky: 369
Registrován: 31. 1. 2008, 1:26
Bydliště: Praha

24. 6. 2009, 3:07

k
Příspěvky: 814
Registrován: 12. 8. 2008, 12:00
Bydliště: Kosice SK

25. 6. 2009, 6:41

bud to spravite "nahodne" alebo spravite pre konkretny motor detailnu identifikaciu a vypocitate konstanty pre PID regulator. Toto je najlepsie riesenie .. ale "drahe" (pracne). Dalsia z moznosti je fuzzy regulator a v poslednom case sa uz zacinaju objavovat adaptivne PID, kde sa regulator podla toho ako dopadol v predchadzajucich krokoch pokusa opravit navolene PID parametre. (inac toto je zname uz hodne roky ale popravde povedane . dobre spraveny adaptivny regulator som este nestretol).

Skuste teda nahodit soft pre klasicke PID a tieto parametre potom vytiahnite povedzme cez serial aby sa dali konfigurovat podla prislusneho motora.
a1225
Příspěvky: 2
Registrován: 24. 6. 2009, 2:03

25. 6. 2009, 9:05

Tak to je na mě už moc složitý, já si s tím spíšjen hraju. Koukal jsem na ten předchozí odkaz na ten driver od Arisova a vypadá to zajímavě, jen má všechny zdrojáky komentovaný napůl rusky. Mě spíš šlo o uplný základy, o princip jak takový driver funguje.
Vím, že by tam měla být nějaká smyčka, kde se zkontroluje poloha, rychlost, proud a podle toho se nastavuje proud do motoru.
Při nastavování otáček to dělám obdobně, měřím otáčky a nastavuju PWM abych dosáhl požadované rychosti. Jen mě nenapadá jak to udělat abych mohl motorem i stát a držel v pozici.
k
Příspěvky: 814
Registrován: 12. 8. 2008, 12:00
Bydliště: Kosice SK

25. 6. 2009, 9:50

ok takze popisem najjednoduchsie regulovanie pomocou P regulatoru .. (ID zlozky = 0).

mam soft citac (budem nazyvat citatc A), v ktorom si drzim polohu stroja. Podla informacii z enkoderu ju updatujem t.j. zvacsujem alebo zmensujem v nom cislo.

mam druhy citac (taktiez v softe, budem oznacovat citac B) ktory zas menim pomocou dir/step impulzov z riadiaceho pocitaca. Pripaden tu moem mat len register, kde mam vlozene konkretne cislo t.j. polohu kde ma stroj dojst.

Porovnam oba citace (t.j. spravim rozdiel citac A - citac B). Podla znamienka urcim smer kam sa ma motor pohnut. Absolutna hodnota rozdielu nasobena konstantou P mi urci rychlost pohybu motora. Zacnite pre experimenty s P=0.01 napr .. a skusajte tu hodnotu P zvacsovat .. zistite ze za istych podmienok ak P pridate velmi vela tak vam bude motor nastavenu polohu prebehavat .. a ak je P male bude zas motor reagovat velmi pomaly. Idealne je ked P je prave take, ze je tesne pred hodnotou ked uz motor prebehava. Samozrejem to sa moze lisit aj od zataze stroja ale to rieste aj neskor.

Zlozky I a D mozem poradit neskor ked sa uz vysporiadate s tymto :) v principe zlepsia reakciu na zmenu polohy (D zlozka) a I zlozka umozni dosiahnut nulovu odchylku od nastavenej hodnoty.
PBr
Příspěvky: 941
Registrován: 16. 6. 2007, 8:21
Bydliště: Slovensky Grob
Kontaktovat uživatele:

25. 6. 2009, 10:53

Celkom by ma zaujimala ta implementacia fuzzy regulatora pre servo riadenie. Da sa to implementovat na nejakom jednocipaku? Nepokusal sa niekto take nieco realizovat?
k
Příspěvky: 814
Registrován: 12. 8. 2008, 12:00
Bydliště: Kosice SK

25. 6. 2009, 11:05

samozrejme je to mozne aj na jednocipaku. v principe ale je riadenie motora pomerne dobre popisatelne differencialnou rovnicou a teda klasicky PID je lahko aplikovatelny. fuzzy system sa skor pouziva na riadenie kde nemame presne popisany riadeny system.

V principe by som na servo cisto fuzzy system neaplikoval . skor by som zvolil PID a fuzzy system by len nastavoval PID parametre. Ich zmenu by som vlastne riesil tak, ze podla zmeraneho prebehu by fuzzy system prepocital PID parametre. Naopak, ked by nenameral prebeh tak by s apokusal zrychlovat servo t.j. zvacsovat PI zlozky .. Dosiahli by sme tak plne adaptivny regulator ale pozor . stabilita takehoto systemu je pomerne zlozita vec .. takze rozhodne pokia nemate skusenosti a teoreticke znalosti z teorie automatickeho riadenia resp. umelej inteligencie nepokusajte sa take nieco nasadzovat do drahsich strojov . kde hrozi ze nieco nepekne a draho nabura.

Priklad riadenia P zlozky v cistom P regulatore:

vstup fuzzy systemu je prebeh. Z jednoduchosti si zadefinujeme niekolko stavov: a) prebeh maly b) prebeh stredny c) prebeh velky d) system nedobehne. stav prepocitame z nameranych realnych velicin .. (tabulkou si urcime kolko krokov je este napr stav a) a kolko stav b). System dalej podla toho ci je v stave a) - neupravi P zlozku .. ak je v satve b) zmensi P zlozku o 10% ak je v stave c) zmensi P zlozku o 50% a v stave d) prida P zlozku o 5%. V tomto pripade by sa stabilita systemu este dala celkom garantovat .. ale pokial to skomplikujete I a D zlozkou moze to byt uz o dost narocnejsie.
PBr
Příspěvky: 941
Registrován: 16. 6. 2007, 8:21
Bydliště: Slovensky Grob
Kontaktovat uživatele:

25. 6. 2009, 2:05

Koncepcne to znie celkom pekne, skoda, ze uz detailne znalosti z automatizacie a UI vyprchali :)
Teraz trocha odbocim od temy,ale zaujimal by ma nazor ostatnych:
Mam analog menic na ac servo, ktore ale neviem prinutit,aby pracovalo v rezime konstatnych otacok, vie regulovat iba prud (moment), samozrejme tym aj otacky. Chcel by som tento menic pouzit na pohon vretena, dal by sa k tomu dorobit regulator? menic ma vstup -10 - +10V, cim sa riadi prud a ma vystup akokeby enkodera.
k
Příspěvky: 814
Registrován: 12. 8. 2008, 12:00
Bydliště: Kosice SK

26. 6. 2009, 6:12

PBr píše:Koncepcne to znie celkom pekne, skoda, ze uz detailne znalosti z automatizacie a UI vyprchali :)
Teraz trocha odbocim od temy,ale zaujimal by ma nazor ostatnych:
Mam analog menic na ac servo, ktore ale neviem prinutit,aby pracovalo v rezime konstatnych otacok, vie regulovat iba prud (moment), samozrejme tym aj otacky. Chcel by som tento menic pouzit na pohon vretena, dal by sa k tomu dorobit regulator? menic ma vstup -10 - +10V, cim sa riadi prud a ma vystup akokeby enkodera.
AC servo ma otacky riadene frekvenciou .. Pokial mozete riadit len prud, AC servo bude sice menit moment ale otacky pojdu dole len o tolko co dovoli sklz a potom sme uz mimo sync magnetickeho pola a rotora (t.j. pre prax nepouzitelne). Nejaky link na ten AC menic ? Snad to vie aj nieco naviac...
PBr
Příspěvky: 941
Registrován: 16. 6. 2007, 8:21
Bydliště: Slovensky Grob
Kontaktovat uživatele:

26. 6. 2009, 9:17

Ano,to mi je jasne, to co som opisoval je vlastne regulacia momentu, vlastne aj prudu, kedze moment je umerny prudu. Menic je stara vykopavka, horko tazko som od vyrobcu (www.ssddrives.com) vyzobral datasheet, ked budem doma, tak mozem tu to dat (tak o tyzden).
Tam sa pise, ze mal by vediet aj tie konst. otacky, ale som patral na plosaku, tie casti, ktore by mali zabezpecit tu regulaciu tam jednoducho chybaju. Preto by som chcel dorobit nieco externe, ktore by toto zvladalo.
Přílohy
07-02-05-03-Z-V0898.pdf
(1.31 MiB) Staženo 3056 x
Odpovědět

Zpět na „krokove unipolarni bipolarni a servomotory“