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 -