Vous êtes sur la page 1sur 24

Ministère de l'Enseignement Supérieur et de la

recherche scientifique
ECOLE NATIONALE POLYTECHNIQUE
I. Introduction :

L’approche loop-shaping consiste en l’obtention d’une spécification relative à la boucle


ouverte de l’asservissement à partir de spécifications relatives à divers transferts en boucle
fermée. Parce qu’il est plus simple de travailler sur un unique transfert (la boucle ouverte)
plutôt que sur une multitude de transferts bouclés, cette approche s’avère particulièrement
adaptée au contexte industriel.

II. Objectif du TP :
La réalisation de la synthèse des régulateurs par loop shaping sur un système MIMO
découplé.

III. Travail demandé :


1- Pour a=1 la synthèse de régulateur de decoupleur :
LES SIMULATIONS :
Le schéma simulink découplé :

La sortie Y1 avec une entré échelon :


LA sortie Y2 avec une entré sinusoïdale :

Remarque :
On constate que notre systéme est très bien découplé , il n y a pas
d’interaction entre la 1ére et la 2éme sortie , chaque sortie suit la
consigne séparément .
Et donc notre choix de parité est correcte également

Q2/ la synthèse de régulateur R(S)= [ ] afin d’imposer en Bo

=| |
Les simulations :
Script :

Pour wc=1

Telle que :

[ ]

Pour wc =2

[ ]
Q3/ La synthèse de R(s) pour loop shoping classique :(wc=0.8, MP=45°,R(s)= )

On a

Comme GD(s)=[ ] (pas d’intégration) ce qui implique que

1 donc GD(s)

Diagramme de bode de GD(s) :

Le script :

s=tf('s')
G=[1/(s+1) 1/(s+2);1/(s+3) 1/(s+4)];
G0=[1 1/2;1/3 1/4];
MG=G0.*inv(G0');
D=[1 -(s+1)/(s+2);-(s+4)/(s+3) 1]
GD=G*D
GBOd=[1/s 0;0 1/s];
R=inv(GD)*GBOd
GLBO=(1/s)*GD
bode(GLBO)

Le diagramme :

Dans la 1ere itération on a trouvé pour wc=0.8 k= 3,5

On a une avance de phase de 31 °


{

a=0.45 et b=1.4 et n=1


Alors (s)= ( )

DIARAMME DE BODE de RD(s) :

Diagramme de bode de (s)

Script :
On a a wc =0.8 une marge de phase de 45 et d’amplitude non nulle donc on
doit changer la valeur de k=10.8-10log( )=5.89db =1.97

2eme itération : pour k=1.97


Script :

s=tf('s')
G=[1/(s+1) 1/(s+2);1/(s+3) 1/(s+4)];
G0=[1 1/2;1/3 1/4];
MG=G0.*inv(G0');
D=[1 -(s+1)/(s+2);-(s+4)/(s+3) 1]
GD=G*D
RD=((s/0.45)+1)/((s/1.4)+1)
G1BO=(1.97/s)*(2/(s^3+6*s^2+11*s+6))*(((s/0.45)+1)/((s/1.4
)+1))
bode(G1BO)

Pour le 2eme système :

Pour wc=0.8 on a k=11.22 et avance de phase de 3° (négligeable)

Alors (s)=
Script :

k=11.2
RS=tf(k , [1 0] )
GD2=tf(2 , [1 9 26 24])
GBO2=RS*GD2
bode(GBO2)

Diagramme de bode :

Pour Wc =0.8
On a la marge de phase : -180+138 = -42 degré
Phi = -42 + 45 = 3 degré
Et pour wc=0.8 on a une amplitude (en db) différente de zéros donc on doit changer le gain k
Si on prend k=11 on a :
Remarque : lorsque la valeur de K change cela n’influence pas sur la phase , cette dernière
reste constante

Q4/

 Script pour la partie 1 :


D=[1 -(s+1)/(s+2);-(s+4)/(s+3) 1];
GD=G*D;
GdBO=[1/s 0;0 1/s];%la MFT Desiree
[K,CL,GAM,INFO]=loopsyn(GD,GdBO)
sigma(GD*K,'r',GdBO*GAM,'k-.',GdBO/GAM,'k-
.',{.1,100}) % plot result
legend('GD*K','GdBO*GAM','GdBO/GAM')
[n,d]=ss2tf(K.a,K.b,K.c,K.d,2);%la premiere ligne de
vecteur n contient uniquement des zeros donc on
prefere de travailler uniquement avec la 2eme ligne
Robtenu=[tf(n(2,:),d) 0;0 tf(n(2,:),d)]
disp(order(Robtenu))
%le regulateur obtenu est d'ordre 28
Regreduit=balred(Robtenu(1,1),5)%reduction de l'ordre

Les résultats de command window ´ :


Regreduit =

3.438e10 s^4 + 3.095e11 s^3 + 8.94e11 s^2 + 8.252e11 s - 0.07745


------------------------------------------------------------------------
s^5 + 1.229e04 s^4 + 5.036e07 s^3 + 6.882e10 s^2 + 0.05567 s + 5.716e-15
 Script pour la partie 2 :
s=tf('s')
G=[1/(s+1) 1/(s+2);1/(s+3) 1/(s+4)];
G0=[1 1/2;1/3 1/4];
MG=G0.*inv(G0');
D=[1 -(s+1)/(s+2);-(s+4)/(s+3) 1];
GD=G*D;
g1=GD(1,1);
g2=GD(2,2);
%GENERATION DES FILTRES
W1=makeweight(50,5,0.5); %filre passe bas
W3=makeweight(0.5,20,20);%filre passe haut
figure;bode(W1);title('W1');
figure;bode(W3);title('W3');
[W1n,W1d]=ss2tf(W1.a,W1.b,W1.c,W1.d);
[W3n,W3d]=ss2tf(W3.a,W3.b,W3.c,W3.d);
W1s=tf(W1n,W1d);
W3s=tf(W3n,W3d);
W2s=[];
[R1,a,b,c]=mixsyn(g1,W1,[],W3);
[R2,a2,b2,c2]=mixsyn(g2,W1,[],W3);
%LES REGULATEURS
[R1n,R1d]=ss2tf(R1.a,R1.b,R1.c,R1.d)
[Rn2,Rd2]=ss2tf(R2.a,R2.b,R2.c,R2.d)
%la T DE LA PLACE DES REGULATEUR obtenus avec la
fonction mixsyn
R1Hinf=tf(R1n,R1d);
R2Hinf2=tf(Rn2,Rd2);
R=[R1Hinf 0;0 R2Hinf2]
[R,CL,GAM,INFO]=mixsyn(GD,W1s,W2s,W3s)
GBO=GD*R; % loop transfer function
S=inv(1+GBO); % Sensitivity
T=1-S; % complementary sensitivity
sigma(S,'g',T,'r',b/W1s,'g-.',GAM/W3s,'r-.')
legend('S','T','GAM/W1','GAM/W3')
%simulation 'reponse a un echlon' en BF
figure;step(R1Hinf*g1/(1+R1Hinf*g1));title('Réponse à
un echelon g1bf');
figure;step((R2Hinf2*g2)/(1+R2Hinf2*g2));title('Répon
se à un echelon g2bf');
 On retrouve dans le command window :

Les fonctions de transfert des 2 W1 et W2 (les filtres ):

Les resultas de
%LES REGULATEURS
[R1n,R1d]=ss2tf(R1.a,R1.b,R1.c,R1.d)
[Rn2,Rd2]=ss2tf(R2.a,R2.b,R2.c,R2.d)

Les régulateurs obtenu (avec la transformation de la place )


La MFT DE R :

 Les graphes résultants :


1-les filtres générés W1 ET W3 :
Filtre Passe bas W1

Filtre passe haut


La Réponse a un echlon :

Pour système 1 g1 :

On remarque bien que le système est stable


De g2 en BF :

Conclusion :

-La matrice des gains relatives nous permet de faire le bon choix de parité à fin de bien découpler le
système sans avoir d’interactions entre les deux fonctions de transferts résultantes , cette dernière
simplifie l’étude des systèmes.

-La méthode du LOOP-Shaping est très difficile à appliquer, il faut plusieurs itérations pour choisir le
bon régulateur et parfois ce n’est pas aussi évident de le faire -L’option LOOP-syn fait l’étude d’elle-
même et permet de choisir directement le bon régulateur.

-La synthèse des régulateurs dans l’espace H infini est plus précise que celle par le loopshaping
classique.

Vous aimerez peut-être aussi