A300

Odpovědět
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

5. 12. 2009, 10:55

Omlouvam se radkovi. Nechci rict, ze vsichni jsou blbci, jen ja tomu rozumim. Jen se snazim rict, ze nazor ze to je uplne easy jsem mel na zacatku, protoze doposud jsem pouzival krokace, nebo hotove drivery. Nyni kdy jsem se rozhodl udelat si driver sam, jsem zjistil, ze bud se smirim s nizkou kvalitou, nebo si hold asi maknu.

Jinak A300 je velmi chytre navrzeny driver a moc se mi libi. Troufnu si tvrdit ze 100nasobne predci bezne drivery postavene na 8bitovych CPU. Je v tom kus geniality, kterou bych takto nedokazal zpracovat. Resp. bych si netroufl takto beznymi obvody jako jsou operacni zesilovace vyjadrit tak slozity proces jako je rizeni DC motoru. Protoze bych ovsem stejnym zpusobem nedokazal v praci tohoto cloveka pokracovat, tak jsem provedl reverzni engenering a pochopit fungovani te schemy. Nakonec jsem zjistil, ze ma pres nesporne kvality A300 par nedostatku, ktere nejsou zasadni, ale ja jsem strasny stoural a asi bych mu je nedokazal prominout. Proto jsem se rozhodl vse hodit do haje. Vzit Matlab, tabulky, informace co mam jeste ze skoly a zacit simulovat. Postupne jsem zjistoval ze faktory ktere se zprvu zdali zanedbatelné mohou byt za urcitich situaci docela fatalni.

Jinak pro A300 klobou dolu.
pavel-gravos
Příspěvky: 318
Registrován: 27. 1. 2008, 4:30

5. 12. 2009, 2:26

To je nejaka divna matematika, nechapu:
http://xy41xx.stcomp.cz/kruh.pdf
Prvni rovnice v poradku, po transformaci ale pri zkousce dosazeni za X
vyjde jiny Y nez v prvni rovnici.
Mejme R=10, X=6 vyjde Y=8 = OK
po prvni transformaci ale vyjde Y=sqrt(100-16)=9.1651513
Jak to? Kdyz se tohle ucilo, asi jsem chybel.
Pavel
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

5. 12. 2009, 2:34

pavel-gravos píše:To je nejaka divna matematika, nechapu:
http://xy41xx.stcomp.cz/kruh.pdf
Prvni rovnice v poradku, po transformaci ale pri zkousce dosazeni za X
vyjde jiny Y nez v prvni rovnici.
Mejme R=10, X=6 vyjde Y=8 = OK
po prvni transformaci ale vyjde Y=sqrt(100-16)=9.1651513
Jak to? Kdyz se tohle ucilo, asi jsem chybel.
Pavel
Hehe. Jeden byl pozorny. Uz jsem si vzpomel co jsem tam upravil. Ja totiz ten algoritmus opravil tak aby nezaokrouhloval, ale odstranil ty jednobodove spicky na zacatku a konci. Ale pokud to protnes kruhem, je to pekny kruh. Chyba se projevi akorat nakonci a zacatku, ale vysledek, je kruh je ze vsech stran stejny. Chyba nepatrna. Jedna se o 1px. Ale je videt ze jsi pozorny.
ledvinap
Příspěvky: 793
Registrován: 8. 11. 2009, 4:40
Bydliště: Plzen

5. 12. 2009, 5:22

Goody: Nejak mi prijde, ze resis dilci problem, a zbytecne vymyslis reseni, ktere je zbytecne predimenzovane, ale ostatni problemy neresi.

Jaky v simulacich pouzivas model motoru?

Realne motor ma nejaky (nezanedbatelony) moment sertvacnosti a nejakou mechanickou pevnost. Civky vinuti maji nezanedbatelnou indukcnost. Z toho ti vyjdou mechanicke casove konstanty nekde v milisekundach (i pro hodne maly motor), elektricke mozna o neco vys. PID regulator se pak tohle snazi resit, existuji i lepsi ridici strategie (pokud to dobre chapu, tak se docela vyplati vytvorit model motoru a ten do rizeni zahrnout. Ale kybernetika mi nikdy moc nesla)

Ty data z encoderu muzou byt problem. Sice to vychazi na 15krpm pro enkoder 2000pulzu/ot ale dejme tomu. Sice by to asi i tim atmelem slo ulitat, ale v tomhle je logika lepsi.

58k PWM je podle me dost zbytecne.Motor bude mit nekde kolem 1mH, frekvence mimo slysitelnou oblast by mela stacit. A usetri se na ztratach v budici vykonovych prvku. Rizeni v ramci jednoho PWM kroku je vzhledem k mechanickym vlastnostem motoru dost zbytecne.

AT90PWM3 ma v PSC 4bit zvyseni rozliseni, pro 16 kroku se distribuuje chyba. Hodiny umi z pll na 64mhz. Takze rozliseni 11+4 bit na 32kHZ.

Vyrovnavani PWM podle zateze nejak nechapu. Proste pres PID resim proud podle chyby mezi pozadovanou a aktualni pozici. Pokud pouziju neco lepsiho nez PID, tak by to mozna mohlo pomoct. Ale zatez motoru poznam tak, ze se mi zacne opozdovat, takze zvysim proud. Opacne pri snizeni zateze.

Upravu integracniho clenu take nejak nechapu. Integracni clen se v PID pouziva pro vyrovnani zbytkove chyby. Podle ceho by se ta konstanta mela menit?

Je fakt, ze zrovna ten atmel muze byt v necem na hrane, na nektere aspekty rizeni by se spis hodil nejaky DSP (pak neni problem resit dumyslenejsi filtry), na neco se hodi logika (overcurrent blanking, constant-off rizeni proudu), ale spostu veci se nejsnaz resi na mikru.

Pro atmel vyrazne hraje jeho nizka cena a dostupnost.

Docela elegantne to resi Mesa, do FPGA maji naimplementovany procesor, na kterem jedou vetsinu a logiku pouzivaji jen na veci, na ktere se hodi.
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

5. 12. 2009, 7:56

Ted jsme dojeli domu, takze v kratkosti. Hledal jsem neco male. Do 50K hradel bych dal sotva procesor a jeste bych potreboval externi ram a flash. Delam to. Pouzivam bud ARM emulaci, nebo Microblaze, ale na ten uz potrebuji 200K hradel a to by dost posunulo pouzitelny obvod. Cenu bych prezil ale pajet minimalne 208Haxen se mi nechce. Staci tech 144 :)) PWM jde az do 58Khz kuli 300kstep/sec coz je 75kcelokroku/sec. Kde je strata mala, protoze doba rozevreni je dlouha a potrebuji rychlou odezvu na zmeny. Standartne jedu na polovine. V nizkych otackach bych sel jeste niz, ale uz by to piskalo. Mimo to ARM od atmelu koupim jiz za 80Kc s 64K Rom, coz by bylo vice jak dost na vse okolo, takze cena hradel je dramaticky vetsi jak toho procesoru, ram a flash? To se ti zda opravdu tak optimalni takto temi hradli plytvat ?
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

5. 12. 2009, 8:12

Jeste k tomu XC2S50. Lepsi by bylo pouzit XC3S50. Je levnejsi a da se sehnat i 100pin, ale nemam ho v sufliku. Ale presyntetizovat to by nebyl problem. Simulaci delam MATLABU. Odezva motoru je opravdu pomala a prave proto je ten integracni clen tak nutny, protoze velmi zmekci chovani. Resp. zarovna se to vyrazne plynuleji. A tech 300k impulzu za 1/s jsem si nevycucal s prstu. Kamarad co ma CNC ma limil 380k step/s jako limitni hodnotu. Bezne tak 250kstep/s. Setrvacnost samozrejme resim, ale tam jedine co pro vec mohu udelat je brzdit a zase brzdit. O to se mi ale znovu stara integracni clen, protoze jak se dostane do zaporu zacne brzdit, jinak pouze snizi stridu PWM. Proste je to vse mekci. Dale uz to neni veci toho drive motoru, ale toho ridiciho systemu. Ten jiz mam hotov na ARM a je tam vse pro 4 osy vcetne bezierovych krivek. Rozjezdu a dojezdu motoru s vazbou na nasledujici 3 kroky, tak aby motor nebrzdil zbytecne, kdyz nasledujici krok vyrazne nezmeni pohyb motoru, ale ten uz jsem delal nekdy pred 5 lety. Asi budu vypadat jako debil, ale nevim co je PID. Kazdopadne ten integracni clen je na vyrovnani nizsi chyby. Navrhl jsem logiku (to uz jsem tam psal), ktera vypocita podle rychlosti/proud zavislost. Pokud se zacnu lisit, zmeni konstantu casu pro integracni clen. Tim zacne rychleji reagovat, nebo pomaleji. Tim dorovnam chybu podle zateze motoru.

====================================

Jsem debil. Vim co je PID. Jsem se podival na internet a bylo mi jasno. Ve sve podstate ta logika nad integracnim clenem je PID regulator :))) I kdyz po podroblem zamysleni nad PID, to neni uplne klasicky PID. Ma sve specifika v integracnim clenu. Diky kteremu dokazu mnohem hladceji vyhodnotit nasledujici zmenu. Protoze integracni clen zbira temer 15M vzorku/1sec. Od 5Mvzorku/1s uz vliv te regulace nebyl tak intenzivni. Ale vyhodnocovat vzorky s nabehem PWM bylo cinilo ten PID velmi nestabilni.
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

5. 12. 2009, 9:00

Jinak logika setrvacnosti rika jasne, ze pokud pustim do step 300Khz, asi nemohu cekat ze chyba v rozjezdu silne nepresvihne, ale od toho si dovolim kradkodobe motor velmi silne pretizit, abych to zminimalizoval. Na druhou stranku jak jsem jiz psal, na to mi slouzi uz ten ARM, kde diky spetne vazbe z toho FPGA dokazu velmi dobre regulovat krivky rozjezu a brzeni. To uz ovsem neni ukol pro FPGA, ale pro interpolacni logiku, ktera se mi postara o to, aby regulovala celkovou rychlost, podle nejpomalejsiho prvnu a prispusobit ty ostatni. Nakonec drive slepe posloucha svoje step/dir a carovat asi umet nebude.
ledvinap
Příspěvky: 793
Registrován: 8. 11. 2009, 4:40
Bydliště: Plzen

5. 12. 2009, 9:32

Atmel jsem myslel tak, ze za par korun by to mohl ubehat. Takze ma cenu jit touto cestou.
A problem spis vidim v tom, ze ridici logika stejne musi udelat vetsinu prace (vystupem bude vzdy nejaka spojita rychlost).
Driver jen vidi odchylku a musi je nejake rozumne rychle kompenzovat. Ale rozumne rychle je par u realneho motoru v radu desetin milisekundy, dal uz bude prevazovat sertvacnost a dalsi mechanicke vlastnosti motoru.

Prijde mi rozumne zvolit nejakou dostatecne vysokou frekvenci, na ktere se bude regulace provadet. A z te frekvence pak vyjdou pozadavky na vykon.

Nekde jsem videl reseni 16k regulace proudu/kroutaku, 8k rychlost a 4k pozice. A podle clanku to bylo vic nez dost. (pri posunu 20m/min je pro 4k posun 0.04mm na krok)
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

5. 12. 2009, 9:46

ledvinap píše:Atmel jsem myslel tak, ze za par korun by to mohl ubehat. Takze ma cenu jit touto cestou.
A problem spis vidim v tom, ze ridici logika stejne musi udelat vetsinu prace (vystupem bude vzdy nejaka spojita rychlost).
Driver jen vidi odchylku a musi je nejake rozumne rychle kompenzovat. Ale rozumne rychle je par u realneho motoru v radu desetin milisekundy, dal uz bude prevazovat sertvacnost a dalsi mechanicke vlastnosti motoru.

Prijde mi rozumne zvolit nejakou dostatecne vysokou frekvenci, na ktere se bude regulace provadet. A z te frekvence pak vyjdou pozadavky na vykon.

Nekde jsem videl reseni 16k regulace proudu/kroutaku, 8k rychlost a 4k pozice. A podle clanku to bylo vic nez dost. (pri posunu 20m/min je pro 4k posun 0.04mm na krok)
Kde padlo, ze se to vyrovna za kratsi cas? Podstata toho jemneho vzorkovani je v tom, ze se to vyrovna na 100%. Tj. nezareaguji jako debil a nepretahnu, Proste co smyslem toho jemneho vzorkovani je odhad vyvoje STEP, ktery se taky podili na zmene chyby. A to se muze dit velmi rozlicne i rychleji jak PWM. Muj pokus spocival v simulaci 300khz signalu. Tj pripojit okamzite a podivat se co to udela, odpojit a podivat se co to udela a smyslem bylo, aby chyba byla co nejmensi. Dale privest signal 3Khz a aby motor okamzite najel, ale neskocil jako kokot. Od toho souvisi zmena doby PWM. Jinak zatim tu opravdu melu blbosti. Prvne potrebuji ten motor a pak zjistim nakolik simulace realne vystihla praxi. Ale to uz jsem taky psal. Ze zatim vim o tom prd.

Jinak me vyslo ze rozumne hodnoty zavisi od situace a proto ani jednu hodnotu nemam stalou. To bylo na zacatku, kdyz mi jeste stacilo CPLD. Moje logika ma s matematikou pouze cast. Zbytek jsou empericky urcene metody pokus omyl. Zatim jsem nasel neco co vypada slibne a ted uz to rychle sehnat. Jedine co jsem mohl vyzkouset byli ty IGBT tranzistory, protoze tech tu jeste mam 10Ks. A jejich budice, kterych tu mam tri typy. Jeden pouze HI, druhej HI/LO a treti s SD.
ledvinap
Příspěvky: 793
Registrován: 8. 11. 2009, 4:40
Bydliště: Plzen

5. 12. 2009, 10:51

Treba tady je spice model DC motoru : http://www.ecircuitcenter.com/Circuits/ ... _model.htm (nezkousel jsem, je to prvni vysledek z googlu). Myslim, ze pro realnou praxi bohate staci udrzet pozicni odchylku v setinach milimetru. Podle toho bych hledal reseni...
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

6. 12. 2009, 12:17

ledvinap píše:Treba tady je spice model DC motoru : http://www.ecircuitcenter.com/Circuits/ ... _model.htm (nezkousel jsem, je to prvni vysledek z googlu). Myslim, ze pro realnou praxi bohate staci udrzet pozicni odchylku v setinach milimetru. Podle toho bych hledal reseni...
Mno nevim, ale ja prvni co mi vypadlo na simulaci DC motoru pro matlab je neco uplne jine :))
http://www.mathworks.com/matlabcentral/ ... otor-model

a jinak me velmi pomohlo toto :))

http://host.nigde.edu.tr/sayasun/docume ... lished.pdf
snowi
Příspěvky: 122
Registrován: 7. 10. 2006, 7:06
Bydliště: Česká Třebová

11. 12. 2009, 8:34

to goody

Omlouvám se, že se vměšuju do tématu, jaký SPICE Soft. používáš pro simulace v elektronice? Nějak si nemůžu vybrat.

Díky
AcemanLB
Příspěvky: 564
Registrován: 11. 11. 2008, 8:53
Bydliště: Liberec
Kontaktovat uživatele:

13. 1. 2010, 11:30

Ahoj lidi, poskytne někdo A300 eagle data?
AcemanLB
Příspěvky: 564
Registrován: 11. 11. 2008, 8:53
Bydliště: Liberec
Kontaktovat uživatele:

21. 10. 2011, 4:37

Ahoj lidi tak už jsem odladil fotocestu a jdu do výroby tohoto driveru. Jen bych měl pár dotazů :) Mám tady jen jednostranné desky, myslíte, že je možné je použít místo dvoustranné? Jen slepit a pak prokovit? Jak to potom propojit s PC? Mám oddělovací desku od pana Maczaka a nebo oddělovací desku z CNCshopu, půjde to na to napojit? Zatím mám v plánu jen testy na ose X. Osy Y a Z pojedou prozatím na krokáčích. Je to vůbec možné to nějak zapojit? Nebo musím něco dalšího pořídit?

Jinak mám tady servo Panasonic DC servomotor s encoderem typ: TS1980
Uživatelský avatar
pájač
Příspěvky: 1143
Registrován: 28. 1. 2008, 8:35
Bydliště: Levice

21. 10. 2011, 5:53

Nad zlepením dvoch dosiek ani neuvažuj , natož s ich prekovením. Obojstrannú dosku v pohode kúpiš v predajni so súčiastkami, prekovovať netreba , stačí ak súčiastku zaletuješ na oboch stranách. Oddelovacie dosky ti s týmto driverom v pohode pôjdu , akurát premostíš vstupné optočleny driveru.
Ináč tento driver má optooddelenie , takže ani oddelovasia doska ti netreba.
Nemáš CNC - nič neznamenáš.
30.01.10 pokusne spustené CNC. Neviem, ako som mohol doteraz bez neho žiť. ><((((º>
http://www.fishpol.sk
Odpovědět

Zpět na „Servomotory“