Autor Tema: Control PID con anti-windup en PIC y CCSRTOS.  (Leído 38074 veces)

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

Desconectado msegredo

  • PIC10
  • *
  • Mensajes: 7
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #15 en: 31 de Agosto de 2009, 23:02:25 »
Muy bueno! Podrias subir el codigo completo? Muchas gracias.
Bienvenido msegredo! Revisa en el 3º post esta lo que buscas  :mrgreen:

Saludos!

Sin palabras. Sabes que tengo problemas para abrir el archivo con isis protheus, tengo la version 7.2 SP6 (Build 5368) with advanced simulation, me dice que tengo una version mas vieja de la que fue generado el archivo. Como podre solucionar este tema?
Gracias Suky.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #16 en: 31 de Agosto de 2009, 23:57:48 »
Muy bueno! Podrias subir el codigo completo? Muchas gracias.
Bienvenido msegredo! Revisa en el 3º post esta lo que buscas  :mrgreen:

Saludos!

Sin palabras. Sabes que tengo problemas para abrir el archivo con isis protheus, tengo la version 7.2 SP6 (Build 5368) with advanced simulation, me dice que tengo una version mas vieja de la que fue generado el archivo. Como podre solucionar este tema?
Gracias Suky.


Esta realizado con 7.4, pero te subo uno convertido para 7.0, supuestamente  :tongue:

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #17 en: 01 de Septiembre de 2009, 00:23:52 »
A mi me funciona bien en 7.6.... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #18 en: 01 de Septiembre de 2009, 02:05:08 »
Excelente suky!!! te pasaste! :-/ :-/ y este año q curso sistemas de control me viene de 10!! :D
gracias!!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado msegredo

  • PIC10
  • *
  • Mensajes: 7
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #19 en: 02 de Septiembre de 2009, 22:20:38 »
Muy bueno! Podrias subir el codigo completo? Muchas gracias.
Bienvenido msegredo! Revisa en el 3º post esta lo que buscas  :mrgreen:

Saludos!

Sin palabras. Sabes que tengo problemas para abrir el archivo con isis protheus, tengo la version 7.2 SP6 (Build 5368) with advanced simulation, me dice que tengo una version mas vieja de la que fue generado el archivo. Como podre solucionar este tema?
Gracias Suky.


Esta realizado con 7.4, pero te subo uno convertido para 7.0, supuestamente  :tongue:

Saludos!

Gracias! grandioso.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #20 en: 22 de Septiembre de 2009, 16:01:11 »
Es un proyecto excelente, yo ando trasteando ultimamente con estos temas, no se si al final sera una fuente conmutada o un control de PH, o las dos... el caso es que me viene muy bien tener un ejemplo completo.

Una cuestion:  uT entiendo que puede variar de 0 a 5 porque el voltaje de referencia del ADC es 5V?

Saludos y gracias.

Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #21 en: 22 de Septiembre de 2009, 16:16:36 »
uT es la señal de control a aplicar al sistema, y este caso está limitado en el ejemplo entre 0 y 5V. No tiene nada que ver con el ADC


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #22 en: 22 de Septiembre de 2009, 19:26:24 »
Entonces ese limite ¿de donde viene? es de la naturaleza del sistema? osea, en este caso del horno, obteniendose en la salida del divisor de voltaje un maximo de 5V?

Un saludo.

PD: Estoy teniendo problemas de saturacion en una fuente conmutada (me da siempre el maximo voltaje) y sospecho que viene de ahi.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #23 en: 22 de Septiembre de 2009, 19:37:28 »
En el diseño del controlador es importante tener claro lo siguiente:

  • Modelo fisico-matematico (o experimental  :tongue: ) del sistema a controlar
  • Función de transferencia del actuador

Por ejemplo, para el caso del horno, nos interesa que: en función del valor de voltaje entregado a la resistencia, ésta entregará un valor de calor al sistema térmico, con esto claro se puede decidir si el control de voltaje de la resistencia se hace por PWM o por fase. La uT estará relacionada con los valores de la curva del sistema obtenida por el método que tu escojas (teórico o experimental).

Hay otros parametros que cobran importancia en el diseño, pero eso depende de la velocidad del sistema a controlar.

Si el sistema es demasiado rápido o posee una respuesta poco lineal, es conveniente linealizar por tramos o aplicar otro método de control como Fuzzy.

Saludos
El papel lo aguanta todo

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #24 en: 22 de Septiembre de 2009, 19:51:43 »
Entonces ese limite ¿de donde viene? es de la naturaleza del sistema? osea, en este caso del horno, obteniendose en la salida del divisor de voltaje un maximo de 5V?

Un saludo.

PD: Estoy teniendo problemas de saturacion en una fuente conmutada (me da siempre el maximo voltaje) y sospecho que viene de ahi.

En la salida del Horno tengo una voltaje proporcional a la temperatura y se arma el divisor resistivo para poder medir cierto rango de temperatura. (Nos entregue un valor de 5V a temperatura máxima necesario para el ADC del PIC)
No contesto mensajes privados, las consultas en el foro

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #25 en: 23 de Septiembre de 2009, 03:09:58 »
Bravo Suky, genial ejemplo para empezar con los RTOS, para el 'como modelar un sistema' y como controlarlo!

Enhorabuena por el resultado y gracias por compartirlo :)

Desconectado garocco

  • PIC10
  • *
  • Mensajes: 16
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #26 en: 21 de Diciembre de 2009, 09:57:22 »
Hola Suky. Gracias por la buena onda!
Te quería hacer una consulta sobre la implementación del anti-windup.
Viendo el desarrollo matemático del pid, el cual voy a copiar de nuevo:



Entiendo que para llegar a la ecuación 3), hacés u(k) = v(k) pues no existe limitación. La duda es como hacer para llegar de 2) a 4)... ¿como se hace para modelar la saturación?
Te comento que estoy haciendo un control para una estufa que tiene un tiempo de retardo importante (30 segundos). Hasta ahora no doy con el control, pues el error debe ser del orden de 0,1ºC. Con matlab he obtenido el modelo matemático de la respuesta al escalón de potencia, me dá un sistema de segundo orden (lo conecto con el 100% de la potencia y por rs232 mando 1 muestra por segundo al hiperterminal durante dos horas mas o menos). Traté de controlarlo con un PI, pero como no tiene capacidad de anticipación se me pasa de largo (oscila, y las oscilaciones hacen que se ma vaya fuera de la banda). Ahora he diseñado en el lugar de las raíces un control PI+compensador de adelanto, que me dá así:

V(z)    242.4zz^2-484.2*z+241.7
---- = ----------------------------------
E(z)       z^2-1.975*z+.9753       

y en el matlab anda de maravillas, pero no así en la vida real. Puede ser que sea por el bendito windup, pero  no se como implementar el antiwindup en este caso.

Me fuí por las ramas...Para resumir, la consulta que quiero hacerte es como se puede hacer para modelar el bloque de saturación, y la otra es como hago para meterlo en este caso en la ecuación (es decir como lo realimento, pues no me va a quedar un integrador puro).
Muchas gracias por  la buena onda y por tomarte la molestia de contestar. La verdad es que te has hecho  un tutorial de un nivel excelente, felicitaciones!

Saludos!

Gustavo.


Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #27 en: 21 de Diciembre de 2009, 12:38:08 »
Con respecto a la primer consulta, de como llegar de 2 a 4, es solo aplicar matemática y agrupar variables. No estoy modelando la saturación, si no que tomo a u(k) una señal nueva que surge se aplicar v(k) al actuador que se satura, osea es mucho más general. Después la saturación y que niveles de ello se tiene en cuenta en el código, donde se que u(k) está limitado a 0..5V en mi caso.

Luego, como se dice en los primeros mensajes, lo mejor para lograr una identificación mas acertada del sistema no es aplicarle un escalón sino una serie de escalones que suban y baje para poder obtener un resultado más exacto de la dinámica. A causa de una desacertada identificación surge el problema de que en la teoría funcione y en la realidad no  :?


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #28 en: 21 de Diciembre de 2009, 13:54:40 »
0.1 °C? Que sensor de temperatura estas usando para obtener esa resolución?
El papel lo aguanta todo

Desconectado garocco

  • PIC10
  • *
  • Mensajes: 16
Re: Control PID con anti-windup en PIC y CCSRTOS.
« Respuesta #29 en: 21 de Diciembre de 2009, 14:35:55 »
Hola MLO_.
Estoy usando el TMP121 de Texas Instruments. Tiene una resolución de 0.0625 ºC. Claro que al ser un valor convertido y discreto (12 bits mas signo) solo puedo medir múltiplos de ese valor. Es decir, si quiero medir 25,1 ºC me tendría que dar 401.6 por lo que los valores mas cercanos serán: 25.0625 (valor de conversión 401) y 25.125 (valor de conversión 402).

Saludos.
Gustavo.