Forum: Mikrocontroller und Digitale Elektronik Wechselstrom-Messung bei Phasenanschnitt mit ACS722


von Tim K. (timkl94)


Lesenswert?

Hallo Leute,

ich möchte mit einem ACS722 Sensor (+/-5 A) den Wechselstrom einer 
Phasenanschnitt-Steuerung messen, um einen Motor zu überwachen.

Jedoch schwanken die Messwerte im Moment noch zu stark.

Wie bekomme ich mit den Sensor ein brauchbares Ergebnis?

Den Strom berechne ich über den quad. Mittelwert.

von Dieter (Gast)


Lesenswert?

Tim K. schrieb:
> Jedoch schwanken die Messwerte im Moment noch zu stark.

a) Wie stark?
b) Mit welcher Abtastrate werden die Werte eingelesen?

von Tim K. (timkl94)


Lesenswert?

Dieter schrieb:
> Tim K. schrieb:
>> Jedoch schwanken die Messwerte im Moment noch zu stark.
>
> a) Wie stark?

Der Sensor liefert im Leerlauf einen Spannungswert von 1,64 V.

Die Messwerte bei Motorbetrieb schwanken zwischen 1,5 V und 1,79 V.

> b) Mit welcher Abtastrate werden die Werte eingelesen?

Ich lese den A/D-Wandler jede Millisekunde aus und speichere den Wert in 
einem Array bis ich 20 Messwerte habe.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Schnell genug sollte er ja sein, schmalbandig bis 80 kHz:
https://www.allegromicro.com/en/Products/Sense/Current-Sensor-ICs/Zero-To-Fifty-Amp-Integrated-Conductor-Sensor-ICs/ACS722
Anstiegszeiten im Mikrosekundenbereich, allerdings ein hohes Rauschen, 
42mA rms bezogen auf den gemessenen Strom, das sollte bei max. 5A noch 
nicht so stark stören.

: Bearbeitet durch User
von versuchmachtkluch (Gast)


Lesenswert?

Tim K. schrieb:
> Der Sensor liefert im Leerlauf einen Spannungswert von 1,64 V.
>
> Die Messwerte bei Motorbetrieb schwanken zwischen 1,5 V und 1,79 V.

Aus Datenblatt:
Sensitivity Sens IPR(min) < IP < IPR(max) – 264 – mV/A
Zero Current Output Voltage VIOUT(Q) Bidirectional; IP = 0 A – VCC ×
0.5 – V

Kann das sein das dein Motor ~ 0.5A zieht ?

Was du als Schwanken bezeichnest, ist das nicht einfach die Positive 
halbwelle und Negative halbwelle gemessen ?

1A -> 0.264V

1.64V - 1.5 V = 0.14V --> ~0.5A
1.64V - 1,79V =-0,15V --> ~ -0.5A

von Tim K. (timkl94)


Lesenswert?

versuchmachtkluch schrieb:
> Tim K. schrieb:
>> Der Sensor liefert im Leerlauf einen Spannungswert von 1,64 V.
>>
>> Die Messwerte bei Motorbetrieb schwanken zwischen 1,5 V und 1,79 V.
>
> Aus Datenblatt:
> Sensitivity Sens IPR(min) < IP < IPR(max) – 264 – mV/A
> Zero Current Output Voltage VIOUT(Q) Bidirectional; IP = 0 A – VCC ×
> 0.5 – V
>
> Kann das sein das dein Motor ~ 0.5A zieht ?
>
> Was du als Schwanken bezeichnest, ist das nicht einfach die Positive
> halbwelle und Negative halbwelle gemessen ?
>
> 1A -> 0.264V
>
> 1.64V - 1.5 V = 0.14V --> ~0.5A
> 1.64V - 1,79V =-0,15V --> ~ -0.5A

Ja, der Motorstrom liegt im Bereich von 0,5 A. Etwas mehr noch.

1,5 V und 1,79 sind Min und Max-Wert.

Muss ich mehr Samples aufnehmen?

von Eberhard H. (sepic) Benutzerseite


Lesenswert?

Bei der -5A/+5A-Ausführung liegt die Leerlaufmessspannung bei 0,5*Vcc.
Das scheint mit 1,64V bei einer 3,3V-Versorgung ja einigermaßen zu 
stimmen.

Für ein genaues Ergebnis sind Messungen in 1msec-Abständen aber doch 
relativ selten (5% einer 50Hz-Vollschwingung).

Welche Eigenschaften hat der A/D-Wandler?

Deshalb vielleicht für mehr Genauigkeit tatsächlich öfter messen und für 
die Mittelwertbildung erst den tatsächlichen Nullwert vom Messwert 
abziehen (ggf. hierzu auch Vcc messen).

von Dietrich L. (dietrichl)


Lesenswert?

Tim K. schrieb:
> Ich lese den A/D-Wandler jede Millisekunde aus und speichere den Wert in
> einem Array bis ich 20 Messwerte habe.

Nur damit da kein Missvertändnis aufkommt:
Liefert der A/D-Wandler auch jede Millisekunde einen neuen Wert oder 
liest du ihn jede Millisekunde aus - auch wenn er noch beim Wandeln ist?

von Kevin M. (arduinolover)


Lesenswert?

Die Frage ist auch ob die Messwerte immer equidistant sind. Wenn der 
Abtastzeitpunkt driftet kann das auch zu solchen Schwankungen führen.

von Mathias H. (mathias)


Lesenswert?

@Tim K. (timkl94)
Oszi vorhanden?

von Tim K. (timkl94)


Lesenswert?

Mathias H. schrieb:
> @Tim K. (timkl94)
> Oszi vorhanden?

Ja

von Achim S. (Gast)


Lesenswert?

Du schreibst zwar zu Beginn:

Tim K. schrieb:
> Den Strom berechne ich über den quad. Mittelwert

was danach klingt, dass du den Effektivwert des Stroms bestimmst.

Aber die von dir beschriebenen Zahlenwerte

Tim K. schrieb:
> Ja, der Motorstrom liegt im Bereich von 0,5 A. Etwas mehr noch.
> 1,5 V und 1,79 sind Min und Max-Wert.

sehen dann eher nach den Momentanwerten des Stroms aus. Wie 
versuchmachtkluch beschrieben hat: wenn der Momentanwert 0A ist gibt 
dein Sensor 1,64V aus. Die positive Halbwelle des Stroms liefert dann 
größere Spannungen (bis 1,79V), die negative Halbwelle liefert kleinere 
Spannungen (bis 1,5V). Falls der Bereich 1,5V bis 1,79V also für deine 
Momentanwerte gilt, ist alles richtig, ein Wechselstrom muss so um den 
Mittelwert schwanken.

Deshalb zur Sicherheit nochmal die explizite Nachfrage: gilt der Bereich 
1,5V-1,79V für die einzelnen Messwerte deines ADCs oder gilt er für den 
von dir berechneten Effektivwert?

Falls die genannten Werte den Momentanwerten entsprechen, musst du
- von jedem der 20 Einzelwerte 1,64V abziehen
- die Differenz quadrieren
- die 20 quadrierten Werte aufaddieren
- die Summe durch 20 teilen
- die Wurzel daraus ziehen.

Dann erst siehst du den Effektivwert des Stroms, und der sollte 
einigermaßen konstant sein.

Wenn das klappt kann man immer noch überlegen, schneller abzutasten um 
die Genauigkeit zu erhöhen. Wichtig ist aber, dass der Zeitbereich, über 
den du mittelst, immer ein ganzzahliges Vielfaches der Netzperiode ist 
(bei 20 Werten im Abstand von 1ms passt das).

von Εrnst B. (ernst)


Lesenswert?

Achim S. schrieb:
> Wichtig ist aber, dass der Zeitbereich, über
> den du mittelst, immer ein ganzzahliges Vielfaches der Netzperiode ist
> (bei 20 Werten im Abstand von 1ms passt das).

d.H. du musst wirklich jede Millisekunde messen.

ein
1
for (int i=0; i<20; ++i) {
2
  messwerte[i]= analogRead(PIN);
3
  delay(1);
4
}

erfüllt das nicht.

von Harald W. (wilhelms)


Lesenswert?

Achim S. schrieb:

> - die Differenz quadrieren
> - die 20 quadrierten Werte aufaddieren
> - die Summe durch 20 teilen
> - die Wurzel daraus ziehen.

Ja, SqareMainRoot. Also umgekehrt wie in der Abkürzung.

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Achim S. schrieb:
> - von jedem der 20 Einzelwerte 1,64V abziehen

Wenns denn genau 1,64V sind. Besser die Werte über 1 Periode mitteln und 
diesen Mittelwert dann von den einzelnen Messwerten abziehen.Dann diese 
quadrieren und...

Der Sensor scheint generell nicht das "Überding" zu sein. 
Temperaturkoeffizienten sind nirgends angegeben (warum wohl?). 3,9mm 
Kriechstrecke laden zum schmunzeln ein. 4mm wäre Mindestmaß, 8mm meist 
gefordert. Die Pins mit der Netzspannung viel zu enger Abstand.Dafür 
billig...
Grüsse

von Kevin M. (arduinolover)


Lesenswert?

Gebhard R. schrieb:
> Die Pins mit der Netzspannung viel zu enger Abstand

Wieso, was glaubst du denn wieviel Potenzialdifferenz zwischen den Pins 
für IP+ und IP- auftreten?

Gebhard R. schrieb:
> 3,9mm
> Kriechstrecke laden zum schmunzeln ein. 4mm wäre Mindestmaß, 8mm meist
> gefordert.

Das Teil hat ja auch nur eine Basic Isolation. Ohne frage nicht geeigent 
um ohne eine weitere Isolierung an Netzspannung zu messen. Zumindest 
wenn man direkt mit der Niedervoltseite durch die er versorgt wird 
interagieren kann.

: Bearbeitet durch User
von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Mal dumm eingeworfen.

Hast du ein sauberes LC Filter am Wandler Eingang?

Phasenabschnittsteuerungen machen gerne Spikes, diese musst du sauber 
raus filtern.
Weiter wen du nicht Phasen-synchronisiert misst, "misst du natürlich 
Misst", wie mann im Volksmund so schön sagt.
Wie ein Vorposter schon bemerkt hat ist 5% zu wenig bei >Sinus und erst 
recht bei Phasenanschnitt!
Hast du ein Entsprechendes Filter das ein Sauberen 
"Spannungsdurchschnitt" dem DA Wandler übergibt?
Sonnst müsstest du mehr Messzyklen generieren und am Besten 
Phasen-synchronisiert.

Gruß

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Gebhard R. schrieb:
> 3,9mm Kriechstrecke laden zum schmunzeln ein. 4mm wäre Mindestmaß,

Klar, die weniger als 3% ändern die Welt :-(

Solche Aussagen laden zum Schmunzeln ein ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.