Skocz do zawartości

Uśrednienie napięcia za mostkami H.


tomek127pol

Pomocna odpowiedź

Witam,

Opiszę najpierw pokrótce hardware robota, żeby wszystko było klarowne.

Robot na czterech kołach, każde z nich posiada oddzielny silnik. Do sterowania silników używam 4 mostki H L298N ze zmostkowanymi kanałami, zasilane bezpośrednio z lipola. Całość zasilana pakietem 2S 35C.

Siniki które posiadam osiągają prąd szczytowy 2,10A dla 3V zasilania co daje ~5,2A dla 7,4V

(Jest to drugi zestaw silników, pierwszy leży z poprzepalanymi szczotkami, aktualny miał być na 9V - co rozwiązało by mój problem - ale błędny opis na aledrogo...)

W robocie kontroluję napięcie na celach akumulatora żeby go nie uszkodzić, kiedy napięcie na którejś z cel spadnie poniżej 3,5V robot zatrzymuje silniki.

Do rzeczy, prąd skuteczny przy sterowaniu pwm (maksymalnie daje 100 na 255 żeby nie przekroczyć "3V na silnikach") mogę ustalić w wartościach jakie mi odpowiadają, ale rozchodzi się o prąd chwilowy. Jak działa PWM wiemy, nawet przy wypełnieniu 5% na wszytskich czterech sinikach jest 7,4V co daje łącznie ponad 20A.

Myślałem, że ustawienie wyższej częstotliwości PWMa pozwoli na rozwiązanie problemu-wygładzi prąd na silnikach - ale zarówno procesor jak i mostki nie pozwalają na Fpwm > 40kHz.

Finalnie sprawa wygląda tak, że robot kiedy ma ruszyć to tylko drgnie i spadek napięcia na akumulatorze powoduje zadziałanie w/w mechanizmu ochrony akumulatorów. Wiem, że to mogę obejść programowo, ale nie chcę katować szczotek takimi szpilkami prądu.

Macie jakieś pomysł na "wygładzenie" napięcia za mostkami, tak by silniki dostawały coś chociaż odrobinę uśrednionego a nie prostokąt 0 - 7,4 V ?

Pozdrawiam.

Link do komentarza
Share on other sites

Możesz dać indukcyjność w szereg z silnikiem, ale to rozwiązanie drogie.

Co prostsze to:

1. limit napięcia zmień na 3.3V - aż do 3.0V jest bezpiecznie, 3.3V to dobry wybór

2. Niestety softstart, ale w robocie może on być rzeczywiście kłopotliwy.

3. Jeśli silniki są taktowane oddzielnymi PWM to taktuj je z przesunięciem fazowym 90 stopni - aż do wypełnienia 25% zasilany na raz będzie jeden, do 50% maks. 2, do 75% 3.

4. Daj większe kondensatory na zasilaniu.

5. Daj mniejsze kondensatory na wyjściu na silnik - 1nF powinien wystarczyć. Jeśli są duże to efektywne średnie napięcie na silnikach rośnie (w każdym załączeniu ładujesz kondensator i potem to on zasila silnik).

6. No i niestety wyższa częstotliwość PWM, ale tutaj ciężko o mostki. No chyba że przekaźnik i sterowanie MOSFETa na >20kHz.

7. Spadki przy akumulatorze 35C są dziwne. Jaki ma deklarowany prąd chwilowy?

8. Daj grubsze i krótsze przewody od akumulatora. Jakich używasz?

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dzięki za obfitą odpowiedź 🙂

1. Limit miałem ustawiony na 3.5 V, teraz mam 3.2, widać poprawę

2. Softstart będzie, ale dotychczas działało przy czasie narastania do 35% pwm w około 5 sekund, więc nieakceptowalne.

3. Bardzo dobry pomysł, poszukam jak to ogarnąć.

4. Robi się

5. Mogę to zrobić ale, czy przy takich prądach i małych kondensatorach nie będzie masakrycznie siało na układ? (aktualnie mam 100nF)

6. Mostek mam L298N, daje mu 31 kHz, z testów wynika, że sobie radzi, chociaż widać wyraźny spadek momentu, ale sądzę, że to wynika z reakcji silnika na wyższą częstotliwość a nie reakcji mostka. Może uda mi się dorwać na uczelni do oscyloskopu, to wtedy będę wszystko wiedział 🙂

7. Nie widzę nigdzie info o prądzie chwilowym (LiPol Dualsky 1000mAh 35C 2S 7.4V). Po zmiejszeniu progu z 3.5 do 3.2 na celi widać poprawę, ale nie do końca to jest to. Miałem w tym pakiecie kiedyś na jednej celi przez jakieś 10 minut 2.85V, w pojemności zmian nie widać, nie rozbalansowuje się znacząco, ale możliwe, że to przyczyna sporych spadków napięć.

8. Przewody nie są cienkie, ale mam złącze na goldpinach od strony płytki, zmienić?

Aktualnie w programie porównuje pojedyncze pomiary, to w sumie jest trochę głupie rozwiązanie.

Ogarnę dziś powiedzmy 100 pomiarów w ciągu sekundy, policzę średnią arytm. i będę porównywał.

Rozwiązanie z indukcyjnością brzmi bardzo ciekawie, rozwiń troszkę albo daj jakiś link jak możesz 🙂

Pozdrawiam

Link do komentarza
Share on other sites

1. Źle ustawiłeś układ zabezpieczający. Po pierwsze musi on reagować na napięcie średnie pakietu a nie szpilki chwilowego obciążenia. LiPol uznaje się za rozładowany gdy napięcie biegu luzem spada do 3V. Pod obciążeniem ta granica często jest przesuwana do 2.9-2.8V/ogniwo i to jest normalne. Twoje 7.5V na pakiecie 2S wydaje się na tym tle trochę wysokie, nie sądzisz? Żaden model nie wzniósłby się w powietrze gdyby regulatory miały takie poziomy odcięcia. Czasem możesz w nich ustawiać ten poziom (jako low-medium-high), ale wciąż jesteśmy w okolicach 3V (np. 2.8-3.0-3.2V). Pokaż schemat obecnego układu zabezpieczającego - wtedy będzie można ocenić jego sensowność i przydatność w tej aplikacji. Nie każdy prosty pomysł sprawdza się w praktyce.

2. W swoim poście mieszasz różne wielkości w tych samych zdaniach:

"..przy wypełnieniu 5% na wszytskich czterech sinikach jest 7,4V co daje łącznie ponad 20A."

Przy 5% na silnikach z definicji jest średnio 0.05*(napięcie_aku - spadek_na_mostku) i rodzaj podpiętych silników niczego nie zmienia. Napięcie chwilowe jest duże, ale od wygładzania prądu są właśnie indukcyjności silników. Te 20A to zmierzyłeś na pakiecie czy tylko się domyślasz? Chodzi o prąd chwilowy czy średni? Jeżeli rzeczywiście masz taki prąd (średni, mierzony multimetrem całkującym), to zająłbym się obejrzeniem Twoich przebiegów PWM oraz kontrolą poprawności połączeń. Przecież przy napięciu średnim 0.3V po prostu nie ma szans płynąć tamtędy 20A chyba, że masz zwarcia w układzie lub ogromne pojemności przeciwzakłóceniowe - no ale wtedy napędzasz głównie kondensatory a nie silnik, o czym już pisał OldSkull.

Dalsze dywagacje uznaję za bezprzedmiotowe. Błąd leży gdzieś na początku a być może są dwa nakładające się: źle zrobiony układ zabezpieczający i problem w montażu / zwarcia. Napisałeś o jakiej częstotliwości marzysz (>40kHz), ale nie podałeś tej na jakiej pracujesz teraz. Dziesiątki kHz to bardzo dużo w porównaniu z indukcyjnością silników i naprawdę nie musisz iść wyżej. Twoje silniczki mając prąd 2A nie są jakimiś kolosami, ale też nie są to napędy wibratorów od telefonu. Zupełnie spokojnie będą pracować przy kilku kHz nawet zasilane napięciem chwilowym 2x większym niż ich dopuszczalne. Szczotki "nie widzą" napięcia - widzą prąd uzwojeń silnika a ten nie ma szans przy 7V narosnąć do wartości kilku A podczas impulsu 5us (czyli 5% PWM 10kHz) chyba, że masz zwarcie i w obwodzie nie ma prawie żadnej indukcyjności.

EDIT: Pisaliśmy jednocześnie.

  • Lubię! 1
Link do komentarza
Share on other sites

Witam i dziękuję za odpowiedź

Co do punktu pierwszego to aku podpięte pod ADC przez dzielnik, napięcie graniczne zmienione.

Do punktu drugiego to oczywiście chodziło mi o prąd chwilowy i też nie jest to wartość mierzona tylko domysł, wnioskowałem to po tych spadkach napięcia, zmierzę to oscyloskopem w najbliższym czasie.

Moja częstotliwość pwm to 31,25 kHz

"...prąd uzwojeń silnika a ten nie ma szans przy 7V narosnąć do wartości kilku A podczas impulsu 5us"

I ta właśnie informacja jest dla mnie kluczowa, chodziło mi o nie uszkodzenie szczotek, poprzednie silniki pracowały na pwm o Fpwm ~500Hz i to zapewne je zgubiło.

W takim razie uśrednienie pomiarów z ADC powinno rozwiązać problem, dam znać jak zmienię program.

Pozdrawiam

Link do komentarza
Share on other sites

Acha, jeśli procesorem mierzysz napięcie akumulatora i nie masz po drodze żadnego filtra dolnoprzepustowego, to jest to rozwiązanie czysto programowe (spodziewałem się jakiegoś komparatora). Musisz zrobić uśrednianie np. za ostatnie 10 sekund historii. Dobrze byłoby też dospawać kondensator kilka uF do dzielnika napięcia (jakie są tam oporniki?) co zmieni zwykły dzielnik w filtr i zlikwiduje niebezpieczeństwo aliasingu częstotliwości próbkowania ADC z częstotliwością pracy mostka. Dopiero tak obrobiony wynik możesz porównywać z progiem rozładowania aku.

Uzwojenia silnika (podczas startu lub blokady wału) można uznać za szeregowy układ LR. Jego opis i wzór na prąd przy danym napięciu i po danym czasie znajdziesz np. tutaj (żółta ramka):

http://www.electronics-tutorials.ws/inductor/lr-circuits.html

Podczas pracy jest już inaczej, bo silnik tworzy własne back-EMF, no ale moment startu jest tu najbardziej krytyczny.

Poprzednie silniki mogło zgubić wiele rzeczy. Począwszy od błędu w programie, aż do zwykłego przeciążenia. Silniki szczotkowe - szczególnie te mniejsze, niewyczynowe - są bardzo delikatne. Tutaj masz kiepskie mostki i to one w poważnym stopniu chronią silniki, ale zatrzymanie lub obciążenie zmniejszające obroty do 10% i powodujące przepływ dużego prądu bardzo szybko niszczą zespół komutatora i szczotki małych silniczków.

Link do komentarza
Share on other sites

5. Mogę to zrobić ale, czy przy takich prądach i małych kondensatorach nie będzie masakrycznie siało na układ? (aktualnie mam 100nF)

100nF to za dużo. Za zabezpieczenie przed zakłóceniami powinny odpowiadać kondensatory przy poszczególnych układach a od strony silników diody Schottky (w Twoim przypadku doboru mostków) i kondensatory na zasilaniu. Jak bardzo chcesz możesz dodać Transil, ale jak masz diody schottky to on się nei napracuje. Masz 35A prąd ciągły akumulatora, więc to na pewno nie sprawa akumulatora.

Nie wiem skąd pochodzi ta głupia reguła, żeby dawać 100nF kondensator wszędzie - powinien być odwrotnie proporcjonalny do częstotliwości i wprost do prądu silników - tak z grubsza. nawet ten 1nF to może być dużo jeśli taktujesz 30kHz. Powinno starczyć taktowanie 20-25kHz - ogólnie jeśli nei trzeba to lepiej dawać nieco powyżej częstotliwości akustycznych a dopiero jeśli nie można to dobierać mniejsze.

8. Przewody nie są cienkie, ale mam złącze na goldpinach od strony płytki, zmienić?

Sprawdź jakie masz parametry prądów dla Twoich złącz. Nie są one głównym powodem, ale jednym z wielu.

Link do komentarza
Share on other sites

marek1707,

Rezystory w dzielniku to 2k9 i 4k7 ohma, chciałem zekres 13V.

"... zlikwiduje niebezpieczeństwo aliasingu częstotliwości próbkowania ADC z częstotliwością pracy mostka..." właśnie się zastanawiałem, że może to jakoś "interferować", pojemność kondensatora który proponujesz nie ma jakiegoś kluczowego znaczenia prawda?

Co do wzoru na prąd to chętnie policzę, tylko jak ustalić indukcyjność uzwojenia?

OldSkull,

Dorzucę jakieś kondensatory na zasilaniu przy samych mostkach i na płycie głównej.

"Nie wiem skąd pochodzi ta głupia reguła..."

Szczerze mówiąc to na większości schematów w poradnikach na forum takie kondensatory przy silnikach się znajdują- z tego co pamiętam-, stąd taki sobie nawyk wyrobiłem, ale faktycznie, nigdy nie zastanawiałem się nad pojemnościami jakie powinny być 🙂

Link do komentarza
Share on other sites

Przy takich rezystorach, wstawiając kondensator 10uF równolegle do wejścia ADC dostajesz filtr o częstotliwości odcięcia ok. 10Hz. Żeby nie było "interferencji", musisz mierzyć częściej niż 20 razy na sekundę - przyjmijmy 30Hz. Żeby programowo zrobić najprostszy filtr, tzw. Moving Average" o częstotliwości odcięcia 0.1Hz musisz pamiętać teraz co najmniej 132 ostatnie próbki. Robisz bufor historii pomiarów, mierzysz napięcie akumulatora, wstawiasz najnowszą w miejsce najstarszej, sumujesz wszystko (w zmiennej 32-bitowej), normalizujesz (dzielenie przez długość bufora, czyli przez 132) i masz wynik 🙂 Dla uproszczenia możesz wziąć 128 lub lepiej 256 próbek - będzie prościej dzielić, bo wtedy sprowadza się to do przesunięcia o 7 lub 8 bitów w prawo.

W takiej aplikacji musisz pamiętać, że bufor filtra trochę czasu się napełnia i przez pewien czas po starcie wyniki są bezsensowne. Możesz temu przeciwdziałać poprzez np. wypełnienie całego bufora wynikiem pierwszego pomiaru albo wprowadzenie licznika, który odblokowuje test napięcia dopiero po napełnieniu filtra.

Link do komentarza
Share on other sites

marek1707, dla akumulatora wystarczy sumować próbki bez bufora na ileś próbek. Ja często robię tak, że sumuję do jednej zmiennej np. 64 próbki 10b i po 64 przepisuję wartość do zmiennej pomiarowej. Do czegoś tak wolno zmiennego jak akumulator jak znalazł. I uzyskuję wartość o większej liczbie bitów 🙂

Szczerze mówiąc to na większości schematów w poradnikach na forum takie kondensatory przy silnikach się znajdują- z tego co pamiętam-, stąd taki sobie nawyk wyrobiłem, ale faktycznie, nigdy nie zastanawiałem się nad pojemnościami jakie powinny być

Być może jest to dobra wartość we wkrętarkach - duży prąd i niska częstotliwość. Ale dla f rzędu 10-20kHz i prądów 10x mniejszych 100nF to za dużo.

Lepsze do ograniczania rozprzestrzeniania się zakłóceń są Transile i diody Schottky.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.