Zdravím, mám problém s linearitou pohybu pri mikrokrokovaní. Vzhľadom k rozsiahlosti som opis problému dal na web http://www.miklosoft.host.sk/
Vie mi prosím niekto poradiť?
problém s mikrokrokovaním
- MMys
- Příspěvky: 18311
- Registrován: 02. 01. 2001, 05:03
- Bydliště: Běleč nad Orlicí
- Věk: 52
- Kontaktovat uživatele:
problém s mikrokrokovaním
Zdravím Tě.
Děláš evidentně několik chyb, a to dost zásadních.
I když použiješ velmi kvalitní motor, který je se svojí závislostí polohy v mezikroku na PROUDECH fázemi lineární, tak musíš zajistit, aby ty proudy v těch fázích byly sinusové s posunem o pi/2. A zde je první chyba.
Pokude generuješ PWM na MCU podle funkce sin a cos, a přímo tím spínáš můstek (nepoužíváš tedy odpory pro snímání proudu a komparátory, což je korektnější cesta) výsledkem není téměř jistě sinusový průběh proudu. Až do střídy 1:1 totiž proud prakticky neroste (pokud je časová konstanta RL obvodu vinutí v obou směrech (růst i pokles) proudu stejná, záleží jak máš zapojený můstek, jeho typ, typ rekuperačních diod a tak). Teprve při překročení této hranice se to postupně začně chovat lineárně, a platí pak, že změna proudu je úměrná změně střídy PWM.
To, že průběh proudu nemáš sinusový je jasně vidět na těch obrázcích. Musíš tedy udělat nejlépe nějakou vhodnou tabulku, která bude korigovaná tak, aby byl výsledný průběh proudu sinusový. A obvykle je při 8 bitovém PWM-ku využitelných jen něco málo přes 128 úrovní. Zbytek (skoro polovina rozsahu) padne na dolní "necitlivou" oblast, kde proud LR obvodem prakticky nestoupá.
Zkus si namodelovat v nějakém SW, nebo zkusit s generátorem, jak se chová proud LR obvodem přemostěným diodou v závislosti na střídě budícího napětí. Lineární to není ani náhodou. Pokud PWM-ko řídíš podle sinu, výsledek bývá takový, jako máš na těch obrázcích.
Také musíš stále budit obě vinutí (v bipolárním režimu), ne vždy pouze jedno. Myslím, že ten oskenovaný obrázek nalevo je bipolar, a je špatně.
Též je dobré, aby řídící jednotka uměla měnit tvar křivky proudu, nějakým parametrem a dalo se to přizpůsobit pro mírné nelinearity různých motorů. Já používám parametricky měnitelné průběhy od trojúhleníku přes čistý sinus až po "placku" x^4 Výsledná křivka se volí jako mix z nich, ve volitelném poměru, znormovaný do maxima PWM-ka.
Úplně nejlepší je použít hardwarově řešený externě řízený constant current driver + H můstek. Pak se na obvod řízení proudu přivádí sinový a kosinový průběh napětí (vyrobený z RC článkem vyfiltrovaného PWM-ka nebo výstupy z D/A převodníků MCU) a obvod zajišťuje řízení proudu, ketrý je sníman přes SENSE odpory. To je již lineární v relaci ke vstupnímu napětí do driveru přiváděného z MCU a lze pak využít celého rozsahu PWM či D/A převodníku. A hodnota proudu se nastaví velikostí SENSE odporů nebo děličem za nimi. Takové obvody zároveň mají vyřešenu rekuperaci energie uložené ve vinutí, z závislosti na režimu provozu motoru buď v režimu Fast Deacy nebo Slow deacy, liší se to rychlostí pádu proudu v cívce motoru po vypnutí buzení a cestou, kudy se proud v můstku vybije. Je to lepší řešení, než rekuperační diody.
Doporučuji třeba dvojici obvodů L6203 (H můstek) a L6506 , nebo můstek L298+externí diody a L6506 jako constatn curent driver. Sám určitě najdeš další možné způsoby.
Tady máš průběhy proudu vinutími dvofázového motoru, jak by měly vypadat, při ideálním mikrokrokování v bipolárním režimu.
Je měřeno na SENSE odporech H-můstku, proti zemi, takže to je vidět jako usměrněné. Každá druhá půlvlna je ve skutečnosti záporné polarity. Plocha je celá vsytínovaná proto, že proud při rekuperaci neteče přes SENSE odpory, ale přes externí diody a osciloskop ho tak po dobu kelásní (při vypnutí buzení v PWM) neměří. Skutečný proud je obálka tohoto průběhu. Při zapojení snímacích odporů přímo do fáze motoru (což je nejlepší způsob měření) krásně změříš hladký průběh proudu včetně obou polarit. Vyžaduje to ovšem od země izolovaný osciloskop s plovoucími vstupy, nebo galvanicky oddělené proudové sondy. Ale ten obrázek nemám zrovna po ruce uložený a nechce se mi kvůli tomu rozvrtat montáž na dalekohled a něco tam měřit.
Děláš evidentně několik chyb, a to dost zásadních.
I když použiješ velmi kvalitní motor, který je se svojí závislostí polohy v mezikroku na PROUDECH fázemi lineární, tak musíš zajistit, aby ty proudy v těch fázích byly sinusové s posunem o pi/2. A zde je první chyba.
Pokude generuješ PWM na MCU podle funkce sin a cos, a přímo tím spínáš můstek (nepoužíváš tedy odpory pro snímání proudu a komparátory, což je korektnější cesta) výsledkem není téměř jistě sinusový průběh proudu. Až do střídy 1:1 totiž proud prakticky neroste (pokud je časová konstanta RL obvodu vinutí v obou směrech (růst i pokles) proudu stejná, záleží jak máš zapojený můstek, jeho typ, typ rekuperačních diod a tak). Teprve při překročení této hranice se to postupně začně chovat lineárně, a platí pak, že změna proudu je úměrná změně střídy PWM.
To, že průběh proudu nemáš sinusový je jasně vidět na těch obrázcích. Musíš tedy udělat nejlépe nějakou vhodnou tabulku, která bude korigovaná tak, aby byl výsledný průběh proudu sinusový. A obvykle je při 8 bitovém PWM-ku využitelných jen něco málo přes 128 úrovní. Zbytek (skoro polovina rozsahu) padne na dolní "necitlivou" oblast, kde proud LR obvodem prakticky nestoupá.
Zkus si namodelovat v nějakém SW, nebo zkusit s generátorem, jak se chová proud LR obvodem přemostěným diodou v závislosti na střídě budícího napětí. Lineární to není ani náhodou. Pokud PWM-ko řídíš podle sinu, výsledek bývá takový, jako máš na těch obrázcích.
Také musíš stále budit obě vinutí (v bipolárním režimu), ne vždy pouze jedno. Myslím, že ten oskenovaný obrázek nalevo je bipolar, a je špatně.
Též je dobré, aby řídící jednotka uměla měnit tvar křivky proudu, nějakým parametrem a dalo se to přizpůsobit pro mírné nelinearity různých motorů. Já používám parametricky měnitelné průběhy od trojúhleníku přes čistý sinus až po "placku" x^4 Výsledná křivka se volí jako mix z nich, ve volitelném poměru, znormovaný do maxima PWM-ka.
Úplně nejlepší je použít hardwarově řešený externě řízený constant current driver + H můstek. Pak se na obvod řízení proudu přivádí sinový a kosinový průběh napětí (vyrobený z RC článkem vyfiltrovaného PWM-ka nebo výstupy z D/A převodníků MCU) a obvod zajišťuje řízení proudu, ketrý je sníman přes SENSE odpory. To je již lineární v relaci ke vstupnímu napětí do driveru přiváděného z MCU a lze pak využít celého rozsahu PWM či D/A převodníku. A hodnota proudu se nastaví velikostí SENSE odporů nebo děličem za nimi. Takové obvody zároveň mají vyřešenu rekuperaci energie uložené ve vinutí, z závislosti na režimu provozu motoru buď v režimu Fast Deacy nebo Slow deacy, liší se to rychlostí pádu proudu v cívce motoru po vypnutí buzení a cestou, kudy se proud v můstku vybije. Je to lepší řešení, než rekuperační diody.
Doporučuji třeba dvojici obvodů L6203 (H můstek) a L6506 , nebo můstek L298+externí diody a L6506 jako constatn curent driver. Sám určitě najdeš další možné způsoby.
Tady máš průběhy proudu vinutími dvofázového motoru, jak by měly vypadat, při ideálním mikrokrokování v bipolárním režimu.
Je měřeno na SENSE odporech H-můstku, proti zemi, takže to je vidět jako usměrněné. Každá druhá půlvlna je ve skutečnosti záporné polarity. Plocha je celá vsytínovaná proto, že proud při rekuperaci neteče přes SENSE odpory, ale přes externí diody a osciloskop ho tak po dobu kelásní (při vypnutí buzení v PWM) neměří. Skutečný proud je obálka tohoto průběhu. Při zapojení snímacích odporů přímo do fáze motoru (což je nejlepší způsob měření) krásně změříš hladký průběh proudu včetně obou polarit. Vyžaduje to ovšem od země izolovaný osciloskop s plovoucími vstupy, nebo galvanicky oddělené proudové sondy. Ale ten obrázek nemám zrovna po ruce uložený a nechce se mi kvůli tomu rozvrtat montáž na dalekohled a něco tam měřit.
http://hvbo.cz/foto_astronomy_cz, http://hvbo.cz, e-mail: martin(*)myslivec(a)volny(*)cz, Dobson 400mm, N400/1600, Refraktor Borg 77ED, Montáž EQ6, Hvězdárna s montáží vlastní výroby, kamery MII C3-61000, ZWO ASI 1600MM
problém s mikrokrokovaním
Ja som si v svojej naivite myslel, že tento spôsob riadena bude dostatočný, napr. aj Microchip ho v application note AN906 používa ťiež. K Tvojej odpovedi by som mal ešte 2 otázky.
1.prečo si myslíš, že nebudím obidve vinutia v bipolári - vid sken.obr.na webe - 2 PWM budia vždy jednu cievku, každý v opačnom smere. Takže v každom okamihu sú budené obe cievky jednou s pwm-iek.
2.Ako maš riešenú spätnú väzbu, na základe čoho Ti meni riadiaca jednota tvar signálu z trojuholníka až po"placku".
Vďaka.
1.prečo si myslíš, že nebudím obidve vinutia v bipolári - vid sken.obr.na webe - 2 PWM budia vždy jednu cievku, každý v opačnom smere. Takže v každom okamihu sú budené obe cievky jednou s pwm-iek.
2.Ako maš riešenú spätnú väzbu, na základe čoho Ti meni riadiaca jednota tvar signálu z trojuholníka až po"placku".
Vďaka.
- MMys
- Příspěvky: 18311
- Registrován: 02. 01. 2001, 05:03
- Bydliště: Běleč nad Orlicí
- Věk: 52
- Kontaktovat uživatele:
problém s mikrokrokovaním
Teď se omlouvám, koukal jsem na to ráno ve spěchu před odjezdem do nástrojárny, kde řešíme formu a měl v hlavně něco jiného. Zmátl mě ten obrázek druhý shora, a nedíval jsem se nad ním na sekvenci spínání proudu do vinutí. Takže je to unipolar, ale stejně platí to co jsem psal, že PWM-ko se musí provozovat s ohledem na nelinaritu závislosti %střídy vs. proud. Neplatí totiž že 50% PWM = 50% max. proudu daného poměrem U/Rvinutí. A neplatí to dost hrubě. Změř si to. Problém s jednoduchým řešením, bez budičů konstatntního proudu, které používám také, je ale řešitelný. (viz. moje řídící jednotka pro dalekohledy http://hvbo.cz/foto_astronomy_cz/EQ6.htm) se schematem zde: http://hvbo.cz/foto_astronomy_cz/AstroF ... to_sch.pdf
Jsou tam ale jistá omezení na napájecí napětí a impedanci vinutí motoru. Protože ti na řízení průběhu proudu zbyde obvykle pouze polovina rozsahu PWM, tedy 128 úrovní, a potřebuješ pro plynoulý chod optimálně kolem 64 mikrokroků, nelze již moc účinně přizpůsobovat proud různým typům motorů a nelze také použít moc vysoké napájecí napětí, protože pak již nemáš dostatečný počet úrovní PWM pro regulaci. Leda použít 16bitové PWM. Přitom právě to vyšší napětí je klíčové pro získání vyšších rychlostí motoru pro přejezdy montáže (tedy pokud jde o řízení dalekohledu). Také je třeba zvládnout mechanismus postupného snižování počtu mezikroků a přechod na half-step mód při vyšších rychlostech. Jinak jde dolů moment a maximální rychlost motoru.
Unipolární režim pro tuto aplikaci vůbec nedoporučuji. Motor je pak dost neefektivně využitý.
A ještě jedna věc. Doporučuji jít frekvencí PWM-ka nad 20KHz, chod je pak daleko klidnější a tišší, bez zvukových efektů.
Jsou tam ale jistá omezení na napájecí napětí a impedanci vinutí motoru. Protože ti na řízení průběhu proudu zbyde obvykle pouze polovina rozsahu PWM, tedy 128 úrovní, a potřebuješ pro plynoulý chod optimálně kolem 64 mikrokroků, nelze již moc účinně přizpůsobovat proud různým typům motorů a nelze také použít moc vysoké napájecí napětí, protože pak již nemáš dostatečný počet úrovní PWM pro regulaci. Leda použít 16bitové PWM. Přitom právě to vyšší napětí je klíčové pro získání vyšších rychlostí motoru pro přejezdy montáže (tedy pokud jde o řízení dalekohledu). Také je třeba zvládnout mechanismus postupného snižování počtu mezikroků a přechod na half-step mód při vyšších rychlostech. Jinak jde dolů moment a maximální rychlost motoru.
Unipolární režim pro tuto aplikaci vůbec nedoporučuji. Motor je pak dost neefektivně využitý.
A ještě jedna věc. Doporučuji jít frekvencí PWM-ka nad 20KHz, chod je pak daleko klidnější a tišší, bez zvukových efektů.
http://hvbo.cz/foto_astronomy_cz, http://hvbo.cz, e-mail: martin(*)myslivec(a)volny(*)cz, Dobson 400mm, N400/1600, Refraktor Borg 77ED, Montáž EQ6, Hvězdárna s montáží vlastní výroby, kamery MII C3-61000, ZWO ASI 1600MM
- MMys
- Příspěvky: 18311
- Registrován: 02. 01. 2001, 05:03
- Bydliště: Běleč nad Orlicí
- Věk: 52
- Kontaktovat uživatele:
problém s mikrokrokovaním
Tvar křivky proudu se navolí v konfiguraci jednotky pro konkrétní motor (metodou pokus-omyl, prostě změnou tvaru až daný motor jede hladce). A spolu s další hromadou parametrů pro konkréntní montáž dalekohledu se uloží do flash paměti řídící jednotky.
Ta aplikace vypadá takto:
http://hvbo.cz/foto_astronomy_cz/AstroF ... _setup.jpg
A zde je návod s popisem, co umí řídící jednotka:
http://hvbo.cz/foto_astronomy_cz/AstroF ... ver2_8.pdf
Udělat dobrý a přesný budič krokových motorů s mikrokrokováním, a navíc navázaný na astro-aplikaci, je docela dlouhodobá záležitost. Tento systém jsem tvořil přes rok. Nyní připravuji modifikaci s výkonnějšími budiči (až 4A/fázi) a s lepším designem ručního ovladače. Ale času je málo, jako vždy
P.S. Ještě jsem trochu učesal a doplnil první narychlo psaný příspěvek.
Ta aplikace vypadá takto:
http://hvbo.cz/foto_astronomy_cz/AstroF ... _setup.jpg
A zde je návod s popisem, co umí řídící jednotka:
http://hvbo.cz/foto_astronomy_cz/AstroF ... ver2_8.pdf
Udělat dobrý a přesný budič krokových motorů s mikrokrokováním, a navíc navázaný na astro-aplikaci, je docela dlouhodobá záležitost. Tento systém jsem tvořil přes rok. Nyní připravuji modifikaci s výkonnějšími budiči (až 4A/fázi) a s lepším designem ručního ovladače. Ale času je málo, jako vždy
P.S. Ještě jsem trochu učesal a doplnil první narychlo psaný příspěvek.
http://hvbo.cz/foto_astronomy_cz, http://hvbo.cz, e-mail: martin(*)myslivec(a)volny(*)cz, Dobson 400mm, N400/1600, Refraktor Borg 77ED, Montáž EQ6, Hvězdárna s montáží vlastní výroby, kamery MII C3-61000, ZWO ASI 1600MM
- MMys
- Příspěvky: 18311
- Registrován: 02. 01. 2001, 05:03
- Bydliště: Běleč nad Orlicí
- Věk: 52
- Kontaktovat uživatele:
problém s mikrokrokovaním
Ještě jednou jsem se znova díval na ten obrázek vlevo, a stále mi to připadá nějaké divné. To snad není ani bipolar ani unipolar. Ještě nad tím budu spekulovat.
Tedy obrázek s průběhy proudu fázemi (třetí shora) a průběhy PWM (čtvrtý shora) vypadá jako bipolar, OK.
Ale druhý obrázek shora s polaritami + a - mi nějak nesedí. Podle toho to vypadá, že v první čtvrtině cyklu vůbec nebudíš druhou fázi (oba konce 2a 2b na -). V druhé čtvrtině cyklu pak zase první (oba konce 1a 1b na -). A pak znova to samé. Nechápu asi, co sji tím obrázkem myslel...
Přitom z toho čtvrtého je jasné, žes to myslel dobře. Vždy na střídačku jeden konec k zemi, druhý PWM, a pak zase obráceně, a v druhé fázi to samé, ale posunuté.
Nemělo by to být takto ?
krok 1 2 3 4
1a + + - -
1b - - + +
2a - + + -
2b + - - +
a tam kde je +, tak tam pak při mikrokrokování aplikuješ PWM.
Tedy obrázek s průběhy proudu fázemi (třetí shora) a průběhy PWM (čtvrtý shora) vypadá jako bipolar, OK.
Ale druhý obrázek shora s polaritami + a - mi nějak nesedí. Podle toho to vypadá, že v první čtvrtině cyklu vůbec nebudíš druhou fázi (oba konce 2a 2b na -). V druhé čtvrtině cyklu pak zase první (oba konce 1a 1b na -). A pak znova to samé. Nechápu asi, co sji tím obrázkem myslel...
Přitom z toho čtvrtého je jasné, žes to myslel dobře. Vždy na střídačku jeden konec k zemi, druhý PWM, a pak zase obráceně, a v druhé fázi to samé, ale posunuté.
Nemělo by to být takto ?
krok 1 2 3 4
1a + + - -
1b - - + +
2a - + + -
2b + - - +
a tam kde je +, tak tam pak při mikrokrokování aplikuješ PWM.
http://hvbo.cz/foto_astronomy_cz, http://hvbo.cz, e-mail: martin(*)myslivec(a)volny(*)cz, Dobson 400mm, N400/1600, Refraktor Borg 77ED, Montáž EQ6, Hvězdárna s montáží vlastní výroby, kamery MII C3-61000, ZWO ASI 1600MM
problém s mikrokrokovaním
Druhý obrázok - s plusmi a mínusmi - je klasické riadenie bipoláru, jeho súvis s ďalšími obrázkami je
len informatívny, ak by som meral veľmi rýchlo RMS hodnotu, tak v maxime PWM = 100 % duty, by som nameral nejakú plus hodnotu. V skutočnosti nič nezapínam ani nevypínam, PWM ide kontinuálne,
problematické miesto, keď 1a a 1b je mínus, je totožný s Tvojim obrázkom ideálneho priebehu, keď
sa mení smer prúdu, jedno PWM ide do nuly a druhé vzápätí štartuje. Inak to krokovanie, ktoré si opísal v poslednom príspevku som tiež rozvíjal do mikrokroku, samozrejme s tými istými problémami.
Ale teraz už mi je jasné, že to ani nemohlo dopadnúť inak. Skúsim si vymyslieť nejaký sofistikovanejší priebeh, tá simulacia bol dobrý nápad. To všetko majú nasvedomí tie application notes
, nikde nelinearitu ani nespomenuli, tak mi treba.
len informatívny, ak by som meral veľmi rýchlo RMS hodnotu, tak v maxime PWM = 100 % duty, by som nameral nejakú plus hodnotu. V skutočnosti nič nezapínam ani nevypínam, PWM ide kontinuálne,
problematické miesto, keď 1a a 1b je mínus, je totožný s Tvojim obrázkom ideálneho priebehu, keď
sa mení smer prúdu, jedno PWM ide do nuly a druhé vzápätí štartuje. Inak to krokovanie, ktoré si opísal v poslednom príspevku som tiež rozvíjal do mikrokroku, samozrejme s tými istými problémami.
Ale teraz už mi je jasné, že to ani nemohlo dopadnúť inak. Skúsim si vymyslieť nejaký sofistikovanejší priebeh, tá simulacia bol dobrý nápad. To všetko majú nasvedomí tie application notes
- MMys
- Příspěvky: 18311
- Registrován: 02. 01. 2001, 05:03
- Bydliště: Běleč nad Orlicí
- Věk: 52
- Kontaktovat uživatele:
problém s mikrokrokovaním
OK, takže problém je asi jasný. Právě to mnou napsané poslední krokování poskytuje nejvyšší moment a hlavně velkou tuhost, a tím i stabilitu polohy v mikrokroku. Pro pohon montáže doporučuji použít právě tohle. Tedy pokud nevadí vyšší odběr. Až vyřešíš ten problém s nelinearitami, bude to ono 
Pokud se jedná o pohon napájený z 12V akumulátoru (třeba auto) osvědčilo se mi na DE motoru třeba po několika sekundách nečinnosti snížit proud třeba na 30%, v obou fázích stejným poměrem. Poloha hřídele tak zůstane zachovaná, a odebírá to méně proudu. Po dalším povelu k pohybu se obnoví plné buzení.
Pokud se jedná o pohon napájený z 12V akumulátoru (třeba auto) osvědčilo se mi na DE motoru třeba po několika sekundách nečinnosti snížit proud třeba na 30%, v obou fázích stejným poměrem. Poloha hřídele tak zůstane zachovaná, a odebírá to méně proudu. Po dalším povelu k pohybu se obnoví plné buzení.
http://hvbo.cz/foto_astronomy_cz, http://hvbo.cz, e-mail: martin(*)myslivec(a)volny(*)cz, Dobson 400mm, N400/1600, Refraktor Borg 77ED, Montáž EQ6, Hvězdárna s montáží vlastní výroby, kamery MII C3-61000, ZWO ASI 1600MM