You are on page 1of 27

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Architecture des Systme dInformation INSA de Rouen Dpartement ASI

18 / 06 / 2004 1

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

COMMANDE DUN PONT ROULANT


MINI-PROJET DAUTOMATIQUE 2003 2004 objectif de ce projet est la ralisation de la commande par retour dtat dun pont roulant. Cette commande est ensuite compare aux performances dun rgulateur classique de type PID. Nous allons donc au travers de ce mini-projet mettre en application nos connaissances pour raliser lasservissement du pont roulant dont voici le schma :

Partie 1 : dtermination du modle linaire du pont roulant


Le modle non linaire du systme est donn par : M c M b x c M b lcos 2 Mbl M b lcos x c Bb M b l 2 sin M b glsin
2

Bc x c F 2 M b lsin

xc

o Bc et Bb sont des coefficients de frottements visqueux. avec M c 1000 Kg , M b 4000 Kg ,l 10 met g 9.81 m.s

1. Modle linaris du systme


On fait lhypothse que les frottements visqueux sont nuls et que lexcursion angulaire est faible donc : Bc = Bb = 0 on ngligera les termes dordre 3

INSA de Rouen Dpartement ASI

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

On ralise le dveloppement limit de cos() et sin(). On obtient les deux quations suivantes :
2

c 2

M b xc

M bl 1
2

2 xc Bb

M bl

Bc x c 2 M bl

F 0

M bl

M bl 1

M b gl

On applique les hypothses dfinies ci-dessus nos deux quations :


M c M b xc M b l F 2 M b l x c M b gl Mbl 0

2. Modle dtat linaris du systme


On choisira comme variable pour notre modle dtat : x1 : position du chariot, x2 : vitesse de dplacement du chariot, x3 : angle du filin, x4 : vitesse angulaire du filin. On exprime x 2 en fonction de X et F: M c M b x2 M bl x4 F 2 M b l x 4 M b l x 2 M b gl x3 0
1 2 1 l M c M b x2 M bl x4 l F 2 M b l x 4 M b l x 2 M b gl x 3 0 2 l M c M b x 2 M b l 2 x 4 M b l 2 x 4 M b l x 2 M b gl x 3 l F l M c M b x 2 M b l x 2 M b gl x 3 l F M c x2 M b g x3 F Mb 1 x2 g x3 F Mc Mc
2

On exprime x 4 en fonction de X et F: 2 M b l x 4 M b l x 2 M b gl x 3 0
On remplace x 2 dans l ' quation : M 1 F M b l 2 x4 M b l g b x3 Mc Mc M b2 x M b l x 4 gl Mc 3 Mb l x4 g M b x3 Mc Mb M c l x4 g x3 Mc Mb Mc x4 g x3 lMc
2

M b gl x3 0

Mb lF Mc 1 F Mc 1 F Mc 1 F lMc

M b gl x 3 0

INSA de Rouen Dpartement ASI

Projet dAutomatique
x1 xc x2 Mb 1 x2 xc g x3 F Mc Mc x3 x4 Mb M c x4 g x3 l Mc

Commande dun pont roulant

BUREL - COUFOURIER

1 F lMc

A partir des quatre quations, on peut former le modle dtat de notre systme :
0 1 0 Mb g Mc 0 M b Mc g l Mc 0 0 1 0 0

x1 x2 x3 x4

x1 x2 x3 x4

0 0 0 0 0 0

1 Mc 0 1 lMc

Y =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

x1 x2 x3 x4

La matrice de sortie C est une matrice identit de dimension 4 x 4.

3. Schma fonctionnel correspondant lquation dtat :

Comme on peut le voir sur ce schma fonctionnel, tous les tats du systme sont commandables, il suffit de suivre les liens entre lentre F et les sorties X x2 est directement commandable par F, Le fait de modifier x2 permet de modifier x1 donc x1 est aussi commandable, Il en va de mme pour x3 et x4.

INSA de Rouen Dpartement ASI

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

4. Simulation du comportement du chariot en rponse un chelon de force F = 1kN


Position du chariot (Systme en boucle ouverte)

(en ms)

Vitesse de dplacement du chariot (Systme en boucle ouverte)

(en ms)

INSA de Rouen Dpartement ASI

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Angle du filin (Systme en boucle ouverte)

(en ms)

Vitesse angulaire du filin (Systme en boucle ouverte)

(en ms)

INSA de Rouen Dpartement ASI

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

A la vue des graphes du comportement du chariot, on peut observer les ractions suivantes : La valeur de la position du chariot tend vers linfini lorsque le temps tend vers linfini. Il en va de mme pour la vitesse de dplacement, celle-ci nest pas asservie. Langle et la vitesse angulaire du filin prsentent des rgimes oscillatoires.

On peut donc en dduire que le systme prsente une instabilit complte. La vitesse et la position du chariot ne sont pas rgules, ce qui peut mener une destruction du pont roulant. Enfin les variations de langle du filin peuvent tre dangereuses aussi bien pour le systme que pour le personnel proximit de celui-ci : mme si ces variations dangles sont faibles, quelques degrs peuvent impliquer un dplacement de plusieurs mtres au bout du filin.

Partie 2 : Analyse du modle linaire


1. Analyse de la commandabilit
Mcommandabilit = C( A , B ) = [ B AB AB ] 0 0.001 Mcommandabilit = 0. -0.0001 Rang( Mcommandabilit ) = 4 Le rang de la matrice de commandabilit est gal n = 4 (avec n tel que A est compltement commandable.
n n

0.001 0 0.0001 0.

0 0.003924 0 0.0004905

-0.003924 0 0.0004905 0

) donc notre systme

2. Analyse de lobservabilit
La sortie mesure est la position du chariot seule: C1 = [ 1 0 0 0 ] MobservabilitC1 = O( C1 , A ) = [ C1 C1A C1A ]T 1 0 0 0 0 1 0 0 0 0 39.24 0 0 0 0 39.24

MobservabilitC1 =

Rang( MobservabilitC1 ) = 4
n n Le rang de la matrice dobservabilit est gal n = 4 (avec n tel que A ) donc notre systme est compltement observable lorsque la sortie mesure se trouve tre la position du chariot seule.

INSA de Rouen Dpartement ASI

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Si lon tudie lobservabilit du site en considrant C1, on constate que la reconstruction des tats partir de x1 est possible : On rcupre x2 en drivant x1 on peut reconstruire x3 par la connaissance de F et x 2 (en drivant x2) et enfin on dtermine x4 en drivant x3 Par la seule connaissance de x1 et de F, on peut reconstruire lensemble des tats de notre systme. Le schma fonctionnel confirme donc le fait quil est compltement observable. La sortie mesure est langle du filin seul : C2 = [ 0 0 1 0 ] MobservabilitC2 = O( C2 , A ) = [ C2 C2A C2A ]T 0 0 0 0 0 0 0 0 1 0 -4.905 0 0 1 0 -4.905

MobservabilitC2 =

Rang( MobservabilitC2 ) = 2
n Le rang de la matrice dobservabilit est gal 2 n (avec n tel que A partiellement observable lorsque la sortie mesure est langle du filin seul. n

) donc notre systme est

Si on tudie lobservabilit du site en considrant C3 cette fois-ci, on peut observer que la reconstruction des tats partir de x3 nest pas possible : On rcupre x4 en drivant x3 on ne peut pas reconstruire x2 car les conditions initiales ne sont pas connues ce qui rend impossible lintgration de x 2 (dtermin partir de la connaissance de x3 et de F). La seule connaissance de x3 et de F nest donc pas suffisante pour pouvoir reconstruire lensemble des tats de notre systme. Le systme nest pas complment observable (ce qui confirme nos calculs).

Partie 3 : Asservissement par retour dtat


On cherche maintenant corriger notre systme afin de le rendre stable et conforme au cahier des charges fix : Rgime transitoire assez bien amorti et assez rapide D% < 5% Tm = 25s pour un dplacement r(t) = 100m Erreur statique nulle en rgime permanent

INSA de Rouen Dpartement ASI

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Traduction du cahier des charges


D% < 5% = 0.7 Tm = 25s Wn = 3.29 / Tm = 0.1316 rad / s Ples de notre systme en boucle ouverte : 1 = 2 = 0 , 3 = j 2.215 et 4 = -j 2.215 Tous les ples de notre systme sont partie relle nulle. Ce dernier est donc la limite de la stabilit. On dtermine les ples de notre systme en boucle ferme 2 j n 1 0.09212 j 0.09398 1 n
2 j n 1 0.09212 j 0.09398 On dtermine les 2 autres ples fantmes : il ne doivent pas influencer les deux ples 1 et 2. 5 j et 5 j On les choisit donc plus petits : 3 4 2 n

On calcule par Scilab, partir de nos ples, la matrice de retour dtat K : K = [ 717.19317 6379.6152 - 227078.67 - 38506.848] On forme notre prfiltre : S
C1
1 A B K
1

= 717.19317
A BF B BF C BF D BF A B.K B.S C 1 BK D

Nos matrices en boucle ferme deviennent donc :

1. Simulation du comportement du systme asservi pour une consigne r(t) = 50m


Position du chariot (Systme en boucle ferme) Rgime transitoire Rgime stationnaire

50

t
INSA de Rouen Dpartement ASI

(en ms)

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Vitesse de dplacement du chariot (Systme en boucle ferme)

(en ms)

Angle du filin (Systme en boucle ferme) Rgime transitoire Rgime stationnaire

(en ms)

INSA de Rouen Dpartement ASI

10

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Vitesse angulaire du filin (Systme en boucle ferme)

(en ms)

A la vue de ces graphiques, on peut dj mieux analyser et imaginer les ractions quauraient dans la ralit le pont roulant : 0. Le pont roulant est larrt. 1. On active le dplacement du chariot ; sa vitesse augmente et celui-ci se dplace. Le mouvement du chariot entrane une modification de langle du filin qui revient trs rapidement une valeur nulle lorsque la vitesse du chariot se stabilise. Ceci implique les variations de la vitesse angulaire initialement nulle. 2. Le chariot a parcouru 15m. On rgule la vitesse en la diminuant afin damorcer en douceur le freinage du pont roulant. Le chariot continue avancer en ralentissant petit petit. La valeur de langle tant nulle et la force cintique agissant sur lobjet plac au bout du filin, langle de ce dernier sinverse. 3. Le chariot va dpasser les 50m cause de la force cintique impose par la charge. Il reculera par la suite en inversant sa vitesse, ce qui lui permet de revenir au 50m dsirs. Cette squence : dpasser les 50m pour y revenir permet dattnuer les oscillations du filin et de les stopper en douceur. 4. Le chariot est arriv destination. La vitesse de ce dernier, langle et la vitesse angulaire du filin deviennent alors nuls.

INSA de Rouen Dpartement ASI

11

Projet dAutomatique
Mouvement Vitesse

Commande dun pont roulant

BUREL - COUFOURIER

Le fait de travailler en boucle ferme nous a permis dasservir notre systme et de cette faon de le rendre stable. La commande passe en entre, savoir dplacer le chariot de 50m, est cette fois-ci parfaitement ralise.

2. Vrification des performances du cahier des charges


Lorsque lon calcule les performances dynamiques de notre systme, nous obtenons les rsultats suivants : Dpassement D1 = 4.51 % Temps de rponse Tr1 = 22.5 s Temps de monte Tm1 = 22.6 s Ces rsultats sont trs satisfaisants. En effet le dpassement est infrieur aux 5% exigs, et le temps de monte est infrieur au 25s requis par le cahier des charges. Souhaitant tout prix respecter trs prcisment ce dernier, nous avons modifi les valeurs des ples fantmes pour avoir un temps de monte gal celui exig. Aprs exprimentation, pour 3 = -0.75 et 4 = -0.81 :

D1 Tr1 Tm1

= 4.36 % = 24.9 s = 25 s

3. Conclusion
Le fait dintroduire dans notre systme un retour dtat entrane la stabilit du systme, ce qui ne ltait pas prcdemment en boucle ouverte. Cela implique donc un respect de la consigne par le systme. De plus, lasservissement par retour nous offre la possibilit de rgler facilement les performances dynamiques du systme : le cahier des charges dtermine les ples en boucle ferme. Enfin, nos deux ples fantmes permettent daffiner nos rglages. INSA de Rouen Dpartement ASI 12

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Partie 4 : ralisation d'un observateur


On considre ici que seule la position du chariot est mesure. Les autres tats ne le sont pas. 1. Oui, il est possible de reconstruire les autres tats partir de la connaissance de xc=x1 et de l'entre. On a vu que c'tait le cas dans la partie 2 car le systme est observable lorsque la sortie observe est la position du chariot seule. 2. On souhaite dterminer un observateur ayant une valeur propre unique 0=-2. Il y a 4 tats (position, vitesse de dplacement, angle, vitesse angulaire). L'orde de multiplicit de cette valeur propre est donc 4. C'est une valeur propre quadruple. 3. On utilise la dualit observabilit- commandabilit :
A , C commandable
T T

C , A observable

Pour placer les ples et calculer K, on utilise la fonction ppol de Scilab :


lambda0=-2 ; polesobs=[lambda0;lambda0;lambda0;lambda0]; Ko=ppol(A',C1',polesobs);

On obtient L, en faisant la transpose de K : L=Ko' On obtient alors :


L = ! ! ! !

! 8. ! 19.095 ! - 0.1845056 ! - 1.9791278

4. Le modle d'tat de l'observateur est :


X AX t Y CX t BU t L Y t Y t

X A LC X t Y CX t soit :

BL U t Y t

c'est--dire : Aobs A LC Bobs B L C obs C T U obs U Y INSA de Rouen Dpartement ASI 13

Projet dAutomatique Ainsi, on trouve :


Aobs = 1. 0. 0. 0.

Commande dun pont roulant

BUREL - COUFOURIER

! - 8. ! - 19.095 ! .1845056 ! 1.9791278 Bobs =

0. 39.24 0. - 4.905

0. 0. 1. 0.

! ! ! !

! 0. ! .001 ! 0. ! - .0001 Cobs ! 1. =

8. 19.095 - .1845056 - 1.9791278

! ! ! !

0. = 0.

0.

0. !

Dobs

5. On dcide de simuler le comportement de l'observateur. On visualise les tats estims que l'on compare aux vrais tats :

Position du chariot avec CI non nulles : rel (bleu) & observateur (noir)

(en ms)

INSA de Rouen Dpartement ASI

14

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Vistesse de dplacement avec CI non nulles : rel (bleu) & observateur (noir)

(en ms)

Angle du filin avec CI non nulles : rel (bleu) & observateur (noir)

(en ms)

INSA de Rouen Dpartement ASI

15

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Vistesse angulaire du filin avec CI non nulles : rel (bleu) & observateur (noir)

(en ms)

On remarque que les courbes ne sont pas totalement superposables, notamment pour de petites valeurs de t. Il va falloir intgrer l'observateur la commande par retour d'tat, ce que nous ferons dans la partie 5. Essayons avant cela de bruiter la sortie injecte l'entre de l'observateur. Pour cela, on opre de la manire suivant :
[yobs,xobs]=csim([Deplacement ; Yci+(rand(1,1001))],tci,sysobs);

La commande rand gnre des nombres entre -1 1. On l'additionne la sortie.


Poisition du chariot avec bruit et CI non nulles : rel (bleu) & observateur (noir)

(en ms)

INSA de Rouen Dpartement ASI

16

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Vitesse de dplacement du chariot avec bruit et CI non nulles : rel (bleu) & observateur (noir)

(en ms)

Angle du filin avec bruit et CI non nulles : rel (bleu) & observateur (noir)

(en ms)

INSA de Rouen Dpartement ASI

17

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Vitesse angulaire du filin avec bruit et CI non nulles : rel (bleu) & observateur (noir)

(en ms)

L'observateur a tendance reproduire les bruits ajouts (ces bruits peuvent tre lis au capteur dans la pratique).

Partie 5 : commande par retour dtat avec reconstruction de ltat


1. Modle dtat du systme asservi global (systme + observateur + rgulateur dtat)
Structure du schma de commande avec observateur :

Modle dtat (Systme + retour dtat + observateur) :


X X Y t

A LC 1

BK A BK LC 1

X X + X X

BS BS

r t

C1 0

X X

A BFobs B BFobs C BFobs

8 8 1

8 1 8

INSA de Rouen Dpartement ASI

18

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

2. Simulation, visualisation de la sortie du systme et vrification de ses performances


Position du chariot obtenue par retour dtat avec reconstruction de ce dernier

t (en ms) Vitesse de dplacement du chariot obtenue par retour dtat avec reconstruction de ce dernier

(en ms)

INSA de Rouen Dpartement ASI

19

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Angle du filin obtenu par retour dtat avec reconstruction de ce dernier

(en ms)

Vitesse angulaire du filin obtenue par retour dtat avec reconstruction de ce dernier

t INSA de Rouen Dpartement ASI

(en ms)

20

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Structure du schma de commande avec observateur :

Dpassement D2

= 4.36 % = 24.9 s

EcartDEPASSEMENT EcartTEMPSDEREPONSE EcartTMPSDEMONTE

= D1 - D2 = - 2.420 10-9 = D1 - D 2 = 0 = D1 - D 2 = 0

Temps de rponse Tr2

Temps de monte Tm2

= 25 s

Nous pouvons immdiatement observer la similitude entre les rponses obtenues en boucle ouverte (Cf Partie 1) et celles des observateurs (par retour dtat avec reconstruction des tats) : elles sont identiques et les performances dynamiques le confirment. Les trois carts sont nuls, ce qui implique que les performances obtenues grce aux observateurs sont gales celles du montage asservi par retour dtat sans observateur. Ces derniers vrifiant dj les exigences du cahier des charges, il est normal que les performances de notre systme actuel les satisfassent galement.

Partie 6 : Ralisation de l'asservissement par un rgulateur PID


On peut raliser l'asservissement du pont roulant en utilisant un correcteur classique de type PID. 1. On calcule la fonction de transfert du systme en BO en utilisant l'instruction ss2tf de Scilab :
H BO 0.001 s 0.000981 s 4 4.905 s2
2

2. Pour dterminer les paramtres du PID, reprenons le cahier des charges. On souhaite : - un dpassement strictement infrieur 5% ; (effet drivateur) - un temps de monte de 25s ; (effet proportionnel) - une erreur statique nulle. (effet intgrateur) La valeur du dpassement permet de retrouver la valeur du coefficient d'amortissement ainsi que celle de la pulsation naturelle n :
0.7 d'aprs les abaques soit :

tm

3 d'o :

0.1316 rad.s

1
c0

Or

m 100 donc m

70

Le systme a une marge de phase nulle et la fonction de transfert comporte des intgrateurs qui garantissent une erreur statique nulle. Le correcteur le plus appropri est donc le correcteur avance de phase de la forme :

INSA de Rouen Dpartement ASI

21

Projet dAutomatique
1 aTs 1 Ts

Commande dun pont roulant

BUREL - COUFOURIER

C s

Dfinissons les variables inconnues :


a 1 sin m 1 sin m 32.1634

1
c0

1.3398

On dtermine aussi K pour avoir la pulsation de coupure 0 dB de HBOC(s) co = 0.1316 rad/s :


C jw co H jw co d ' o Kc 1 T jw co 1 aT jw co jw co
4

1 aT jw co K 1 T jw co

0.001 jw co jw co
4

0.000981
2

4.905 jw co
2

4.905 jw co
2

0.001 jw co

0.000981

15.488164

3. On trace la rponse du systme boucl corrig:L'allure de la courbe, mme si elle es un peu oscillante, reste conforme nos esprance mais les dpassements et temps de monte semblent tre assez levs.

Rponse indicielle du systme boucl

(en ms)

INSA de Rouen Dpartement ASI

22

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

4. Les performances obtenues sont les suivantes : Dep3 = 12.896922 tm3 = 14.2

Celles-ci sont corrects mais diffrent un peu de celles demandes dans le cahier des charges. La modification des paramtres n'amliore pas non plus ces rsultats. Les approximations des mesures peuvent justifier cet cart.

Conclusion
Ce projet nous a permis de raliser la commande par retour d'tat d'un pont roulant avec reconstruction de l'tat (utilisation d'un observateur) et asservissement avec un correcteur. Mini-projet ou vritable bilan de ce second trimestre dautomatique, il illustre les derniers chapitres du cours : le modle dtat, la commandabilit et lobservabilit dun systme et cela avec un cas concret : le pont roulant. Il permet de synthtiser aussi bien nos connaissances thoriques que pratiques avec lutilisation de Scilab (dont vous trouverez le code en annexe).

INSA de Rouen Dpartement ASI

23

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

Annexe : Code scilab


//************************************************ //**** PROJET D'AUTOMATIQUE 2003-2004 ASI_03 ***** //************************************************ //********** Commande d'un pont roulant ********** //****** Coufourier Franck & Burel Matthieu ******

//----------------------------------------------------------//Partie 1 : Dtermination du modle linaire du pont roulant //----------------------------------------------------------xdel // clear // Suppression des variables existantes getf('K:\Cours\ASI 3.2\Automatique\Mini-projet\fonction.sci'); //Dfinitions pralables Mc = 1000; Mb = 4000; l = 10; g = 9.81; t = (0 : 0.1 : 100); Force = 1000*ones(t); Deplacement = 50*ones(t);

//Dfinition des diffrentes matrices constituant la modle dtat A=[0,1,0,0;0,0,g*Mb/Mc,0;0,0,0,1;0,0,-g*(Mb+Mc)/(l*Mc),0]; B=[0,1/Mc,0,-1/(l*Mc)]'; C=eye(4,4); D=[0,0,0,0]'; //Dfinition d'un modle d'tat sys=syslin('c',A,B,C,D); //Calcul des sorties de notre systme Y = csim(Force,t,sys); //Reprsentation graphique des sorties du systeme for i=1:4 xbasc(i-1); xset("window",i-1); xselect; plot(t,Y(i,:)) if (i == 1) xtitle("Position du chariot : Boucle Ouverte"); end if (i == 2) xtitle("Vitesse de deplacement du chariot : Boucle Ouverte"); end if (i == 3) xtitle("Angle du filin : Boucle Ouverte"); end if (i == 4) xtitle("Vitesse angulaire du filin : Boucle Ouverte"); end end

//------------------------------------//Partie 2 : Analyse du modle linaire //------------------------------------//Commandabilit MatDeCommandabilite=cont_mat(A,B) rank(MatDeCommandabilite)

//Observabilit //Definitions des nouvelles matrices C1 & C3 C1 = C(1,:); C3 = C(3,:); MatDObservabilite1 = obsv_mat(A,C1) rank(MatDObservabilite1) MatDObservabilite3 = obsv_mat(A,C3) rank(MatDObservabilite3)

INSA de Rouen Dpartement ASI

24

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

//------------------------------------------//Partie 3 : Asservissement par retour d'tat //------------------------------------------//Pole du systme en BO polesBO=spec(A) //Calcul de K ksi = 0.7; tm = 25; wnBF = 3.29/tm; pole1=-ksi*wnBF - %i * wnBF * sqrt(1-(ksi^2)); pole2=-ksi*wnBF + %i * wnBF * sqrt(1-(ksi^2)); //poles=[pole1,pole2,-5-%i,-5+%i]; poles=[pole1,pole2,-0.75,-0.81]; K=ppol(A,B,poles)

//Calcul de S S=1/(C1*(-(inv(A-B*K)))*B)

//Dfinitions des matrices du modle d'tat en BF D=0; Abf=A-B*K; Bbf=B*S; Cbf=C1-D*K; Dbf=D; //Dfinition du modle sysBF=syslin('c',Abf,Bbf,Cbf,Dbf); //Calcul des sorties de notre systme [YBF XBF] = csim(Deplacement,t,sysBF); //Reprsentation graphique des sorties du systeme for i=1:4 xbasc(i+3); xset("window",i+3); xselect; plot(t,XBF(i,:)) if (i == 1) xtitle("Position du chariot : Boucle ferme par retour d''tat"); end if (i == 2) xtitle("Vitesse de deplacement du chariot : Boucle ferme par retour d''tat"); end if (i == 3) xtitle("Angle du filin : Boucle ferme par retour d''tat"); end if (i == 4) xtitle("Vitesse angulaire du filin : Boucle ferme par retour d''tat"); end end //Dynamique et dpassement du systme Dep1 = depassement(YBF) tr1 = tempsdereponse(t,YBF) tm1 = tempsdemontee(t,YBF)

//--------------------------------------//Partie 4 : Ralisation d'un observateur //--------------------------------------Xinit=[2; 0.3; 0.04; 0.3]; //Xinit=[0; 0; 0; 0]; tci = (0 : 0.01 : 10);

//Dfinition d'un modle d'tat sysCI=syslin('c',A,B,C1,D,Xinit); //Calcul des sorties de notre systme [Yci, Xci] = csim(Force,tci,sysCI);

lambda0=-2 ; polesobs=[lambda0;lambda0;lambda0;lambda0]; Ko=ppol(A',C1',polesobs); L=Ko' Aobs=A-L*C1 Bobs=[B,L] Cobs=C1 Dobs=D sysobs=syslin('c',Aobs,Bobs,Cobs); [yobs,xobs]=csim([Deplacement ; Yci],tci,sysobs);

INSA de Rouen Dpartement ASI

25

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

//Affichage des diffrents tats avec l'ajout d'une condition initiale seulement for i=1:4 xbasc(i+7); xset("window",i+7); xselect; plot2d(tci',[xobs(i,:); Xci(i,:)]'); if (i == 1) xtitle("Position du chariot avec CI non nulles : Rel (bleu) & Observateur (noir)"); end if (i == 2) xtitle("Vitesse de deplacement du chariot avec CI non nulles : Rel (bleu) & Observateur (noir)"); end if (i == 3) xtitle("Angle du filin avec CI non nulles : Rel (bleu) & Observateur (noir)"); end if (i == 4) xtitle("Vitesse angulaire du filin avec CI non nulles : Rel (bleu) & Observateur (noir)"); end end [yobs,xobs]=csim([Deplacement ; Yci+(rand(1,1001))],tci,sysobs); //Affichage des diffrents tats avec l'ajout d'une condition initiale et du bruit for i=1:4 xbasc(i+11); xset("window",i+11); xselect; plot2d(tci',[xobs(i,:); Xci(i,:)]'); if (i == 1) xtitle("Position du chariot avec bruit et CI non nulles : Rel (bleu) & Observateur (noir)"); end if (i == 2) xtitle("Vitesse de deplacement du chariot avec bruit et CI non nulles : Rel (bleu) & Observateur (noir)"); end if (i == 3) xtitle("Angle du filin avec bruit et CI non nulles : Rel (bleu) & Observateur (noir)"); end if (i == 4) xtitle("Vitesse angulaire du filin avec bruit et CI non nulles : Rel (bleu) & Observateur (noir)"); end end

//---------------------------------------------------------------//Partie 5 : Commande par retour d'etat avec reconstruction d'etat //---------------------------------------------------------------Abfobs=[A -B*K; L*C1 A-(B*K)-(L*C1)] Bbfobs=[B*S; B*S] Cbfobs=[C1 0 0 0 0] //Dfinition du modle sysBFobs=syslin('c',Abfobs,Bbfobs,Cbfobs); //Calcul des sorties de notre systme [YBFobs XBFobs] = csim(Deplacement,t,sysBFobs); //Affichage des diffrents tats for i=1:4 xbasc(i+15); xset("window",i+15); xselect; plot(t,XBFobs(i+4,:)) if (i == 1) xtitle("Position du chariot obtenue par retour d''tat avec reconstruction d''tat"); end if (i == 2) xtitle("Vitesse de deplacement du chariot obtenue par retour d''tat avec reconstruction d''tat"); end if (i == 3) xtitle("Angle du filin obtenu par retour d''tat avec reconstruction d''tat"); end if (i == 4) xtitle("Vitesse angulaire du filin obtenue par retour d''tat avec reconstruction d''tat"); end end

//Dynamique et dpassement du systme Dep2 = depassement(YBFobs) EcartDepassement=Dep2-Dep1 tr2 = tempsdereponse(t,YBFobs) EcartTr=tr2-tr1 tm2 = tempsdemontee(t,YBFobs) EcartTm=tm2-tm1

//---------------------------------------------------------------//Partie 6 : Ralisation de l'asservissement par un rgulateur PID //----------------------------------------------------------------

INSA de Rouen Dpartement ASI

26

Projet dAutomatique

Commande dun pont roulant

BUREL - COUFOURIER

//Construction de la fonction de transfert et trace du diagramme de Bode sys=syslin('c',A,B,C1); Hbo=ss2tf(sys) xset("window",20); xselect(); bode(Hbo); //Cahier des charges s=%s; MatricePhase=p_margin(sys) Mphase=MatricePhase(1,:)+180 DeltaMarge=70-Mphase Wco=0.1316 //Parametre du correcteur a=32.163437 T=1/(Wco*sqrt(a)) K=abs(((1+T*(%i*Wco))/(1+a*T*(%i*Wco)))*(((%i*Wco)^4+4.905*(%i*Wco)^2)/(0.001*(%i*Wco)^2+0.000981))) //Fonction de transfert du correcteur C=K*(1+a*T*s)/(1+T*s); //Trace du systeme corrige boucle Hboc=C*Hbo; sysBFC=syslin('c',Hboc/(1+Hboc)); [yBFC xBFC] = csim(Deplacement,t,sysBFC); xset("window",21); xselect(); plot(t,yBFC); xtitle("Reponse indicielle du systeme boucle"); //Dynamique et dpassement du systme Dep3=depassement(yBFC) tm3=tempsdemontee(t,yBFC)

INSA de Rouen Dpartement ASI

27