Compensador de Temperatura Con Arduino y Matlab

Por medio de Arduino y simulink se realizó la siguiente programación mediante un diagrama de bloques para obtener la res

Views 256 Downloads 7 File size 547KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Por medio de Arduino y simulink se realizó la siguiente programación mediante un diagrama de bloques para obtener la respuesta de la planta a un escalón (PWM del 100%). De tal manera que el pin 5 del Arduino controla el voltaje que se el suministra a la celda Peltier y el pin 7 análogo lee el voltaje del amplificador de instrumentación proveniente de un puente de Wheatstone con un termistor, este voltaje es convertido a grados centígrados por medio del bloque Medidor de temperatura. Los bloques input, OutTemp y OutVolt permiten guardar valores al introducir un escalón:   

Input: guarda el valor del escalón asignado. OutTemp: guarda los valores de temperatura de la celda Peltier en grados centígrados OutVolt: guarda los valores de voltaje amplificador de instrumentación.

Compensador de temperatura con Matlab y arudino

Respuesta de la planta en temperatura, la cual se estabilizo aproximadamente a 43 grados centígrados con el ventilador del disipador encendido. Cabe destacar que la señal de lectura presenta ruido eléctrico debido a la fuente de alimentación del amplificador de instrumentación, como se puede observar en la gráfica.

Para obtener la función de transferencia utilizamos la función “System Identification” en donde introducimos los valores de entrada del escalón y salida de temperatura, el tiempo desde que empezamos a tomar los datos que es cero y el tiempo en que se realizo cada lectura que fue de 0.02 segundos.

Compensador de temperatura con Matlab y arudino

Importamos, seleccionamos la opción estimar función de transferencia y colocamos el numero de zeros y polos de la función de transferencia a estimar. Además, seleccionamos la opción de tiempo continuo.

La función de transferencia obtenida fue

Compensador de temperatura con Matlab y arudino

La respuesta a un escalón unitario en lazo cerrado de la función de transferencia aproximada es la siguiente

Como se puede observar para un escalón unitario no se alcanza la señal de referencia por lo que se decidió implementar un compensador que mejore la respuesta de la planta. Calculo del compensador mediante el lugar geométrico de las raíces Función de transferencia de la planta 𝐺(𝑠) =

0.003602 𝑠 + 0.02088

Polo del denominador = -0.02088 Especificaciones MP: 10% TS: 28 seg ln(10%)2

Ϛ= √ln(10%)2 +𝜋2 = .3494 𝑤𝑛 =

4 = .4088 (28 𝑠𝑒𝑔)(.3494)

𝐻(𝑠) =

𝑠2

. 1671 + .2856𝑠 + .1671

Polos del denominador = -.1428 +/-.3830j ϴ= 𝑃𝑂𝐿(−.1428 + .02088, .3830) = 107.657° ∡(s+a)- ∡(s+b)- 107.657°= +/- 180(2q+1)

Compensador de temperatura con Matlab y arudino

-72.343° – 107.657° = -180° Angulo propuesto de 90 grados

90°- 72.343° = 17.657° 𝑧 = −.02088 −

. 3830 tan(17.657)

𝑧 = −1.22408

𝑠 + .1428 𝑠 + .02088 𝑘𝑐 = | ∗ | 𝑠 + 1.22408 . 003602 𝑠 = −.1428 ± .3830𝑗 𝑘𝑐 = 37.2378 Respuesta con el compensador calculado

Como podemos observar al aplicar un escalón unitario la respuesta de la planta cambia considerablemente ahora tenemos un error aproximadamente de .0178 en estado estable a un valor cercano de 28 segundos, aunque con un sobre impulso 28.5%. 𝑘𝑝 = 37.2377 ∗ 𝑒𝑠𝑠 =

1.22408 . 003602 ∗ = 55.065 . 1428 . 02088

1 = .0178 1 + 55.065

Compensador de temperatura con Matlab y arudino

Compensador con ángulo propuesto de 115° 115° − 72.343° = 42.657° 𝑧 = −.02088 −

. 3830 tan(42.657)

𝑧 = −.4365 𝑘𝑐 = 72.6591 Ahora reducimos el sobre impulso a 10.2%, pero aumentamos el error en estado estable a .0254 𝑘𝑝 = 72.6591 ∗ 𝑒𝑠𝑠 =

. 4365 . 003602 ∗ = 38.314 . 1428 . 02088

1 = .0254 1 + 38.314

Compensador de temperatura con Matlab y arudino

Compensador con Angulo propuesto de 120 120° − 72.343° = 47.657° 𝑧 = −.02088 −

. 3830 tan(47.657)

𝑧 = −.3699 𝑘𝑐 = 71.6905 Ahora reducimos el sobre impulso a 7.2%, pero aumentamos el error en estado estable a .0302 𝑘𝑝 = 72.6591 ∗ 𝑒𝑠𝑠 =

. 3699 . 003602 ∗ = 32.035 . 1428 . 02088

1 = .0302 1 + 32.035

Compensador de temperatura con Matlab y arudino

Para la implementación del control de la planta en físico utilizamos la opción de ángulo propuesto de 115 grados ya que nos proporciona unas características intermedias en cuanto a sobre impulso y error en estado estacionario Para el control de temperatura con compensador realizamos el siguiente diagrama de bloques e ingresamos

Donde: 𝑘 = 72.6591 𝑐𝑜𝑚𝑝𝑒𝑛𝑠𝑎𝑑𝑜𝑟 =

𝑠 + .4365 𝑠 + .1428

Compensador de temperatura con Matlab y arudino

Respuesta a una temperatura de referencia de 40 grados

Respuesta a una temperatura de referencia de 30 grados

Como podemos observar al probar el controlador con compensador de manera física obtenemos una respuesta bastante buena a pesar el ruido eléctrico. Conclusión: Utilizando Simulink podemos obtener el modelo matemático de un fenómeno físico, además al calcular diferentes compensadores observamos que entre más alejado hacia la izquierda estemos del origen vamos reduciendo el sobre impulso, pero aumentado el error en estado estable.

Compensador de temperatura con Matlab y arudino