Quelles sont les bonnes stratégies pour régler les boucles PID?

Je vais essayer de développer un peu de mon expérience pour ceux qui pourraient être intéressés. Je pense que le problème est que nous avons beaucoup de théorie du contrôle qui est quelque peu inaccessible (et parfois pas utile) et ensuite nous avons des règles empiriques qui font des hypothèses sur les systèmes qui sont souvent inexactes.

Stabilité

Parlons d’abord de la raison pour laquelle les boucles de contrôle deviennent instables. Pour cette discussion, je vais supposer un système linéaire. De manière informelle, cela signifie que si votre signal de commande est une onde sinusoïdale à une fréquence donnée, alors votre sortie observée est à la même fréquence et si vous modifiez l’amplitude de votre système de commande, votre sortie répond au même rapport. Cette hypothèse est une bonne approximation pour de nombreux systèmes du monde réel et nous permet d’examiner différentes fréquences de manière isolée.

Si vous regardez le chemin de contrôle, vous avez un point de consigne, votre contrôleur PID, votre système (alias « Usine »), puis votre capteur. Imaginez un point de consigne fixe et une onde sinusoïdale provenant de votre capteur (ceci est égal à une perturbation du monde réel au niveau du capteur, réinjectée). Dans un système instable, la rétroaction fait en sorte que la boucle de contrôle amplifie l’erreur au lieu de la réduire, de sorte que l’amplitude augmente avec le temps. La raison pour laquelle cela se produit est due à un retard ou, pour cette fréquence particulière, à un déphasage entre l’entrée et la sortie. Pour une fréquence donnée, nous pouvons examiner ce déphasage en boucle ouverte (c’est-à-dire sans rétroaction) et l’amplitude de la sortie et lorsque nous traçons tous ces éléments sur un graphique, nous obtenons quelque chose comme un diagramme de Bode. Si nous avons une situation dans ce graphique en boucle ouverte où l’erreur continue à s’amplifier, alors nous avons un système instable. Si le retard est inférieur à la moitié de la longueur d’onde ou si le gain est inférieur à x1, le système est stable. Dans la pratique, nous voulons une certaine marge à partir de ce point (marge de gain et marge de phase), c’est pourquoi vous verrez ce « recul » dans de nombreuses méthodes manuelles/heuristiques.

Le principal problème avec ces méthodes manuelles est que vous volez à l’aveugle et que vous êtes à peu près garanti d’obtenir un mauvais système de contrôle.

Gardez également à l’esprit que la signification de P, I et D est liée à ce que votre capteur mesure et au contrôle que vous appliquez. Une erreur commune dans les contrôleurs maison est que les gens pensent qu’ils appliquent P alors qu’ils ne le font pas en réalité. Les contrôleurs de moteur ont souvent une boucle de position, fonctionnant sur une boucle de vitesse fonctionnant sur une boucle de couple. (Une cascade)

OK mais en quoi cela nous aide-t-il ?

Le premier point que j’aimerais aborder est que si vous construisez votre propre contrôleur PID, vous devriez également construire un moyen de mesurer la réponse en boucle ouverte. Faites un balayage de fréquence à l’entrée de votre contrôleur et mesurez la sortie du capteur avec la rétroaction déconnectée. Vous pouvez alors dessiner le diagramme de Bode en boucle ouverte et voir pourquoi votre système est stable et être capable d’échanger les différents contrôles. Il est également utile de mesurer la réponse en boucle fermée et vous pouvez le faire avec n’importe quel système en effectuant un balayage de fréquence de votre point de consigne pendant que la boucle est fermée. Ces deux opérations ne sont pas si difficiles et ne nécessitent pas beaucoup de connaissances théoriques.

Si vous vous contentez de régler les commandes sans comprendre ce qui se passe sous le capot, vous ne serez pas en mesure d’optimiser votre système. Construire une certaine intuition sur ces systèmes n’est pas si difficile. Par exemple, le gain proportionnel n’a aucun effet sur la phase mais augmente simplement le gain en boucle ouverte sur toutes les fréquences. Donc ce que vous faites lorsque vous augmentez le gain proportionnel dans toutes ces méthodes de réglage manuel est de trouver la fréquence où la phase atteint -180. Voyez ceci pour avoir une idée plus précise de l’impact des différents contrôles sur votre réponse en fréquence.

Bien souvent, obtenir les meilleures performances en boucle fermée implique de régler le système et pas seulement les gains des contrôleurs. Ce que vous voulez, c’est rendre le système aussi « rigide » que possible. Cela vous permettra de monter en puissance les paramètres de contrôle et d’obtenir la meilleure bande passante en boucle ouverte et fermée. D’après mon expérience dans les applications de commande de moteur, le gain proportionnel est celui qui doit faire le plus gros du « travail » et l’intégrateur le « reste ». Je ne pense pas que vous ayez besoin d’un terme D du tout. Avoir un filtre passe-bas et un filtre coupe-bande aide beaucoup dans les situations où vous pouvez avoir une certaine résonance mécanique, mais les régler sans un tracé de Bode est très difficile (la fréquence d’oscillation que vous observez en boucle fermée peut être différente de celle en boucle ouverte).

Si la sécurité est une préoccupation (moteurs très puissants ou un système qui pourrait être détruit par le moteur hors de contrôle), vous devez mettre des limites avant de commencer le réglage (par exemple, limite de courant, erreur de position maximale) pour protéger le système. Ensuite, vous devez avoir une idée de la plage des paramètres. Si votre retour a 40 comptes par rotation ou 4000 comptes par rotation, vos paramètres seront un facteur de 100 pour un système donné. Mon approche serait de trouver d’abord une plage dans laquelle vous avez une mauvaise contrôlabilité, puis d’augmenter à partir de là en commençant par P et ensuite I (bien qu’encore une fois vous volez à l’aveugle). Le fait de reculer crée cette marge de stabilité.

Au delà de la boucle fermée

La boucle fermée tente d’éliminer l’erreur du système. Il aura toujours une performance quelque peu limitée. Ce que vous voulez faire, c’est minimiser l’erreur que votre contrôleur en boucle fermée voit et une façon de le faire est par une technique appelée feed forward. Dans ce cas, vous contournez le contrôleur et envoyez une commande directement au système. Un exemple de cela serait l’anticipation de l’accélération. Si vous connaissez la constante de couple de votre moteur et que vous connaissez la charge, vous pouvez dire à peu près combien de courant vous devez envoyer pour obtenir une certaine accélération de la charge. Il suffit de prendre l’accélération de la commande d’entrée, de la multiplier par une constante et de l’ajouter à la commande d’entraînement du contrôleur. En fait, vous faites ce qu’il faudrait pour piloter le système s’il n’y avait pas de contrôleur. Plus vous vous rapprochez de cette valeur, moins votre boucle doit absorber d’erreurs et plus votre système sera performant. Cela fait une énorme différence dans la pratique.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *