Projekt nowego drivera SERVO (DC/BLDC/AC)

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC
Awatar użytkownika

Autor tematu
cizar
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 9
Posty: 55
Rejestracja: 11 sty 2010, 17:03
Lokalizacja: Bydgoszcz
Kontakt:

#21

Post napisał: cizar » 31 paź 2010, 21:13

Witam.

Na rynku jest dostępnych wiele procesorów i można wybrać naprawdę inne rozwiązania. Pierwszy driver był oparty o procesor na jądrze ARM i na początku wydawało się że taki fajny i ze wszystkim da rade, tyle że tam dodatkowo był jeszcze Xilinx co w niektórych rozwiązaniach jest naprawdę bardzo fajne to w akurat w driverze nie bardzo wnosi to kilka komplikacji a i tak koszt ARM+XILINX nie wychodzi wcale cenowo dobrze. Sam nigdy nie budowałem nic na PIC ani dsPIC nie przyglądałem się jego peryferiom czy posiada choćby sprzętowe wejście enkoderowe. Nie wiem też jakiej klasy jest kompilator i ile kosztuje. Jakie są i czy są wejścia analogowe , czy ma dedykowane wyjścia na tranzystory z (DEAD TIME). Firma TI oferuje również wsparcie techniczne oraz oferuje ciekawe biblioteki do sterowania silnikiem. projektowany driver jest z myślą o cenie dlatego 1 płytka. W poprzednim projekcie ARBAH były 2 (jedna 4 warstwowa i mocy 2 warstwowa z grubsza miedzią) ta natomiast będzie 4 warstwowa i powinno wystarczyć ( myślę tu o końcówce mocy ) ale testy pokarzą.


cyt"Może teraz pytanie do autora jeśli oczywiście może udzielić takich informacji czy program sterownika jest oparty na "Human PID-zie" czyli dynamicznym pidzie a może jest to rozwiązywane za pomocą dynamicznie tworzonych tablic i dopasowywanie optymalnych parametrów do danego stanu w układzie"

Na pytania odnoście programu nie odpowiem z tej przyczyny że ja nie będę pisał tego programu. Ale to pytanie wydaje mi się czysto akademickie "human PID itd" Może to i wyda się dziwne ale nie ukończyliśmy studiów "typu mechatronika czy elektronika" (na które notabene nie przyjęli mnie w tym roku a chciałem rozszerzyć w tym temacie swoją wiedzę - może jest za głupi HEHHEHE). Nie raz bywaliśmy na różnych konferencjach akademickich i współpracujemy z uczelniami którym to my raczej możemy podpowiedzieć rozwiązania praktyczne dawno przez nas sprawdzone praktycznie. Niestety ale uczelnie uczą tylko wiedzy teoretycznej a nie praktycznej. Co mi po tych wszystkich wzorach i operacjach na liczbach z 8 miejscu po przecinku jak w praktyce dokładności odczytów z przetwornika ADC są dużo mniejsze i obarczone szumami i zakłóceniami. badania nad driverem przez nas prowadzone to nie jeden temat na prace doktorską. Mamy zawsze jedna zasadę wiemy jak ma to działać i to zawsze jest nasz cel a informacje jak zrobić szukamy wszędzie gdzie tylko się uda coś mądrego sensowego odszukać. Nad poprzednią wersją końcówki mocy walczyłem ponad pół roku jak udało się zrozumieć co trzeba i jak wykonać i zaprojektować żeby działała stabilnie.


NIC NIE UCZY LEPIEJ NIŻ PRAKTYKA !!
Ostatnio zmieniony 31 paź 2010, 22:42 przez cizar, łącznie zmieniany 1 raz.



Tagi:


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

#22

Post napisał: jarekk » 31 paź 2010, 22:04

TI jest o klasę wyżej nad dsPICiem. Z racji wiekszej mocy obliczeniowej. Perfyeria są podobne ( są wersje specjalizowane do silników i falowników). Kompilator i narzędzia do dsPica są tańsze, kompilator jest przyzwoity. W TI można znaleźć zmieny przecinek - w dsPIcu już nie.

Koszt wdrożenia TI są duużo wyższe niż dsPIC'a - dlatego to zabawka na poważne komercyjne produkty. Małe serie raczej się nie zwrócą.


Sellen
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 1
Posty: 12
Rejestracja: 09 lut 2010, 13:06
Lokalizacja: Bydgoszcz

#23

Post napisał: Sellen » 31 paź 2010, 22:52

Cóż - koszty wdrożenia TMS są jakie są. Pewnych rzeczy jednak się nie przeskoczy i jeśli coś ma działać na odpowiednim poziomie to zastosowane komponenty muszą spełniać stawiane im wymagania. Poza tym zawsze trzeba mieć pewien zapas mocy i nie można się zbytnio sugerować podawanymi przez producentów danymi, że tyle i tyle zajmuje czasu np. filtr FIR, czy reg. PID itp. W praktyce często zachodzi potrzeba rozszerzania standardowych algorytmów, co zajmuje dodatkowy czas procesora, a czas to w aplikacjach typu serwo baaaardzo cenna rzecz ;)

Awatar użytkownika

Autor tematu
cizar
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 9
Posty: 55
Rejestracja: 11 sty 2010, 17:03
Lokalizacja: Bydgoszcz
Kontakt:

#24

Post napisał: cizar » 04 lis 2010, 11:40

Witam.

Troszkę zabrakło czasu ale płytka zaprojektowana.

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Teraz wysyłam do wykonania i pozostaje czekać.

Pozdrawiam
Cizar


Arkady90
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 3
Posty: 54
Rejestracja: 12 paź 2006, 11:33
Lokalizacja: Kristiansand

#25

Post napisał: Arkady90 » 04 lis 2010, 20:03

Witam,

Ciesze się ze ktoś podejmuje wysiłek zbudowania trójfazowej "końcówki mocy PWM" sterowanej za pomocą 320F2808. Jest to bardzo przyjazny procesor o dużych możliwościach, same 100 MIPS mówi samo za siebie (dsPIC30 byłby dużo gorszym wyborem). Wdrożenie wcale nie jest takie drogie, a mona zaryzykować stwierdzeniem ze na tym samym poziomie co dsPIC. Nie można zapomnieć o wbudowanym bootloaderze, np. można bootowac go po serialu, tak na dobra sprawę jak ma się odpowiednie narzędzia programowe to można się obejść bez JTAG-a (można "flashowac" bez JTAGA także). Ja osobiście w fazie rozwoju programu, nigdy go nie "flashuje" tylko zawsze odpalam z ramu, o wiele szybsze ładowanie kodu (20 sek vs. 3 sek). Dopiero jak program sfinalizowany do wgrywam da Flasha. dsPIC np nie ma możliwości odpalenia z ramu i zawsze trzeba "flashowac" co jest czasochłonne. Kompilator jest za darmo do pobrania bodajże do 32 kW kodu. Nie rozpisuje się dalej, tylko wymienię kilka moich drobnych uwag.


-użyte drivery na PCB z "bootstrapem" mogą nie spełnić założonego efektu. Lepiej pomyśleć o "górnych" zasilaczach do nich "floating".

- podejrzewam ze ww. driver jest klasy napięciowej 600V, jeżeli driver ma sterować mosfety niskonapięciowe to wydajność prądowa możne być niewystarczająca i otrzymamy długie czasy przełączania. Regułą jest ze mosfety na niższe napięcie (ale większy prad) maja większy ładunek bramki do przeładowania. Ścieżki na PCB wydaja się być "chude i długie..."

-pomyśleć o 3 pinach od wyboru bootloadera zawczasu projektu PCB, ewentualnie wyprowadzi jako "jumpery"

- odpowiednia sekwencja zasilania 1.8V i 3.3V, inaczej w momencie zasilania, na niektórych pinach mogą się pojawić różne "szpilki" ( konsekwencja możne być dotkliwa dla tranzystorów.. )

- pomyśleć o "hardwarowym" zabezpieczeniu polegającym na wykluczeniu się jednoczesnych sygnałów "gornch" i "dolnych" PWM (jedna bramka NAND na gałąź)

- dołożyć pull-up/down do PWM, domyślnie przy "power up" są one disabled.

- pomyśleć o klasach napięciowych, ale to chyba za wcześnie gdyż to niskonapięciowy prototyp.

- użyte LEMy występują w wersji z wyjściem napięciowym i prądowym, w przypadku wersji prądowej zapewnić odpowiedni opamp , przesuwający zero.

- gniazdo JTAG obrócić o 180 st, będzie łatwiej z kabelkiem od JTAG-a.

- można doda izolowanego CAN-a lub/i RS232

- jeżeli mowa o enkoderach, to one często maj interfejs "symetryczny - prądowy" jak w rs485, pomyśleć o odpowiednim "transceiver"

Życzę dużo zaparcia w realizacji projektu i doprowadzenia go do końca!

pozdrawiam serdecznie
Arek

Awatar użytkownika

Autor tematu
cizar
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 9
Posty: 55
Rejestracja: 11 sty 2010, 17:03
Lokalizacja: Bydgoszcz
Kontakt:

#26

Post napisał: cizar » 04 lis 2010, 23:11

Witam.

Co do wyboru procesora to jak najbardziej się zgadzamy. Jeżeli chodzi o uwagi są bardzo konkretne i warte przedyskutowania z chęcią przyjmę uwagi do tego projektu. Widzę że pańska wiedza w temacie elektroniki jest bardzo ! obszerna .
Arkady90 pisze:-użyte drivery na PCB z "bootstrapem" mogą nie spełnić założonego efektu. Lepiej pomyśleć o "górnych" zasilaczach do nich "floating". "

- podejrzewam ze ww. driver jest klasy napięciowej 600V, jeżeli driver ma sterować mosfety niskonapięciowe to wydajność prądowa możne być niewystarczająca i otrzymamy długie czasy przełączania. Regułą jest ze mosfety na niższe napięcie (ale większy prad) maja większy ładunek bramki do przeładowania. Ścieżki na PCB wydaja się być "chude i długie..."
To już kolejna wersja drivera w poprzedniej zastosowane drivery z "bootstrapem" spełniły swoje zadanie , tutaj zastosowaliśmy jedne z najbardziej wydajnych bo IRS21864 (4 A/4 A) wiec myślę że te powinny daj spokojnie rade. Oczywiście zastosowanie górnych separowanych zasilaczy jest pewniejsze jednakże bardziej skomplikowane ,zajmuje więcej miejsca na PCB i jest oczywiście droższe a driver jest konstruowany z myślą o rozsądnej końcowej cenie. W kolejnej wersji pomyślimy nad takim rozwiązaniem oraz separacją galwaniczną. Jeżeli chodzi o ścieżki to pewnie chodzi o prądowe, są one w granicach 10mm lub podwójne strona top/bottom dodatkowo są odmaskowane ścieżki w celu ich pobielenia lutowiem.
Arkady90 pisze:-pomyśleć o 3 pinach od wyboru bootloadera zawczasu projektu PCB, ewentualnie wyprowadzi jako "jumpery"
To bardzo słuszna uwaga z tego względu że 1 raz stosujemy ten procesor. W prototypie chcieliśmy do programowani używać JTAGa.
Arkady90 pisze:- odpowiednia sekwencja zasilania 1.8V i 3.3V, inaczej w momencie zasilania, na niektórych pinach mogą się pojawić różne "szpilki" ( konsekwencja możne być dotkliwa dla tranzystorów.. )

- pomyśleć o "hardwarowym" zabezpieczeniu polegającym na wykluczeniu się jednoczesnych sygnałów "gornch" i "dolnych" PWM (jedna bramka NAND na gałąź)

- dołożyć pull-up/down do PWM, domyślnie przy "power up" są one disabled.
Z sekwencja załączania zasilania będziemy musieli pomyśleć i przetestować jak to będzie się zachowywało w obecnej wersji. Natomiast driver posiada wyjście które będzie aktywne dopiero po wstępnej diagnostyce przeprowadzonej przez procesor. Wyjścia z kolejnych driverów maja byś połączone szeregowo i dopiero w przypadku poprawności wszystkich napędów ma być załączane napięcie HV . Rezystory pull-up są dołożone na sygnały PWM procesora i wchodzą na dodatkowe bramki. Wiec powinno być bezpiecznie.
Arkady90 pisze:- pomyśleć o klasach napięciowych, ale to chyba za wcześnie gdyż to niskonapięciowy prototyp.
Troszkę jeszcze za wcześnie to tak jak pan pisze prototyp.
Arkady90 pisze:- użyte LEMy występują w wersji z wyjściem napięciowym i prądowym, w przypadku wersji prądowej zapewnić odpowiedni opamp , przesuwający zero.
LEMy - w wyjściem napięciowym podwójne tory pomiarowe napięcia dla pełnego zakresu prądu oraz dla zakresu użytecznego ( + - 25A) Sygnały analogowe oddzielone od cyfrowych z osobną masa analogowa oraz napięciem 3,3V analogowym ( warstwy wew.)
Arkady90 pisze:- gniazdo JTAG obrócić o 180 st, będzie łatwiej z kabelkiem od JTAG-a.
posiadamy JTAGa własnej produkcji i akurat takie ustawienie bardziej nam pasuje ale dziękuje za uwagę.
Arkady90 pisze:- można doda izolowanego CAN-a lub/i RS232
Niestety w tej wersji nie będzie już na to miejsca mieliśmy takie rozwiązanie w driverze prototypowym http://www.cs-lab.eu/galeria-zdjecie-dD ... egoly.html
Arkady90 pisze:- jeżeli mowa o enkoderach, to one często maj interfejs "symetryczny - prądowy" jak w rs485, pomyśleć o odpowiednim "transceiver"
zastosowaliśmy raczej typowe rozwiązanie czyli DS26LV32.


Dziękuję bardzo za uwagi są bardzo przydatne, jeżeli uważa pan że jakieś z opisanych rozwiązań można poprawić to z chęcią je przedyskutuje.

Pozdrawiam
Cizar

[ Dodano: 2011-08-11, 20:17 ]
Prace nadal trwają elektronika uruchomiona obecnie pisane jest nowe oprogramowanie dla drivera. Wstępne test już wykonane, nowa końcówka mocy pracuje stabilnie przy prądzie 20A.

Zamieszczam zdjęcia nowego drivera .

Obrazek Obrazek Obrazek


Obrazek Obrazek Obrazek

Pozdrawiam
Cizar

[ Dodano: 2011-10-11, 12:05 ]
Po sprawdzeniu wszystkich obwodów układu oraz testach silnika poprawiliśmy projekt PCB :

- sterownik otrzymał port USB do wstępnego programowania drivera oraz podglądu parametrów.

- 2 złacza D-SUB (15 i 25 pin) zastąpione zostały 1 S-SUB 37pin
- 2 złącza zasilania HV - Silnika (U V W) zastąpione 1 złączem 6 pin

Powstaje też nowy program do konfiguracji drivera.

Nowe płytki już zamówione po ich przetestowaniu w kilku maszynach zostanie wprowadzony do produkcji.

Obrazek

Pozdrawiam
Cizar


skoczek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1095
Rejestracja: 15 lis 2006, 22:04
Lokalizacja: Cieszyn/Kraków

#27

Post napisał: skoczek » 12 paź 2011, 17:19

Witam serdecznie.
cizar pisze:po ich przetestowaniu w kilku maszynach zostanie wprowadzony do produkcji.
Czas, czas, czas? :)
Chociaż orientacyjny :).
Pozdrawiam, skoczek
Podstawą materialną narodu jest ziemia, przemysł i handel. Kto ziemię, przemysł i handel oddaje w ręce cudzoziemców, ten sprzedaje narodowość swoją, ten zdradza swój naród. - Hipolit Cegielski


Arkady90
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 3
Posty: 54
Rejestracja: 12 paź 2006, 11:33
Lokalizacja: Kristiansand

#28

Post napisał: Arkady90 » 12 paź 2011, 18:28

Jak to pięknie oglądać postęp prac, ze są w Polsce ludzie którym się chce podejmować budowy własnego servopacka, i to jeszcze na na "dorosłym" procesorze DSP z TI. Ten procesor jest "skrojony" na takie zadania sterowania silnikami czy falownikami. Płytki wyglądają bardzo dobrze, tylko z własnego wieloletniego doświadczenia wiem ze jeszcze potrzeba setek godzin na napisanie oprogramowania (DSP+win/linux) i to jest ta cześć która wymaga więcej pracy niż hardware. Komunikacja musi działać w każdych warunkach, parametry,ustawienia, strojenie, diagnoza, etc.
Od siebie mogę dodać ze mogli byście się pokosić o budowę podwójnej końcówki na jednym procku, tak naprawdę musieli byście zdublować tylko IGBT+drivery+ LEM. Procek ten ma łącznie 12 PWMow, wiec akurat na 2 falowniki. To samo tyczy się modułu QEP (sprzętowa obsługa enkodera), sa dwa. 100MIPS powinno wystarczyć z powodzeniem, znam z autopsji. Mogli byście również dodać wsparcie do enkoderów z wyjściem szeregowym, jest ich coraz więcej, szczególnie absolutnych, w procku sa 4 moduły SPI, szkoda żeby się marnowały. Dobry wyszedł by przelicznik ceny do ilości osi.

Czy będzie możliwość wybierania wejscia sterowania np. moment, predkosc lub pozycja? czy kroicie tylko pod swoje potrzeby?

Wszystkie niuanse z transformacjami silnikowymi rozwiazane? Clarki/Parki, regulatory PI, antiwindup-y pewnie no problem, A feed forward-y i kompensacje?
Podejscie klasyczne: najszybsza petla pewnie pradowe, potem predkosc i pozycja czy cos innego?. Jakis wybor profili przyspieszen?.

Nic tylko pogratulować, życzę wytrwałości do końca, odniesieniu sukcesu, wiem ze te ostatnie 5% w projekcie to wieczność (albo 50% czasu), ale potem satysfakcja gwarantowana! Panowie pomyślcie o time to the market a potem do szefa po premie!

Pozdrawiam
Arek

Awatar użytkownika

Szopler
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 254
Rejestracja: 19 lis 2005, 16:17
Lokalizacja: Siedlce
Kontakt:

#29

Post napisał: Szopler » 11 wrz 2012, 00:15

Jakieś świeże informacje?
radioactiveathome.org / boincatpoland.org


Arkady90
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 3
Posty: 54
Rejestracja: 12 paź 2006, 11:33
Lokalizacja: Kristiansand

#30

Post napisał: Arkady90 » 12 paź 2012, 20:12

Mija dokładnie rok od mojego postu wyżej, albo będzie bardzo dobry sterownik albo projekt zawieszony. Z doświadczenia daje kolejny rok, na rozwój oprogramowania DSP/PC.

Arek

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”