Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 15 lis 2024, o 11:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 3 mar 2017, o 14:45 
Offline
Nowy

Dołączył(a): 10 maja 2016
Posty: 9
Pomógł: 0

Witam,

Zdecydowałem się napisać na forum z prośbą o pomoc, ponieważ już nie mam pomysłu jak rozwiązać mój problem. Ogólnie chodzi o sygnał BEMF i prawidłowe wykrycie punktów ZC. Nie wiem dokładnie, czy jest to wina software'u czy hardware'u. Sama procedura startu silnika działa. Problem pojawia się przy obciążeniu, ale to chyba jest do rozwiązania poprzez wolniejszą komutację. Na początek dodam schemat układu, a później opiszę dokładnie problem i dziwne (przynajmniej dla mnie) zachowania sterownika.

Obrazek

Chciałbym zwrócić szczególną uwagę na moduł "Driver MOSFET". Służy on do sterowania napięciem. Problem z tym modułem jest taki, że przy zerowym wypełnieniu PWM tranzystor P-MOSFET jest "trochę" otwarty. Na tyle otwarty, że na drenie pojawia się napięcie około 3V. Szpilki PWM można od razu wykluczyć, ponieważ przy zwykłym podaniu 0 z uC problem również występuje. Na bazie tranzystora P-MOSFET pojawia się napięcie o około 1-2V mniejsze niż na źródle. Nie wiem dlaczego tak się dzieje i czy to może mieć to wpływ na błędne wykrywanie ZC?

Teraz przejdźmy do testów jakie wykonałem, aby sprawdzić jak zachowuje się sygnał BEMF i sterownik. W całym teście w przerwaniu, które wykrywa ZC zmieniałem stan diody na przeciwny.

1. Na początku odłączyłem silnik od sterownika oraz wyłączyłem procedurę startu silnika (sterownik nie robi nic). Włączyłem przerwania i obserwowałem co się dzieje. Dioda mrugała. Nie wiem czy tak powinno być, ale postanowiłem temu zaradzić i dodałem kondensator 100nF (C5 na schemacie) między "zsumowane fazy", a masę. Po tym zabiegu przerwania nie występowały. Następnie podłączyłem silnik i obracałem ręką wirnik, co powodowało powstawanie przerwań - czyli chyba dobrze.

2. Następnie, przy odłączonym silniku, ale przy włączonej procedurze startu zrobiłem taki sam test. W tym teście dioda znowu zaczęła mrugać, ale udało mi się znaleźć przyczynę. Mianowicie przy każdej komutacji pojawiało się przerwanie (kilka lub kilkaset nawet). Tymczasowo rozwiązałem ten problem w taki sposób, że przed dokonaniem komutacji wyłączałem przerwanie z komparatora i po jakimś czasie je z powrotem włączałem.

3. Przyszedł czas na test ze silnikiem. Po wystartowaniu silnika czekam, aż pojawi się odpowiednia ilość przerwań i włączam sterowanie silnikiem za pomocą właśnie tych przerwań. Działa, ale tylko dla PWM 100% i przy usunięcia rozwiązania z punktu 3. Z rozwiązaniem z puntku 3 w ogóle nie pojawiają się przerwania. Ponadto nie jestem przekonany co do szybkości tego silnika, bo mam wrażenie, że mogę go rozpędzić na "ślepo" szybciej niż przy pomocy przerwań. Dla PWM mniejszym niż 100% sterowanie w ogóle nie działa. Stąd też moje pytanie - czy częstotliwość i tryb PWM może powodować takie zachowanie? Nie sprawdziłem tego jeszcze, ale to zrobię. Obecnie częstotliwość PWM wynosi około 2 kHz, zatem mało.

Na koniec jeszcze kilka dodatkowych pytań.

a) Czy kondensatory elektrolityczne między zasilaniem a masą pomogą? Na razie mam 100uF, ponieważ skończyły się większe i czekam na dostawę.
b) Czy istnieją jakieś tajemnice sterowania, o których nie wiem? Czytałem gdzieś, że komutacja powinna następować chwilę (nie przypadkową chwilę) po wykryciu ZC, a po samej komutacji powinno się wyłączyć wykrywanie ZC. Dodatkowo szukanie tych punktów powinno odbywać się tylko jak sygnał PWM jest w stanie wysokim/niskim. Z testu nr 3 wynika, że wyłączanie szukania punktów ZC po komutacji nie działa dobrze, ponieważ wtedy w ogóle się nie pojawiają przerwania, ale przyczyną tego może być zupełnie co innego, np. częstotliwość PWM lub hardware.

Proszę o kilka wskazówek gdzie może leżeć błąd. Czy to bardziej hardware, czy software. Nie wiem już gdzie szukać błędów.

Pozdrawiam,
Patryk



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 mar 2017, o 17:02 
Offline
Użytkownik

Dołączył(a): 08 mar 2014
Posty: 390
Lokalizacja: Głogów
Pomógł: 11

Ja korzystałem z wiadomości na tej stronie:
http://mikrokontrolery.blogspot.com/201 ... resci.html
Generalnie wszystko fajnie opisane, sam niedawno uruchamiałem taki sterownik. Teraz czekam aż dojdą do mnie czujniki Hala aby usprawnić sterownik, bo na pomiarze BEMF trochę ciężko :D
Co do sterowania z użyciem pwm, myślę że powinieneś poprawić schemat. na jednym tranzystorze nie zrobisz odpowiednio szybkiego załączania i wyłączania tranzystora MOSFET.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 mar 2017, o 10:22 
Offline
Nowy

Dołączył(a): 10 maja 2016
Posty: 9
Pomógł: 0

Niestety nie posiadam oscyloskopu i nie jestem w stanie stwierdzić co tam się dzieje. Postanowiłem dodać diody transil między każdą fazę, a masę oraz rezystor na bazę P-MOSFETA w driverze - dam znać jak przetestuje układ. Co masz na myśli mówiąc "czas martwy"? Chodzi o odczekanie pewnego czasu pomiędzy każdą komutacją, czy czas na jaki wyłączam wykrywanie ZC po każdej komutacji?

Czy mógłby mi ktoś jeszcze wyjaśnić kwestię "drivera mosfet", dlaczego na drenie pojawia się napięcie około 3V dla zerowego wypełnienia PWM? Czy tak powinno być czy może układ jest nieprawidłowy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 mar 2017, o 11:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Papryk napisał(a):
dlaczego na drenie pojawia się napięcie około 3V dla zerowego wypełnienia PWM?...

Jeśli nie posiadasz oscyloskopu, to czy jesteś pewien że "zerowy PWM" mimo założeń nie generuje jednotaktowych szpilek?

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 mar 2017, o 12:56 
Offline
Nowy

Dołączył(a): 10 maja 2016
Posty: 9
Pomógł: 0

Jestem pewien, ponieważ sprawdziłem to ustawiając 0 na pinie PWM lub po prostu zwierając linie do masy. Efekt był ten sam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 mar 2017, o 13:39 
Offline
Nowy

Dołączył(a): 10 maja 2016
Posty: 9
Pomógł: 0

Testowałem ten układ w LTspice zanim tutaj napisałem. Na początku zaznaczę, że nie jestem mistrzem tego programu. Układ do końca nie działał tak jak chciałem. Dokładniej P-Mosfet nie działał tak jak powinien, bo na drenie zawsze pokazywał napięcie 12V. Sprawdzałem różne kombinacje (bo przecież mogłem źle podłączyć), ale nic z tego. Nawet sam osobny P-Mosfet nie działał, wiec zdecydowałem, że jest popsuty. Prawidłowość układu oparłem na tym, że na bazie pojawiało się napięcie 0 albo 12V w zależności od stanu wejściowego układu (0 lub 5V), czyli tak jak powinno być. W rzeczywistym układzie na bazie pojawia się napięcie około 10V, zatem 2V mniej niż powinno. Stąd też P-Mosfet jest lekko otwarty.


Edit. Po dodaniu diod transil dla wypelnienia PWM mniejszego niż 100% silnik zaczyna obracać się w drugą stronę (dosyć chaotycznie). Dla PWM 100% obraca się normalnie, jednak nie jestem pewny czy osiąga największą prędkość. Co może być powodem złej pracy dla PWM < 100%? Częstotliwość PWM czy może źle dobrane elementy pasywne układu BEMF?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO