RMS berechnen
Für Wechselstrom (z. B. Sinuswelle) gibt es verschiedene Möglichkeiten, die Spannung zu charakterisieren. Eine davon ist der Effektivwert (RMS, root mean square), d. h. die Gleichspannung, die an einem Widerstand den gleichen Heizeffekt hätte wie die gegebene Wechselspannung. Die Berechnung des RMS erfordert die Bildung des Mittelwertes über Zeitbereiche. Um Störungen im Ergebnis zu minimieren, ist es wichtig, diese Zeitbereiche mit den Zyklen der Wellenform abzugleichen. Dies kann durch die folgenden Berechnungen erreicht werden.
-
Beispiel-Sinuswelle (verwende periodisches 100-ms-Raster):
voltage = sin(Master())
-
Ermittle die Nulldurchgänge (, um das Integral zu beenden):
positive = voltage > 0
windowDetect = positive && !State_Register(positive, !1)
-
Stelle auch das ermittelte Signal verzögert um einen Messpunkt bereit (, um das Integral neu zu starten):
windowDetect2 = State_Register(windowDetect, !1)
-
Ermittle den Start des Fensters bei jedem Durchgang:
windowStart = Latch(Master(), windowDetect2)
-
Berechne den RMS seit dem letzten Durchgang:
RMSTemp = sqrt(Rolling_Accumulate_Integral(voltage ** 2, windowStart))
-
Behalte den RMS-Wert vom Ende des letzten Fensters:
RMS = Latch(RMSTemp, windowDetect)
Insgesamt ist der berechnete RMS um eine Periode verzögert.
Siehe auch