Autor Tema: ¿Cómo hago PID con PBP?  (Leído 28948 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #15 en: 14 de Agosto de 2006, 03:21:33 »
Hola electronando.

No me acordaba:
Frecuencia-->Z-->tiempo.

Una vez un compañero quizo hacer un filtro FIR (creo que es FIR) pero se complicó la vida con los n(n-1), (n-2), etc.

Yo voy mas por el último enlace que mencioné en el mesaje original (prueba y error). Aunque el libro que menciono de modelado de robots está muy bueno, con ecuaciones de estado y diagramas en Matlab y todo.

Bueno, mañana iré por mi programador para empezar pruebas. :-/
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado LETAL

  • PIC16
  • ***
  • Mensajes: 101
Re: ¿Cómo hago PID con PBP?
« Respuesta #16 en: 19 de Agosto de 2006, 20:38:45 »
El hecho de uqe picbasic pro no permita variables tipo float, lo inutiliza para el control pid??

Otra pregunta: si hago un pid analógico y lo sintonizo, luego implemento el mismo tipo de pid discretizado. Debería al realizar la sintonía obtener el mismo valor de las tres constantes que los obtuviera en el diseño analógico con matlab. De no darme los mismos valores podría hacer la conversión para que coincidan?? como se haría esa conversión?

Desconectado Nicoyote

  • PIC10
  • *
  • Mensajes: 15
Re: ¿Cómo hago PID con PBP?
« Respuesta #17 en: 22 de Agosto de 2006, 22:59:55 »
Hola a todos. Soy estudiante de ing. electrica y tengo un ramo que se llama control de sistemas, donde vemos lazos realimentados, controladores PID, etc. El punto está en que no puedo enfocar lo que está en el papel con la realidad (por ejemplo las funciones de trasferencia), y como vi este post (y el tema me interesa), quiero que me expliquen un poco como se puede aplicar un controlador PID a un robot. Espero no joderlos con la pregunta, pero es una duda que quiero aclarar, para así después aportar con algo. Eso sería, gracias de antemano  :-/ :-/
Saludos desde Santiago de Chile

     Atentamente
                               Nicoyote

"Lo que hagamos en vida...tendrá eco en la eternidad"

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #18 en: 23 de Agosto de 2006, 00:56:04 »
Hola a todos de nuevo  :)

En el tema de USB aquí en el foro de PBP mencioné que dejaría ese tema para enfocarme a este tema............ :?............ pero mi novia llegó y está en la ciudad, estará por toda la semana y pues.......... 8)...... no le daré a este tema en esta semana.


Letal revisa esto: http://proyectosfie.com/html/seccion6.htm

Nicoyote revisa esto:
http://abrobotics.tripod.com/ControlLaws/PID_ControlLaws.htm
http://www.embedded.com/2000/0010/0010feat3.htm

Al parecer este tema es algo visto (240 veces hasta ahora), todo parece indicar que mucha gente tiene tarea sobre PIDs y anda buscando soluciones  :D.

Bueno, se termina la semana y de vuelta mi cuadernillo de apuntes/proyectos/programas  :mrgreen:
« Última modificación: 23 de Agosto de 2006, 01:09:59 por Mario »
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado LETAL

  • PIC16
  • ***
  • Mensajes: 101
Re: ¿Cómo hago PID con PBP?
« Respuesta #19 en: 29 de Agosto de 2006, 16:44:57 »
si hago un pid en el que por teclado pueda cambiar KI,KD,TI,KP y además el setpoint. Como establezco la respuesta en el tiempo del pid para un determinado valor de constantes??
En la teoría dice que aplico un escalón a la entrada del sistema(el sistema incluye la planta a controlar y el pid) y a la salida del sistema obtengo una señal en la que puedo ver el sobrepaso, tiempo de subida, etc., pero lo que no entiendo es que para eso debo asignar un determinado valor a KI,KD,TI,KP para que actúen como constantes que son pero que valor le doy al setpoint ??? no entiendo que hago con el serpoint al tratar de obtener la respuesta en el tiempo.
 :( :(

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #20 en: 30 de Agosto de 2006, 04:35:41 »
 :? MmmmmmmmmmmmmmmmmmmmmM  :?

Lo que preguntas no le entiendo bien.

Si tienes tu planta definida (sus parámetros, características, etcétera) e hiciste su correspondiente análizis ya sea en frecuencia o en Z, sabes qué valor le debes dar a las constantes para que tu sistema funcione correctamente.

Eso del punto de referencia es tu entrada (si no recuerdo mal, hace ya mucho tiempo que no tomo ningún apunte de control), forzosamente tendrás que aplicar una entrada (la mayoría de los casos un escalón) para ver su comportamiento (si no recuerdo mal, se aplicaba un impulso para saber la función de transferencia, pero creo que si recuerdo mal  :D).

Lo que pides es algo complicado de explicar para mi. He visto que has preguntado en el foro y al parecer necesitas hacer un PID para temperatura. Te mencioné que te fueras a parallax.com y buscaras las descargas  o vete directo aqui:
http://www.parallax.com/html_pages/downloads/siccurriculum/documentation_sic_curriculum.asp#spanish

y baja industrial control. Este PDF tiene un ejemplo de PID para temperatura; aunque es para Basic Stamp, es casi lo mismo.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado LETAL

  • PIC16
  • ***
  • Mensajes: 101
Re: ¿Cómo hago PID con PBP?
« Respuesta #21 en: 30 de Agosto de 2006, 11:30:37 »
El setpoint es el valor deseado de salida.
Ahora bien, lo que no entiendo es que yo aplico un escalón(es lo mismo que una contínua?)
pero la respuesta en teoría oscila alrededor del valor del escalón que aplique a la entrada o alrededor del setpoint?? o sea que lo que no entiendo es que valor le doy al setppoint al poner un escalón a la entrada.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: ¿Cómo hago PID con PBP?
« Respuesta #22 en: 30 de Agosto de 2006, 14:18:54 »
Haber LETAL lo que tu necesitas se conoce con el nombre de sintonia o sintonización de un PID, existen distintos métodos y técnicas para realizar esta operación. En general se pueden realizar en lazo abierto y en lazo cerrado, dependiendo del tipo de proceso.  Aquí tienes algunas páginas que hablan de lo que te comento:

http://www.esi2.us.es/~vivas/prac_RA_ITI/prac_5.pdf
http://www.eie.ucr.ac.cr/pub_inv/articulos/valfaro02B.pdf

En general si pones en Google "sintonización PID" obtendras un buen número de páginas hablando del tema.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Nicoyote

  • PIC10
  • *
  • Mensajes: 15
Re: ¿Cómo hago PID con PBP?
« Respuesta #23 en: 30 de Agosto de 2006, 18:30:29 »
Gracias por los links Mario. No había visto el foro estos días pq estaba un poco ocupado. Les he echado un vistazo y se ve muy interesante la cosa. Gracias nuevamente  :mrgreen: !!!
Saludos desde Santiago de Chile

     Atentamente
                               Nicoyote

"Lo que hagamos en vida...tendrá eco en la eternidad"

Desconectado LETAL

  • PIC16
  • ***
  • Mensajes: 101
Re: ¿Cómo hago PID con PBP?
« Respuesta #24 en: 27 de Septiembre de 2006, 19:07:57 »
Estoy luchando con el pid, pero tengo una duda fundamental :
Cómo pruebo si mi PID funciona correctamente ???? 

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: ¿Cómo hago PID con PBP?
« Respuesta #25 en: 27 de Septiembre de 2006, 22:20:39 »
Hola Mario, cuando te refieres a:

Citar
Aunque el libro que menciono de modelado de robots está muy bueno, con ecuaciones de estado y diagramas en Matlab y todo.

¿Qué libro es?

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado GustavoT

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 102
Re: ¿Cómo hago PID con PBP?
« Respuesta #26 en: 27 de Septiembre de 2006, 22:37:26 »
Realice un control PID sobre un brazo robotizo unos años atrás, el resultado fue de regular a bueno, al pid lo programe en asambrer y no use ninguna herramienta como transformada binlineal ni nada de eso, simplemente se programo un integrador un derivador , producto y suma

Es cuestión de ponerse manos a la obra, yo use un 18F458 , a este le sobra velocidad para realizar el control

Por ahí leí que alguien recomendaba usar controles analógicos, no creo que sea lo mejor , es dar un paso atrás, hoy en día todos los controles se hacen de forma digital, ya dejo de ser una tendencia  para ser los estándar.

Suerte cualquier cososa.....
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.   Albert Einstein

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #27 en: 28 de Septiembre de 2006, 03:18:03 »
Hola.



LETAL:

Esa respuesta solo tú la conoces... extraño ¿no?.

Tu solamente conoces la planta y el controlador; si tu planta tiene una reacción favorable al controlador, entoces estás bien.

Creo que lo que estabas haciendo era un control de temperatura, te hice el comentario que un control PID no es necesario para esa varible porque, en la gran mayoría de los casos, la temperatura no varía tan rápido, con un simple P o poniendo condiciones es mas que suficiente.

Lo antes mencionado es por si no tienes los parámetros de la planta. Si tienes esos parámetros pues, puedes usar esa información y como mencionaste que usas MATLAB, simular el sistema.

Mira LETAL, para que te des una idea de lo que digo, ve a ésta página y descarga los dos videos que vienen en ella. Es un carrito donde la persona hace un control P y un PD. Te darás cuenta de el error entre uno y otro.
http://elm-chan.org/works/ltc/report.html

Pero como lo tuyo es temperatura.......... es difícil saber si lo haces por prueba y error ya que la variable es lenta en su comportamiento.
Lo que puedes hacer es tratar de desestabilizar el sistema dando valores arbitrarios que consideres prudentes (claro, todo esto es si no sacaste la ecuación de la planta).

Sinceramente no creo que ocupes un PID para un proceso de esta naturaleza, un simple programa de comparación de valores es suficiente pero, si necesitas hacerlo, ya es diferente  :D.

¿Qué libro es?

Es Mobile Robotic Car Design de Pushkin Kachroo y Patricia Mellodge.
http://www.amazon.com/gp/product/007143870X/ref=pd_rate_dp/103-3521960-1785421?ie=UTF8


Por ahí leí que alguien recomendaba usar controles analógicos, no creo que sea lo mejor , es dar un paso atrás

Ese era yo.
La razón es que el forero LETAL no ha mencionado si es tarea o si el quiere hacerlo solo porque quiere (fíjate en la fecha de su publicación, es 27 de Julio, Inicio de clases semestrales en algún lugar).
Le comentaba que si había oportunidad lo hiciera analógico porque es mas sencillo que digital (en mi opinión).

Al principio del tema hago la aclaración que quiero hacer un PID porque quiero, no porque tenga que hacerlo.


Por ahí leí que alguien recomendaba usar controles analógicos, no creo que sea lo mejor , es dar un paso atrás, hoy en día todos los controles se hacen de forma digital, ya dejo de ser una tendencia  para ser los estándar.

De acuerdo contigo.

Es cuestión de ponerse manos a la obra
Diste en el clavo 8).


Bueno, déjenme decirles como va esto:

Apenas estoy en lo del PWM.

Ando queriendo usar el HPWM del PBP pero al parecer solo te da 256 valores para el ciclo de trabajo (0=0%, 127=50% y 255=100%).

No sería ningún problema pero necesitaría ver cuántas líneas de ensamblador usa el compilador; no porque el 18F452 o 18F252 no las resista (32K de cada uno) sino porque quizá utilice éste código en un 16F873 o un 16F628 (con control Ackerman por no tener dos PWM).

Estuve viendo el código que proporciona Microengineering Labs para usar el PWM del µicro y hacen algo que no se me había ocurrido (si, algo tan sencillo no se me había ocurrido) para colocar los 10 bits de resolución para el ciclo de trabajo:

duty   VAR   WORD      ' Duty cycle value (CCPR1L:CCP1CON<5:4>)

CCP1CON.4 = duty.0      ' Store duty to registers as
CCP1CON.5 = duty.1      ' a 10-bit word

CCPR1L = DUTY >> 2

http://www.microengineeringlabs.com/resources/samples/pbp/hardpwm.bas


Al parecer es compacto el código y no tendría que estar llamando la instrucción HPWM cada vez que quiera ajustar los motores.

Bueno, hasta aqui voy, pondré resultados tan pronto los tenga.

Saludos y cuando ponga mi página electrónica trataré de colocar esta información con videos si es posible.

La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado LETAL

  • PIC16
  • ***
  • Mensajes: 101
Re: ¿Cómo hago PID con PBP?
« Respuesta #28 en: 28 de Septiembre de 2006, 09:09:07 »
Aclaro algunas cosas de mi pregunta:

Tengo que hacerlo como trabajo que me dieron, pero la cosa ya no es solo de temperatura.
Deber ser un PID configurable por teclado(cambio sus constantes por teclado), por lo que puede ser que lo usen , como puede ser que lo usen en una variable más rápida.
Mi pregunta iba dirigida a como puedo probar en proteus que está funcionando bien, es decir, que no solo proporciona una acción pid, sino que las constantes que introduzco producen la misma salida del modelado teórico del pid, ya que esto es lo que realmente me indicaría si esta bien hecho. O sea que en mi caso lo que debo demostrar es la concordancia que tiene con la teoría para que puedan decirme que está bien.

Pensé en introducir una entrada escalón y ver la salida con alguna herramienta, y hacer lo mismo con el simulink y comparar, puede ser???


Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #29 en: 29 de Septiembre de 2006, 03:47:09 »
mmmmmmmmmmmm  :?

No sé la verdad si puedas usar eso de Proteus, no te puedo ayudar porque no sé usar ese programa.


Tengo una GRAN duda:
¿cómo sacaste la ecuación del proceso de temperatura?


La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee


 

anything