User Tools

Site Tools


leddrv2

Led driver #2

Schemat

 Schemat leddrv2

Sprawność

Sprawność urządzenia rozczarowała mnie bo wynosi około 0.6. Sam pomiar mocy był jednak ciekawy. Zarówno prąd jak i napięcie na obciążeniu są przebiegami bardzo odkształconymi, więc użyłem oscyloskopu do zebrania charakterystyk, a następnie obliczyłem moc na komputerze (mój oscyloskop jest tak ubogi że nie podaje statystyk dla mnożenia kanałów). Poniżej znajduje się skrypt pythona który oblicza moc i sprawność.

eff.py
import numpy as np
 
def get_power(fname):
    '''Oblicza moc z danych z oscyloskopu (plik csv) zerowa kolumna
    zawiera czas, pierwsza wartość prądu obciążenia, a druga napięcia
    na obciążeniu.
    '''
    data = np.genfromtxt(fname, delimiter=',', skip_header=2, usecols=(0,1,2))
    power = data[:, 1] * data[:, 2]       # moc chwilowa
    energy = np.trapz(power, data[:, 0])  # całka mocy chwilowej po czasie, czyli energia
 
    return energy / (data[-1, 0] - data[0, 0])
 
 
# Pomiary, pierwsza kolumna to dane z oscyloskopu, druga i trzecia to
# odpowiednio napięcie zasilacza i prąd zasilacza lab.
#               dane     U,     I
data = sorted([['1.csv', 4, 0.104],
               ['2.csv', 4, 0.204],
               ['3.csv', 4, 0.306],
               ['4.csv', 5, 0.344],
               ['5.csv', 5, 0.380],
               ['6.csv', 5, 0.303],
               ['7.csv', 5, 0.200],
               ['8.csv', 5, 0.105]], key=lambda t: t[1] * t[2])
 
avg_eff = 0
for d in data:
    Pin = d[1] * d[2]
    Pout = get_power(d[0])
    avg_eff += Pout / Pin
    print("Pin = {0:.2f}, Pout = {1:.2f}, \N{GREEK SMALL LETTER ETA} = {2:.2f}".format(Pin, Pout, Pout / Pin))
 
print("Średnia sprawność \N{GREEK SMALL LETTER ETA} = {0:.2f}".format(avg_eff / len(data)))

Zasada działania

Ostatecznie driver działa jak flyback konwerter, an ie buck-boost, ale zasada działania (którą opisałem przed ukończeniem projektu) pozostaje bez zmian.

Ten driver led jest oparty o buck-boost konwerter, czyli napięcie zasilające może być większe lub mniejsze niż napięcie wyjściowe. LEDy jednak powinny być zasilane ze źródła prądowego… Buck-boost konwerter jest konwerterem napięcia, a LEDów nie powinno się zasilać ze źródła napięcia. Wspomniany konwerter może jednak równie dobrze robić za źródło stałej mocy i to właśnie wykorzystałem.

Poniższy schemat pokazuje idealny konwerter. Kiedy przełącznik S1 ma zwarte styki 1 i 3 to prąd płynie przez cewkę i gromadzi się w niej energia. Zwierając styki 1 i 2 przełącznika S1, prąd przez cewkę musi płynąć dalej i nie ma innego wyjścia jak zasilić LED. Prąd się zmienić przy komutacji nie może, czyli jeżeli dioda potrzebuje do pracy prądu X mA (niezależnie od napięcia), to jeżeli taki prąd płyną przed komutacją przez cewkę, to taki sam popłynie po komutacji przez diodę.

Jeżeli “naładuję” cewkę do pewnej energii, a potem przyłącze ją do obciążenia to ta energia zostanie mu przekazana. Jeżeli w ciągu 1 sekundy takich przekazań energii zrobię f, to moc będzie wynosić: $$ P = \frac{f \times W_L}{1} = f \times W_L \qquad [W] $$ Gdzie $W_L$ to energia zgromadzona w cewce, a f to nieprzypadkowo częstotliwość ładowania (i przekazywania do obciążenia energii) cewki.

Energia gromadzona w cewce zależy od jej indukcyjności i kwadratu prądu:

$$W_L = \frac{I_L^2 \times L}{2} \qquad [J]$$

Prąd cewki zależy m.in. od czasu - co można już łatwo kontrolować przez mikrokontroler. Jedna jeszcze rzecz jest warta odnotowania, nie powinienem dopuszczać aby prąd cewki był większy niż maksymalny prąd jaki LED może przyjąć w impulsie, a wynika z praw komutacji - prąd jaki płyną przez cewkę przed jak i po komutacji (np. podłączeniu diody) musi być taki sam. Wzór na wartość prądu cewki po czasie $t$:

$$I_L = \frac{U}{R} (1 - e^{-t \times \frac{R}{L}} ) \qquad [A]$$

Czas ładowania cewki t, zależy od częstotliwości przełączania i współczynnika wypełnienia D (liczba z przedziału [0,1]):

$$t = \frac{D}{f} \qquad [s]$$

Zbierając wszystkie powyższe wzory do kupy, otrzymuje wzór na moc, którą można łatwo regulować zmieniając współczynnik D:

$$P = \Big(\frac{U}{R} (1 - e^ \frac{-D \times R}{f \times L} )\Big)^2 \times \frac{f \times L}{2} \qquad [W]$$

Eksperyment

Dla sprawdzenia wzoru jaki wyprowadziłem postanowiłem zrobić mały eksperyment. Polegał on na regulowaniu współczynnika wypełnienia (D) przy stałym napięciu zasilania i sprawdzeniu jaka jest pobierana moc oraz zmiana napięcia przy stałym D i również sprawdzanie mocy. Zrobiłem dwie serie pomiarów przy U = const i jedną przy D = const. Schemat układu pomiarowego poniżej.

  • Indukcyjność cewki: 100 uH
  • Rezystancja cewki: 140 mOhm
  • Tranzystor: N-Mosfet IRF930
  • Rdson tranzystora przy Ugs = 10: około 100 mOhm
  • Częstotliwość generatora funkcji: 20 kHz
  • Przebieg generatora: prostokąt 0 - 10 V

Z wyświetlacza na zasilaczu odczytywałem prąd i napięcie, a następnie w arkuszu kalkulacyjnym mnożyłem dla otrzymania mocy. Na poczet wszelkich strat do obliczania wartości mocy ze wzoru powyżej przyjąłem rezystancje szeregową 0,5 Ohm. Nie jest to dokładny pomiar, ale celem było tylko z grubsza potwierdzenie czy wyprowadzony wzór ma pokrycie w rzeczywistości.

Poniżej zamieszczone są wyniki pomiarów wraz z wartościami wyliczonymi ze wzoru dla porównania.

Zdjęcia

Linki

Pliki

kod źródłowy:

git clone http://dmz.edu.pl/data/projekty/leddrv2.git
leddrv2.txt · Last modified: 2017/03/02 18:31 by dmz