Autor Tema: PID_PARA_HORNO  (Leído 10885 veces)

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

Desconectado pic16f88A

  • PIC10
  • *
  • Mensajes: 21
PID_PARA_HORNO
« en: 23 de Febrero de 2013, 19:10:22 »
Hola a todos!!
En primer lugar felicitar a todos los integrantes y gente que dirige el foro.
Bueno, pues vi el PID que hizo Suky y estoy bastante interesado en hacer algo muy parecido, para controlar el
modelo que viene en ISIS 7_Proteus (Oven). Para ello he abierto este nuevo tema, ya que no me queda muy claro la obtención del modelo de
la planta de dicho horno, es decir la función matemática que describe dicho proceso. He visto que hay varios métodos;
Como ziegler nichols, aplicando escalon de "X" voltios y viendo como responde el sistema.
Mediante matlab a través de la herramienta IDENT,  ya que se pueden extraer los tiempos y temperatura del gráfico interactive.
Pero lo que realmente me interesa es saber como lo hizo Suky.
Una vez que lo consiga, lo iré compartiendo con vosotros de una forma clara y bastante extendida que no de lugar a dudas.
Muchas gracias
El objetivo final es llegar a lo que hizo suky en su dia, pero explicado detalladamente!!
« Última modificación: 25 de Febrero de 2013, 16:02:54 por pic16f88A »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: PID_RTOS
« Respuesta #1 en: 23 de Febrero de 2013, 19:52:15 »
« Última modificación: 23 de Febrero de 2013, 20:12:04 por Picuino »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: PID_RTOS
« Respuesta #2 en: 23 de Febrero de 2013, 19:58:14 »
Otra forma es sintonizar el PID "a mano".

1º.- Aumentas el control Proporcional poco a poco. Verás como el error disminuye y la velocidad de respuesta aumenta.
     Si el resultado es aceptable aquí terminas.

2º.- Si el sistema comienza a ser inestable, añades control Derivativo para estabilizarlo y que no oscile. Así puedes seguir aumentando el control proporcional.
     Si el resultado es aceptable aquí terminas.

3º.- Si la velocidad es correcta, pero tienes todavía error (la temperatura finalmente obtenida no es la deseada) puedes aumentar el control Integral para que el error sea cero.
     Si el sistema se hace algo inestable, pasas al punto 2º y aumentas el control derivativo un poco.


Siempre tienes que tener en cuenta las no linealidades de un horno:

1-  Por mucho que quieras el horno no va a calentar más que una potencia máxima. Aunque el error aumente, el horno no va a dar más potencia.

2- El horno puede calentar, pero no puede enfriar. Si te pasas de temperatura, el enfriamiento será mucho más lento que el calentamiento.


Saludos.
« Última modificación: 23 de Febrero de 2013, 20:11:50 por Picuino »

Desconectado pic16f88A

  • PIC10
  • *
  • Mensajes: 21
Re: PID_RTOS
« Respuesta #3 en: 24 de Febrero de 2013, 11:03:47 »
Muchas Gracias por este primer aporte!!
El método que seguiré para obtener el modelo de la planta será el de Ziegler-Nichols.
El cual esta explicado en esta pagina:
http://www.atp.ruhr-uni-bochum.de/rt1/syscontrol/node64.html
Esta en ingles pero el navegador google chrome te la traduce al castelllano que da gusto verlo

Desconectado pic16f88A

  • PIC10
  • *
  • Mensajes: 21
Re: PID_RTOS
« Respuesta #4 en: 24 de Febrero de 2013, 11:08:43 »
El primer paso será montar el circuito con el ISIS_7_PROTEUS.
https://www.dropbox.com/sh/psew1lyxtiqejd4/gO9AY5GLOD/oven.DSN
Aqui dejo un enlace del programa, con el montaje del horno configurado, para aplicarle un salto en la referencia (set point).
A partir del gráfico interactivo podremos aplicar el método de Ziegler-Nichols.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: PID_RTOS
« Respuesta #5 en: 24 de Febrero de 2013, 14:40:36 »
El método de Ziegler-Nichols sirve para calcular cómo sintonizar el controlador PID, pero no sirve para obtener el modelo de la planta.




Saludos.

Desconectado pic16f88A

  • PIC10
  • *
  • Mensajes: 21
Re: PID_RTOS
« Respuesta #6 en: 24 de Febrero de 2013, 15:10:30 »
Alguien me puede explicar como obtener el modelo de la planta, de la forma que lo hizo suky?¿?¿
Por mucho que lo miro, no logro entender de donde salen los valores de la planta.

Aquí esta el post :http://www.todopic.com.ar/foros/index.php?topic=26780.0

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: PID_RTOS
« Respuesta #7 en: 24 de Febrero de 2013, 15:28:56 »
Lo que hace Suky es obtener una aproximación al modelo del horno mediante el comando IDENT de Matlab.

Un horno real tiene una función de transferencia no lineal con saturaciones, ganancia no lineal que depende de la temperatura, retardos, etc.

¿Qué es exactamente lo que quieres obtener una aproximación o el modelo real?

Para sintonizar un PID no es necesario conocer el modelo de planta sólo una aproximación. Y si utilizas el método manual, ni siquiera eso.

Saludos.

Desconectado pic16f88A

  • PIC10
  • *
  • Mensajes: 21
Re: PID_RTOS
« Respuesta #8 en: 24 de Febrero de 2013, 15:45:36 »
Si me puedes explicar ambas aproximaciones te lo agradecería...
Asi  la gente puede emplear dos metodos.
Una vez que lo  haga lo subiré con explicaciones detallas de como obtener el modelo de la planta.
Que se anime la gente a colaborar!!! que muchos visitan, pero solo Picuino aporta cosas, muchas gracias !!!

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: PID_RTOS
« Respuesta #9 en: 24 de Febrero de 2013, 15:54:17 »
Una de las aproximaciones de Ziegler-Nichols se basa en la respuesta escalón:



No intenta obtener el modelo de planta, sino sintonizar el PID.

El comando IDENT no lo conozco bien, pero creo que te devuelve una aproximación lineal al sistema a partir de la respuesta escalón. No la conozco bien, pero en este caso creo que la aproximación que haga será un poco pobre. Sólo servirá como aproximación para sintonizar el PID. Para eso ya tienes el método de Ziegler-Nichols.

¿Por que quieres obtener el modelo de la planta?

No te preocupes por los aportes que si alguien tiene algo más que aportar lo hará.

Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: PID_RTOS
« Respuesta #10 en: 24 de Febrero de 2013, 16:13:56 »
El comando IDENT no lo conozco bien, pero creo que te devuelve una aproximación lineal al sistema a partir de la respuesta escalón. No la conozco bien, pero en este caso creo que la aproximación que haga será un poco pobre.

Rectifico. Parece que Suky consiguió una aproximación muy buena con un sistema de dos polos:

En ident, seleccione oe221 logrando una identificación del 99.65%. El modelo del sistema resultante para Ts=0.1s:
GZ= (0.6566z+0.6145) / (z^2-1.809z+0.8178)
Aplicando D2C determinamos el modelo de sistema continuo:
GS= (-0.0027s+140.4) / (s^2+2.011s+0.9723)

Por lo menos a la subida de temperatura. La bajada de temperatura tendrá otro modelo distinto.

Saludos.

Desconectado pic16f88A

  • PIC10
  • *
  • Mensajes: 21
Re: PID_RTOS
« Respuesta #11 en: 25 de Febrero de 2013, 09:16:38 »
Bueno aquí muestro como se ha realizado la sintonización del PID.
Espero vuestra respuesta! ;)

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: PID_RTOS
« Respuesta #12 en: 25 de Febrero de 2013, 11:29:05 »
No estoy seguro de que Kp esté bien calculado.

La constante del sistema Ko se puede calcular de la siguiente manera:

   Ko = (Vref / Vsense) · (Tr / Td)

donde
  
   Tr = tiempo de subida (raise) = 13.5 segundos
   Td = tiempo muerto (dead)  = 1 segundos

   Vref = tensión escalón aplicada a la planta = 2 voltios
   Vsense = tensión escalón generada por el sensor de temperatura  = ???


Saludos.

Desconectado pic16f88A

  • PIC10
  • *
  • Mensajes: 21
Re: PID_RTOS
« Respuesta #13 en: 25 de Febrero de 2013, 11:51:23 »
LA TENSIÓN GENERADA POR EL SENSOR DE TEMPERATURA EN CADA MOMENTO SE CORRESPONDE CON LA TEMPERATURA DE SALIDA, YA QUE LA SENSIBILIDAD ES DE 1 V/ºc, DE TODAS FORMAS SI NO ES ESO LO QUE ME PREGUNTABAS, ARRIBA TIENES DISPONIBLE EL CIRCUITO EN PROTEUS PARA SIMULARLO.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: PID_RTOS
« Respuesta #14 en: 25 de Febrero de 2013, 13:31:52 »
En ese caso a mi me sale:

   Ko = (Vref / Vsense) · (Tr / Td)

   Ko = (2 / 251) · (12.5 / 1) = 0,0996


Ahora calculamos las ganancias:

   Kp = 1.2 · Ko = 0,1195      (Proporcional)

   Ki = 2 · Td = 2                   (Integral)

   Kd = 0.5 · Td = 0.5            (Derivativo)


Igual que tus cálculos.

Edito:
Modifico un error: 13.5 por 12.5

Saludos.
« Última modificación: 25 de Febrero de 2013, 14:55:53 por Picuino »