Question courte
Existe-t-il un moyen commun de traiter de très grandes anomalies (ordre de grandeur) dans une région de contrôle autrement uniforme?
Contexte
Je travaille sur un algorithme de contrôle qui entraîne un moteur dans une région de contrôle généralement uniforme. Sans charge / minimale, le contrôle PID fonctionne très bien (réponse rapide, peu ou pas de dépassement). Le problème que je rencontre est qu'il y aura généralement au moins un emplacement à charge élevée. La position est déterminée par l'utilisateur lors de l'installation, il n'y a donc aucun moyen raisonnable pour moi de savoir quand / où l'attendre.
Lorsque j'accorde le PID pour gérer l'emplacement de charge élevée, cela provoque de grandes prises de vue sur les zones non chargées (ce à quoi je m'attendais). Bien qu'il soit OK de dépasser la mi-course, il n'y a pas d'arrêts mécaniques durs sur le boîtier. L'absence d'arrêts durs signifie que tout dépassement important peut / entraîne la déconnexion du bras de commande du moteur (entraînant une unité morte).
Choses que je prototypage
- PID imbriqués (très agressifs lorsqu'ils sont loin de la cible, conservateurs lorsqu'ils sont proches)
- Gain fixe à distance, PID à proximité
- PID conservateur (fonctionne sans charge) + un contrôle externe qui recherche le PID pour caler et appliquer de l'énergie supplémentaire jusqu'à ce que: l'objectif soit atteint ou un taux de changement rapide soit détecté (c'est-à-dire quitter la zone de charge élevée)
Limites
- Voyage complet défini
- Les arrêts fixes ne peuvent pas être ajoutés (à ce stade)
- L'erreur ne sera probablement jamais remise à zéro
- La charge élevée aurait pu être obtenue à partir d'une course inférieure à 10% (ce qui signifie pas de "démarrage en cours")