Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Capteurs et régulateur proportionnel

Après cette leçon: Je peux simuler un régulateur qui amène une articulation sur sa cible.

Leçon de 70 min2 commandesLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Comment un bras atteint-il une position voulue ?

Un régulateur proportionnel corrige une articulation en proportion de l’erreur mesurée par un capteur. C’est la façon la plus simple de faire atteindre une position voulue à un moteur.

Vous allez simuler cette boucle sur une articulation, voir quand elle dépasse la cible, et trouver le moment où elle se stabilise.

À la fin de cette leçon

Remarque

Je peux simuler un régulateur qui amène une articulation sur sa cible.

Mots clés

MotCe que ça veut direExemple
Capteurun appareil qui mesure, comme l’angle d’une articulation
Consignela position que l’on veut atteindre90 degrés
Erreurl’écart entre la consigne et la position mesurée
Gainle nombre par lequel on multiplie l’erreur0.5
Dépassementde combien la position passe au-delà de la consigne

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Le régulateur corrige l’erreur pas à pas

Le capteur mesure la position. L’erreur est la consigne moins la position. À chaque pas, on ajoute à la position le gain multiplié par l’erreur.

Loin de la cible, l’erreur est grande et le pas aussi. Près de la cible, l’erreur et le pas diminuent : c’est ce qu’on appelle un régulateur proportionnel.

Exemple travaillé : consigne 10, gain 0,5

PasPositionErreurCorrection
00105
1552,5
27,52,51,25
38,751,250,625
49,3750,6250,3125

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Cinq positions avec un gain de 0,5

Commande
docker exec jupyter python3 -c "print([10 * (1 - 0.5 ** n) for n in range(5)])"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Un gain trop grand fait dépasser la consigne

Avec un gain supérieur à 1, la correction est plus grande que l’erreur. La position passe donc au-delà de la consigne : c’est le dépassement.

Pour une consigne de 90 et un gain de 1,5, la position va à 135, soit un dépassement de 45. Elle revient ensuite en oscillant.

Cinq positions avec un gain de 1,5

Commande
docker exec jupyter python3 -c "print([90 * (1 - (-0.5) ** n) for n in range(5)])"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

La boucle de régulation en Python

Code: python
cible = 90
gain = 1.5
position = 0

for pas in range(6):
    print(pas, round(position, 3))
    position = position + gain * (cible - position)
# Passez gain à 0.5 puis relancez.

Un gain trop haut rend la boucle instable

Un gain de 1 atteint la consigne en un pas. Entre 0 et 1, la position approche sans dépasser. Entre 1 et 2, elle dépasse puis se stabilise.

À 2, elle oscille sans fin. Au-delà, l’oscillation grandit : le régulateur est instable.

Exemple travaillé : quatre gains, consigne 10

GainPositions successivesComportement
0,50 ; 5 ; 7,5 ; 8,75Approche sans dépasser
10 ; 10 ; 10 ; 10Arrive en un pas
1,50 ; 15 ; 7,5 ; 11,25Dépasse puis se stabilise
20 ; 20 ; 0 ; 20Oscille sans fin

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une erreur fréquente

Attention

Beaucoup croient qu’un gain plus grand atteint toujours la consigne plus vite. C’est vrai jusqu’à 1. Au-delà, la position dépasse, et à 2 elle ne se stabilise jamais : baissez le gain.

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.