Autor Tema: RECTIFICADOR MAS FILTRO  (Leído 12146 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado afta

  • PIC16
  • ***
  • Mensajes: 123
Re:RECTIFICADOR MAS FILTRO
« Respuesta #45 en: 03 de Septiembre de 2021, 02:55:42 »
Este es el codigo que he implementado. No se muy bien como usar la histeresis. Por favor pueden revisarlo y decirme si esta bien?

while(1)
{
   obtenerPico();

   histeresis=0;

   if(valorPico>310) histeresis=2;
   else histeresis =0;

   valorPico=valorPico+histeresis;

   if (valorPico>310 && valorPico<460) 
  {
      PORTC=0b00000010;
  }

  else
  {
     PORTC=0b00000000;
  }
 
}

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 577
Re:RECTIFICADOR MAS FILTRO
« Respuesta #46 en: 03 de Septiembre de 2021, 07:13:13 »
Te comento con un ejem, cómo funciona la histeresis por soft.
Por ejem, tenemos una referencia de corte, en tu caso 170. Bien entonces un valor leído del ADC, si es mayor a 170, la histeresis le pondremos valor igual a 2. De lo contrario será 0.
Vamos con el ejem.

Val=readADC();
Val=Val+histeresis;
if(Val>170) histeresis=2;
else histeresis =0;
Prueba ésto en tu código.

Robert gracias. Disculpa la molestia es la primera vez que veo esto: Ese codigo lo pongo en la funcion que encuentra el promedio despues de leer el adc? o va cuando hago la condicion del if  para ver si se enciende o apaga la carga dentro del ciclo while?

Ademas, la instruccion "Val=Val+histeresis" va despues del if o antes como lo pusiste. Asumiendo que va despues inicialice histeresis con 0.

Val=readADC();
histeresis = 0;
if(Val>170) histeresis = 2;
else histeresis = 0;
Val=Val+histeresis

No es necesario iniciar la variable histeresis todo el tiempo.
Simplemente declarala cómo histeresis=0 en el comienzo del programa dónde inicializas el resto de variables.

Veo que has incluido esas líneas cómo comenté. Y cómo ha funcionado?
El valor de la histeresis puedes modificarlo, no necesariamente tiene que valer 2. Puedes probar con números mayores, por ejem. 4, 10 o más, pero verás que se necesita mayor salto de valor de la lectura, para lograr el cambio en la salida.
Debes experimentar todo eso, te ayudará para comprender cómo funciona.
Volviendo, añadir ésta histeresis, sólo trabajará en el corte inferior de tu programa, luego añadiremos histeresis al corte superior. Pero vamos por partes.
« Última modificación: 03 de Septiembre de 2021, 07:26:23 por Robert76 »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:RECTIFICADOR MAS FILTRO
« Respuesta #47 en: 03 de Septiembre de 2021, 09:00:02 »
Este es el codigo que he implementado. No se muy bien como usar la histeresis. Por favor pueden revisarlo y decirme si esta bien?

while(1)
{
   obtenerPico();

   histeresis=0;

   if(valorPico>310) histeresis=2;
   else histeresis =0;

   valorPico=valorPico+histeresis;

   if (valorPico>310 && valorPico<460) 
  {
      PORTC=0b00000010;
  }

  else
  {
     PORTC=0b00000000;
  }
 
}

Mejor deberías utilizar el comprador analógico interno del micro para evitar tanto retardo y pérdida de tiempo por la conversión.

Pero independiente de que método uses, el problema es que no está funcionando correctamente ese filtro que muestras. Solucionado eso deberías concentrarte en el siguiente paso.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado afta

  • PIC16
  • ***
  • Mensajes: 123
Re:RECTIFICADOR MAS FILTRO
« Respuesta #48 en: 03 de Septiembre de 2021, 11:42:16 »

Veo que has incluido esas líneas cómo comenté. Y cómo ha funcionado?
El valor de la histeresis puedes modificarlo, no necesariamente tiene que valer 2. Puedes probar con números mayores, por ejem. 4, 10 o más, pero verás que se necesita mayor salto de valor de la lectura, para lograr el cambio en la salida.
Debes experimentar todo eso, te ayudará para comprender cómo funciona.
Volviendo, añadir ésta histeresis, sólo trabajará en el corte inferior de tu programa, luego añadiremos histeresis al corte superior. Pero vamos por partes.

Hola Robert. Si es correcto la forma como lo implementé en el programa, el problemas de la oscilacion persiste. Oscila durante 1v aproximadamente.

Mas tarde intentare con otros valores de histeresis.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:RECTIFICADOR MAS FILTRO
« Respuesta #49 en: 03 de Septiembre de 2021, 12:29:29 »
Hola:

He simulado tu circuito y no veo una oscilación tan grande con respecto cuando el voltaje es más grande.

Obviamente una simulación solo te da una idea de lo que va a pasar, la realidad pueda que sea otra.

Respecto a lo que dije de las resistencias R3 y R2, me confundí, pensé que era un divisor de la fuente y es un divisor de la salida.

Eso implica que tu filtro es un amplificador no inversor con ganancia 2. (1 +Rf/R)

Primero le atenúas a la señal en 1/10 (eso parece con las resistencias R7 y R5) pero luego con el filtro le das una ganancia de 2, podrías atenuarle al valor correcto (1/20) y el filtro darle una ganancia de 1.

Otra cosa que noté es que la resistencia 6 de 22k e muy grande para el ADC interno del micro y puede producir lentitud al adquirir valores, en las hojas de datos te recomiendan una impedancia de máximo 1k. O mejor quitar la resistencia y conectar directo al pin del micro.

También podrías mejorar la frecuencia de corte del filtro, es decir poner otro valor par reducir la oscilación, por ejemplo la oscilación casi desparece con capacitores de 100 nF.

La desventaja de aumentar capacitores es que aumentas la latencia del cambio  de voltaje con respecto al voltaje que sale del filtro.

Si usas el comparador analógico, simplemente tendrías que comparar el máximo de la señal rectificada, y olvidarte del filtro y de promedios y de histéresis. Lo único que tendrías que hacer es que cuando exista un sobre voltaje y un subvoltaje, verifica que dentro de un tiempo prudente, (3 segundos puede ser) el voltaje haya regresado a la normalidad antes de volver a activar la carga.




« Última modificación: 03 de Septiembre de 2021, 12:41:26 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 577
Re:RECTIFICADOR MAS FILTRO
« Respuesta #50 en: 03 de Septiembre de 2021, 12:50:25 »
El valor de C1 y C2 es muy pequeño. Prueba a utilizar valores cómo 220nF o 1uF.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:RECTIFICADOR MAS FILTRO
« Respuesta #51 en: 03 de Septiembre de 2021, 12:59:39 »
El valor de C1 y C2 es muy pequeño. Prueba a utilizar valores cómo 220nF o 1uF.

El problema de eso es que cuando el voltaje vaya a un nivel peligroso de forma abrupta , el filtro introduce un retardo grande y más el código que introduce más retardos que cuando el micro decida que debe desconectar la carga, dicha carga debe estar fundida literalmente.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:RECTIFICADOR MAS FILTRO
« Respuesta #52 en: 03 de Septiembre de 2021, 13:07:54 »
El valor de C1 y C2 es muy pequeño. Prueba a utilizar valores cómo 220nF o 1uF.

Con un capacitor de 1uF, el filtro toma alrededor de 1 segundo en informar de un sobre voltaje.

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado afta

  • PIC16
  • ***
  • Mensajes: 123
Re:RECTIFICADOR MAS FILTRO
« Respuesta #53 en: 03 de Septiembre de 2021, 15:03:54 »

Otra cosa que noté es que la resistencia 6 de 22k e muy grande para el ADC interno del micro y puede producir lentitud al adquirir valores, en las hojas de datos te recomiendan una impedancia de máximo 1k. O mejor quitar la resistencia y conectar directo al pin del micro.

Hola Dominus. La Resistencia en realidad es de 2.2k, solo que el grafico que puse no es muy bueno, disculpa.

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 577
Re:RECTIFICADOR MAS FILTRO
« Respuesta #54 en: 03 de Septiembre de 2021, 19:50:42 »
El valor de C1 y C2 es muy pequeño. Prueba a utilizar valores cómo 220nF o 1uF.

El problema de eso es que cuando el voltaje vaya a un nivel peligroso de forma abrupta , el filtro introduce un retardo grande y más el código que introduce más retardos que cuando el micro decida que debe desconectar la carga, dicha carga debe estar fundida literalmente.
Correcto! Pero la idea, es lograr que trabaje el programa cómo corresponde.
Es parte de cualquier proceso dividir por etapas un desarrollo.
Entonces por el MOMENTO que mejor que introducir una señal plana y estable en la entrada. No te parece???
Cuándo se logré ese cometido, pasamos a la interfaz. Sino es complicado lidiar con varios factores por el cuál cada uno introduce un fenómeno desfavorable .
Volviendo al filtro RC, Se debe calcular para que la constante Tau, sea el valor de 3 veces, el periodo de la señal de entrada.
« Última modificación: 03 de Septiembre de 2021, 19:56:10 por Robert76 »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:RECTIFICADOR MAS FILTRO
« Respuesta #55 en: 03 de Septiembre de 2021, 20:09:51 »
Yo pienso que debería abandonar la idea del ADC y el filtro y debería utilizar el comparador interno como en la imagen adjunta.

La señal rectificado sin filtro y sólo atenuada entraría al terminal RA1 y para conocer si hay sobre voltaje o sub voltaje cambiaría el valor del módulo CVref y analizaría el estado de la salida del comparador.

Tan pronto detecte una condición irregular, apagaría al carga y en un intervalos de 100 ms  volvería a leer la salida del comparador.

Cada vez que el voltaje está bien, incrementaría un contador, hasta llegar a un valor de 30, es decir 3 segundos. Si llega a 30, se asume que el voltaje está en el rango normal y vuelve a activar la carga.

Si dentro de los 3 segundos hay nuevamente una condición de falla, el contador es reiniciado.

Y creo que con eso su sistema tendría una rápida respuesta ante una anormalidad del voltaje.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 577
Re:RECTIFICADOR MAS FILTRO
« Respuesta #56 en: 03 de Septiembre de 2021, 20:24:39 »
Yo en lo personal he utilizado tanto el ADC, cómo los CMP que mencionas para éstos fines.
 La ventaja de usar el ADC, es que hay mayor cantidad de escalones de cuantificación.
Que de igual manera se podría lograr usando la función de COMP, pero nos obliga a usar algún trimpot o preset de ajuste fino y eso puede traer problemas a largo plazo.
Me parece que hay que mejorar el tema de promediar las muestras.
O bien leer con el ADC, valores instantáneos de la señal sin FILTRAR.
Con un poco de ingenio, se puede detectar que si varios máximos picos instantáneos, NO alcanzan el umbral mínimo desconecta la carga.
« Última modificación: 03 de Septiembre de 2021, 20:28:39 por Robert76 »


 

anything