TRIAC con comportamiento lineal

Que tal amigos foreros, nuevamente tengo una duda que espero alguien me pueda ayudar, ¿como podría hacer un triac que trabaje de manera lineal con un PIC? Los disparos los hago con delays, no con interrupciones, se supone que segun el angulo de disparo el comportamiento del Vrms seria:

tensionrelativa.png


Quise despejar una funcion de tipo

y=sin(2*radianes)-2*radianes

(Despejar radianes)

Pero no pude :cry:, la pagina de la imagen es:

http://electronicayciencia.blogspot.mx/2010/03/valor-eficaz-de-una-sinusoidal.html
 
Hola.

Es normal que no puedas despejar 'radianes'. Esa es una ecuación trascendente, o sea, que no se puede despejar. http://es.wikipedia.org/wiki/Ecuación_trascendente

Lo más habitual es obtener la solución por métodos numéricos o bien "mirando la gráfica". Para eso fijas varios puntos intermedios y obtienes la solución para ellos (gráfica o numéricamente). Con esos valores haces una tabla. Y cuando necesites un valor que no esté en la tabla interpolas entre los dos más cercanos.
 
Hola.

Es normal que no puedas despejar 'radianes'. Esa es una ecuación trascendente, o sea, que no se puede despejar. http://es.wikipedia.org/wiki/Ecuación_trascendente

Lo más habitual es obtener la solución por métodos numéricos o bien "mirando la gráfica". Para eso fijas varios puntos intermedios y obtienes la solución para ellos (gráfica o numéricamente). Con esos valores haces una tabla. Y cuando necesites un valor que no esté en la tabla interpolas entre los dos más cercanos.

Si lo note, y también trate con serie de taylor pero igual ¿como despejar? Lo que hice fue una tabla de 2.5 en 2.5% del valor RMS hasta llegar al 100%, aunque encontré cierta "linealidad" desde el 17.5% hasta el 65%, obteniendo una formula:


Angulo = -1.102265896*(porcentaje RMS de 17.5 hasta 65)+168.6571531


Vrmslinea.jpg



Solo tome unos valores arriba y abajo de esa linealidad (donde ya no es lineal y no aplica la formula) y lo adecue a mi PIC, y como dije antes el disparo lo hago con delays, al parecer si lo hace correctamente porque lo mire en un foco, aunque lo que me interesa es controlar la temperatura de una resistencia sumergible para calentar agua, el caso que no corresponde la respuesta a un 75% de VRMS con un 100%, según MATLAB, ¿alguna idea?



supongo que simplemente la puedes resolver cada x radianes, rellenar una tabla y luego usarla al revés

Ya lo había aplicado, junto con lo que mencione, pero gracias por responder, a los 2...
 
Última edición:
Hola HIRONAKAMURA.

No sé si un polinomio de interpolación es lo más apropiado. Ya sabes que los cálculos de coma flotante en doble precisión son de las cosas que más código ocupan en un PIC. ¿No crees que sería más fácil hacer una tabla aprovechando la linealidad?

Por ejemplo tomas:
- el punto central
- los puntos donde empieza y acaba la zona lineal
- los extremos 0 y 100%
- varios puntos intermedios en la zona no lineal

Así te aseguras que siempre el 0 es 0% y el 100 es 100%.

Supongo que lo has tenido ya en cuenta, pero por si acaso te recuerdo que no puedes medir la tensión de salida con un tester normal puesto que no es sinusoidal. Y que la resistencia de un foco varía con la temperatura, por lo que no es lineal.
 
Hola HIRONAKAMURA.

No sé si un polinomio de interpolación es lo más apropiado. Ya sabes que los cálculos de coma flotante en doble precisión son de las cosas que más código ocupan en un PIC. ¿No crees que sería más fácil hacer una tabla aprovechando la linealidad?

Por ejemplo tomas:
- el punto central
- los puntos donde empieza y acaba la zona lineal
- los extremos 0 y 100%
- varios puntos intermedios en la zona no lineal

Así te aseguras que siempre el 0 es 0% y el 100 es 100%.

Supongo que lo has tenido ya en cuenta, pero por si acaso te recuerdo que no puedes medir la tensión de salida con un tester normal puesto que no es sinusoidal. Y que la resistencia de un foco varía con la temperatura, por lo que no es lineal.


Si pensé en una tabla, que si saque de 2.5 en 2.5 en la parte no lineal, y lo metí en el PIC con "IFs" y metí la formula, ese if junto con los valores se ejecutan cada 12 detecciones de cruce por cero, y solo en los valores mas bajos me afecta, y no hay tanto problema...

Lo que mencionas del foco también lo sabia, lo habia visto en esta grafica....


grafico_IV_1.png



Lo que te menciono que me interesa es una resistencia sumergible en agua, también tengo entiendo que varia su resistencia según su temperatura, ¿pero seria tanto como para alterar mi sistema? ¿Como para que el 75% de VRMS ya no lo sea?
 
Todas las resistencias cambian con la temperatura. Pero si la vas a usar para calentar agua sólo te vas a mover en el rango de 0 a 100 grados (por mucha tensión que apliques la temperatura máxima va a ser 100º mentras quede agua). Ese rango es muy pequeño como para que te afecte. El filamento de una bombilla está a miles de grados.

Lo del 75% que has puesto antes no lo he entendido, ¿qué quieres decir con que "no corresponde la respuesta a un 75% de VRMS con un 100%, según MATLAB"?
 
Todas las resistencias cambian con la temperatura. Pero si la vas a usar para calentar agua sólo te vas a mover en el rango de 0 a 100 grados (por mucha tensión que apliques la temperatura máxima va a ser 100º mentras quede agua). Ese rango es muy pequeño como para que te afecte. El filamento de una bombilla está a miles de grados.

Lo del 75% que has puesto antes no lo he entendido, ¿qué quieres decir con que "no corresponde la respuesta a un 75% de VRMS con un 100%, según MATLAB"?

Disculpa por no ser claro con lo de matlab, lo que pasa que capture la temperatura con una tarjeta de adquisición de datos al 100% de VRMS y después con 75% de VRMS, y con ayuda se simulink e ident saque la función transferencia del comportamiento de mi sistema a 75%, esa misma FT con 100% no coincide...


matlabrespuestasFT.jpg



matlabrespuestascopia.jpg



LA resistencia de inmersión que utilizo es como esta:

resistencia_calefon_paleta.jpg


Solo que la mía es de 400 W aproximadamente.
 
Esa captura es muy interesante. Dado que el VRMS está fijo, entiendo que es una gráfica de ¿tiempo / temperatura?. Si es así la temperatura real está muy por encima de la calculada. Me da la impresión de que el cálculo para el 100% no es correcto.

Una comprobación sencilla: repite la captura conectando la resistencia directamente a la red. Veamos si se corresponde con lo calculado o con lo real.

De todas formas, con el 100% la forma de la onda es casi sinusoidal, no tienes más que medir tensión e intensidad en cada momento y así sabes si la resistencia varía mucho. La resistencia aumenta con la temperatura. Si esto te estuviera afectando pasaría menos corriente y calentaría menos de lo previsto, pero no más.
 
Esa captura es muy interesante. Dado que el VRMS está fijo, entiendo que es una gráfica de ¿tiempo / temperatura?. Si es así la temperatura real está muy por encima de la calculada. Me da la impresión de que el cálculo para el 100% no es correcto.

Una comprobación sencilla: repite la captura conectando la resistencia directamente a la red. Veamos si se corresponde con lo calculado o con lo real.

De todas formas, con el 100% la forma de la onda es casi sinusoidal, no tienes más que medir tensión e intensidad en cada momento y así sabes si la resistencia varía mucho. La resistencia aumenta con la temperatura. Si esto te estuviera afectando pasaría menos corriente y calentaría menos de lo previsto, pero no más.

Gracias por seguir el tema (y), y en estos momentos estoy terminando de hacer la segunda prueba con 50%, la primera fue del 100% con TRIAC y cambio esta ves la respuesta fue mas lenta, la ves que hice esa prueba ya tiene días, lo que pasa es que hace unos días cambie de agitador, porque sin agitador la respuesta del sistema es imposible de conseguir por ser el agua mal conductor del calor, el agitador ayuda a disipar ese calor en todo el volumen. No se si a mi sensor se le haya filtrado agua (lo dudo), la resistencia este fallando aunque no tiene mas de 30 puestas, aunque el agua de aquí dejo la resistencia con una capa blanca, no se si este muy clorada. Llevare los datos a matlab, haber que resulta y comento...



HIRONAKAMURA dijo:
Gracias por seguir el tema (y), y en estos momentos estoy terminando de hacer la segunda prueba con 50%, la primera fue del 100% con TRIAC y cambio esta ves la respuesta fue mas lenta, la ves que hice esa prueba ya tiene días, lo que pasa es que hace unos días cambie de agitador, porque sin agitador la respuesta del sistema es imposible de conseguir por ser el agua mal conductor del calor, el agitador ayuda a disipar ese calor en todo el volumen. No se si a mi sensor se le haya filtrado agua (lo dudo), la resistencia este fallando aunque no tiene mas de 30 puestas, aunque el agua de aquí dejo la resistencia con una capa blanca, no se si este muy clorada. Llevare los datos a matlab, haber que resulta y comento...

Y si es Temperatura-Tiempo, si es Vrms constante, y tendría que medir la corriente como lo mencionas, aunque espero no llegar a eso...
 
Última edición:
¿Para que querés linealizar la consigna con la salida Vrms si su relación con la temperatura final no es lineal?

Lo que tenés que linealizar es la consigna con la potencia (Vrms^2).
 
HIRONAKAMURA, ¿cómo ha ido esa captura?

Una disculpa por no subir los datos ayer, pero andaba checando mi sistema y lo olvide. Aunque mis resultados siguen siendo similares:

Saque la FT de cada captura con ident y compare (ahora lo tome como FT de primer orden):

FT1.jpg


FT1A.jpg


Compare la FT de la captura del 100% con la de 50% al 50%

FT2A.jpg


("No parece tan mal")


Después compare la del 50% con la de 100% al 100%:

FT3A.jpg



Y muestra aun el mismo problema, tendria que poner en vez de 100%, 123% para que sea similar, sin en cambio la de 50% la pongo al 48% para alcanzar a la real, aunque se deforma bastante...

FTB.jpg



Pienso que es probable que el agitador influya mi respuesta, cuando esta al 100% la agitación no es tan rápida y la temperatura es mas rápida teniendo unos puntos mas calientes, pero a un 50% la temperatura sube un poco mas lento permitiendo al agitador esparcir la temperatura uniformemente, pero si aumento la velocidad de agitación, cuando es bajo el porcentaje se comporta aun mas bajo, y pues da a lo mismo...

¿Para que querés linealizar la consigna con la salida Vrms si su relación con la temperatura final no es lineal?

Lo que tenés que linealizar es la consigna con la potencia (Vrms^2).

No suena mal, aunque no se que tan fiable sea, lo analizare, gracias por comentar...
 
:confused: No sé que entenderás por fiable.

Lo que vos necesitás es una relación Consigna vs Temperatura_final lo más lineal que se pueda, y esta relación es más "lineal" respecto a la potencia que al valor eficaz.

Bueno, con fiable me refería a que no me traiga mas problemas que resolver, porque en un inicio no tome en cuenta lo del VRMS no lineal cuando hice el "dimmer", y si entiendo lo que mencionas aunque llegar a cuando la Temperatura se hace estable no lo podría, porque la temperatura de la resistencia esta arriba de 100° y aun 30% por ejemplo alcanzar la temperatura de establecimiento serian horas y con las interferencias externas y la temperatura ambiente variable acabaría con mi sistema. Tendría que ser una temperatura baja rápida de alcanzar, aunque como ya lo mencione, creo que mi agitador tiene que ver mucho en el comportamiento de mi sistema.
 
Bueno, con fiable me refería a que no me traiga mas problemas que resolver, porque en un inicio no tome en cuenta lo del VRMS no lineal cuando hice el "dimmer", y si entiendo lo que mencionas aunque llegar a cuando la Temperatura se hace estable no lo podría, porque la temperatura de la resistencia esta arriba de 100° y aun 30% por ejemplo alcanzar la temperatura de establecimiento serian horas y con las interferencias externas y la temperatura ambiente variable acabaría con mi sistema. Tendría que ser una temperatura baja rápida de alcanzar, aunque como ya lo mencione, creo que mi agitador tiene que ver mucho en el comportamiento de mi sistema.

:confused: No entendí nada.

Veamos.

- ¿Que volumen de agua tenés que calentar y hasta que temperatura?

- ¿La resistencia calefactora es esa de 400W?

- ¿Para qué usás el agua caliente?
 
:confused: No entendí nada.

Veamos.

- ¿Que volumen de agua tenés que calentar y hasta que temperatura?

- ¿La resistencia calefactora es esa de 400W?

- ¿Para qué usás el agua caliente?

El volumen 1.5 Litros, si es de aproximadamente 400W, are un PID con un PIC el set point lo asigno con dos pulsadores, solo quiero que alcance la temperatura del set point, es un recipiente de plástico el que contiene el agua y solo es eso controlar, el agua no tiene uso...
 
El volumen 1.5 Litros, si es de aproximadamente 400W, are un PID con un PIC el set point lo asigno con dos pulsadores, solo quiero que alcance la temperatura del set point, es un recipiente de plástico el que contiene el agua y solo es eso controlar, el agua no tiene uso...

Este fin de semana seguiré con las pruebas y MATLAB, comento resultados hasta el martes si tienen sugerencias háganmelas saber por favor...
 
Una disculpa a todos los que seguian el tema y esperaban una respuesta de parte mía, les comento que realice un control PI, y como lo habia manejado tratando de hacer un RMS lineal, tuve buenos resultados, asi que puedo dar por finalizada mi duda.

Una imagen de una prueba del control PI:

PI_INMERSION_2030.jpg
 
Atrás
Arriba