Tengo un sistema con los siguientes argumentos (el cliente proporciona el motor de Brushed DC, por lo que no puede cambiarlo):
- Control PWM controlado por puente H que opera a 10kHz
- Motor de CC cepillado de 12 V ensamblado con engranajes de 1:11 máx. 1650 RPM en el eje del motor (150 RPM después del engranaje)
- Rango de RPM esperado (por mi cliente): 20 - 1600 RPM (eje del motor)
- no hay comentarios actuales
- medición de velocidad: codificador rotatorio 400 Pulso / Ciclo
Intenté controlar el sistema con la estructura PID, pero entre rangos de 20 a 300 RPM los resultados son de muy mala calidad (tengo 4 configuraciones PID distintas para todo el rango de velocidad). A veces, el motor se detiene para moverse, entonces (supongo) el integrador aumenta la salida, lo que resulta en una carrera de alta velocidad, que se detiene de nuevo ... Me han completado algunas mediciones sin el control de bucle cerrado y descubrí que el motor se detiene alrededor de 100 RPM medidas (la señal del controlador era más grande)
¿Alguien puede ayudarme / sugerir algo? ¿Cómo puedo mejorar el rendimiento en un rango tan bajo?
Saludos, Toth, Norbert
Editar:
La medición de la velocidad se realizó mediante la interfaz del codificador de cuadratura del procesador, que cuenta los pulsos entrantes durante un período de tiempo determinado (en mi caso es de 20 ms), por lo que obtendrá una relación impulso / tiempo
Realicé algunas mediciones en bucle abierto sin ningún comentario, pero el RPM medido se imprimió a través de la línea serie. Durante esto, generé una señal ejecutora que pertenecía a 500 RPM y se redujo en 10 (RPM) en cada 3 segundos, hasta que la señal medida no es 0. Como resultado, el motor se detiene para moverse alrededor de 70-130 RPM