Skocz do zawartości
Vroobee

Wybieranie ogniw zasilających przy pomocy przekaźników.

Pomocna odpowiedź

Kurcze, faktycznie. Moc w układzie musi być względnie zachowana. A skoro boostuję napięcie to muszę to zrobić kosztem prądu wchodzącego na ogniwa. To jest to co zżerało mi prąd 🙂 co do grzania się to zauważyłem, że indukcyjność jest trochę ciepła podczas pracy. Postaram się zmierzyć do jakich wartości dochodzi temperatura na cewce i kluczu, i dam znać.

Sprawność jest faktycznie trochę mała jak na taką dość dużą jakby nie patrzyć przetwornicę. Są jakieś sposoby, żeby ją zwiększyć o jakieś 15-20 % ? Zastosowanie klucza z lepszą charakterystyką, indukcyjności, pojemności ?

Jeśli chodzi o sam prąd ładowania tuż za przetwornicą. Pomiar wskazuje na ok. 260 mA. Tym prądem ładowania akumulator 1600 mAh powinien zakończyć fazę CC ładowania mniej więcej po 6 h i 15 min. Zawsze można zastosować mniejszy aku i naładuje się szybciej 🙂 ale do czego zmierzam. Otóż podczas 20 minut pracy napięcie wzrosło o ok. 30 mV. W godzinę zrobi się 90 mV. Dzięki czemu faza CC będzie trwała:

4,2V - 2,8V = 1,4V
1,4V / 0,09V = 15,5 h

Trochę długo 😃 spróbuję jeszcze raz sprawdzić jak szybko ogniwa będą się ładować z nieco wyższym poborem prądu ze źródła (ok. 1A).

Poza tym podczas swobodnej pracy i rozładowywania się baterii widać na screenach, że napięcie na ogniwach wynosi 7,7V. Podłączając na sekundę aku do ładowania następuje wzrost napięcia do 7,93V. Rozumiem, że próg 4,2V dotyczy napięcia podczas swobodnej pracy tzn. skoro:

7,93V - 7,7V = 0,23V

to biorąc pod uwagę wzrost napięcia ładowania finalnie należy odciąć źródło ładujące po osiągnięciu na ogniwach ok.:

8,2V + 0,23V = 8,43V

Proszę mnie poprawić jeśli się mylę 🙂

Dodatkowo jeszcze dodam dla ciekawych, że ładowanie LiPoli wymaga 2 faz. Pierwszej Constant Current (CC) w której utrzymujemy stały prąd ładowania do osiągnięcia napięcia na ogniwach 1 celowej baterii 4,2V, oraz fazy Constant Voltage (CV), gdzie napięcie na ogniwie nie może przekroczyć 4,2V natomiast obniżany jest prąd ładowania. I teraz o ile faza CC jest całkiem prosta w realizacji programowej to już faza CV sprawia mi pewne problemy. Regulator może obniżyć prąd ładowania jedynie po uzyskaniu różnicy pomiędzy napięciem zadanym, a zmierzonym. Tym samym za każdym razem gdy wzrośnie nam napięcie na ogniwie o powiedzmy 0,01 V, obniża się prąd ładujący. 10 takich wzrostów o 0,01 V i mamy już, zamiast 4,2V, 4,3V na ogniwo. Tolerancja napięcia maksymalnego to +/-0,5V na ogniwo więc napięcie zostanie sporo przekroczone. Stąd moje pytanie (może głupie ale inaczej się nie dowiem 🙂 ) czy aku sam wyrówna sobie napięcie z 4,21V do 4,2V ? Jak to jest realizowane w normalnych ładowarkach ? Wiem, że dla różnych pojemności charakterystyka schodzenia z prądem ładowania jest inna ale ogólnie jak można zrealizować tę fazę, żeby aku ładował się nie do 60 % tylko po fazie CC ale do 100% włączając w to fazę CV.

Udostępnij ten post


Link to post
Share on other sites

Uff, dobrze że ten prąd się znalazł.

Granica 4.2V/ogniwo dotyczy napięcia mierzonego kiedykolwiek. Jeżeli w fazie CC masz stały prąd i napięcie rośnie, to po dojściu do 4.2V przełączasz regulator na stabilizację napięcia 4.2V a prąd sam się ustawia, powoli malejąc. Gdy zmaleje do np. 10% wartości zadanej w trybie CC, uznajesz ogniwo za naładowane. Zrób po prostu dwa oddzielne PIDy: regulator prądu i regulator napięcia i przełączaj je po dojściu do 4.2V. Ładowarka może mieć dwa osobne stany i dwie osobne, alternatywne pętle regulacji.

Im napięcie ogniwa jest wyższe tym ma ono w sobie więcej ładunku (nieliniowo), ale tym szybciej się starzeje a w ekstremalnych sytuacjach uszkadza.

Nie jesteś w stanie naładować ogniwa LiPoly do 100% w fazie CC, bo musiałbyś przejechać z napięciem dużo wyżej granicy 4.2V żeby utrzymywać stały, duży prąd. Niektóre ładowarki mają tryb "fast" w którym przechodzą do fazy CV trochę później, np. przy 4.3V. Utrzymując fazę CV na 4.3 lub nawet 4.4V prąd znowu zaczyna maleć, ale ogniwo ma już w sobie dużo więcej energii. Gdy przerwiesz takie ładowanie przy prądzie nie 10% a np. 50% prądu fazy CC to okazuje się, że napięcie wtedy spada (np. do 4.2), ale ogniwo jest w sumie naładowane do tylu samo mAh tylko szybciej. Narysuj to sobie. Chodzi o pompowanie jak największym prądem, ale bez przekraczania napięcia bezpiecznego. Odradzam takie próby szybkich ładowań na własnych akumulatorach.

Ogniwo Lipoly to nie kondensator. Napięcie w fazie CC nie rośnie liniowo więc nie możesz na podstawie szybkości wzrostu estymować końca. W okolicach 3V rośnie szybko do ok. 3.7V, potem jest dość płasko gdzieś do 4V i 80% pojemności a potem szybki wzrost do 4.2V i przejście do fazy CV.

Przetwornica jest duża, bo nie możesz podjechać z częstotliwością - timery ATmegi nie wyrabiają a 62kHz od razu daje wymaganie na indukcyjność. Ta musi mieć dużą wartość (220uH?) żeby wahania prądy były sensownie małe, a żeby przy tym dławik miał duży prąd i małą rezystancję, będzie niezłym klockiem. Straty masz na każdym R: pomiarowe oporniki szeregowe, ESR cewki, 0.5V diody prostowniczej na wyjściu, RDSon klucza itd.. Jak się wszystko zsumuje to wychodzi. Starty na przełączaniu MOSFETa nie są zbyt znaczące, bo częstotliwość mała. Najlepiej daj duży prąd ładowania i termometrem bezkontaktowym (lub kamerką termowizyjną lub od biedy palcem) poszukaj źródeł ciepła. To co grzejesz to czysta strata. To pokazuje jakim wyczynem jest zrobienie nowoczesnej przetwornicy na 1MHz i sprawności np. 90% w scalaku za 10 zł 🙂

Przyjrzyj się układom attiny261/461/861. One mają wbudowany PLL rozkręcający timery (ale tylko timery) do 64MHz, Przy 8-bitowym PWM daje to przyzwoite 250kHz 🙂

Udostępnij ten post


Link to post
Share on other sites

@marek1707 siadając do rozwiązania problemu, który mnie interesował na samym początku (czyli jakiś rok temu) nie miałem w planach projektowania, wykonania i programowania inteligentnej przetwornicy 🙂 ale udało mi się finalnie wykonać coś z czego już jestem bardzo zadowolony, bo działa. Dla konstruktora nie ma lepszego uczucia niż to, że jego urządzenie jest sprawne i spełnia swoją funkcję. Nauczyłem się wiele, chociażby o samym projektowaniu przetwornic. Za niedługo podejmę pierwsze próby z MPPT.

Na tę chwilę wprowadziłem jedną zmianę do projektu. Mianowicie chodzi o diodę Schottky'ego. Wcześniej miałem zastosowaną diodę 1N5819. Spojrzałem na charakterystykę (Fig. 2) i wartości maksymalne prądu w kierunku przewodzenia (1,0A). Wydawały się ok, ale w szufladzie miałem jeszcze 1N5822 o znacznie lepszej charakterystyce (Fig. 2) i większym prądzie (3,0A). Postanowiłem wymienić diodę, co spowodowało wzrost prądu ładowania z 0,26A do 0,28A, dla prądu pobieranego z zasilacza 0,7A. Niby 20mA no ale już coś 🙂

Zwiększyłem prąd pobierany do 0,8A i tu zonk - nadal 0,28A prądu ładowania. 0,9A prądu pobieranego - 0,28A prądu ładowania. O co chodzi, nie mam pojęcia. Mierzyłem napięcia na wyjściach wzmacniaczy, przeliczyłem wszystko na kalkulatorze bez ufania pomiarom z ADC i faktycznie 0,28A. Hmmm...

Sprawdziłem również stopień grania się elementów przetwornicy. Użyłem w tym celu termopary dołączonej do multimetru UNI-T UT50C. Dokładniejszego sposobu, poza tym na palec nie miałem. Elementy są cieplejsze niż w temperaturze pokojowej, ale nic nie przekracza 35 °C. Ani klucz, ani cewka, ani rezystory pomiarowe. Pytanie jak bardzo można wierzyć tej termoparze, bo one nie są zbytnio dokładne w niskich temperaturach (poniżej 100 °C). Najwyraźniej muszę się pogodzić z wolnym ładowaniem dużych akumulatorów 🙂

Udostępnij ten post


Link to post
Share on other sites

Taka przetwornica działa w ten sposób, że w pierwszej fazie cyklu PWM (gdy klucz jest załączony) prąd dławika rośnie a energia jest gromadzona w polu magnetycznym czyli de facto w rdzeniu a ściślej w jego szczelinie. Gdy klucz jest wyłączany zgromadzona energia jest transportowana na wyjście przez diodę do obciążenia. Wynika z tego prosty wniosek, że zwiększając długość impulsów PWM (wypełnienie przy stałej częstotliwości) zwiększasz po prostu paczki energii gromadzone za każdym razem w cewce. Nie możesz tego zwiększać niestety bezkarnie bo dławik ma pewną, ograniczoną "pojemność" energetyczną. Jeżeli osiągniesz ten poziom prądu przy którym rdzeń wchodzi w nasycenie, więcej energii już nie wpompujesz. Być może to właśnie ten przypadek. Wtedy dalsze zwiększanie wypełnienia PWM nic nie daje (jakie ono wtedy jest?) oprócz wzrostu prądu idącego w czystej postaci na grzanie cewki i wszystkiego po drodze.

Dioda oczywiście jest ważna. Im mniejsze Vf przy danym prądzie tym lepiej. W dzisiejszych wysokosprawnych przetwornicach używa się praktycznie wyłącznie specjalnie sterowanych tranzystorów MOSFET (tzw. prostowanie synchroniczne), ale to nie jest proste, bo żeby udawać diodę musisz go wyłączać gdy przestaje płynąć prąd w prawo i zaczyna w lewo 🙁

Napisz dokładnie jaki masz dławik. Typ i producent, link do strony sklepu, cokolwiek gdzie będzie można stwierdzić jakie są jego ograniczenia. W przypadku dławików mocy prąd nasycenia oraz R jest sprawą kluczową. Pomijając oczywiście samą indukcyjność.

Pamiętaj, że w DCDC prąd w dławiku zwykle nie spada do zera tj. dławik nie jest "rozładowywany" w drugiej fazie do zera i "ładowany" od zera w pierwszej. Dlatego na paczki energii dostarczane i wysysane w każdym cyklu nakłada się pewna składowa stała i jest ona zwykle dużą częścią prądu dławika, np. 60-70%. Twój dławik musi wytrzymywać niestety sumę tego, tj. być daleki od nasycenia nawet po koniec fazy "ładowania" gdy klucz jest wciąż załączony a prąd jest największy. Najlepszym testem byłaby sonda prądowa oscyloskopu przyłożona do ścieżek dławika, ale tak prosty układ można po prostu policzyć. Dawaj info dławika, zobaczymy co tam wstawiłeś i co potrafi.

Zakładam, że pomiary prądów są wykonywane dobrze...

EDIT: Zawsze opisując jakąś sytuacje podawaj komplet liczb określających stan przetwornicy: napięcie wejściowe, prąd wejściowy, napięcie wyjściowe (może wzrosło i dlatego prąd nie musiał?) itp. Widząc Twoją płytkę na zdjęciu sądzę, że dławik wytrzyma i 1.5A więc to raczej nie jego nasycenie. Przydałby się oscyloskop do zbadania np. napięć na kluczu w stanie włączenia. Może tu jest problem? Jednak 20% zmiana mocy na wejściu (a wejściowe 5V nie przysiadło?) powinna być na wyjściu od razu widoczna.

Udostępnij ten post


Link to post
Share on other sites

Wstawiam screena z terminala (trochę zmieniony interfejs niż poprzednio ale te same parametry są na nim przedstawione). Ładowanie już w fazie CV z progiem 8,2V.

Zaprogramowałem i uruchomiłem ładowanie koło 14:00 z poziomu Uout = 7,7V. Jak na razie tempo ładowania ma ok. Kod użyty do zaimplementowania fazy CC i CV:

					//*****CCCV ALGORITHM*****
				if (vout < target_u){
					cccv_reg(atoi(ichg_cur.v1), atoi(ichg_cur.v2), target_c);
				} else if (vout >= target_u) {
					cccv_reg(atoi(vout_vol.v1), atoi(vout_vol.v2), target_u);
					if (ichg < (target_c/10)){
						acu_state = 3;
						D_GREEN_OFF;
						D_RED_ON;
						TUSB_OFF;
						TUPV_OFF;
					}
				}

Target_u napięcie docelowe, target_c docelowy prąd pobierany z zasilacza. Regulacja następuje co sekundę. Dodatkowo uśrednianie napięcia wyjściowego na 220 próbkach wprowadza nam całkowanie do regulatora - dodatkowe niewielkie opóźnienie w regulacji. Całość zaczyna bardzo fajnie funkcjonować 🙂

Zastosowałem dławik DE1209-220, klucz STS11NF30L, driver MOSFET MCP1402, wspomniany wcześniej Schottky 1N5822 i kondensatory elektrolityczne na wejściu i wyjściu przetwornicy 220 µF/35V.

Jeśli chodzi o napięcie wejściowe to na samym zasilaczu jest równe 5V, natomiast pomiar ADC wskazuje na spadek tego napięcia, co widać z resztą na screenie. Zauważyłem również, że czasami pojawia się nagły wzrost napięcia (o ok. 0,1V) i prądu ładowania praktycznie do maksymalnej wartości docelowej, który regulowany jest z powrotem do normalnego stanu gdzieś w ok. 2s. Skąd takie peaki mogą się brać ? Regulator nie jest taki szybki, żeby aż tak bardzo zwiększyć prąd ładowania przy niewielkim wzroście napięcia powyżej wartości docelowej w fazie CV. Z obecnym progiem 8.2V nic nie przeszkadza ale w przypadku ustawienia progu 8,4V nie wiem czasami czy to nie rozpierdzieli mi akumulatora.

Udostępnij ten post


Link to post
Share on other sites

Moim zdaniem piki biorą się stąd, że zbyt prymitywnie zrobiłeś przechodzenie między stanami CC/CV. No bo zobacz: jesteśmy w fazie CC i napięcie dochodzi do progu 4.2V. Gdy tylko przekroczy, masz if-a który przestawia na inny regulator. Tamten będzie starał się stabilizować napięcie ruszając prądem, ale przecież nie jest idealny i czasem napięcie trochę przysiądzie. Gdy tak się stanie, od razu odpalasz drugi regulator który stara się dociągnąć prąd co obowiązującego w fazie CC. Wypisuj sobie co sekundę w jakim stanie CC czy CV jest akurat ładowarka i pewnie przekonasz się, że co chwila zmienia robiąc nieprzyjemny pingpong. Mam dwa pomysły:

1. Zrób histerezę tj. przejście do stanu CV po przekroczeniu 4.2V a powrót do fazy CC po spadku poniżej np. 4.0V. To zapewni "oddech" kontrolerowi pracującemu w fazie CV i nie będzie miał stresa, że co chwilę jest mu zabierane sterowanie.

2. Zrób przejście tylko jednokierunkowe: z fazy CC możesz przejść tylko do fazy CV (bez powrotu) albo do stanu "koniec". Przecież tak naprawdę po osiągnięciu 4.2V nie ma powodu powracać do fazy CC.

Takie rzeczy robi się na maszynach stanów sterowanych odpowiednimi warunkami, ale tak czy tak musisz mieć jakąś zmienną statyczną "stan_procesu", której stan może być zmieniany tylko pod określonymi warunkami i nie przez byle kogo. Taki swobodny if lekką ręką zmieniający podstawowy tryb pracy urządzenia nie jest dobrym pomysłem.

Udostępnij ten post


Link to post
Share on other sites

Czyli chyba najlepiej chyba będzie zastosować np. funkcję switch, w której będziemy sterowali zmienną stan_procesu. Wtedy przejście z fazy CV do CC będzie niemożliwe po inkrementacji zmiennej stan_procesu.

Udostępnij ten post


Link to post
Share on other sites

Nie ma sensu opowiadać jakich konstrukcji języka używać - to szczegóły implementacji. Zrobisz jak będzie w danym miejscu wygodnie i czytelnie.

Ważne, byś przemyślał jakie stany masz w urządzeniu, jak (kiedy i dlaczego) między nimi przechodzić oraz kto może to robić.

Najprościej chyba zrobić jeden FSM (ok, może być w postaci switch'a) w którym kolejne case'y będą stanami a w nich opisane przejścia. Inkrementacja to zły pomysł bo wtedy traktujesz stan jak liczbę. Podefiniuj sobie stałe, np:

#define STATE_IDLE 0
#define STATE_CHECK_BATT 1
#define STATE_PRECHARGE 2
#define STATE_CHARGING_CC 3
#define STATE_CHARGING_CV 4
#define STATE_FINISHED 5
#define STATE_ERROR 6

albo jeszcze lepiej:

enum
{
STATE_IDLE,
STATE_CHECK_BATT,
STATE_PRECHARGE,
STATE_CHARGING_CC,
STATE_CHARGING_CV,
STATE_FINISHED,
STATE_ERROR
};

i wtedy w ogóle konkretne wartości Cię nie obchodzą.

Za to przykłądowy kawałek FSMa wygląda wtedy tak:

switch(state)
{
 case STATE_IDLE:
   wylacz_wszystko();
   if (przycisk_start)
     state = STATE_CHECK_BATT;
  break;
case STATE_CHECK_BATT;
  itd...
}

Udostępnij ten post


Link to post
Share on other sites

@marek1707 zanim zauważyłem, że napisałeś zdążyłem poprawić algorytm na razie na switchu z inkrementacją. Ale Twój pomysł jest świetny i z pewnością poprawię program 🙂

Teraz wszystko wydaje się, że działa jak powinno.

Dodatkowo zastanawiam się czy nie dołożyć malutkiej płyteczki z układem balansującym. Miejsce jest.

EDIT: Poszperałem trochę. Znalazłem układ zabezpieczający przed przeładowaniem ogniwa na tej stronie LINK. Zamiana prądu ładowania na ciepło. Dzięki temu wyrównałbym napięcie międzyogniwowe w pakiecie.

Udostępnij ten post


Link to post
Share on other sites

Oczywiście szkoleniowo możesz takie coś zbudować i podpinać do złącza balancera pakietu lub po prostu do obu osobnych cel - jeśli zbudujesz stos samemu z gołych ogniw. Nie wiem tylko, czy w Twoim nie jest to armatka na wróbla. To duży, samodzielny balancer do ładowarek nad którymi nie panujesz. W Twoim przypadku, gdy dospawasz jeszcze pomiar napięcia jednej celi, procesor będzie znał stan obu ogniw i będzie mógł spokojnie na to reagować. Wystarczą dwa tranzystory sterowane "cyfrowo" z procka i masz balansowanie ogniw podczas ładowania. Jeden npn stawiasz emiterem na masie, dajesz mu w kolektor opornik np. 33Ω który doczepiasz do punktu środkowego aku. Drugi pnp z podobnym opornikiem, ale podłączony do górnego ogniwa odpalasz jakimś pomocniczym npn także z procesora. Narysuj to dla wprawy 🙂 Masz zatem możliwość wybiórczego obciążania dowolnego z dwóch ogniw dodatkowym prądem ok 100-130mA. To wystarcza by balansować ogniwa. Proces wyrównywania nie musi być przecież "analogowy" i zaczynać się dopiero przy 4.2V. Gdy program wykryje w fazie CC przerost napięcia na którymś ogniwie, załącza mu na jakiś czas "złodzieja" prądu i tym samym wyrównuje doładowanie. Tak działają balancery we wszystkich sklepowych ładowarkach i nikt nie bawi się w analogowe stabilizatory równoległe. To jest prostsze układowo, korzysta z istniejącego pomiaru napięcia cel a inteligencję na pokładzie i tak masz - korzystaj z niej.

----------------------------------

EDIT: A co w sprawie tego dziwnego zachowania przetwornicy z postu w którym pisałeś o większej diodzie Schottky?. Podkręcałeś prąd wejściowy (jak rozumiem przez zwiększanie wypełnienia PWM) nie obserwując jednocześnie wzrostu mocy na wyjściu. Z dławikiem wielkości 1209(?) jaki widziałem na zdjęciu i kluczem od ST ta przetwornica powinna mieć jeszcze wielki zapas mocy. Przecież była liczona na prąd wejściowy grubo ponad 1A. Coś wiesz więcej? Coś przeoczyłeś? Coś pomierzyłeś?

Udostępnij ten post


Link to post
Share on other sites

Właśnie dzisiaj spróbowałem zmierzyć prąd wchodzący na ogniwa. Faktycznie jest te 0,28 A dla mocy wejściowej

 Pwe = Uwe * Iwe = 5V * 0,8A = 4 W

Dla 5V i 0,7A było jakieś 0,25A prądu ładowania. Spróbuję jeszcze podkręcić prąd źródła do 1A i zobaczę jak wtedy będą wyglądały osiągi. Napiszę co udało mi się ustalić 🙂

Jeśli chodzi o ustalanie prądu maksymalnego to reguluję je wypełnieniem. Zasilacz cały czas ma ustawione 5V i 1,5A.

Co do balansera to @marek1707 bardzo fajny pomysł z tymi zwykłymi tranzystorami, na dniach postaram się narysować schemat.

EDIT:

Dla 1A prądu wejściowego otrzymuję 0,33A prądu ładowania. Także gdzieś muszą być jebutne straty. Możliwe, żeby driver do tranzystora łykał 500 mA ? "The MCP1401/02 are high-speed MOSFET drivers capable of providing 500 mA of peak current."

Udostępnij ten post


Link to post
Share on other sites

Pamiętaj, żeby w DCDC zawsze patrzeć na moc, nigdy na sam prąd czy samo napięcie. Czyli na wejściu tyle Watów - na wyjściu tyle. Jeżeli prąd wejściowy rośnie a wyjściowy tylko troszeczkę, to może rośnie (też troszeczkę) napięcie wyjściowe? I wtedy sytuacja nie wygląda najgorzej.

Driver tranzystora jest obciążony pojemnością bramki. On może przez siebie przepuścić do 500mA, ale przecież nie marnuje tego w ciepło tylko pompuje ten prąd bardzo krótkimi szpilkami w wejście MOSFETa. Popatrz: z danych katalogowych tego tranzystora wiemy, że jego ładunek bramki (Qg) to max. 30nC. Te 30nC wsypujesz do pojemności wejściowej 62.5 tys. razy na sekundę - bo taki masz PWM i tyle narastających zboczy na sekundę produkujesz. Tak więc w ciągu sekundy wyślesz tam z zasilania 1.9mC a to się wprost przekłada na średni prąd bramki dostarczany z drivera = 1.9mA. Niestety niezależnie od obciążenia przetwornicy, ale to jednak mało.

A straty są na wszystkim: kable wejściowe - ile naprawdę masz napięcia na kondensatorze wejściowym na PCB? Rezystancja dławika: musisz wziąć pod uwagę jego prąd rms a nie ten pokazywany w zasilaczu: P=I²*R. Zakładając 600mA masz tu wtedy 0.6A*0.6A*0.24Ω=86mW. To samo z kluczem. Jest niezły, ale ziarnko do ziarnka. Dalej: zauważ, że przetwornica daje tak naprawdę napięcie wyższe, tylko 0.5V(?) spada na diodzie - to kolejna niemała moc w powietrze. Jeśli mierzysz napięcie na samym akumulatorze, to pomijasz spadek na ich rezystorze pomiarowym 200mΩ - mamy tu 12mW. Jeśli elektrolity nie są polimerowe z ESR=0.01Ω tylko zwykłe (2Ω), a nawet "low-ESR" (0.5Ω), to każdy prąd AC przez nie płynący jest kolejną stratą. A przecież sporo AC przez nie płynie w każdym cyklu. Podłącz się oscyloskopem i popatrz jak wysoka jest piła napięcia Uin i Uout bezpośrednio na nich (z masą sondy tuż przy kondensatorze) - to właśnie napięcia odłożone na ESR kondensatorów ze składowej AC prądu.

Jeżeli np. źle sterujesz klucz bo driver nie ma blisko kondensatora i grubych ścieżek do źródła (masa) i bramki tranzystora, to MOSFET włącza się wolniej niż mógłby a to daje kolejne straty w stanie przejściowym. Włącz ten duży prąd i popatrz co się grzeje - to najprostsze wyjście. Niestety w układzie typu boost dobrą sprawność masz tylko w pewnym obszarze wypełnień. Zwiększając PWM sprawność spada z natury. Najłatwiej zrozumieć dlaczego tak się dzieje zakładając, że cykl "ładowania" indukcyjności (załączenia klucza) jest czystą stratą bo wtedy prąd nie jest dostarczany do obciążenia a płynie z kondensatora wejściowego, przez dławik i MOSFET. A tej części jest coraz więcej. Z kolei w drugiej fazie płynie przez dławik i diodę do kondensatora wyjściowego. Też nie rewelacyjnie.. Jak się wszystko malutkie do kupy pozbiera, to dostajemy 50% 🙁

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

No to wszystko się wyjaśniło 🙂 dzięki ! Posprawdzam jeszcze tak jak radziłeś przebiegi i napięcia na kondensatorach wejściowych. Szczerze powiedziawszy to nie wiem czy one są Low ESR - miałem je akurat w swoich zasobach. Ale spróbuję je wymienić na low ESR, zobaczymy czy coś się polepszy.

Udostępnij ten post


Link to post
Share on other sites

Dużo czasu minęło 🙂 wersja podstawowa ładowarki działa bez zarzutu, za co serdecznie dziękuję koledze @marek1707. Natomiast jakiś czas temu zacząłem bawić się w ulepszanie algorytmu regulatora. Chciałbym spróbować wprowadzić programowe wykrywanie maksymalnego prądu źródła. Idea jest taka, że procek ma na stałe zapisane, że max jaki może pobrać np. ze źródła 5V USB to powiedzmy 0,8A (oczywiście jeśli źródło zapewni prąd większy niż te 0,8A). Ale może być taka sytuacja, że źródło nie będzie w stanie zapewnić większego prądu niż na stałe ustawiony limit w programie. Więc chciałbym napisać funkcję, która pozwoli na wykrycie maksymalnego prądu, który może dać źródło i tym samym dynamicznie zmienić sobie target regulatora. Zmodyfikowałem nieco algorytm MPPT tak aby mógł taki punkt sobie znaleźć. Kod wygląda następująco:
 

	if ( power > prev_power){
		if (voltage > prev_voltage){
			OCR1A--;
		} else if (voltage <= prev_voltage){				
			OCR1A++;
		}
	} else if (power <= prev_power){
		if (voltage >= prev_voltage){						
			OCR1A++;
		} else if (voltage < prev_voltage){					
			OCR1A--;
		}
	}

Problem jest taki, że podłączając wejście do zasilacza laboratoryjnego zasilacz niekiedy pracuje w fazie CC zamiast tylko CV. Port USB w kompie czasami wywali ze względu właśnie na pobór zbyt dużego prądu 😞 ktoś ma z Państwa pomysł co by tu zrobić lub co innego zastosować ?

Udostępnij ten post


Link to post
Share on other sites

Pewnie nie widzimy całego kodu (bo gdzieś muszą przecież być choćby pomiary wielkości fizycznych np), ale moim zdaniem problemem nie jest sam algorytm - bo ten wydaje się OK, tylko.. czas. To jest układ dynamiczny: pętla poszukiwania i regulacji mocy de facto, więc ważne są pasma, okresy próbkowania i ch-ka fazowa całości. Pomyśl o tym jak o zagadnieniu sterowania. Jeśli w PID-zie (nawet gdy I= i D=0) dasz za duże P to dostaniesz oscylacje. To wydaje się właśnie ten przypadek. Opóźnienia są wszędzie: DCDC reaguje z opóźnieniem na zmiany PWM, źrodło reaguje z opóźnieniem na zmiany obciążenia, pomiary też mają swój delay - szczególnie jeśli robisz jakieś uśredniania/filtrowanie itd... Wg mnie powinieneś najpierw skupić się na poprawnym/precyzyjnym/wolnym liczeniu mocy aktualnej i co jakiś czas (bardzo rzadko w stosunku do okresu PWM i innych procesów, np. co 0.2s) odpalać MPPT i regulować PWM za pomocą jakiegoś regulatora, choćby PID. Wtedy masz szansę podejść do tego eksperymentalnie (to teraz poczytajmy o strojeniu PIDów, zwiększmy D albo P i zobaczmy co się stanie) albo naukowo (matematyka i jeszcze więcej matematyki). W prawidłowo zestrojonym MPPT, typowy zasilacz laboratoryjny z ograniczeniem prądowym powinien cały czas pracować na granicy (w punkcie) naprzemiennego migotania lampek CV/CC - w takim stanie lądowały w końcu wszystkie moje układy 🙂 niezależnie od tego ile prądu lub napięcia się ustawiło.

  • Lubię! 1

Udostępnij ten post


Link to post
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!

Gość
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...