Witam, jak w temacie - buduję sobie sterowniczek na procesorku atmela, interesuje mnie czy część wykonawcza którą zamieszczam jest słuszna i poprawna konstrukcyjnie Może jakieś ciekawe pomysły lub spostrzeżenia. Myślę że układ w takiej postaci powinien już działać, ale można go jeszcze pewnie jakoś ulepszyć. Silnik pobiera kilka A prądu i dla takich wartości jest projektowany.
Przejrzałem trochę sterowników w internecie ale większość jest bardzo prosta i nie spełnia warunku kontroli prądu silnika, lub wyposażona jest tylko w liniowe źródło prądowe. Wadą takiego źródła jest wydzielanie znacznej ilości ciepła w tranzystorze regulacyjnym.
Ja wymyśliłem sobie, że prąd regulowany będzie sygnałem PWM z procesora, który na bieżąco mierzy aktualne obciążenie i utrzymuje go na ustalonej wartości. Procesor redukuje też prąd silnika do połowy przy postoju wału.
Tranzystory MOSFET T1-T4 sterują poszczególnymi cewkami silnika, tranzystor T5 służy do impulsowej regulacji prądu. Tranzystory T1-T5 (jakieś mosfety mocy N - jeszcze nie wybrałem) kluczowane są z Driverów TC427 które przyspieszają przeładowanie bramki.
Wzmacniacz operacyjny LM358 mierzy spadek napięcia na rezystorze bocznikowym 2 x 0,2 ohm i wzmacnia go odpowiednio do poziomu
przetwornika A/C. Spełnia też rolę filtra i prostownika aktywnego który zamienia zmienne napięcie na stałe proporcjonalne do wartości mierzonego prądu.
Prosił bym się kolegów o wypowiedź na temat takiego sposobu sterowania silnikiem krokowym, pomiaru pradu i czy dolny mosfet T5 sterowany takim Driverem (T8 T9) na "patencie" z układem totem pole będzie się w pełni otwierał.
Pozdrawiam i zapraszam do dyskusji ludzi, którzy budowali coś podobnego lub siedzą w temacie sterowania mosfetami
PS Na schemacie zamienione jest pomyłkowo wejscie + z - wzmacniacza operacyjnego, wiec proszę nie zwracać na to uwagi.
Witam.
Intencje szlachetne, ale uklad ... hmm.
Blad kardynalny: kiedy T5 jest OFF, zrodla T1 ... T4 wisza w powietrzu - jak zatem chcesz toto sterowac? Malo tego: kiedy T5 wylacza, czyli jeden z T1 .. T4 jest wlaczony, to cala reszta z tej cworki, bedaca w stanie wylaczenia orzymuje momentalnie Ugs = - 24 V i mozesz je wymienic na nowe Jesli juz, nalezaloby limiter z T5 (oraz typu P-Ch lub PNP) zapiac od gory (+24V).
D2 ... D5 powinny byc zapiete nie wprost na +24V (to spowalnia wylaczanie faz, czytaj limituje maksymalna czestotliwosc krokow), lecz przez rezystor R = (Uds-max - Vzas)/Izn, gdzie Izn - znamionowy (maksymalny) prad uzwojenia, Uds-max tyczy T1 ... T4, Uzas = 24V.
Caly uklad sygnalizacji "przeciazenia" jest zbedny, wszak pracujesz z pradem maksymalnym, ktory jest parametrem znamionowym silnika; jesli go przekroczysz, albo sie mikrokontroler zapomni przy wlaczonej fazie, to nawet przy pradzie znamionowym, po dluzszej chwili usmazy sie uzwojenie. Kontrola temperatury robilaby chyba wiecej sensu.
W zasadzie nie ma potrzeby uzywac kanalu PWM mikrokontrolera aby zrealizowac idee.
Polecam pilnie lektrue http://www.cs.uiowa.edu/~jones/step/current.html I uklady "One-Shot Feedback Current Limiting" (Figure 4.7) oraz "Practical Examples" (Figure 4.12).
Jesli koniecznie maja byc MOSFETy, nie zapominaj, ze wymagaja one dobrego wysterowania bramki (rzedu 10V), a ponadto nie lubia obciazen indukcyjnych, chyba ze stosujesz specjalne "gate driver" jak ten TC427 (ale sterujace wprost G-S, a nie jak tutaj zamotales), co zazwyczaj zalatwia obydwie sprawy.
Pozdrawiam
Dziękuje kolego za odpowiedź, faktycznie jakoś nie pomyślałem, że te mosfety będą wisieć w powietrzu. W takim razie przerobię układ dając na górze T z kanałem P, który będzie kluczował PWM-em dolne tranzystory.
Można też kluczować PWM-em sygnały sterujące idące do TC427, a nie dodatkowym tranzystorem mocy. Zastanawiam się co będzie lepsze.
Układ pomiaru prądu musi pozostać, ponieważ zamierzam sterować silnik dużo wyższym napięciem niż znamionowe, kontrolując prąd, ew temperaturę silnika aby go nie uszkodzić.
Wrzucam schemat poprawionej wersji drivera, na symulacji w TINIE wygląda, że taki układ mosfetów powinien działać. Jednak symulowałem tylko statyczne przełączanie tranzystorów bez stanów przejściowych. Z ewentualnymi przepięciami na cewkach silnika sobie poradzę.
kolego nemo07 przeczytałem część artykułu który mi podesłałeś, informacje są bardzo pożyteczne z tym że wszystko tam jest realizowane bez procesora który u mnie odpowiada za generowanie sygnałów kroków, regulacje prądu, hamowanie i utrzymywanie wału silnika na połowie prądu w czasie postoju.
Jak możesz to zerknij na schemat i powiedz czy to według Ciebie ma szansę działać zanim zacznę robić prototyp.
Wrzucam schemat poprawionej wersji drivera, na symulacji w TINIE wygląda, że taki układ mosfetów powinien działać. Jednak symulowałem tylko statyczne przełączanie tranzystorów bez stanów przejściowych. Z ewentualnymi przepięciami na cewkach silnika sobie poradzę. ...
kolego nemo07 przeczytałem część artykułu który mi podesłałeś, informacje są bardzo pożyteczne z tym że wszystko tam jest realizowane bez procesora który u mnie odpowiada za generowanie sygnałów kroków, regulacje prądu, hamowanie i utrzymywanie wału silnika na połowie prądu w czasie postoju.
Jak możesz to zerknij na schemat i powiedz czy to według Ciebie ma szansę działać zanim zacznę robić prototyp.
Kolego Jaco18!
Intuicja Cie ne zwiodla co do uzytecznosci metody PWM, lecz jedna wazna rzecz musisz zrozumiec, aby przekuc pomysl w realnie funkcjonujacy schemat: uzwojenia silnika to nie rezystancja pur, lecz przede wszystkim indukcyjnosc. Jesli chcesz kontrolowac prad uzwojenia (w stanie wlaczenia) przy pomocy PWM, musisz uzyc uklad regulacji ze sprzezeniem zwrotnym mierzacym prad na zasadzie cycle-by cycle, i regulujacym przez porownanie z referencja (np. zalozony Imax) wspolczynnik wypelnienia impulsu D.
Jest to zupelnie inaczej, niz przy regulacji metoda PWM pradu w odbiorniku czysto rezystywnym R, gdzie impedancja obciazenia jest rzeczywista, stala w czasie (i wynosi R). Tutaj mamy kombinacje szeregowa R + XL (i o zmiennych wartosciach). Ten wlasnie fakt stanowi fundamentalny problem sterowania silnikami indukcyjnymi, w szczegolnosci problemy szybkosci przelaczania uzwojen (faz) oraz strat cieplnych.
Mowiac lapidarnie, adekwatny uklad kontroli PWM dla takiego silnika, to uklad konwertera typu "step-down" pracujacego w trybie "current mode control", zwartego na wyjsciu (przez "current sensing shunt") i mierzacego (czytaj: regulujacego przez petle "feedback") nie napiecie wyjsciowe (wszak uklad zwarty na wyjsciu), lecz prad wyjsciowy, prad zwarcia (moze byc programowalny), a role induktora spelnia w nim uzwojenie silnika. Wymaganiem dodatkowym jest szybka odpowiedz impulsowa, czyli aby zadany prad byl wlaczany i wylaczany szybko (niskie czasy ustalania pradu nominalnego oraz wylaczenia) dla uzyskania szybkich krokow, co wymaga dostatecznie wysokiego napiecia zasilania tegoz konwertera (Ub = 24 V lub wiecej).
Utrudnieniem jest, ze producenci silnikow nie podaja istotnego parametru jakim jest indukcyjnosc uzwojen L, dlatego testy sa konieczne na etapie projektowania. Wartosc L jest kluczowa przy wyborze czestotliwosci PWM przy zalozonych Ub oraz Iripple.
Polecam z naciskiem rozdzial "Use of Pulse Width Modulation" z przytoczonego linku:
http://www.cs.uiowa.edu/~jones/step/current.html#pwm Zrozumienie tej materii (jak i zrozumienie zasady pracy konwertera typu "step-down" oraz "current mode control") jest esencjalne dla takiego projektu.
W Twoim schemacie brak jest wlasnie sprzezenia zwrotnego z ukadu pomiaru pradu, ktory na dodatek, z racji czasu odpowiedzi (stala czasu R17*C6) jest nieadekwatny do pomiaru cycle-by-cycle. Niezaleznie od tego, jest malo prawdopodobne, aby mikrokontroller byl w stanie realizowac wymagane sygnaly PWM (czytaj: regulowac w czasie rzeczywistym). Dlatego wskazalem rozdzial "Practical Examples", Fig. 4.12
http://www.cs.uiowa.edu/~jones/step/current.html#practhyst jako sensowny punkt startowy do prototypowania.
Zauwaz, ze uklad ten realizuje autonomicznie funkcjonujacy regulator PWM z zadanym pradem wlaczenia rownym 1 A (w grubym przyblizeniu, patrz pkt 2 ponizej), i taki moglbys wprost wykorzystac (z naleznymi modyfikacjami, gdzie potrzebne).
Zauwaz ponadto, ze:
1. Uzyty komparator musi miec "input common mode exceeding positive supply rail", a poniewaz jest zapiety na "high-side", moze byc wymagana translacja poziomu wyjscia na poziomy zwiazane z GND (uzycie tranzystora PNP lub P-Ch MOS).
2. Komparator ustala okres oscylacji ("okres PWM") przez pomiar pradu szczytowego Ipk (tutaj 1 A); prad w stanie wlaczenia Iav (wartosc srednia) wyniesie Iav = Ipk - Iripple-pp/2 (Iripple-pp - prad miedzyszczytowy uzwojenia). Przy optymalnym sterowaniu Iripple-pp powinien byc maly. Wartosc te ustala histereza (tutaj fix, rezystory 12 Ohm i 12 kOhm, dla celow testowania jeden z nich mozna zastapic regulowanym) na poziomie Iripple-pp [A] ≈ (12/12k)*(Uo_pp/0.6)*Ipk ≈ 1.6*10exp(-3)*Uo_pp, gdzie Uo_pp - wartosc numeryczna amplitudy (peak-peak) wyjsciowego napiecia komparatora [wyrazona w V], Ipk - prad szczytowy [A]. Wspolczynnik wypelnienia D bedzie zatem niemalze staly (wahania zalezne od obciazenia) i bliski 0.5, zatem nie jest to scisle mowiac uklad regulacji PWM, lecz uklad regulacji pradu tetnien induktora (Iripple), ale istotna jest zasada "switch-mode" (SMPS), ktora umozliwia zasilanie silnika w sposob maksymalnie efektywny (redukcja strat do minimum). Glebokosc histerezy (a zatem stosunek Iripple/Ipk) wyznacza zarazem czestotliwosc oscylacji tego pseudo-PWM. Uklad pozwala ustawic czestotliwosc automatycznie i w sposob najprostszy (przy danym Ub oraz zalozonym Iripple), jest niemalze fool-proof i prostszy od minimalnych wersji "current-mode controller".
3. Rezystor po prawej od Rsense = 0.6 Ω jest konieczny dla szybkiego wylaczania faz (pisalem juz, ale zignorowales!); patrz "One-Shot Feedback Current Limiting", Fig. 4.7, rezystor R2:
http://www.cs.uiowa.edu/~jones/step/current.html#oneshot 4. Zamiast uzytej referencji fix (0.6 V, dioda Si) mozna uzyc programowalnej (rezystor plus programowane zrodlo pradowe).
5. Najwazniejsze - ten uklad (pseudo-)PWM nie wymaga resorsow mikrokontrolera i oferuje wejscia (poziomy logiczne) do bezposredniego sterowania z kontrolera. Do bramek AND ukladu jak w Figure 4.12 prowadzisz swoje sygnaly A, B, C i D.
6. Uklad pomiaru pradu mozna uproscic zapinajac Rsense na "low-side" (GND), jesli fazy silnika beda sterowane z uzyciem kluczy typu P-Ch sterowanych przez tzw. "high side drivers".
7. Przedstawiony uklad jest dla jednej sekcji uzwojen silnika unipolarnego; druga sekcja wymaga drugiego identycznego ukladu (pseudo-)PWM.
Taki czy podobny w zasadzie dzialania, autonomiczny uklad regulatora (pseudo-)PWM powinien zatem zostac wkomponowany w Twoj schemat.
Kolego dziękuję bardzo za tak szerokie opisanie problemu - faktycznie nie spodziewałem się, że to będzie tak skomplikowana sprawa i wyniknie dużo dodatkowych problemów.
Nie wziąłem pod uwagę, że indukcyjne obciążenia przy szybkim przełączaniu będzie powodować przesunięcia prądu względem napięcia, konieczność szybkiej kontroli prądu uzwojenia w celu regulacji w czasie rzeczywistym itp.
Mój układ kontroli prądu działa, ale dość wolno - więc mógłby tylko służyć do wykrycia zablokowania się osi silnika - a to praktycznie nie ma szansy wystąpić w budowanym urządzeniu.
Spróbuję chwilowo zbudować układ opisany w artykule, który nie utrzymuje stałego prądu, ale w momencie włączania uzwojenia podwyższa chwilowo napięcie dla każdego kroku http://www.cs.uiowa.edu/~jones/step/current.html#oneshot rys 4.5 "Use of a Voltage Boost"
Jeżeli to zadziała, to będę potem budować układ "One Shot Current limiting" z PMW, chętnie skorzystam z mądrych uwag kolegi / kolegów.
Nie wziąłem pod uwagę, że indukcyjne obciążenia przy szybkim przełączaniu będzie powodować przesunięcia prądu względem napięcia, konieczność szybkiej kontroli prądu uzwojenia w celu regulacji w czasie rzeczywistym itp.. ...
Tu nie tyle "przesuniecie fazy" jest tematem, co "stan nieustalony" w momencie wlaczenia, wszak zasadniczo to obwod pradu stalego - tak dla scislosci.
Prad w takim ukladzie, o ile zaniedbamy niska wartosc rezystancji uzwojenia, narasta z predkoscia zdeterminowana prawem Faraday'a:
dU = L*dI/dt, dI/dt - szybkosc narastania pradu w indukcyjnosci L.
Po uwzglednieniu warunku brzegowego w momencie zalaczenia, dU = ΔU = Ubat i przeksztalceniu mamy szybkosc narastania pradu:
dI/dt = Ubat/L
I ta zaleznosc do praktycznych zastosowan jest wystarczajaca. Podpowiada ona rowniez, ze dla szybkiego rozruchu silnika Ubat powinno byc wysokie, oraz to, ze dla zadanego Imax silnika, dopuszczalny czas zalaczenia pelnego Ubat wyniesie:
Δt_max = Imax*L/Ubat
Jaco18 wrote:
... Mój układ kontroli prądu działa, ale dość wolno - więc mógłby tylko służyć do wykrycia zablokowania się osi silnika - a to praktycznie nie ma szansy wystąpić w budowanym urządzeniu. ...
Dlatego pisalem, ze jest zbyteczny, tym bardziej, ze uklad regulacji, jak wyjasnione wyzej, zapewnia permanentna i pelna kontrole pradu.
Jaco18 wrote:
... Spróbuję chwilowo zbudować układ opisany w artykule, który nie utrzymuje stałego prądu, ale w momencie włączania uzwojenia podwyższa chwilowo napięcie dla każdego kroku http://www.cs.uiowa.edu/~jones/step/current.html#oneshot rys 4.5 "Use of a Voltage Boost"
Jeżeli to zadziała, to będę potem budować układ "One Shot Current limiting" z PMW ...
Dlaczego nie od razu uklad z Figure 4.12 ?
http://www.cs.uiowa.edu/~jones/step/current.html#practhyst Zauwaz, ze dla zasilania Ubat rownego wartosci, jaka ma miec Ubat w trybie "boosted" obydwa uklady sa rownowazne, ale "one shot" jest pod kazdym wzgledem lepszy, bo jest kompletny, samowystarczalny i latwy w regulacji. Poza tym adaptuje sie samoczynnie dla zadanych wartosci Imax oraz Iripple (np. adaptuje sie przy zmianie Ubat).
Natomiast w ukladzie "voltage boost" musisz gdzies zafiksowac czas "boost", a to niesie potencjalne zagrozenie dla silnika, albo pracy poza optimum, gdyz czas nie jest "parametrem explicite"; jesli np. zafiksujesz ten parametr w software uC, to np. przy pozniejszej modyfikacji czestotliwosci zegara uC, czy zmianie Ubat, musisz rowniez o tym pamietac (poprawic software), itd., itp.
Co sie zas tyczy ewentualnych komplikacji ukladowych zwiazanych z punktami 1 i 6 z poprzedniego postu, nie sa one konieczne tak dlugo jak Ubat nie przekracza maksymalnego napiecia zasilania (rail-rail) uzytego komparatora. Poza tym, do komparacji mozna uzyc innego ukladu niz monolityczny komparator.