Medición / cálculo de RMS Sobre la marcha

2

Tengo un ADC SAR para medir el valor RMS de una señal de CA. Mi método actual es usar un temporizador para activar la conversión y almacenar el resultado de la conversión. Cuando he muestreado un ciclo completo de puntos, resto el nivel de DC (el promedio de todos los puntos) de la señal y luego uso el conocido algoritmo RMS para obtener el valor RMS.

Me pregunto si hay algún método para "distribuir" el trabajo de cálculo a las muestras. Por ejemplo, si necesito calcular el valor medio de la señal ciclada, puedo agregar el resultado de la conversión a una variable global "suma" después de que se realice la conversión. Cuando se realiza la conversión de la última muestra, solo necesito dividir la "suma" por el recuento de la muestra. En este método, solo necesito una variable global, no hay necesidad de almacenar todas las muestras. Pero para mi medición de RMS, lo que me resulta difícil es que necesito restar el nivel de DC, pero el nivel de DC solo se puede obtener después de haber realizado un muestreo de ciclo completo.

Creo que puedes entenderme. Cualquier sugerencia es apreciada.

Actualizar:

Gracias por todos ustedes que me han dado respuestas y sugerencias. Y algunas respuestas son aceptables para mí. Después de buscar y pensar, tengo un ideal también. Pero no muy seguro.

Como se sabe,

$$ V_ {RMS (total)} = \ sqrt {V_ {D} ^ 2 + V_ {1RMS} ^ 2 + V_ {2RMS} ^ 2 + \ cdots + V_ {nRMS} ^ 2} $$

Suponga un muestreo de ciclo completo perfecto, y omita los armónicos superiores,

$$ V_ {1RMS} = \ sqrt {V_ {RMS (total)} ^ 2 - V_ {D} ^ 2} $$

Por lo tanto, puedo usar el promedio de ejecución para obtener \ $ V_ {D} \ $, y running-rms para obtener \ $ V_ {RMS (total)} \ $ (sin quitar el DC), y finalmente hacer una Resta y sqrt para obtener el valor RMS de la señal de onda fundamental. Ciertamente, habrá algún error cuando mi muestreo no sea un ciclo completo perfecto.

Necesito que alguien confirme esto, gracias.

    
pregunta diverger

4 respuestas

-1

Mantenga los datos almacenados en un búfer circular y mantenga un puntero al valor actual. Mantener un total al cuadrado en ejecución. En cada muestra, reste el valor cuadrado que "cae" de su búfer y agregue el valor cuadrado que se agrega. Para obtener la nueva suma al cuadrado, entonces hay dos cuadrados, y sumar y restar, sin importar qué tan grande sea el búfer. Sin embargo, aún estás en el anzuelo de la raíz cuadrada.

Para la eficiencia en el módulo de matemáticas para el búfer circular, sugiero un tamaño de búfer de una potencia de 2.

    
respondido por el Scott Seidman
0

De su descripción, ¿está restando un desplazamiento de CC ya determinado, correcto? probablemente calculado a través de un promediador acumulador.

¿Necesita la señal acoplada de CC?

Lo que haría (bueno, lo que hago, no para los cálculos de RMS sino para otras señales sensibles a la CC: resolutores, CT, etc.) es utilizar un filtro HP con pérdida

\ $ H = \ frac {1} {D} \ frac {1- z ^ {- D}} {1-z ^ {- 1}} \ $

enlace

Esta topología es realmente buena para eliminar el desplazamiento de DC (solo tenga en cuenta la frecuencia más baja y el tamaño del registro intermedio)

Ahora calcula el ciclo RMS y luego proporciona un acumulador w.r.t. "Rolling RMS" o si proporciona dos vapores de cálculo: Rolling RMS & ciclo rms es downto recursos

    
respondido por el JonRB
-1

(Siguiendo a partir de mi comentario).

Si toma una señal compuesta de una sinusoide más un desplazamiento de CC, se puede describir como:

$$ f (t) = Asin (\ omega t) + B $$

Donde \ $ Asin (\ omega t) \ $ es la sinusoide y B es el desplazamiento de DC.

Si diferencias wrt t:

$$ g (t) = \ frac {df (t)} {dt} = A \ cdot \ omega \ cdot cos (\ omega t) + 0 = A \ cdot \ omega \ cdot cos (\ omega t) $$

Es decir, la salida de la diferenciación es una copia desplazada en fase de la componente sinusoidal de la señal de entrada, con amplitud escalada por la frecuencia de la señal de entrada. El componente de DC ha desaparecido por completo, neutralizado por la magia de las matemáticas.

Si desea eliminar (la mayoría de) el cambio de fase, puede volver a integrar la señal diferenciada:

$$ \ int ^ T_0 g (t) = A \ cdot \ omega \ cdot sin (\ omega t) / \ omega + C, $$

donde C es el valor inicial (el desplazamiento de CC), que puede establecer en cero.

En la práctica, esto resultará en un ligero cambio de fase causado por el tiempo de procesamiento requerido para diferenciar y luego integrar la señal.

Una buena analogía analógica para el proceso es un condensador en serie: diferencia una señal de CA y bloquea DC.

    
respondido por el markt
-3

La definición de RMS es así:

$$ V_ {rms} (t) = \ sqrt {\ frac {\ int_0 ^ t V ^ 2 (t) \ mathrm {d} t} t} $$

Así que revertirlo:

$$ V (t) = \ sqrt {\ frac {\ mathrm {d} (t \ centerdot V_ {rms} ^ 2 (t))} {\ mathrm {d} t}} $$

    
respondido por el Maxthon Chan

Lea otras preguntas en las etiquetas