CR_2008
Transcript of CR_2008
Suivi projet : Philippe Dorléans Jean-François Massieu 2007-2008
6, bd du Maréchal Juin F-14050 Caen cedex 4 Spécialité Electronique 3e année
bd du Maréchal Juin
BP 5186 14032 Caen Cedex
Rapport de projet
Commande non linéaire de la machine asynchrone sans capteur mécanique
DUFOUR Julien PERON Sylvain
2
Table des matières Introduction .......................................................................................................................................... 3
I. Présentation du matériel ............................................................................................................... 4
1. Banc d'essai .................................................................................................................................... 4
2. Electronique de puissance .............................................................................................................. 6
3. Chaîne d'acquisition ........................................................................................................................ 7
4. Machine asynchrone ....................................................................................................................... 8
5. Carte DSPACE 1103 ...................................................................................................................... 8
6. Interface Control Desk .................................................................................................................. 10
II. Modélisation du banc .................................................................................................................. 10
1. Equations de base ......................................................................................................................... 10
2. Transformation de Clarke ............................................................................................................. 13
3. Modèle exprimé dans le repère (α,β) lié au stator ........................................................................ 15
III. Commande Scalaire .................................................................................................................... 17
1. Aspects théoriques ........................................................................................................................ 17
2. Simulation sous MATLAB/SIMULINK ...................................................................................... 19 IV. Observateur de type Grand Gain .............................................................................................. 22
1. Notations ....................................................................................................................................... 22
2. Observateur avec mesure de vitesse ............................................................................................. 23
3. Simulation sous Matlab et implémentation sur DSP .................................................................... 28 4. Observateur sans mesure de vitesse .............................................................................................. 33
5. Simulation sous Matlab et implémentation sur DSP .................................................................... 36 Conclusion .......................................................................................................................................... 38
3
Introduction
Dans le cadre de la dernière année de l’Ecole Nationale Supérieure d’Ingénieurs de CAEN, ENSICAEN, un projet est proposé aux étudiants afin de leur permettre de développer et d’utiliser leurs connaissances sur un problème défini.
Notre projet a pour objectif d’asservir un moteur asynchrone en vitesse sans capteur mécanique à l’aide d’observateurs. L’enjeu dans le domaine industriel est assez important puisque cela permet de s’affranchir de la mesure de vitesse, cela fait un capteur mécanique en moins et donc une pièce en moins à changer en cas d’usure. La maintenance s’en trouve diminuée.
Les séances se sont suivies, avec, dans un premier temps, la prise en main du modèle et de ses équations. Une fois cela effectuée, nous avons fait tourner le moteur sans régulation pour prendre en main l’environnement Simulink et Control Desk liés à la carte DSpace. Nous nous sommes ensuite essayés à la commande scalaire afin de vérifier la validité du modèle. Une fois toutes les cartes en main, nous avons débutés nos tests sur les observateurs.
4
I. Présentation du matériel
Le banc d'essai a pour but de mettre en place des stratégies de commande sur une machine asynchrone à rotor bobiné (court-circuité dans le cadre de ce projet pour une utilisation semblable à une machine à cage). Les commandes sont développées sur ordinateur sous un environnement Matlab/Simulink utilisant des blocs dédiés à la commande des machines munis d'une carte DSpace pourvue notamment d'un DSP.
L'interface de contrôle et de visualisation des signaux entre l'opérateur et le système est réalisée via Control Desk, qui permet, à partir du schéma Simulink/Dspace, de commander les signaux de contrôle et de visualiser les signaux accessibles sous l’environnement Simulink (signaux de commande, images des signaux en sorties des capteurs ...)
1. Banc d'essai
Le banc moteur est composé d’une machine asynchrone triphasée de 3kW, d’un frein à poudre, d’un capteur de vitesse de type génératrice dynamo tachymétrique et d’un capteur de couple (voir figure 1).
Figure 1 : Banc Moteur
Le banc d'essai est constitué du banc moteur (voir figure 1) qui comprend tous
les éléments mécaniques du système et également de toutes les parties électroniques qu'elles soient de puissance, de commande, d'acquisition ou numérique. Le schéma de principe est représenté (figure 2).
5
Figure 2 : Schéma de principe du banc d’essai
6
2. Electronique de puissance
Un autotransformateur (0-450V entre phases) permet d'ajuster le niveau de tension sur le bus continu en sortie du pont redresseur à diodes. L'ensemble redresseur à diodes, condensateurs (sur le bus continu), bras de ponts, drivers de bras de ponts sont compris dans un montage didactique (voir figures 3 et 4)
L'onduleur de tension est constitué de 3 bras de pont, à IGBT et à diodes, de chez SEMIKRON, ils sont les bras attaquants la machine. Un 4ieme bras peut également servir, une fois associé à une charge résistive et une commande appropriée, à protéger la partie électronique de puissance des phases de freinage notamment (effectivement, le pont à diode n'étant pas réversible en courant, on risque une élévation du niveau de tension aux bornes du bus continu durant les phases de freinage). La commande des bras de pont est réalisée par modulation de largeur d'impulsion (MLI/PWM). Il s'agit d'une commande MLI dont la fréquence de découpage f
d choisie est de 10KHz.
Figure 3 : Montage didactique vu de dessus
7
Le choix de la fréquence fd a été limité par des contraintes matérielles, en
l'occurrence les filtres placés en amont des capteurs ont une fréquence de coupure de 340Hz. Il suffit donc de repousser les harmoniques de tensions/courants dus au découpage au delà de 340Hz (fd >>340Hz). Néanmoins il ne faut pas découper à des fréquences trop élevées afin d'éviter les surtensions, dues notamment aux inductances séries aux bornes des bras de ponts.
Figure 4 : Montage didactique vu de face
Les drivers sont alimentés en 0-15V or la carte DSPACE délivre des signaux entre 0-10V, on trouve donc une interface de puissance montage Darlington 0-10V → 0-15V, de plus les drivers nécessitent un apport en courant supérieur à la sortie de la carte.
3. Chaîne d'acquisition
Figure 5 : Schéma de la chaîne d'acquisition
8
Les capteurs du banc d'essai (utilisés lors de ce projet) sont les suivants :
• 2 sondes de courant LEM LTS 25-NP (à compensation de flux) pour la
mesure des courants statoriques. • 2 sondes de tension LEM CV 3-1000 pour la mesure des tensions entre
phases sur la machine. • 1 génératrice dynamo tachymètrique 10B0 pour la mesure de la vitesse.
En amont des capteurs on trouve des filtres anti-repliements (FAR) de type Tchebychev d'ordre 2 qui coupent à 340Hz (la fréquence utile maximum des signaux mesurés étant de 50Hz). Les convertisseurs analogiques/numériques (CAN/ADC) sont intégrés dans la carte DSPACE, et la fréquence d'échantillonnage fe choisie est de 10KHz (il faut que fe >> 50Hz).
4. Machine asynchrone
Il s'agit d'une machine asynchrone à rotor bobiné (court-circuité dans le cadre de ce projet pour une utilisation semblable à une machine à cage). Les caractéristiques de la machine sont les suivantes (plaque signalétique) :
= 220 / 380 V = 14,7 / 8,5 A = 3 kW = 14 A
= 1430 tr/mn
5. Carte DSPACE 1103
La carte DSPACE assure les aspects logiciels et numériques de la commande, depuis l'acquisition numérique des signaux d'entrées jusqu'aux signaux (MLI/PWM) de commandes des bras de pont (signaux de sorties), en passant par les asservissements, qui sont ensuite implantés au sein de cette carte dans des mémoires FLASH allouées. Cette carte est développée autour d'un processeur de bureautique de chez IBM (PowerPC 604e travaillant à 400 MHz), mais a néanmoins vocation à être dédiée à la commande des machines (voir figure 6).
9
Effectivement, elle possède un très grand nombre de périphériques, comme un
DSP esclave (T-I DSP TMS32OF240 travaillant à 20MHz), des interfaces pour codeurs incrémentaux, des sorties PWM, des entrées ADC (CAN) ou encore des sorties DAC (CNA), qui sont généralement des périphériques que nous allons retrouver sur le marché dans des DSPs dédiés à la commande des machines électriques.
Les programmes, développés sous environnement Simulink, sont implantés au sein de la carte, l'interface avec l'opérateur est ensuite assurée par le logiciel d'interface graphique CONTROL DESK.
figure 6 : Structure simplifiée de la carte DSPACE 1103
10
6. Interface Control Desk
Le logiciel CONTROL DESK est une interface graphique nous permettant la visualisation de toutes les variables (de contrôle, de retour capteur ...) disponibles sur les schémas Simulink/Dspace de la commande. CONTROL DESK, allié à DSPACE qui offre des blocs (sous Simulink) propres à la commande des machines, nous permet d'avoir accès à tous les signaux utiles à la commande de la machine et à une bonne compréhension du système.
Prenons quelques exemples de signaux régulièrement visualisés : les courants statoriques et leurs valeurs efficaces (attention à les recalibrer de temps en temps), les signaux de commande (consigne de vitesse par exemple), les tensions composées statoriques et leurs valeurs efficaces ...
II. Modélisation du banc
1. Equations de base
La première étape, avant de passer à tout asservissement, est d'obtenir un
modèle de la machine. Une machine asynchrone peut être mise sous différentes formes de modèles, par exemple les modèles à inductances couplées, les schémas équivalents à fuites totalisées au rotor ou au stator ...
Le modèle (par phase) est donné ci-dessous :
11
On en déduit les équations suivantes sur les tensions et les flux :
s s s s
dV R I
dt= + Φ
r r r r
dV R I
dt= + Φ
* ( )*s s s rL I M P p IθΦ = +
* ( )*r r r sL I M P p IθΦ = + − où P(±pθ) est la matrice de rotation d'angle ±pθ qui permet le passage du repère (R) au repère (S) et θ la position du rotor, p le nombre de paires de pôles. L'angle pθ est l'angle électrique du rotor (R) par rapport au stator (S). L'utilisation de la représentation complexe permet de simplifier l'écriture :
s s s s
dV R I
dt= + Φ
r r r r
dV R I
dt= + Φ
*s s s rL I M IΦ = +
*r r r sL I M IΦ = +
La modélisation s'appuie sur un certain nombre d'hypothèses :
• parfaite symétrie, • assimilation de la cage à un bobinage en court-circuit de même nombre de
phases que le bobinage statorique, • répartition sinusoïdale, le long de l'entrefer, des champs magnétiques de
chaque bobinage, • absence de saturation dans le circuit magnétique.
Nous avons, d'après (4) :
1 jpr r s
r
I Me IL
θ− = Φ −
D'où, après dérivation, 1 jp jpsr r
sr
d Id I dMe Mjp e I
dt L dt dtθ θθ− − Φ= − +
& (5)
(1)
(2)
(3)
(4)
12
Les équations (1) et (3) donnent :
jp jps rs r s s s
dI dIL jMp e I Me V R I
dt dtθ θθ+ + = −&
Remplaçons rdI
dθpar l'expression (5) :
jp jp jps srs r s s s s
r
dI d IdML jMp e I Me Mjp e I V R I
dt L dt dtθ θ θθ θ− − Φ+ + − + = −
& & (6)
Nous avons 0rV = (rotor en court-circuit), soit d'après (2), 1 r
rr
dI
R dt
Φ= −
En remplaçant rI dans l'expression (4),
jpr rr s
r
d RMe I
dt Lθ−Φ
= − Φ − (7)
Nous avons alors, en remplaçant rI et rΦ par leurs expressions respectives dans (6) : 2 2
jp jpm s r rs r s s s
r r r r r r r r
L dI R RMp M Mp M ML j e j Me j p R I V
L dt L R L L R L Lθ θθ θ θ
− = − − Φ + − − − − +
& &&
Après simplifications, 2 2
2 2jpm s r
s r r s s sr r r r
L dI R p ML M j e R R I V
L dt L L Lθθ
− = − − Φ − + +
&
Posons 2
1s r
M
L Lσ = − appelé coefficient de dispersion.
2
2 r sjps sr r
r sr s r s s
MR R
dI VR LMjp e I
dt L L L L Lθθ
σ σ σ
+
= − Φ − +
&
Posons s r
Mk
L Lσ= et
2
2 r sr
s
MR R
L
Lγ
σ
+=
Nous avons également θΩ = & , vitesse mécanique et rr
r
LT
R= constante de temps
rotorique. Nous pouvons alors écrire :
1 jps sr s
r s
dI Vk jp e I
dt T Lθ γ
σ
= − Ω Φ − +
13
2. Transformation de Clarke
L'idée de Clarke repose sur le fait qu'un champ tournant créé par un système
triphasé peut l'être aussi par un système biphasé de deux bobines à π/2 équivalent, à condition que le champ ou les forces magnétomotrices et la puissance instantanée soient conservés.
Ainsi, aux trois grandeurs triphasées xa, x
b, x
c, on associe le vecteur [X
(s)] dans
le référentiel (S) d'axes (α,β) fixe lié au stator (Figure 1.4).
Figure 7 : Représentation du vecteur champ tournant
14
Le vecteur [X(s)
] a pour expression :
1 11
2 2
3 30
2 2
a
s T b
c
xx
X K xx
x
α
β
− − = = −
2
3TK = pour une représentation conservant la puissance.
Le nombre complexe associé aux composantes de ce vecteur s'écrit :
2 4
3 3j j
s T a b cX K x x e x eπ π
= + +
Pour obtenir une matrice de passage carrée et donc inversible, on ajoute une composante x
0 fictive :
0
1 11
2 2
2 3 30
3 2 21 1 1
2 2 2
a
s b
c
x x
X x x
x x
α
β
− − = = −
Dans beaucoup de cas, le système de grandeurs triphasées est tel que la somme instantanée des grandeurs est nulle, ce qui permet d'annuler la composante homopolaire d'indice
0.
15
Les relations inverses sont définies par :
( )2
3
43
2Re
3
2Re
3
2Re
3
a sT
j
b sT
j
c sT
x XK
x X eK
x X eK
π
π
−
−
=
=
= Le vecteur [X
(s)] a pour expression :
1 0
2 1 3
3 2 2
1 3
2 2
a
s bT
c
xx
X xxK
x
α
β
= = −
− −
3. Modèle exprimé dans le repère (α,β) lié au stator Soit le changement de repère :
jprs re θΦ = Φ
qui définit le flux rotorique dans le repère (α,β) fixe par rapport au stator. Dérivons cette équation :
jp jprs rr
d djp e e
dt dtθ θθΦ Φ= Φ +&
En remplaçant rd
dx
Φpar l'expression (7), nous obtenons :
1jp jprsr s r
r r
d Mjp e I e
dt T Tθ θθΦ = Φ + − Φ&
Soit, après regroupement, 1rs
s rsr r
d MI jp
dt T Tθ
Φ = + − Φ
&
16
Nous obtenons finalement le système d'équations suivant :
1s srs s
r s
dI Vk jp I
dt T Lγ
σ
= − Ω Φ − +
1rss rs
r r
d MI jp
dt T T
Φ = + Ω − Φ
Nous avons :
s s sI i jiα β= + et r r rjα βΦ = Φ + Φ
Nous pouvons alors écrire :
1ss r r s
r s
di ki kp v
dt T Lα
α α β αγσ
= − + Φ + ΩΦ +
1ss r r s
r s
di ki kp v
dt T Lβ
β α β βγσ
= − − ΩΦ + Φ +
1rs r r
r r
d Mi p
dt T Tα
α α βΦ = − Φ + ΩΦ
1rs r r
r r
d Mi p
dt T Tβ
β α β
Φ= + ΩΦ − Φ
17
III. Commande Scalaire
Il existe différents types de commandes scalaires (en passant par les courants ou bien par les tensions), néanmoins la finalité reste dans tous les cas la même. Une première phase consiste à contrôler l'amplitude du flux (le maintenir à sa valeur nominale), une seconde étape consiste quant à elle à contrôler le couple. Effectivement, le modèle inverse d'une machine tournante nous conduit à contrôler le couple pour imposer la vitesse de rotation ou la position de l'arbre.
On remarquera qu'une commande scalaire permet de contrôler le couple en régime permanent, alors qu'une commande vectorielle permet de contrôler le couple en régime dynamique. Nous nous sommes intéressés à une commande scalaire en passant par les tensions, ainsi nous avons réalisé un contrôle des flux à l’aide des tensions statoriques.
1. Aspects théoriques
Lors de la réalisation d'une commande scalaire la première étape est de contrôler le flux. Pour une commande en tension la loi de commande est simple :
où Vs est la valeur efficace d'une tension simple statorique, Φs
représente l'amplitude du flux statorique et ωs la pulsation statorique (avec ωs = 2⋅π⋅fs
). On cherche donc à maintenir l'amplitude du flux à sa valeur nominale, avec
.
Seulement cette écriture n'est valable que dans l'hypothèse où Rs= 0. L'influence du terme Rs⋅Is n'est néfaste que pour les faibles valeurs de fs , la stratégie de commande consiste donc à introduire une fonction BOOST (dans la loi de commande
constante) qui compense les effets de Rs⋅Is pour les faibles valeurs de fs (ou ωs).
On va maintenir Vs à un niveau constant (Vboost) pour les valeurs faibles de fs .
Vs =Φs ⋅ω s
18
Une fois le flux contrôlé, la deuxième étape consiste à commander le couple,
qui peut être écrit sous la forme suivante (si Vs =Φs⋅ωs ):
où Cem est le couple électromagnétique, p
est le nombre de paires de pôles, ωr la
pulsation rotorique (avec : ωr = 2⋅π⋅fr ), (avec : , rapport entre spires
rotor/stator) et σ le coefficient de Blondel ou coefficient de dispersion (avec
). Or pour un point de fonctionnement proche du synchronisme on peut
considérer :
Une fois le contrôle du flux réalisé on obtient Φs = constante, la relation s'écrit
donc :
Figure 8 : caractéristique couple électromagnétique - pulsation rotorique
19
On va alors chercher à reconstituer ωr(ou f
r) afin de commander le couple
électromagnétique de la machine. Une fois fr reconstituée et le couple commandé, l'asservissement de vitesse peut être mis en place.
2. Simulation sous MATLAB/SIMULINK
La commande scalaire du moteur asynchrone a été préalablement implémentée
sous Simulink, nous n’avons donc plus qu’à vérifier notre commande scalaire et finalement contrôler que notre modèle a bien le même comportement que le moteur.
Ci-dessus, nous pouvons voir le schéma d’implantation utilisé pour implémenter
la commande scalaire sur le DSP qui contrôle notre moteur asynchrone. Ci-dessous nous pouvons voir, à l’aide du logiciel ControlDesk, l’évolution des
courants statoriques ainsi que la vitesse angulaire du moteur au cour du temps. Sur les afficheurs numériques nous pouvons voir à gauche la consigne de vitesse et à droite la vitesse réelle du moteur mesurée grâce à une génératrice tachymétrique.
20
Nous avons ensuite ajouté notre modèle afin de vérifier que son comportement
et celui du moteur sont bien similaires.
Commande_Scalaire_2.mdl
21
Voici ce que nous avons obtenu : En vert, il s’agit des différents courants statoriques du moteur et en rouge les
courants calculés par notre modèle. Sur les afficheurs numériques nous pouvons voir à gauche la vitesse réelle du moteur mesurée grâce à une génératrice tachymétrique et à droite la vitesse que renvoie notre modèle. Remarque : Il y a une différence entre le modèle et le moteur asynchrone. Cette erreur a été corrigée en rajoutant les modèles des convertisseurs statiques ainsi que des filtres anti-repliements en amont de notre modèle du moteur.
Une commande vectorielle avait également été développée sur le moteur. Nous
avons juste étudié cette dernière sans y apporter de modification, donc nous n’en parlerons pas dans ce rapport.
Une fois notre modèle validé et la commande scalaire mise en place, nous
pouvons à présent nous intéresser à la partie observation.
22
IV. Observateur de type Grand Gain
1. Notations
Posons les notations suivantes afin d’alléger les calculs :
αsi 1 =i composante α du courant statorique (mesuré)
βsi 2=i composante β du courant statorique (mesuré)
αr 1 Φ=Φ composante α du flux rotorique (non mesuré)
βr 2 Φ=Φ composante β du flux rotorique (non mesuré) ω vitesse de rotation mécanique
αs v 1 =u composante α de la tension statorique
βs v 2=u composante β de la tension statorique
On définit la norme du flux de la façon suivante : 2
221
2 Φ+Φ=Φ
On pose :
=
2
1i
ii ;
ΦΦ
=Φ2
1 ;
=
2
1u
uu et aussi
=
2
1i
ii
&
&& ;
ΦΦ
=Φ2
1&
&&
Choisissons comme vecteur d’état:
Φ=ω
i
x
D’après les équations du modèle, nous avons :
+
ΦΦ
−+
−−
=
=
2
11
0
01
2
1
2
10
0
2
1u
u
sL
sL
rT
kkp
kprT
k
i
i
i
ii
σ
σ
ω
ω
γγ
&
&&
+
ΦΦ
−
−−+
=
ΦΦ
=Φ2
1
2
1
2
1
2
1
00
001
1
0
0
u
u
Tp
pT
i
i
r
r
TM
TM
r
r
ω
ω
&
&&
( ) Lr
TJ
iiJL
pM 101
10
2
121 −
ΦΦ
−=ω&
23
En introduisant :
−=
01
102J et ( ) 2 2
101
10
10
0111
1
JpIrT
prT
rTp
prT
F ωωω
ωω −=
−−
=
−=
On obtient la forme condensée suivante :
( )
( )
−Φ=
Φ−=Φ
+Φ+−=
LT
r
r
s
TJ
JiJL
pM
FiT
M
uL
Fki
1
1 i
2ω
ω
σωγ
&
&
&
Les variables d’état accessibles à la mesure sont les courants statoriques
=
2
1i
ii et
éventuellement la vitesse ω mais en aucun cas les flux rotoriques
ΦΦ
=Φ2
1 .
2. Observateur avec mesure de vitesse On sépare les variables d’état (ou équations d’état) en deux parties les variables d’état « électriques » et les variables d’état « mécaniques ». On va ensuite construire séparément deux observateurs. 1er observateur : on réalise une estimation des variables d’état électriques en introduisant un terme correctif basé sur l’erreur commise sur l’estimation des variables électriques mesurées (courants statoriques) :
On a une forme :
=+=
Cxy
BuAxx& avec :
( )( )
+
Φ
−
−=
Φ 2
12
2
2
0
1i
u
uILFI
T
MFkI
i
B
s
A
r 43421444 3444 21
&
&σω
ωγ et
ΦΦ
=
=
2
1
2
1
0010
00011
2
i
i
C
i
iy
44 344 21
24
Ce n’est pas une forme canonique d’observabilité, on va donc introduire une matrice de changement de base :
( )( )ωkFIdiag , 2=Λ d’où : ( )
=Λ −− ω12
1 1, Fk
Idiag
On utilise alors une structure de type grand gain : ( ) ( )
( )
++=
−−∆−Λ=
meBuxAx
meCTCSxme
νθθν
ˆˆ
11ˆ11
1&
Avec :
−−
=
0
0
ˆ
ˆ
22
11
ii
ii
em le vecteur construit à partir de l’erreur de modélisation sur l’état
mesuré, c’est-à-dire sur les courants.
=∆ 2
1
2
1 ,
1IIdiag
θθ et 01 >θ d’où : ( ) ( )2121 ,
1IIdiag θθ =∆ −
S est l’unique solution symétrique définie positive de l’équation algébrique de Lyapunov suivante : CTCA SS TAS =++ et [ ]TIITICICTCS 2 22 2
22 2
12 1 =
=−
Ce qui donne : ( ) ( ) ( ) mm eII
I
I
I
k
FI
e 02
0
0
0
0
22
2
21
212
1
= −
θωθν
Soit : ( ) ( ) ( ) mm eII
I
Fk
Ie 0
20
0
22
211
2
1
= − ωθθν
( ) ( ) ( ) ( ) mmm eF
k
IeI
Fk
Ie
=
= −− 0
020
2
12
1
21
211
2
1 ωθθ
ωθθν
D’où :
( ) [ ] ˆ121ˆ ˆ ˆ iiusL
Fkii −++Φ+−= θσ
ωγ& avec [ ]
−−=−
22
11ˆii
iiii
( ) ( )[ ]iiFk
FiT
M
r
ˆˆ ˆˆ 12
1 −+Φ−=Φ − ωθω&
25
avec ( )
−
+=
−
+=−
rTp
prT
prT
rT
rTp
prT
prT
F1
1
2221
2
1
1
222
111
ω
ω
ωω
ω
ωω donc :
−−
+
+
ΦΦ
−+
−=
22
1112
2
11
2ˆ1ˆ
1
1
2
1 2
1ii
ii
u
u
sL
rTp
prT
ki
i
i
i θσω
ωγ
&
&
−−
−
++
ΦΦ
−−
=
ΦΦ
22
11222
221
2
1
2
1
2
1
ˆ
ˆ
1
1
1ˆ
ˆ
1
1
ˆ
ˆ
ˆ
ˆ
ii
ii
Tp
pT
pT
T
kT
p
pT
i
i
T
M
r
r
r
r
r
r
r ω
ω
ωθ
ω
ω
&
&
C’est-à-dire :
( )
( )
( ) ( )
( ) ( )
ˆ1ˆ1
ˆ1ˆˆˆ
ˆˆ1
1ˆˆ1ˆˆ
ˆ21ˆ1ˆˆˆ
ˆ21ˆˆ1ˆˆ
2211222
221
2122
2211222
221
2111
22122122
11112111
−+−
++
Φ+Φ−−=Φ
−−−
++
Φ+Φ−=Φ
−++
Φ+Φ−+−=
−++
Φ+Φ+−=
iiT
iippT
T
kTpi
T
M
iipiiTpT
T
kp
Ti
T
M
iiuLT
pkii
iiuL
pT
kii
rr
r
rr
rr
r
rr
sr
sr
ωω
θω
ωω
θω
θσ
ωγ
θσ
ωγ
&
&
&
&
11 >θ est le paramètre de synthèse à régler.
2ème observateur : on va construire un observateur sur la vitesse et le couple de charge (non mesuré) en introduisant un terme correctif basé sur l’erreur commise sur l’estimation de la vitesse. On fait l’hypothèse que la dérivée du couple de charge est constante.
Par conséquent :
( )
( )
=
−Φ−Φ=
constante
11221
LL
Lr
kT
TJ
iiJL
pM
&&
&ω
26
Soit :
( )
Φ−Φ
+
−
=
L
r
L
L
L
L
k
iiJL
pM
T
TJ
T
T 0
000
100
01
0 1221
&&&
&
& ωω
On a une forme :
=+=
CxyLKAxx&
avec
=
−
=000
00
00
000
100
01
0
2
1
A
AJ
A 12et 1
1 =−= AJ
A
( )
Φ−Φ
=
L
r
L
k
iiJL
pM
K 0
1221
( )
===
LTLTCxy&
ωω 001
En introduisant le signal d’erreur suivant : )(ˆ)()( txtxte −= (soit )()()(ˆ tetxtx −= ) On souhaite que : [ ] 0)(lim =
∞→tte
En particulier on aura : Aee=& Or le système n’est pas sous une forme canonique d’observabilité, par conséquent on introduit la matrice de changement de base suivante :
( )
−
−==Λ
J
JAAAdiag
100
01
0
001
21,1 , 1 d’où :
−−=Λ−
J
J
00
00
0011
Vérification :
−−
−
−
−=−ΛΛJ
JJ
J
J00
00
001
000
100
01
0
100
01
0
0011A
=
=
−−
−
−
=−ΛΛ0020
000
100
010
00
00
001
000
100
01
0
1AI
J
JJ
J
27
On utilise alors une structure de type grand gain : ( ) ( )
( )
+=
−−∆−Λ=
mexAx
meCTCSxme
νθθν
ˆˆ
11ˆ12
2&
Avec : ( )
−=
0
0
ωω
me le vecteur construit à partir de l’erreur de modélisation sur l’état
mesuré, c’est-à-dire sur la vitesse.
=∆
22
1 ,
2
1 , 1
2 θθθ diag et 02 >θ d’où : ( )
=−∆ 2
2 ,2 , 112
θθθ diag
S est l’unique solution symétrique définie positive de l’équation algébrique de
Lyapunov suivante : CTCA SS TAS =++ et [ ]TT
CCCTCS 1 3 3 33 2
3 13 1 =
=−
Ce qui donne : ( ) ( ) me
J
Jme 001
1
3
3
2200
020
001
00
00
001
2
−−=
θθθν
Soit : ( ) ( ) ( ) me
J
Jme
J
Jme
J
Jme
−−=
−−=
−−=
0022
0023
003
20012
2
23
3
2001
1
3
3
2200
020
001
2θθθ
θθθ
θθθν
( )( )
( )( )
−−−−
−=
−
−−=
ωωθωωθ
ωωθωω
θθθν
ˆ
ˆ3
ˆ3
0
0
ˆ
00
003
003
32
22
2
22
22
J
J
J
Jem
D’où :
( ) ( )
( )( )
−−=−−=
−+−Φ−Φ=
ωωθωωθ
ωωθω
ˆˆˆ3ˆˆ
ˆ3ˆ1ˆˆˆˆˆ
32
22
21221
JT
JTT
TJ
iiJL
pM
L
LL
Lr
&&
&&
&
charge de coupledu dérivée la de estimation
charge de coupledu estimation
vitessela de estimation
12 >θ est le paramètre de synthèse à régler.
28
Remarques :
lorsque la dérivée du couple de charge est constante l’erreur d’estimation converge exponentiellement vers zéro. Si celle-ci n’est pas constante, mais néanmoins bornée par une constante, l’erreur d’estimation peut être rendue aussi petite que souhaitée en réglant le paramètre de synthèse 2θ en conséquence.
Pour l’implantation temps réel de cet observateur, il est nécessaire d’introduire une variable intermédiaireLpT qui va jouer le rôle de la dérivée du couple de
charge. On obtient alors :
( ) ( )
( )( )
−−=
−−=
−+−Φ−Φ=
ωωθωωθ
ωωθω
ˆˆ
ˆ3ˆˆ
ˆ3ˆ1ˆˆˆˆˆ
32
22
21221
JT
JTT
TJ
iiJL
pM
Lp
LpL
Lr
&
&
&
Dans ces conditions, si ( )ωω =ˆ alors :
( )
==
==
−Φ−Φ=
0ˆˆ
ˆˆ
ˆ1ˆˆˆˆˆ 1221
LLp
steLpL
Lr
TT
CTT
TJ
iiJL
pM
&&&
&
&ω
3. Simulation sous Matlab et implémentation sur DSP
Nous avons implémenté le premier observateur en utilisant une commande scalaire pour que le système soit stable. Voici les résultats obtenus :
Observateur1.mdl
29
Ci-dessous nous avons les différents courants statorique (simulés avec notre modèle, avec un θ1 de 1000) et leurs estimations (les estimées sont confondues avec les courants quelles suivent).
Et maintenant, les flux :
Temps en seconde
Temps en seconde
Flux statoriques
en Wb
Courants statoriques en A
30
Les flux de notre modèle sont en cyan et en magenta, leurs estimés sont
respectivement en bleu et en rouge. Nous pouvons voir, pendant la phase transitoire une légère erreur d’estimation qui s’annule au bout d’une seconde.
Une fois ce premier observateur implémenté nous avons ajouté le second en
cascade en utilisant les courants et les flux estimés. Ci-dessous le schéma Simulink réalisé (avec un θ2 de 50).
Temps en seconde
Vitesse en rad/s
Observateur2.mdl
31
Ci-dessus est représentée, en bleu, la vitesse du moteur (simulé avec notre modèle) et en rouge l’estimé de notre observateur.
Ci-dessous est représentée, en rouge, le couple résistant appliqué au moteur et en bleu son estimation.
Nous tenons à rappeler que cet observateur est en cascade avec un second, ce
qui explique la lenteur de convergence de l’estimation du couple résistant au début de la simulation. De plus, rappelons que nous n’utilisons aucune information sur le couple de charge lors de l’estimation.
Une fois les observateurs testés en simulation nous les avons implémentés et
envoyés sur le DSP. Voici ce que nous avons obtenu :
Temps en seconde
Couple de charge en N.m
Temps en seconde
Courants statoriques en A
32
En bleu sont représentées les grandeurs mesurées sur le moteur et en rouge les
estimations de nos observateurs. Sur la première figure, nous observons un des courants statoriques. Sur la seconde, il s’agit de la vitesse du moteur en rad/s. Et finalement, la dernière représente, le couple résistant appliqué au moteur. Nous devons préciser que le couple résistant en bleu ne représente pas tout à fait la charge appliquée au moteur. En effet, nous devons rajouter un couple constant (car nous sommes à
Temps en seconde
Temps en seconde
Couple de charge en N.m
Vitesse en rad/s
33
vitesse constante) due aux frottements du moteur. De plus, il s’agit de la commande du frein à poudre utilisé pour appliquer un couple résistant (multiplié par un gain pour avoir un couple). Le frein à poudre étant un système physique, notre couple est retardé par rapport à sa commande et filtré en haute fréquence. Nous pouvons donc dire que notre estimation du couple est très acceptable.
Cette première partie validée, nous pouvons donc passer à présent à
l’observateur sans mesure de vitesse.
4. Observateur sans mesure de vitesse Rappel :
( )
( )
−Φ=
Φ−=Φ
+Φ+−=
LT
r
r
s
TJ
JiJL
pM
FiT
M
uL
Fki
1
1 i
2ω
ω
σωγ
&
&
&
avec ( ) 2 21
1
1
JpIrT
rTp
prT
F ωω
ωω −=
−=
On va introduire le changement de variable suivant :
( ) Φ−Φ=Φ
−=Φ= 2
11
1
JprT
rTp
prT
Fr ωω
ωω et par conséquent ( )rF ω1−=Φ
Dans ces conditions : ( )
( )
−=
Φ+Φ−Φ=
++−=
−L
T
r
r
s
TJ
rFJiJL
pM
pJT
r
uL
rki
1
1
1 i
12
2
ωω
ωω
σγ
&
&&&&
&
( ) riT
MFi
T
M
rr
−=Φ−=Φ ω& , par conséquent :
( )
−+Φ−
−=Φ+Φ−Φ= ri
T
MpJri
T
M
TpJ
Tr
rrrr
ωωωω &&&&& 22
11
Φ−
−−
−= ωω && 22
1pJri
T
MpJri
T
M
Tr
rrr
34
Soit :
−
−=
Φ−
−−
−=
++−=
−
Lr
T
r
rrr
s
TJ
rJpIT
JiJL
pM
pJriT
MpJri
T
M
Tr
uL
rki
1
1
1
1 i
1
222
22
ωω
ωω
σγ
&
&&
&
Ou encore :
−
Φ−+
−
−
+−
+
−−=
−L
r
T
r
rr
s
rT
J
pJ
rJpIT
JiJL
pM
riT
M
T
uL
rriT
MpJ
Ik
r
i
1
0
1
1
1i
i
000
00
00
2
1
222
2
2
ω
ω
σγ
ωω&
&
&
&
On a une forme : ( ) ε++= uxBbAxx ,& et Cxy =
avec
=000200
010
A
A
A
−−== ri
rTmL
pJAkIA 22et 21 et ( )002IC =
Le système n’est pas sous une forme canonique d’observabilité, par conséquent on introduit la matrice de changement de base suivante :
( )
−−
==Λ
rirTmL
kpJ
kI
I
AAAIdiag
200
020
002
21,1 ,2 d’où :
+
−−
=Λ−
ΛΛ=+Λ
rirTmL
Jkp
Ik
ITT
21
00
021
0
0021
On utilise alors une structure de type grand gain : ( ) ( )
( ) ( )
++=∆Λ= −−+
m
mT
m
euxBbxAx
eCCSxe
νθν θ
,ˆˆˆ
ˆ 113 3
&
Avec :
−=
0
0
)ˆ( ii
em le vecteur construit à partir de l’erreur de modélisation sur l’état
mesuré, c’est-à-dire sur les courants statoriques.
35
=∆
23
2 ,3
2 , 23 θθθ
IIIdiag et 03 >θ d’où : ( )
=−∆ 2
23 ,23 , 2
13
IIIdiag θθθ
S est l’unique solution symétrique définie positive de l’équation algébrique de
Lyapunov suivante : C'C'A SS AS TT =++ et [ ] [ ] TTT IIIICICICCS 3 3 ' 2222332
232
13
1 ==− où [ ] 0 0 ' 222IC = est la matrice reliant la sortie au vecteur d’état dans la base où A a la forme canonique d’observabilité. Ce qui donne :
( ) ( ) m
r
m eI
I
I
I
I
I
I
riT
MJ
kp
Ik
I
e 003
3
00
00
00
100
01
0
00
2
2
2
2
22
3
23
2
2
2
2
3
−−
=+ θ
θθν
Avec :
=
−
+−=
−
2
1
11
22
2 αα
riT
M
riT
M
riT
MJ
r
r
r
donc on obtient : ( )2122
21
2
111 αααα +
−=
−−
+
kpri
T
MJ
kp r
D’où :
( )
( )
( )
−
−+−
−+
+−
−
−=
−−
−−
−=
−+++−=
−
iiriT
Mri
T
M
riT
Mri
T
MkprJpI
TJi
JL
pM
iik
riT
MpJri
T
M
Tr
iiuL
rkii
rr
rr
r
T
r
rrr
s
ˆˆˆˆˆ
ˆˆˆˆ
11ˆ ˆ
1 ˆˆ
ˆ3ˆˆˆˆˆ1
ˆ
ˆ31
ˆ ˆ ˆ
3311222
11
2
22
1
222
232
3
θωω
θω
θσ
γ
&
&
&
13 >θ est le paramètre de synthèse à régler.
Pour comparer les flux nous avons besoin de : ( ) rF ˆ ˆ1ˆ ω−=Φ
36
5. Simulation sous Matlab et implémentation sur DSP
Nous avons implémenté cet observateur sur Simulink et lui avons ajouté l’observateur sur la vitesse et le couple de charge vu précédemment. Nous utilisons ainsi la vitesse estimée pour le bouclage de la commande scalaire. Lors de cette dernière simulation nous n’utilisons donc plus la mesure vitesse. Ci-dessous le schéma d’implantation sur Simulink (avec un θ3 de 200) :
Maintenant, voici les résultats obtenus :
Temps en seconde
Vitesse en rad/s
Observateur5.mdl
37
Ci-dessus, en rouge la vitesse du moteur (simulée) et en bleu la vitesse estimée. Nous pouvons voir au début que l’estimation est bruitée mais converge en une seconde. Ci-dessous, en rouge le couple de charge appliquée et en bleu son estimation. Remarquons que notre charge varie avant que les observateurs aient convergés. Cela peut expliquer les grosses erreurs du début de la simulation. Cela dit, la convergence des observateurs est assez rapide, nous avons pu donc implémenter cette solution sur le DSP. Voici donc ce qu’a donné notre dernière expérience :
Temps en seconde
Couple de charge en N.m
Temps en seconde
Vitesse en rad/s
38
Finalement, nous voyons que notre estimation de la vitesse a une erreur inférieure à 2 rad/s. De plus, notre estimation du couple de charge est très acceptable pour les mêmes raisons que citées précédemment.
Conclusion
Ce projet nous a vraiment été profitable puisqu’il nous a permis de travailler sur une machine avec un modèle non linéaire. Nous avons donc étudié les observateurs ainsi que la commande grand gain.
L’observateur de type grand gain a été implémenté et fonctionne correctement. Nous avons donc pu tester la commande scalaire avec ce modèle et asservir convenablement le moteur en vitesse sans utiliser sa mesure.
Nous avons ensuite tenté d’implémenter une commande de type grand gain, mais un petit souci reste et nous n’avons pas eu le temps de la rendre opérationnelle dans le cadre de ce projet.
Temps en seconde
Couple de charge en N.m