Sterownik na ST L6474

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC

Autor tematu
jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 43
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#31

Post napisał: jarekk » 26 wrz 2012, 18:48

lu-dzik pisze:Jakość i stosunek ceny do jakości jest wg mnie dobry.
Kiedyś byli za drodzy i upierdliwi w "obsłudzę". Ale sprawdzę przy następnym zleceniu.
Choć korciło mnie też zamówienie w PCBcart w Chinach ( około 15..20% taniej niż Eurocircuits przy 50 sztukach)



Tagi:


lu-dzik
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 18
Posty: 68
Rejestracja: 24 sie 2012, 12:26
Lokalizacja: Lubuskie

#32

Post napisał: lu-dzik » 28 wrz 2012, 11:12

W przypadku wytwarzania impulsów sterujących mikrokontrolerem, macie jakiś wypróbowany algorytm/sposób?


Autor tematu
jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 43
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#33

Post napisał: jarekk » 28 wrz 2012, 11:22

lu-dzik pisze:wytwarzania impulsów sterujących mikrokontrolerem
O jakie impulse chodzi ??


lu-dzik
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 18
Posty: 68
Rejestracja: 24 sie 2012, 12:26
Lokalizacja: Lubuskie

#34

Post napisał: lu-dzik » 28 wrz 2012, 12:20

Up/Down i direction :) Wczoraj tak przy tym przysiadłem i aby zrobić to dokładnie tzn z rozdzielczością timera, hamowanie, rozpędzanie i jeszcze razy 4 - nie jest tak trywialne jak mogłoby się wydawać.


Autor tematu
jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 43
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#35

Post napisał: jarekk » 28 wrz 2012, 12:33

Ma coś takiego - produkuję dla Piotra Rakowskiego sterowniki do jego maszyn.
Dla p&p sprawa jest prostsza, bo nie trzeba synchronizować osi ze sobą ( jak w CNC).

Generalnie moje rozwiązanie bazuje na przeliczaniu wartości ułamkowych ze stałym krokiem ( zegar 100kHz ) - za każdym razem wychodzi mi czy mam wysterować impouls czy nie.

Ale faktycznie jest to nietrywialne - u mnie skończyło się na 64 bitowej arytmetyce stałoprzecinkowej i obliczeniach na PC w arytmetyce 256 bitowej .

Dla niezależnych osi da się prościej. Możesz tez obejrzeć jedno z moich dzieł dla Macha - http://www.machsupport.com/forum/index. ... 698.0.html
, tam też jest generacjia prostego ruchu ( dla pracy manualnej)


lu-dzik
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 18
Posty: 68
Rejestracja: 24 sie 2012, 12:26
Lokalizacja: Lubuskie

#36

Post napisał: lu-dzik » 28 wrz 2012, 13:28

Jeżeli chodzi o p&p to rozwarzałem aproksymację rozwiązania, stosując regulator PID. Regulator PID jest trywialny obliczeniowo. 3 mnożenia i 2 dodawania - ot cały regulator. Regulator na wejściu ma różnicę położenia zadanego i aktualnego. Na wyjściu mam 2 układy całkujące, Pierwszy całkuje przyspieszenie - otrzymujemy prędkość. Całkując prędkość otrzymuję położenie. I to z powrotem na wejście. Oczywiście wprowadzam ograniczenie przyspieszenia i prędkości. Wszystko na liczbach zmiennoprzecinkowych. Symulacje wykazały, że ruch jest bardzo gładki, jednak nie umiem dobrać współczynników regulatora aby hamowanie było najsilniejsze i do tego bez overshoota. To taka aproksymacja, nie rozwiązanie dokładne. Jednak na szybko coś sklecić byłoby :) Aby powyliczać dokładne współczynniki musiałbym sięgnąć do notatek ze studiów, ale to w tej chwili niemożliwe. W ogóle przeglądając sieć człowiek odświerza sobie rzeczy z którymi miał do czynienia ale dawno zapomniał :)
Zastanawiam się jaką metodą, w jaki sposób kol. jacekk interpolował, że potrzebna była aż tak precyzja?


Autor tematu
jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 43
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#37

Post napisał: jarekk » 28 wrz 2012, 14:07

lu-dzik pisze:Zastanawiam się jaką metodą, w jaki sposób kol. jacekk interpolował, że potrzebna była aż tak precyzja?
Mam coś na kształt rozwiązań z DSP - liczba 64 bitowa reprezentująca zakres 0..1. W tym zakresie operuję ruchem z przyspieszeniami i opóżnieniami. Ale żeby to policzyć dokładnie potrzebuję arytmetyki 2..3 razy dokładniejszej. Inaczej mi się wszystko rozjeżdżało jak wektory miały bardzo dużą różnice ilości kroków ( na poziomie 1: 100 000) i po prostu było słychać :-(

[ Dodano: 2012-09-28, 14:39 ]
Generalnie - przeliczam wszystko na PC i zostają mi tylko proste współczynniki oraz liczniki na targecie - same dodawania.


lu-dzik
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 18
Posty: 68
Rejestracja: 24 sie 2012, 12:26
Lokalizacja: Lubuskie

#38

Post napisał: lu-dzik » 28 wrz 2012, 21:18

Mniej więcej łapię. 100kHz powiadasz. Tą metodą możesz wytwarzać impulsy z rastrem 10us.
Przy takiej częstotliwości taktowania, bardzo gładko powinno być dla małych częstotliwości. A jak wygląda przyspieszanie silnika dla dużych prędkości? Chodzi mi o to że dla 10us mamy częstotliwość 100kHz. Zmniejszamy prędkość o jeden krok - wychodzi 20us=50kHz.
Prędkość dwa razy mniejsza. Rozumiesz do czego zmierzam? Potężne przyspieszenie/opóźnienie.
Dla silnika 200/obr i mikrokrokiem 16 daje to:
10us= 1875 obr/min
20us= 937.5 obr/min
30us= 625 obr/min
40us= 468 obr/min
itd
Przy rastrze 100kHz jaka jest granica użytecznej częstotliwości? Nie umiem sam tego ocenić.
Dodano:
Udało mi się z tym regulatorem. Popatrzyłem trochę po wzorach fizycznych i zdefiniowałem współczynniki tak, że wykres prędkości w czasie jest idealnym trapezem :)


Autor tematu
jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 43
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#39

Post napisał: jarekk » 29 wrz 2012, 19:10

Z tym 100kHz nie jest tak źle - pamiętaj większosć używa Macha lub LinuxCNC które normalnie nie przekraczają tych wartości. Dopieor używanie profesjonalnych serw z dokładnymi enkoderami wymusza większę częstotliwości pracy.

Po co PID skoro akurat trapez da się przeliczyć na PCcie i wysłąć do urządzenia ? Zwłaszcza że zminny przecinek jest obciążajcy ( choć można wziąć Cortexa-M4 z koprocesorem). Ale zmienny przecinek jest zdradliwy z błędami zaokrągleń


lu-dzik
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 18
Posty: 68
Rejestracja: 24 sie 2012, 12:26
Lokalizacja: Lubuskie

#40

Post napisał: lu-dzik » 29 wrz 2012, 21:59

No tak można zastosować mikrokontroler z FPU, jednak FPU w pececie każdy ma niejako "za darmo". Dopóki nie będzie to konieczne, nie będę stosował mikrokonrolera z FPU.

Znalazłem odpowiedź na pytanie o metodę wytwarzania impulsów.
http://yertiz.com/cnc/steppermotor.pdf na str 55 znajduje się softwarowa metoda wytwarzania impulsów w interesujący mnie sposób.
Metoda ma tą zaletę, że nie całkujemy w niej jakiś delt i współczynników. Akumulowane są kroki i indeks prędkości, a czas pomiędzy impulsami jest wprost w tabeli. Współczynniki zmniennoprzecikowe można zmienić na liczby całkowite i uszeregować w wektorze. Sterowanie odpowiednie dla jednej osi. Jak w innym wątku zaznaczyłem, nie potrzebne mi są zsynchronizowane ruchy osi, dlatego algorytm ten zastosuję bez modyfikacji. Po najmniejszej linii oporu :)
Dopisał:
W tym rozwiązaniu kroki pomiędzy poszczególnymi prędkościami są coraz mniejsze im wyższa prędkość czyli tak jak podpowiadała mi intuicja i wzory :)

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”