Pregunta corta
¿Hay una forma común de manejar anomalías muy grandes (orden de magnitud) dentro de una región de control uniforme?
Antecedentes
Estoy trabajando en un algoritmo de control que impulsa un motor a través de una región de control generalmente uniforme. Sin carga / carga mínima, el control PID funciona muy bien (respuesta rápida, poco o ningún exceso). El problema con el que me encuentro es que generalmente habrá al menos una ubicación de alta carga. El usuario determina la posición durante la instalación, por lo que no hay una forma razonable de saber cuándo / dónde esperarla.
Cuando sintonizo el PID para manejar la ubicación de alta carga, causa grandes brotes excesivos en las áreas no cargadas (lo que esperaba completamente). Si bien está bien sobrepasar el recorrido medio, no hay paradas mecánicas en el gabinete. La falta de paradas duras significa que cualquier sobreimpulso significativo puede / hace que el brazo de control se desconecte del motor (produciendo una unidad muerta).
Cosas que estoy creando prototipos
- PID anidados (muy agresivo cuando está lejos del objetivo, conservador cuando está cerca)
- Ganancia fija cuando está lejos, PID cuando está cerca
- PID conservador (funciona sin carga) + un control externo que busca que el PID se detenga y aplique energía adicional hasta que: se alcance el objetivo o se detecte una velocidad de cambio rápida (es decir, abandone el área de alta carga)
Limitaciones
- Viaje completo definido
- No se pueden agregar paradas duras (en este momento)
- El error probablemente nunca se pondrá a cero
- La carga alta podría haberse obtenido a partir de un recorrido inferior al 10% (lo que significa que no hay "inicio de funcionamiento")