Paso 12: Métodos de Control
Motores paso a paso se funcionan normalmente de una manera absoluta, donde la cantidad de pasos enviados al motor se realiza un seguimiento para determinar el movimiento del motor. Este procedimiento tiene dos cualidades no deseadas. Lo más obvio se pierde pasos. Si el motor encuentra con una carga suficiente para detener el movimiento, la posición real se pierde, como los pasos ordenados ya no coinciden con la ubicación de los motores. El problema menos obvio es que produce y contando pasos motor al utilizar microstepping a altas velocidades. Un motor paso a paso típico tiene 200 pasos para una revolución completa. Esto se traduce en 6400 pasos para una revolución completa si utilizando 32 controladores micropasos. Cuando los motores en marcha a 300 RPM, una potencia de 32000 pasos por segundo se necesitan por motor. Tres motores corrientes daría como resultado casi 200K lógica cambios por segundo. Hacer este nivel de procesamiento en tiempo real en un microcontrolador de 8 bits de 16MHz no deja espacio libre para otras tareas.
La solución es descargar la generación paso a temporizadores nivel hardware y comparar los registros durante el uso de codificadores en los motores para medir directamente el movimiento. Un sistema de lazo cerrado puede ser configurado con el valor de entrada que representa la diferencia entre un motor ángulo y el ángulo medido desde el codificador. La salida del lazo de control entonces establecería RPM del motor. El tren de pulsos necesaria se genera de tres temporizadores de 16 bits hardware con tres registros de comparación. Los temporizadores son configurados sin previo ajuste de escala produciendo una tasa de cuenta de 16 MHz que se reinicia cuando la cuenta es igual a la comparación. Un pin de salida correspondiente se activa reset de contador de tiempo, generando un tren de pulso necesario para mover el motor paso a paso. La frecuencia del tren de pulso se establece por el tamaño del registro compara y determina las RPM del motor. Escalado salida del lazo de control de motor paso a paso ahora puede ser alimentado en el registro de comparación para ajustar motor RPM. Con este método, toda generación de señal motor paso a paso se logra a nivel hardware dejando el microcontrolador libre para otras tareas.
Un lazo de control proporcional derivada (PD) se implementa con el fin de lograr posicionamiento básico bola. Un componente integral fue añadido, pero no necesario. El término proporcional en el bucle de control es simplemente la diferencia entre la ordenada y la bola medido multiplicado por una ganancia proporcional. El término proporcional resultados en suave movimiento del ángulo de la placa, como cambios de ubicación de la bola normalmente resultan en un gran número. Esto no es cierto cuando el primer cálculo de un simple orden derivado dx ≈ [x(i) − x(i−1)] /h como movimiento de la bola entre las mediciones es pequeño con ruido relativamente grande. El comportamiento se puede mejorar aumentando el tiempo entre mediciones, pero entonces el tiempo de respuesta del sistema se convierte en grande. La solución es utilizar más de la historia de bolas para predecir mejor la velocidad de la corriente. Una buena aproximación para el movimiento de bolas es aceleración constante como ángulo de la placa no está cambiando rabiosamente. Una segunda orden exacta de la plantilla usando solamente más allá de las mediciones para predecir el derivado actual se desea. La plantilla debe tener comportamiento de ruido buen rechazo y tiempo de respuesta. Pavel Holoborodko ha publicado la lista de plantillas para una estimación derivado echó a un lado de que fue seleccionada una plantilla de 16 puntos. El derivado resultante es considerablemente más suave que el simple caso manteniendo el tiempo de respuesta de buen sistema.
Componentes proporcionales y derivativos se suman tal que la parte proporcional inclina la placa para acelerar la bola hacia el sistema y el componente derivado inclina la placa para hacer más lento el movimiento de bolas. La magnitud de cada valor se puede establecer mediante el ajuste de los valores de ganancia hasta que el sistema está críticamente amortiguado.
Ángulos de la plataforma que representa la inclinación X e Y deben transformarse en los tres ángulos de motor paso a paso. El eje X y Y se proyectan en los tres ejes motor para determinar las ponderaciones de mando. Este enfoque es sólo una aproximación del comportamiento deseado pero funciona según sea necesario.
Se necesitan tasas de ejecución de código consistente. Esto se logra mediante el uso de una rutina de interrupción que provoca cada 1ms de Timer0. Indicadores de ejecución de código se activan en la rutina de interrupción que permite diferentes porciones del código a ejecutar.