¿Es posible ajustar la curva a una función sinusoidal con un microcontrolador?

3

Tengo 2 ondas sinusoidales con una frecuencia de 2 kHz rectificada y muestreado a 50 kHz por dos canales ADC (10 bits) de un PIC18F26K22.

Quiero encontrar la medida de la amplitud de cada seno y la diferencia de fase entre sí. Podría usar ZCD para detectar la diferencia de fase y usar el adc solo para muestrear la amplitud, pero estaba buscando un enfoque más inteligente y amplio todo en uno.

Mi pregunta es si el uController tiene la potencia de cálculo y si es posible hacer una curva ajustando con un uController en otro para extraer esos 2 parámetros. Obtener un ADC con mayor tasa de muestreo y resolución es una posibilidad abierta, por supuesto.

Editar: para hacer que mi pregunta sea un contexto / cuadro, lo que busco es medir una impedancia, tengo la señal correspondiente a la caída de tensión en la impedancia y tengo otra señal correspondiente al circuito de detección de corriente . Así que necesito muestrear ambos para medir cada amplitud y diferencia de fase.

    
pregunta Impe_dancer

5 respuestas

1

No tengo ni idea de por qué quieres esto. Y Tony pregunta y tú no respondes. Así que te voy a tomar literalmente y responder a eso.

Un método general para encontrar la diferencia de fase entre dos señales idénticas es usar un correlador. Esto funciona incluso para el habla y la música. En el dominio digital, simplemente correlacionarlos. El máximo local en la función de correlación será en el retardo de tiempo \ $ \ delta \ $. Si tiene una señal de referencia, también puede correlacionarse con esa. La correlación es muerta fácil, también. Puedes encontrar una rutina muy simple para ella en cualquier lugar que mires. Solo unas pocas líneas de código, realmente.

Hay un documento antiguo de 1963 llamado "El análisis de la frecuencia de las series de tiempo para los ecos: Cepstrum, Pseudo-autovariance, Cross-Cepstrum y Saphe Cracking" por Bogert et al. Puede que también valga la pena leerlo.

    
respondido por el jonk
1

Puede hacer esto con el PIC, pero sería de gran ayuda comenzar con el hardware correcto delante del A / D. Rectificar las señales es una mala idea. Eso hace que sea más difícil encontrar la amplitud y la fase. AC acopla las señales y agrega una polarización de DC de la mitad del rango A / D. Escálelo de modo que la amplitud máxima no alcance los límites mínimo y máximo del rango A / D.

Puedes usar los dos flujos de muestra de 50 kHz para encontrar tanto las amplitudes como la fase entre las señales.

Si sabes que ambas señales son realmente senos, entonces la amplitud puede derivarse de la diferencia promedio del promedio a largo plazo. Paso muy bajo filtre cada señal para obtener el componente de CC. Reste cada lectura de este componente de CC, luego tome el valor absoluto y promedie eso. El resultado será proporcional a la amplitud. Nuevamente, esto solo funciona si sabes que las señales son senos (contenido de armónicos bajos).

Para encontrar el cambio de fase, detecta los cruces por cero. Busque la primera lectura positiva después de haber visto un número mínimo de lecturas negativas seguidas, por ejemplo. Cada ciclo de una de las señales, calcula cuántos ciclos retrocedieron la última vez que el otro tuvo un cruce por cero. Probablemente habrá un poco de ruido en esta señal, uno de los cuales es el ruido de cuantificación. A una frecuencia de muestreo de 50 kHz, solo tiene 25 muestras por ciclo. El paso bajo filtra este número 0-24 con algunos bits adicionales por debajo del punto binario. Ayudará si la frecuencia de muestreo no es un múltiplo exacto de la frecuencia de interés.

Si lo anterior sigue produciendo demasiado ruido de cuantización, interpolar entre las dos muestras donde ocurrió el cruce por cero para determinarlo con mayor precisión. Esto llevará más ciclos de computación.

En general, haría esto con uno de los PIC de 16 bits o dsPIC con un A / D de 12 bits. El 18F26K22 parece una opción extraña para esto. Una parte de 16 bits permitiría el filtrado de paso bajo de los flujos entrantes antes de hacer cualquier otra cosa con ellos, y el A / D de 12 bits le brinda una mejor resolución de muestreo para comenzar. Eso debería permitir una verdadera medición RMS (aunque eso no sea necesario) y permitir que más ciclos hagan un mejor trabajo para encontrar los cruces por cero, permitiendo mejores mediciones de fase.

    
respondido por el Olin Lathrop
0

Plan de diseño: (medir la impedancia del agua de mar)

  • frecuencia de 2 kHz
  • La resolución de impedancia: 0.1 ohmios
  • precisión de +/- 5%.
  • Esto se traduce en voltaje como una precisión de 1 mV y +/- 5%.

Agua:

  • constante dieléctrica de 80 +/- 10%
  • conductividad: Sus unidades son Siemens por metro [S / m] en SI y milimhos por centímetro [mmho / cm] en EE. UU. (no recomendado)

Lea más: enlace

  • (Trivia: el agua ultra pura no es un líquido para beber saludable debido a la ausencia de minerales disueltos saludables).

  • Los sólidos disueltos totales (TDS) y la conductividad eléctrica (EC) son casi equivalentes, ya que la cantidad de iones disueltos es lo que hace que el agua sea conductora.

  • Agua ultra pura 5.5 · 10-6 S / m

  • Agua potable 0.005 - 0.05 S / m
  • Agua de mar 5 S / m

Lea más: enlace

  • Experiencia de fondo

Normalmente, los medidores LCR de precisión miden la impedancia utilizando una fuente de frecuencia de corriente constante de rango automático a una frecuencia fija como 120Hz, 1kHz, 100kHz, 1MHz y luego miden el voltaje directamente para obtener la resistencia y los componentes reactivos y otros parámetros.

Los diseños de instrumentos altamente precisos de precisión usarán un PLL doble para mejorar la relación señal a ruido (SNR) y, por lo tanto, es posible una resolución de 10 ppm {que he logrado en los diseños de corrientes de Foucault para detectar fallas metalúrgicas} relativo a los valores normalizados (auto-cero)

Esto no es una solución, ni un comentario, sino información de referencia para elegir un mejor plan de diseño del instrumento o una mejor pregunta. El tamaño y los materiales de los electrodos también son un aspecto importante de este diseño, ya que la corrosión puede influir en la repetibilidad de la prueba de muestreo.

Te dejaré decidir si esto es útil.

    
respondido por el Tony EE rocketscientist
0

Solución propuesta Intervalo de tiempo del oscilador de relajación > 2kHz

Dado que la conductividad del agua depende de la temperatura del agua, esto se puede medir con el sensor de temperatura IC para la corrección de la tabla de consulta con 20'C.

La constante dieléctrica del agua es 80 +/- 5 y la capacitancia del electrodo dependerá del área de la superficie y la separación de los electrodos. Para que esto funcione de manera efectiva, queremos que C de agua sea mucho menor que un valor de C de precisión en el circuito, para ignorar efectivamente el agua y solo medir la conductividad en Siemens / medidor. Por lo tanto, se requieren electrodos cortos con un espacio preciso.

Algunos investigadores también saben (cita requerida) que el agua contaminada puede comenzar la ionización y recubrir la superficie del electrodo con DC dentro de 1 ms, si es mayor que 1.5 V, por lo tanto, una frecuencia > > Se desea 1KHz.

El método propuesto aquí utiliza la resistencia del agua para cargar un condensador de baja fuga de precisión para un oscilador de relajación. El principio de todos los diseños de Schmitt Trigger es ignorar las entradas de ruido, pero en este caso es generar un reloj con retroalimentación negativa y el umbral incorporado de 1/3 a 2/3 tiene una amplia tolerancia, por lo que un comparador de precisión con R La retroalimentación de relación 3: 1 se prefiere con una precisión que depende de la tolerancia y los valores de la relación de resistencia.

Detalles de diseño

  • C > > 100x C de electrodos.
  • C se divide por la mitad en Vcc y Vdd, de modo que el inicio del oscilador es instantáneo con V / 2 en la entrada. (opcional)
  • El valor C se elige con la forma y la separación del electrodo para producir f > 2kHz
  • T = RC se realiza normalmente en ~ 60% de una onda triangular de medio ciclo de 5V.

    • Esto es solo 1/3 de giro en la entrada del Inversor Schmitt, pero se puede hacer (Op Amp de swing completo discreto) para que sea exactamente un 30% de histéresis, si RC = T = 1 / f era deseable por alguna razón.
  • La salida de 50 ohmios es la impedancia interna de las puertas HCxx a 5 V aprox. Se muestra para mayor claridad.

    • Los comparadores con colector abierto requieren una R. desplegable que afecta los umbrales. El riel a riel se desea para un regulador estable o al menos calibrado de 5.00 V

Java Falstad Simulation

captura de pantalla debajo

    
respondido por el Tony EE rocketscientist
0

También puede aplicar la FFT a ambas señales y extraer la amplitud y la fase utilizando el componente con mayor amplitud.

Para la fase, también puede hacer la detección de cruce por cero y no ajustar la curva a toda la señal sino solo cerca del cero, donde es casi lineal (sin (theta) es aprox. theta para theta pequeña)

    
respondido por el LuisF

Lea otras preguntas en las etiquetas