Régulateur PID, application concrète, Intégrale, dérivée

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
Akrobate
Messages: 3
Enregistré le: 19 Juil 2012, 16:49

Régulateur PID, application concrète, Intégrale, dérivée

par Akrobate » 19 Juil 2012, 17:46

Bonjour a tous,

Bon je me présente rapidement car c'est mon tout premier post sur ce forum =)

J'ai 27ans, j'habite à Paris, je suis de formation scientifique (Licence Informatique UPMC cursus MIME), actuellement informaticien développeur dans le domaine du web =)

Je suis un passionné d'informatique, éléctronique, un peu de modélisme, et robotique. Bon par contre je suis faché avec les maths depuis longtemps =) Etrangement pas du tout avec la physique ni l’électronique qui a un certain niveau ne sont plus que des mathématiques appliquées.

Bref, voila pour la présentation.

Alors maintenant mon problème. Je réalise actuellement un robot volant, quadricopter. J'ai evidement tout un tas de données, obtenues par les capteurs gyroscope (axes XYZ), acceleromètres (XYZ), alitimètre. Je voudrais donc dans un premier temps obtenir un vol stationnaire. L'idée est donc de répartir proprement les regimes des 4 moteurs.

Bon l'approche simple c'est de faire de la correction linéaire. Mais en faisant quelques recherches j'ai trouvé un concept bien plus optimisé pour faire tout ca : Le régulateur PID ( http://fr.wikipedia.org/wiki/R%C3%A9gulateur_PID ). Bon et c'est là que j'ai besoin de votre aide chers amis mathématiciens =)

pid = Proportionnel, intégrale, dérivée...

action Proportionnelle : l'erreur est multipliée par un gain G
action Intégrale : l'erreur est intégrée et divisée par un gain Ti
action Dérivée : l'erreur est dérivée et multipliée par un gain Td

Le premier ca va. Il s'agit de la correction linéaire donc je parlais... Mais maintenant "Integrer l'erreur" je ne comprends pas trop... De meme pour derriver l'erreur... Pour dériver il faut avoir une fonction a dériver... Dans mon cas j'ai des flux de données qui ne sont pas du tout des fonctions...

POurriez vous m'expliquer le fonctionnement de ce régulateur PID avec un exemple concret? et en fait c'est surtout le ID de PID qui me pose un soucis. =)

Merci bien a tous!



Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 19 Juil 2012, 18:09

salut,

pour l'intégrale, je présume qu'il faut considérer deux temps et
et calculer l'aire comprise entre est l'erreur au temps

avec le temps écoulé entre tes deux mesures.

quant à la dérivée, de la même manière, considérer que ca vaut
la vie est une fête :)

Black Jack

par Black Jack » 20 Juil 2012, 16:45

Pourquoi du PID ?

Et bien :

Dans un système bouclé, avec un P seul, c'est l'erreur qui est multipliée par le gain pour obtenir la tension de sortie (qui alimente par exemple un moteur).
Et donc, on a obligatoirement une erreur (donc une différence) entre la consigne et la sortie.

Pour supprimer cette erreur (statique), en plus d'une partie P dans la boucle de régulation, on peut introduire une partie I (intégration).
On intègre alors l'erreur dans la boucle et la sortie peut alors "coller" parfaitement à la consigne en "statique" ... puisque tant qu'il y a une erreur entre consigne et sortie, on corrige la sortie en intégrant l'erreur. L'intégration cesse d'elle même lorsque l'erreur est nulle.

Les corrections P et I ci-dessus induisent forcément toujours du retard (surtout la partie I) lorsque la consigne varie. La sortie met un temps plus ou moins long pour suivre la consigne.

C'est là qu'intervient la partie D de la boucle, on dérive l'erreur pour booster la vitesse de réaction nécessaire suite aux variations de la consigne. On arrive ainsi plus rapidement à la sortie nécessaire.

Une correction PID permet donc de diminuer (et même supprimer) l'erreur statique et permet une bonne vitesse de suivi de la consigne par la sortie.

Mais ceci est la belle partie du problème, il y a évidemment un revers à la médaille.

Les corrections PID introduisent du gain mais aussi de la phase dans le système ... Et cela peut provoquer des instabilités sérieuses du système bouclé.

On ne peut donc pas faire "n'importe quoi", il est presque toujours impératif d'étudier la stabilité du système (par exemple par les diagrammes de Bode ou de Nyquist ... ou en utilisant les transformées en Z si on veut en plus tenir compte du sampling du aux systèmes digitaux ou ...).

Et c'est là très souvent le noeud du problème, on doit être capable de trouver la fonction de transfert de la boucle en y incluant le PID mais aussi les pôles des moteurs (2 par moteurs, un pôle électrique et un pôle mécanique du à l'inertie) par exemple et ...) et puis étudier la stabilité.

... Eviter de penser que pour éviter une vraie étude de stabilité, on va essayer de modifier le PID au pif jusqu'à ce que cela marche, en ce faisant, on se casse en général le nez.

:zen:

Akrobate
Messages: 3
Enregistré le: 19 Juil 2012, 16:49

par Akrobate » 06 Aoû 2012, 11:12

Merci fatal_error, c'est vraiment plus clair. =) C'était tout simple en fait =) héhé

Black Jack, merci pour les infos en plus =) Bon si je comprends bien il faut bien trouver les bons coéfs impliqués dans la régulation, genre avoir des valeurs de l'importance de P, I et D dans l'équation calculés a l'avance.

J'avais une petite idée derriere la tete... Ne pourrait on pas imaginer un système à réseau de neurones simplistes pour "faire apprendre" ces valeurs au système? Je pensais à un algo combinant un réseau baysien (monocouche) et un algo de type apprentissage génétique/générationnel.

Qu'en pensez vous?

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite