Comment configurer un PID-Control si les constantes de temps du système contrôlé sont variables?


9

La description courante d'un contrôleur PID continu est écrite comme ceci:

y(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dt
Le meilleur La valeur des constantes Kp , Ki et Kd pour un système contrôlé donné dépendra de sa ou ses constantes de temps, qu'il s'agisse d'un système PT1 , ou PT2 , etc. ...

Que faites-vous si la constante de temps d'un tel système est variable. Disons que cela varie entre Ta et Tb ( Ta<Tb ). Comment concevez-vous les constantes PID?

Réponses:


8

Une façon serait de mettre en œuvre une forme de contrôle adaptatif. Si votre plage de constantes de temps est petite et connue, vous pouvez utiliser quelque chose appelé "planification de gain" où vous déterminez à l'avance toutes les constantes de temps que vous allez traiter (avec un peu de chance, c'est fini) et utilisez la logique if / then pour définir PI et D. Il peut être difficile de s'assurer que vous avez couvert suffisamment de variabilité pour garantir la stabilité et les performances sur toute la gamme. L'hélicoptère Chinook est une bonne réussite pour la programmation des gains. Ça peut être fait.

Si vous ne disposez pas d'une prédiction réalisable pour ce que seront les constantes de temps, vous pouvez envisager d'utiliser le modèle de contrôle adaptatif de référence (MRAC). Dans ce schéma de contrôle, vous avez un modèle de référence (votre système idéal) avec votre contrôleur PID choisi. Le MRAC minimise l'erreur entre ce que fait réellement l'usine et ce que fait votre modèle de référence. De cette façon, vous forcez votre usine à changer à agir comme votre modèle LTI.

Ou vous pouvez essayer d'utiliser le contrôleur d'identification de modèle (MIAC). Ici, le schéma de contrôle effectue l'identification du système en temps réel et utilise une loi de mise à jour pour votre contrôleur. Celui-ci nécessite la compétence la plus avancée des trois idées.

Étant donné que votre système modifie les constantes de temps au fil du temps, il n'est plus LTI. Cela signifie que vous devez soit effectuer une planification du gain (assez facile si vous connaissez la plage de constantes de temps) ou une identification du système avec une loi de mise à jour pour votre PID.


pourquoi ne pas égaliser dynamiquement les pas de temps en concevant pour le plus grand pas de temps et en rendant le logiciel quasi-temps réel en attendant à chaque itération avant de soumettre des commandes d'actionneur?
Gürkan Çetin

@ GürkanÇetin qu'attend le logiciel? Pouvez-vous m'aider à comprendre ce qui se passe lorsque le logiciel retarde délibérément une mise à jour de contrôle?
willpower2727

Si je comprends bien, il y a un délai inconnu à chaque boucle des itérations de calcul (c'est-à-dire à cause des communications d'E / S ou d'autres tâches CPU.) Il s'agit d'un problème général sur une cible non temps réel (OS). Donc, régler le contrôleur pour un delta_t prédéterminé (long) (disons 100 ms), puis à chaque itération, essayer d'ajuster le temps de boucle total à ce delta_t (supposons que les algorithmes de contrôle soient terminés à la 80e msec, attendez 20 ms supplémentaires ) pour soumettre les commandes de contrôle; pourrait fonctionner, si l'on sait que toutes les autres tâches prennent moins de 100 ms (moins le temps de calcul de la loi de commande).
Gürkan Çetin

@ GürkanÇetin si je comprends bien la question d'origine, la question est de savoir comment contrôler quand les aspects physiques d'une usine changent au fil du temps (c.-à-d. Que la fusée perd de la masse au fil du temps), pas comment gérer les temps d'exécution de boucle d'exploitation en temps non réel. Je pense que votre suggestion pourrait être valable, en termes de traitement d'un système d'exploitation en temps non réel exécutant un contrôleur.
willpower2727

Oh oui. Je me suis trompé de question. Dans ce cas, si la plante évolue dans le temps (abrupte ou progressive), je dirais que la reconfiguration est une autre possibilité. Bien sûr, ne fonctionne que si vous connaissez le changement de dynamique du modèle. Comme perdre de la masse, dépenser du carburant, extraire / rétracter les trains d'atterrissage, etc.
Gürkan Çetin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.