Autor Tema: ¿Cómo hago PID con PBP?  (Leído 28943 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 #45 en: 10 de Octubre de 2006, 15:13:22 »
Hola.


Mira Letal, cuando yo estudié eso lo hice con un libro de procesamiento digital de señales (el de Proakis).

No recuerdo (casi nada) de cómo pasar de frecuencia a Z y a tiempo y demas pero, si tú estás estudiando ecuaciones de diferencias (si no recuerdo mal) no es difícil pasar de una a otra.

Revisa esto:
www.tecnun.com/asignaturas/tratamiento%20digital/tema7.pdf

www.fi.uba.ar/materias/61107/Apuntes/TZ00.pdf

www.dma.fi.upm.es/ctorres/curso-interactivo-control/cap1.pdf

O en cualquier libro de Procesamiento digital de señales te dicen cómo hacerlo.



Apenas va lo mio.  :(
No he tenido mucho tiempo para darle a esto pero, por pasos...... estoy tratando de acondicionar una rueda para tomar los pulsos y aplicar el P.

En cuanto tenga avances los colocaré.
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 #46 en: 10 de Octubre de 2006, 17:06:20 »
Gracias MARIO.
Husmeando en el foro encontré un tema que me despertó la duda si está bien lo que estoy haciendo que entrege el pid. Encima nadie constestó nada, así qu ni siquiera pude tomar una opinión de ahí.
Me gustaría que le des un vistazo a ver que opinas/n y me digas como lo haces vos.

Mirálo en http://www.todopic.com.ar/foros/index.php?topic=14248.0http://www.todopic.com.ar/foros/index.php?topic=14248.0


Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #47 en: 11 de Octubre de 2006, 02:57:51 »
Hola Letal.


Ésta persona plantea un problema relevante (la del enlace anterior, TREMENS): ¿qué sucede si la salida es negativa?


En el escrito donde me estoy basando para hacer el código, el autor plantea fijar límites para el PWM. Él plantea 0 y 100 como mínimos y máximos.

Revisa esto:
http://abrobotics.tripod.com/ControlLaws/singlemotor.htm

Llega hasta la parte del PWM para que veas lo que digo.


El texto referido es el mismo de la bibliografía planteada al inicio del tema.


Espero te sirva.


PD: ¿vos? ¿Eres argentino o algo asi?
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 #48 en: 11 de Octubre de 2006, 17:01:52 »
Voy a meditar mejor el tema del error negativo y trataré de leer lo que me indicás aunque el inglés no es de mi agrado y tampoco lo entoendo(quizá por eso no sea de mi agrado, o quizá sea un lazo realimentado, ja, ja).
A priori me parece que resultaría obligatorio limitar el mínimo a cero por cuestiones físicas de sensores y actuadores, que trabajen arrancando en 0 volt hasta 10v o 5 vol, o 0-20ma.
El tema es como hacerlo, o sea, hacer que cuando el error,integral,o derivada sea negativa , hacer que el pid saque 0% o 0volt, me parece que esta mal porque es muy grande el cambio que esta haciendo, sería como un proporcional off. Creo que lo que acabo de decir, habría que afinarlo para que la limitación no sea tan drástica y ver de ir disminuyendo la acción hasta un límite de error negativo máximo y al llegar ahí recién aplicar 0.

Voy a pensarlo un poco y les comento.
Si se les ocurre otra idea aoprtenla, parece que con mario nos estamos dando duro los dos solos.

Rpta. PD:SI. Vos?
« Última modificación: 11 de Octubre de 2006, 17:04:18 por LETAL »

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #49 en: 11 de Octubre de 2006, 19:38:02 »
Te recomiendo que si no eres muy bueno en inglés, copies el texto y lo coloques en un traductor.

El autor plantea cómo, mediante el término integral, se controlará si el error produce un resultado muy negativo o muy positivo.

Ahora que lo veo, quizá no te sea de gran ayuda porque es para controlar motores en forma diferencial. Pero el principio es el mismo.



PD: soy de México, Puro Cachanilla puro.
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 #50 en: 12 de Octubre de 2006, 12:32:26 »
Me mataste.
No tengo ningún programa traductor. Cuál usas vos???
Podés subirlo al foro, como adjunto?? O enviarmelo??
Sería de mucha utilidad.Gracias.

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #51 en: 12 de Octubre de 2006, 13:38:48 »
Para ser sincero, yo nunca he usado uno (inglés-español o cualquier otro) pero, creo que google o altavista o babilon o algo asi tenían unos y son gratis.

Una persona escribió en italiano y lo tradujo al español en un tema.
Otra persona tradujo eso al inglés y después al español.
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 pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: ¿Cómo hago PID con PBP?
« Respuesta #52 en: 15 de Octubre de 2006, 21:17:52 »
Hola chicos he estado trabajando en un controlador PID y pues como van?

SI puedo ayudarlos en algo cuenten con mi ayuda? Soy estudiante de control e instrumentacion

suerte
La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #53 en: 16 de Octubre de 2006, 04:20:42 »
Hola Pantera.

He seguido tu tema "PID DISCRETO" en el otro subforo.

Si te vas para atrás una página verás que te menciono y comento que lo tuyo será posiblemente mejor ya que usas C y no te metes en problemas de punto flotante.

He revisado tus avances y tu hoja de PDF sobre cómo discretizar (arriba los TECs; yo soy del ITM = Mexicali, Baja California).

Como hace ya tiempo que no tomo un libro de control (2002-2003) no recuerdo muy bien lo de la Z y las fracciones parciales, ecuaciones de diferencias; pero sí menciono a Ogata y Dorf al inicio del tema (primera hoja, primer mensaje).

Al parecer ya terminaste tu proyecto. Bueno lo que activar el teclado con las interrupciones de cambio en el Puerto B.

Solo te recomendaría que usaras el PWM del hardware (si tu PIC tiene). Eso liberará al µicro de estarlo haciendo en software y tu programa correrá de mejor manera.

Yo soy de comunicaciones pero me gusta el control, no soy de instrumentación pero....... entiendo un poco.

Cuando termine de acoplar la rueda al motor y calibrar mi P, lo publicaré.

La verdad sea dicha, no me he dado tiempo para eso.

En hora buena pantera.
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 #54 en: 16 de Octubre de 2006, 11:05:24 »
Si que puedes ayudar pantera. Lee en los últimos mensajes, así nos das tu opinión respecto a la salida negativa.

Desconectado pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: ¿Cómo hago PID con PBP?
« Respuesta #55 en: 17 de Octubre de 2006, 15:22:28 »
Hola chicos hoy me he puesto a leer todo el tema de este post y por lo que veo Letal esta haciendo un sistema de temperatura con un teclado matricial y que modifique los parámetros y Mario anda trabajando con un Motor de DC.

Bueno Un detalle que me gustaría mencionar es que entre mas pequeño sea el motor mas difícil será controlarlo.

No he leido a detalle todo pero veo que te sale el error negativo lo cual no esta del todo mal simplemente analicemos esto.

Digamos que la temperatura es de 24 grados y quieres poner mediante tu teclado el set_point a 20. por lo tanto

Código: Matlab M
  1. error= 20 - 24 = - 4 => negativo
  2. Entonces necesitas cargar este valor (PID) a un ventilador (negativo).

Si tienes los mismos 24 y quieres poner a 30 grados que pasa:

Código: Matlab M
  1. Error = 30-24 = + 6 => Positivo
  2. Entonces necesitas cargar ese valor (PID) a un foco.

El signo negativo simplemente te dirá lo que necesitas activar ya sea el ventilador o el foco.

Con respecto a como va mi proyecto pues si tienes razon, puero aun no he terminado . Con lo de las flotantes si creo que sera mas facil dentro del rango que te permite C, float. Como solo hay velocidades positivas pues no tengo ese problema de signo.
« Última modificación: 17 de Octubre de 2006, 15:27:54 por pantera »
La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)

Desconectado pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: ¿Cómo hago PID con PBP?
« Respuesta #56 en: 17 de Octubre de 2006, 15:41:34 »
Tambien me gustaria mencionar que entre mejor sea la aproximacion de la respuesta al escalon con su funcion mas facil sera sintonizar el PID.

A su vez tambien la linealidad del sensor que tienen debe de ser adecuada. Ya que sino pues realmente estara mal las cosas que estan haciendo. Los actuadores tambien sumamente importantes. Pero pues me he de imaginar que estan utilizando MOSFET. Al menos transistores.

Por eso es que he ido algo lento como podran ver primero he:

Respuesta al escalon.
Obtencion de la ecuacion diferencial.
Verificacion de la linealidad del mi sensor.
Armar el programa de que mida la velocidad del motor y verificarla respecto al patron . +- 10 %
Analizar la ecuacion del PID que hiba a utilizar (Detallada en el PDF esta biene esa pueden intentar esa es del libro OGATA)
Implementar el programa en el cual puede variar cualquier parametro de mi controlador.

El objetivo ahora es:
Programar el alguritmo de control
u(k)=a0 e(k) + a1 e(k-1) +a2 e(k-2) + u(k-1)


El siguiente paso sera teclear el programa en MATLAB para la simulacion de la planta discretizada y el control PID discreto que presento en el archivo PDF
La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)

Desconectado LETAL

  • PIC16
  • ***
  • Mensajes: 101
Re: ¿Cómo hago PID con PBP?
« Respuesta #57 en: 17 de Octubre de 2006, 15:58:36 »
Aunque controles un motor, igualmente al calcular la salida de tu controlador puede darte negativa, verdad??
 
En ese caso que salida das realmente a tu controlador de velocidad ???

Y otra preguntita puedes explicarme como haces tu el cálculo da la acción integral.

Seguimos en contacto. el tiempo se acaba.

Desconectado pantera

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: ¿Cómo hago PID con PBP?
« Respuesta #58 en: 17 de Octubre de 2006, 16:16:26 »
Hola el motor que tengo no podria dar una salida de control negatiava amenos que quiera invertir el giro de la flecha.

y lo de la accion integral no lo entiendes en la variable Z o S

Lo que puedo decirte acerca de la parte integral es la cual lleva el error a cero mas rapido. Es como corrgir el pasado, La P es la que corrige el actual, y la parte derivativa se antepone al error. Y realmente para explicar eso simplemente hay que analizar un poco pero la verdad no recuerdo como pero ten fe de que es verdad.

Letal revisa el Documento que PDF que hice desmenuse a todo lo que se puede la ecuacion que el Libro Ogata propone y Ya me lo checo un maestro y me dice que esta bien. Si tienes una duda podermos comentarlo.
« Última modificación: 17 de Octubre de 2006, 16:18:04 por pantera »
La música es sinónimo de libertad, de tocar lo que quieras y como quieras, siempre que sea bueno y tenga pasión, que la música sea el alimento del amor y del alma.

        :-)El Rock es Cultura :-)

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: ¿Cómo hago PID con PBP?
« Respuesta #59 en: 17 de Octubre de 2006, 16:41:14 »
Voy a revisar tu tema para preguntar después (PID discreto) cómo sacaste los parámetros del motor; lo único que no puedo sacar el la inductancia.
O cómo determinaste la función de transferencia.

Sé que usaste Matlab pero yo ya no voy a la escuela y no tengo el Matlab instalado (pero en la escuela pudieran prestarme una máquina para hacer eso).

Es cierto que no habrá velocidades negativas, y si las hubiera no habría (creo) mayor problema ya que la resolución del PWM es independiente de todo el cálculo. Sólo cuando el error sea negativo, se reduce el ancho de pulso para bajar la velocidad.

Como Letal cometa, el cálculo se hace mediante %. Como pienso utilizar una palabra (16 bits) para hacer cálculos (no un byte) mi resolución estará entre -32767,0,32767; eso es para cada incremento, usaré 15 bits y el 16 se usará como signo.

Méndigo servidor......... me sacó del tema de Pantera. :D

PD: Estoy usando esto para armar
http://www.pololu.com/products/tamiya/0061/

aunque ya hay algo mas barato
http://www.pololu.com/products/tamiya/0114/

http://www.pololu.com/products/tamiya/0062/
off-road tires

http://www.pololu.com/products/pololu/0250/
http://www.pololu.com/products/tamiya/0066/

Los tengo desde hace muuuuuuuuuuuuuuuuucho tiempo, espero echarlos andar pronto.
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