Paso 11: El algoritmo de PD
Así que ahora hemos alcanzado el corazón del proyecto. Casi todos que buenos como robot velocista necesita este algoritmo para asegurarse de que seguiremos la línea óptima. El robot tiene dos o cuatro motores. Que dicen que manejaremos a la dirección que el robot siga dando más potencia a un motor u otro. Podemos controlar la velocidad de los motores mediante el uso de la modulación de anchura de pulso, que se integra en el código del robot y nos permite utilizar una función MotorsSpeed(a,b) para establecer la velocidad del motor A de -1000 a 1000 y la velocidad del motor B de -1000 a 1000. Te cotizamos pero no tiene sentido explicar aquí como funciona. (Pero prometo que lo hace!)
Así que ahora a implementar el algoritmo de PD cuyo objetivo será decidir cuánto reacciona (cuánto más poder dado a un motor que la otra) cuando la línea está muy lejos del centro de la matriz del sensor según dos términos:
- Proporcional: Este término es proporcional a cuánto es el centro de la matriz de sensor desde el centro de la línea
- Derivado: El valor de este término es según cómo mucho el sensor de matriz centro ha movido desde la última vez (su velocidad de cambio). Añadiendo este término a la fórmula hará que el robot de "predecir" eran la línea estará en la siguiente iteración que se provoca (si lo usamos correctamente) una enorme disminución de las oscilaciones.
Hay dos constantes, KP y KD que dice cuánto cada término afecta el comportamiento del robot. Prueba para conseguir a los mejores valores es parte del desarrollo del robot. El resultado de la fórmula será proporcional a la cantidad de energía se da a un motor que la otra. Si el resultado es positivo, probablemente motor A tiene más poder que la B, en el otro caso, motor B tendrá más poder que A.
He añadido en el término robot un tercer KR, que hace que si la velocidad del motor es negativa (que significa que va a revertir en forma), entonces la velocidad se multiplica por un factor. Esto no es necesario pero debido a las características de mis motores había debían agregar.
Ahora echa un vistazo al algoritmo de PID (que tiene la cosa de KR, pero usted puede ignorar)