TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: arcadi en 23 de Diciembre de 2008, 12:53:06

Título: Rastreador con PID
Publicado por: arcadi en 23 de Diciembre de 2008, 12:53:06
Buenas,

estoy escogiendo un tema de proyecto de fin de carrera, y me estoy decantando a por un robot rastreador. Me gustaria implementar un
control PID a través de un PIC 18F452, pero no se como empezar... utilizaria todo un puerto para leer los 8 CYN70 (los sensores).

Ya hice anteriormente un rastreador, pero era pura logica binaria con dos sensores XD.

Por eso, pido si alguien me puede explicar como implementar un control PID en un rastreador.

Muchas gracias.
Título: Re: Rastreador con PID
Publicado por: cerebro en 23 de Diciembre de 2008, 12:57:19
chequea esto
http://www.todopic.com.ar/foros/index.php?topic=14074.0
Título: Re: Rastreador con PID
Publicado por: arcadi en 23 de Diciembre de 2008, 13:30:51
El enlace anterior ya lo vi y me quede  :shock: la primera vez XD

He buscado en google y he encontrado estos enlaces que me ayudan mucho a entender el sistema:

http://www.jashaw.com/pid/code.htm

http://learncontrol.com/pid/code2.html

http://ww1.microchip.com/downloads/en/AppNotes/00937a.pdf

http://ww1.microchip.com/downloads/en/AppNotes/00964A.pdf
Título: Re: Rastreador con PID
Publicado por: arcadi en 23 de Diciembre de 2008, 13:45:18
¿Alguien me puede decir si puedo seguir esta estructura?

Tendria 3 potenciometros para graduar Kd, Kp y Ki o un teclado 4x4.

Inicializar:

                Kd=valor1;
                Kp=valor2;
                Ki=valor3;
                ek=ek_1=ek_2=0;
                uk=uk_1=uk_int=0;

Calculo del PID:

si tenemos 8 sensores,  ( 1 2 3 4 5 6 7 8 )

-Caso 1: la linia negra esta en 4 y 5, no existirà error
-Caso 2: la linia negra esta en 3 y 4, error positivo (tengo que girar a la izquierda)
-Caso 3: la linia negra esta en 5 y 6, error negativo (tengo que girar a la derecha)

                uk=Kd*ek_2+(Kp+2*Kd)*ek_1+(Kp+Ki+Kd)*ek-uk_1;   // controlador pid

                ek_1=ek;
                ek_2=ek_1;
                uk_1=uk;
                uk_int=uk;
               

-Calculo del PWM:

               Segun el resultado de uk_int, se configurara el PWM de los dos motores CC.


Muchas gracias cerebro