Vous êtes sur la page 1sur 8

Calcul d'un régulateur par placement de pôles, page 1/8

CALCUL DE REGULATEUR PAR PLACEMENT DE POLES

1 PRESENTATION DE LA METHODE
Lorsque l'on calcule une boucle de commande, le but est que la boucle fermée remplisse un certain nombre de
spécifications de performances, en termes de rejet de perturbations, et de poursuite de consigne.

1.1- SYNTHESE EN BOUCLE OUVERTE


Dans les méthodes de synthèse de type "boucle ouverte", on détermine la fonction de transfert C  p du
correcteur,
pour que la boucle ouverte FTBO  p =C p .G  p permette de vérifier les spécifications de performance.
Ces spécifications de performance portent sur le système en boucle fermée, et sont ''implictement traduites '' en
spécifications sur la boucle ouverte :
- le respect du critèe du revers ( le lieu FTBO  j   doit laisser le point [-180°,odb] sur sa droite dans le
plan de Black Nichols) n'est qu'n moyen de spécifier la stabilité de la boucle fermée
- fixer la marge de phase est un moyen commode pour limiter (implicitement) le module maximum des
GC 1
fonctions de transfert en boucle fermée T = , S= , et donc de fixer l'amortissement de la
1GC 1GC
boucle fermée
- fixer la pulsation au gain unité u de boucle ouverte (pour laquelle ∣CG  j u ∣=1 ) n'est qu'un moyen
commode de prendre en compte une spécification de bande passante de la boucle fermée (rapidité de rejet de
perturbation).
- L'intégrateur que l'on rajoute au correcteur, ou plus généralement le fait de fixer le comportement
asymptotique du correcteur dans les basses fréquences lim p0
C p , n'est qu'un moyen commode de prendre en
compte des spécifications de précision en régime statique de la loi de commande en boucle fermée, telles que
l'erreur à l'échelon, l'écart de traînage, le rejet d'une perturbation de type échelon, rampe, parabole etc...etc...
1-2- SYNTHESE PAR PLACEMENT DE POLES
1.2.1- principe de la méthode
La méthode de synthèse par placement de pôles procède quant à elle de manière radicalement différente. Si l'on
considère que la dynamique de la boucle fermée est essentiellement liée aux pôles des différentes fonctions de
transfert en boucle fermée, alors pourquoi ne pas fixer directement la valeur de ces pôles, pour remplir le
cahier des charges?... Par exemple une spécification de bande passante wn de la boucle fermée, et de facteur
d'amortissement z donné, pourra être remplie en fixant un pôle dominant du second ordre correspondant aux
valeurs de wn et z désirées.
Pour préciser les choses, considérons le schéma de commande suivant,

Perturbation
d(t)
consigne Entrée de
+ Sortie
ou référence erreur commande
yc(t) + e(t) u(t) + y(t)
R  p B ( p)
C  p = G( p)=
S  p A ( p)
- correcteur, Procédé
ou régulateur

R  p
où C  p = est la fonction de transfert du correcteur,
S  p
B p 
G p  est la fonction de transfert du système,
A p 
Calcul d'un régulateur par placement de pôles, page 2/8

R p , S  p , B  p , A  p sont des polynômes en p.


Les équations de la boucle fermée s'écrivent alors :
B ( p). R( p) A ( p). S( p)
Y ( p)=
[ ]
A ( p) . S ( p)+ B ( p) . R( p) [
. Y c ( p)+
]
A ( p). S ( p)+ B( p). R( p)
. D ( p)

A  p. R  p  A  p . R  p
U  p= [ ]
A  p. S  pB  p . R  p [
. Y c  p − ]
A  p . S  pB  p. R p
. D p

A  p . S  p A  p. S  p
E  p= [ A  p. S pB  p . R p ] [
. Y c  p− ]
A  p . S  pB p. R  p
. D  p

- Les fonctions de transfert en boucle fermée ont toutes le même dénominateur :


DBF  p  =A  p  . S  p  B  p  . R  p  , appelé ' dénominateur de boucle fermée'
R  p
- Trouver un correcteur C  p = permettant de fixer les pôles de la boucle fermée se ramène donc à
S  p
1- à choisir les zéros z i de DBF  p  ( pôles de toutes les fonctions de transfert en boucle fermée ),
2- à en déduire les coefficients d i correspondants du polynôme D BF  p  :
D BF  p = p−z 1 . p− z2 . . p−z nd =d 0 d 1 p 1d nd pnd
3- à calculer les coefficients des polynômes R  p  et S  p  pour lesquels l'égalité suivante est vérifiée :
DBF
  p = Ap . S p  B p . R p

connu :fixé par les pôles zi connu à déterminer connu à déterminer
cette équation est connue sous le nom de équation de BEZOUT
1.2.2- Contraintes sur les degrés des polynômes
Nous allons montrer dans ce paragraphe que le problème 1.2.1 se ramène à un système linéaire de n équations
à n inconnues, dont .la solution est trouvée classiquement en inversant une matrice nxn ( Cours d’algèbre
Linéaire : Deug ou IUT 1ère année)

Posons :
A  p=a0 a1 p...a na pna , où na est le degré de A  p  [1]
B p=b 0b 1 p...bnb p nb , où nb est le degré de B  p  [2]
R p=r 0r 1 p...r nr pnr , où nr est le degré de R  p  [3]
S  p=s 0s1 p...s ns p ns , où n s est le degré de S  p  [4]
DBF  p  =d 0d 1 p...dnd pnd , où nd est le degré de DBF  p [5]

Remarque : Tout système physique est inertiel, c’est à dire qu’il ne répond jamais instantanément à l’échelon.
B  p
Pour un système linéaire de fonction de transfert G p= , cela implique que le degré de A  p  est
A  p
strictement supérieur au degré du numérateur B  p   :
B  p
G p= est la fonction de transfert d ' un système inertiel ⇒ o A  po B p
A  p
La démonstration est très simple : il suffit d’appliquer le théorème de la valeur initiale sur la réponse à
l’échelon de G  p  , en disant que la sortie y  t  doit être égale à 0 au temps t 0s . Elle est laissée à titre
d’exercice pour les étudiants.
R  p
De plus, pour être réalisable, le correcteur de fonction de transfert C  p  = doit respecter la même
S  p
condition.
On en conclut donc que les degrés des polynômes devront respecter les deux conditions suivantes:

nb  na  Le système est inertiel [6]

nr  ns  Le correcteur est réalisable [7]


Calcul d'un régulateur par placement de pôles, page 3/8

et donc le degré nd du polynôme DBF  p= A  p. S  pB  p. R p est égal au degré du polynôme
A  p . S  p
o o
, puisque [ B p. R  p ]  [ A  p. S p ] .
et donc le degré nd du dénominateur de boucle fermée se déduit de ceux de A  p , S  p par :
nd =nans [9]
1.2.3- Normalisation des coefficients de plus haut degré
Comme le coefficient de plus haut degré s ns de S  p  doit être différent de zéro( de par la définition même du
degré d'un polynôme) , on normalisera les polynômes dans l'équation [9], en fixant arbitrairement les termes de
plus haut degré à 1, c'est à dire que l'on pose :
s ns=1 normalisation du correcteur [10]
a na=1 normalisation du système [11]
d nd =1 normalisation du dénominateur de boucle fermée [12]

1.2.4 Détermination des degrés des polynômes R et S et DBF


L’équation de Bezout : DBF  p= A  p . S  p B p. R  p  , exprimée pour chacun des coefficients d i de
DBF  p  se ramène au système linéaire d’équations suivant :
équation associée au terme de degré 0 : d 0 =a0 . s 0b 0 . r 0 p
équation associée au terme de degré 1 : d 1=a1 . s0 a0 . s 1b 1 . r 0b0 .r 1
minn a ,i minn b , i
équation associée au terme de degré i : d i= ∑ a k . s i−k  ∑ b k . r i−k
k=max0, i−ns  k=max 0, i−nr 
Les inconnues sont :
- Les coefficients r 0, ... , r nr de R  p  , soit nr 1 inconnues
- Les coefficients s 0, ... , sns−1 de S  p  ( car s ns=1 ) , soit n s inconnues supplémentaires

pour que le système admette une et une seule solution, il faut que l'on ait autant d'équations que d'inconnues
- on a nd équations à résoudre : une par coefficient p0, ⋯, p nd−1 de DBF  p  )
- on a n sn r1 inconnues
Pour avoir le même nombre d’équations que d’inconnues, il faut donc que
nd =nr ns 1 [13]
On sait de plus ( équation [9] ), que nd =nans , d’où on déduit la valeur de nr , en réinjectant cette expression
en [13], soit
nr  na  1 [14]
Le choix du degré n s de S  p  est arbitraire.
Toutefois ,pour que le correcteur soit réalisable, il faut que ns  nr .
Pour obtenir un correcteur de degré minimal, on choisit la plus petite valeur de n sn r
n s=n r1=n a [15]
Connaissant la valeur de n s , on en déduit celle de nd (équation [9]) :
nd =nans=2. na [16]
1.2.4- Système matriciel à résoudre
Connaissant à présent les degrés, l’équation de Bezout s'écrit sous la forme d’une équation matricielle à autant
d’équations que d’inconnues : ( on rappelle que le coefficient s na de plus haut degré de S p est normalisé à
1, et n’est donc pas une inconnue, d’où sa présence dans le membre de droite de l’équation)
Calcul d'un régulateur par placement de pôles, page 4/8

termes de A.S  p termes de B.R  p


s0
 0 . 0 

[ ∣ ][ ] [ ]
a 0 0 b 0 0 . 0 0 s1 p0
a1 a0 0 . 0 b1 b 0 0 . 0 s2 p1
a2 a 1 a0 . 0 . . . . . . p2
. . . . 0 . . . . . s na−1 .
ana a na−1 . . a0 0 bna−1 . . b 0 . = pna−1 ¿
0 ana . . a1 . . . . . r0 pna−sna . a0
0 0 . . a2 . . . . . r1 p na1−s na . a 1
. . . . . . . . . b na−1 . .
0 0 0 . a na 0 0 . . 0 . p2.na−1−sna . ana−1
 r na−1 
M :matrice 2.na X 2.n a  V CONNU
X INCONNU
forme matricielle de l'équation de Bezout
Cette équation est de la forme M . X=V , où X est le vecteur des inconnues à déterminer ( les coefficients
[ s0, ... , sna−1 , r 0, r na−1 ] du dénominateur S  p et du numérateur R p du correcteur C  p ).
Pour la résoudre, il suffit d’inverser la matrice M ( voir cours de Licence ou IUT 1ère année, ou Analyse
numérique),
puis de calculer X  M  1 .V [17]

Le régulateur C  p s’écrit finalement


n 1
r0  r1 . p ...rn  1 . p a
C p   a
n 1 n [18]
s0  s1 . p ... sn  1 . p a  p a
a

2- Cas où l'on impose des pôles et ou zéros du correcteur


2.1- Présentation du problème
Dans le cas présenté précédemment, le correcteur C  p  est entièrement déterminé par le choix des pôles de la
boucle fermée.
Toutefois les cahiers des charges imposent souvent certains pôles et-ou zéros du correcteur C  p  lui-même.
L'exemple le plus classique consiste à imposer le nombre ni d'intégrations (le nombre de pôles de
C  p  en p=0 ) du correcteur), pour assurer des performances de précision en régime statique.
Dans ce cas le dénominateur S  p  du correcteur doit pouvoir s'écrire sous la forme
'
S  p  S f  p  . S  p 
où Sf  p = pni est la partie imposée de S  p 
'
et où S  p  est un polynôme qui sera déterminé par le choix des pôles de boucle fermée.
La méthode plus générale de placement de pôles consiste donc à calculer
R f  p . R '  p
– un régulateur C  p = , tel que le dénominateur de la boucle fermée
S f  p . S '  p

DBF  p= A  p . S f  p . S '  pB p . R f  p . R '  p [19]


ait ses zéros en des emplacements spécifiés.
La différence avec le problème de placement de pôles précédent vient du fait qu’à présent, les polynômes
R f  p  et S f  p  sont imposés, c’est à dire que certains pôles et-ou zéros du régulateur C  p  sont donnés à
priori.
2.2- Contraintes de degré
Comme pour le cas précédent, les contraintes de degré sur les polynômes viennent du fait qu’il faut
- que le correcteur soit réalisable => degré de degré de R '  p . R f  pdegré de S '  p. Sf  p
- que l’on ait autant d’équations que d’inconnues dans le système matriciel à résoudre
Calcul d'un régulateur par placement de pôles, page 5/8

Sans détailler les étapes successives de calcul, ( même démarche qu’en 1), on obtient finalement les contraintes
suivantes sur les degrés des différents polynômes

2 . nanrf nsf [20]

nr =nan sf −1 [21]

n s=n an rf [22]

' ' ' '


où nr , ns , nr f , ns f sont les degrés respectifs des polynômes R  p , S  p , R f  p , S f  p 
Dans ce cas, on a donc
2.na  nr  ns Pôles à choisir
f f

le correcteur calculé aura


- un numérateur R  p . R f  p  de degré na  nr f  ns f  1
'

- un dénominateur de degré na  nr f  ns f
2.3- Normalisation
Pour les mêmes raisons qu’en 1, on normalise les coefficients de plus haut degré de S  p  , A  p  , et DBF  p 
à 1. Ceci revient à normaliser à 1 les coefficients de plus haut degré des polynômes S '  p ,
A f  p= A  p. S f  p , et DBF  p 
Calcul d'un régulateur par placement de pôles, page 6/8

Application de la méthode sur un exemple


1
Soit un procédé de fonction de transfert G p  
 p  1  0,1 p  1
on veut commander le système en boucle fermée, de telle façon que
1- Le système commandé en Boucle fermée se comporte approximativement comme un système du 2
ème ordre, de pulsation propre n 25rd / s , et de facteur d’amortissement ≈1/ 2
2- L’erreur entre la consigne et la sortie tende asymptotiquement vers 0, pour un rampe de consigne de
pente 1/s.

phase 1 - La spécif 2 implique que correcteur C(p) doit au moins contenir 2 intégrations ( th. valeur finale )
phase 2 - Comme la spécif 1 du cahier des charges porte sur les pôles de la boucle fermée, on va s’orienter
vers une méthode de synthèse de type placement de pôles.

1- détermination des degrés


Le correcteur C  p  doit contenir deux intégrations, d’où on écrit
R '  p. R f  p R f  p=1 , car aucun zéro de C  p n'est imposé
C  p =
S '  p. S f  p
, avec
{S f  p= p 2 , car on veut 2 intégrations dans le correcteur

B  p
Le procédé s’écrit G p= , soit encore, en normalisant à 1 le coeff. de plus haut degré de A  p 
Ap
B p  10 b0

A  p  = p 211 p10= p2a1 pa 0

Les équations [20] à [22] donnent à présent les degrés des différents polynômes
- degré du dénominateur de boucle fermée DBF  p : nd =2 . na nsf nrf =6
- degré de R '  p  : n'r =nan sf −1=3
- degré de S '  p  : n's=n an rf =2
Pour écrire l’équation matricielle correspondant à l’équation de Bezout, on pose
R'  p=r 0 r 1 pr 2 p2 r 3 p3
S'  p=s0s 1 ps 2 p2=s 0s1 p p2 ( car le coefficient de plus haut degré de S'  p est normalisé à 1)

Pour que le problème admette une solution unique , le dénominateur de boucle fermée DBF  p  devra être de
degré nd =2 . na nsf nrf =6 .

Comme on nous demande un pôle dominant du 2ème ordre, on va choisir DBF  p  de la forme :
4
DBF  p= [ p 22.  n . p 2n ] . [ pw1 ] , avec w 1 suffisamment grande devant  n
En pratique on prend ( choix arbitraire, et d’ailleurs pas très malin )
1 =10 n≈250 rd / s ,
d’où on peut écrire
DBF  p=d 0d1 pd 2 p2d 3 p3d 4 p 4d 5 . p5 p 6
d 0=41  2n

avec :

{
d 1=2 14 n 4 31  2n
d 2=8  31  n  6  21  2n 41
d 3=12 12  n 4  1  2n4  31
d 4 =8 1 n 2n6 21
d 5=2  n  4  1
, et
{
n≈25 rd /s
1=10 .  n≈250 rad / s
≈
1
 2
Calcul d'un régulateur par placement de pôles, page 7/8

2- Ecriture de l’équation de Bezout sous forme d’un système linéaire d’équations


posons A f  p=S f  p. A  p , on obtient alors
A f  p=a f2 p2a f3 p 3 p4 ≈10 p211 p3 p 4
L’équation de Bezout s’écrit :
DBF  p= A f  p . S '  pB  p. R'  p
Soit encore, en exprimant cette égalité sur chacun des coefficients de DBF  p 
d 0=b0 . r '0 [1]
'
d 1=b0 . r 1 [2]
d 2=af2 . s' 0b 0 . r '2 [3]
d 3=af3 . s'0 a f2 . s '1b 0 . r '3 [4]
' ' '
d 4 =a f4 . s 0af3 . s1af2 . s2
[5]
1
' '
d 5= 1 . s a f3 . s
1 2
[6]
af4 1

' ' ' ' ' ' '


Les inconnues r 0 ,r 1 , r 2 , r 3 , s 0 , s1 ( on rappelle que s 2 =1 , par normalisation )
peuvent être déterminés successivement, ce qui évite d’avoir à calculer l’inverse d’une matrice 6X6 . On a en
effet
' d0
[1] r 0=
b0
d
[2] r '1= 1
b0
' '
[6] s 1=d5 −a f3 . s 2=d 5−a f3
1
d −a . s ' −a . s'
[5] s '0= 4 f3 1 f2 2 =d 4 −a f3 . s '1−a f2
af4
' d 3−a f3 . s'0 −a f2 . s '1
[4] r 3=
b0
d −a s '
[3] r '2= 2 f2 0
b0

A ce stade, le correcteur est entièrement déterminé :

' ' ' 2 ' 3


R '  p. R f  p [ r 0r 1 pr 2 p r 3 p ]
C  p= =
S '  p. Sf  p [ s'0 s '1 p p2 ] . p2
Bien évidemment, un tracé de la boucle ouverte FTBO  p =C p .G  p dans le plan de Bode et de Black-
Nichols est indispensable pour vérifier la pulsation au gain unité, ainsi que les marge de gain et de phase…
Calcul d'un régulateur par placement de pôles, page 8/8

résolution de l'exemple avec octave

clear all; close all;


use_octave=exist('OCTAVE_VERSION')~=0; % use_octave est vrai si OCTAVE_VERSION existe
if ( use_octave), % <=> si on travaille avec octave
more off ;pkg load control signal;
end
w=logspace(-1,4,1000).';
p=tf('p');
% 1 -Systeme G
G_p=1/((p+1)*(0.1*p+1));
[NG,DG]=tfdata(G_p,'vector'); % coeffs B=NG, A=DG, en puissances decroissantes de p
% 2 -Poles et zeros forces du regulateur
NCforce_p =tf(1); % pas de zeros forces, Rf= Ncforce de degré 0
DCforce_p =p^2; % 2 poles forces, Sf= Dcforce =p^2
[NCforce,on_sen_moque] = tfdata(NCforce_p,'vector'); % coeffs Rf=NCforce
[DCforce,on_sen_moque] = tfdata(DCforce_p,'vector'); % coeffs Sf=DCforce
% 3 -Denominateur de boucle fermee DBF
wn=25;csi=1/sqrt(2);w1=10*wn;
DBF_p=(1+2*csi*p/wn+p^2/wn^2)*(p/w1+1)^4 ;
[DBF,on_sen_moque] = tfdata(DBF_p,'vector'); % coeffs DBF
% 4- calcul du regulateur (fonction plcpol ecrite par le prof )
[NumC,DenC]= plcpol(DG , NG , DBF, NCforce , DCforce ) ;
% 5- resultats obtenus
C_p=tf(NumC,DenC); % regulateur
FTBO_p=G_p*C_p; % FTBO
F_BF_p=(1+FTBO_p); % fract rationnelle F_BF(p)= DBF(p) / DBO(p)

[DBF_obtenu,on_sen_moque]=tfdata(F_BF_p,'vector'); % coeffs denom de boucle fermee


% les denominateurs on les memes coeff:a un facteur pres, verif avec div. terme a terme )
verification=DBF_obtenu./DBF;
verification=verification/max(abs(verification))
%---------------------------------------------------------
% trace gain Sensibilite S, sensibilite complementaire T, FBTO
%---------------------------------------------------------
[mgFTBO,dgFTBO]=bode(FTBO_p,w);mgFTBO=mgFTBO(:);dgFTBO=dgFTBO(:);dbFTBO=20*log10(mgFTBO);
S_p=1/(1+FTBO_p);[mgS,dgS]=bode(S_p,w);mgS=mgS(:);dgS=dgS(:);dbS=20*log10(mgS);
T_p=FTBO_p/(1+FTBO_p);[mgT,dgT]=bode(T_p,w);mgT=mgT(:);dgT=dgT(:);dbT=20*log10(mgT);
subplot(2,1,1);
semilogx(w,dbS,'r'); hold on;
semilogx(w,dbT,'b'); hold on;
semilogx(w,dbFTBO,'g'); hold on;grid on;
title( ' S en rouge, T en bleu, FTBO en vert');
ylabel('gain en db= 20*log10(gain)');
xlabel('pulsation en rd/s');
subplot(2,1,2);
semilogx(w,dgFTBO,'g'); hold on;grid on;
title( ' FTBO en vert');
ylabel('argument FTBO en degre');
xlabel('pulsation en rd/s');
figure
step(S_p);grid on;hold on
title( 'reponse a l echelon de la fonction de sensibilite');