domingo, 4 de mayo de 2014

Proyecto: Evitar Inyección con Arduino (VI): Prototipo Derivador II

Buenas noches!!

Sigo avanzando con el prototipo derivador, y ajustando mucho más su precisión.

Próximamente modificaré el sistema para usar el circuito que propone nuestro amigo JCS, pero de momento, os cuento los avances que básicamente nos sirven para aprender.

Recuerdemos el sistema general:



Me he encontrado con varios problemas, y nos centramos en el derivador:

1.- El mínimo de consumo de una resistencia grande, nos perjudica cuando la generación es muy baja (dias nublados, o inicio/fin del día). Esto implica que si una resistencia de 600w al mínimo de potencia nos consume unos 100w. Cualquier generación inferior, sería inyección o consumo innecesario.

2.- El cambio brusco de consumo genera imprecisión.  Si algún aparato o bombilla cuando se enciende consume, digamos 200w, si se apaga, genera una inyección de 200w hasta que nuestro sistema es capaz de ajustarlo. Por lo tanto, tras probar varios algoritmos, el más eficaz es el descendente escalonado, es decir, subo la derivación hasta pasarme "un poco" y voy escalonando la bajada en intervalos cada vez más pequeños.

3.- Envio de mensajería: Era lento y parecía que era problema de que no llegaban los mensajes, pero descubrí el problema, había un delay en mi código.... nadie es perfecto, jeje


Busco soluciones a los problemas que os comento, y nos centramos en el módulo derivador:


1.- El primer problema lo vamos a solucionar incluyendo un "consumidor" más de energía y un relé que corta la energía. Quedaría así:














He modificado el sistema, adjuntando 2 "consumidores" de energía, uno para una carga grande, y otra para una carga más sensible. En resumen, si la generación es <100w y sobra energía se deriva a una bombilla.


2.- El cambio brusco de energía, encendiendo grandes cargas, como microondas lo tengo solucionado, apago el derivador y listo. Pero con cargas más pequeñas, nos genera imprecisión.

La imprecisión la soluciono modificando el algoritmo, que la lógica es que se sube la derivación a algo que sobrepasa la inyección seguro, y voy bajando poco a poco en intervalos de 1 segundo.

3.- La lentitud en el envío la soluciono arreglando un bug, y se reciben prácticamente todos los mensajes a una distancia de 5 metros y no en línea recta. No he probado a más distancia, pero probaré a ver si "traspasa muros".

El sistema queda algo así:

Bueno, pues nada, solo os quería contar los avances, recordad que el codigo está subido a github.

Las próximas tareas serán:
- Monitorización y seguimiento
- Implementación derivador del tipo "JCS".

Pues nada, si la "parienta" me deja seguir con los cacharros por medio, os cuento proximamente más avances.

Saludos!!

PD: Felíz día de la madre para mi madre y para la parienta.

ACTUALIZACION

JCS nos adjunta un esquema de otro sistema de derivación más preciso y que ha usado en otras instalaciones. Con tu permiso JCS lo voy a poner.


Gracias por tu aportación.

4 comentarios:

JCS dijo...

he leído en la Wikipedia que el arduino dispone de una salida con modulación PWM

http://es.wikipedia.org/wiki/Arduino

Esquema de conexiones[editar]
Entradas y salidas[editar]
Poniendo de ejemplo al módulo Diecimila, éste consta de 14 entradas digitales configurables entrada y/o salidas que operan a 5 voltios. Cada contacto puede proporcionar o recibir como máximo 40 mA. Los contactos 3, 5, 6, 8, 10 y 11 pueden proporcionar una salida PWM (Pulse Width Modulation).

Estoy iniciándome en el funcionamiento del Arduino.

nota: seria necesario implementar un PID en el arduino (Control proporcional - integral - Derivado), para el control de la modulación

Saludos JCS

JCS dijo...

Hola de nuevo.
según he visto en varios videos el Arduino genera directamente los pulsos PWM, por lo que se simplifica el sistema.
https://www.youtube.com/watch?v=poXnlZMr2es
https://www.youtube.com/watch?v=iP_f0KY7lx8
https://www.youtube.com/watch?v=ZMTA3hZGvZo

por lo tanto, con el Arduino leemos potencia activa (después de los cálculos), implementamos el control PID, y generamos el PWM, y a través de un trasistor o Mosfet, actuamos sobre una resistencia.

Me comprare un Arduino y me pondré a hacer pruebas.

Saludos JCS

Jose Miguel Jiménez dijo...

Correcto JCS.

Estas salidas PWM las estoy usando ya para el envío de mensajes al derivador y también para variar el sonido ese "maléfico" que se escucha cuando hay inyección.

Imagino que habrá algun mosfet capaz de trabajar a 5 voltios, y 220 y con tan poca frecuencia.

Otra cosa que en su momento leí por los foros, es que para esta derivación hace falta detectar el cruce por cero, para disparar el mosfet sincronizado, porque sino de otra forma generaría interferencias en la red. Para ello usan un opto-acoplador "isolated" de detección de zero. Esto, teóricamente generaría un evento, que permitiría la derivación

Más detalles:
http://playground.arduino.cc/Main/ACPhaseControl

Saludos



Juan Carlos dijo...

Hola,
Eso del cruce por cero es para los Triac, el mosfet trabaja trabajas a alta frecuencia, contra más alta menos interferencias, la idea es de una frecuencia de entre 500 Hz y 20 MHz, yo el proyecto fin de carrera hice de un inversor con mosfet a 20 MHz, y no hace falta ninguna sincronización.
Saludos JCS
Lo importante para el control es la implementación del PID en el arduino y poner bien las constantes.

Publicar un comentario