Contrôle anti-windup avec le bloc PID Controller
Cet exemple montre comment utiliser des mécanismes anti-windup pour empêcher tout wind-up d’intégration dans les contrôleurs PID lorsque les actionneurs sont saturés. Le bloc PID Controller de Simulink® dispose de deux méthodes anti-windup intégrées (back-calculation et clamping) ainsi que d’un mode de pistage pour gérer des scénarios industriels plus complexes. Le bloc PID Controller supporte plusieurs fonctionnalités qui lui permettent de gérer les problèmes de windup du contrôleur dans des scénarios industriels courants.
Le système physique à contrôler est un processus saturé de premier ordre avec temps mort.

Le bloc PID Controller comporte des paramètres réglés à l’aide de Simulink® Control Design™ PID Tuner pour lesquels la saturation est ignorée.
Le système physique contrôlé est un processus de premier ordre avec un temps mort décrit par
.
Le système physique présente des limites de saturation d’entrée connues de [-10, 10], qui sont prises en compte dans le bloc Saturation appelé Plant Actuator. Le bloc PID Controller de Simulink dispose de deux méthodes anti-windup intégrées qui lui permettent de prendre en compte les informations disponibles concernant la saturation d’entrée du système physique.
Performances en cas de non-utilisation de la fonction anti-windup
Tout d’abord, examinez l’effet de la saturation sur la boucle fermée lorsque le modèle de saturation n’est pas pris en compte par le bloc PID Controller. La simulation du modèle génère ces résultats. La figure montre la consigne par rapport à la sortie mesurée sans anti-windup.

La figure montre la sortie du contrôleur et l’entrée saturée sans anti-windup.

Ces figures mettent en évidence deux problèmes liés au contrôle d’un système présentant une saturation de l’entrée :
Lorsque la valeur de consigne est
10, le signal PID Control atteint un régime permanent à environ36.29, en dehors de la plage de l’actionneur. Le contrôleur fonctionne donc dans une région non linéaire où l’augmentation du signal de contrôle n’a aucun effet sur la sortie du système, condition connue sous le nom de wind-up. Notez que le gain statique du système physique est l’unité. Par conséquent, la sortie du contrôleur n’a pas besoin d’avoir un régime permanent dont la valeur se trouve en dehors de la plage de l’actionneur.Lorsque la valeur de consigne devient
5, un délai considérable s’écoule avant que la sortie du contrôleur PID ne revienne dans la plage de l’actionneur.
Le design du contrôleur PID pour tenir compte de l’effet de saturation améliore les performances du contrôleur en lui permettant de fonctionner dans la zone linéaire la plupart du temps et de se récupérer rapidement après une non-linéarité. Vous pouvez utiliser le mécanisme anti-windup pour cela.
Configurer le bloc pour la protection anti-windup basée sur le calcul rétroactif
La méthode anti-windup par calcul rétroactif utilise une boucle de renvoi pour dérouler l’intégrateur interne du bloc PID Controller lorsque le contrôleur atteint les limites de saturation spécifiées et passe en mode de fonctionnement non linéaire. Pour activer la fonction anti-windup, accédez à l’onglet Output Saturation dans la boîte de dialogue des blocs. Sélectionnez Limit output et saisissez les limites de saturation pour le système physique. Ensuite, dans la liste Anti-windup method, sélectionnez back-calculation. Enfin, spécifiez une valeur pour Back-calculation coefficient (Kb). L’inverse de ce gain est la constante de temps de la boucle anti-windup. Dans cet exemple, le gain de calcul rétroactif est défini sur 1. Pour plus d’informations sur la manière de choisir cette valeur, consultez [1].

Une fois le calcul rétroactif activé, le bloc dispose d’une boucle de pistage interne qui déroule la sortie Integrator. Cette figure montre la vue interne du bloc PID Controller avec calcul rétroactif.

Remarquez la rapidité avec laquelle le signal PID Control revient dans la région linéaire et la vitesse à laquelle la boucle se récupère après une saturation.


La sortie de contrôleur u(t) et l’entrée saturée SAT(u) coïncident, car la fonction Limit output est activée.

Pour mieux visualiser l’effet de l’anti-windup, cette figure illustre la sortie y(t) mesurée pour le système physique avec et sans anti-windup.

Configurer le bloc pour la protection anti-windup basée sur le blocage de l’intégrateur
Une autre stratégie anti-windup courante repose sur l’intégration conditionnelle. Pour activer la fonction anti-windup, dans la boîte de dialogue Paramètres de bloc, sélectionnez l’onglet Saturation. Sélectionnez Limit output et saisissez les limites de saturation pour le système physique. Ensuite, dans la liste Anti-windup method, sélectionnez clamping.
Cette figure montre la consigne par rapport à la sortie mesurée sans blocage.

Cette figure montre que la sortie de contrôleur u(t) et l’entrée saturée SAT(u) coïncident, car la fonction Limit output est activée.

Pour plus d’informations sur l’utilisation du blocage, consultez [1].
Utiliser le mode de pistage pour gérer les scénarios complexes d’anti-windup
Les stratégies anti-windup évoquées jusqu’à présent s’appuient sur des méthodes intégrées pour traiter les informations de saturation fournies au bloc via sa boîte de dialogue. Pour que ces techniques intégrées fonctionnent comme prévu, deux conditions doivent être remplies :
Les limites de saturation du système physique sont connues et peuvent être saisies dans la boîte de dialogue du bloc.
Le signal de sortie du bloc PID Controller est le seul signal introduit dans l’actionneur.
Ces conditions peuvent être restrictives dans le cadre de scénarios anti-windup généraux. Le bloc PID Controller dispose d’un mode de pistage grâce auquel vous pouvez configurer en externe une boucle anti-windup à calcul rétroactif. Les deux exemples suivants illustrent l’utilisation du mode de pistage à des fins d’anti-windup :
Anti-windup pour des actionneurs saturés avec dynamique en cascade
Anti-windup pour le contrôle PID avec feedforward
Construire un schéma anti-windup pour des actionneurs saturés avec dynamique en cascade
L’actionneur dans sldemo_antiwindupactuator inclut des dynamiques complexes. Les dynamiques complexes sont courantes lorsqu’un actionneur possède sa propre dynamique de boucle fermée. Le contrôleur PID se trouve dans une boucle externe et considère la dynamique de l’actionneur comme une boucle interne, également appelée dynamique saturée en cascade.

Une stratégie anti-windup efficace nécessite de renvoyer la sortie de l’actionneur au port de pistage du bloc PID Controller. Pour configurer le tracking mode du bloc PID Controller, dans la boîte de dialogue Paramètres, cliquez sur l’onglet Initialization. Sélectionnez Enable tracking mode et spécifiez le gain Kt. L’inverse de ce gain est la constante de temps de la boucle de pistage. Pour plus d’informations sur la manière de choisir ce gain, consultez [1].
La sortie mesurée du système physique y(t) et la sortie de contrôleur u(t) répondent presque immédiatement aux modifications apportées à cette consigne. Sans mécanisme anti-windup, les délais de ces réponses sont élevés.


Schéma anti-windup pour le contrôle PID avec feedforward
Dans une autre configuration de contrôle courante, l’actionneur reçoit un signal de contrôle qui est une combinaison d’un signal PID Control et d’un signal de contrôle feedforward. Ouvrez le modèle sldemo_antiwindupfeedforward.
Pour construire avec précision une boucle anti-windup de calcul rétroactif, le signal de pistage doit soustraire la contribution du signal feedforward. Cette action permet au bloc PID Controller de connaître sa part du signal de contrôle effectif appliqué à l’actionneur.

Le gain feedforward est l’unité ici, car le système physique a un gain statique de 1.
La sortie mesurée du système physique y(t) et la sortie de contrôleur u(t) répondent presque immédiatement aux modifications apportées à cette consigne. Lorsque la valeur de la consigne est 10, notez comment la sortie de contrôleur u(t) diminue pour être comprise dans la plage de l’actionneur.

Lorsque la valeur de la consigne est 10, notez comment la sortie de contrôleur u(t) diminue pour être comprise dans la plage de l’actionneur.

Cette figure montre la sortie PID Controller et l’entrée feedforward avec anti-windup.

Références
[1] Åström, Karl J., and Tore Hägglund. Advanced PID Control. Triangle Park, NC: International Society of Automation, 2006.