Spisu treści:

Jak zmierzyć współczynnik mocy AC za pomocą Arduino: 4 kroki?
Jak zmierzyć współczynnik mocy AC za pomocą Arduino: 4 kroki?

Wideo: Jak zmierzyć współczynnik mocy AC za pomocą Arduino: 4 kroki?

Wideo: Jak zmierzyć współczynnik mocy AC za pomocą Arduino: 4 kroki?
Wideo: Jak szybkie jest Arduino? - How fast are Arduino boards? [benchmark] - JestemInżynierem.pl 2024, Lipiec
Anonim
Jak zmierzyć współczynnik mocy AC za pomocą Arduino?
Jak zmierzyć współczynnik mocy AC za pomocą Arduino?
Jak zmierzyć współczynnik mocy AC za pomocą Arduino?
Jak zmierzyć współczynnik mocy AC za pomocą Arduino?

Cześć wszystkim! To jest moja trzecia instrukcja, mam nadzieję, że uznasz ją za pouczającą:-) Będzie to instrukcja, jak wykonać podstawowy pomiar współczynnika mocy za pomocą Arduino. Zanim zaczniemy, należy pamiętać o kilku rzeczach:

  1. Działa to TYLKO z obciążeniami LINIOWYMI (np. silniki indukcyjne, transformatory, solenoidy)
  2. To NIE będzie działać z NIELINIOWYMI (np. żarówki CFL, zasilacze impulsowe, diody LED)
  3. Jestem inżynierem elektrykiem i bardzo kompetentnym w pracy z napięciem sieciowym (tj. 230V)

Ostrzeżenie! Jeśli nie jesteś przeszkolony lub nie wiesz, jak prawidłowo pracować z napięciem sieciowym, sugeruję, abyś nie kontynuował tej części instrukcji, a pokażę ci bezpieczną metodę udowodnienia, że obwód działa.

Jest to sprzętowe rozwiązanie problemu pomiaru współczynnika mocy w obciążeniach liniowych. Można to również zrobić wyłącznie za pomocą kodu, w tym możliwości pomiaru obciążeń nieliniowych, które zamierzam omówić w innej instrukcji.

Z korzyścią dla początkujących, którzy to czytają, współczynnik mocy jest stosunkiem mocy rzeczywistej do mocy pozornej i można go obliczyć, znajdując cosinus kąta fazowego między napięciem zasilania a prądem (patrz załączony obraz z Google). Jest to istotne w zastosowaniach prądu przemiennego, ponieważ „moc pozorną” (woltoampery) można łatwo obliczyć za pomocą napięcia pomnożonego przez prąd. Jednak aby uzyskać rzeczywistą moc lub „Prawdziwą moc” (w watach), moc pozorną należy pomnożyć przez współczynnik mocy, aby uzyskać prawdziwy pomiar mocy w watach. Dotyczy to tylko obciążeń, które mają znaczną składową indukcyjną lub pojemnościową (takich jak silnik). Obciążenia czysto rezystancyjne, takie jak grzejniki elektryczne lub żarówki, mają współczynnik mocy 1,0 (jedność), a zatem moc rzeczywista i moc pozorna są takie same.

Krok 1: Projekt obwodu

Projekt obwodu
Projekt obwodu
Projekt obwodu
Projekt obwodu
Projekt obwodu
Projekt obwodu
Projekt obwodu
Projekt obwodu

Współczynnik mocy można obliczyć za pomocą oscyloskopu, mierząc różnicę czasu między sygnałem napięciowym i prądowym. Można je zmierzyć w dowolnym punkcie fali, o ile są pobierane w tym samym miejscu. W tym przypadku logiczny był pomiar pomiędzy punktami przejścia przez zero (punkty w fali, w których napięcie przecina oś X).

Zaprojektowałem następujący układ w Multisim. Zakładając, że prąd i napięcie do obciążenia są czysto sinusoidalnymi przebiegami, można zmierzyć współczynnik mocy. Każdy przebieg jest podawany do detektora przejścia przez zero (czasami znanego jako konwerter sinusoidalny na prostokątny), który jest po prostu wzmacniaczem operacyjnym 741 w trybie komparatora, gdzie napięcie porównawcze wynosi 0V. Gdy sinusoida jest w cyklu ujemnym, generowany jest ujemny impuls prądu stałego, a gdy fala sinusoidalna jest dodatnia, generowany jest dodatni impuls prądu stałego. Dwie fale prostokątne są następnie porównywane przy użyciu wyłącznej bramki logicznej OR (XOR), która wyprowadza dodatni wysoki impuls DC tylko wtedy, gdy fale prostokątne się nie nakładają i 0 V, gdy się nakładają. Wyjściem bramki XOR jest zatem różnica czasu (delta t) między dwiema falami od punktu, w którym przecinają punkt zerowy. Ten sygnał różnicowy może być następnie synchronizowany przez mikrokontroler i przekonwertowany na współczynnik mocy przy użyciu następującego obliczenia (upewnij się, że kalkulator naukowy jest w stopniach, a nie w radianach):

cos(fi) = f * dt * 360

Gdzie:

cos(phi) - współczynnik mocy

f - Częstotliwość mierzonego zasilania

dt - delta t lub różnica czasu między falami

360 - stała używana do udzielania odpowiedzi w stopniach

Na zdjęciach zobaczysz trzy symulowane ślady oscyloskopu dla obwodu. Dwa sygnały wejściowe reprezentują prąd i napięcie do obciążenia. Dałem drugiemu sygnałowi różnicę faz 18 stopni, aby zademonstrować teorię. Daje to PF około 0,95.

Krok 2: Prototypowanie i testowanie

Prototypowanie i testowanie
Prototypowanie i testowanie
Prototypowanie i testowanie
Prototypowanie i testowanie
Prototypowanie i testowanie
Prototypowanie i testowanie

Do budowy mojego prototypu umieściłem projekt obwodu na płytce stykowej bez lutowania. Z arkusza danych UA741CN i arkusza danych CD4070CN oba układy scalone zasilane są napięciem 12-15 V DC, więc zasilałem je za pomocą dwóch baterii, aby uzyskać podwójne zasilanie +12 V, 0 V, -12 V.

Symulacja obciążenia

Obciążenie można symulować za pomocą dwukanałowego generatora sygnału lub generatora funkcji. Użyłem tego taniego i wesołego chińskiego pudełka do wytworzenia dwóch fal sinusoidalnych 50 Hz oddalonych o 18 stopni i wprowadziłem sygnały do obwodu. Otrzymane przebiegi można zobaczyć na oscyloskopie. Na powyższych zdjęciach widać dwie nakładające się fale prostokątne (wyjście z każdego wzmacniacza operacyjnego), a pozostałe trzy zdjęcia ilustrują wyjście bramki XOR. Zwróć uwagę, jak szerokość impulsu wyjściowego zmniejsza się wraz ze zmniejszaniem się kąta fazowego. Powyższe przykłady pokazują 90, 40, 0 stopni.

Krok 3: Kod Arduino

Jak wspomniano powyżej, wyjściem z układu pomiarowego jest różnica czasu między dwoma sygnałami wejściowymi (tj. sygnałem prądowym i napięciowym). Kod arduino wykorzystuje „pulseIn” do pomiaru długości impulsu wyjściowego z obwodu pomiarowego w nanosekundach i wykorzystuje go we wspomnianej wyżej formule PF.

Kod zaczyna się od zdefiniowania stałych, głównie po to, aby kod był bardziej zorganizowany i czytelny. Co najważniejsze, kod C (kod arduino) działa w radianach, a nie w stopniach, więc do późniejszego obliczenia kątów i PF potrzebna jest konwersja z radianów na stopnie. Jeden radian to około. 57,29577951 stopni. Liczba 360 jest również przechowywana, a mnożnik 1x10^-6 do konwersji nanosekund na zwykłe sekundy. Częstotliwość jest również zdefiniowana na początku, jeśli używasz czegoś innego niż 50 Hz, upewnij się, że jest to aktualizowane na początku kodu.

Wewnątrz „void loop()” powiedziałem Arduino, aby obliczył kąt na podstawie wspomnianej wcześniej formuły PF. W mojej pierwszej iteracji tego kodu kod zwróci prawidłowy kąt i współczynnik mocy, jednak między każdym poprawnym wynikiem w konsoli szeregowej zostanie zwrócona błędna niska wartość. Zauważyłem, że był to albo co drugi odczyt, albo co cztery pomiary. Umieściłem instrukcję "if" wewnątrz pętli "for", aby przechowywać maksymalną wartość co cztery kolejne odczyty. Robi to porównując obliczenia z „angle_max”, które początkowo wynosi zero, a jeśli jest większe, przechowuje nową wartość wewnątrz „angle_max”. Powtarza się to dla pomiaru PF. Robiąc to w pętli "for" oznacza to, że zawsze zwracany jest prawidłowy kąt i pf, ale jeśli zmierzony kąt się zmieni (wyższy lub niższy), po zakończeniu "for" "angle_max" zeruje się do następnego testu, gdy " void loop()” powtarza się. Bardzo dobry przykład tego, jak to działa, znajduje się na stronie Arduino (https://www.arduino.cc/en/Tutorial/Calibration). Druga formuła „jeśli” po prostu zapobiega zwróceniu wartości wyższej niż 360 w przypadku błędnego pomiaru wysokiego, gdy testowane urządzenie jest wyłączone.

Krok 4: Test kwasu

Test kwasu!
Test kwasu!
Test kwasu!
Test kwasu!
Test kwasu!
Test kwasu!

Nie próbuj wykonywać poniższych czynności, chyba że wiesz, jak bezpiecznie pracować z napięciem sieciowym AC. Jeśli masz wątpliwości co do swojego bezpieczeństwa, spróbuj zasymulować sygnały wejściowe za pomocą dwukanałowego generatora przebiegów.

Na prośbę zwolennika zrobiłem układ płytki prototypowej na Fritzing, aby dać lepsze wyobrażenie o obwodzie i obwodzie próbkowania/wykrywania (załączam plik.fzz i schemat.png). Silnik na górze reprezentuje wentylator biurkowy, którego użyłem, a cewka indukcyjna reprezentuje transformator prądowy, który owinąłem wokół przewodu pod napięciem. Zasilałem układy scalone 741 za pomocą dwóch akumulatorów 12 V ustawionych tak, aby dawać +12 VDC, 0 VDC (masa) i -12 VDC. CD4070 może być również zasilany bezpośrednio z szyny zasilającej 5V Arduino.

Aby udowodnić, że koncepcja działa w rzeczywistości, obwód został zbudowany na płytce stykowej bez lutowania. Na zdjęciach widać układ obwodów. Do przetestowania koncepcji użyłem wentylatora biurkowego jako obciążenia indukcyjnego. Pomiędzy zasilaniem sieciowym 230V a obciążeniem znajduje się mój czujnik. Mam transformator obniżający napięcie, który przekształca napięcie 230 V bezpośrednio na 5 V, aby umożliwić próbkowanie przebiegu napięcia. Do próbkowania kształtu fali prądu (na prawo od aluminiowego rezystora) zastosowano nieinwazyjny przekładnik prądowy zaciśnięty wokół przewodu pod napięciem. Zauważ, że niekoniecznie musisz znać amplitudę prądu lub napięcia, tylko kształt fali dla wzmacniacza operacyjnego, aby zidentyfikować przejście przez zero. Powyższe zdjęcia pokazują rzeczywiste przebiegi prądu i napięcia z wentylatora i konsoli szeregowej arduino, która zgłasza PF 0,41 i kąt 65 stopni.

Ta zasada działania może być włączona do domowego monitora energii, aby dokonywać prawdziwych pomiarów mocy. Jeśli jesteś kompetentny, możesz spróbować monitorować różne obciążenia indukcyjne i rezystancyjne oraz określać ich współczynnik mocy. I oto jest! bardzo prosta metoda pomiaru współczynnika mocy.

Zalecana: