Tani Enkoder
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 919
- Rejestracja: 13 maja 2005, 22:24
- Lokalizacja: Wawa
chyba nie o to mi do końca chodziło,
jest mnożnik x1, jak częstotliwość wzrasta i zbliża sie do granic możliwości LPT, wtedy załącza sie mnożnik x 10 a częstotliwość z LPT maleje 10 razy. a silnik kręci sie cały czas z ta sama prędkością, i mamy spory zapas częstotliwości.
ewentualnie włączyć mnożnik tylko wtedy jak mamy ruchy szybkie, dokładność wtedy nie jest wymagana zbyt duża, liczy sie tylko czas przejścia narzędzia na pozycje. a jak mamy obróbkę to działamy bez mnożnika z większa precyzją.
Jeśli gadam jakieś głupoty to wybaczcie..
jest mnożnik x1, jak częstotliwość wzrasta i zbliża sie do granic możliwości LPT, wtedy załącza sie mnożnik x 10 a częstotliwość z LPT maleje 10 razy. a silnik kręci sie cały czas z ta sama prędkością, i mamy spory zapas częstotliwości.
ewentualnie włączyć mnożnik tylko wtedy jak mamy ruchy szybkie, dokładność wtedy nie jest wymagana zbyt duża, liczy sie tylko czas przejścia narzędzia na pozycje. a jak mamy obróbkę to działamy bez mnożnika z większa precyzją.
Jeśli gadam jakieś głupoty to wybaczcie..
Tagi:
-
- Lider FORUM (min. 2000)
- Posty w temacie: 7
- Posty: 4017
- Rejestracja: 15 lis 2006, 22:01
- Lokalizacja: Tarnobrzeg
Pomysł dobry ale takiego programu to raczej jeszcze nie napisali na PC. Ponadto musisz informować wszystkie sterowniki, jednocześnie lub osobno o przejściu na mnożenie. Powiedzmy, że zaprojektowałeś sterownik i sterujesz go sygnałami ENABLE, STEP, DIR, MULTI i ograniczenie prądu, teraz trzeba nad tym zapanować.
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 919
- Rejestracja: 13 maja 2005, 22:24
- Lokalizacja: Wawa
w somie wszystkie sterowniki mogłyby by być informowane razem, po prostu jak ruchy szybkie to odpalamy mnożnik, modyfikacja programu tez nieduża, chociaż konieczna. hmm a moze w machu jakies makro napisać które by reagowało na funkcje G0 ( albo G! - nigdy nie pamietam) a o ograniczeniu prądu to nie myślałem bo to do krokowców, ja wole silniczki DC.
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 988
- Rejestracja: 19 cze 2004, 23:22
- Lokalizacja: lodz
wszelakie mnozenie kroku sygnalu z enkodera powoduje wzrost bledu razy ten mnozik enkoder trzeba odczytywac w stosunku 1:1 jesli chcemy zwiekszyc/zmniejszyc dokladnosc a mamy enkoder na wale silnika stosujemy przelozenie w poloczeniu silnik sruba napedowa
mnozenie kroku z enkodera jest bledem dlatego ze tracimy dokladnosc wiec od razu mozna przejsc na silniki krokowe nie tedy droga
przykladowo
programowo ogrniczymy sygnal z enkodera dzielac go przez 10 przy zalozeniu 100 kresek (impulsow)=100mm za pomoca ilcznika efektem tego bedzie to ze silnik pokona dluzsza droge i ew wpadnie w oscylacje wokol polozenia rownowagi lub zostanie z bledem po przeroczeniu zadanej pozycji dzieje sie tak dlatego ze w momencie "osiagniecia pozycji" uklad uzna ze wykonal sterowanie prawidlowo a naprawde przejedzie dalej ale ze wzgledu na dzielenie przez 10 poki nie pokona kolejnych 10 impulsow uzna ze znajduje sie w polozeniu zadanym
analogicznie dla ukladu z mnozeniem z tym ze wpadnie w oscylacje wokol "polozenia rownowagi"
enkoder czytamy w stosunku 1:1 dalsza obrobka przesuniecia moze uwzgledniac operacje dopasowania np: w celu uwzglednienia przekladni
mnozenie kroku z enkodera jest bledem dlatego ze tracimy dokladnosc wiec od razu mozna przejsc na silniki krokowe nie tedy droga
przykladowo
programowo ogrniczymy sygnal z enkodera dzielac go przez 10 przy zalozeniu 100 kresek (impulsow)=100mm za pomoca ilcznika efektem tego bedzie to ze silnik pokona dluzsza droge i ew wpadnie w oscylacje wokol polozenia rownowagi lub zostanie z bledem po przeroczeniu zadanej pozycji dzieje sie tak dlatego ze w momencie "osiagniecia pozycji" uklad uzna ze wykonal sterowanie prawidlowo a naprawde przejedzie dalej ale ze wzgledu na dzielenie przez 10 poki nie pokona kolejnych 10 impulsow uzna ze znajduje sie w polozeniu zadanym
analogicznie dla ukladu z mnozeniem z tym ze wpadnie w oscylacje wokol "polozenia rownowagi"
enkoder czytamy w stosunku 1:1 dalsza obrobka przesuniecia moze uwzgledniac operacje dopasowania np: w celu uwzglednienia przekladni
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 5
- Posty: 408
- Rejestracja: 10 wrz 2004, 09:40
- Lokalizacja: Kielce
Ma ktoś doświadczenie z magnetycznymi, podobno łatwiej se zamontować na osi, nie wymagają sprzegiełka
http://www.automatykab2b.pl/index.php?o ... &Itemid=34
http://www.allegro.pl/item464456111_enk ... _nowy.html
http://www.automatykab2b.pl/index.php?o ... &Itemid=34
http://www.allegro.pl/item464456111_enk ... _nowy.html
-
- Lider FORUM (min. 2000)
- Posty w temacie: 7
- Posty: 4017
- Rejestracja: 15 lis 2006, 22:01
- Lokalizacja: Tarnobrzeg
Nic podobnego. Mnożnik kroku to funkcja czysto programowa. Dokładność regulacji (ustalania pozycji wału silnika) jest identyczna jak przy mnożniku x1. Sterownik nie pomija ani jednego zbocza z enkodera. Powiedzmy, że enkoder ma 1000 imp/obr, włączamy mnożnik kroku (STEP) x10. Na każdy impuls STEP sterownik "widzi" ich 10 i wał będzie wykonywał kolejno ruch od pozycji 0 przez 10, 20, 30 itd. Jednym słowej mnożnik kroku to dzielnik rozdzielczości enkodera, który aktualnie zmniejszył swoją wartość z 1000 do 100 bez utraty jakości regulacji.chomikaaa pisze:mnozenie kroku z enkodera jest bledem dlatego ze tracimy dokladnosc wiec od razu mozna przejsc na silniki krokowe nie tedy droga
przykladowo
programowo ogrniczymy sygnal z enkodera dzielac go przez 10...
Nasuwa się pytanie - w jakim celu wymyślili mnożnik?
Powiedzmy, że w naszej maszynie mamy śrubę o skoku 5mm i enkoder 5000 imp/obr. Zakładając maksymalną częstotliwość STEP równą 50kHz osiągniemy jedynie posuw 3m/min. Kiedy włączymy mnożnik x10 uzyskamy 30m/min.
To wszystko.
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 988
- Rejestracja: 19 cze 2004, 23:22
- Lokalizacja: lodz
Napisalismy to samo ja pisalem o mnozeniu sygnalu z enkodera, a kolega sygnalu sterujacego.
Pisze to dlatego ze stworzylem algorytm sterowania pozycji i pradu w asm i gdy odczytywalem enkoder za pomoca timera, inkrementujac licznik przesuniecia co np 40, 4 imp z enkodera ktore dawaly jeden krok przesuniecia w programie (enkoder 200imp odczytywane jedno zbocze odczytywany jeden kanal) uklad przejezdzal zadana pozycje, najlepsze sterowanie uklad osiagnol w przypadku, gdy jedno zbocze = jeden krok przesuniecia ukladu.
Reasumujac odnioslem sie do postow kolegi rockykon odgrzewajac temat i majac nadzieje ze komus sie to przyda a korzystalem z wlasnych doswiadczen.
Projekt pisalem na 80c517a, teraz przymierzam sie do dspicow.
Temat uwazam za bardzo ciekawy.
Pisze to dlatego ze stworzylem algorytm sterowania pozycji i pradu w asm i gdy odczytywalem enkoder za pomoca timera, inkrementujac licznik przesuniecia co np 40, 4 imp z enkodera ktore dawaly jeden krok przesuniecia w programie (enkoder 200imp odczytywane jedno zbocze odczytywany jeden kanal) uklad przejezdzal zadana pozycje, najlepsze sterowanie uklad osiagnol w przypadku, gdy jedno zbocze = jeden krok przesuniecia ukladu.
Reasumujac odnioslem sie do postow kolegi rockykon odgrzewajac temat i majac nadzieje ze komus sie to przyda a korzystalem z wlasnych doswiadczen.
Projekt pisalem na 80c517a, teraz przymierzam sie do dspicow.
Temat uwazam za bardzo ciekawy.
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 988
- Rejestracja: 19 cze 2004, 23:22
- Lokalizacja: lodz
1 linijka chyba masz chyba na mysli cos takiego a+b+c ==> p + i + d
algorytm pid to cos wiecej niz to co powyzej
sprawa nie jest prosta bo do danego zastosowania struktura wyglada roznie
inaczej dla regulacji pozycji, predkosci, pradu nie wspominajac o zatrzymaniu akcji calkowania w chwili nasycenia integratora itp
mnie struktura regulacji pozycji pid i pradu pi zajela w asm ponad 700 lini kodu wiec twierdzenie ze w c wystarczy dodac trzy rzeczy to ciut za malo
czy kolega pisal takie algorytmy obojetnie w jaki jezyku mozemy wymienic sie doswidczeniami?
algorytm pid to cos wiecej niz to co powyzej
sprawa nie jest prosta bo do danego zastosowania struktura wyglada roznie
inaczej dla regulacji pozycji, predkosci, pradu nie wspominajac o zatrzymaniu akcji calkowania w chwili nasycenia integratora itp
mnie struktura regulacji pozycji pid i pradu pi zajela w asm ponad 700 lini kodu wiec twierdzenie ze w c wystarczy dodac trzy rzeczy to ciut za malo
czy kolega pisal takie algorytmy obojetnie w jaki jezyku mozemy wymienic sie doswidczeniami?
-
- Lider FORUM (min. 2000)
- Posty w temacie: 7
- Posty: 4017
- Rejestracja: 15 lis 2006, 22:01
- Lokalizacja: Tarnobrzeg
Tak jest w istocie i nie trzeba daleko szukać np.:chomikaaa pisze:1 linijka chyba masz chyba na mysli cos takiego a+b+c ==> p + i + d
http://www.elektroda.pl/rtvforum/viewto ... 3fd9c3062a
Można pisać w asemblerze kiedy liczby są małe 1 czy 2B, przy dłuższych to nieporozumienie.
Oczywiście kompilator C przyjmuje kod w asemblerze, jeśli Kolega potrzebuje nadzorować jakieś flagi ale matematyka dużych liczb to C lub inny język wyższego rzędu.
Bardzo możliwe, że po kompilacji wyjdzie 700 linii kodu.