Innholdsfortegnelse:

Hvordan måle vekselstrømfaktor ved bruk av Arduino: 4 trinn
Hvordan måle vekselstrømfaktor ved bruk av Arduino: 4 trinn

Video: Hvordan måle vekselstrømfaktor ved bruk av Arduino: 4 trinn

Video: Hvordan måle vekselstrømfaktor ved bruk av Arduino: 4 trinn
Video: Как использовать датчик переменного/постоянного тока Allegro ACS712 с Arduino 2024, November
Anonim
Hvordan måle vekselstrømfaktor ved hjelp av Arduino
Hvordan måle vekselstrømfaktor ved hjelp av Arduino
Hvordan måle vekselstrømfaktor ved hjelp av Arduino
Hvordan måle vekselstrømfaktor ved hjelp av Arduino

Hei alle sammen! Dette er min tredje instruerbare, håper du finner den informativ:-) Dette vil være en instruks om hvordan du gjør en grunnleggende effektfaktormåling ved hjelp av en Arduino. Før vi begynner er det noen ting å huske på:

  1. Dette vil KUN fungere med LINEAR belastninger (f.eks. Induktive motorer, transformatorer, solenoider)
  2. Dette vil IKKE fungere med IKKE-LINEAR (f.eks. CFL-pærer, strømforsyninger i brytermodus, lysdioder)
  3. Jeg er en elektroingeniør og veldig kompetent når jeg jobber med strømnettet (dvs. 230V)

Advarsel! Hvis du ikke er opplært eller ikke vet hvordan du skal fungere riktig med nettspenning, foreslår jeg at du ikke fortsetter med den delen av instruksjonsboken, og jeg vil vise deg en sikker metode for å bevise at kretsen fungerer.

Dette er en maskinvareløsning på problemet med måling av PF i lineære belastninger. Dette kan også gjøres rent gjennom kode inkludert muligheten til å måle ikke-lineære belastninger, som jeg vil sikte på å dekke i en annen instruerbar.

Til fordel for alle nybegynnere som leser dette, er effektfaktoren forholdet mellom sann effekt og tilsynelatende effekt og kan beregnes ved å finne cosinus for fasevinkelen mellom forsyningsspenningen og strømmen (se vedlagt bilde fra Google). Dette er betydelig i AC-applikasjoner ettersom "Tilsynelatende effekt" (volt-ampere) enkelt kan beregnes ved hjelp av spenning multiplisert med strøm. Men for å få den virkelige effekten eller "True Power" (watt) må tilsynelatende effekt multipliseres med effektfaktoren for å gjøre en sann måling av effekten i watt. Dette gjelder bare belastninger som har en betydelig induktiv eller kapaktiv komponent (for eksempel en motor). Rent resistive belastninger som elektriske varmeovner eller glødelamper har en effektfaktor på 1,0 (enhet), og derfor er True Power og Apparent Power det samme.

Trinn 1: Kretsdesign

Kretsdesign
Kretsdesign
Kretsdesign
Kretsdesign
Kretsdesign
Kretsdesign
Kretsdesign
Kretsdesign

Effektfaktor kan beregnes ved hjelp av et oscilloskop ved å måle tidsforskjellen mellom spenning og strømsignal. Disse kan måles når som helst i bølgen så lenge de er samplet på samme sted. I dette tilfellet var det logisk å måle mellom null krysspunkter (punkter i bølgen der spenningen krysset X-aksen).

Jeg designet følgende krets i Multisim. Forutsatt at strømmen og spenningen til lasten er rene sinusformede bølgeformer, kan effektfaktoren måles. Hver bølgeform mates inn i en nullovergangsdetektor (noen ganger kjent som en sinus til firkantbølgeomformer) som ganske enkelt er en 741 op-amp i komparator-modus der sammenligningsspenningen er 0V. Når sinusbølgen er i den negative syklusen genereres en negativ DC -puls, og når sinusbølgen er positiv, genereres en positiv DC -puls. De to firkantbølgene blir deretter sammenlignet ved hjelp av en eksklusiv OR (XOR) logisk gate, som bare gir en positiv høy DC -puls når firkantbølgene ikke overlapper hverandre, og 0V når de overlapper hverandre. Utgangen til XOR -porten er derfor tidsforskjell (delta t) mellom de to bølgene fra punktet de krysser nullpunktet. Dette differansesignalet kan deretter times av en mikrokontroller og konverteres til effektfaktor ved å bruke følgende beregning (sørg for at den vitenskapelige kalkulatoren din er i grader ikke radianer):

cos (phi) = f * dt * 360

Hvor:

cos (phi) - effektfaktoren

f - Frekvensen for den målte forsyningen

dt - delta t eller tidsforskjell mellom bølgene

360 - en konstant som brukes til å gi svar i grader

På bildene vil du se tre simulerte oscilloskopspor for kretsen. De to inngangssignalene representerer strømmen og spenningen til lasten. Jeg har gitt det andre signalet en faseforskjell på 18 Deg, for å demostrere teorien. Dette gir en PF på ca. 0,95.

Trinn 2: Prototyping og testing

Prototyping og testing
Prototyping og testing
Prototyping og testing
Prototyping og testing
Prototyping og testing
Prototyping og testing

For prototypen min la jeg kretsdesignet på et loddfritt brødbrett. Fra UA741CN -databladet og CD4070CN -databladet kjører begge IC -ene en 12-15 Vdc -forsyning, så jeg drev med to batterier for å lage en dual rail +12V, 0V, -12V Volt strømforsyning.

Simulere en last

Du kan simulere en belastning ved å bruke en tokanals signalgenerator eller funksjonsgenerator. Jeg brukte denne billige og muntre kinesiske boksen til å produsere to 50 Hz sinusbølger 18 grader fra hverandre, og matet signalene inn i kretsen. Du kan se de resulterende bølgeformene på et oscilloskop. På bildene ovenfor kan du se de to overlappende firkantbølgene (utgang fra hver op-amp), og de tre andre bildene illustrerer utgangen til XOR-porten. Legg merke til hvordan bredden på utgangspulsen blir kortere med avtagende fasevinkel. Eksemplene ovenfor viser 90, 40, 0 grader.

Trinn 3: Arduino -kode

Som nevnt ovenfor er utgangen fra målekretsen tidsforskjellen mellom de to inngangssignalene (dvs. strømmen og spenningssignalet). Arduino -koden bruker "pulseIn" til å måle lengden på utgangspulsen fra målekretsen i nanosekunder og bruker den i PF -formelen nevnt ovenfor.

Koden starter med å definere konstanter, hovedsakelig for å gjøre koden mer organisert og lesbar. Viktigst, C -kode (arduino -kode) fungerer i radianer, ikke grader, så en konvertering fra radianer til grader er nødvendig for å beregne vinkel og PF senere. En radian er ca. 57.29577951 grader. Tallet 360 er også lagret og multiplikasjonsfaktoren 1x10^-6 for å konvertere nanosekunder til vanlige sekunder. Frekvens er også definert i starten. Hvis du bruker noe annet enn 50Hz, må du sørge for at denne oppdateres ved starten av koden.

Inne i "void loop ()" har jeg fortalt Arduino å beregne vinkelen basert på PF -formelen nevnt tidligere. Ved min første iterasjon av denne koden, ville koden returnere riktig vinkel og effektfaktor, men mellom hvert korrekt resultat returneres også en feilaktig lav verdi i seriekonsollen. Jeg la merke til at dette var enten annenhver lesing eller hver fjerde måling. Jeg plasserte en "hvis" -setning i en "for" -sløyfe for å lagre maksimalverdi for hver fjerde påfølgende avlesning. Den gjør dette ved å sammenligne beregningen med "vinkel_max" som i utgangspunktet er null, og hvis den er større, lagrer den nye verdien inne i "vinkel_maks". Dette gjentas for PF -målingen. Ved å gjøre dette i en "for" sløyfe betyr det at riktig vinkel og pf alltid returneres, men hvis den målte vinkelen endres (høyere eller lavere), når "for" ender "vinkel_max" tilbakestilles til null for neste test, når " void loop () "gjentas. Det er et veldig godt eksempel på hvordan dette fungerer på Arduino -nettstedet (https://www.arduino.cc/en/Tutorial/Calibration). Den andre "hvis" -formelen forhindrer ganske enkelt at en verdi høyere enn 360 returneres hvis feil høy måles når enheten som testes er slått av.

Trinn 4: Syretesten

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

Ikke prøv følgende med mindre du vet hvordan du arbeider trygt med vekselstrøm. Hvis du er i tvil om sikkerheten din, kan du prøve å simulere inngangssignalene med en tokanals bølgeformgenerator.

På forespørsel fra en følger har jeg laget et brødbrettoppsett på Fritzing for å gi en bedre ide om kretsen og prøvetaking/sensing -kretsen (jeg har vedlagt.fzz -filen og et-p.webp

For å bevise at konseptet fungerer i virkeligheten, ble kretsen bygget på et loddfritt brødbrett. Fra bildene kan du se kretsarrangementet. Jeg har brukt en skrivebordsvifte som min induktive belastning for å teste konseptet. Mellom 230V strømforsyningen og belastningen er mitt sanseutstyr. Jeg har en trapp ned transformator som transformerer 230V direkte til 5V slik at spenningsbølgeformen kan samples. En ikke-invasiv strømtransformator klemt rundt strømførende leder ble brukt til å prøve den nåværende bølgeformen (til høyre for den aluminiumskledde motstanden). Vær oppmerksom på at du ikke nødvendigvis trenger å kjenne amplituden til strømmen eller spenningen, bare bølgeformen for op-amp for å identifisere nullkryssingen. Bildene ovenfor viser de faktiske strøm- og spenningsbølgeformene fra viften og arduino -seriekonsollen, som rapporterer en PF på 0,41 og en vinkel på 65 grader.

Denne fungerende rektor kan innlemmes i en hjemmelaget energimonitor for å utføre sanne effektmålinger. Hvis du er kompetent, kan du prøve å overvåke forskjellige induktive og resistive belastninger og bestemme effektfaktoren. Og det er det! en veldig enkel metode for å måle effektfaktor.

Anbefalt: