Régulateur rst boule sustenstation

COURTIAL Mathieu FIGUET Benoit

AC221 P2014

TP2 AC221 Synthèse d’un régulateur RST, Application à la commande d’une balle en sustentation dans un tube d’air.

Introduction :
Ce deuxième TP d’automatique, va nous permettre de modéliser un régulateur RST à l’aide de la méthode vue en cours tout en respectant le cahier des charges donné. Dans le précédent TP, nous avions réussi asynthétiser un régulateur PID afin de commander la position d’une balle dans un tube d’air. Cette fois ci nous essaierons de réguler le même système mais à l’aide régulateur de type RST.

I- Exemple Générique :
On souhaite commander un système constitué d’une masse circulant sur un rail. La masse est mise en mouvement par l’intermédiaire d’une courroie crantée entraînée par un motoréducteur à courantcontinu. Le comportement dynamique de ce système est décrit par la fonction de transfert :

a) Diagramme de Bode et de Nyquist de la fonction de transfert :

Voici le diagramme de bode :

Voici le diagramme de nyquist :

On remarque aussi que le système est intégrateur. On peut aussi vérifier cela sur le diagramme de Nyquist car il y a des branches infinies. b) Synthèse du régulateur RST : Lerégulateur RST doit respecter les points suivants : ? Un comportement en boucle fermé du second ordre caractérisé par z = 0,7 ,wn = 60 rad / s et un gain statique égal à 1. ? Le rejet des perturbations constantes en sortie ( y d ). ? une marge de module au moins égale à 0,5 (rappel : l’ajustement de cette marge se fera en jouant sur les pôles de filtrage). Pour réaliser cela nous allons créer unefonction sous Matlab permettant de déterminer le pole de filtrage correspondant au cahier des charges et ainsi trouver la forme du régulateur RST en résolvant le système de Sylvester. Voici le script Matlab :

psi=0.7; wn=60; MMminimal=0.5; m=0; pf=32; %Début de la boucle qui a pour but de trouver la valeur du pole de filtrage %pour avoir une marge e gain inférieure à 0.5 while (m < MMminimal)a2=0; a1=102; a0=1; b=1100; B=b i=0.01; NUM=[b]; DEN=[a0 a1 a2]; ftransfert = tf (NUM,DEN); lambda=(wn*wn/b); P=[1/(wn^2) 2*psi/wn 1]; c=[1 pf]; C = conv(c, conv(c,c)); D=[conv(P,C)]; D2=transpose(D); % pour mettre le D sous forme de vecteur colonne T=lambda * C; %Matrice de Silvester Silvester=[a0 0 0 a1 a0 0 a2 a1 a0 0 a2 a1 0 0 a2 0 0 0 0 0 0 b 0 0 0 0 0 0 b 0 0 0 0 0 0 b]; %levecteur solution est: Sol=(inv(Silvester)*D2); %Régulateur RST S=[Sol(1) Sol(2) Sol(3) 0]; R=[Sol(4) Sol(5) Sol(6)]; T=[conv(Sol(6),C)]; A=[a0 a1 a2]; H1=conv(b,T); H2=conv(A,S); H3=[0 0 0 conv(b,R)]; fbf=tf(H2,D); [G,ph]=bode(fbf); m=(1/max(G)) pf =(pf + i) end Ce script nous a permis de trouver un pole de filtrage de 33.22, ainsi nous avons donc nos trois polynômes RST : R = -0.0090p² +3.7849p 33.2977 S = 0.0003p3 + 0.0227p² + 1.9309p 3 T = 33,2976774190902 p + 3317,44760126393p² + 110172,434837974p +
1219608,85365637 Voici le diagramme de bode de la fonction de sensibilité du système :

c)Réponse à un échelon du système régulé :

Avec les paramètres des correcteurs calculés précédemment, voici la réponse à un échelon du système en boucle fermée.

Quelques commentaires :- On a bien un comportement du second ordre… – De plus le dépassement est assez faible et ce n’est pas un hasard puisque le coefficient m d’amortissement a été choisi à 0,7 – Malgré tout le système reste assez rapide en établissement

d) Rejet des perturbations en entrée et en sortie :

Nous avons alors testé notre système avec le correcteur sous l’environnement Simulink :

En entré nousmettons un échelon, puis deux perturbations en entrée et en sortie sous forme de step. Nous observons en sortie :

Nous en déduisons que notre système est bien régulé, vu que les perturbations en entrée et en sortie ne provoquent pas trop d’oscillations et que la courbe reviens toujours à 1. Nous avons ainsi validé nos paramètres.

e)Diagramme de bode de la fonction de sensibilité :

Nous…