Quiero controlar la velocidad de un motor utilizando el controlador PID. Mi problema es que el rango de PWM válido que puedo configurar en mi microcontrolador es de 0 a 199 pero mido la velocidad del motor (usando un codificador) en el rango de ~ 50 a 6000 RPM.
¿Cómo puedo intercambiar estos valores de manera significativa?
Ejemplo:
Establecí la velocidad objetivo a 6000 cuando el motor está a 0RPM. Luego comienza el PID y en ese momento el error es 6000 ... así que el PID da una salida máxima que será 32767. Pero solo puedo configurar el temporizador PWM de 0 a 200.
Estoy utilizando el código en la nota de aplicación AVR221 y allí todas las variables llevan un entero con signo ( sin puntos flotantes). Mi propio microcontrolador es stm32 que puede manejar puntos flotantes de manera eficiente, creo.