Cours d'Automatique : les asservissements continus
Chapitre 1. Généralités
Chapitre 2. Transformation de Laplace
Chapitre 3. Réponse Temporelle des Systèmes Linéaires
Chapitre 4. Réponse Fréquentielle ou Harmonique des Systèmes Linéaires
Chapitre 5. Représentations des fonctions de transfert
Chapitre 6. Systèmes Bouclés
6.1. Généralités - Fonction de transfert en boucle fermée
6.2. Stabilité de la boucle
6.3. Marges de stabilité (amortissement du système bouclé)
6.4. Abaque de Black
6.5. Précision des asservissements
6.6. Vélocité des asservissements
6.7. Sensibilité aux perturbations
Chapitre 7. Amélioration des performances - Correcteurs PI, PD, PID, PIR, spécifique
Annexe: Réponses d'un asservissement
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

6.5. Précision des asservissements

La qualité précision est la plus facile à étudier. En effet il s'agit d'étudier la valeur de l'erreur e(t) en régime permanent.
Grâce au théorème de la valeur finale (chapitre 2 paragraphe 2.6) il sera aisé de calculer l'erreur permanente en réponse à une consigne donnée. De plus c'est grâce à ce théorème qu'on peut généraliser les résultats.
Nous allons déterminer cette erreur finale en réponse aux trois fonctions canoniques: échelons de position, de vitesse et d'accélération.

Cette fois nous nous intéressons à l'erreur e(t) dont l'image est e(p).
La fonction de transfert e(p) / Ve(p) est (application de la règle de Mason):
 e / Ve = 1 / [1 + T(p)]     avec  T(p) = n(p) / d(p)  donc:
 e / Ve = d(p) / [n(p) + d(p)]  d'où:
 e(p) = [Ve(p).d(p)] / [n(p) + d(p)].
Le théorème de la valeur finale permet d'écrire:
 limt->µ [e(t)]  =  limp->0 [p.e(p)]  =  limp->0 {[p.Ve(p).d(p)] / [n(p) + d(p)]} .

Pour une consigne donnée, l'erreur finale dépend essentiellement de la classe de la fonction de transfert en boucle ouverte T(p). Il nous faut donc examiner 9 cas: 3 classes d'asservissement pour 3 types de consigne. 
 

6.5.1  Précision des asservissements de classe 0

T(p) = K0.[1 + a1p + .... + ampm] / [1 + b1p + ...... + bnpn]
Cette fonction de transfert est essentiellement caractérisée par son gain en position K0. 
 
Erreur de position e0:  la consigne est un échelon de position  ve(t) = a0.u(t)  donc  Ve(p) = a0/p .
e0 = limt->µ [e(t)]  =  limp->0 {[p.(a0/p).(1 + b1p + ....)] / [K0(1 + a1p + ...) + (1 + b1p + .....)]}  =  a0 /(K0 + 1) .
Un asservissement de classe 0 présente une erreur de position importante car pour assurer la stabilié de la boucle le gain K0 ne vaut que quelques unités       e0 =  a0 /(K0 + 1) .
Par exemple si K0 = 7 ,  l'erreur de position est de 12,5% de la consigne.

Erreur de traînage en vitesse e1:  la consigne est un échelon de vitesse  ve(t) = a1.t.u(t)  donc  Ve(p) = a1/p2 .
e1 = limt->µ [e(t)]  =  limp->0 {[p.(a1/p2).(1 + b1p + ....)] / [K0(1 + a1p + ...) + (1 + b1p + .....)]}  --> µ .
Un asservissement de classe 0 ne peut pas suivre un échelon de vitesse de consigne: l'erreur ne fait qu'augmenter.

Erreur de traînage en accélération e2:  la consigne est un échelon d'accélération  ve(t) = a2.(t2/2).u(t)  donc  Ve(p) = a2/p3 .
e2 = limt->µ e(t)]  =  limp->0 {[p.(a2/p3).(1 + b1p + ....)] / [K0(1 + a1p + ...) + (1 + b1p + .....)]}  --> µ .
Un asservissement de classe 0 ne peut déjà pas suivre un échelon de vitesse de consigne, alors un échelon d'accélération ...!! 
 

6.5.2  Précision des asservissements de classe 1

T(p) = K1.[1 + a1p + .... + ampm] / [p(1 + b1p + ...... + bn-1pn-1)]
Cette fonction de transfert est essentiellement caractérisée par son gain en vitesse K1.

Erreur de position e0:  la consigne est un échelon de position  ve(t) = a0.u(t)  donc  Ve(p) = a0/p .
e0 = limt->µ [e(t)]  =  limp->0 {[p.(a0/p).p(1 + b1p + ....)] / [K1(1 + a1p + ...) +p(1 + b1p + .....)]}  =  0 .
Un asservissement de classe 1 présente une erreur de position nulle quelle que soit la consigne et quelles que soient les perturbations. C'est évidemment un avantage énorme par rapport aux asservissements de classe 0. Il a suffit pour cela de mettre un intégrateur dans la boucle (par exemple: action intégrale du correcteur P.I.D.) .

Erreur de traînage en vitesse e1:  la consigne est un échelon de vitesse  ve(t) = a1.t.u(t)  donc  Ve(p) = a1/p2 .
e1 = limt->µ [e(t)]  =  limp->0 {[p.(a1/p2).p(1 + b1p + ....)] / [K1(1 + a1p + ...) + p(1 + b1p + .....)]}  =  a1 / K1 .
Un asservissement de classe 1 peut suivre un échelon de vitesse de consigne mais avec une erreur de traînage inversement proportionnelle au gain en vitesse en boucle ouverte.

Erreur de traînage en accélération e2:  la consigne est un échelon d'accélération  ve(t) = a2.(t2/2).u(t)  donc  Ve(p) = a2/p3 .
e2 = limt->µ [e(t)]  =  limp->0 {[p.(a2/p3).p(1 + b1p + ....)] / [K1(1 + a1p + ...) + p(1 + b1p + .....)]}  --> µ .
Un asservissement de classe 1 ne peut pas suivre un échelon d'accélération, l'erreur ne fait qu'augmenter. 
 

Ces résultats seront rassemblés dans un tableau récapitulatif plus loin. Mais il nous reste à étudier la précision des asservissements de classe 2.

6.5.3  Précision des asservissements de classe 2

T(p) = K2.[1 + a1p + .... + ampm] / [p2(1 + b1p + ...... + bn-2pn-2)]
Cette fonction de transfert est essentiellement caractérisée par son gain en accélération K2.

Erreur de position e0:  la consigne est un échelon de position  ve(t) = a0.u(t)  donc  Ve(p) = a0/p .
e0 = limt->µ [e(t)]  =  limp->0 {[p.(a0/p).p2(1 + b1p + ....)] / [K2(1 + a1p + ...) +p2(1 + b1p + .....)]}  =  0 .
Un asservissement de classe 2 présente une erreur de position nulle quelle que soit la consigne et quelles que soient les perturbations comme en classe 1.

Erreur de traînage en vitesse e1:  la consigne est un échelon de vitesse  ve(t) = a1.t.u(t)  donc  Ve(p) = a1/p2 .
e1 = limt->µ [e(t)]  =  limp->0 {[p.(a1/p2).p2(1 + b1p + ....)] / [K2(1 + a1p + ...) + p2(1 + b1p + .....)]}  =  0 .
Un asservissement de classe 2 suit un échelon de vitesse de consigne sans erreur de traînage, quelle que soit l'amplitude de cet échelon de vitesse. C'est tout simplement remarquable!

Erreur de traînage en accélération e2:  la consigne est un échelon d'accélération  ve(t) = a2.(t2/2).u(t)  donc  Ve(p) = a2/p3 .
e2 = limt->µ [e(t)]  =  limp->0 {[p.(a2/p3).p2(1 + b1p + ....)] / [K2(1 + a1p + ...) + p2(1 + b1p + .....)]}  =  a2 / K2.
Un asservissement de classe 2 peut même suivre un échelon d'accélération, certes avec une erreur de traînage inversement proportionnelle au gain en accélération de la fonction de transfert en boucle ouverte. 
 

On pourrait se demander pourquoi on ne réalise pas que des asservissements de classe 2 puisqu'ils ont une qualité précision excellente. Et bien tout simplement parce qu'ils sont difficiles à mettre au point en ce qui concerne l'amortissement (voire la stabilité). En effet en classe 2 il y a deux intégrateurs qui introduisent 180° de retard de phase. S'il n'y avait pas de correcteur à forte avance de phase, la boucle serait obligatoirement instable [voir le critère du revers (paragraphe 6.2.1.) et l'allure des lieux de Nyquist (paragraphe 4.9.) de T(jw) en classe 2].

Ainsi on peut dire que les asservissements de classe 0 sont médiocres; ce sont uniquement des asservissements « grand public ». On peut illustrer cette classe 0 par un tireur au fusil qui ne parvient pas à atteindre la cible fixe, par exemple un petit disque d'argile située à 50 mètres (erreur de position plus ou moins grande).
Les asservissements de classe 1 sont les plus nombreux : la majorité des asservissements industriels. En régulation l'erreur statique est nulle. En classe 1 le tireur au fusil atteint la cible fixe à tous les coups (pas d'erreur de position).
Les asservissements de classe 2 correspondent à des applications de laboratoire, de l'industrie de pointe, du domaine spatial et du domaine militaire. En classe 2 le tireur au fusil atteint la cible en mouvement (ball- trap). L'erreur de traînage est nulle.
... Alors qu'en boucle ouverte, le tireur aurait les yeux fermés !!!

6.5.4  Tableau récapitulatif de la valeur finale de la tension d'erreur : 
 

Type de consigne

Classe 0
Gain en position de T(p) :  K0

Classe 1
Gain en vitesse de T(p) :  K1

Classe 2
Gain en accélération de T(p) :  K2

 

Echelon de position
ve = a0.u(t)

e0 = a0 / (K0 + 1)

e0 =  0

e0 =  0

Erreur de position

Echelon de vitesse
ve = a1.t.u(t)

e1 --> µ

e1 =  a1 / K1

e1 =  0

Erreur de traînage en vitesse

Echelon d'accélération
ve = a2.(t2/2).u(t)

e2 --> µ

e2 --> µ

e2 =  a2 / K2

Erreur de traînage en accélération

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante