Autor Tema: Ayuda teórico/práctica con un PID  (Leído 6662 veces)

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

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Ayuda teórico/práctica con un PID
« en: 25 de Abril de 2012, 14:14:29 »
Hola a todos,
Tengo que implementar un control PID y lo único que tengo como dato es el tiempo de muestreo de las entradas, y que lo que se pretende es que se regule una entrada que estará entre -127:127 a una salida entre -16:16. Mis apuntes de control electrónico ya quedaron un poco olvidados y os pido ayuda si alguien lo tiene mas fresco sobre como puedo sacar la ecuación en diferencias que define el PID, puesto que no me acuerdo de como sacar las constantes y eso...  :oops:
Gracias a todos por vuestra ayuda.
Saludos!!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda teórico/práctica con un PID
« Respuesta #1 en: 25 de Abril de 2012, 14:22:43 »
O sea que la función de transferencia es solo un k ? y=k*u  :?
No contesto mensajes privados, las consultas en el foro

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Ayuda teórico/práctica con un PID
« Respuesta #2 en: 25 de Abril de 2012, 16:44:40 »
¿Qué es lo que quieres controlar? ¿Cuál es el tiempo de muestreo?
Si copias los datos que tengas, te echo una mano.


Saludos.

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Ayuda teórico/práctica con un PID
« Respuesta #3 en: 26 de Abril de 2012, 04:30:05 »
Hola gente,
Gracias por vuestras respuestas, el tiempo de muestreo es de una décima de segundo, y si suky, yo tampoco lo entiendo bien que la función de salida sea simplemente una constante de proporcionalidad, me resulta raro... Es por un favor que me han pedido, pero no tengo más datos de la planta que esos, o sea que en realidad es omo hacer un mapeo y el PID supongo que lo único que hace es reducir el error debido a la constante de proporcionalidad.
Si podéis sacar algo de esto os lo agradezco, no obstante trataré de coger mas información.
Un saludo a todos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda teórico/práctica con un PID
« Respuesta #4 en: 26 de Abril de 2012, 10:24:45 »
..y si suky, yo tampoco lo entiendo bien que la función de salida sea simplemente una constante de proporcionalidad, me resulta raro...

Entonces no tenes nada que controlar. Averigua mejor de que se trata. Puede que te hayan dicho que esos son los rangos mínimos/máximos pero el sistema puede ser de 1º orden. A ciegas no podes calcular nada
No contesto mensajes privados, las consultas en el foro

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Ayuda teórico/práctica con un PID
« Respuesta #5 en: 26 de Abril de 2012, 13:42:00 »
y = u / 8;

Así se consigue salida lineal sin saturaciones.

Por ahora se ajusta a los datos de los que disponemos.

Saludos.



Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Ayuda teórico/práctica con un PID
« Respuesta #6 en: 27 de Abril de 2012, 03:45:51 »
Según decía suky, el problema es que eso poco control necesita, no es ni un sistema de primer grado. Como implementaría el PID ahí?

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Ayuda teórico/práctica con un PID
« Respuesta #7 en: 27 de Abril de 2012, 10:16:20 »
Hay controles que son Todo/nada. La salida sólo puede valer 0 o 1 y sin embargo pueden tener control PID.
Los sistemas de 1er grado pueden ser muy complejos si se añaden retardos (por ejemplo el control de temperatura de un horno)

Pero por ahora es como si te dicen que programes un ordenador que tiene un teclado, un monitor y dos discos duros. ¿Que lo programe? ¿Para hacer qué?

Hace falta saber cuál es el problema. Qué sistema hay que controlar.

Saludos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda teórico/práctica con un PID
« Respuesta #8 en: 27 de Abril de 2012, 10:27:39 »
Según decía suky, el problema es que eso poco control necesita, no es ni un sistema de primer grado. Como implementaría el PID ahí?

Es que no hay nada que controlar! Si fuera de 1º grado, 2º etc... La salida, dada una señal escalón como entrada, puede por ejemplo: demorar mucho a establecer su valor final, tener un sobre impulso muy alto, gran oscilación, etc... Y con la aplicación de controles proporcionales, derivados o integrales vas solucionando esos problemas.
No contesto mensajes privados, las consultas en el foro

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Ayuda teórico/práctica con un PID
« Respuesta #9 en: 28 de Abril de 2012, 07:41:00 »
Hola chicos,
Me han dicho que le modelo de la planta a controlar puede ser cualquiera (horno por ejemplo), lo único que les interesa es el tratamiento del escalado (pre y post), osea, que tengo que hacer un programa de ejemplo de un control PID en asm vamos... Siento si os hice perder el tiempo con lo de antes, a mi también me parecía muy raro.
Si tenéis algún ejemplo de implementación de control en asm me ayudaría si me lo pasaseis.
De nuevo gracias y perdonad si os hice molestar.
Un saludo

Desconectado marqueses

  • PIC12
  • **
  • Mensajes: 80
    • Alberto Marqueses Blog
Re: Ayuda teórico/práctica con un PID
« Respuesta #10 en: 28 de Abril de 2012, 18:40:29 »
Hola,

no sé de donde sacais que el controlador debe ser solamente P por que la salida sea de rango [-16,16]. Os pongo un ejemplo, control de temperatura con un motor de continua que hace de ventilador. Si se usa un LM35 a entrada al controlador viene siendo la del ADC, luego la entrada variará de 0 a 1024 (10bits) que se pueden traducir de 0 a 5V. La salida, alimentando el motor a través de un L293D a 15V y enviando una señal de PWM, la salida del controlador debería ser de 0 a 4096 (por ejemplo, 0=0%duty cicle y 4096=100%duty cicle).

Por lo tanto, tenemos unas señales originales de entrada que varían de 0 a 1024 y unas de salida que varían de 0 a 4096.

Lo importante es que en la formula del PID estamos hablando de lo mismo y no juntemos la velocidad con el tocino, quiero decir, que hablemos en voltios, o en grados o en una sola unidad tanto para variables de entrada como para variables de salida, realizando la conversión correspondiente antes y después del control PID.

Por ultimo, en ASM no tengo ningún condigo PID, y si trabajas en CCS tengo un par de métodos implementados.

Saludos.
Alberto Aragón Marqueses
albertomarqueses.wordpress.com

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda teórico/práctica con un PID
« Respuesta #11 en: 28 de Abril de 2012, 19:12:45 »
Si tu sistema es y=10*u, le colocarías un control?  :shock: Otra cosa es que los datos dados sean máximos y mínimos, y la función de transferencia a imaginación  :D
No contesto mensajes privados, las consultas en el foro

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Ayuda teórico/práctica con un PID
« Respuesta #12 en: 29 de Abril de 2012, 06:57:45 »
Gracias marqueses, en CCS yo también tengo algunos de muestra pero necesito ASM. Y si, Suky, es tan sencillo como dices, lo que pasa es que a veces, cuando a uno le cuentan las cosas a medias pues se empieza a hacer pájaros en la cabeza y al final piensa en cosas dificilísimas que no es ni de lejos lo que se necesita jeje  :oops:, pero es como dices, dados los máximos y mínimos, implementar tu el control de la función que te de la gana. Es decir, te dicen que la entrada, ya digitalizada, va de 0 a 256 y lo único que tienes que hacer es desplazarla a -127:127 e implementar el PID que te de la gana, después la salida truncarla para que vaya de -16:16 y finalmente desplazarla para que esté en 0:32 para los actuadores que hay a posteriori.
Por eso si alguien tiene un ejemplo sencillo de algún PID en ASM se lo agradecería si me lo pudiese pasar.
Gracias y un saludo.

Desconectado marqueses

  • PIC12
  • **
  • Mensajes: 80
    • Alberto Marqueses Blog
Re: Ayuda teórico/práctica con un PID
« Respuesta #13 en: 01 de Mayo de 2012, 16:46:08 »
Si el sistema es y=10*u no se está controlando nada, solo estas dando una salida en función de la de una entrada. El control existe si comparas esa u con un setpoint, donde existirá un error y habrá que aplicar el control PID, aunque hagas I y D =0.
Alberto Aragón Marqueses
albertomarqueses.wordpress.com

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda teórico/práctica con un PID
« Respuesta #14 en: 01 de Mayo de 2012, 17:29:53 »
Si el sistema es y=10*u no se está controlando nada, solo estas dando una salida en función de la de una entrada. El control existe si comparas esa u con un setpoint, donde existirá un error y habrá que aplicar el control PID, aunque hagas I y D =0.

u es la señal de entrada al sistema... Al PID ingresa e(t), o sea u(t)-y(t)..
No contesto mensajes privados, las consultas en el foro