
Znaleziono 70 wyników
Wróć do „Sterownik serwo DC na STM32F4 / HIP4081A”
- 19 kwie 2013, 23:18
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
Wywaliłem jedno udziwnienie, wprowadziłem i dostroiłem drugie (dynamiczne zmniejszenie członu D przy rzadkich zmianach stanu enkodera). Mam teraz do 6imp. uchybu przy pracy na pusto. Zrobiłem też test taki, że złapałem za wózek X rękami, aż napęd zaczął przesuwać podstawę maszyny po podłodze - w takich ekstremalnych warunkach uchyb mieścił się w 15 impulsach przy prędkościach dochodzących do 80% maksimum 

- 16 kwie 2013, 22:58
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
Sprawdziłem prędkość regulatora w kodzie - okres jest 60us, czyli częstotliwość 16.6(6)kHz.
Przy 1kHz i przesuwie 250mm/s masz reakcję napędu co 0.25mm. To dosyć słabo... Ja nie chcę schodzić poniżej 10kHz - mogę obniżyć się z tych 16 do 10 w zamian za podwyższenie częstotliwości próbkowania enkodera.
Obecnie mam 92kHz z trzykrotnym próbkowaniem każdego kanału - czyli max. częstotliwość zmian stanu pojedynczego wejścia enkodera to 30kHz. W tej chwili już uzyskuję 20kHz, a enkodery mam rzadziutkie (200ppr). Komercyjne sterowniki obsługują nawet do 1MHz, ale niestety nie dam rady tyle wyciągnąć na discovery. Musiałbym własną płytkę z STM32 klepnąć, aby mieć dostępne wszystkie zaawansowane timery.
Przy 1kHz i przesuwie 250mm/s masz reakcję napędu co 0.25mm. To dosyć słabo... Ja nie chcę schodzić poniżej 10kHz - mogę obniżyć się z tych 16 do 10 w zamian za podwyższenie częstotliwości próbkowania enkodera.
Obecnie mam 92kHz z trzykrotnym próbkowaniem każdego kanału - czyli max. częstotliwość zmian stanu pojedynczego wejścia enkodera to 30kHz. W tej chwili już uzyskuję 20kHz, a enkodery mam rzadziutkie (200ppr). Komercyjne sterowniki obsługują nawet do 1MHz, ale niestety nie dam rady tyle wyciągnąć na discovery. Musiałbym własną płytkę z STM32 klepnąć, aby mieć dostępne wszystkie zaawansowane timery.
- 16 kwie 2013, 09:56
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
- 15 kwie 2013, 00:44
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
Kolejna aktualizacja:
Dzisiaj pobawiłem się predykcją - dorzuciłem człon przyśpieszeniowy i usunąłem udziwnienia z PIDa (te udziwnienia były spokrewnione z regulatorem PIV - o ile bez predykcji poprawiały odpowiedź układu, o tyle w obecności tejże zaczęły pogarszać).
Efekt jest niezły, przy ludzkich prędkościach (do 40obr/s) przyśpieszeniach(do 500obr/s^2) mam max. 13 działek uchybu. Przy mniejszych prędkościach jest lepiej (do 10 działek). Dużo więcej nie wyciągnę, bo zwiększając dalej P stracę stabilność, a zwiększyć D nie mogę, bo enkoder ma za mało działek i mam oscylacje związane z kwantyzacją położenia.
Dzisiaj pobawiłem się predykcją - dorzuciłem człon przyśpieszeniowy i usunąłem udziwnienia z PIDa (te udziwnienia były spokrewnione z regulatorem PIV - o ile bez predykcji poprawiały odpowiedź układu, o tyle w obecności tejże zaczęły pogarszać).
Efekt jest niezły, przy ludzkich prędkościach (do 40obr/s) przyśpieszeniach(do 500obr/s^2) mam max. 13 działek uchybu. Przy mniejszych prędkościach jest lepiej (do 10 działek). Dużo więcej nie wyciągnę, bo zwiększając dalej P stracę stabilność, a zwiększyć D nie mogę, bo enkoder ma za mało działek i mam oscylacje związane z kwantyzacją położenia.
- 02 kwie 2013, 11:45
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
Jak na razie człon predykcyjny (feedforward) jest wyłącznie prędkościowy. Nie zrobiłem jeszcze softu do obliczania stałej przyśpieszeniowej silnika, nie było kiedy.
Bład maksymalny - dobre pytanie, jak robiłem testy z sinusem, to przy amplitudzie 1 obrót i częstotliwości 4Hz mieściłem się w 8 impulsach. Co do 6000mm/s^2 to nie wiem, czy silnik tyle wyciągnie - bardzo możliwe, że nie.
Ogólnie PID jest słaby do nagłych zrywów - analitycznie do rzeczy podchodząc, PID osiąga w granicy błąd 0 dla stałej prędkości i stałego obciążenia; ruchu przyśpieszonego PID nie wykonuje bezbłędnie nawet w teorii. Dlatego stosowanie predykcji jest tak ważne i dlatego bez niej osiągi regulatora są marne.
Bład maksymalny - dobre pytanie, jak robiłem testy z sinusem, to przy amplitudzie 1 obrót i częstotliwości 4Hz mieściłem się w 8 impulsach. Co do 6000mm/s^2 to nie wiem, czy silnik tyle wyciągnie - bardzo możliwe, że nie.
Ogólnie PID jest słaby do nagłych zrywów - analitycznie do rzeczy podchodząc, PID osiąga w granicy błąd 0 dla stałej prędkości i stałego obciążenia; ruchu przyśpieszonego PID nie wykonuje bezbłędnie nawet w teorii. Dlatego stosowanie predykcji jest tak ważne i dlatego bez niej osiągi regulatora są marne.
- 29 mar 2013, 10:57
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
Na razie jest 1 egzemplarz i nie sprzedaję go. Koszt produkcji może i do 1000zł bez robocizny dochodzić, nie liczyłem tego dokładnie. Pewnie gdybym miał robić serię, dałoby się ciut taniej, ale przecież nie będę lutował i testował za darmo - a bez testów nie sprzedam, bo nie jestem Chińczykiem
Projektowanie zacząłem w grudniu, więc widać, ile czasu zajmuje taki projekt (jak się go robi po godzinach i ma dwójkę małych dzieci).

- 23 mar 2013, 20:06
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
Yee-haaaa!
Bebechy wsadzone do obudowy:

Silniki wsadzone do maszyny i... działa!
http://youtu.be/5JrQhJOp9z4
http://youtu.be/mpn2YwYFGD4
http://youtu.be/Uxviy14FnFg
Cudowne dźwięki wydawane przez maszynę są efektem kręcenia śrubami Tr10/2 z prędkością 3000rpm
Bebechy wsadzone do obudowy:

Silniki wsadzone do maszyny i... działa!
http://youtu.be/5JrQhJOp9z4
http://youtu.be/mpn2YwYFGD4
http://youtu.be/Uxviy14FnFg
Cudowne dźwięki wydawane przez maszynę są efektem kręcenia śrubami Tr10/2 z prędkością 3000rpm

- 15 mar 2013, 16:08
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
Weronika
Snu mało, jeszcze dziadkowie wpadli - generalnie przez kilka dni nie włączałem nawet kompa żeby maile sprawdzić, nie wspominając o pracy nad softwarem.
Wczoraj miałem bardziej "lajtowy" dzień i powstała obudowa:

Na razie sterownik jeszcze nie został w niej umieszczony, ale nastąpi to niebawem. Jeszcze muszę na starym sterowniku wyciąć redukcje z NEMA23 na moje serwa (które chyba nie są NEMA - rozstaw śrub 56mm, flansza 67mm - ma to jakąś nazwę?).

Wczoraj miałem bardziej "lajtowy" dzień i powstała obudowa:

Na razie sterownik jeszcze nie został w niej umieszczony, ale nastąpi to niebawem. Jeszcze muszę na starym sterowniku wyciąć redukcje z NEMA23 na moje serwa (które chyba nie są NEMA - rozstaw śrub 56mm, flansza 67mm - ma to jakąś nazwę?).
- 05 mar 2013, 18:18
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
http://youtu.be/e84G3QYK1ys
Przebieg testowy - ruch skokowy o 5 obrotów i powrót; następnie 10x ruch o 0.3obr i powrót (krzywe Beziera) oraz na końcu 50 obrotów i powrót (również krzywe beziera) - 1.5s w każdą stronę.
"Krzywe" są krzywymi kwadratowymi w czasie - profil prędkości jest paraboliczny.
Przebieg testowy - ruch skokowy o 5 obrotów i powrót; następnie 10x ruch o 0.3obr i powrót (krzywe Beziera) oraz na końcu 50 obrotów i powrót (również krzywe beziera) - 1.5s w każdą stronę.
"Krzywe" są krzywymi kwadratowymi w czasie - profil prędkości jest paraboliczny.
- 04 mar 2013, 01:22
- Forum: Elektronika CNC
- Temat: Sterownik serwo DC na STM32F4 / HIP4081A
- Odpowiedzi: 164
- Odsłony: 26117
Interfejs programowy w dużej mierze gotowy; wykonywanie programu przez maszynę działa.
Obecnie obsługiwane elementy programu to:
- krzywa beziera
- ustawienie prędkości silnika (zmiana na tryb prędkościowy)
- wł/wył. przekaźnika wrzeciona
- czekaj x sekund
- pauza (czeka na sygnał kontynuacji z komputera)
- odpowiednik G0 - idzie wszystkimi osiami jak najszybciej umie do zadanej pozycji - przed przejściem do następnego punktu prędkość i położenie muszą się zmieścić w zadanej tolerancji.
Działa przesył programu z PC, działa też pobieranie statusu maszyny (wszystkie sensory, pozycje, prędkości, tryby pracy) oraz konfiguracja PID/Feedforward.
Powoli chyba mogę zaczynać rzeźbić (jeszcze na krokówkach) adaptery NEMA23 na NEMA34, aby zastąpić krokówki serwami. Coś czuję, że panel frontowy do obudowy sterownika będzie już wykonany na serwach.
Ale to wszystko może się odwlec, bo niebawem rodzina się powiększa
Jak się nic nie urodzi (dosłownie), to jutro dam filmy z pracy silnika.
Obecnie obsługiwane elementy programu to:
- krzywa beziera
- ustawienie prędkości silnika (zmiana na tryb prędkościowy)
- wł/wył. przekaźnika wrzeciona
- czekaj x sekund
- pauza (czeka na sygnał kontynuacji z komputera)
- odpowiednik G0 - idzie wszystkimi osiami jak najszybciej umie do zadanej pozycji - przed przejściem do następnego punktu prędkość i położenie muszą się zmieścić w zadanej tolerancji.
Działa przesył programu z PC, działa też pobieranie statusu maszyny (wszystkie sensory, pozycje, prędkości, tryby pracy) oraz konfiguracja PID/Feedforward.
Powoli chyba mogę zaczynać rzeźbić (jeszcze na krokówkach) adaptery NEMA23 na NEMA34, aby zastąpić krokówki serwami. Coś czuję, że panel frontowy do obudowy sterownika będzie już wykonany na serwach.
Ale to wszystko może się odwlec, bo niebawem rodzina się powiększa

Jak się nic nie urodzi (dosłownie), to jutro dam filmy z pracy silnika.