Vous êtes sur la page 1sur 15

 

CONSERVATOIRE NATIONAL DES ARTS ET METIE S

CENT E REGIONAL ASSOCIE DE PICARDIE

_______

AUTOMATIQUE

COMMANDE DES SYSTEMES

 Etude d  moteur à Courant Continu par retour d’état

Par

POIRET Clément

______

Travaux pratiques

Rédigé le 02 janvier 2012

_______

Enseignant : KAFROUNI Elie


 

SOMMAIRE

1.  Cahier des charges


2.  Détermination des équ tions d’état du procédé
3.  Etude du comporteme t en boucle ouverte
4.  Commande par retour d’état
5.  Calcul du gain statique unitaire
6.  Introduction d’une per urbation
7.  Action intégrale
8.  Conclusion

󰀭󰀲󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

1-  Cahier des charges

On désire réaliser l’asservissem nt de position d’un disque. Le coefficient de fr ttement visqueux est
noté  f  . L’influence de la variati n de ce frottement doit être inférieure à 1% sur la vitesse de rotation,
ceci dans les limites de linéarité de l’amplificateur de puissance qui commande l moteur. Nous allons
modéliser le moteur avec une re résentation sous forme d’état.

 Les équations du système : 

Les équations simplifiées du fon tionnement du moteur sont les suivantes :

m =  E  +  RI 

m = Kc. I 
 E  = Ke.Ω  
d Ω
m− ∑ Cr  =  j dt 
& =  Ro.Cs.Ω

 
 Les données sont les suivantes :

E : Force électromotrice Ke : Constante de fem

  J : Inertie Cr : Couple de charge (frein)

Ro : Réducteur mécanique Kc : Constante de cou le

Cs :  Capteur de position en V/rad θ   : position en rad

2-  Détermination des équ tions d’état du procédé

Dans un premier temps, je vais organiser les équations de manière à resso tir les équations du
système :
  Um −  E 
A partir de l’équation (1), on obtient Um =  E  +  RI  ⇒  I  =  
 R
Um  − KeΩ
En remplaçant E par l’équation (3), l’équation devient  I  =  
 R
Avec l’équation (2), en remplaçant dans l’équation (3) le système devient :

Um −  KeΩ 
Cm = Kc 
  R   

L’équation (4), nous obtenons une équation différentielle du premier ordre.

󰀭󰀳󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

Système du premier ordre :

Um −  KeΩ  d Ω Kc.Um   Kc.Ke d Ω


Kc  =  j + ∑ Cr  ⇒ − Ω =  j ∑ Cr 
  R  dt   R  R dt   

En organisant l’équation ci-dess s, j’obtiens les équations suivantes :

& = Kc Kc.Ke
Ω Um − Ω
 R. J   R. J 
θ & =  Ro.Cs.Ω  

 Représentation sous forme d’ét  t :

  θ &  θ  
Le vecteur d’état  x& =  &  ⇒  x =  
Ω  Ω   

 x& =  Ax +  Bu


Je vais mettre sous la forme d’ét t  
Y  = Cx +  D

θ &  0  Ro.Cs  θ    0 


 &  = 0 −
Kc.Ke .  +  Kc Um
    RJ    
Ω  RJ    

   θ  
Y  = [1 0].   + 0  
Ω  

3-  Etude du comporteme t en boucle ouverte

Je vais maintenant créer la mod lisation du système sous « Simulink » et analyser son comportement
en boucle ouverte, ensuite, à par ir du modèle, je vais déterminer les matrices A, B, C, D et vérifier si
les paramètres concordent avec la représentation ci-dessus.

Sous Matlab, à l’aide de la onction « [A,B,C,D]=linmod( 'ModelisationFTBO')», je dois


vérifier la concordance des calculs et de modélisation du système.

A =

0 0.1592
0 -0.2000

󰀭󰀴󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

B =

0
5.9347

C =

1 0

D =

Nous pouvons voir que les rés ltats sont identiques  à mes calculs théoriques, afin de juger de la
stabilité de mon système, je vais calculer mes pôles théoriquement puis sous Ma lab en comparant les
résultats obtenus.

 Détermination des pôles :

Pour déterminer les valeurs propres, je vais utiliser la relation suivante : det(λ 
  I   −  A)  

 λ  0  0  Ro.Cs    λ  − Ro.Cs     c.Ke 


det  − Kc.Ke   ⇒ det Kc.Ke  ⇒ λ . λ  +  
Donc :
  0 λ  0    0 λ  +     RJ   
    RJ       RJ   

P1 = 0
Les deux pôles sont : c.Ke  
P2 =− = −0.2000
 RJ 

Afin de vérifier mes calculs, à l’aide de la fonction « eig(A) », je vais déterminer sous Matlab les
pôles.

%Calcul des poles  


pole=eig(A) 

pole =

-0.2000

On voit qu’il y a un pôle réel né atif et un pôle à 0 ce qui rend le système instable .

󰀭󰀵󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

Nous voyons que la position ten vers l’infini, la position voulue ne sera jamais tteinte. Pour palier à
ce problème, je vais fixer les pôl s et calculer mes paramètres K pour réaliser mo retour d’état.

4-  Commande par retour d’état

Pour déterminer les coefficients K1, K2 du retour d’état, je dois calculer les pa amètres en imposant
les pôles réels négatifs, je vais effectuer mes calculs théoriques et comparer avec Matlab. Je vais
réaliser le retour d’état sur « Si ulink » et visualiser les résultats de la simulation afin de voir si mon
système est corrigé.

Pour cela, je dois calculer le det(λ  I  −  A' ) ⇒


   A' =  A − B.K   

 A' =  A − BK 
0  Ro.Cs   0  0  Ro.Cs   0 0  
 A' =  Kc.Ke  −  Kc [K 1 K 2] ⇒  A' =  Kc.Ke  −  Kc Kc 
0


 RJ    RJ  0 −
 
 RJ    RJ 
K 1
 RJ 
K 2

 0 o.Cs 
 A' =  Kc Kc. e Kc  
−  RJ  K 1 −
 RJ 

 RJ 
K 2

 λ  0   0  Ro.Cs  


det(λ  I   − A' ) ⇒ det  −  Kc Kc.Ke Kc 
  0 λ  − K 1 − − K 2   
    RJ   RJ   RJ   

 λ  − Ro.Cs     Kc   .Ke + Kc.K 2   KcK 1


det Kc Kc.K  Kc  ⇒ λ  λ  +   − − Ro.Cs.
  RJ  
 
 RJ  K 1 λ  +  RJ  +  RJ  K 2     RJ    

2 Kc.( Ke + K 2)  Ro.Cs.Kc.K 1


λ  +   λ  +  
 RJ   RJ 

En fixant des pôles complexes afin d’augmenter la rapidité, j’ai choisi  pole =  [−1 +  j;−  1 − j ]  

(λ  + 1 −  j )(.   λ  + 1 + j 2 2


= λ  + λ  +  J λ  + λ  +  1 +   J  −  J λ  −  J  − J  ⇒ λ 2 + 2  λ   + 2  

Par identification, j’obtiens :

Kc( K  + K 2) 2 RJ 


= 2 ⇒ K 2 = − .Ke = 0.3033
 J  Kc
 
Ro.C .Kc.K1 2 RJ 
= 2 ⇒ K 1 = = 2.1164
 J   Ro.Cs.Kc

Après calcul sous Matlab, j’obti ns les mêmes valeurs de K :

>> pole=[-1+j -1-j]

pole=

-1.0000 + 1.0000i -1.0000 - 1. 000i

󰀭󰀶󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

>> k=place(A,B,pole)

k=

2.1164 0.3033

Je vais réaliser le schéma sous « simulink » avec le retour d’état, et voir si ma vitesse et position sont
stables.

 Résultat de la simulation :

Nous voyons que notre système est stable, notre système est rapide sans dépassement, cela est due au
choix des pôles complexes. Malheureusement, la consigne est à 1 et la sortie est à 0.5 soit différent
donc le gain statique unitaire n’est pas assurer car l’erreur n’est pas nulle. Pour p lier à ce problème, je
dois calculer le gain à ajouter en entrée.

󰀭󰀷󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

5-  Calcul du gain statique unitaire

 A' =  A − BK 
0  Ro.Cs   0  0  Ro.Cs   0 0  
 A' =  Kc.Ke  −  Kc [K 1 K 2] ⇒  A' =  Kc.Ke  −  Kc Kc 
0 −
0 − K 1 2
  RJ    RJ   
 RJ    RJ   RJ  

inv( A' ) ⇒
 Kc.Ke Kc 
 0  Ro.Cs  1 −  RJ  −  RJ  K 2 − Ro.Cs
 
inv( A' ) = inv Kc Kc.Ke Kc ⇒ . 
−  RJ  K 1 −
 R

 RJ 
K 2

det( A' )  Kc
K 1 0 
  RJ  
1   0 − R .Cs.
Kc   0  1
inv( A' ) × B = . 
 RJ  ⇒ −C × inv( A' ) × B =  Ro.Cs. Kc .   = 0.4725
det( A' ) 0 0    det( A' )
   RJ 
 
En faisant l’inverse du gain, j’ob iens :
 
1 1
Gain = = = 2.116  
G 0.4725

Sous « Matlab », j’obtiens les ré ultats identiques,

Gain =

0.4725

Système avec Gain en entrée :

 
Une fois le gain ajouté, je vais simuler pour voir si le gain unitaire est assuré.

󰀭󰀸󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

 Résultat de la simulation :

Nous voyons que le gain statiqu est assuré, l’erreur est nulle et nous atteignons l consigne à 1.

6-  Introduction d’une per urbation


 
Dans le cas ou il y a des pertu bations sur la sortie, nous devons étudier le s stème avec le retour
d’état et voir si le gain est assuré quelque soit les perturbations. Pour cela j vais modifier mon
modèle.

D’après les résultats de la sim lation, lorsqu’une perturbation apparait, la po ition change et gain
statique  unitaire n’est plus ass ré, notre commande n’est pas robuste. Afin d’annuler l’écart de
position entre la consigne et la s rtie. Je vais essayer d’intégrer cet écart.

󰀭󰀹󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

 Résultat de la simulation :

7-  Action intégrale

Pour annuler l’erreur, je dois mo ifier mon système par la représentation suivante :

 x&   x 
Dans un premier temps, mon vecteur d’état aura la forme suivante :  z& = ε &  ⇒  z = ε   
   
Les équations d’état deviennent : 
 z& =  A' ' z +  B ' ' u
 
Y  = Cx +  D
 
Ensuite, nous avons Um =  − Kx + Ki.ε   
 
 x 
Donc je peux écrire que Um = −[K  − Ki ].  
ε   
 
A partir de là, je dois exprim r les nouvelles matrices A’’ et B’’ afin de c lculer les nouveaux
paramètres mais également le paramètre Ki.

0  Ro.Cs 0
 A 0  Kc.Ke 
 A' ' =   = 0 − 0
C  0   RJ 

1 0 0  
 0 
 B   Kc 
 B ' ' =   =   
 0   RJ  
 0 

󰀭󰀱󰀰󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

Le nouveau système est le suiva t :


 
 θ & 0  Ro.Cs 0  θ    0 
&  Kc.Ke     Kc 
 Ω  = 0 −
 RJ 
0 . Ω + 
   RJ  Um
 
 ε &  1 0   ε    0 
  0
 
Calcul des paramètres K et Ki :

 A' =  A' '− B' ' K 


0  Ro.Cs 0 0 
 Kc.Ke   Kc 
 A' = 0 − 0 −  [K 1 K 2 Ki] ⇒
 RJ 
1 0
  RJ 
0  0   

 
0  Ro.Cs 0  0 0 0 
 Kc.Ke   Kc Kc Kc 
 A' = 0 − 0 −  1 K 2 Ki  ⇒  
 RJ   RJ   RJ   RJ 
1 0 0  0 0 0 

 

 0  Ro.Cs  0
 Kc Kc.Ke Kc  Kc
L’équation devient :  A' =  K 1 − − K 2 − Ki   
  RJ   RJ   RJ   RJ 

 1 0 0 
 
 λ  0 0   0  Ro.Cs 0  
 
   Kc K 1
det(λ  I   − A' ) ⇒ det 0 λ  0 − − −
Kc.Ke Kc
− K 2
Kc
Ki   
   RJ   RJ   RJ   RJ 

  0 0 λ   1 0  
   0
 
  λ  − Ro.Cs 0  
  Kc Kc.Ke Kc Kc  
det(λ  I   − A' ) det  K 1 λ  +   + K 2 Ki   
  RJ   RJ   RJ   RJ 
 
 −1 0 λ   
 

Ke.Kc + Kc.K 2  Ro.Cs.Kc.K 1  Ro.Cs. c.Ki


det(λ  I  −  A' )  = λ 3 2
λ  + λ  −  
 RJ   RJ   R
 

En posant les pôles  pole = [−1  j;−1 −


  j;−3]  
 
(λ  + 1 −  j )(. λ  + 1  + j )(λ  +  3) = λ 3 + 5λ 2 + 8λ  + 6  
 
Par identification, on obtient les nouveaux paramètres K1, K2, Ki.

󰀭󰀱󰀱󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

Ke.Kc + Kc.K 2 5 RJ 


=5⇒ K 2 = − Ke = 0.8088
 RJ  Kc
 Ro Cs.Kc.K 1
. 8.  J 
=8⇒ K 1 = = 8.4600  
 RJ   Ro. s.Kc
 Ro.Cs.Kc.Ki − 6 RJ 
− = 6 ⇒ Ki = = −6.3400
 RJ   Ro.Cs.Kc
 
Système avec action intégrale:

 Résultat de la simulation : 

󰀭󰀱󰀲󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

Avec l’action intégrale, nous vo ons que la perturbation est automatiquement annulée. Notre système
se stabilise en 5 s ainsi que lo s de l’introduction d’une perturbation, le syst me réagit et corrige
immédiatement la position afin de revenir à la consigne d’origine.

8-  Conclusion

Ce Tp m’a permit de comprendre la correction d’un système avec le retour d’état. Mais également
d’étudier le comportement d’un machine à courant continu et la nécessité de la commande intégrale
dans ce type de système. Cela m’a également permis d’être un peu plus à l’aise avec la commande par
retour d’état et l’utilisation de Matlab. Je suis plus confiant face à des problèmes d’automatique
nécessitant des commandes rob stes et j’espère avoir l’occasion de continuer ans l’étude d’autres
systèmes.

9-  Programme

10-  %----------- ----------------------------------- -------------%  


11-  %-- Tp  avec lie Kafrouni sur un asservissement de position--%  
12-  %----------- ----------------------------------- -------------%  
13- 
14-  %-- Fichier   'initialisation de la simulation du moteur et de
15-  %-- la posit on par retour d'Etat  
16- 
17-  clear all; 
18-  close all; 
19-  clc;  
20- 
21-  %*********** *********************************** *************%  
22-  %--------- nitialisation des paramètres du mot eur ---------%  
23-  %*********** *********************************** *************%  
24- 
25-  R  = 5.8; %valeur du constructeur  
26-  Ke = 0.0337;
27-  Kc = 0.0337;
28-  DT = 0.0497; %Capteur de vitesse V/rd/s  
29- 
30-  ro = 1/20; %reducteur mecanique  
31-  Cs = 20/6.28 %Capteur de position V/rd  
32-  AP = 1; %Gain de l'ampli de puissance  
33-  Isat = 1.2; %Courant de saturation de l'ampli  
34-  Umax = 13; %Tension de sortie max de l'ampli Op 
35- 
36-  %*********** *********************************** *************%  
37-  %---------  Valeurs Experimentales des Gains e t ---------%  
38-  %----------- --- Constantes de Temps -------- -------------%  
39-  %*********** *********************************** *************%  
40- 
41-  TM = 5; %constante de temps identifiée  
42-  GM = 30; %Gain de vitesse de la simutlation en petits
signaux linaires  
43-  TML = 2*TM; %Constante de temps des petits sign aux 
44-  Jt= TM*Ke*Kc R; %Inertie globale théorique
45-  JT1 = TML*Ke Kc/R; %Inertie Globale equivalente en petits
signaux 

󰀭󰀱󰀳󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

46- 
47-  %*********** *********************************** *************%  
48-  %----------- --------- Frotemments secs -------- -------------%  
49-  %*********** *********************************** *************%  
50- 
51-  Id = 0.053; Courant de demarrage en A à vitesse nulle 
52-  Intmn = 0.10 ; %Courant à vide à la vitesse N t /mn 
53-  Ntmn = 1035; %Nombres de tours à vide  
54- 
55-  Csec = Id*Kc
56-  Pente=((Intm -Id)*Kc*60)/(2*pi*Ntmn);  
57- 
58-  %Calcul des atrices A,B,C,D a partir du modele  
59-  [A,B,C,D]=li mod('ModelisationFTBO' ) 
60- 
61-  %Calcul des atrices A,B,C,D a partir du modele  
62-  %[A,B,C,D]=l nmod('Modelisationtest')  
63- 
64-  %Calcul des oles  
65-  pole=eig(A) 
66- 
67-  p=[-1-j -1+j
68- 
69-  P2=-(Kc*Ke)/ (R*Jt)  
70- 
71-  %Calcul des arametres K  
72-  K=place(A,B, ) 
73- 
74-  %Vérificatio des paramètres K théoriques  
75-  K3=((5*R*Jt) Kc)-Ke  
76-  K4=(8*R*Jt)/ (ro*Cs*Kc)  
77-  Ki=-(6*R*Jt) (ro*Cs*Kc)  
78- 
79-  Gain=-C*inv (A-B*K)*B  
80- 
81-  Kg=1/Gain 

󰀭󰀱󰀴󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳
 

󰀭󰀱󰀵󰀭
󰁃󰁯󰁭󰁭󰁡󰁮󰁤󰁥 󰁤󰁥󰁳 󰁳󰁹󰁳󰁴󰃨󰁭󰁥󰁳

Vous aimerez peut-être aussi