Přesné řízení serva

Pravidla fóra
toto forum vyzaduje schvaleni prispevku moderatorem
Odpovědět
prochaska
Sponzor fora
Příspěvky: 8163
Registrován: 16. 7. 2006, 12:33
Bydliště: Praha Bohnice + Roudnice nad Labem
Kontaktovat uživatele:

9. 1. 2023, 1:33

Potřeboval bych pomoct s řešením, nebo ještě raději vyřešit "na klíč" přesné řízení serva.

Jde o tohle: mám servo s driverem s ovládáním step/dir. Driver řídím interpolátorem GVE 84 od Gravosu a tomu zadávám povely z PC. Požadovaná funkce je roztočit servo a zase zastavit, přičemž je potřeba co nejpřesněji dodržet rychlost otáčení serva, která musí růst a klesat po sinusovce (v=1−cos(t)). Ve spojení s kuličkovým šroubem je tím vlastně realizovaná taková digitální kliková hřídel. Celé je to hardwarově, elektricky i softwarově funkční, ale potřeboval bych to řízení udělat přesnější, s hladším průběhem. Teď to dělám tak, že aproximuju sínusovku pomocí posloupnosti několika vektorů, což způsobuje skokové změny rychlosti, nebo aproximací pomocí rychlosti a zrychlení, tam ale vycházejí zrychlení tak nízká, že se od interpolátoru nedá spravedlivě chtít aby je přesně dodržoval a vzniká příliš velká odchylka od sinusového průběhu. Použít skutečný klikový mechanismus nelze, protože od toho občas potřebuju i lineární pohyb.

Vím, že tu pár lidí vlastní interpolátor řešilo, takže mám prosbu, jestli byste někdo neuměl tohle postavit na zakázku, s nějakým jednoduchým komunikačním protokolem a připojením na PC přes UART, RS232 nebo RS485. Předpokládané dosahované rychlosti jsou do 8 ot/s při 2000 pulsech na otáčku a dráze do 20 otáček. V úvahu připadá i výměna serva a/nebo driveru za jiný typ, pokud by to bylo potřebné. Řešením by bylo i najít nějaký interpolátor který tohle bude umět sám od sebe, ale pohybuju tady se mimo hranice normálního použití pro CNC, takže nevím, jestli to půjde.
Aleš Procháska
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22399
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

9. 1. 2023, 5:32

Co tam dat raspberry pi a do halu pripsat tech 5 radku.
Vsechna prava na chyby vyhrazena (E)
prochaska
Sponzor fora
Příspěvky: 8163
Registrován: 16. 7. 2006, 12:33
Bydliště: Praha Bohnice + Roudnice nad Labem
Kontaktovat uživatele:

9. 1. 2023, 5:46

Třeba by to šlo, nikdy jsem s tím nedělal :-) Nějaké drobné programování podle vzoru zvládnu, aspoň to budu mít pod kontrolou, ale asi bych teď nedal pronikání do pro mě úplně nové technologie.
Aleš Procháska
PBr
Příspěvky: 941
Registrován: 16. 6. 2007, 8:21
Bydliště: Slovensky Grob
Kontaktovat uživatele:

9. 1. 2023, 6:19

Ahoj,

Taky kmitavy pohyb vie sam od seba menic servostar a nic ine k tomu nie je treba. Da sa to spustit cez rs232. Akurat ze to bude treba pred kmitanim nahomovat.

Edit: neviem ci sa takto sa fakt sinus, pre ten kmitavy pohyb sa da definovat rychlost, zrychlenie a typ zrychlenia-linear alebo s-krivka. Mozno touto kombinaciou sa da spravit presny sinus
Uživatelský avatar
Radhard
Příspěvky: 288
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

9. 1. 2023, 6:35

S nějakým malým procesorem (STM32F...) bych to dal. Když tak napiš.
prochaska
Sponzor fora
Příspěvky: 8163
Registrován: 16. 7. 2006, 12:33
Bydliště: Praha Bohnice + Roudnice nad Labem
Kontaktovat uživatele:

9. 1. 2023, 9:03

PBr píše: 9. 1. 2023, 6:19 Ahoj,

Taky kmitavy pohyb vie sam od seba menic servostar a nic ine k tomu nie je treba. Da sa to spustit cez rs232. Akurat ze to bude treba pred kmitanim nahomovat.

Edit: neviem ci sa takto sa fakt sinus, pre ten kmitavy pohyb sa da definovat rychlost, zrychlenie a typ zrychlenia-linear alebo s-krivka. Mozno touto kombinaciou sa da spravit presny sinus
To jsem neznal, díky. Aproximace rychlost-zrychlení stačí, pohodlně se tak vejdu do 3% zkreslení (maximální dovolené), jestli je to plynulé tak by to úplně vyhovělo. Podívám se na to :-)
Aleš Procháska
prochaska
Sponzor fora
Příspěvky: 8163
Registrován: 16. 7. 2006, 12:33
Bydliště: Praha Bohnice + Roudnice nad Labem
Kontaktovat uživatele:

15. 2. 2023, 2:11

Díky fóru (Radhard) vyřešeno. Požadovaný průběh rychlosti naprogramoval přímo jako funkci jejich interpolátoru a já teď jen z aplikace posílám příkazy a nemusím se o nic dalšího starat :-)
Aleš Procháska
Odpovědět

Zpět na „Nákup“