Vous êtes sur la page 1sur 12

2015/2016

Commande optimale temps discret


TP 3 : Commande optimal LQG

Master 2 EEA Universit de Perpignan Via Domitia


Responsable : Julien Eynard (Laboratoire PROMES-CNRS)
Dure : 1 sance de 3 heures

KARIM BENACHIRE

Introduction :

Une salle blanche (ou plus exactement salle propre selon la norme ISO 14644-1) est une pice ou
une srie de pices o la concentration particulaire est matrise afin de minimiser l'introduction, la
gnration, la rtention de particules l'intrieur, gnralement dans un but spcifique industriel ou
de recherche scientifique. Les paramtres tels que la temprature, l'humidit et la pression relative
sont galement maintenus un niveau prcis (dfinition selon la norme ISO 14644-1).

Les salles blanches sont utilises dans les domaines sensibles aux contaminations
environnementales : la fabrication des dispositifs semi-conducteurs, les biotechnologies et d'autres
domaines de la biologie, l'industrie agroalimentaire, gnralement dans les salles de tranchage, la
construction d'engins spatiaux, la prparation des produits pharmaceutiques striles, la construction
d'optique ou de micro-mcanismes, dans les hpitaux pour les blocs opratoires ou de bactriologie.
Ces salles sont galement utilises dans le cadre de la recherche mdicale pour la fabrication de
radiolments par exemple.

Dans ces domaines, les objets et substances manipuls ont des tailles de l'ordre du micromtre ou du
nanomtre et les particules prsentes dans l'air non purifi peuvent tre bien plus grosses et se fixer
dessus. D'autre part, les expriences chimiques ou bactriologiques effectues peuvent tre
dangereuses pour l'homme ou l'environnement. Ces travaux sont susceptibles d'tre sensibles aux
variations de pression, de temprature, d'humidit ou la prsence de gaz, vapeurs chimiques ou
matire radioactive, dans le cas de la fabrication d'isotopes. L'clairage peut tre galement contrl
pour les oprations sensibles aux ultraviolets comme la photolithographie, aux infrarouges ou
certaines frquences du spectre lumineux pour l'optique. Des exigences de ventilation nuclaire et
de radioprotection peuvent galement s'imposer dans ces espaces. (Source : Wikipdia, salle
blanche )

Description du systme piloter :

Partie 1 : Dfinition et Etude du


systme.
1/ nous nous intressons ltude de ce systme ,il est possible de dterminer une fonction

de transfert discrte entre la puissance dlivre par le systme de chauffage/climatisation et


la temprature ambiante.
Le script suivant dcrit ltude du systme :
clc
clear
close all
% partie 1 : dfinition et tude dy systme
H=1;
bruitstr=eye(2);
bruitmes=128;
Te= 1;
NUM= [0.03 0.03];
DEN = [1 -1.8 0.81]
sys= tf(NUM,DEN,Te,'TimeUnit','minutes')
[F,G,C,D]=tf2ss(NUM,DEN)
sys1=ss(F,G,C,D,Te,'TimeUnit','minutes')
figure(1)
step (sys1)
title('Rponse indicielle du systme');
xlabel('Temps en minute');
ylabel('Temprature C');
Parametres = stepinfo(sys1,'SettlingTimeThreshold',0.05)
vpf=eig(sys1)
figure(2)
bode (sys1)

on aura :

-On a un gain statique de 6 C si on augmente de 1Kw on gagne 6C et on remarquons une


coupure brusque au diagramme de module cause de la discrtisation du systme .

-le diagramme de phase lallure sarrte Pi =3.14 rad/sec .

Partie 2 : Observateur dtat optimal :

La dmonstration de ltude de lobservateur dans le scripte suivant :

On vrifie la commandabilit et lobservabilit et on effectue leurs test avec les


commandes ctrb ,obsv et rank :

COsys = ctrb(F,H*sqrt(bruitstr));
if rank(COsys)==2
disp('le systme est commandable')
else
disp('le systme nest pas commandable')
end
OBsys1=obsv(F,C);
if rank(OBsys1)==2
disp('le systme est observable')
else
disp('le systme n"est pas observable')
end

On calcule le gain de lobservateur L :

Q=1;
Qp=1;
Qa1=[H*Q*H' 0;0 Qp];
[M,Vpbf,L] = dare(F',C',Qa1,bruitmes)
L=L'Fobf=F-L*C
VpFobf=eig(Fobf)

partie 3 : commande par retour d'tat


optimale
en phase commande optimale on calcule le grain K en ajoutant cette fois-ci un intgrateur.
Alors nous aurons un systme augment dont nous prcisons les quatre matrices de sa
reprsentation dtat, puis nous tudions la stabilisabilit de (Fa, Ga) et la dtectabilit de la
paire (F, Q1 /2N) avec Q=1.
Le programme suivant reprsente ltude de cette commande optimale :
fa=[F zeros(2,1);C 1]
Ga=[G;0]
Ca=[C 0]
Daa=[0]
COsys1 = ctrb(fa,ga)
if rank(COsys1)==3
disp('la paire (Fa,Ga) est commandable')
else
disp('la paire (Fa,Ga) nest pas commandable')
end
OBsys1=obsv(F,sqrt(Q)*C);
if rank(OBsys1)==2
disp('la paire (F,sqrt(Q)*C) est observable')
else
disp('la paire (F,sqrt(Q)*C) nest pas observable')
end

-Programme de calcule du gain dobservateur :


R=0.008;
Qa2=[C'*Q*C zeros(2,1) ;0 0 Qp];
[P,Vpbf,K] = dare(fa,ga,Qa2,R)
Fcbf=fa-ga*K
VFcbf=eig(Fcbf)
K1=[K(1,1) K(1,2)]

K2=K(1,3)

partie 4 :
Synthseobservateur/contrleur :
cette partie on traite les fonctions de transfert de a boucle ouverte , de la boucle fermes
et de la fonction de sensibilit dans le but de calculer la rponse du systme et analyser les
marges de robustesse.
Pour cela nous avons programm ce qui suit :
-

On dfinit les matrices du systme de commande :

Fco=[F-L*C-G*K1 -G*K2;0 0 1]
Gco=[L zeros(2,1);1 -1]
Cco=-[K1 K2]
Dco=[0 0]
-

On les mettent on forme de reprsentation dtats :

sys2=ss(Fco,Gco,Cco,Dco,Te,'TimeUnit','minutes')

on calcule la fonction de transfert R(z)/S(z) avec la commande :

[NUM1,DEN1] = ss2tf(Fco,Gco,Cco,Dco,1)
NUM1=-1*NUM1;
RS=minreal(tf(NUM1,DEN1,Te,'TimeUnit','minutes'))
-

On calule de la fonction de transfert T(z)/S(z) avec la commande :

[NUM2,DEN2] = ss2tf(Fco,Gco,Cco,Dco,2)
TS=minreal(tf(NUM2,DEN2,Te,'TimeUnit','minutes'))

calule de la fonction de transfert en boucle ouverte avec la commande :

Hbo=minreal(sys*RS)
-

calule de la fonction de transfert en boucle ferm avec la commande :

Hbf=minreal((sys*TS)/(1+Hbo))

calule de la fonction de transfert sensibilit avec la commande :

Hsens=minreal(1/(1+Hbo))

figure(3)
step (Hbf)
title('Rponse indicielle du systme en boucle ferme ');
xlabel('Temps en minute');
ylabel('Temprature C');

Parametres2 = stepinfo(Hbf,'SettlingTimeThreshold',0.05)
figure(4)
margin(Hbo)
[Gm,Pm,Wcg,Wcp] = margin(Hbo)
Gm_dB = 20*log10(Gm)

on calcule les marges :

Mm=1/max(bode(Hsens)) % marge de module


disp(['marge de gain : Gm = ',num2str(Gm_dB),'dB'])
disp(['marge de gain : Pm = ',num2str(Pm),'deg'])
disp(['marge de gain : Mm = ',num2str(Mm),''])

On aura les graphe et les diagrammes on a mis le systme quon a rentr sous forme
dune reprsentation dtat pour ensuite tracer sa rponse indicielle en boucle ferme et le
diagramme de bode ci-dessous :
-

On remarque que en sortie le systme suit bien la consigne puisque nous avons une rponse
indicielle en boucle ferme converge vers 1.

Partie 5 : test simulink :

Vous aimerez peut-être aussi