uControl
Octubre 25, 2014, 08:53:02 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  

La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: [APORTE] Guía de uso PID para Arduino  (Leído 3666 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 602



« : Julio 29, 2012, 01:11:16 »

En esta oportunidad, les traigo una traducción que realicé como parte de un trabajo de investigación, para el grupo de robótica LARMA, de la UTN regional Mendoza.

El trabajo original corresponde a Brett Beauregard, quien desarrolló la librería para Arduino  bang

Espero les sirva el trabajo para sus desarrollos  Wink

El enlace: http://www.mediafire.com/view/?5xh7bt75e27f4x2

Saludos !
En línea
Suky
**----- ^^ ------**
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5440


Con Qt...


WWW
« Respuesta #1 : Julio 29, 2012, 12:11:02 »

Genial, seguramente va a ser muy útil  bang Algunos detalles, u(t) no es la salida del proceso, sino la salida del controlador y entrada de control al proceso. Es todo un tema la nomenclatura, porque u(t) generalmente representa la señal de set point.

El tema del error en estado estacionario es más complejo, decir que queda casi nulo es muy ambiguo. Por ejemplo tenemos:

U(s)--->()-->E(s)-->[G(s)]---->[H(s)]----> Y(s)
            |__________________________|

E(s)=U(s)-Y(s)=U(s)-G(s).H(s).E(s)  -> E(s)=U(s)/(1+G(s).H(s))

Si calculamos el error en estado estacionario tenemos:

ees=limt->infe(t)=lims->0E(s)s=lims->0s.U(s)/(1+G(s).H(s)).  Si U(s) es un escalon A/s y G(s)=Kp ->

ees=lims->0s(A/s)/(1+Kp.H(s))=A/(1+Kp.H(0))

Ahí se puede ver que el error depende de H(0). Si H(s) fuera a/(b+s) -> A/(1+Kp.(a/b))

Ahora si U(s) es una rampa A/s2, haciendo el mismo despeje se llega a que ees=lims->0A/(s.G(s).H(s)). Para G(s)=Kp y H(s)=a/(b+s) el error es infinito independientemente de Kp..

Luego es muy interesante que tenga en cuenta el tema del windup, porque diría que sin eso en lo real sería poco aplicable dado que en cualquier control la señal de control es limitada entre ciertos rangos

Saludos!

En línea

Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 602



« Respuesta #2 : Julio 29, 2012, 12:42:25 »

Suky como estás. Sinceramente de la teoría de sistemas de control entiendo poco y nada  Cry

Lo que hice fue tomar el trabajo que desarrolló el autor y hacer una traducción al español (que tampoco es 100% fiel al original, sino más bien una adaptación).

De lo que me decís Suky:

Citar
Algunos detalles, u(t) no es la salida del proceso, sino la salida del controlador y entrada de control al proceso. Es todo un tema la nomenclatura, porque u(t) generalmente representa la señal de set point.

Entonces queda: u(t) es la salida del controlador.

Citar
U(s)--->()-->E(s)-->[G(s)]---->[H(s)]----> Y(s)
            |__________________________|

E(s)=U(s)-Y(s)=U(s)-G(s).H(s).E(s)  -> E(s)=U(s)/(1+G(s).H(s))

Si calculamos el error en estado estacionario tenemos:

ees=limt->infe(t)=lims->0E(s)s=lims->0s.U(s)/(1+G(s).H(s)).  Si U(s) es un escalon A/s y G(s)=Kp ->

ees=lims->0s(A/s)/(1+Kp.H(s))=A/(1+Kp.H(0))

Ahí se puede ver que el error depende de H(0). Si H(s) fuera a/(b+s) -> A/(1+Kp.(a/b))

Ahora si U(s) es una rampa A/s2, haciendo el mismo despeje se llega a que ees=lims->0A/(s.G(s).H(s)). Para G(s)=Kp y H(s)=a/(b+s) el error es infinito independientemente de Kp..

Una consulta, esto está en el dominio de la frecuencia verdad ? Vos podrías explicar lo anterior de una manera más simple o más gráfica, esto te lo pido para añadir lo que vos me decís al tutorial y que la información quede más completa.

En fin, espero le sirva a todos  rolleyes2


 
En línea
Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 602



« Respuesta #3 : Julio 29, 2012, 01:37:28 »

En esta oportunidad, les traigo una traducción que realicé como parte de un trabajo de investigación, para el grupo de robótica LARMA, de la UTN regional Mendoza.

El trabajo original corresponde a Brett Beauregard, quien desarrolló la librería para Arduino  bang

Espero les sirva el trabajo para sus desarrollos  Wink

El enlace: http://www.mediafire.com/view/?5xh7bt75e27f4x2

Saludos !

El nuevo enlace que contiene modificaciones realizadas por algunos errores y mejoras para una lectura más precisa del código fuente.

ENLACE: http://www.mediafire.com/view/?53ipqg7sdx4xg99
En línea
Suky
**----- ^^ ------**
Moderador
dsPIC
******
Desconectado Desconectado

Sexo: Masculino
Mensajes: 5440


Con Qt...


WWW
« Respuesta #4 : Julio 29, 2012, 02:47:47 »

Hola, busque error en estado estacionario y encontré lo siguiente:

http://gama.fime.uanl.mx/~agarcia/materias/ingco/apclas/06%20-%20Error%20en%20Estado%20Estable%20o%20Estacionario.pdf

http://dea.unsj.edu.ar/control1b/teoria/error%20estacionario.pdf

Es lo mismo pero con otras nomenclaturas  Tongue Se trabaja en el dominio de frecuencia porque es más fácil de verlo matemáticamente. Igualmente en el primer pdf hay varias gráficas que ayudan a exponer la problemática.


Saludos!
En línea

Moyano Jonathan
Amigo de uControl
PIC16F
******
Desconectado Desconectado

Mensajes: 602



« Respuesta #5 : Julio 29, 2012, 03:17:15 »

Muchas gracias Suky  Wink

Vamos a leerlo, ahora al parecer voy a tener que meterle mano al análisis matemático como campeón  Golpe
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  


La gente de Niple nos ofrece un descuento especial para usuarios de uControl.
Entérate de como puedes aprovechar esta oferta haciendo click aqui.

Súmate, y ayuda a uControl con tu participación en esta interesante oportunidad que nos oferece Niple.

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.20 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.15 segundos con 29 consultas. (Pretty URLs adds 0.023s, 3q)
loggkey