Que sont les algorithmes et comment sont-ils utilisés dans l'ingénierie de contrôle ?

31 Mai 2024
Tout le monde a entendu parler de l'"algorithme de Google" et d'autres algorithmes de médias sociaux utilisés pour trouver le contenu le plus intéressant pour chaque personne. Mais qu'est-ce que cela signifie réellement ? Comment cela fonctionne-t-il et que se passe-t-il à l'intérieur de votre ordinateur ?
Working at a computer

Tout le monde a entendu parler de l'"algorithme Google" et d'autres algorithmes que les réseaux sociaux utilisent pour trouver le contenu le plus intéressant pour chaque individu. Ces algorithmes (Google, Facebook, Tik Tok, etc.) se comportent comme un bibliothécaire virtuel, qui sélectionne les meilleures choses à voir ou à lire. Ce bibliothécaire intelligent sait quels livres vous avez lus dans le passé, il sait quel livre vous êtes en train de choisir, et il dispose d'informations sur les nouvelles choses qui vous intéresseront dans le futur. Grâce à ces connaissances, il peut vous recommander les livres, les magazines et les vidéos qui vous intéresseront probablement. 

Un algorithme est, en général, un ensemble d'instructions ou de règles détaillés pour résoudre un problème ou effectuer une tâche. Selon cette définition simple, une recette dans un livre de cuisine est un algorithme, de même qu'un processus commercial, un programme logiciel ou un organigramme.

Les mathématiciens et les ingénieurs considèrent généralement qu'un algorithme est un ensemble d'étapes logiques et clairement définies dans un processus de calcul. Les algorithmes sont utilisés dans de nombreux domaines, tels que l'informatique, les mathématiques et la vie quotidienne, pour rendre les processus et les tâches plus efficaces.

Exemples simples d'algorithmes

Un algorithme très simple consiste à calculer S, la somme de deux nombres, X et Y.

  Démarrer le processus :

  Additionner X et Y pour calculer S (c'est-à-dire X+Y = S)

  Arrêter le processus.

Un exemple plus sophistiqué est un algorithme utilisé pour déterminer si un nombre donné (N) est un nombre premier :

  Démarrer le processus :

  Diviser le nombre (N) par 2, puis

  Diviser le nombre (N) par 3, puis

  ... continuer le processus, jusqu'à ce que finalement...

  Diviser le nombre (N) par N-1

  Si aucun de ces calculs n'aboutit à un nombre entier, alors N est premier.

  Arrêter le processus.

(Note : dans la pratique, ne calculer que jusqu'à √N)

Un autre type d'algorithme est une déclaration logique, telle que "si quelque chose est vrai, alors faites la tâche A" ; et "si cette chose est fausse, alors faites la tâche B". Par exemple : "si vous êtes coupable, vous irez en prison"; et "si vous êtes innocent, vous serez libre".

  Démarrer le processus :

  •  Vous êtes coupable ? Répondez "oui" et vous irez en prison.
  •  Vous êtes coupable ? Répondez "non" ; vous êtes alors libre.

  Arrêter le processus.

L'utilisation d'algorithmes dans l'ingénierie de contrôle

Image
lady changing a thermostat

Examinons l'utilisation des algorithmes dans l'ingénierie de contrôle, en commençant par la commande "marche/arrêt".

Par exemple, la température d'une pièce peut être contrôlée par un thermostat à l'aide d'un simple algorithme de commande marche/arrêt :

  • Si la pièce est trop chaude, éteignez le chauffage.
  • Si la pièce est trop froide, allumez le chauffage.

Ce type de contrôle s'apparente à l'algorithme "aller en prison" : Si A est vrai, faire X ; si B est vrai, faire Y, comme décrit ci-dessus. Il s'agit d'un algorithme de contrôle "marche/arrêt" car le chauffage (dans ce cas) est soit entièrement activé, soit entièrement désactivé jusqu'à ce que l'état désiré (température) soit atteint.

Algorithme de contrôle proportionnel

Un autre algorithme simple, appelé contrôle proportionnel, est utilisé, par exemple, dans le contrôle automatique de la vitesse d'un véhicule par l'ouverture et la fermeture de l'accélérateur :

Image
graph showing error
Proportional control algorithm
  • Si la vitesse réelle est trop faible, ouvrir partiellement les gaz ; et
  • Si la vitesse réelle est trop élevée, fermer partiellement l'accélérateur.

La différence entre la vitesse souhaitée et la vitesse réelle est appelée erreur (ε), comme indiqué à droite. Cette erreur (ε) varie en fonction de l'évolution de la vitesse réelle dans le temps. Elle est bien sûr nulle lorsque la vitesse réelle est égale à la vitesse souhaitée.

 

 

 

 

 

Image
Working of the speed controller
La vitesse réelle à tout moment est renvoyée au régulateur de vitesse.

La vitesse réelle à tout moment est renvoyée au régulateur de vitesse (comme indiqué à gauche), qui calcule alors la différence (erreur ε) entre la vitesse réelle et la vitesse souhaitée, puis ouvre l'accélérateur "proportionnellement" à l'importance de cette erreur (ε) : si l'erreur est importante, l'accélérateur doit être ouvert en grand ; si l'erreur est faible, l'accélérateur doit être ouvert en petit.

 

Les algorithmes de contrôle proportionnel, qui augmentent ou diminuent l'entrée d'un système (dans ce cas, le véhicule) proportionnellement à l'erreur, fonctionnent bien dans de nombreux cas. Cependant, il peut y avoir des problèmes qui nécessitent un algorithme de contrôle plus sophistiqué. Par exemple, avec un algorithme de contrôle proportionnel, il peut y avoir de grandes variations, ou des dépassements, avant de converger vers la vitesse souhaitée. Il peut également y avoir une erreur à long terme, ou décalage, entre la vitesse souhaitée et la vitesse réelle, qui ne disparaît jamais.

Image
Speed control with P (Proportional) algorithm
Régulation de vitesse avec algorithme P (Proportionnel)

Contrôle avec l'algorithme PID

Dans certains systèmes de contrôle, ces problèmes sont importants et un algorithme plus sophistiqué, appelé algorithme PID (Proportionnel, Intégral, Différentiel), est nécessaire. Sans entrer dans les mathématiques, l'algorithme PID se comporte comme le bibliothécaire virtuel, en ce sens qu'il tient compte du présent, du passé et de l'état futur d'un système.

La partie "proportionnelle" de l'algorithme représente le présent : c'est-à-dire que le contrôleur ouvre l'accélérateur proportionnellement à l'erreur actuelle : c'est-à-dire proportionnellement à la différence actuelle entre la vitesse réelle et la vitesse souhaitée.

La partie "intégrale" de l'algorithme réagit en fonction du passé : elle additionne les erreurs du passé et procède à de petits ajustements supplémentaires de l'ouverture de l’accélérateur de manière à ce que la sortie converge précisément vers la vitesse souhaitée, sans erreur finale de décalage.

La partie "différentielle" de l'algorithme représente l'avenir : elle vérifie si l'erreur évolue si rapidement que le système va dépasser la valeur de sortie souhaitée, puis elle procède à des ajustements supplémentaires correspondants de l'ouverture de l’accélérateur.

Ici (dans la figure ci-dessous), nous voyons le résultat du contrôle de la vitesse avec un algorithme PID. Il n'y a pas de grandes variations ou de dépassements. La vitesse converge vers la vitesse souhaitée, avec précision et en douceur, et il n'y a pas d'erreur de décalage final. 

Image
Speed control with PID algorithm.  (Proportional, Integral, Differential)
Contrôle de la vitesse avec l'algorithme PID.  (Proportionnel, Intégral, Différentiel)

Il existe d'autres algorithmes beaucoup plus sophistiqués qui s'appliquent dans des situations complexes, comme le contrôle d'un bras robotisé dans une usine, où il y a plusieurs sorties à contrôler, ou des systèmes pour lesquels il n'y a pas une seule sortie correcte, un peu comme les algorithmes des médias sociaux, où l'on cherche simplement une bonne solution.

 

By Jonathan Copley