implementation d`un correcteur rst sur une maquette d`helicoptere a

Transcription

implementation d`un correcteur rst sur une maquette d`helicoptere a
BACINELLO
BLANCHARD
CNAM
EI5
IMPLEMENTATION D’UN CORRECTEUR
RST SUR UNE MAQUETTE D’HELICOPTERE
A 3 DEGREE DE LIBERTE
-1-
BACINELLO
BLANCHARD
CNAM
EI5
INTRODUCTION
Dans le cadre de la recherche bibliographique, il nous a été proposé d’étudier la mise en place
des correcteurs RST et de l’appliquer sur une maquette du laboratoire : un hélicoptère à trois
degrés de liberté.
Ce travail s’est scindé en trois parties :
-
L’étude théorique de la mise en place des correcteurs RST numériques par extension
des modèles analogiques.
Calcul d’un RST numérique sans les outils informatiques afin de saisir les subtilités
mathématiques.
Implémentation et optimisation de ce correcteur sur la maquette.
La correction la plus utilisée sur les systèmes de régulation industrielle est la commande
PID.
Néanmoins les correcteurs RST donnent de meilleurs résultats et permettent d’atteindre un
cahier des charges plus exigeant. Si ces deux correcteurs permettent d’annuler l’erreur
statique, seul les RST peuvent garantir la poursuite d’une rampe ou le rejet d’une perturbation
en sinusoïde.
En plus d’apporter un régime transitoire de qualité, la commande RST permet d’atténuer le
bruit HF, ce qui ne peut être obtenu avec un PID.
-2-
BACINELLO
BLANCHARD
CNAM
EI5
SOMMAIRE
I. MISE EN PLACE DES CORRECTEURS RST : THEORIE- 4
A.
ANNULER L’ERREUR STATIQUE--------------------------------------------------------- 5
B.
ATTENUATION BRUIT HF ET APPORT DE ROBUSTESSE------------------------ 6
C.
REGIME TRANSITOIRE LE MEILLEUR POSSIBLE--------------------------------- 9
D.
IMPLANTATION DU RST ------------------------------------------------------------------- 10
E.
MODE OPERATOIRE POUR LE CALCUL D’UN RST NUMERIQUE ----------- 11
II.
SCHEMA DU SYSTEME (MOTEURS-PITCH) ------------ 12
III.
TRAVAIL A EFFECTUER--------------------------------------- 14
IV.
IDENTIFICATION DU SYSTEME (MOTEURS – PITCH) 14
V.
CALCUL DU CORRECTEUR RST --------------------------- 15
A.
1.
2.
3.
B.
CAS DU SYSTEME CONTINU -------------------------------------------------------------- 15
Détermination de AC (p) ----------------------------------------------------------------------- 15
Détermination de A0(p) ------------------------------------------------------------------------ 16
FTBF résultante -------------------------------------------------------------------------------- 16
CAS DU SYSTEME ECHANTILLONNE-------------------------------------------------- 17
1. Calcul de la fonction de transfert du système à corriger ---------------------------------- 17
2. Transformation de Tustin --------------------------------------------------------------------- 17
3. Détermination de w0, wc & placement des pôles ------------------------------------------ 18
4. Re-passage en z--------------------------------------------------------------------------------- 20
VI.
IMPLEMENTATION DU CORRECTEUR RST------------- 21
VII.
MODIFICATIONS DU CORRECTEUR RST ------------- 23
VIII.
POURSUITE DU TRAVAIL/PERSPECTIVES ----------- 28
IX.
BIBLIOGRAPHIE-------------------------------------------------- 28
X.
ANNEXES ----------------------------------------------------------- 29
-3-
BACINELLO
BLANCHARD
CNAM
EI5
I. MISE EN PLACE DES CORRECTEURS RST : THEORIE
Dans un premier temps, afin de comprendre la théorie de la régulation RST nous traiterons le
cas continu, ensuite nous verrons comment l’implanter dans une chaîne numérique.
Cette synthèse des correcteurs numériques par extension des correcteurs analogiques est une
approche couramment utilisée dans le domaine industriel. Ceci s’explique par le fait que les
techniques d’étude des systèmes continus sont généralement biens maîtrisées et que les
spécifications sont plus facilement interprétables sur des modèles continus que sur des
modèles échantillonnés.
Soit le schéma du RST suivant :
y C (t )
T ( p)
+
-
1
S ( p)
d1 (t )
d 2 (t )
+
+
+
G ( p)
Y (t )
+
+
R( p )
b(t )
+
Où
-
G(p) est le système à corriger, avec pour consigne yc(t)
d1(t) et d2(t) sont des perturbations
b(t) bruit hautes fréquences
R(p), S(p) et T(p) les éléments du correcteur.
y(t) la sortie du système.
La mise en place du RST consiste à déterminer les blocs R, S et T tel que :
G ( p) =
y=
B( p)
A( p )
B.S d1+ A.S d2 + B.T yc − B.R b
A .S + B.R
A .S + B .R
A . S + B .R
A .S + B .R
Soit :
y = H 1 ( p).d1 ( p) + H 2 ( p).d 2 ( p) + H 3 ( p).d 3 ( p) + H 4 ( p).b( p)
-4-
(1)
BACINELLO
BLANCHARD
CNAM
EI5
L’objectif de cette correction peut être décrit en trois points :
1- Si b(t) = 0, pas d’erreur statique.
2- Atténuation de b(t) la meilleure possible et apport de robustesse au système.
3- Régime transitoire le meilleur possible.
Nous allons donc maintenant décrire le processus mathématique de la mise en place du RST.
A. ANNULER L’ERREUR STATIQUE
Soit le bruit HF nul et les perturbations, ainsi que la consigne appliquée au système sont des
échelons à gain constant :
b( p ) = 0
d1 ( p ) =
D1
p
d 2 ( p) =
D2
p
y c ( p) =
yc
p
Nous avons alors lim t →∞ y(t ) = lim p→0 y( p) = D1 .H 1 (0) + D2 .H 2 (0) + Yc .H 3 (0)
limt →∞ y(t ) = Yc
Et pour annuler l’erreur statique nous voulons
Donc dans l’égalité (1) nous obtenons :
H 1 (0) = H 2 (0) = 0
H 3 (0) = 1
Soit :
S (0) = 0
S ( p) = p.S I ( p)
T (0) = R(0)
Nous retrouvons donc un intégrateur pour annuler l’erreur statique.
-5-
BACINELLO
BLANCHARD
CNAM
EI5
B. ATTENUATION BRUIT HF ET APPORT DE ROBUSTESSE
Soit H 4 ( p ) = −
N ( p)
B ( p ).R ( p )
= 4
A( p ).S ( p ) + B ( p ).R ( p ) D4 ( p )
Ceci correspond à un filtre tel que : PentedB = −20.[d °( D4 ) − d °( N 4 )]
PentedB = −20.[d °( A) − d °( B) + δ 0 ]
La commande RST introduit donc un degré relatif δ0 qui va modifier la pente du filtre du bloc
H4, plus la pente est élevée plus l’atténuation du bruit HF le serra aussi.
Nous avons δ 0 = d °( S ) − d °( R)
Nous définissons ABF = A( p).S ( p) + R( p).B( p)
l’équation de Bézout.
Nous cherchons R et S pour le processus A et B.
ABF détermine la qualité du régime transitoire, ses racines sont les pôles du système en boucle
fermée.
Résolution :
a- Par identification du système à corriger nous connaissons A et B.
b- Nous allons optimiser le placement des pôles de ABF.
c- Nous déterminons R et S par identification avec l’équation de Bézout.
Placement des pôles :
C’est le fonctionnement même de cette mise en place du RST, après avoir déterminé les
pôles du système à corriger nous introduisons des horizons et le degré relatif. Ceci va nous
permettre de déplacer les pôles du système et d’en rajouter.
Pour qu’un système soit stable il faut que tous ses pôles soient placés dans le demi plan de
gauche du repère complexe. Par exemple, si un pôle se trouve dans celui de droite la première
étape consiste à le renverser symétriquement par rapport à l’axe des imaginaires :
Im
-12
-3
0
3
Re
Les composantes imaginaires sont inchangées et les pôles déjà à gauche ne sont pas déplacés.
-6-
BACINELLO
BLANCHARD
CNAM
EI5
Une fois que le système est stabilisé, nous introduisons un horizon de commande wc qui va
apporter de la dynamique au système.
Nous savons que plus les pôles seront sur la gauche plus le système sera rapide. Nous fixons
donc wc et déplaçons tous les pôles du système qui sont à droite de wc sur cet horizon. Par
exemple :
Im
-12
wc
-3
0
Re
Ensuite, afin de rejeter les perturbations nous introduisons un horizon d’observation wo et un
horizon de filtrage wf.
De la même manière que pour wc nous déplaçons les pôles du système sur wo.
Im
Wf
-12
Wc
Wo -3
0
Re
L’horizon de filtrage wf va nous permettre de rajouter un nombre de pôles correspondant au
degré relatif δ0.
Il y a un certain compromis à trouver sur le placement de ces horizons, en effet si nous
voulons que le rejet des perturbations soit moins nerveux que la dynamique du système il
faudra wo < wc.
Les effets de ce placement de pôle sur notre système sont les suivants :
-
L’horizon de commande apporte de la dynamique.
L’horizon d’observation permet de rejeter les perturbations.
L’horizon de filtrage filtre le bruit HF et apporte également de la robustesse.
Nous avons donc formé de nouveau polynômes tel que : ABF = Ac(p).Ao(p)
Avec Ac(p) le polynôme de commande pour la dynamique de la consigne et Ao(p) le
polynôme d’observation et de filtrage.
Nous allons maintenant déterminer les blocs R et S en fonction de l’horizon de commande.
-7-
BACINELLO
BLANCHARD
CNAM
EI5
Détermination de R et S :
La détermination des blocs R et S correspondants au placement de l’horizon de commande
consiste à résoudre l’équation de Bézout :
ABF = A( p).S ( p) + R( p).B( p)
Nous connaissons :
- A(p) et B(p), le système
- ABF, les pôles placés après Wc.
Par identification nous en déduisons R et S.
Soit le fonctionnement de cette résolution :
A( p) = 1 p n + an−1 p n−1 + ... + a1 p + a0
B( p) = bm p m−1 + bm−1 p m−2 + ... + b1 p + b0
S ( p) = p.( p k −1 + s k −2 p k −2 + ... + s1 p + s0 )
R(p)=rl pl +...+r0
m≤n
l≤k
Nous avons fixé le degré relatif δ0 = k – l
f
f −1
→ ABF = p + c f −1 p + ... + c1 p + c0
→ d °( R) = n
d °( S ) = n + δ 0
k +l = f = n+k
l=n
d °( ABF ) = 2.n + δ 0
Nous connaissons le degré de chaque polynôme, par identification nous pouvons déterminer
R(p) et S(p).
Nous allons maintenant déterminer T(p).
-8-
BACINELLO
BLANCHARD
CNAM
EI5
C. REGIME TRANSITOIRE LE MEILLEUR POSSIBLE
Nous avons placé wf et wo et savons ABF = Ac ( p).Ao ( p)
d °( Ac ) = n
d °( Ao ) = n + δ 0
D’après (1) :
y=
B.S
A.S
B.T
B.R
d1 +
d2 +
yc −
b
A.S + B.R
A.S + B.R
A.S + B.R
A.S + B.R
T(p) relie donc l’entrée à la sortie, sa détermination se fait de la manière suivante :
T ( p) = α . Ao ( p)
T (0) = R(0) = α . Ao (0)
R( p)
Donc α = A (0)
o
R(0)
Soit T ( p) = A (0) Ao ( p)
o
Nous avons déterminé R, S et T.
Si le résultat obtenu n’est pas satisfaisant, il faut alors recommencer le placement des pôles et
la détermination des blocs RST.
C’est la force de la commande RST, elle est a placement de pôles.
-9-
BACINELLO
BLANCHARD
CNAM
EI5
D. IMPLANTATION DU RST
Nous venons de traiter le RST continu, mais il est quasiment impossible d’implanter un tel
correcteur à l’aide de composants électroniques.
L’implantation du RST se fait numériquement, à l’aide de calculateurs.
Il en découle un problème évident, comment utiliser les outils du continu pour des signaux
discrétisés ? On utilise la transformée de Tustin, appelée aussi transformée en W.
→ La discrétisation du signal entraîne sa transformée en Z :
∞
F ( z ) = ∑ f (k.t ).z −k
k =0
avec
z = eTp
L
X(t)
X(p)
-1
L
Z
Z
X(z)
-1
Stable si module des pôles < 1
Z Z
X(kt)
Pour le placement de pôles on utilise la transformée en W qui nous repasse en continu et
nous permet d’utiliser les analyses fréquentielles pour le discret.
Une fois notre RST trouvé, nous appliquons la transformée inverse de W pour revenir en
discret :
2
w=
T
z −1
z +1
wT
2
z=
wT
1−
2
1+
Avec T la période d’échantillonnage et 2/T la pulsation de Nyquist.
w = j.v
v=
2
wT
j. tan( )
T
2
Avec v notre pulsation définie de zéro à l’infini qui nous permet d’utiliser les outils
fréquentiels.
- 10 -
BACINELLO
BLANCHARD
CNAM
EI5
E. MODE OPERATOIRE POUR LE CALCUL D’UN RST
NUMERIQUE
-
Déterminer le système continu G(p).
Calculer G(z) = Z [ B0(p).G(p) ] avec B0(p) le bloqueur échantillonneur d’ordre 0.
Déduire G(w) par la transformée en W.
Calcul de R(w), S(w) et T(w) sur G(w) suivant un cahier des charges défini.
Repasser R(w), S(w) et T(w) en discret par la transformée inverse.
Implanter R(z), S(z) et T(z) et vérifier le système.
Si non satisfaisant, reprendre le calcul de R(w), S(w) et T(w) avec un placement de
pôles différents.
- 11 -
BACINELLO
BLANCHARD
CNAM
EI5
II. SCHEMA DU SYSTEME (MOTEURS-PITCH)
On utilisera les notations suivantes :
BF = Boucle fermée
BO = Boucle ouverte
FTBF = Fonction de transfert en boucle fermée
Moteur 1 : VM1
αp : pitch
Codeur 1 : vp
Codeur 2 : ve
αe : élévation
Moteur 2 : VM2
Codeur 3 : vt
VM1=+/- 12V
αt : Travel
VM2=+/- 12V
vt ve vp
AMPLIFICATEURS
DE PUISSANCE
X 2,4
+/-5V
X : +/-1,2V
Y :+/-1,2V
CARTE
INTERMEDIAIRE
+/-5V
PUPITRE
0-5V
+/- 5V
0-5V
5
PC
RTX
CARTE
D’E/S
WINDOWS
MATLAB
HARDWARE
SOFTWARE
- 12 -
BACINELLO
BLANCHARD
CNAM
EI5
Comme indiqué sur le schéma, nous disposons donc :
•
•
•
•
D’un hélicoptère à 3 degrés de liberté disposant de 3 codeurs sur chaque axe et de 2
moteurs commandés en +/- 12V.
D’un pupitre de commande permettant de régler deux tensions d’entrée (de consigne)
vers la carte intermédiaire.
D’une carte amplificatrice et d’une carte intermédiaire permettant l’interfaçage entre
les capteurs/actionneurs de l’hélicoptère et la carte d’entrées/sorties du PC.
D’un PC équipé du noyau temps réel RTX capable de gérer Windows comme tache de
fond.
Ce système permet de commander directement à partir de l’outil mathématique Matlab, les
deux moteurs en temps réel à partir de l’observation des grandeurs d’entrées que sont les
tensions des trois codeurs.
- 13 -
BACINELLO
BLANCHARD
CNAM
EI5
III. TRAVAIL A EFFECTUER
Identifier le système moteurs-pitch avec les deux autres axes bloqués
Calculer le correcteur RST
Implanter le RST pour commander l’angle de pitch
IV. IDENTIFICATION DU SYSTEME (MOTEURS – PITCH)
Moteur 1 : VM1
αp : pitch
Codeur 1 : vp
Elévation BLOQUE
Moteur 2 : VM2
Travel BLOQUE
Nous identifions par réponse indicielle du système :
Nous plaçons l’axe du pitch a l’horizontale
Nous lâchons l’axe du pitch
Réponse :
vp , ∆V=VM2-VM1
K=pente
t
τ
Système du second ordre :
H(p)=
K = Kτ
Nous trouvons K=2,65, τ = 1,9
p(1+τp) p²+ 1 p
τ
H(p)=
B(p)
1,3947
=
Pôles de A(p) : p1 = 0, p2 = -0,53
p²+0,5263p A(p)
- 14 -
BACINELLO
BLANCHARD
CNAM
EI5
V. CALCUL DU CORRECTEUR RST
A. CAS DU SYSTEME CONTINU
Nous cherchons un correcteur d’ordre relatif δ0 = 0
Nous avons ABF (p)= A0(p).AC (p)
REGLE : La stabilité d’une commande sera d’autant plus robuste que les modes de la
BF seront proches des modes naturels du système en BO
1. Détermination de AC (p)
On place les pôles dans le repère complexe et on effectue le « placement de pôle » classique
du RST
Im
Pôles
wc
Re
-0,53 0 instables
On ne doit pas trop s’éloigner de la dynamique naturelle du système qui est ici d’environ –0,5
On a donc en BF un pôle double sur wc = − 1
τ
H BF (p)=
K
(1+τ.p)²
Nous fixons un temps de réponse à 95% égal à 2 secondes
Consigne, sortie
95%
2 s.
Grâce au logiciel « Réponse » nous trouvons τ = 0,25
D’où H BF (p)=
K
Donc wc = − 1 =4
(1+0,25.p)²
0,25
AC (p)=(p + 4)² Æ pôle double en BF égal à -4
wc règle la dynamique de réponse sur une variation de consigne
- 15 -
t
BACINELLO
BLANCHARD
CNAM
EI5
2. Détermination de A0(p)
On veut plus suivre la consigne que réagir aux perturbations.
On ne doit pas trop s’éloigner de la dynamique naturelle du système(wc=4). Nous choisirons
donc un horizon d’observation w0=1.
On place ensuite les pôles dans le repère complexe et on effectue le « placement de pôle »
classique du RST.
Im
Pôles
Re
wc=4 wo=1 -0,53 0 instables
Donc Ao(p)=(p +1)² Æ pôle double en BF égal à -1
wo permet de régler la dynamique de réponse sur les perturbations
3. FTBF résultante
FTBF =
B(p)
B(p)
B(p)
B(p)
=
=
= 4
4
ABF (p) AC (p).AO(p) (p + 4)²(p +1)² p +10p +33p² + 40p +16
- 16 -
BACINELLO
BLANCHARD
CNAM
EI5
B. CAS DU SYSTEME ECHANTILLONNE
1. Calcul de la fonction de transfert du système à corriger
[T −τ.(1− z0 )].z −T.z0 +τ.(1− z0 ) (d’après les tables)
⎡
⎤
H(z)=Z[Bo(p).H(p)]= Z ⎢ Bo(p). K ⎥ = K.
p(1+τ p) ⎦
z²−(1+ z0).z + z0
⎣
avec
T= 0,1 s. ( fixé juste en dessous de τ min <T <τ min Æ 0,19<T <0,38 )
10
5
τ =1,9
z0 =exp(− T )=0,94872948
K =2,65
τ
[0,1−1,9.(1− z0 )].z −0,1.z0 +1,9.(1− z0 )= 6,8529318.10−3 z +6,73375592.10−3
H(z)=2,65.
H(z)= az +b
z² −cz + d
z² −(1+ z0).z + z0
avec
z² −1,94872948.z +0,94872948
a=6,8529318.10−3
b=6,73375592.10−3
c=−1,94872948
d =0,94872948
2. Transformation de Tustin
Cette transformation permet d’obtenir une fonction transfert équivalente au cas continu et de
pouvoir faire une analyse fréquentielle avec w= j.v (en continu on a p= jw )
1+ wT
2
−
1
2 =α
z
On pose w=
Æ z=
T z +1
β
wT
1−
2
~
H(w)=
aαα +bβ 2
a(α β )+b
(aα +bβ )α
aα +bβ
=
=
=
2
(α β ) +c(α β )+d ⎡α 2 +cαβ + dβ 2 ⎤ α 2 +cαβ + dβ 2 α 2 +cαβ + dβ 2
β⎢
⎥
β2
⎣
⎦
a −aw2T 2 4+b−bwT +bw2T 2 4
~
H(w)=
1+ wT + w2T 2 4+c−cw2T 2 4+d −dwT +dw2T 2 4
~
H(w)=
w2(bT 2 −aT 2)−4bTw+4a+4b
w2(T 2 −cT 2 +dT 2)+ w(4T −4dT)+4+4c+4d
~
H(w)=
w2T 2(b−a)−4bTw+ 4(a +b)
or (1+c+d) = 0
w2T 2(1−c+d)+ w4T(1−d)+4(1+c+d)
- 17 -
BACINELLO
BLANCHARD
CNAM
EI5
w2T 2(b−a)−4bTw+ 4(a +b)
~
H(w)= 2 2
=
w T (1−c+d)+ w4T(1−d)
~
H(w)=
w2
w2
(b−a)
4(a +b)
1
− 4b
w+
1−c+d
T(1−c+ d) T 2(1−c+ d)
4T(1−d)
w2 + w 2
T (1−c+ d)
(b−a)
4(a +b)
− 4b w+ 2
1−c+ d T(1−c+ d) T (1−c+d)
4(1−d) ⎞
w⎛⎜ w+
T
(
1−c+d) ⎟⎠
⎝
~
4(1−d)
=−0,5263
Pôles de H(w) : w1 =0 , w2 =
T(1−c+d)
−3,06.10−5w2 −69,11.10−3w+1,3944
~
H(w)=
w(w+0,5263)
~
~
~
B (w) B (w) a~w²+b~w+c~
H(w)= ~ =
=
~
A (w) A(p =w) w(w+d )
avec
a~ =−3,06.10−5 ≈0
~
b =−69,11.10−3
c~ =1,3944
~
d =0,5263
3. Détermination de w0, wc & placement des pôles
Nous obtenons les mêmes w0 et w0 que dans le cas continu car
~
H(w)=
~
~
B (w)
B (w)
=
ABF (p = w) ABF (w)
~
Donc wc =4 Æ AC (p)=(w+4)(w+4)
~
wo =4 Æ AO(p)=(w+1)(W +1)
~
H BF (w)=
~
~
~
B (w)
B (w)
B (w)
= 4
=
(w+ 4)²(w+1)² w +10w3 +33w² + 40w+16 ABF (w)
On a δ 0 =0
et
~
d°(S )=n+δ 0
donc
~
d°(ABF )=2n=4
n=2
~
d°(S )=2
~
d°(R )=2
~
d°(R)=n
- 18 -
BACINELLO
BLANCHARD
~
On pose alors S (w)=w(s1w+ s0)
~
R (w)=r2 w²+r1w+r0
CNAM
EI5
~
~
~
~
~
~
D'où A (w).S (w)+ R (w).B (w)=w(w+d )w(s1w+ s0)+(r2 w²+r1w+r0)(a~w²+b w+c~)
~
=(w²+d w)(s1w²+ s0 w)
~
~
~
+a~r2 w4 +r2b w3 +r2c~w²+a~r1w3 +b r1w²+c~r1w+a~r0 w²+b r0 w+c~r0
~
~
=s1w4 + s0 w3 +d s1w3 +d s0 w²
~
~
~
+ a~ r2 w 4 + r2b w 3 + r2 c~ w ² + a~ r1 w 3 + b r1w ² + c~ r1 w + a~ r0 w ² + b r0 w + c~ r0
~
~
~
~
=(s1 +a~r2)w4 +(s0 +d s1 +r2b +a~r1)w3 +(d s0 +r2c~ +b r1 +a~r0)w²
~
+(c~r1 +b r0)w+c~r0
=w4 +10w3 +33w²+40w+16
Identification :
s1 +a~r2 =1
~
~
s0 + d s1 +r2b +a~r1 =10
~
~
d s0 +r2c~ +b r1 + a~r0 =33
~
c~r1 +b r0 =40
c~r0 =16
r0 =16 c~ =11,4745
~
r1 = 40−~b r0 =29,255
c
0s0 +1s1 + a~r2 =1
~ ~
1s0 + d s1 +b r2 =10−a~r1 ≈10
~
~
d s0 +0s1 +c~r2 =33−a~r0 −b r1 =35,02
Donc
•
•
•
~
R (w)=20,99w²+29,255w+11,4745
~
S (w)= w(w+10,925)
~
~
R (0) ~
11,4745
T (w)= ~ .A0(w)=
.(w+1)²=11,4745w² + 22,949w+11,4745
1
A0(0)
- 19 -
r0 =11,4745
r1 =29,255
r2 =20,99
s0 =10,925
s1 =1
BACINELLO
BLANCHARD
CNAM
EI5
4. Re-passage en z
on pose w= 2 . z −1=γ α avec γ =2 T =20 , α =z −1 , β =z +1
T z +1 β
•
R(z)
S(z)
~
R (w) =aw² +bw+c
~ = w(w+d)
S (w)
avec
a=20,99
b=29,255
c=11,4745
d=10,925
aγ² α² +bγ α +c
R(z)
β
aγ²α²+bγαβ +cβ ²
β²
=
=
or αβ =z²−1 , α²= z² −2z² +1 , β ²= z²+ 2z +1
S(z)
α
²
α
γ²α²+γαβ d
γ² +dγ
β²
β
R(z) aγ²(z²−2z²+1)+bγ(z²−1)+c(z²+2z +1) z²(aγ²+bγ +c)+ z(−2aγ²+2c)+(aγ²−bγ +c)
=
=
S(z)
γ²(z²−2z +1)+γd(z²−1)
z²(γ²+γd)+ z(−2γ²)+(γ²−γd)
(aγ²+bγ +c) (−2aγ²+2c) (aγ²−bγ +c)
+z
+
R(z)
(γ²+γd)
(γ²+γd)
(γ²+γd)
14,54z²−27,11z +12,65
=
=
S(z)
(−2γ²) (γ²−γd)
z²−1,29z +0,2935
z² + z
+
(γ²+γd) (γ²+γd)
z²
•
T(z)
S(z)
~
T (w) =aw² +bw+c
~ = w(w+d) avec
S (w)
a=11,4745
b=22,949
c=11,4745
d=10,925
La formule reste la même
T(z)
=
S(z)
z²
(aγ²+bγ +c) (−2aγ²+2c) (aγ²−bγ +c)
+z
+
(γ²+γd)
(γ²+γd)
(γ²+γd)
8,18z²−14,8z +6,69
=
(−2γ²) (γ²−γd)
z²−1,29z +0,2935
z² + z
+
(γ²+γd) (γ²+γd)
- 20 -
BACINELLO
BLANCHARD
CNAM
EI5
VI. IMPLEMENTATION DU CORRECTEUR RST
Pour rendre le correcteur causal :
•
On divise R(z) & T(Z) par z n +δ 0 = z²
•
On multiplie S(z) par z n +δ 0 = z²
Schéma synthétique
YC (z)
T(z)
z n +δ 0
Rayon d’action de w0 :
Agit sur la réponse du
système aux perturbations
ε(z)
+
-
z n+δ 0
S(z)
U(z)
Y(z)
H(z)
R(z)
z n +δ 0
Rayon d’action de wc :
Agit sur
• la réponse du système aux chgts de consigne
• la rapidité du système
• la robustesse du système
Schémas Simulink :
Degré relatif δ 0 =0 Æ fichier pichrst0wincom.mdl
+/-5V vers ampli de
puissance 1
Consigne utilisateur
Encodeur pitch
Répartition sortie
sur les 2 moteurs
- 21 -
+/-5V vers ampli de
puissance 2
BACINELLO
BLANCHARD
CNAM
EI5
Degré relatif δ 0 =1 Æ fichier pichrst1wincom.mdl
- 22 -
BACINELLO
BLANCHARD
CNAM
EI5
VII. MODIFICATIONS DU CORRECTEUR RST
Pour effectuer un réglage fin du système RST nous utilisons le logiciel de calcul numérique
Matlab qui effectuera tous les calculs fastidieux et répétitifs. Nous disposerons ainsi au final
des 3 polynômes optimum R(z), S(z) et T(z) à partir des horizons wC et w0 (et w f si δ O ≠0 )
que l’on a régler.
Nous utilisons les deux programmes suivants selon le degré relatif de notre correcteur RST.
On se limite à δ 0=0 et δ 0=1
Degré relatif δ 0 =0 Æ fichier rst0.mat
Degré relatif δ 0 =1 Æ fichier rst1.mat
Rst0.m
Rst1.m
(Voir annexes)
(Voir annexes)
A chaque placement d’horizon de commande et d’observation, on observe la réponse
indicielle et la réponse du système PC – hélicoptère aux perturbations et aux changements de
consigne.
Si le cahier des charges n’est pas atteint, on modifie
• w0 : horizon d’observation Æ réglage de la dynamique de réponse sur les
perturbations
• Et/ou wc : horizon de commande Æ réglage de la dynamique de réponse sur la
consigne
• Et/ou δ0 degré relatif du correcteur RST Æ réglage du rejet de bruit et de la robustesse
du système
On re-test jusqu’à atteindre le cahier des charges.
Résultat des tests optimums :
N° de
test
wC
w0
δ0
1
3
2
4
4
5
1
1
1
0
1
1
wf
73
73
Tr95% avec
inclinaison
de 40° (s.)
2,82
2,88
2,51
- 23 -
Tr à la
perturbation
Mg (dB)
Mϕ
(°)
7,26
7,26
6,3
16,787
15,104
14,037
50,324
49,267
50,056
BACINELLO
BLANCHARD
CNAM
EI5
Courbes correspondantes :
TEST 1 : wC =4 , wO =1 , δ 0 =0
Courbes de consigne/codeur de pitch
V1 : consigne
vp : codeur pitch
Tr = 2,82
Courbe de réponse à une perturbation
Tr = 7,26
- 24 -
BACINELLO
BLANCHARD
CNAM
EI5
TEST 2 : wC =5 , wO =1 , δ 0 =1 , w f =73
Courbes de consigne/codeur de pitch
V1 : consigne
vp : codeur pitch
Tr = 2,88
Courbe de réponse à une perturbation
Tr = 6,3
- 25 -
BACINELLO
BLANCHARD
CNAM
EI5
TEST 3 : wC =4 , wO =1 , δ 0 =1 , w f =73
Courbes de consigne/codeur de pitch
V1 : consigne
vp : codeur pitch
Tr = 2,82
Courbes de commande des moteurs
VM1
VM2
- 26 -
BACINELLO
BLANCHARD
CNAM
EI5
On constate que le passage du RST de degré relatif 0 au RST de degré relatif 1 (Test 1 Æ Test
3) n’apporte pas d’amélioration notable sur les temps de réponse comme prévoie la théorie
mais permet une meilleure robustesse du système et un rejet du bruit HF sachant que ce
dernier n’est pas exploité sur cette maquette.
Ainsi il est possible d’augmenter raisonnablement l’horizon de commande sur le RST 1 pour
augmenter la rapidité. Nous atteignons au final un temps de réponse de 2,51 s. sur un
changement brutal de la consigne (de 0° de pitch a 40° de pitch).
A priori ce temps pourra être améliorer par un placement de pôle plus judicieux.
- 27 -
BACINELLO
BLANCHARD
CNAM
EI5
VIII. POURSUITE DU TRAVAIL/PERSPECTIVES
•
Identifier le système (moteur – élévation) avec les autres axes bloqués.
Calculer le RST optimum.
Implémenter le RST pour commander l’élévation.
•
Identifier le système (moteur – travel) avec les autres axes bloqués.
Calculer le RST optimum.
Implémenter le RST pour commander le travel.
•
Remplacer le système d’asservissement PID sur les 3 axes par un système
d’asservissement entièrement RST.
Faire fonctionner l’ensemble et comparer avec l’ancien système d’asservissement par
PID
IX. BIBLIOGRAPHIE
•
Les Correcteurs RST – M. Nazi Mechbal
- 28 -
BACINELLO
BLANCHARD
CNAM
EI5
X. ANNEXES
Degré relatif δ 0 =0 Æ fichier rst0.mat
Rst0.m
%------------------------------------------------------------------------%
%Prg de calcul de RST Num avec fct tr. a corriger H(p)=K/(p.(1+tau.p))
%et degré relatif = 0
%------------------------------------------------------------------------%
%-----------------%
clear all;
clc;
%-----------------%
%--Fct de transfert du systeme a corriger---%
B = [0 0 1.3947];
%Dénominateur continu
A = [1 0.5263 0];
%Numérateur continu
sysc = tf(B,A);
%Fct transfert
%-------------------------------------------%
%--Discrétisation/Tustin--------------------%
sysd = c2d(sysc,0.1,'zoh');
%Discrétisation Avec T=0.1 et bloqueur odre 0
sysw = d2c(sysd,'tustin');
%Equivalent continu systeme échantillonné : transf. de Tustin
[B_w,A_w] = tfdata(sysw,'v');
%Extraction des polynomes de w
sysBO_w = tf(B_w,A_w);
margin(sysBO_w);
%Tracé de Bode
p_BO = roots(A_w);
p_BO_1 = p_BO(1);
p_BO_2 = p_BO(2);
%Calcul poles en boucle ouverte
%--Placement des horizons-------------------%
Wc=4;%input('Wc?')
%Saisie horizon de commande
W0=1;%input('W0?')
%Saisie horizon d'observation
%-------------------------------------------%
%--Placement poles de Ac--------------------%
RealAc_p_BO_1=real(p_BO_1);
RealAc_p_BO_2=real(p_BO_2);
if -Wc<real(p_BO_1)
RealAc_p_BO_1=-Wc;
end
if -Wc<real(p_BO_2)
RealAc_p_BO_2=-Wc;
end
poles_Ac = [RealAc_p_BO_1+j*imag(p_BO_1);RealAc_p_BO_2+j*imag(p_BO_2)];
Ac = poly(poles_Ac);
%--Placement poles de A0--------------------%
RealA0_p_BO_1=real(p_BO_1);
RealA0_p_BO_2=real(p_BO_2);
if -W0<real(p_BO_1)
RealA0_p_BO_1=-W0;
end
if -W0<real(p_BO_2)
RealA0_p_BO_2=-W0;
end
poles_Ao = [RealA0_p_BO_1+j*imag(p_BO_1);RealA0_p_BO_2+j*imag(p_BO_2)];
Ao = poly(poles_Ao);
%--Calcul RST en w--------------------------%
[R_w,S_w,T_w,Abf] = placepol(B_w,A_w,[1 0],[1 0],1,Ac,Ao,1,1);
%--Calcul RST en z--------------------------%
RST_w=[ tf(R_w,S_w) ; tf(T_w,S_w) ]
RST=c2d(RST_w,0.1,'tustin');
[R,S] = tfdata(RST(1),'v');
% calcul de R(z), S(Z) et T(z)
[T,S] = tfdata(RST(2),'v');
- 29 -
BACINELLO
BLANCHARD
CNAM
EI5
Degré relatif δ 0 =1 Æ fichier rst1.mat
Rst1.m
%------------------------------------------------------------------------%
%Prg de calcul de RST Num avec fct tr. a corriger H(p)=K/(p.(1+tau.p))
%et degré relatif = 1
%------------------------------------------------------------------------%
%-----------------%
clear all;
clc;
%-----------------%
B=2.65;
A=[1.9 1 0] ;
sysc=tf(B,A);
% fonction de transfert
G(p)=B(p)/A(p)
sysd=c2d(sysc,0.1,'zoh');
% discrétisation du système à la période
% T = 0.1 s --> sysd(z)=Z[Bo(p)sysc(p)]
sysw=d2c(sysd,'tustin');
% équivalent continu du système échantillonné
% sysw(w)=sysd(z) avec
z=(1+wT/2)/(1-wT/2)
[B_w,A_w]=tfdata(sysw,'v');
% extraction de B_w(w) et A_w(w)
% B_w=[B_w(1) B_w(2) B_w(3)]
% A_w=[A_w(1) A_w(2) A_w(3)]
p_BO=roots(A_w);
p_BO_1=p_BO(1);
p_BO_2=p_BO(2);
% Calcul des pôles en boucle ouverte
omegaC=input('omegaC?');
omegaO=input('omegaO?');
omegaF=input('omegaF?');
% saisie des horizons omegaC, omegaO, omegaF
p_Ac_1=-omegaC+j*imag(p_BO_1);
p_Ac_2=-omegaC+j*imag(p_BO_2);
% placement des pôles de Ac
poles_Ac=[p_Ac_1;p_Ac_2];
Ac=poly(poles_Ac);
% calcul de Ac
p_Ao_1=-omegaO+j*imag(p_BO_1);
p_Ao_2=-omegaO+j*imag(p_BO_2);
p_Ao_3=-omegaF;
poles_Ao=[p_Ao_1;p_Ao_2;p_Ao_3];
Ao=poly(poles_Ao);
% placement des pôles de Ao
% calcul de Ao
% Calcul du régulateur RST qui utilise le programme 'placepol'.
[R_w,S_w,T_w,Abf]=placepol(B_w,A_w,[1 0],[1 0],1,Ac,Ao,1,1);
numBO_w=conv(B_w,R_w);
denBO_w=conv(A_w,S_w);
sysBO_w=tf(numBO_w,denBO_w);
margin(sysBO_w)
RST_w=tf({R_w;T_w},{S_w;S_w});
RST=c2d(RST_w,0.1,'tustin');
[R,S]=tfdata(RST(1),'v')
[T,S]=tfdata(RST(2),'v')
% calcul des marges de stabilité obtenues
% calcul de R(z), S(z) et T(z)
- 30 -

Documents pareils