Hola, a ver si me pueden orientar sobre como realizar este proyecto.
Me encuentro realizando un coche que tiene que seguir una línea a la máxima velocidad posible para presentarme a concursos de robótica y estoy realizando la programación, como sensores uso CNY70 leídos en digital y un pic18f452 para controlar la electrónica del coche programado en C. El coche consta de un servomotor para girar las ruedas y un motor para moverlo a distintas velocidades y en ambos sentidos. Es decir que en función de la posición del coche sobre la línea tendría que mandar dos entradas al sistema, la posición del servomotor y la velocidad del motor del coche.
En principio para simplificar he puesto la velocidad como constante para reducir el sistema a la entrada del servomotor solamente y más adelante cuando tenga resuelto este punto habilitar la velocidad variable.
He realizado un control proporcional para controlar el servomotor de dirección mientras el coche se mueve con una velocidad constante, éste parece que funciona bien y ahora estoy empezando a implementar la parte derivativa del control para corregir la oscilación del coche al usar una constante proporcional alta para que el coche responda lo antes posible.
La parte derivativa que añadir al regulador sería restar el error presente con el error anterior de la posición del coche respecto a la línea entre un tiempo de muestreo, este tiempo de muestreo es función de la velocidad a la que va el coche, como en principio ésta va a ser constante el tiempo también lo sería. Y aquí va mi primera duda, cada cuanto tiempo debo comparar el error pasado con el error actual para implementar el regulador D, creo que lo único que puedo hacer es prueba y error... alguna idea para este punto? ya que el ajuste de las constantes P y D al no tener la planta del coche tb se hará de manera experimental.
Mis conocimientos de electrónica de control son pobres, en su día sólo vi sistemas SISO y no se muy bien como enfocar el problema de tener dos entradas (motor y servomotor) y una salida en lugar de una sóla entrada y una sola salida. Ya que la Kp del servomotor va en función de la velocidad del coche y si esta es variable tendría que cambiar en función de la velocidad actual, y la Kd más de lo mismo.
Si alguien me puede recomendar algún documento sobre sistemas MISO u orientarme como resolver este problema estaría agradecido ya que ando totalmente pérdido en como resolver ésto.
También voy a añadir un módulo de comunicación al coche para mandar el error de los sensores a un ordenador mientras el coche está sobre la pista, de esta forma podría ver como influye los valores de las constantes y no sé si incluso sacar una aproximación de la planta mediante matlab, generando trazados establecidos en la superficie y viendo la respuesta del sistema, para ello puede que tenga que cambiar los sensores a analógico en lugar de digitales para tener mayor resolución.
En fin a ver si alguien que haya hecho algo similar o sepa del tema de electrónica de control puede orientarme un poco o indicarme algo que leer, de momento os dejo lo que llevo hecho:
http://www.jmnlab.com/programar1/programar1.htmlMuchas gracias. Saludos.