Tartalomjegyzék:

Az AC teljesítménytényező mérése az Arduino használatával: 4 lépés
Az AC teljesítménytényező mérése az Arduino használatával: 4 lépés

Videó: Az AC teljesítménytényező mérése az Arduino használatával: 4 lépés

Videó: Az AC teljesítménytényező mérése az Arduino használatával: 4 lépés
Videó: Как измерить любое напряжение постоянного тока с Arduino ARDVC-01 2024, Július
Anonim
Az AC teljesítménytényező mérése az Arduino használatával
Az AC teljesítménytényező mérése az Arduino használatával
Az AC teljesítménytényező mérése az Arduino használatával
Az AC teljesítménytényező mérése az Arduino használatával

Sziasztok! Ez a harmadik tanulságos, remélem, hogy informatívnak találja:-) Ez egy tanulságos lesz arról, hogyan lehet alapvető teljesítménytényező-mérést végezni egy Arduino segítségével. Mielőtt elkezdenénk, néhány dolgot szem előtt kell tartani:

  1. Ez CSAK LINEAR terhelésekkel működik (pl. Induktív motorok, transzformátorok, mágnesszelepek)
  2. Ez NEM LINEAR (nem CFL izzók, kapcsolóüzemű tápegységek, LED-ek) esetén nem működik
  3. Villamosmérnök vagyok, és nagyon hozzáértő, ha hálózati potenciállal (pl. 230V) dolgozom

Figyelem! Ha nem vagy képzett, vagy nem tudod, hogyan kell helyesen dolgozni a hálózati feszültséggel, azt javaslom, hogy ne folytasd az utasítások ezen részét, és megmutatok egy biztonságos módszert az áramkör működésének bizonyítására.

Ez egy hardveres megoldás a PF lineáris terhelésekben történő mérésére. Ezt pusztán kódon keresztül is meg lehet tenni, beleértve a nemlineáris terhelések mérésének képességét, amelyet egy másik utasításban fogok lefedni.

Az ezt olvasó kezdők javára a teljesítménytényező a valódi teljesítmény és a látszólagos teljesítmény aránya, és kiszámítható a tápfeszültség és az áram közötti fázisszög koszinuszának megkeresésével (lásd a mellékelt Google -képet). Ez jelentős a váltakozó áramú alkalmazásokban, mivel a "látszólagos teljesítmény" (volt-amper) könnyen kiszámítható a feszültség és az áram szorzatával. Ahhoz azonban, hogy megkapjuk a valódi teljesítményt vagy a "valódi teljesítményt" (Watt), a látszólagos teljesítményt meg kell szorozni a teljesítménytényezővel, hogy valódi teljesítményt mérjünk wattban. Ez csak olyan terhelésekre vonatkozik, amelyek jelentős induktív vagy kapacitív komponenssel rendelkeznek (például motor). A tisztán ellenálló terhelések, például az elektromos fűtőberendezések vagy izzólámpák teljesítménytényezője 1,0 (egység), ezért a valódi teljesítmény és a látszólagos teljesítmény ugyanaz.

1. lépés: Áramkör tervezése

Áramkör tervezés
Áramkör tervezés
Áramkör tervezés
Áramkör tervezés
Áramkör tervezés
Áramkör tervezés
Áramkör tervezés
Áramkör tervezés

A teljesítménytényező oszcilloszkóp segítségével kiszámítható a feszültség és az áramjel közötti időkülönbség mérésével. Ezeket a hullám bármely pontján meg lehet mérni, amennyiben ugyanazon a helyen vesznek mintát. Ebben az esetben logikus volt a nulla keresztezési pontok (a hullám azon pontjai, ahol a feszültség keresztezte az X tengelyt) közötti mérés.

A következő áramkört Multisim -ben terveztem. Ha feltételezzük, hogy az áram és a terhelés tiszta szinuszos hullámforma, a teljesítménytényező mérhető. Minden hullámformát egy nulla keresztező detektorba táplálnak (néha szinusz-négyzet hullám átalakítónak is nevezik), amely egyszerűen 741 op-erősítő összehasonlító módban, ahol az összehasonlító feszültség 0V. Amikor a szinuszhullám negatív ciklusban van, negatív egyenáramú impulzus keletkezik, és amikor a szinuszhullám pozitív, akkor pozitív egyenáramú impulzus keletkezik. A két négyzethullámot ezután egy exkluzív OR (XOR) logikai kapu segítségével hasonlítják össze, amely csak akkor ad ki pozitív nagy egyenáramú impulzust, ha a négyzethullámok nem fedik egymást, és 0 V -ot, amikor átfedik egymást. Az XOR kapu kimenete tehát a két hullám közötti időkülönbség (delta t) attól a ponttól, ahol átlépik a nulla pontot. Ezt a különbségjelet ezután egy mikrokontroller időzítheti, és teljesítménytényezővé alakíthatja a következő számítással (győződjön meg arról, hogy a tudományos számológép fokban, nem radiánban van megadva):

cos (phi) = f * dt * 360

Ahol:

cos (phi) - a teljesítménytényező

f - A mért ellátás gyakorisága

dt - delta t vagy a hullámok közötti időkülönbség

360 - egy állandó, amellyel fokban lehet választ adni

A képeken három szimulált oszcilloszkóp nyomot lát az áramkör számára. A két bemeneti jel az áramot és a terhelés feszültségét jelzi. A második jelnek 18 fokos fáziskülönbséget adtam az elmélet lerontására. Ez körülbelül 0,95 PF értéket eredményez.

2. lépés: Prototípuskészítés és tesztelés

Prototípuskészítés és tesztelés
Prototípuskészítés és tesztelés
Prototípuskészítés és tesztelés
Prototípuskészítés és tesztelés
Prototípuskészítés és tesztelés
Prototípuskészítés és tesztelés

A prototípusom elkészítéséhez az áramkört egy forrasztás nélküli kenyérsütő táblára tettem. Az UA741CN adatlapból és a CD4070CN adatlapból mindkét IC 12-15 Vdc tápellátást biztosít, így két elemmel tápláltam a kettős sín +12V, 0V, -12V voltos tápegységet.

Terhelés szimulálása

A terhelést szimulálhatja kétcsatornás jelgenerátor vagy funkciógenerátor használatával. Ezt az olcsó és vidám kínai dobozt használtam két 50 Hz -es szinuszhullám előállításához, 18 ° -ra egymástól, és betápláltam a jeleket az áramkörbe. A kapott hullámformákat oszcilloszkópon láthatja. A fenti képeken a két egymást átfedő négyzethullám látható (mindegyik op-erősítő kimenete), a másik három kép pedig az XOR kapu kimenetét szemlélteti. Figyelje meg, hogyan csökken a kimenő impulzus szélessége a csökkenő fázisszöggel. A fenti példák 90, 40, 0 fokot mutatnak.

3. lépés: Arduino kód

Amint fentebb említettük, a mérőáramkör kimenete a két bemeneti jel (azaz az áram és a feszültségjel) közötti időkülönbség. Az arduino kód "pulseIn" segítségével méri a kimeneti impulzus hosszát a mérőkörből nanosekundumokban, és a fent említett PF képletben használja.

A kód az állandók meghatározásával kezdődik, főleg azért, hogy a kód jobban szervezett és olvasható legyen. A legfontosabb, hogy a C -kód (arduino -kód) radiánban és nem fokokban működik, ezért a szögek és a PF -ek későbbi kiszámításához radiánokból fokra kell átalakítani. Egy radián kb. 57,29577951 fok. A 360-as szám is tárolásra kerül, és a szorzótényező 1x10^-6 a nano másodpercek egyszerű másodpercre való átalakításához. A frekvencia az elején is meg van határozva, ha 50 Hz -en kívül mást használ, győződjön meg róla, hogy a kód elején frissül.

A "void loop ()" belsejében azt mondtam az Arduino -nak, hogy számolja ki a szöget a korábban említett PF képlet alapján. Ennek a kódnak az első iterációjánál a kód a helyes szöget és teljesítménytényezőt adja vissza, azonban minden helyes eredmény között néhány hibás alacsony érték is megjelenik a soros konzolban. Észrevettem, hogy ez vagy minden második leolvasás, vagy minden négy mérés. Egy "ha" utasítást helyeztem a "for" ciklusba, hogy tárolja a négy egymást követő leolvasás maximális értékét. Ezt úgy teszi meg, hogy összehasonlítja a számítást a "szög_max" értékkel, amely kezdetben nulla, és ha nagyobb, akkor az új értéket a "szög_max" értékben tárolja. Ezt megismétlik a PF mérésnél. Ha ezt egy "for" ciklusban teszi, ez azt jelenti, hogy a helyes szög és pf mindig visszatér, de ha a mért szög megváltozik (magasabb vagy alacsonyabb), amikor "a" végén "szög_max" visszaáll nullára a következő tesztnél, amikor " void loop () "megismétlődik. Van egy nagyon jó példa arra, hogyan működik ez az Arduino webhelyen (https://www.arduino.cc/en/Tutorial/Calibration). A második "ha" képlet egyszerűen megakadályozza, hogy a 360 -nál magasabb érték visszaadásra kerüljön, ha a tesztelt készülék kikapcsolásakor hibásan magas értéket mérnek.

4. lépés: A sav teszt

A sav teszt!
A sav teszt!
A sav teszt!
A sav teszt!
A sav teszt!
A sav teszt!

Ne hajtsa végre a következőket, ha nem tudja, hogyan kell biztonságosan dolgozni a hálózati feszültséggel. Ha kétségei vannak a biztonságával kapcsolatban, próbálja szimulálni a bemeneti jeleket egy kétcsatornás hullámforma-generátorral.

Egy követő kérésére elkészítettem a Fritzing -en egy kenyeretábla -elrendezést, hogy jobb képet kapjak az áramkörről és a mintavételi/érzékelő áramkörről (csatoltam a.fzz fájlt és a-p.webp

Annak bizonyítására, hogy a koncepció a valóságban is működik, az áramkört forrasztott, kevésbé kenyérsütő táblára építették. A képeken látható az áramkör elrendezése. A koncepció teszteléséhez asztali ventilátort használtam induktív terhelésként. A 230 V -os hálózati tápegység és a terhelés között van az érzékelő berendezésem. Van egy lépcsőzetes transzformátorom, amely 230 V -ot közvetlenül 5 V -ra alakít, hogy lehetővé tegye a feszültség hullámformájának mintavételét. A feszültség alatt álló vezeték köré szorított, nem invazív áramváltót használtuk az áram hullámformájának mintavételére (az alumínium burkolatú ellenállás jobb oldalán). Ne feledje, hogy nem feltétlenül ismernie kell az áram vagy feszültség amplitúdóját, csak az op-erősítő hullámformáját, hogy azonosítsa a nulla kereszteződést. A fenti képek a ventilátor aktuális áram- és feszültséghullámformáit, valamint az arduino soros konzolt mutatják, amely 0,41 PF -et és 65 ° -os szöget jelent.

Ez a működő elv beépíthető egy házilag készített energiamonitorba, hogy valódi teljesítményméréseket végezzen. Ha hozzáértő, megpróbálhatja figyelemmel kísérni a különböző induktív és ellenállásos terheléseket, és meghatározni azok teljesítménytényezőjét. És ott van! nagyon egyszerű módszer a teljesítménytényező mérésére.

Ajánlott: