Indholdsfortegnelse:

Sådan måles vekselstrømsfaktor ved hjælp af Arduino: 4 trin
Sådan måles vekselstrømsfaktor ved hjælp af Arduino: 4 trin

Video: Sådan måles vekselstrømsfaktor ved hjælp af Arduino: 4 trin

Video: Sådan måles vekselstrømsfaktor ved hjælp af Arduino: 4 trin
Video: How to use Allegro ACS712 AC/DC Current Sensor with Arduino 2024, Juli
Anonim
Sådan måles vekselstrømsfaktor ved hjælp af Arduino
Sådan måles vekselstrømsfaktor ved hjælp af Arduino
Sådan måles vekselstrømsfaktor ved hjælp af Arduino
Sådan måles vekselstrømsfaktor ved hjælp af Arduino

Hej allesammen! Dette er min tredje instruerbare, håber du finder den informativ:-) Dette vil være en instruktion om, hvordan man laver en grundlæggende effektfaktormåling ved hjælp af en Arduino. Inden vi starter er der et par ting at huske på:

  1. Dette fungerer KUN med LINEAR belastninger (f.eks. Induktive motorer, transformere, solenoider)
  2. Dette fungerer IKKE med IKKE-LINEAR (f.eks. CFL-pærer, strømforsyninger i switchtilstand, LED'er)
  3. Jeg er en elektrotekniker og meget kompetent, når jeg arbejder med netpotentiale (dvs. 230V)

Advarsel! Hvis du ikke er uddannet eller ikke ved, hvordan du arbejder korrekt med netspænding, foreslår jeg, at du ikke fortsætter med den del af instruktionen, og jeg vil vise dig en sikker metode til at bevise, at kredsløbet fungerer.

Dette er en hardwareløsning på problemet med måling af PF i lineære belastninger. Dette kan også gøres rent gennem kode inklusive evnen til at måle ikke-lineære belastninger, som jeg vil sigte mod at dække i en anden instruerbar.

Til fordel for alle begyndere, der læser dette, er effektfaktoren forholdet mellem ægte effekt og tilsyneladende effekt og kan beregnes ved at finde cosinus for fasevinklen mellem forsyningsspændingen og strømmen (se vedhæftet billede fra Google). Dette er vigtigt i AC-applikationer, da "tilsyneladende effekt" (volt-ampere) let kan beregnes ved hjælp af spænding ganget med strøm. Men for at få den reelle effekt eller "True Power" (Watt) skal tilsyneladende effekt multipliceres med effektfaktoren for at foretage en sand måling af effekt i Watt. Dette gælder kun belastninger, der har en betydelig induktiv eller kapaktiv komponent (f.eks. En motor). Rent resistive belastninger såsom elektriske varmeapparater eller glødepærer har en effektfaktor på 1,0 (enhed), og derfor er True Power og Apparent Power det samme.

Trin 1: Kredsløbsdesign

Kredsløbsdesign
Kredsløbsdesign
Kredsløbsdesign
Kredsløbsdesign
Kredsløbsdesign
Kredsløbsdesign
Kredsløbsdesign
Kredsløbsdesign

Effektfaktor kan beregnes ved hjælp af et oscilloskop ved at måle tidsforskellen mellem spændingen og strømsignalet. Disse kan måles på ethvert tidspunkt i bølgen, så længe de samples samme sted. I dette tilfælde var det logisk at måle mellem nul krydsningspunkter (punkter i bølgen, hvor spændingen krydsede X-aksen).

Jeg designede følgende kredsløb i Multisim. Forudsat at strøm og spænding til belastningen er rene sinusformede bølgeformer, kan effektfaktoren måles. Hver bølgeform føres ind i en nulkrydsningsdetektor (undertiden kendt som en sinus til firkantbølgeomformer), som simpelthen er en 741 op-amp i komparatortilstand, hvor sammenligningsspændingen er 0V. Når sinusbølgen er i den negative cyklus genereres en negativ DC -puls, og når sinusbølgen er positiv, genereres en positiv DC -puls. De to firkantede bølger sammenlignes derefter ved hjælp af en eksklusiv OR (XOR) logisk gate, som kun udsender en positiv høj DC -puls, når firkantbølgerne ikke overlapper hinanden, og 0V, når de overlapper hinanden. XOR -portens output er derfor tidsforskel (delta t) mellem de to bølger fra det punkt, de krydser nulpunktet. Dette differenssignal kan derefter times af en mikrokontroller og konverteres til effektfaktor ved hjælp af følgende beregning (sørg for at din videnskabelige lommeregner er i grader ikke radianer):

cos (phi) = f * dt * 360

Hvor:

cos (phi) - effektfaktoren

f - Frekvensen af den målte forsyning

dt - delta t eller tidsforskel mellem bølgerne

360 - en konstant, der bruges til at give svar i grader

På billederne vil du se tre simulerede oscilloskopspor for kredsløbet. De to indgangssignaler repræsenterer strømmen og spændingen til belastningen. Jeg har givet det andet signal en faseforskel på 18 Deg for at demostrere teorien. Dette giver en PF på ca. 0,95.

Trin 2: Prototyping og test

Prototyping og test
Prototyping og test
Prototyping og test
Prototyping og test
Prototyping og test
Prototyping og test

Til min prototype -konstruktion lagde jeg kredsløbsdesignet på et loddet brødbræt. Fra UA741CN datablad og CD4070CN datablad kører begge IC'er fra en 12-15 Vdc forsyning, så jeg drev med to batterier til at lave en dual rail +12V, 0V, -12V Volt strømforsyning.

Simulering af en belastning

Du kan simulere en belastning ved hjælp af en dobbeltkanals signalgenerator eller funktionsgenerator. Jeg brugte denne billige og muntre kinesiske boks til at producere to 50 Hz sinusbølger 18 grader fra hinanden og førte signalerne ind i kredsløbet. Du kan se de resulterende bølgeformer på et oscilloskop. På billederne ovenfor kan du se de to overlappende firkantbølger (output fra hver op-amp), og de tre andre billeder illustrerer output fra XOR-porten. Læg mærke til, hvordan udgangspulsens bredde vokser kortere med faldende fasevinkel. Eksemplerne ovenfor viser 90, 40, 0 grader.

Trin 3: Arduino -kode

Som nævnt ovenfor er output fra målekredsløbet tidsforskellen mellem de to indgangssignaler (dvs. strømmen og spændingssignalet). Arduino -koden bruger "pulseIn" til at måle længden af outputpulsen fra målekredsløbet på nanosekunder og bruger den i PF -formlen nævnt ovenfor.

Koden starter med at definere konstanter, hovedsageligt for at gøre koden mere organiseret og læsbar. Vigtigst er det, at C -kode (arduino -kode) fungerer i radianer, ikke grader, så en konvertering fra radianer til grader er nødvendig for at beregne vinkel- og PF'er senere. En radian er ca. 57.29577951 grader. Tallet 360 er også gemt og multiplikationsfaktoren 1x10^-6 til konvertering af nanosekunder til almindelige sekunder. Frekvens er også defineret i starten, hvis du bruger andet end 50Hz, skal du sørge for, at denne opdateres i starten af koden.

Inde i "void loop ()" har jeg fortalt Arduinoen at beregne vinklen baseret på PF -formlen nævnt tidligere. Ved min første iteration af denne kode ville koden returnere den korrekte vinkel og effektfaktor, men mellem hvert korrekt resultat returneres også en fejlagtig lav værdi i seriekonsollen. Jeg bemærkede, at dette enten var hver anden læsning eller hver fjerde måling. Jeg placerede en "if" -erklæring i en "for" -sløjfe for at gemme den maksimale værdi for hver fjerde på hinanden følgende aflæsning. Det gør det ved at sammenligne beregningen med "vinkel_max", som i første omgang er nul, og hvis den er større, gemmer den nye værdi inde i "vinkel_max". Dette gentages for PF -måling. Ved at gøre dette i en "for" sløjfe betyder det, at den korrekte vinkel og pf altid returneres, men hvis den målte vinkel ændres (højere eller lavere), når "for" ender "vinkel_max" nulstilles til nul for den næste test, når " void loop () "gentages. Der er et meget godt eksempel på, hvordan dette fungerer på Arduino -webstedet (https://www.arduino.cc/en/Tutorial/Calibration). Den anden "hvis" -formel forhindrer ganske enkelt, at enhver værdi, der er højere end 360, returneres i tilfælde af fejlagtig høj måling, når den testede enhed slukkes.

Trin 4: Syretesten

Syretesten!
Syretesten!
Syretesten!
Syretesten!
Syretesten!
Syretesten!

Prøv ikke følgende, medmindre du ved, hvordan du arbejder sikkert med vekselstrøm. Hvis du er i tvivl om din sikkerhed, kan du prøve at simulere indgangssignalerne med en dobbeltkanals bølgeformgenerator.

Efter anmodning fra en tilhænger har jeg lavet et brødbræddelayout på Fritzing for at give en bedre ide om kredsløbet og prøve-/sensorkredsløbet (jeg har vedhæftet.fzz -filen og et-p.webp

For at bevise, at konceptet fungerer i virkeligheden, blev kredsløbet bygget på et loddemetal mindre brødbræt. Fra billederne kan du se kredsløbsarrangementet. Jeg har brugt en skrivebordsventilator som min induktive belastning til at teste konceptet. Mellem 230V lysnettet og belastningen er mit sanseudstyr. Jeg har en trappetransformator, der transformerer 230V direkte til 5V, så spændingsbølgeformen kan samples. En ikke-invasiv strømtransformator fastspændt omkring den levende leder blev brugt til at prøve den aktuelle bølgeform (til højre for den aluminiumbeklædte modstand). Bemærk, at du ikke nødvendigvis behøver at kende strømmen eller spændingens amplitude, kun bølgeformen for op-amp for at identificere nulovergangen. Ovenstående billeder viser de aktuelle strøm- og spændingsbølgeformer fra blæseren og den arduino serielle konsol, der rapporterer en PF på 0,41 og en vinkel på 65 Deg.

Denne arbejdsgiver kan inkorporeres i en hjemmelavet energimonitor for at foretage sande effektmålinger. Hvis du er kompetent, kan du prøve at overvåge forskellige induktive og resistive belastninger og bestemme deres effektfaktor. Og der er det! en meget simpel metode til måling af effektfaktor.

Anbefalede: