Skocz do zawartości

Poprawność założeń i dobór elementów do projektu sterownika prędkości silnika BLDC


Paulo

Pomocna odpowiedź

Witam was,
potrzebuję waszej rady i doświadczenia, gdyż chciałbym uniknąć sytuacji, w której się okaże, że od początku projekt idzie w złą stronę, a zwłaszcza cześć z doborem elementów.

Założenia:

małe stanowisko składające się z silnika bezszczotkowego prądu stałego oraz sprzęgniętego z nim trwale silnika szczotkowego prądu stałego, który służy jako obciążenie(Zmienne przez "drabinkę" rezystorów). Sterujemy prędkością silnika BLDC, odczytujemy prędkość na DC (z enkodera). Prędkość i kierunek wyświetlana na małym LCD. W ten sposób mogę ściągnąć np charakterystyki mechaniczne BLDC przy różnych obciążeniach.

Sterowanie poprzez STM32F10 konkretnie STM32F103VBT6. 72MHz.

Napięcie logiki 5VDC(ew. 3.3), części roboczej załóżmy max 24VDC.

Problem (i jednocześnie zaleta) w tym projekcie jest taki, że mam całkowitą dowolność co do mocy silników i zakresu prędkości, w zasadzie mam całkowitą dowolność we wszystkim a ograniczają mnie jedynie koszty(aczkolwiek tutaj też nie koniecznie, bo możliwe, że dostanę dotację z uczelni na projekt, lecz póki co załóżmy najgorszy scenariusz, że muszę wszystko kupić sam).

Zacznijmy może po kolei(niestety mogę się mylić w wielu kwestiach więc proszę o poprawienie mnie):

Silnik BLDC 3-fazy(ilość biegunów dowolna) sterowanie najprostsze trapezowe zatem silnik musi być z czujnikami Halla, a nie enkoderem. Sterowanie raczej bipolarne, ze względu na równe obciążenie tranzystorów, chyba, że ze względu na przewidziane raczej małe moce i prądy to będzie można zastosować zamiast półmostków z 2 N-MOSami, parę komplementarną P i N, wtedy sterowanie unipolarne samego mocniejszego dolnego N-MOSFETu i ograniczymy tracone moce przy przełączaniu PWM.

Silnik raczej nie może być wysokoobrotowy, by nie rozerwało komutatora w sprzęgniętym DC i by ograniczyć iskrzenie na nim(aczkolwiek prądy nie będą raczej duże więc to może nie mieć znaczenia) zatem wydaje mi się, że te do dronów odpadają. Odpowiedni wydawałby się taki(ma wszystko, z tym, że moc dużo za duża i cena)

http://www.akcesoria-cnc.pl/?menu=produkt&id=1360

Innym pomysłem jest zastosować BLDC z przekładnią do obniżenia obrotów przekazywanych na silnik DC. np taki: http://allegro.pl/maxon-silnik-bezszczotkowy-z-przekladnia-157-1-i7256339671.html#thumb/4 z tym, że jego moc już wydaje mi się troszkę za niska. I wtedy też pojawia się problem przy sterowaniu prędkością obrotową BLDC(bo mierzymy ją na silniku DC, który obracał będzie się n-krotnie wolniej i stracimy dokładność).

Innym rozwiązaniem jest też zastosować po prostu wysokoobrotowy silnik DC, ale do takiego musiałbym osobno dokupić i zamontować enkoder, bo nie znalazłem takiego z zintegrowanym.(To rozwiązanie w sumie wydaje się najprostsze)

Silnik DC dowolny, byleby miał zamontowany enkoder(raczej optyczny, ale może być też inkrementalny by rozróżnić kierunek obrotu, chociaż kierunek wirowania znamy już z samego programu sterującego). Ważna jest prędkość znamionowa silnika DC z przyczyn wypisanych wcześniej. Wybór tego silnika jest sprawą drugorzędną, byle by spasował do wybranego BLDC, nie potrzebuję również jego szczegółowej dokumentacji. Wystarczający byłby zatem taki: http://allegro.pl/silnik-enkoderem-kitashiba-dc-24v-1a-4400-obr-min-i7280727659.html#thumb/1

Dalej sprawa z driverem mostków. Z uwagi na fakt, że głównie skupić bym się chciał na stronie programowej projektu(mimo, że wybrałem najprostszy rodzaj sterowania) to najlepszym rozwiązaniem byłby scalony 6-kanałowy sterownik coś jak HIP4086, lub SA305, lecz ciężko z nimi z dostępnością.

Mogę też zastosować 3 osobne drivery na półmostki jak np. FAN3278, lub TC4428.

I tutaj też jest problem, że wybór ich jest ogromny, a nie mam w tym doświadczenia. Jedyna pociecha, że odpadają te wysokonapięciowe. 😃

Powinny móc przełączać i być w stanie rozładować bramki tak myslę, że 20kHz PWM(czyli praktycznie wszystkie drivery..) wystarczy, byleby wyjść poza zakres słyszalny, wiadoma też jest sprawa z czasem martwym, i dopiero po jego ustaleniu będę się zastanawiał nad konkretną wartością częstotliwości PWM, ale on już zależy znów od dobranych tranzystorów. Może on być ustalany przez drivery, lecz nie musi, bo stm32 powiada w timerach wbudowany układ generowania czasu martwego, więc można stworzyć 2 komplementarne sygnały PWM(przy korzystaniu z tego rozwiązania dobrze by było by driver miał wejścia normalne i odwrócone)

Dobór tranzystorów również oczywiście dowolny, ale myślę, że najpierw trzeba dobrać silniki, a potem się nad nimi zastanowić.

Spraw poruszyłem bardzo dużo na raz, ale no wszystkie są ze sobą powiązane i jedne zależą od drugich i na odwrót także musiałem tak się rozpisać. Ciężko będzie się pewnie odnieść do takiego postu, ale mam nadzieję, że pomożecie mi z doborem elementów i wyrazicie opinie o projekcie, czy założenia są słuszne i co byście zrobili inaczej. Dziękuję za wytrwałość i czekam na odzew 😉

Link do komentarza
Share on other sites

Dużo tego. Kilka uwag na szybko:

1. Ze sterowaniem pewnie sobie poradzisz. Drivery "wysokonapięciowe" - jak rozumiem to te które mogą sterować górnym tranzystorem wiszącym na potencjale nawet i 600V nie są straszne a mają jedną podstawową zaletę: sterują dwoma NMOSami w bardzo wygodny dla nich sposób, względem źródła. Ja bym w to poszedł, jest tego pełno.

2. Nie wyważaj otwartych drzwi, pomysł o gotowych rozwiązaniach. Rynek modelarski (np) jest zawalony konstrukcjami regulatorów silników BLDC z oprogramowaniem open source. Masz gotowe platformy sprzętowe. Są to zarówno sterowniki dla silników sensorless (raczej lotnicze/dronowe) ale także tych oczujnikowanych (samochodowe). Cóż, nie zawsze możesz wybrać procesor, bo już jakiś jest - to wada. No ale za 50zł dostajesz procesor, jego zasilanie, drivery i trzy stopnie końcowe.

3. Pomyśl o gotowych modułach produkowanych przez firmy robiące np. procesory sygnałowe, ale także i ST coś tam chyba wydłubało. To najczęściej kompletne stopnie wyjściowe plus np. pomiary prądów faz itp pasujące do procesorów danej firmy (Texas Instr, Microchip, ST itd).

http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/motor-control-solution-eval-boards.html?querycriteria=productId=SC1077

4. Silnik DC jako obciążenie wydaje się bardzo złym pomysłem.

a. Będzie musiał mieć moc co najmniej tak dużą jak testowany BLDC a więc będzie sporo większy.

b. Komutator będzie pierwszą rzeczą która padnie - jak to w tego typu silnikach.

c. Iskrzy i zakłóca wszystko wokół.

d. Zrób to samo tylko w drugą stronę: spory BLDC jako prądnica trójfazowa, do tego np. prostownik 3F i sztuczne obciążenie z pomiarem mocy. Tani silnik 3F z samolotu może wygenerować kilkaset W mocy, więc z powrotem zadziała tak samo. Zapewnij tylko chłodzenie, niezależny wentylator będzie konieczny - tak dla prądnicy jak i dla obciążenia.

5. Jeśli musisz - na wale łączącym zrób pomiar prędkości obrotowej (enkoder, hallotron, coś opto itp) i tyle, choć przecież nikt tak dobrze nie zna aktualnej prędkości obrotowej silnika jak sam algorytm jego sterowania 🙂 I oczywiście żadnych przekładni - w wykonaniu amatorskim głośne, stratne i nieprzewidywalne.

6. Wymyśl jakiś fajny sposób mocowania testowanego silnika i wygodne sprzęgło do wałów o różnych średnicach. Np. silniki do wielowirnikowców mają typowe mocowania od tyłu, samolotowe często dają się montować "przed" i "za wręgą" (ale otwory także mają rozmieszczone typowo) itd. Samochodowe także.

7. Przejrzyj projekty hamowni modelarskich, tam obciążeniem jest śmigło bo chcemy też wiedzieć jakie osiągi ma taki zespół w powietrzu. Masz tam gotowy regulator prosto sterowany (w otwartej pętli) sygnałem PWM, pomiar pądu, obrotów i siły ciągu.

Link do komentarza
Share on other sites

To może trochę inaczej, byśmy myśleli wszyscy w dobrą stronę. Jest to projekt inż, małe stanowisko laboratoryjne, gdzie głównym jego zadaniem jest sterowanie prędkością i kierunkiem silnika BLDC, także wykluczone są gotowe sterowniki tych silników z zintegrowanymi mikrokontrolerami, czy innymi programowanymi prędkościami poprzez zmianę samego rezystora.

Zależy mi, aby sterowniki sterowały samymi tranzystorami(z lub bez programowymi czasami martwymi), a ja za pomocą wyjść mikrokontrolera będę "sterował" tymi driverami. Silnik DC jako obciążenie to taki luźny pomysł, by jednak nie była to sztuka dla sztuki samego sterowania samą prędkością, a jednak coś mierzalnego, więc przy okazji jest możliwość zdejmowania charakterystk tych silników. Jak wpływa obciążenie na prędkość itp.

Można jako obciążenie zrobić coś innego, jednak śmigło nie jest dobrym pomysłem, bo doszła by sprawa bezpieczeństwa. Poza tym nie miałbym wpływu na wielkość tego obciążenia( zależne by było tylko od prędkości obrotowej). Musi to być obciążenie nazwijmy to "elektryczne", czyli coś jak tutaj, że w obwód wirnika dokładam dodatkową rezystancję, i zmniejszając tą rezystancję aż do stanu zwarcia silnika DC pracującego tutaj jako generator stawiamy największe obciążenie naszemu badanemu silnikowi BLDC. Pytanie tylko czy dla takich prądów myślę tutaj o około 2A, zatem na generatorze zakładając nawet sprawność 95% też cudów nie będzie, więc jakichś wielkich zakłóceń i iskier nie powinno być. Wielkość i masa silników również nie ma żadnego znaczenia, jest to stanowisko zatem z założenia jest stacjonarne.

Mocowanie tak by byłą możliwość stosować różne średnicę wałów to jak najbardziej, dobry pomysł, rozważę to, bo nad sprzęgnieciem walów ze sobą jeszcze szczególnie nie myślałem.

Dokładnie o te mi chodziło na 600V. Uznałem, że raczej aż tak się nie dobiera elementów "przewymiarowanych". Czyli taki sterownik mosfetów: https://www.daedalus.ei.tum.de/attachments/article/257/IR2110_IR2110S_IR2113_IR2113S.pdf

mówisz, że bez problemu wysteruje i pozostawi włączony górny tranzystor bez dodatkowych przetwornic dc/dc, lub bootstrapu? Same robią sobie "pływające" napięcie odniesienia. I może pracować nawet do 100% PWM?

Link do komentarza
Share on other sites

Tak to właśnie wygląda: jak praca zaliczeniowa/końcowa na studiach. W przeciwnym wypadku miałbyś to przemyślane i bardziej ukierunkowane na własne potrzeby a co za tym idzie więcej liczb. To nie jest żaden zarzut, żeby było jasne. Po prostu dla siebie pracujemy inaczej niż na zlecenie.

W sprawie obciążenia: prądnica jest bardzo dobrym pomysłem, bo w łatwy sposób możesz regulować obciażenie i to popieram. Mam tylko wątpliowści, czy silnik DC jest poprawnym wyborem. Popatrz: od silnika bezszczotkowego odróżnia go komutator i miejsce nawinięcia uzwojeń (wirnik a nie stojan). A teraz: dlaczego się tego elementu tak chętnie pozbyliśmy? Bo jest zawodny. I dlatego zaproponowałem użycie jak prądnicy silnika BLDC - dziś to tani element. Masz trzy uzwojenia na stojanie, dajesz prostownik trójfazowy z 6 szybkich diodek i masz gotowy "prąd stały" (dużo bardziej stały niż z silnika komutatorowego) do podłączenia rezystora lub MOSFETa będących obciążeniem. Żadnych śmieci, żadnego tarcia szczotek no i sama mechanika bardziej elegancka bo mniejsza. Nie rozumiem skąd ta nostalgia za silnikiem DC, przecież pod każdym względem będzie się tuitaj sprawował gorzej. A straty na prądnicy będą bezpośrednio przenosiły się na błędy pomiaru, bo skąd wiesz ile Watów mocy mechanicznej z wału tracisz na ciepło w sanej prądnicy, zanim jeszcze cokolwiek zmierzysz elektrycznie? Dlatego sprawność prądnicy ma tu podstawowe znaczenie a silnik DC jest pod tym względem tragiczny w porównaniu z bezszczotkowym. To kolejny argument za dobrym, niksooporowym BLDC lub jakimś innym bezszczotkowym. Nie upieram się jakim, wyierz jaki lubisz. Opory mchaniczne prądnicy powinny być minimalne, dobre łożyska, żadnych szczotek i sprężyn bo to Twój czujnik mocy. To co na nim stracisz, stracisz bezpowrotnie.

Drivery: no nie, tak dobrze nie jest. Układy z tej serii (te z pływającym driverem high side) mają bootstrap dynamiczny więc pompują sobie kondensator zasilający górny MOSFET z przebiegu wyjściowego. Jeżeli przewidujesz załączanie górnego klucza na dłużej niż dziesiątki ms, musisz zrobić napięcie sterujące "na piechotę". Zró to tak, by było to niezależne od poziomu napięcia zasilania głównego.

Zastanawiam się co jest tematem Twojej pracy. Czy opracowanie drivera silnika czy stanowisko pomiarowe. Od czego zależy granica tego co chcesz lub możesz stosować? Osobne tranzystory są OK, ale moduł trójfazowego stopnia wyjściowego już nie? Płytki o których pisałem są starter-kitami, zestawami developerskimi i do takiej pracy jak Twoja nadają się wręcz idealnie. Stanowią dobrze zaprojektowane stopnie końcowe właśnie do eksperymentów z silnikami. Zwykle nie zawierają procesorów więc ten wybór jest Twój. Choć zwykle pasują jakoś pinowo do płytek procesorowych np. do Discovery czy Nucleo. Jendak przymusu nie ma. Jeżeli uczelnia mogłaby dać Ci wsparcie, moim zdaniem głupotą byłoby nie skorzystać. W tej pracy będziesz miał wystarczająco dużo innych problemów - choćby z oprogramoiwaniem czy mechaniką i ergonomią całości - by robić wszystko od zera. No chyba, że taki jest cel podstawowy a cała ta hamownia to tylko kwiatek do kożucha. Miej na uwadze, że ie mając doświadczenia choćby w projektowaniu PCB nie zrobisz dobrze takiej płytki ani za pierwszym ani za trzecim razem, bo wciąz będziesz się uczył koljenych rzeczy. Masz tyle czasu w tej pracy?

Hamownie modelarskie przywołałem tylko jako przykład. Śmigło jest dobrym obciążenim jeśłi silnik będzie docelowo z nim pracował. Gdy interesuje Cię ciąg - wybór jest oczywisty. Tutaj oczywiście się nie sprawdzi, bo jak mierzyć moc wyjściową z wału? Chodziło mi tylko o to byś popatrzył na istniejące konstrukcje.

Żeby dobrze takie stanowisko zrobić i zmierzyć osiągi silnika musisz znać moc doprowadzoną do samego silnika a nie do całości więc i tak musisz mierzyć prądy faz, oraz oczywisćie moc wyjściową. Czy to pierwsze jakoś przemyślałeś?

Weź pod uwagę, że takie stanowisko może posłużyć w przyszłości nie tylko do testowania silników, ale także do uruchamiania nowych algorytmów sterowania. Zrób to tak, by procesor dostawał maksimum informacji z napędu (np. prądy faz, napięcia back-EMF do sterowań bezczujnikowych, może kąt wału lepszy niż z kilku czujników halla itd). Nietóre rzeczy nieiwele kosztują a bardzo rozszerzają zakres funkcjonalności zesatwu. Ktoś może będzie chciał zrobić stabilizowane obroty lub moment a inny stabilizowany kąt, bo robi gimball BLDC do kamery.

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

Cześć,

nie wiem ,czy znasz to SDK: STM32 Motor Control Software Development Kit (MCSDK) :

http://www.st.com/en/embedded-software/x-cube-mcsdk.html?ecmp=tt6877_gl_enews_apr2018&cid=stmDM9915&bid=136362750&uid=ZqkBD2GbkGLGDnmhpY1AswLSMJwsnxwl

ale być może będzie Ci pomocne w tym projekcie?

Pozdrazwiam

Link do komentarza
Share on other sites

Dobra, praca rusza do przodu. Nie odpowiadałem tyle czasu, bo bez sensu było zastanawianie się nad wszystkimi możliwościami bez żadnego ukierunkowania. Uczelnia mnie wspomoże finansowo, więc zdecyduję się na ten gotowy zestaw deweloperski. Zawęziło nam się grono komponentów, więc można zacząć wybierać. Ogólnie to pomysły macie świetne, dzięki bardzo.

Więc tak:

Będą 2 silniki BLDC o podobnej mocy. Pierwszy sterowany na pewno z czujnikami Halla i również z enkoderem (wtedy pomiar prędkości byłby na nim oraz byłaby możliwość zastosowania później algorytmu sterowania sinusoidalnego). Albo enkoder po drugiej stronie na wale łączącym tak jak pisał marek1707. Drugi najlepiej bezczujnikowy BLDC służący jako obciążenie (prądnica). Z niego na prostownik 3F i potem obciążenie regulowane. (pomysłem też było by 1 silnik miał czujniki halla, a 2 silnik enkoder i w razie zmiany algorytmu sterowania je przepinać po prostu, ale gdy wszystkie informacje mamy z 1 silnika to można zrobić ładne porównanie metod sterowania). Potrzebny jest pomiar mocy wejściowej silnika, zatem poszukuję drivera, który będzie mógł mierzyć od razu prądy w fazach, moc wyjściowa to już prostsza sprawa bo wystarczy mierzyć prąd już po wyprostowaniu.

Czyli po kolei:

1. Sterowanie z mikrokontrolera STM32F103 z platformy edukacyjnej ZL27ARM (częściowo narzucone, aczkolwiek tutaj też mam dowolność, z tym, że jak wybiorę coś innego to dostanę mniejsze wsparcie od promotora 😃). Informacje w obie strony pomiędzy platformą a sterownikiem(silnikami) raczej przez złącze IDC z gniazdem zamontowanym gdzieś na płytce, tak by podłączenie do stanowiska było maksymalnie najprostsze i wolne od błędów.

2. Najważniejsza rzecz: sterownik. Powinien mieć możliwość podłączenia czujników halla, enkodera, pomiar prądów faz i napięcia BEMF, (aczkolwiek enkoder i czujniki halla mogę podłączyć wprost do mikrokontrolera) no i oczywiście gotowy stopień mocy dla silnika.

Najlepszy wydawałby się ten:

http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/motor-control-solution-eval-boards/steval-ihm032v1.html

z tym, że sterownik do 150W to trochę przesada(zwłaszcza, gdy myśli się o mocach silników rzędu 20W na stanowisko też typowo edukacyjne..) poza tym 460zł za sam sterownik to trochę sporo, nawet mimo, że uczelnia płaci.

Następny w kolejce byłby ten:

http://www.st.com/en/evaluation-tools/steval-spin3201.html

z tym, że nie ma pomiaru BEMF, no i posiada mikrokontroler na "pokładzie"

Następnie dedykowane do Nucle:

http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-move-actuate-hw/x-nucleo-ihm08m1.html

http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-move-actuate-hw/x-nucleo-ihm07m1.html

z tym, że prezentowało by się to dość dziwnie w połączeniu z płytą ZL27ARM.

No nie wiem, doradźcie proszę coś bo mam mętlik. W sumie nie ograniczam się tylko do tych od firmy ST, może być dowolna, ale w nich dokumentacja wydaje mi się najlepsza, aczkolwiek jak zawsze różnie to bywa.

3. Dobór silników na razie zostawmy, póki nie zdecyduję się na któryś sterownik. Załóżmy tylko że moc maks 20-30W raczej na 24V by ograniczyć prąd. Moc nie duża, bo to ma być stanowisko edukacyjne.

Myślę, że coś takiego: http://www.wobit.com.pl/produkt/8906/silniki-bldc-seria-bg/bg32x20-24vdc-/ z tym, że mógł by mieć większą prędkość znamionową wtedy sterowanie prędkości mogłoby się odbywać w większym zakresie

4. Prostownik 3F z diodami i pomiar prądy wyjściowego. To również narazie pomińmy, jak już będzie wybrany silnik to się dobierze.

5. Obciążenie: Tutaj potrzebuję rady. Nie chcę stosować silników o zbyt dużej mocy, bo wtedy na obciążeniu, które miało być w postaci "drabinki" przełączanych rezystorów musiały być tracona ogromna moc w postaci ciepła. Wiem, że można też stosować Mosfety jako sztuczne obciążenie, tylko nie wiem jak to wtedy wygląda. Nie chodzi mi o podłączenie, ale o samą logikę działania i obliczenia do tego, jak się dobiera wtedy mosfet (no i oczywiście radiator do niego, ale tu już literatury jest dużo).

To by chyba było tyle, wydaje mi się, że w miarę to przemyślałem, ale pewnie w praniu wyjdzie jeszcze ile rzeczy pominąłem.

EDIT: FlyingDutch świetna rzecz, nadawało by się jak najbardziej, z tym, że znów się muszę zastanowić, bo działa to tylko na bibliotece HAL/LL, i znów jak się zdecyduję na tą bibliotekę to mam mniejsze wsparcie od promotora i jestem skazany na siebie, bo wolał bym to zrobił na bibliotece STDperiph..

Link do komentarza
Share on other sites

Jeśli chodzi o obciążenie, to niezależnie co zastosujesz i tak w końcu wylądujesz w cieple. Czy będą to oporniki czy MOSFETy, wszystko jedno. Musisz zmieć elementy zamieniające energię elektryczną na ciepło. Pewnym wyjściem jest zamiana na inną postać energii (np. promieniowanie z LEDów lub kolejny silnik i np wciąganie ciężarka na półkę), ale to słabo kontrolowalne.

Jeżeli ograniczysz się do rezystorów załączanych przełącznikiem lub nawet i tranzystorami, to masz tylko obciążenie typu "stała rezystancja" a to wcale nie jest ciekawy przypadek, Moja rada: niech elementem "grzewczym" będzie jeden lub dwa MOSFETy w TO220 posadzone na wspólnym radiatorze. Jedna tak obudowa spokojnie oddaje 100W do aluminiowego puca więc będzie nawet nadmiar. Sterujesz takim tranzystorem z procesora sygnałem analogowym (DAC, uśrednione PWM?), pośrednio przez prosty układ źródła prądowego. Innymi słowy zadajesz prąd od zera do jakiejś tram wartości granicznej jaką sobie przyjmiesz, np. 2 czy 10A. Procesor mając pomiar napięcia wyjściowego może na bieżąco wyznaczać potrzebny prąd tak by realizować obciążenie np. stałą mocą, stałą rezystancją czy - najprościej - stałym prądem itp. Taki układ jest uniwersalny, nie musisz się martwić o takie czy inne oporniki lub ich dostępne kombinacje. Proste i skuteczne. Zamiast przewymiarowanego radiatora możesz dać wiatrak załączany procesorem po przekroczeniu temperatury powiedzmy 60° mierzonej na radiatorze. Będzie wyglądało bardzo profesjonalnie 🙂

Link do komentarza
Share on other sites

O to właśnie mi chodziło, że jednak rezystory w zależności ile ich dam to będą obciążeniem o bardziej lub mniej skokowej zmianie, dlatego zastanawiałem sie nad tym mosfetem. Idea super, idę w to. Tylko tak, z tego co piszesz to sterowac mam mosfetem przez źródło pradowe, i nie bardzo wiem dlaczego. Przeciez w zależności od tego jakie napiecie dam na jego bramke to on sie bardziej lub mniej otworzy i bedzie mial wieksza lub mniejsza rezystancje wewnetrzna. Zrozumiał bym zrodlo pradowe w obwodzie DS by jednak zabezpieczyć uklad przed calkowitym otwarciem kanalu mosfetu (zwarcie na pradnicy) i ograniczeniem tego pradu, tylko wtedy i tak znow bylyby straty mocy na tym zrodle i to pewnie nawet wieksze niz na tym mosfecie. Mozesz mi to jakoś rozjaśnić, lub podać literaturę, lub nawet samą nazwę zagadnienia bym wiedzial czego szukac konkretnie? Niestety w większości wszedzie pisza same ogolniki. Co do radiatora z wentylatorem to faktycznie, koszt niewielki, dodatek kodu również a wyglada znacznie lepiej. Dzieki 😃

I jakbyś się jeszcze ustosunkował do zastosowania silnika z podlaczonym rownoczesnie enkoderem i czujnikami halla po jednej stronie walu, a po drugiej samo sprzeglo z pradnica? Najlepszy pomysł?

Link do komentarza
Share on other sites

Czyli po kolei:

1. Sterowanie z mikrokontrolera STM32F103 z platformy edukacyjnej ZL27ARM (częściowo narzucone, aczkolwiek tutaj też mam dowolność, z tym, że jak wybiorę coś innego to dostanę mniejsze wsparcie od promotora 😃). Informacje w obie strony pomiędzy platformą a sterownikiem(silnikami) raczej przez złącze IDC z gniazdem zamontowanym gdzieś na płytce, tak by podłączenie do stanowiska było maksymalnie najprostsze i wolne od błędów.

2. Najważniejsza rzecz: sterownik. Powinien mieć możliwość podłączenia czujników halla, enkodera, pomiar prądów faz i napięcia BEMF, (aczkolwiek enkoder i czujniki halla mogę podłączyć wprost do mikrokontrolera) no i oczywiście gotowy stopień mocy dla silnika.

Najlepszy wydawałby się ten:

http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/motor-control-solution-eval-boards/steval-ihm032v1.html

z tym, że sterownik do 150W to trochę przesada(zwłaszcza, gdy myśli się o mocach silników rzędu 20W na stanowisko też typowo edukacyjne..) poza tym 460zł za sam sterownik to trochę sporo, nawet mimo, że uczelnia płaci.

Następny w kolejce byłby ten:

http://www.st.com/en/evaluation-tools/steval-spin3201.html

z tym, że nie ma pomiaru BEMF, no i posiada mikrokontroler na "pokładzie"

Następnie dedykowane do Nucle:

http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-move-actuate-hw/x-nucleo-ihm08m1.html

http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-move-actuate-hw/x-nucleo-ihm07m1.html

z tym, że prezentowało by się to dość dziwnie w połączeniu z płytą ZL27ARM.

No nie wiem, doradźcie proszę coś bo mam mętlik. W sumie nie ograniczam się tylko do tych od firmy ST, może być dowolna, ale w nich dokumentacja wydaje mi się najlepsza, aczkolwiek jak zawsze różnie to bywa.

EDIT: FlyingDutch świetna rzecz, nadawało by się jak najbardziej, z tym, że znów się muszę zastanowić, bo działa to tylko na bibliotece HAL/LL, i znów jak się zdecyduję na tą bibliotekę to mam mniejsze wsparcie od promotora i jestem skazany na siebie, bo wolał bym to zrobił na bibliotece STDperiph..

Cześć,

ja jednak zdecydowałbym się na oryginalne STM32-Nucleo (więcej dostępnego przykładowego kodu - sprawdzonego). Nie ma się co bać HAL 😉

Jak dobrze uczelnia pogada z przedstawicielami firmy "STMicroelectronics Polska" to dostaniecie od nich wszystkie potrzebne części i wsparcie za darmo (ja dostałem części do prototypu urządzenia za darmo).

Pozdrawiam

Link do komentarza
Share on other sites

Nie, nie, mój skrót myślowy był widocznie zbyt duży. MOSFET robi za obciążenie prądnicy. Jego bramka jest sterowana ze wzmacniacza operacyjnego tak, by cały ten zespół był sterowanym napięciem źródłem prądowym. Na wejście wzmacniacza podajesz napięcie z DACa (jeśli masz w procesorze) lub z uśrednionego PWM i np. zakres 0..3V przekłada się na prąd 0..2A. Z resztą skalę dobierasz dowolnie. Troszkę bardziej skomplikowany układ może od razu udawać programowany rezystor, gdzie płynący prąd jest proporcjonalny (z jakimś zadawanym DACem współczynnikiem zwanym potocznie rezystancją) do napięcia prądnicy. Możesz też prąd wyliczać na bieżąco procesorem, jak napisałem wcześniej, odpowiednio do jakiegoś algorytmu.

W sumie zwykłe rezystory (nawet chłodzone wiatrakiem) to też niezłe rozwiązanie. Jeżeli masz jakiś przewidywany zakres mocy silników/prądnic to dwa-trzy rezystory (jeden na stałe plus dwa załączane równolegle do tamtego MOSFETami) powinny pokryć zakres sensownych obciążeń przy zachowaniu koniecznej precyzji pomiarów napięcia i prądu.

Link do komentarza
Share on other sites

FlyingDutch też wyjście z tym nucleo, na pewno byłoby prościej, ale jakby nie patrzeć to do każego kitu deweloperskiego jest dostępny przykładowy kod. Z biblioteką Cube też nie ma problemu, HAL składnią i funkcjami jest bardzo podobobny do Std, więc pewnie skończy się na tym, że będę to pisał przy pomocy właśnie tej bilbioteki.

Zastanawiam się jednak nad tą płytką:

http://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/motor-control-solution-eval-boards/steval-spin3202.html

Co o niej myślicie? Posiada od razu mikrokontroler ten sam co na płycie ZL, gotowy stopień wyjściowy i możliwość podłączenia HALL/enkoder, jest również pomiar napięcia wejściowego silnika oraz pomiar prądu fazy i możliwość sterowania sensorless i sensored. Także wszystko co chciałem. Mam tylko pewne wątpilwości, powiedzcie czy się mylę. Pomiar prądu jest tylko w 1-fazie, więc jak zatem poprawnie mierzyć moc wejściową silnika? I jak tutaj odbywa się sterowanie bezczujnikowe? I druga rzecz: wejście na czujniki halla i enkoder są na tych samych pinach, więc nie jestem w stanie otrzymywać informacji z nich obu na raz, da się to jakoś rozwiązać?

Tutaj nota pdf: http://www.st.com/resource/en/user_manual/dm00428288.pdf

marek1707, coś takiego miałeś na myśli?

Rozwiązanie z źródłem prądowym i MOSFETem jako obciążenie wydaje się lepszym pomysłem niż kilka zwykłych rezystorów, lepiej się to będzie prezentować i mniej elementów mocy. Jakby nie było to przy rozwiązaniu ze wzmacniaczem i tak potrzebuję jakiś rezystor mocy, lepiej zastosować 1, niż 3. Tylko teraz pomiar prądu i napięcia na wyjściu jakoś będzie trzeba zrealizować. Pomiar prądu nie będzie raczej problemem, czujników jest sporo, ale jak z napięciem wyjściowym?

EDIT: rezystor R1 dałem wartość 330mΩ tak by przy prądzie 3A odłożyło się naięcie około 1V, wtedy moc na nic to około 3W. Wypełnienie 90% odpowiada uśrednionemu PWM jako napięcie około 3V.

Link do komentarza
Share on other sites

Czujniki Halla i enkoder właściwie się wykluczają więc po co im osobne piny? Albo jedno albo drugie albo.. jeszcze coś innego. W danej aplikacji stosujesz tylko jeden wybrany sposób dowiadywania się o położeniu wału.

Z punktu widzenia pomiarów mocy i sprawności można spokojnie założyć, że średni prąd za jeden obrót we wszystkich fazach jest taki sam. Regulator silnika 3F nie zmienia tak szybko swojego wyjścia a z resztą pomiarów będziesz dokonywał w warunkach ustalonych, czyż nie?

Czyżby braki w teorii? Sterowanie bezczujnikowe wymaga pomiaru napięcia back-EMF na niesterowanej (w danym cyklu komutacji) fazie. Tutaj masz taką możliwość, bo każdy z trzech końców silnika ma swoje "czyste" wyście OUTU, OUTV, OUTW (schemat 2 z 4) podłączone przez dzielniki do portów procesora, odpowiednio PA0, PA1 i PA2 (schemat 3 z 4).

Układ źródła? No nie całkiem:

1. Wzmacniacz musi być sterowany napięciem "analogowym" i takie samo będzie się starał utrzymywać na oporniku R1 - to jest podstawowa zasada działania. Musisz więc PWM uśrednić filtrem RC o wystarczająco dużej stałej czasowej (w stosunku do okresu PWM) by tętnienia na wejściu wzmacniacza były małe.

2. Napięcie wejściowe wzmacniacza (odniesione będzie oczywiście do GND procesora) i dolny koniec opornika R1 muszą być na tym samym potencjale. To oznacza, że minus prądnicy oraz dolny końca opornika R1 muszą być podłączone do masy procesora.

3. To jest szkolny układ pokazowy na prezentację "Źródła prądowe i dlaczego". W rzeczywistym musisz uwzględnić warunki stabilności, bo będzie się wzbudzał.

4. Układ nie będzie na tyle szybki by działać dobrze (tj. nadążać ze stabilizacją prądu) gdy napięcie wyprostowane będzie miało okres milisekund. Proponuję dać jednak kondensator wyrównujący za prostownikiem i pracować na prądzie "stałym". Wzmacniacz operacyjny ma wydajności wyjściowe rzędu 10-20mA i nie jest przeznaczony do sterowania obciążeniami pojemnościowymi. Te mA są kroplą w morzu potrzeb dużego MOSFETa, którego bramka to wielki kondensator.

Widząc co rysujesz proszę o przemyślenie tych obciążeń raz jeszcze. Wstawiając prosty i znany rezystor wystarczy, że zmierzysz na nim napięcie. Nawet nie musisz mierzyć prądu wyjściowego prądnicy (bo przecież P=U²/R). W skrajnym przypadku, dając trzy takie same oporniki nie musisz także robić prostownika co usuwa kolejne błędy pomiarowe. Poczytaj o zasadzie KISS. Wystarczająco szybkie próbkowanie ADC (a STM to umie) pozwoli wyznaczyć wartość skuteczną napięcia a więc moc. Przecież ograniczając się do mocy np. 20W wystarczy jeden opornik za kilka złotych, np. taki:

https://www.tme.eu/pl/details/crl30w-4r7/rezystory-30w/sr-passives/

Przy 10V masz już na nim 21W i wciąż margines 10W na ew. przeciążenie. A chyba 10V umiesz zmierzyć wystarczająco dokładnie, prawda?

Link do komentarza
Share on other sites

Tak wiem, że zazwyczaj jest to albo/albo, lecz w tym projekcie założeniem jest by jednak sterowanie odbywało się przez sygnały z czujników Halla, a odczyt prędkości był niezależnie od rodzaju sterowania realizowany na podstawie sygnałów z enkodera, także muszę jakość je połączyć.

To znacznie upraszcza pomiar mocy wejściowej, dzięki.

Metody sterowania znam, za to pytanie przepraszam, nie wiem jak ale przeoczyłem te wyprowadzone sygnały. Aczkolwiek dalej nie wiem jak to się stało, jak jest przecież wszystko wypisane w tabeli.

Jednak tego kita muszę zostawić i wybrać inny, bo pomijam już sprawę z hall/enc, ale jednak nie mam jak wziąć i wyprowadzić z tego mikrokontrolera chociażby dodatkowego sygnału PWM do wzmacniacza op., czy nawet nie mam jak mierzyć napięcia przez wejście ADC na rezystorze pomiarowym do obliczenia mocy wyjściowej.

Teraz odnośnie układu źródła:

1. Wstawiłem filtr dolnoprzepustowy, dobrałem R=4.7kΩ oraz C=100nF co daje stałą czasową τ niecałe 500us, a dzięki wysokiej częstotliwości 50kHz mamy praktycznie stałe napięcie wyjściowe. Dzięki małej stałej czasowej układ jest dość szybki, więc powinien nadążyć ze zmianą prądu by utrzymać np stałą moc wyjściową. Widać, że 3V osiąga od 0 w około 2ms.

2. Racja, sygnał musi być względem tego samego potencjału, zatem masy połączone.

3 i 4. Wstawiłem opornik za wyjściem wzmacniacza, by ograniczyć prąd ładowania bramki. Napięcie za prostownikiem również wyprostowane. (nie jestem pewien co do dobranych wartości)

Układ teraz prezentowałby się tak: (pomiar napięcia zaznaczony symbolicznie, jeszcze bez dzielnika napięcia)

Tylko, czy dając 3 takie same oporniki (1 na każdą fazę) potrzebuję dodatkowo 3 takich układów źródeł prądowych i 3 dzielniki do pomiaru napięcia tak? Czy jak inaczej byś to widział?

Zasadę KISS znam, niestety racje rzadko o niej pamiętam i wiele rzeczy komplikuję, to prawda 😃

EDIT: Myślałem trochę o pomiarze mocy wyjściowej i o ile pomiar napięcia nie jest problemem to jednak moc ze wzoru P=U²/R jestem w stanie tylko dokładnie określić wydzielaną na samym rezystorze, a przecież to nie będzie cała moc wyjściowa prądnicy, jest jeszcze spadek napięcia na samych diodach prostownika oraz spadek napięcia na MOSFECIE. Czy uważasz, że taki pomiar mocy jest wystarczająco dokładny? Aczkolwiek wątpię.

Założyłem max napięcie na R5 12V i przy stosunku rezystrów 18k÷6.8k dla 12V otrzymam na przetworniku napięcie 3.29V. Dodałem również diody zabezpieczające wejście MCU przez zbyt wysokim i niskim napięciem.

Link do komentarza
Share on other sites

1. Z wyborem płytki nie dyskutuję. Dziwi mnie tylko to założenie o równoległości. Przecież algorytm sterowania musi zawsze precyzyjnie znać położenie wału a więc, pośrednio i prędkość obrotową. Niezależnie od metody sprzężenia zwrotnego taka informacja musi być dostępna dla procesora z definicji. Czyżby autor założeń o tym nie wiedział? Po co jeszcze dodatkowy/nadmiarowy element mechaniczny? Zamiast spełniać bezsensowne wymagania spróbuj przekonać kogoś decyzyjnego do swojej racji.

3,4. Na pewno rozumiesz, że dodawanie takich elementów (tutaj koniecznych) powoduje, że układ robi się coraz wolniejszy? Generalnie jeśli jesteś zmuszony do takich ruchów to zwykle polegają one na ograniczenia wzmocnienia dla wyższych częstotliwości w celu zwiększenia marginesu fazy a to oznacza, że reakcje układu są spokojniejsze. W tym konkretnym przypadku będziesz musiał polegać na wygładzaniu napięcia wyprostowanego przez kondensatory, bo źródło będzie słabo reagowało na tętnienia spowodowane obracaniem się wału.

Tego pod koniec nie rozumiem. Albo dajesz prostownik 3-fazowy i wtedy jedno, wspólne obciążenie i to może być cokolwiek: opornik albo źródełko wysysające, albo prostownika nie masz i wtedy masz trzy napięcia przemienne więc trzy oporniki. Źródła prądowe wtedy odpadają, bo bez sensu jest ich stosowanie gdy napięcie waha się od zera do max. Jaka wtedy jest moc?

Na schemacie robisz jakieś założenia o których nic nie wiemy. Układ takiego źródła jest dobry, gdy może pracować w szerokim zakresie napięć z prostownika. Powinno umieć wciągać ten sam prąd dla 10V jak i dla powiedzmy 500mV, prawda? Ograniczeniem jest tutaj.. wejście i wzmacniacz. Popatrz, jeśli sterujesz je napięciem 0-3V to napięcie odkładane na oporniku pomiarowym także będzie 0-3V. Jeżeli ustawisz na wejściu np. 2V to:

a. Układ stara się stabilizować napięcie na oporniku pomiarowym = 2V.

b. MOSFET wymaga pewnie kilku woltów na bramce względem źródła (np. 3V) więc na wyjściu wzmacniacza musi już być 2+3=5V.

c. Jeśli zasilasz go z 5V, LM324 da na wyjściu maksymalnie jakieś 3.8V. Skucha.

Co więcej, napięcie na oporniku pomiarowym (a więc i wejściowe) jest bezpośrednią "wadą" tego źródła i dolnym ograniczeniem zakresu napięć od jakich pracuje. Układ będzie działał dobrze dopiero od takiego samego napięcia na drenie, bo źródło MOSFETa nie stoi na masie tylko na R1. Musisz znacznie zmniejszyć zakres zmian wejścia np. do 0-100mV (dzielnik po odfiltrowaniu RC). Wtedy na R1 będzie się odkładało co najwyżej te 100mV i źródełko będzie dobrze pracować już od takich napięć. Wtedy dla zakresu prądów powiedzmy do 3A masz opornik R1=100mV/3A czyli 33mΩ. Wstaw coś w okolicach, przelicz i po sprawie. W dodatku jego moc wychodzi wtedy 0.3W więc podejdzie nawet jakiś większy SMD. Głównym elementem wytracającym moc jest tu MOSFET, bo to a nim ma się odkładać 99% napięcia. Dopiero wtedy masz szeroki zakres pracy.

Przyjmując 100mV (czy jakoś tak) napięcia na R1 poprawiasz znacznie sterowanie tranzystora. Jego źródło nie jedzie już tak wysoko więc dla dobrego tranzystora wystarczy zasilanie wzmacniacza z 5V. Pracując z małymi napięciami wejściowymi i potrzebą podjeżdzania wyjściem do Vcc weź taki z małym offsetem i wyjściem RR, np. to:

https://www.tme.eu/pl/details/mcp6072-e_sn/wzmacniacze-operacyjne-smd/microchip-technology/

Tranzystor znajdź taki, który w pełni otwiera się już przy Vgs<3.5V. Żadne tam BUZ11 czy inne tanie starocie. Dziś jest tego sporo.

I jeszcze: procesor musi wiedzieć, że płynie (lub nie) zadany prąd. Nie wystarczy jego ustawienie przez PWM. Gdy napięcia z prostownika jest za mało, tranzystor otworzy się na maksa a i tak więcej nie popłynie niż przez R1. Wtedy bramka podskakuje do napięcia = Vcc wzmacniacza i to musisz wykrywać, bo jest to oznaką nasycenia źródła i jego niepoprawnego stanu. Musisz to mierzyć lub detekować jakimś komparatorem (drugi wzmacniacz z tej obudowy?). Normalnie napięcie bramki będzie się utrzymywać z dala od tego poziomu i właśnie dlatego masz znaleźć MOSFET otwierający się znacznie wcześniej.

A miało być tak pięknie.. No ale co się nauczysz to Twoje 🙂

EDIT: Widzę, że dodałeś pomiar napięcia na R1. Po co? Przecież ono jest takie jak napięcie wejściowe z dokładnością do przypadku nasycenia źródła, ale to musisz osobno wykrywać i jest to dużo łatwiejsze przez pomiar stanu wyjścia wzmacniacza.

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.