Académique Documents
Professionnel Documents
Culture Documents
Olivier Kermorgant
Asservissement numérique d’un système continu
Système
+
Correcteur Capteur
Convertisseurs
Introduction 1 / 78
Correcteurs numériques - objectifs
Introduction Introduction 2 / 78
Facilité de modification ?
Introduction Introduction 3 / 78
Un exemple en robotique
Asservissement visuel
• Positionner un robot à partir d’une caméra
• Deux étages de correcteurs : 25 Hz (caméra), 100 Hz (moteurs)
• Pas de critère particulier : correcteur PI (ici assez lent)
Introduction Exemples 4 / 78
Robotique médicale : télé-échographie
Asservissement visuel
• Suivre la consigne de télé-opération (joystick)
• Maintenir une certaine force sur le patient
• Maintenir la visibilité
Introduction Exemples 5 / 78
Synthèse des correcteurs numériques
Démarche usuelle
• Définir les objectifs du correcteur (cahier des charges)
• PI / PID en simulation puis sur le système
• Commande avancée si besoin
Comme en continu :
Comme en continu :
• Stabilité : marge de phase Mφ ∈ [50, 70]
Comme en continu :
• Stabilité : marge de phase Mφ ∈ [50, 70]
• Précision : grand gain ou intégrateur, dépend de la consigne et des
perturbations
Comme en continu :
• Stabilité : marge de phase Mφ ∈ [50, 70]
• Précision : grand gain ou intégrateur, dépend de la consigne et des
perturbations
• Rapidité : compromis avec la stabilité
Comme en continu :
• Stabilité : marge de phase Mφ ∈ [50, 70]
• Précision : grand gain ou intégrateur, dépend de la consigne et des
perturbations
• Rapidité : compromis avec la stabilité
Propre au numérique
• Définir la fonction de transfert souhaitée pour le système bouclé
Comme en continu :
• Stabilité : marge de phase Mφ ∈ [50, 70]
• Précision : grand gain ou intégrateur, dépend de la consigne et des
perturbations
• Rapidité : compromis avec la stabilité
Propre au numérique
• Définir la fonction de transfert souhaitée pour le système bouclé
En pratique :
• Essayer d’être ambitieux (meilleure performance)
• Faire la part des choses entre la réalité et la science-fiction
1 t
Z
de(t)
u(t) = Kp e(t) + e(τ )dτ + Td
Ti 0 dt
1
Correcteur C (s) = Kp 1 + + Td s
Ti s
1 Td s
Avec dérivée filtrée C (s) = Kp 1 + + (N ≥ 5)
Ti s 1 + Td s/N
wifi
overrides
2 PC104 (nav / sensor processing) PID's
2 vertical thrusters (heave and pitch)
+
+
2 horizontal thrusters (sway and yaw)
Fiber-optic gyro (FOG) and compass
up camera PID's
Td 1 − z −1
Te
Correcteur C (z) = Kp 1 + +
Ti (1 − z −1 ) Te 1 − αz −1
Td
dk = Kp (yk − yk−1 )
Te
L’action dérivée ne filtre que la mesure
Sortie Commande
12 150
10
100
8
50
u
y
0
4
50
2
Standard Standard
Dérivée sur y Dérivée sur y
00 2 4 6 8 10 1000 2 4 6 8 10
t t
+umax si uk > umax
ûk = uk si − umax < uk < umax
−umax si uk < −umax
10
10
8
5
6
y
i
0
4
5
2 Standard Standard
Dérivée sur y Dérivée sur y
Int. conditionnelle Int. conditionnelle
00 2 4 6 8 10 100 2 4 6 8 10
t t
10
10
0
8 10
20
6
y
i
30
4 40
Standard 50 Standard
2 Dérivée sur y Dérivée sur y
Int. conditionnelle 60 Int. conditionnelle
Anti-emballement Anti-emballement
00 2 4 6 8 10 700 2 4 6 8 10
t t
Méthode de Takahashi
Tg
Correcteur P : Kp =
y∞ (Tu + Te )
(
Kp = y∞ (T0.9T g
u +0.5Te )
1
2 − 2 Ki Te
Correcteur PI :
Ki = y∞ (T0.27T g
u +0.5Te )
2
Contrôleur Kp Ki Kd
P 0.5Kc − −
PI 0.45Kc 0.8/Tc −
PD 0.8Kc − Tc /8
PID 0.6Kc 2/Tc Tc /8
y 4
1
Réponse pour Kp =38
00 2 4 6 8 10
t
Gain
critique sur modèle bouclé : Kc = 38, Tc = 0.45s
Kp = 22
→ Ki = 4
Kd = 0.06
2.5
Vrai système G (s) =
(1 + 0.01s)(1 + 0.05s)(1 + 0.5s)(1 + s)
6
3
y
1 Préréglage
Réglage
Système réel
00 2 4 6 8 10
t
Utilisation avancée
Utilisation avancée
• Gain scheduling
Plusieurs jeux de gains en fonction du point de fonctionnement
Utilisation avancée
• Gain scheduling
Plusieurs jeux de gains en fonction du point de fonctionnement
• Réglage adaptatif
Les gains évoluent pendant le fonctionnement
Rajoute une boucle : attention à la stabilité
Utilisation avancée
• Gain scheduling
Plusieurs jeux de gains en fonction du point de fonctionnement
• Réglage adaptatif
Les gains évoluent pendant le fonctionnement
Rajoute une boucle : attention à la stabilité
Cc (s)
C (z) = (1 − z −1 )Z s
dx x(t) − x(t − Te )
Dérivée : ≈
dt Te
1 − z −1
Approximation : sXc (s) ⇔ X (z)
Te
1 − z −1
Revient à estimer que C (z) ≈ Cc (s = )
Te
s
z
s z
2 1 − z −1
Bilinéaire : s =
Te 1 + z −1
tan(ωTe /2)
Distorsion : s ≈ jω
ωTe /2
Ajout d’un terme correctif autour de ωc
ωc Te /2 2 1 − z −1
s=
tan(ωc Te /2) Te 1 + z −1
(z − e rk Te )
Q
C (z) = Kd Q
(z − e ρk Te )
Choix de Kd pour obtenir le même gain statique : Cc (0) = C (1)
(−rk ) (1 − e ρk Te )
Q Q
Kd = Kc Q Q
(−ρk ) (1 − e rk Te )
1 + 2, 45s
Avance de phase : Cc (s) =
1 + 0, 408s
Échantillonnage à Te = 0, 3 s
Gain Phase
16 50
Continu Continu
14 Euler Euler
Bilineaire 40 Bilineaire
Matched transform Matched transform
12
30
10
20
8
10
6
0
4
2 10
0 20 -1
10-1 100 101 102 10 100 101 102
ω ω
Commande RST
- +
Correcteur
CG 1 − CGm
⇒ Y (z) = R(z) + P(z)
1 + C (G − Gm ) 1 + C (G − Gm )
Q(z) passe-bas
⇒ C (z) = Q(z)GI−1 (z) avec −1
Q(1) = GNI (1)
n
−1
Q
(z − pi )
gc C (1) = Gm (1)
⇒ C (z) = Q(z) m i=1 p avec Q(z) = (1−α)z
1−αz
z q (z − zi ) (z − z1j )
Q Q
0<α<1
i=1 j=1
R, S, T polynômes en z −1
• S(z −1 ) monique : S(0) = 1
v (k) perturbation d’entrée
Deux perturbations envisagées :
p(k) perturbation de sortie
z −d B(z −1 )
G (z) = avec
A(z −1 )
• A et B polynômes en z −1 premiers entre eux
• A monique : A(0) = 1
Approches numériques Correcteur RST 50 / 78
Fonctions de transfert
T (z −1 ) R(z −1 )
Commande : U(z) = Yr (z) − Y (z)
S(z −1 ) S(z −1 )
z −d B(z −1 ) z −d B(z −1 )
Sortie : Y (z) = U(z) + V (z) + P(z)
A(z −1 ) A(z −1 )
AT B̄R AR
U= Yr − V− P (1)
AS + B̄R AS + B̄R AS + B̄R
B̄T B̄S AS
Y = Yr + V+ P (2)
AS + B̄R AS + B̄R AS + B̄R
B̄T Bm
=
AS + B̄R Am
B −T B − Bm0
=
A+ (A− S 0 + B − R 0 ) Am
T A+ Bm0
=
A− S 0 + B − R 0 Am
A− S 0 + B − R 0 = A0 Am
(a)
⇒ Équations diophantiennes :
T = A0 A+ Bm0 (b)
Perturbations polynomiales
Z1 (z −1 )
• v (t) ou p(t) = t n ⇒ V (z) ou P(z) =
(1 − z −1 )n+1
Perturbations sinusoı̈dales
• v (t) ou p(t) = sin(ωt) ⇒ V (z) ou
sin(ωTe )z −1
P(z) =
1 − 2 cos(ωTe )z −1 + z −2
• Rajouter le facteur correspondant dans S
• S 0 (z −1 ) = (1 − 2 cos(ωTe )z −1 + z −2 )S10 (z −1 )
0 Am (1)
• Choix le plus simple : Bm = b0 = −
B (1)
0
• Puis calcul de T par : T = A0 A+ Bm
Consigne sinusoı̈dale
sin(ωTe )z −1
• yr (t) = sin(ωt) ⇒ Yr (z) =
1 − 2 cos(ωTe )z −1 + z −2
Phase II : régulation
• Modéliser la nature des perturbations par Sp
• (a) devient A− Sp S10 + B − R 0 = A0 Am
Phase II : régulation
• Modéliser la nature des perturbations par Sp
• (a) devient A− Sp S10 + B − R 0 = A0 Am
Factorisation :
• B + = 1 et B − = 0.0253z −1 + 0.0779z −2 + 0.0056z −3
• A+ = 1 et A− = 1 − 1.891z −1 + z −2
• Donc S = S 0 et R = R 0
Factorisation :
• B + = 1 et B − = 0.0253z −1 + 0.0779z −2 + 0.0056z −3
• A+ = 1 et A− = 1 − 1.891z −1 + z −2
• Donc S = S 0 et R = R 0
Finalement
S = (1 − z −1 )S10 = 1 + 0, 0081z −1 − 0, 939z −2 − 0, 069z −3
• ⇒ T = 5, 585 − 4, 569z −1
200 yr
y1
100 y2
0
V
100
200
0.095 0.100 0.105
t
200 yr
y1
100 y2
0
V
100
200
0.095 0.100 0.105
t
200 yr
y1
100 y2
0
V
100
200
0.095 0.100 0.105
t
1
Soit V (z) = P
n U(z)
ai zi
i=0
n−1
z n V (z) = U(z) − ai z i V (z)
P
i=0
⇒ n−1
bi z i V (z)
P
Y (z) = dU(z) +
i=0
État X (z) = (X1 (z), . . . , Xn (z)) tel que Xi (z) = z i−1 V (z)
État X (z) = (X1 (z), . . . , Xn (z)) tel que Xi (z) = z i−1 V (z)
Alors
• Pour i < n : zXi (z) = Xi+1 (z) ⇒ xi (k + 1) = xi+1 (k)
n−1
• zXn (z) = z n V (z) = U(z) −
P
ai Xi (z)
i=0
n−1
P
⇒ xn (k + 1) = u(k) − ai xi (k)
i=0
État X (z) = (X1 (z), . . . , Xn (z)) tel que Xi (z) = z i−1 V (z)
Alors
• Pour i < n : zXi (z) = Xi+1 (z) ⇒ xi (k + 1) = xi+1 (k)
n−1
• zXn (z) = z n V (z) = U(z) −
P
ai Xi (z)
i=0
n−1
P
⇒ xn (k + 1) = u(k) − ai xi (k)
i=0
n−1
P n−1
P
• Et Y (z) = dU(z) + bi Xi (z) ⇒ y (k) = du(k) + bi xi (k)
i=0 i=0
Commandabilité : si C = B AB . . . An−1 B de rang plein
Commandabilité : si C = B AB . . . An−1 B de rang plein
C
CA
Observabilité : si O = de rang plein
..
.
n−1
CA
Alors N̄ = Nu + KNx
Alors N̄ = Nu + KNx
Réglage de K par placement de pôles en boucle fermée
x(k + 1) = (A − BK )x(k) + B N̄yr
y (k) = (C − DK )x(k) + D N̄yr
sous Matlab : K = place(A,B,p)
Alors N̄ = Nu + KNx
Réglage de K par placement de pôles en boucle fermée
x(k + 1) = (A − BK )x(k) + B N̄yr
y (k) = (C − DK )x(k) + D N̄yr
sous Matlab : K = place(A,B,p)
Valable pour yr constant (sinon intégrateurs)
k
X
u(k + 1) = −Kx(k) + N̄ e(i)
i=0
k
X
u(k + 1) = −Kx(k) + N̄ e(i)
i=0
Estimer x à partir de u et y
Estimer x à partir de u et y
Estimer x à partir de u et y
Estimer x à partir de u et y
Estimer x à partir de u et y
Approches continues
• Transposition d’un correcteur
• PID
• Transformée en w : synthèse continue d’un modèle discrétisé
Approches discrètes
• Commande avec modèle interne
• Commande RST : pôles + poursuite + régulation
• Représentation d’état : multi-dimensionnel
À garder en tête
• Approches continues valables pour des systèmes lents
• Approches numériques aussi bonnes que le modèle associé
• Compromis entre simplicité et performances
Bilan 78 / 78