You are on page 1of 46

partement Ge

nie Electrique et informatique


De

Travaux pratiques dautomatique

4`
eme ann
ee AE
Semestre 2

e 2011-2012
Anne

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Table des mati`


eres

1 Etude
dun asservissement de position
1.1 But de la manipulation . . . . . . . .
1.2 Rappels de cours . . . . . . . . . . . .
1.3 Manipulation . . . . . . . . . . . . . .
1.4 Realisation sur site reel . . . . . . . .
1.5 References bibliographiques . . . . . .

`
a relais
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .

.
.
.
.
.

3
3
3
5
6
6

2 R
egulation de d
ebit dair LTR 701
2.1 Description de la manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Modelisation et identification du processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Conception du retour detat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8
8
9
9

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

3 R
egulation dun niveau deau par PID num
erique
3.1 But de la manipulation . . . . . . . . . . . . . . . .
3.2 Description du procede et de lenvironnement . . . .
3.3 Modelisation et identification du processus . . . . . .
3.4 Mise en place dun correcteur de type PID . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

11
11
11
13
15

4 Etude
dun asservissement de position
4.1 Presentation de la manipulation . . . .
4.2 Materiel utilise . . . . . . . . . . . . .
4.3 Manipulation . . . . . . . . . . . . . .
4.4 References bibliographiques . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

17
17
18
18
20

.
.
.
.

21
21
21
21
22

`
a relais
. . . . .
. . . . .
. . . . .
. . . . .

.
.
.
.

.
.
.
.

.
.
.
.

5 Commande dun moteur


electrique par ordinateur
5.1 But de la manipulation . . . . . . . . . . . . . . . .
5.2 Identification du procede . . . . . . . . . . . . . . . .
5.3 Regulation numerique avec correcteur proportionnel
5.4 Mise en oeuvre dune commande pile . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

6 Commande optimale : robot legot NXT


23
6.1 But de la manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2 Presentation de la maquette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.3 Presentation du dossier RobotPendule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

TPs dAUTOMATIQUE 4`
eme ann
ee AE

6.4
6.5
6.6
6.7

Presentation du mod`ele Simulink du robot


Manipulation . . . . . . . . . . . . . . . .
Conclusion . . . . . . . . . . . . . . . . .
References bibliographiques . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

24
25
27
27

A xPC Target
28
A.1 Introduction et principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
A.2 Configuration dxPC Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
B Commande par retour d
etat
B.1 Introduction et principes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.2 Obtention de la matrice K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
B.3 References bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33
33
33
35

TPs dAUTOMATIQUE 4`
eme ann
ee AE

ASNL : Methode du plan de phase


Etude dun asservissement de position `a relais

1
1.1

Etude
dun asservissement de position `
a
relais

vent une usure prematuree des composants due aux changements


brusques et rapides de la commande. Afin de verifier certains
resultats donnes dans la partie du cours de syst`emes asservis non
lineaires qui a trait `
a cette methode, on simulera un tel syst`eme
avec Simulink. On tracera les trajectoires dans le plan de phase
du syst`eme. On evaluera egalement sil y a lieu, lamplitude et
la periode des auto-oscillations pour differentes valeurs des param`etres (seuil et hysteresis du relais, taux de contre-reaction tachymetrique, conditions initiales).

But de la manipulation

Le but de cette manipulation est detudier sous Matlab, le


comportement dun syst`eme commande par un regulateur toutou-rien, avec seuil, et/ou hysteresis (Figure 1), par la methode du
plan de phase.
6 9ROW

1.2

Rappels de cours

G
en
eralit
es sur la m
ethode du Plan de Phase
0

 ++


La methode du plan de phase permet detudier des syst`emes


dont le mod`ele est non lineaire par une methode dans lespace
detat (`a loppose de la methode du 1er harmonique qui est une
methode frequentielle). En pratique, cette methode se limite aux
syst`emes du deuxi`eme ordre. Au-del`
a, la representation graphique
est impossible.

 +

+

+


++


9ROW

0

Soit un syst`eme physique `


a un degre de liberte regi par une
equation differentielle du deuxi`eme ordre qui secrit :
ement non lineaire
Fig. 1 El

x
= f (x, x)

Linteret principal du regulateur tout-ou-rien reside dans sa


simplicite. Un relais ou un simple interrupteur peuvent servir `a
materialiser le dispositif de commande. Linconvenient est sou3

(1)

TPs dAUTOMATIQUE 4`
eme ann
ee AE

si on pose : x = y lequation (1) devient equivalente au syst`eme :

x = y
(2)

y = f (x, y)
Levolution depend donc de deux param`etres, la position x
et la vitesse x du syst`eme, que lon peut definir comme les deux
variables detat du syst`eme X = (x1 = x, x2 = x).

Letat du syst`eme est caracterise dans le plan (x, v = x),


appele plan de phase par le point P de coordonnee (x1 , x2 ) =
(x, x)

Levolution du syst`eme en fonction du temps pour des conditions initiales donnees est decrit par la trajectoire dite trajectoire de phase du plan P dans le plan de phase.
Lensemble des trajectoires de phase correspondant aux diverses conditions initiales (x0 , x 0 ) en P0 permises, constitue
le portrait de phase du syst`eme.

Fig. 2 Exemple de trajectoire de phase


foyer instable et convergeant `
a partir des regions eloignees du plan
de phase.
Dans le cas des asservissements du 2`eme ordre avec des non
linearites de type discontinu (relais, frottement sec), on peut considerer le syst`eme comme lineaire par morceaux. Lintegration de lequation (2) est relativement facile `
a faire par des methodes analytiques. On obtient, pour les differents etats de cette non linearite,
une equation non parametrique independante de t de la forme
f (x, y) = 0 definissant plusieurs types de trajectoires elementaires.
La construction de la trajectoire globale sera faite `
a partir de
ces trajectoires elementaires raccordees en des points de commutation correspondant au changement detat de la discontinuite.
On montre ainsi que dans certains cas (relais avec hysteresis par
exemple), la trajectoire obtenue tend vers un cycle limite stable ;
on peut alors etudier la stabilite dun tel cycle, et en calculer lamplitude et la periode par la methode des transformations ponctuelles de Poincare.

Notion de points singuliers


Tout point tel que X = 0 est appele un point fixe, point
critique ou encore point d
equilibre. Un couple (x1 , x2 ) tel que
X = 0 est un point dequilibre, il peut etre stable ou instable. Ces
points constituent pour les trajectoires des points singuliers. Pour
tout autre point quun point singulier, il nexiste quune trajectoire
de phase qui passe par ce point.
Notion de cycle limite

Propri
et
es particuli`
eres li
ees `
a la forme x 1 = x2

Les cycles limites sont les trajectoires dans le plan de phase


qui correspondent aux oscillations limites du syst`eme, solutions
periodiques vers lesquelles tendent les trajectoires pour toutes les
conditions initiales situees dans une certaine region du plan de
phase. Rappelons le caract`ere essentiellement non lineaire de tels
phenom`enes. La figure 2 montre un exemple de cycle limite stable
vers lequel convergent les trajectoires, divergeant `a partir dun

Sens de parcours des trajectoires de phases : Etant


donne que x augmente dans le domaine pour lequel x > 0 et
que x diminue dans le domaine associe `
a x < 0, les trajectoires de
phases sont parcourues dans le sens des aiguilles dune montre.

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Intersection de laxe Ox avec les trajectoires de phases :


Lorsque la trajectoire de phase coupe laxe des x, soit elle est perpendiculaire `
a laxe Ox, soit elle passe par un point singulier. En
effet, la tangente `
a la trajectoire de phase peut etre definie comme
la droite faisant un angle avec laxe Ox tel que :
tan =

dv
=
dx

dv
dt
dx
dt

V*

+
- -

Vr

Sr
UHODLV

5HWRXU
WDFK\PpWULTXH

k2

9

.P
 + S

dv
dt

car par definition


= f (x, v). On a alors deux cas :
f (x, v) 6= 0 on a alors une tangente verticale
f (x, v) = 0 et on a un point singulier (forme indeterminee).

+
- V

Vr

Sr
UHODLV

5HWRXU
WDFK\PpWULTXH

Position d
equilibre dans le plan de phase : Les positions
dequilibre sont definies par v = x = 0 et x
= v = 0, et sont donc
sur laxe des abcisses.

k2

9


S

Ks

Kg

f (x, v)
v
V*

.P
 + S

.V


G9
GW


S

Kg

Fig. 3 Schema bloc de lasservissement


Notion de droites de commutation
k2 est un param`etre ajustable pour regler la correction tachymetrique.
Lelement non lineaire est constitue par un relais avec seuil et
hysteresis dont la caracteristique Sr = F () est representee
par la figure 1. Le niveau de la tension de sortie du relais qui
alimente le moteur est de M = 10V .

La commutation de lelement non lineaire a lieu lorsque lentree


 est egale `a des valeurs caracteristiques. A ce moment-l`a, la valeur
de sortie du relais bascule. Cela correspond dans le plan detat `a
deux droites decalees parall`element. Par exemple, dans le cas dun
seuil pur, le relais commute pour des valeurs  =
2 . Or on
peut exprimer la valeur de  en fonction de lentree et de la sortie.
Cette equation definit donc deux droites de commutation : lorsque
la trajectoire coupe une des droites, le relais commute.

1.3

Remarque 1 : Afin de faciliter letude dans le plan de phase de


ce syst`eme simule, on exprimera les angles en radians, les tensions
en volts et le temps en secondes ; De plus on supposera le syst`eme
autonome (entree V (t) = 0), le syst`eme etant perturbe de sa
position dequilibre par la condition initiale V (0), les trajectoires
etant representees dans le plan (V (t), dV /dt).

Manipulation

Le schema bloc de lasservissement `a etudier est donne par la


figure 3.
Les param`etres physiques ont ete identifies
Km = 38.57rad/V.s Ks = 1.57V /rad
Kg = 0.23V.s/rad
= 0.27s

Etude
du syst`
eme sans correction tachym
etrique

(3)

Etude du syst`eme lineaire :


I Calculer lexpression de la fonction de transfert V (p)/V (p)
5

TPs dAUTOMATIQUE 4`
eme ann
ee AE

sans tenir compte du relais. Quelles sont les caracteristiques


du syst`eme en boucle fermee ? (amortissement, pulsation
propre, erreur statique, depassement, temps de montee, . . . ).
Sous Simulink, verifier ces donnees sur la reponse indicielle
du syst`eme avec des conditions initiales nulles.
I Donner sa representation detat en posant X1 = V et X2 =
dV /dt
Etude du syst`eme complet : Rajouter lelement non lineaire
dans le schema Simulink, parametrable avec H et . Les equations
differentielles qui regissent le syst`eme sont :

V
Km Ks Sr

= 1 dV
ddt
dt +
9

dV
dt

le mode non-oscillant.
Remarque 2 Le choix du nombre diterations et de la valeur du
pas de calcul devra etre un bon compromis entre la precision du
trace et le temps dexecution.
Influence de la correction tachym
etrique sur le r
egime
transitoire
On met maintenant en place sur le syst`eme une boucle interne
de contre reaction (k2 non nul).
I Modifier votre mod`ele en consequence et verifier son bon
fonctionnement.
I Pour H = 5 , = 0 (hysteresis pur), trouver les equations
des droites de commutation.
I Identifier deux valeurs du taux de contre reaction qui correspondent lun `
a un regime non-glissant, lautre `
a un regime
glissant.
I Chercher experimentalement le taux de contre reaction limite et celui du regime optimum (origine atteinte apr`es une
seule commutation).

= V

I Quels sont les conditions dequilibre pour ce syst`eme ?


I Etude du seuil pur ( 6= 0, H = 0). On prend par exemple
= 5. Quelle est la condition sur la condition initiale V (0)
pour que le syst`eme evolue vers un point dequilibre ? Montrezle grace `
a Simulink. Quelles sont les caracteristiques de ce
syst`eme ? (amortissement, pulsation propre, erreur statique,
depassement, temps de montee, . . . ) Justifier de mani`ere
theorique la forme des courbes : asymptotes, pente, etc.
Les droites de commutations sont les droites sur lesquelles
lelement non lineaire commute. Quelles sont les equations
des droites de commutation ? Repeter cette etude en faisant
varier la valeur de . Que remarque-t-on sur lerreur statique ? Le depassement ?
I Etude de lhysteresis pur ( = 0, H 6= 0). Faire une etude
similaire pour lhysteresis pur. Est-ce que le syst`eme va se
stabiliser vers un point dequilibre ? Justifier.
I Etude avec le relais hysteresis + seuil ( 6= 0, H 6= 0). Faire
une etude similaire dans ce cas. En particulier, pour H = 5,
trouver experimentalement le lim entre le mode oscillant
et le mode non-oscillant. De mani`ere duale, pour = 5,
trouver experimentalement Hlim entre le mode oscillant et

1.4

R
ealisation sur site r
eel

I Pratiquez les resultats obtenus en 1.3 sur le site reel.


I Observez la commande en regime glissant et en regime optimum.

1.5

R
ef
erences bibliographiques

F http ://moodle.insa-toulouse.fr/course/view.php ?id=66 - Cours


dASNL sous Moodle
F C. MIRA : Cours de syst`emes asservis non lineaires. DUNOD UNIVERSITE), 1969.
F K . OGATA : Modem control engineering PRENTICE HALL,
1970.

TPs dAUTOMATIQUE 4`
eme ann
ee AE

F J.C. GILLES, M. PELEGRIN : Syst`emes asservis non lineaires


tomes 1,2 et 3. DUNOD AUTOMATIQUE, 1975

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Commande par retour detat - Observateur


Regulation de debit dair LTR 701
2

R
egulation de d
ebit dair LTR 701

Lobjectif de la manipulation consiste `a realiser une regulation


de debut dair sur un processus de type s`eche-cheveux.
Le mod`ele etant donne, les etudes seront menees theoriquement
sous Simulink. La commande effective sera ensuite mise en uvre
par xPC Target (voir Annexe xPC Target). xPC Target est un
environnement logiciel qui permet de mettre au point, de tester et de mettre en uvre des applications temps reel sur du
materiel de type PC. Cet outil offre lavantage detre associe `a Matlab/Simulink, ce qui permet de passer de la phase essai/simulation
`a la phase mise en uvre/experimentation tr`es rapidement et tr`es
facilement en saffranchissant de letape de codage.

2.1

Description de la manipulation

Fig. 4 Maquette AMIRA LTR 701

Il sagit dun dispositif (maquette AMIRA de type LTR 701)


permettant la regulation du debit dair (ou flux) propulse `a linterieur
dun tube ainsi que la regulation de la temperature de lair en un
point du tube. Nous ne nous interesserons dans cette manipulation
qu`a la regulation du debit dair P .
Le dispositif est represente sur la figure 4.

Un schema de principe est donne sur la figure 5.


La description des principaux elements de la facade du botier
est la suivante :
ACTUATOR 1, entree (0 v 10V ) : Commande M de la
vitesse du ventilateur produisant le flux dair. La commande
peut etre interne au dispositif, reglee par un potentiom`etre,
ou bien externe, par application dun signal sur la borne
dentree.
ACTUATOR 2, entree (0 v 10V ) : Commande du chauffage
du flux dair. La commande peut etre interne au dispositif,
reglee par un potentiom`etre, ou bien externe, par application
8

TPs dAUTOMATIQUE 4`
eme ann
ee AE

10% est le suivant :


F (s) =

P (s)
0.48
=
M (s)
1 + 0.6323s + 0.1001s2

(4)

Validit
e du mod`
ele
Afin de verifier la validite de la fonction de transfert (Equation 4), on se propose de comparer la reponse du syst`eme reel et
du syst`eme identifie `
a un echelon.
I Mettre en place un mod`ele simulink permettant de tracer
la reponse du syst`eme identifie `
a un echelon autour du point
de fonctionnement utilise lors de lidentification.
I Mettre en place un mod`ele simulink permettant de tracer
la reponse du syst`eme reel `
a un echelon autour du point de
fonctionnement utilise lors de lidentification. On se servira
de xPCTarget pour mettre en place ce test (voir Annexe
xPC Target).
I Comparer les deux reponses `
a un echelon de 5%, 10%, 20%
(depassement, temps de reponse, retard, valeur finale, etc).
Conclure sur la validite de la fonction de transfert proposee.
Eventuellement, proposer une meilleure fonction de transfert
pour modeliser le syst`eme.

Fig. 5 Schema de principe de la maquette


dun signal sur la borne dentree.
SENSOR 1, sortie (0 v 10V ) : Mesure de langle du papillon
(perturbation).
SENSOR 2 et SENSOR 3, sortie (0 v 10V ) : Mesures de
temperature.
SENSOR 4, sortie (0 v 10V ) : Mesure de pression.

2.2

Mod
elisation et identification du processus

Mod
elisation
On souhaite contr
oler ce syst`eme en debit dair grace `a la commande M de la vitesse du ventilateur produisant le flux dair. Le
debit dair est perturbe par le volet, que lon reglera 80%. Il est
egalement pertube, car il est chauffe par une resistance. La commande du chauffage sera reglee en interne, `a 10%.
Le mod`ele du syst`eme perturbe est non lineaire. On a donc
identifie le mod`ele sur un point de fonctionnement (M0 , P0 ), et
on cherchera dans cette manipulation `a mettre en place une commande par retour detat autour de ce point de fonctionnement.

Mise en place du mod`


ele d
etat
I De mani`ere `
a pouvoir mettre en place une commande par
retour detat, definir les matrices A, B, C, D correspondant
`a la forme compagne de commandabilite.

2.3

Conception du retour d
etat

Lobjectif de la commande par retour detat est de commander


le syst`eme selon un cahier des charges donne. Le syst`eme identifie
etant un syst`eme du second ordre, on peut choisir facilement la
dynamique du syst`eme corrige. Nous avons `
a notre disposition 3

En approximant le syst`eme `
a un deuxi`eme ordre, le mod`ele
identifie en choisissant M0 = 80% et en effectuant un echelon de

TPs dAUTOMATIQUE 4`
eme ann
ee AE

cahiers des charges differents, deux bases sur des caracteristiques


dynamiques souhaitees, un sur du placement de poles :

I A laide de la fonction place de Matlab, determiner la loi de


commande (gain de retour detat L et gain de precommande
lc ).
I Tester sous simulink cette loi de commande.
I Comparer la avec les deux precedentes.

Cahier des charges n1 Le syst`eme corrige doit etre un syst`eme


du second ordre avec les caracteristiques suivantes :
Depassement inferieur `
a 5%,
Temps de reponse `
a 5% de 2s1 .

Test des commandes sur le syst`


eme r
eel Une fois votre
simulation validee, tester sur le syst`eme reel votre commande. (Attention, le syst`eme identifie etait autour dun point de fonctionnement ! ! !)

Cahier des charges n2 Le syst`eme corrige doit etre un syst`eme


du second ordre avec les caracteristiques suivantes :
Depassement inferieur `
a 5%,
Temps de reponse `
a 5% de 0,5s.
Cahier des charges n3 Le syst`eme corrige doit etre avoir les
valeurs propres suivantes :
valeur propre de -2 +2i.
valeur propre de -2 -2i.
Pr
eparation
I En preparation pour les deux cahiers des charges bases sur
la reponse dynamique, determiner le polynome caracteristique
souhaite pour le syst`eme boucle. En deduire la loi de commande (gain de retour detat L et gain de precommande lc ).
I Pour le troisi`eme cahier des charges, justifier le choix des
valeurs propres.
Travail exp
erimental
Simulation des cahier des charges 1 et 2
I Tester en simulation vos retours detat pour une consigne
de 0 `a 0,5V.
I Comparer les, en regardant notamment la commande.
I Quelles sont les valeurs propres de ces deux reglages ?
Simulation du cahier des charges 3
1
On rappelle que le temps de reponse a
` 5% dun syst`eme du second ordre
peut etre approxime a
` tr5% = 3n pour proche de 0.7.

10

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Regulation dun niveau deau par PID numerique


Application sous XPC Target
3
3.1

R
egulation dun niveau deau par PID
num
erique
But de la manipulation

Lobjectif de cette manipulation est dillustrer les differents aspects de la commande dun processus par calculateur numerique :
modelisation et identification des param`etres du processus ;
synth`ese theorique dune commande ;
mise en oeuvre de la commande en temps reel du processus.
Le processus `
a commander est ici un reservoir de liquide dont
on veut reguler le niveau. Loutil de simulation est Matlab. La
mise en oeuvre numerique de la commande en temps reel est faite
dans lenvironnement logiciel XPC Target.

3.2

1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

1
0
0
1
0
1
0
1
0
1
Qe
0
1
0
1
0
1
0
1
0
1
0
1
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
Qs
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
1111111
0000000
000000000000000000000
111111111111111111111
000000000000000000000
111111111111111111111
0000000000
1111111111
000000000000000000000
111111111111111111111
0000000000
1111111111
000000000000000000000
111111111111111111111
0000000000
0000000000000000000001111111111
111111111111111111111
11111111111
00000000000

Fig. 6 Schema du principe de fonctionnement du procede


Lenvironnement XPC Target

Description du proc
ed
e et de lenvironnement

XPC Target est un environnement logiciel qui permet de mettre


au point, de tester et de mettre en oeuvre des applications temps
reel sur du materiel de type PC.

Le proc
ed
e
Le processus illustre Fig. 6 commande dans ce TP est un simple
reservoir cylindrique de section S. Lentree est le debit dentree Qe
et la sortie est le niveau X de fluide dans le reservoir. Un debit de
fuite Qs est assure `
a travers une vanne manuelle.
Qe est proportionnel `
a une tension de commande Qe = kq U .
Le niveau X est mesure par un capteur lineaire Xm = kc X.

Cet outil offre lavantage detre associe `


a Matlab/Simulink, ce
qui permet de passer de la phase essai/simulation `
a la phase mise
en oeuvre/experimentation tr`es rapidement et tr`es facilement en
saffranchissant de letape de codage.
La configuration materielle standard est composee de 2 unites
informatiques reliees par une liaison serie asynchrone.
11

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Le PC h
ote sert dunite de developpement. A partir de
Matlab/Simulink, il est possible dengendrer directement lapplication temps reel (loi de commande dans notre cas). Il
fonctionne dans lenvironnement Windows habituel.
Le PC cible est oriente temps reel. Il est donc demarre
(`a laide dune disquette ou dune EPROM) non pas sur
DOS ou Windows mais sur un noyau temps reel specifique.
Ce noyau, entre autres choses, permet de recevoir et faire
executer le code engendre par le PC hote et dassurer la communication entre les deux machines (telechargement, mise en
marche, adaptation en ligne de param`etres, rapatriement de
donnees...). Enfin ce PC est equipe de cartes (dans notre cas
une carte National Instrument PC6424 avec convertisseurs
analogique/numerique et convertisseurs numerique/analogique) qui lui permettent de commander le processus `a reguler.
Pour lapplication consideree dans ce TP, on nutilise XPC Target que par lintermediaire dune interface ecrite en Matlab. Ainsi
la mise en boucle ouverte ou en boucle fermee, la mise en marche
ou en arret et la modification des param`etres ne demandent aucune manipulation particuli`ere (telle que la regeneration du code
pour la machine cible par exemple).

Description de linterface
Au cours de ce TP, XPC Target sera utilise par lintermediaire
dune interface ecrite en Matlab.
Cette interface permet la mise en boucle ouverte (Fig. 7) ou
en boucle fermee (Fig. 8) du processus. Le passage dune configuration `a lautre se fait au moyen dun menu deroulant.
R
eglages en Boucle Ouverte En boucle ouverte, il est possible de regler :
la periode dechantillonnage et la duree de lexperience
le point de fonctionnement U
lamplitude de lechelon de position U et son temps dapplication (temps au bout duquel lechelon sera applique)

La cible est equipee dun moniteur sur lequel sont visualises


deux types dinformation : des informations liees `a lexecution
temps reel de lapplication en cours (nom de lapplication, temps
courant, periode dechantillonnage...) ainsi quun rapport sur lexecution des commandes envoyees par le PC hote (adaptation de param`etres, mise en marche,...). Le second groupe dinformations est
graphique et depend de lapplication. Dans notre cas nous avons
choisi dafficher 2 oscilloscopes. Celui du haut donne le trace de
la commande envoyee au processus et celui du bas ceux de la mesure et de la consigne (en boucle ouverte la consigne est egale `a la
commande).

Fig. 7 Interface Matlab : reglages en Boucle Ouverte


Dans lapplication, la commande en boucle ouverte est la somme
du point de fonctionnement U et de lechelon de position U .

12

TPs dAUTOMATIQUE 4`
eme ann
ee AE

R
eglages en Boucle Ferm
ee

Exploitation des r
esultats

En boucle fermee, il est possible de regler :


la periode dechantillonnage et la duree de lexperience
le point de fonctionnement U , X
lamplitude de lechelon de position Xc et son temps dapplication
les differents param`etres du correcteur PID

Une fois lexperience terminee, il est possible de :


sauvegarder les donnees `
a laide de la fonction Sove. La sauvegarde seffectue dans le fichier experience.mat contenant
les vecteurs Temps, Consigne, Commande et Mesure.
Attention : chaque sauvegarde ecrase la precedente.
tracer les reponses directement `
a laide du bouton Tracer

3.3

Mod
elisation et identification du processus

Mod
elisation
Le mod`ele de ce syst`eme est non lineaire si lon consid`ere que
le debit de fuite Qs est de type turbulent et depend du niveau X
selon la relation :

Qs = X
Le bilan volumique conduit `
a:
dX =

1
(Qe Qs )dt
S

1
dX

X + Qe
=
dt
S
S

Si lon suppose dune part que le debit est lineaire en fonction


dune grandeur U de commande : Qe = kq U et dautre part que
la mesure de niveau se fait par un capteur lineaire : Xm = kc X,
lequation non lineaire du syst`eme secrit :

kq kc
kc p
dXm
=
Xm +
U
dt
S
S

Fig. 8 Interface Matlab : reglages en Boucle Fermee

soit :
p
dXm
= Xm + kU = f (Xm , U )
dt

(
avec :

=
k=

kc
S
kq kc
S

(5)

On pourrait verifier (comme dans les TPs de Syst`emes Boucles


a
de
p 2`eme annee) la non linearite en tracant la courbe reliant U `
, et v
Xm
erifier quelle correspond bien `
a une droite.
13

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Recherche dun mod`


ele lin
earis
e

I Tracer la reponse `
a un echelon damplitude 0.5, puis damplitude 1, autour du point de fonctionnement U = 5. Pour
ce faire :

)
Le mod`ele linearise autour dun point de fonctionnement (U , Xm
est obtenu en developpant le mod`ele en serie de Taylor autour de
) tronqu
ee au premier ordre. Pour cela on definit :
(U , Xm


Xm = Xm Xm
U = U U

1. Connecter la platine du procede au botier dinterface :


relier le point de mesure du niveau Xr (`
a gauche du
reservoir) `
a lentree In 0 du botier.
relier le point dentree de la commande U `
a la sortie
Out 0 du botier.
Attention on nutilise pas dans le cadre de ce TP
la mesure du debit dentree (notee egalement Xr ) et
situee `
a gauche de la platine.
2. Lancer Matlab sur le PC h
ote.
3. Taper la commande >>TP nivodo
4. Choisir loption boucle ouverte.
5. Regler la periode dechantillonnage `
a 1 secondes.

Fig. 9 Schema bloc du syst`eme en Boucle Ouverte

6. Regler le temps dexperimentation `


a 750s pour laisser au regime permanent d
u `
a lechelon le temps de
setablir, et fixer linstant dapplication de lechelon `
a
environ 100s afin de permettre au syst`eme de se positionner sur son point de fonctionnement. De mani`ere `
a
atteindre le point de fonctionnement plus rapidement,
fermer la vanne de sortie jusqu`
a atteindre un niveau
denviron 20, puis replacer la vanne au 2/3. Ne plus
toucher `
a cette vanne dans la suite de la manipulation,
car le repositionnement approximatif affecte tr`es sensiblement les resultats.

On a alors :


f
f
dXm

f (Xm , U ) +
Xm +
U
dt
Xm (Xm
U (Xm
,U )
,U )
dXm

p
Xm + kU

dt
2 Xm
La fonction de transfert valable autour du point de fonction ) s
nement (U , Xm
ecrit alors :
(

m
Xm (s)
K
T =2 X

G(s) =
=
avec :
(6)
U (s)
1 + Ts
K = kT

7. Regler les deux param`etres U et U pour fixer la valeur de la commande.


8. Lancer la mesure en cliquant sur Marche.
I En deduire les param`etres de la fonction de transfert.

Afin de verifier la validite de cette fonction de transfert et


didentifier les param`etres K et T , etudions la reponse `a un echelon
de position.

Remarque 3 Pour ces traces et lestimation de la fonction de


transfert associee penser `
a retrancher aux vecteurs de resultats
14

TPs dAUTOMATIQUE 4`
eme ann
ee AE
)
Mesure et Commande la valeur du point de fonctionnent (U , Xm
car les valeurs mesurees sont celles du procede reel et non de son
approximation lineaire.

3.4

proportionnel et detudier le comportement du syst`eme autour de


cette limite.

Etude
th
eorique et simulation On veut etudier la stabilite du
syst`eme boucle pour differentes valeurs de la periode dechantillonnage (entre 1 et 20 secondes). Le logiciel de simulation utilise est
Matlab et on fait appel `
a loutil sisotool qui permet detudier un
syst`eme boucle selon le schema indique `
a lecran.
I Trouver theoriquement G(z) en discretisant G(s).
I Tracer la courbe critique de lauto-oscillation Te = f (Kp )
ou Kp = g(Te ) pour Te entre 1 et 20 secondes.
I Trouver le gain critique pour une periode dechantillonnage
Te = 4s.
I Creer la fonction de transfert discr`ete G(z) en utilisant la
commande tf .
I Lancer lapplication sisotool, importer dans G la fonction de
transfert discretisee du procede et rechercher manuellement
(poignee rouge) la valeur limite Klim pour laquelle le syst`eme
en boucle fermee devient theoriquement instable.
I Verifier ces resultats sous Simulink.

Mise en place dun correcteur de type PID

Le syst`eme est maintenant mis en boucle fermee sur la principe


de la figure 10.
Le procede est commande numeriquement (bloqueur dordre
).
0) autour dun point de fonctionnement (U , Xm
Le correcteur PID continu poss`ede la fonction de transfert
continue suivante :
P ID(s) = Kp + Kd s + Ki

1
s

(7)

Les param`etres saisis sur lecran de controle sont ceux du correcteur continu (Eq. 7). On supposera que la phase de codage de
XPC Target utilise une discretisation de type avant (p = z1
Te )
pour realiser le correcteur numerique.

V
erification exp
erimentale On souhaite verifier experimentalement la perte de stabilite. Afin de realiser la manipulation suivante vous devez :
1. Commuter linterface en mode boucle fermee et selectionner
dans la partie commande uniquement le gain P .
) pour
2. Positionner les valeurs du couple (U , Xm
etre dans le
cas de letude considere ci-dessus.

Fig. 10 Schema bloc du syst`eme en Boucle Fermee

3. Choisir une periode dechantillonnage Te = 4s (lexperience


peut etre repetee avec dautres valeurs), et se placer sur le
gain limite precedemment trouve.

Etude
de la stabilit
e dans le cas dun correcteur proportionnel P
Lobjectif est de rechercher theoriquement et experimentalement la limite de stabilite du syst`eme boucle avec un correcteur
15

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Etude
de la pr
ecision dans le cas dun correcteur proportionnel P

Simulations
I Sous Matlab creer un correcteur discret (Te evidemment `
a
1 seconde) PI correspondant `
a Kp = 1 et Ki = 1.
I Lancer loutil rltool de Matlab et importer le syst`eme discretise dans G et le correcteur PI dans C. Regler ensuite manuellement la position de zpi (qui apparat comme un cercle
rouge) et le gain (poignee rouge) afin de positionner les p
oles
du syst`eme en boucle fermee le plus pr`es possible de lorigine.
I A laide du menu Compensators/Edit, relever les valeurs des
param`etres du correcteur. En deduire les valeurs correspondantes de Kp et Ki .

Il sagit ici de constater linfluence de la valeur du correcteur


proportionnel sur lerreur statique.
I Toujours en restant avec un simple correcteur P , realiser
une reponse `
a un echelon unitaire pour plusieurs valeurs de
K et pour une periode dechantillonnage donne (1 seconde
par exemple).
I Pour chacun de ses essais mesurer lerreur statique. Comparer avec la theorie.
Remarque 4 Les experiences correspondant `
a ces essais etant relativement longues, il est judicieux de sauvegarder lexperimentation
d`es quelle est terminee, puis relancer immediatement une nouvelle experience. Cela permet de traiter les donnees pendant quun
nouvel essai se deroule.

V
erification exp
erimentale
I Experimentalement, introduire sur lecran de contr
ole les
valeurs de Kp et Ki ainsi trouvees et etudier la reponse `
a un
echelon.
I Quobserve-t-on et pourquoi ne retrouve-t-on pas les resultats theoriques ?

R
eglage dun correcteur PI
Afin de corriger lerreur statique on se propose dinserer lintegrateur du PID.

Etude
th
eorique

R
eglage dun correcteur PID
Lajout de la partie integrale annule les erreurs statiques mais
introduit des oscillations. La mise en place dune partie derivee
aura pour effet de corriger ce travers.
I Experimentalement, chercher `
a regler les trois gains du correcteur pour annuler les erreurs statiques tout en minimisant
les oscillations.
I Conclure

Soit le correcteur continu :

1
(8)
s
I Montrer que le correcteur continu (Eq. 8) se discretise sous
la forme (Eq. 9) :
P I(s) = Kp + Ki

P I(z) =

Kpi (z + zpi )
z1

(9)

I Exprimer Kpi et zpi en fonction de Kp et Ki .

16

TPs dAUTOMATIQUE 4`
eme ann
ee AE

ASNL : Methode du 1er harmonique


Etude dun asservissement de position `a relais

Etude
dun asservissement de position `
a
relais

4
4.1

transfert comme on le fait pour un syst`eme decrit par une equation


differentielle lineaire `
a coefficients constants. La sortie s(t) est
decomposable en serie de Fourier. En ne considerant que le 1er
harmonique de s(t) : Wl sin(t + (), on definit une fonction de
transfert equivalente ou generalisee :

Pr
esentation de la manipulation

But de la manipulation
module = Wl /Xl

Il sagit detudier un asservissement de position dans lequel


lelement damplification est un relais (element non lineaire). Cette
etude porte essentiellement sur la determination experimentale du
lieu critique du relais, `
a partir de la connaissance du lieu de transfert de la partie lineaire, et des caracteristiques de loscillation de
pompage (amplitude et pulsation), mesurees experimentalement.

argument =

Cette fonction de transfert depend de la pulsation de lamplitude


dentree Xl
Wl /Xl = B(Xl , )
= (Xl , )
(j(X
,))
l
N (Xl , ) = B(Xl , )e
Un cas tr`es important en pratique est celui o`
u N ne depend
pas de la frequence, et depend seulement de lamplitude du signal
dentree Xl . Cest le cas delements non lineaires tels que : seuil,
saturation, tout ou rien, ... Dans ce cas, la fonction de transfert
generalisee N(x,) sappelle GAIN COMPLEXE EQUIVALENT.

Rappels de cours : approximation du ler harmonique


Lorsquon applique un signal sinusodal `a un syst`eme non lineaire,
on obtient en general une sortie s(t) periodique mais non sinusodale.

Etude
de la stabilit
e dun asservissement non lin
eaire
boucl
e
Considerons le syst`eme de la figure 12.
La fonction de transfert generalisee en boucle ouverte de ce
syst`eme est :
s
= N (Xl ).L(j)
x

ement non lineaire


Fig. 11 El
Pour un tel syst`eme, on ne peut pas definir une fonction de
17

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Fig. 12 Bouclage non lineaire


Supposons Xl constant ; N (Xl ) est alors un nombre fixe (reel ou
complexe). En appliquant le crit`ere du revers dans le plan de Nyquist, on peut dire que lasservissement est stable pour lamplitude
Xl de lerreur si le lieu de transfert N (Xl ).L(j) parcouru dans le
sens des croissants laisse le point critique - I `a gauche.
On peut faire le meme raisonnement en considerant la position
1
du lieu L(j) par rapport au point N (X
l)
Plus generalement, pour chaque amplitude Xl derreur, on peut
1
definir un point critique N (X
Lensemble de ces points constitue
l)
le lieu critique de lelement non lineaire.
Sur ce lieu critique, on peut determiner des regions pour lesquelles il y a stabilite et des regions pour lesquelles il y a instabilite
(voir figure 13)
Pour Xl < Xo le syst`eme est instable. Lamplitude de lerreur va donc augmenter et on se deplace sur le lieu critique
vers X0 .
Pour Xl > Xo le syst`eme est stable, Xl diminue vers X0 .
A la limite le syst`eme oscille avec une amplitude X0 de lerreur, `
a une pulsation . Cette oscillation est appelee POMPAGE.

Fig. 13 Crit`ere geometrique de determination dun cycle limite

4.2

Mat
eriel utilis
e

La manipulation comprend un moteur `


a courant continu etudie
en 3`eme annee, et un relais reglable.
Remarque 5 : On utilisera une fonction de transfert G(p) pour
Km
le moteur assimilable `
a p(1+
p) avec Km = 42.8rad/s.V et =
0.214s .

4.3

Manipulation

Etude
des auto-oscillations. Trac
e du lieu critique
Il sagit de construire experimentalement le lieu critique correspondant `a un relais ayant des caracteristiques determinees, et
de comparer les resultats obtenus avec le lieu critique construit `
a
partir des formules mathematiques etudiees en cours.

18

TPs dAUTOMATIQUE 4`
eme ann
ee AE

V*
Pe

Sr

k1

- -

UHODLV

5HWRXU
WDFK\PpWULTXH

k2

.P
 + S

9

Rr


S

Ps

I Etude th
eorique : On prend k1 = 0.5. Tracer sous Matlab dans le plan de Nyquist le lieu de transfert de la partie
lineaire k1 .L(j). Lintersection du lieu critique 1/N (Xl )
avec le lieu lineaire k1 .L(j) donne lieu `
a une autooscillation
dont lamplitude est Xl = X0 , et la pulsation de pompage
vaut . Noter ces valeurs theoriques.
I Pour remettre loscilloscope en mode normal, faire Main
Delayed>Roll. Regler k1 `
a 0.5. Relever la tension crete `
a
crete (2X0 ), ainsi que la frequence pour ces auto-oscillations.
Comparer aux valeurs theoriques damplitude et de pulsation de pompage.
I En faisant varier lattenuateur calibre, on fait varier le gain
k1 de k1 L(j)) ; on determine un nouveau point dintersection avec le lieu critique et ainsi de suite. Confronter les
valeurs theoriques et experimentales damplitude et de pulsation de pompage pour les valeurs de k1 suivantes : 0.7, 0.6,
0.5, 0.4, 0.3. Commentaires ?
I A partir des donnees reelles obtenues et du procede connu,
tracer le lieu critique du relais.
I Que peut-on en conclure ?

Fig. 14 Montage des differents elements


Montage
I Realiser lasservissement de position sans le retour tachymetrique represente par le schema bloc suivant (Fig. 14) pour
lequel :
1. Pe , Ps sont respectivement les gains de conversion (donnees
physiques, tension) de commande et de sortie. Ps vaut
1.58V /rad ;
2. Rr est un reducteur de rapport 1/9 ;
3. k1 est un potentiom`etre attenuateur (10 tours) (0 <
k1 < 1 ) qui permet de faire varier le gain en boucle
ouverte de la partie lineaire ;

Am
elioration des performances de lasservissement

4. La generatrice tachymetrique placee en bout de larbre


moteur delivre une tension avec un gain = 0.1V /rad.s1 .

Lin
earisation par balayage Caracteristique du relais H =
1V ; attenuateur k1 = 0.5.
I On prend `
a present le GBF que lon r`egle prealablement
pour obtenir une sortie sinusodale de frequence 50 HZ et
damplitude 0.2V.
I Le syst`eme etant en auto-oscillation, ajouter au signal derreur, sur une autre entree du relais, la tension delivree par le
GBF. Augmenter progressivement lamplitude. Quobservezvous ?
I Retrouver ce resultat avec Matlab.
I Conclusion

Mode op
eratoire
Il sagit de construire experimentalement le lieu critique pour
le relais avec hysteresis H = 1V
I Dans un premier temps, on veut verifier la caracteristique
du relais desiree. On prendra sur X lentree du relais, et
sur Y la sortie du relais. On reglera loscilloscope en mode
XY en appuyant sur Main Delayed>XY, et en se servant
du mode persistant de loscilloscope Display> Persist.
Observer la courbe Sr = f () apr`es avoir regle le seuil (dead
band) `
a zero, puis lhysteresis H `a la valeur correcte de 1 V
sur le module relais simule. La sortie Sr vaut 7.25V .
19

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Correction par boucle secondaire tachym


etrique La tension delivree par la dynamo tachymetrique prealablement attenuee
par un potentiom`etre remplace ici la tension sinusodale precedente :
on fait ce quon appelle un retour tachymetrique.
I Pour H = 1V ; regler k1 = 0.5. Quelle est lamplitude de
lauto-oscillation ?
I Determiner experimentalement la valeur du taux de contrereaction tachymetrique permettant de diviser par 2 lamplitude de lauto-oscillation.
I Retrouver ce resultat sous Matlab en utilisant le lieu critique
trace precedemment.

4.4

R
ef
erences bibliographiques

F http ://moodle.insa-toulouse.fr/course/view.php ?id=66 - Cours


sur la methode du 1er harmonique sous Moodle
F C. MIRA Cours de syst`emes asservis non lineaires. DUNOD UNIVERSITE), 1969.
F J.C. GILLES, M. PELEGRIN Syst`emes asservis non lineaires
tomes 1,2 et 3. DUNOD AUTOMATIQUE, 1975

20

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Commande numerique
Commande dun moteur electrique par ordinateur
5

Commande dun moteur


electrique par
ordinateur

5.1

La premi`ere etape consiste `


a identifier les param`etres du moteur
en etudiant sa reponse indicielle.
Pour cela, sous Matlab,
I Creer un .mdl qui va gerer la commande. Mettre en place
une entree
echelon `
a 4 connectee au bloc CNA.
I Aller dans Simulation Simulation parameters. Dans Solver, prendre Inf en duree de simulation, type : fixed step,
ode4 (Runge Kutta), fixed step size : 0.01. Dans Real Time
Workshop, renseigner le champs System target file par
xpctarget.tlc, puis cliquer sur Build. On gen`ere ainsi un
programme temps reel qui va etre charge puis lance sur le
moteur. Attention : si vous changez de commande, il faudra
toujours recliquer sur Build pour relancer la nouvelle commande. Visualiser la vitesse du moteur `
a loscilloscope ou
via Matlab. Appuyer sur le stop de loscilloscope une fois
que le moteur a atteint son regime permanent.
I Grace `a cette reponse, identifier les param`etres du moteur.

But de la manipulation

Le but de cette manipulation est :


detudier linfluence de la periode dechantillonnage ainsi
que du gain de boucle sur les performances dune regulation
numerique ;
de mettre en oeuvre une commande pile.

5.2

Identification du proc
ed
e

On dispose dun moteur electrique, que lon souhaite commander par xPC Target sous Simulink. Pour une presentation dxPC
Target, se referer `
a lannexe A. Seule une voie CAN (bloc Simulink PCI-6024E AD) pour acquerir le signal de sortie et une voie
CNA (bloc Simulink PCI-6024E DA) pour envoyer le signal de
commande sont utiles. Le signal issu des capteurs correspond `a
une tension comprise entre -10.0 et +10.0 volts. De meme les valeurs de sorties qui attaquent les CNA doivent etre comprises dans
cette meme plage de valeurs. On pourra donc rajouter un saturateur pour ne pas depasser les valeurs permises.
Le moteur est modelise par un premier ordre
G(p) =

5.3

R
egulation num
erique avec correcteur proportionnel

On met en place une regulation echantillonnee suivant le schema


de la figure 15.
Etude de la r
eponse indicielle

Km
1 + p

I Calculer la fonction de transfert echantillonnee du moteur


lorsque celui est precede dun convertisseur numerique ana21

TPs dAUTOMATIQUE 4`
eme ann
ee AE

yc,k

uk

yk
Rgulateur proportionnel
numrique

B0(s)

G(s)

y(t)

5.4

Mise en oeuvre dune commande pile

Etude th
eorique
On desire realiser une commande bouclee dun procede de fonction de transfert echantillonnee G(z) avec un correcteur discret
R(z) selon le schema de la figure 16.

TE

yc,k

Fig. 15 Principe de bouclage discret

uk

R(z)

yk
G(z)

logique fonctionnant en bloqueur dordre zero :


G(Z) = Z [B0 (p)G(p)]

(10)

I Calculer lerreur statique de la regulation echantillonnee


pour un gain de commande K = 1 et une periode dechantillonnage TE = 0.35s.
I Verifier le resultat par une simulation en creant lapplication
Simulink correspondante.
I Verifier le resultat experimentalement.

Fig. 16 Correcteur discret

Dans le cas general, donner lexpression dun correcteur R(z)


permettant dobtenir pour le syst`eme boucle un mod`ele par fonction de transfert :
Y (z)
= z (d+1)
(12)
Yc (z)

Etude de stabilit
e
I En recherchant les conditions de stabilite limite (stabilite
simple), calculer et representer la courbe de stabilite critique :
K = f (TE )
(11)

o`
u le param`etre d =

r
TE

represente le retard pur du procede.

Mise en oeuvre sur le moteur


Application au cas de la regulation de vitesse du moteur.
I Donner lexpression de R(z).
I Verifier par simulation le resultat attendu puis comparer
avec des mesures experimentales.
I Conclure

o`
u K represente le gain du regulateur proportionnel et TE
la periode dechantillonnage.
I Pour la periode dechantillonnage T = 0, 35s, donner la
valeur du gain Klim correspondant `a la limite de stabilite.
Verifier en simulation avec votre application Simulink puis
verifier experimentalement ce resultat.

22

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Le robot legot NXT


Commande optimale : le pendule inverse
6
6.1

Commande optimale : robot legot NXT


But de la manipulation

Lobjectif de cette manipulation est de reguler le robot lego


NXT de mani`ere `
a le maintenir vertical sur ses deux roues (manipulation de type pendule inverse). Le syst`eme est naturellement
instable. Pour cela, on va :
passer dune conception logicielle `a une implementation materielle, en passant par une etape de verification par simulation. La chane de conception se fera via Matlab et ses botes
`a outils (Matlab embedded coder notamment).
mettre en uvre une commande par retour detat par un
placement de p
oles
mettre en uvre une commande optimale de type lqr, et
comparer differentes valeurs de Q et R.
Fig. 17 le robot NXTway-GS

6.2

Pr
esentation de la maquette
unique place sur un resonateur `
a quartz. Concr`etement, ce capteur
gyroscopique mesure le nombre de degres par seconde ainsi que la
direction de la rotation.
Le fonctionnement du robot est gere par un microprocesseur
32 bits ARM7.
Pour une presentation plus detaillee du robot et de son mod`ele,
se referer `a lannexe.

On travaille avec un robot NXTway-GS. Cest un robot `a


deux roues mobiles. Les entrees et les sorties du syst`eme sont
representees sur la Figure 17.
Au niveau de chaque roue, un capteur de position angulaire
donne langle de la roue en degre. Un capteur ultrasons permet de
mesurer la distance `
a un obstacle avec une precision importante.
Il permet ainsi au robot de prendre une decision devitement. Les
distances mesurees sont en centim`etres. Un capteur gyroscopique
permet de mesurer la rotation du robot grace `a un gyroscope `a axe
23

TPs dAUTOMATIQUE 4`
eme ann
ee AE

6.3

Pr
esentation du dossier RobotPendule

Copier sur votre repertoire, le dossier RobotPendule contenu


dans Commetud. Ce dossier comporte 3 fichiers Simulink :
nxtway gs.mdl contenant le simulink principal
nxtway gs controller.mdl contenant le simulink du correcteur, cest sur ce fichier que vous allez travailler.
nxtway gs plant.mdl contenant le mod`ele physique du robot.
Il comporte aussi 5 fichiers Matlab :
param nxtway gs.m permettant deffectuer les 3 fichiers matlab suivants
param controller.m contenant les param`etres du correcteur,
cest sur ce fichier que vous allez travailler.
param plant.mdl contenant les param`etres du mod`ele physique du robot
param sim.m contenant les param`etres de la simulation
iswall.m contenant la procedure permettant darreter la simulation et dafficher un message derreur lorsque le robot
rencontre un mur.
Il comporte aussi un fichier track.bmp permettant de definir lenvironnement dans lequel evolue le robot.

6.4

Fig. 18 Le mod`ele nxtway gs.mdl


lancer param nxtway gs.m pour charger les param`etres du
mod`ele
Dans Simulation>Configuration Parameters, choisir les param`etres comme sur la figure

Pr
esentation du mod`
ele Simulink du robot

Le mod`ele Simulink fourni va permettre dune part de simuler le comportement du robot, dautre part deffectuer facilement
la chane de conception et implementer une commande sur le microprocesseur du robot. Une presentation detaillee du mod`ele est
donnee en annexe.
Le mod`ele Simulink principal est nxtway gs.mdl (voir Figure 18).

Pour lancer une simulation :

dans nxtway gs.mdl, cliquer sur Reference Generator, puis


sur Signal Builder o`
u lon peut choisir le profil de test (Figure 19).

Lancer nxtway gs.mdl

24

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Dans la fenetre de commande de Matlab, taper


> nxtbuild(ntxway app,build)
allumer le robot en appuyant sur le bouton orange, verifier
que le robot est branche au port USB de lordinateur de
developpement.
Dans My Files, Software files, supprimer le projet precedent
dans la fenetre de commande de Matlab, taper
> nxtbuild(ntxway app,rxeflash)
Un nombre de bits transmis doit etre affiche. Par exemple :
> nxtway app.rxe=28384
Debrancher le robot. Sur le robot, cliquer sur Software Files, cliquer sur nxtway app, puis sur Run, et sur le bouton
droit sur Run en maintenant le robot vertical au sol jusqu`
a
entendre un bip. L
acher le robot. Savourer.

Fig. 19 Le sous-syst`eme de generation dentrees


Lancer la simulation
Pour visualiser les resultats, cliquer sur Viewer ; on a ainsi
acc`es aux courbes de x, y, et (Figure 20).

6.5

Manipulation

Commande LQR
Simulation Dans une premi`ere approche, on souhaite contr
oler
le robot par retour dEtat. Afin de determiner le gain de ce retour
detat, on utilise les principes de commande LQR (pour plus dinformations concernant cette commande regarder lannexe). Pour
cela, vous devez effectuer les t
aches suivantes pour plusieurs valeurs des matrices de ponderation Q et R :
I Completer le fichier matlab param controller. Il vous suffit
de definir les matrices de ponderation QQ et RR. Ce fichier
vous calcule le gain de retour detat appele KK ici.
I Modifier le simulink du controller, pour cela, ouvrir le fichier
nxtway gs controller.mdl, cliquer sur nxtway app, puis sur
Balance & Drive Control, puis sur Controller. Sur ce fichier, vous disposez de plusieurs donnees :
x1 ref consigne de mod`ele detat
theta ref consigne pour langle dinclinaison des roues
x1 mesure de mod`ele detat
theta mesure pour langle dinclinaison des roues

Fig. 20 Le sous-syst`eme de visualisation

Pour compiler et charger le programme dans le robot :


Apr`es avoir calcule les param`etres du retour detat, se mettre
sur la fenetre du mod`ele nxtway gs controller.
25

TPs dAUTOMATIQUE 4`
eme ann
ee AE

vol commande des moteurs des roues.


Vous devez implementer le retour detat en utilisant le gain
de retour detat KK et les differentes donnees presentes
(toutes ne seront pas forcement utilisees `a cet endroit l`a).
I Simuler le comportement du robot. On effectuera un tableau comparatif des r
esultats pour diff
erentes valeurs de Q et R en fonction des r
eponses obtenues. On
essaiera le plus possible de classer les reponses en differentes
categories dont on donnera les caracteristiques. Montrer quelles
composantes de Q et R ont de limportance dans la regulation,
sur quelles caracteristiques ?
I Quelles valeurs de Q et R conservez-vous ? Justifier votre
reponse.

Fig. 21 Schema bloc dune commande par retour detat avec


action integrale
comparatif des r
esultats. Trouver une valeur de Ki qui
vous semble optimale.
I Implementer cette commande en reel sur le robot. Tester.
Regarder les effets des perturbations sur votre reglage.

Test sur le robot r


eel Une fois que vous aurez determine par
simulation un reglage optimal pour Q et R, tester votre correcteur
sur le robot. Regarder les effets des perturbations sur votre reglage.

Commande par placement de p


oles
La commande LQR a lavantage et linconvenient de ne pas imposer le choix des valeurs propres de la matrice de commande corrigee. Ceci est un avantage car le concepteur na pas `
a reflechir sur
le choix des valeurs propres, mais cest egalement un inconvenient
car on ne choisit donc pas la dynamique du syst`eme.
On propose dans cette partie daffiner les param`etres trouves
dans la partie LQR de facon `
a essayer dameliorer la dynamique.
I Trouver les valeurs propres imposees par la commande LQR
de la premi`ere partie qui vous semblent optimales.
I A laide de la fonction place de Matlab, trouver la valeur de
Kf pour imposer ces valeurs propres au syst`eme. Un rappel
du placement de p
oles est donne en Annexe B.
I Tester le comportement du robot en simulation. Comparer
avec les resultats precedents.
I Faites varier les valeurs propres imposees de mani`ere `
a ameliorer
le comportement du robot. Tester le comportement du robot
en simulation. On effectuera un tableau comparatif des

Action int
egrale
Lorsquon effectue une commande par retour detat, lerreur
statique nest pas forcement nulle. Ceci nest generalement pas
genant dans la mesure o`
u lobjectif poursuivi est une regulation.
Neanmoins, dans le cas o`
u lobjectif consiste `a suivre une trajectoire, on peut alors proceder de la meme mani`ere que pour
les syst`emes asservis classiques en inserant un integrateur dans la
chane directe comme illustre sur la figure 25.
On propose dans cette partie dintroduire cet integrateur dans
la fonction de commande du robot.
Une explication succinte de la theorie est donnee en annexe B.
I Completer le schema bloc de la commande pour mettre en
place laction integrale.
I Definir le syst`eme augmente et calculer une valeur de Ki
permettant de reduire lerreur statique par la methode lqr.
I Tester le comportement du robot en simulation. Comparer
avec les resultats precedents. On effectuera un tableau
26

TPs dAUTOMATIQUE 4`
eme ann
ee AE

r
esultats, de mani`
ere `
a conclure sur des coefficients
optimaux.
I Implementer la meilleure commande en reel sur le robot.
Tester. Regarder les effets des perturbations sur votre reglage.

F Realisation, reduction et commande des syst`emes lineaires,


A. Rachid, D. Medhi, Technip, Collection Methodes et techniques de lingenieur (Paris)

Placement de p
oles avec action int
egrale
On propose dans cette partie dintroduire un integrateur dans
la fonction de commande du robot en conservant la commande par
placement de p
oles.
I Reprendre le schema bloc de la commande pour mettre en
place laction integrale.
I Definir le syst`eme augmente et calculer une valeur de Ki
permettant de reduire lerreur statique avec la fonction place
de Matlab.
I Tester le comportement du robot en simulation. Comparer
avec les resultats precedents. On effectuera un tableau
comparatif des r
esultats. Trouver une valeur de Ki qui
vous semble optimale.
I Implementer cette commande en reel sur le robot. Tester.
Regarder les effets des perturbations sur votre reglage.

6.6

Conclusion

I Conclure sur une synth`ese les avantages, les inconvenients,


et les performances de votre syst`eme selon le correcteur utilise, gr
ace aux differents tableaux mis en place.
I Tester eventuellement le robot avec des roues differentes.
Conclure.

6.7

R
ef
erences bibliographiques

F Notice NXTway-GS Model-Based Design - Control of selfbalancing two-wheeled robot built with LEGO Mindstorms
NXT, Yorihisa Yamamoto.

27

TPs dAUTOMATIQUE 4`
eme ann
ee AE

ANNEXE
xPC Target
A
A.1

xPC Target
La cible est equipee dun moniteur sur lequel sont visualises
deux types dinformation : des informations liees `
a lexecution
temps reel de lapplication en cours (nom de lapplication, temps
courant, periode d ?echantillonnage . . . ) ainsi quun rapport sur
lexecution des commandes envoyees par le PC h
ote (adaptation
de param`etres, mise en marche, . . . ). Le second groupe dinformations est graphique et depend de lapplication.
La Figure 22 presente les trois entites manipulees en TP : le PC de
developpement avec Matlab/Simulink, le PC cible et le syst`eme `
a
controler.

Introduction et principes de fonctionnement

xPC Target est un environnement logiciel qui permet de mettre


au point, de tester et de mettre en uvre des applications temps
reel sur du materiel de type PC. Cet outil offre lavantage detre
associe `a Matlab/Simulink, ce qui permet de passer de la phase
essai/simulation `
a la phase mise en uvre/experimentation tr`es
rapidement et tr`es facilement en saffranchissant de letape de
codage. La configuration materielle standard est composee de 2
unites informatiques reliees par une liaison serie asynchrone.
Le PC h
ote sert dunite de developpement. A partir de Matlab/Simulink, il est possible dengendrer directement lapplication
temps reel. Il fonctionne dans lenvironnement Windows habituel.
Le PC cible est oriente temps reel. Il est donc demarre (`a laide
d ?une disquette ou dune EPROM) non pas sur DOS ou Windows mais sur un noyau temps reel specifique. Ce noyau, entre
autres choses, permet de recevoir et faire executer le code engendre par le PC h
ote et dassurer la communication entre les
deux machines (telechargement, mise en marche, adaptation en
ligne de param`etres, rapatriement de donnees . . . ). Enfin ce PC
est equipe de cartes (dans notre cas deux cartes National Instrument PCI 6024E avec convertisseurs analogique-numerique et
convertisseurs numerique-analogique) qui lui permettent de commander le processus.

Fig. 22 Commande deportee sous XPC Target

A.2

Configuration dxPC Target

Demarrez le PC cible.
1. Cr
eation de la communication entre le PC h
ote et
le PC cible : Il sagit de configurer lenvironnement logiciel
28

TPs dAUTOMATIQUE 4`
eme ann
ee AE

XPCTarget. Dans la fenetre Command Window de Matlab,


tapez la commande
> xpcexplr
qui vous ouvre la fenetre de dialogue de XPCTarget, comme
sur la figure suivante :

sur lecran de votre PC cible :


Target PC IP address : IP Add
TCP/IP Target Port : Port
LAN subnet mask address : Subnet
TCP/IP gateway address : Gateway
TCP/IP Target Driver : Board
Remplissez les differents champs de la fenetre de configuration, vous devez obtenir quelque chose de similaire `
a limpression decran suivante.

Ouvrez larborescence appelee TargetPC1. Selectionnez longlet appele Communication. Il faut maintenant specifiez le
type de communication. Il sagit ici dune liaison Ethernet.
Dans le menu deroulant Host Target Communication choisir TCP/IP. Il faut alors fournir ladresse IP (Target PC IP
address), le port (TCP/IP Target Port), le masque de sousreseau (LAN subnet mask address), ladresse du Gateway
(TCP/IP gateway address) et le driver (TCP/IP Target Driver) de votre PC Cible. Tous ces renseignements se trouvent

Sauvegardez vos modifications en cliquant sur le bouton Apply.


Selectionnez longlet TargetPC1. Cliquez alors sur lic
one
permettant de connecter le PC h
ote et le PC cible.

29

TPs dAUTOMATIQUE 4`
eme ann
ee AE

pilateur sera VisualC. Specifiez le chemin dacc`es au compilateur C :\Program Files\Microsoft Visual Studio 9.0.

Sauvegardez vos modifications en cliquant sur le bouton Apply.

A cote de Connected , le No se transforme en Yes, la


connexion entre le PC cible et le PC hote est realisee.

3. Compilation dun mod`


ele d
evelopp
e sous Simulink :
Une fois le mod`ele realise, par exemple celui de la Figure
suivante.

Remarque : pour recuperer les donnees sur Matlab, on utilise


le bloc out de simulink.
2. Choix du compilateur dXPCTarget : Il faut maintenant specifier `
a XPCTarget, le complilateur quon va utiliser
pour traduire le programme realise sous Matlab/Simulink en
instruction pour le PC Cible.
Selectionnez longlet Compiler(s) Configuration. Le com-

Pour compiler le programme, cliquez sur le menu Simulation/ Configuration Parameters

30

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Dans le paragraphe Solver options : Choisissez FixedStep dans Type. Mettez Discrete dans Solver. Tapez
Te dans Fixed-Step size. Sauvegardez vos modifications
en cliquant sur le bouton Apply. Vous devez avoir lecran
suivant :

Lecran suivant apparat :

Le param`etre Te sera le pas de calcul de lhorloge interne du


PC Cible. Il faudra le specifier sous Matlab : Dans la fenetre
Command Window de Matlab, fixer le pas de calcul.
Selectionnez longlet Real-Time Workshop. Dans le parapraphe Target selection : Choisissez `
a laide du bouton
Browse xpctarget.tlc dans System target file.
Sauvegardez vos modifications en cliquant sur le bouton Apply.
Pour compiler le programme, il vous suffit de cliquer sur le
bouton Build.

Selectionnez longlet Solver. Dans le parapraphe Simulation


Time : Mettez inf dans Stop Time. Ce reglage permet de
fixer le temps au bout duquel le programme doit sarreter,
ici on met inf pour infini, le programme tournera donc sans
interruption sur la cible.
31

TPs dAUTOMATIQUE 4`
eme ann
ee AE

On remarque quau lieu dafficher le temps dexecution, le


PC Cible affiche stopped. Le programme est bien arrete.
5. R
ecup
eration des donn
ees sous Matlab. Pour recuperer
les donnees issues dun bloc Out utilise dans un mod`ele
tournant sous xPC, il faut taper la commande :
> y= tg.OutputLog ;
> t= tg.TimeLog ;
Apr`es cette commande, y contient toutes les donnees des
blocs Out du mod`ele concerne et t le vecteur temps.
Par exemple, pour tracer les courbes des donnees du mod`ele
Figure 2, on tape la commande :
> plot (t, y( :,1))
pour tracer la sortie et
> plot (t, y( :,2))
La compilation prend un certain temps, elle est terminee
lorsque vous avez la possibilite de taper de nouveau une commande dans la fenetre Command Window de Matlab.
4. Execution du programme sur le PC cible. Pour lancer
le programme sur le PC cible, il faut taper la commande
> +tg
dans la fenetre Command Window de Matlab.
Lorsque le PC cible execute un programme, il affiche un certain nombre de donnees,
le temps au bout duquel il arrete lexecution du programme
(StopTime) ici regle `
a linfini
le pas temporel dechantillonnage (StepTime) ici regle `a
laide de Te
Depuis combien de temps il execute le programme (Execution)
Pour arreter le programme sur le PC cible, il faut taper la
commande
> -tg
dans la fenetre Command Window de Matlab.

32

TPs dAUTOMATIQUE 4`
eme ann
ee AE

ANNEXE
Commande par retour detat
B

Commande par retour d


etat

B.1

Pour utiliser une commande par retour detat, il est necessaire


que le syst`eme soit commandable. Une condition necessaire et suffisante pour la commandabilite du syst`eme est que la matrice de
commandabilite Mc soit de rang plein.

Introduction et principes de fonctionnement

La commande par retour detat est une technique de controle


qui consiste `
a multiplier lerreur entre la valeur de reference xref et
la valeur de letat mesuree x par un gain de retour K et dutiliser
cette valeur en commande. De fait, la commande par retour detat
est identique `
a une regulation par un Proportionnel Derive (PD)
dans la theorie de la commande classique. La figure 23 montre le
schema bloc dune commande par retour detat.

xref

x Ax Bu

rg(Mc ) = n

(15)
n1

Mc = [B, AB, . . . A

B]

(16)

La control toolbox de Matlab permet devaluer la matrice


de commandabilite.
Exemple : Le syst`eme suivant est-il commandable ?
A = [0, 1; 2, 3], B = [0; 1] commandable.

> A = [0, 1 ; -2, -3] ; B = [0 ; 1] ;


> Mc = ctrb(A,B) ;
> rank(Mc)
ans = 2

Fig. 23 Schema bloc de la commande par retour detat

B.2

La commande et lequation detat de ce syst`eme sont les suivants :


u(t) = K(x(t) xref )

(13)

x(t)

= (A BK)x(t) + BKxref

(14)

Obtention de la matrice K

Il y a deux methodes principales pour obtenir le gain de retour


detat K.
Placement de p
oles direct

Il est possible de stabiliser le syst`eme en choisissant le gain de


retour K de mani`ere `
a placer correctement les valeurs propres de
A BK.

Cette methode consiste `


a calculer le gain de retour K de mani`ere
`a placer les poles (les valeurs propres) de la matrice A BK `
a
33

TPs dAUTOMATIQUE 4`
eme ann
ee AE

une valeur precise. Les valeurs choisies sont evidemment stables,


et sont souvent tirees des performances souhaitees sur le syst`eme
corrige. Il faut par contre veiller `
a ce que la valeur de K ne soit
pas aberrante.

minimiser un crit`ere quadratique sur un horizon N .


1
J=
2

x>
N SxN

N 
X

x>
k Qxk

u>
k Ruk

!
(17)

k=0

A linstant k = 0, letat x(0) est connu, ce que lon recherche


ce sont les N commandes u(0), u(1) . . . u(N 1) (Figure 24) qui
minimisent ce crit`ere, sachant que le dernier terme u(N ) = 0 est
impose et que le terme x>
esente une contrainte sur letat
N SxN repr
final. Ce crit`ere effectue un compromis entre lerreur de regulation
represente par les termes x>
energie depensee pour y park Qxk et l
Ru
.
Les
matrices
de
pond
eration Q, R et S sont les
venir u>
k
k
param`etres de conception sur lesquels on peut agir pour modifier
la dynamique en boucle fermee.

La fonction place de Matlab permet deffectuer un placement


de poles direct.
Exemple : Calculer le gain de retour detat pour le syst`eme
A = [0, 1; 2, 3], B = [0; 1] de mani`ere `a placer les poles `a 5 et
6.
> A = [0, 1 ; -2, -3] ; B = [0 ; 1] ;
> poles = [-5, -6] ;
> K = place(A,B, poles)
K =
28.0000 8.0000

La resolution de ce probl`eme peut se faire de differentes mani`eres


dont la Programmation Non Lineaire que lon ne detaillera pas ici
mais que lon peut resumer ainsi. On recherche une solution de
type retour detat uk = Kk xk .
On montre alors que le gain Kk peut etre exprime par :

La commande optimale Lin


eaire Quadratique (LQR)
Temps discret Soit le syst`eme represente par le mod`ele :
xk+1 = Axk + Buk

Kk = R1 B > Pk

(18)

o`
u PN = S et P est une matrice solution de lequation dite de
Riccati :
h
i1
Pk = Q + A> Pk+1 I + BR1 B > Pk+1
A
(19)
Si lhorizon est suffisant grand (infini) alors la solution devient
stationnaire et la matrice K correspondante est solution de :
h
i1
P = Q + A> Pk+1 I + BR1 B > P
A
(20)

Fig. 24 Representation du probl`eme de commande optimale


Le principe de la commande optimale est de sinteresser `a la
sequence de commandes futures u(k) afin de satisfaire un crit`ere
quadratique. A un instant discret du temps il faut calculer la commande qui fait passer de letat k `
a letat k + 1 jusqu`a atteindre
letat final xN . Connaissant le mod`ele du syst`eme, ceci revient `a

Temps continu Dans le cas continu, la meme approche peut


etre adoptee. La methode calcule le gain de retour detat K de
mani`ere `a minimiser la fonction de co
ut J suivante :
Z 

J=
x(t)> Qx(t) + u(t)> Ru(t) dt
(21)
0

34

TPs dAUTOMATIQUE 4`
eme ann
ee AE
chane directe. On consid`ere donc une commande de la forme2 :
Z t
(y(t) yref )dt
(24)
u(t) = Kf (x(t) xref ) + Ki

De la meme mani`ere, cette resolution passe par la determination


dune matrice P solution de lequation de Riccati en continu.
P = P BR1 B > P P A A> P Q

(22)

applique au syst`eme dynamique :

De la meme mani`ere, on peut montrer que pour un horizon infini la matrice P devient stationnaire (P = 0) et quune solution
constante pour la matrice P peut etre trouvee en resolvant :
P BR

>

>

B P PA A P Q = 0

(23)

x = Ax + Bu

(25)

y = Cx

(26)

Si lon introduit une nouvelle variable z(t) telle que z = yref


y(t), cest-`a-dire z = Cxref Cx(t). La commande a une expression de la forme





 xref

 x(t)
(27)
+ Kf Ki
u() = Kf Ki
0
z(t)

Les param`etres de choix sont les poids des matrices pour letat
Q, la commande R, et S. Les matrices sont choisies diagonales. S
est prise generalement egale `
a lidentite. Une solution generalement
adoptee pour avoir dej`
a une indication des ordres de grandeur de
ces coefficients est de les determiner grace au mod`ele. On proc`ede
ensuite par essai erreur. La fonction lqr de Matlab permet dobtenir le gain de retour avec la methode LQ.

et elle peut etre consideree comme etant


par retour

 la commande
x(t)
detat du syst`eme augmente avec X =
z(t)

Exemple : Calculer le gain de retour detat pour le syst`eme


A = [0, 1; 2, 3], B = [0; 1] en utilisant Q = [100, 0; 0, 1] et R = 1.

> A = [0, 1 ; -2, -3] ; B = [0 ; 1] ;


> Q = [100, 0 ; 0,1] ; R = 1 ;
> K = lqr(A,B,Q, R)
K =
8.1980 2.1377

x(t)

z(t)


=

A 0
C 0



x(t)
z(t)


+

B
0


u+

0
C


xref

(28)

Quand on consid`ere le syst`eme stabilise, on a alors y = yref .


Le schema bloc dune telle commande est illustre Figure 25.

B.3

R
ef
erences bibliographiques

F Notice NXTway-GS Model-Based Design - Control of selfbalancing two-wheeled robot built with LEGO Mindstorms
NXT, Yorihisa Yamamoto.
F Realisation, reduction et commande des syst`emes lineaires,
A. Rachid, D. Medhi, Technip, Collection Methodes et techniques de lingenieur (Paris)

La commande par retour d


etat avec action int
egrale
Lorsquon effectue une commande par retour detat, lerreur
statique nest pas forcement nulle. Ceci nest generalement pas
genant dans la mesure o`
u lobjectif poursuivi est une regulation.
Neanmoins, dans le cas o`
u lobjectif consiste `a suivre une trajectoire, on peut alors proceder de la meme mani`ere que pour
les syst`emes asservis classiques en inserant un integrateur dans la

2
Les ouvrages sur la theorie de la commande decrivent habituellement cette
commande avec xref = 0. On gardera ici lexpression de xref pour ameliorer
les performances de suivi.

35

TPs dAUTOMATIQUE 4`
eme ann
ee AE

Fig. 25 Schema bloc dune commande par retour detat avec


action integrale

36

3 NXTway-GS Modeling

ANNEXE C Modle mathmatique du robot lego NXT


tir de la notice NXTway-GS Model-Based Design - Control of self-balancing two-wheeled
robot built with LEGO Mindstorms NXT, Yorihisa Yamamoto.

This chapter describes mathematical model and motion equations of NXTway-GS.

3.1 Two-Wheeled Inverted Pendulum Model


NXTway-GS can be considered as a two wheeled inverted pendulum model shown in Figure 3-1.
W
D

Tl

Tr

Figure 3-1 Two-wheeled inverted pendulum

Figure 3-2 shows side view and plane view of the two wheeled inverted pendulum. The coordinate system used
in 3.2 Motion Equations of Two-Wheeled Inverted Pendulum is described in Figure 3-2.

zb

M , J\

yl
L

H 2

Tm

l, r

Tl, r

zm

yb
ym
yr

m, J w

xl

: body pitch angle

T l ,r
Figure 3-2

: wheel angle ( l, r indicates left and right)

xm xb xr

Tm

l ,r

: DC motor angle

Side view and plane view of two-wheeled inverted pendulum

-6-

The translational kinetic energy T1 , the rotational kinetic energy T2 , the potential energy U are

Physical parameters of NXTway-GS are the following.


g

9.81

[ m / sec 2 ]

Gravity acceleration

0.03

[kg ]

Wheel weight

0.04

Wheel radius

[ kgm ]

Wheel inertia moment

[m ]
2

JW

mR 2

0 .6

[kg ]

Body weight

0.14

[m ]

Body width

T1

1
1
1
2
2
2
2
2
2
2
2
2
m x l  y l  z l  m x r  y r  z r  M x b  y b  z b
2
2
2

T2

1
1
1
1
1
1
2
2
J wTl  J wTr  J \ \ 2  J I I 2  n 2 J m (Tl  \ ) 2  n 2 J m (Tr  \ ) 2
2
2
2
2
2
2

(3.7)

mgzl  mgzr  Mgzb

(3.8)

(3.6)

0.04

[m ]

Body depth

The fifth and sixth term in T2 are rotation kinetic energy of an armature in left and right DC motor. The

0.144

[m ]

Body height

Lagrangian L has the following expression.

H 2

[m ]

Distance of the center of mass from the wheel axle

[ kgm 2 ]

T1  T2  U

J\

ML2 3

Body pitch inertia moment

JI

M W 2  D 2 12

[ kgm 2 ]

Body yaw inertia moment

Jm

1u10 5

[ kgm 2 ]

DC motor inertia moment

6.69

[: ]

DC motor resistance

Kb

0.468

[V sec rad ]

DC motor back EMF constant

Kt

0.317

[ Nm A]

DC motor torque constant

T
\

: Body pitch angle

: Body yaw angle

Rm

We use the following variables as the generalized coordinates.

Gear ratio

fm

0.0022

Friction coefficient between body and DC motor

fW

Friction coefficient between wheel and floor.

n 1

(3.9)

We use the values described in reference [2] for R m , K b , K t .

We use the values that seems to be appropriate for J m , n, f m , f W , because it is difficult to measure.

: Average angle of left and right wheel

Lagrange equations are the following

d wL wL

dt wT wT
d wL wL


dt w\ w\
d wL wL

dt wI wI

3.2 Motion Equations of Two-Wheeled Inverted Pendulum

(3.10)

FT

(3.11)

F\

(3.12)

FI

We can derive motion equations of two-wheeled inverted pendulum by the Lagrangian method based on the
coordinate system in Figure 3-2. If the direction of two-wheeled inverted pendulum is x-axis positive direction
at t

0 , each coordinates are given as the following.

We derive the following equations by evaluating Eqs. (3.10) - (3.12).

> 2m  M R  2 J  2n J @T  MLR cos\  2n J \  MLR\ sin\ F


MLR cos\  2n J T  ML  J  2n J \  MgL sin\  ML I sin\ cos\
2

T , I

R
1
T r  T l
T l  T r
W
2

x

ym ,

xl ,

y l , z l x m  sin I ,
2

ym 

x r ,

y r , z r x m  sin I ,
2

ym 

yb , z b

m dt ,

y m dt , R ,

xm  L sin\ cosI ,

x m ,

y m

RT cos I

RT sin I

(3.2)

cos I , z m
2

(3.3)

cos I , z m
2

(3.4)

y m  L sin\ sin I , z m  L cos\


-7-

1
W
2
J w  n 2 J m  ML2 sin 2 \ I  2 ML2\I sin \ cos\
mW  J I 
2R 2

(3.5)
-8-

(3.13)

x m ,

xb ,

zm

(3.1)

FI

F\

(3.14)
(3.15)

In consideration of DC motor torque and viscous friction, the generalized forces are given as the following

, F\ , FI Fl  Fr , F\ ,

Fl nK t il  f m (\  Tl )  f wTl


F nK i  f (\  T )  f T

t r

W
Fr  Fl
2R

(3.17)
(3.18)

nK t il  nK t ir  f m (\  Tl )  f m (\  Tr )

F\

(3.16)

(3.19)

3.3 State Equations of Two-Wheeled Inverted Pendulum


We can derive state equations based on modern control theory by linearizing motion equations at a balance
point of NXTway-GS. It means that we consider the limit \ o 0 ( sin \ o \ , cos \ o 1 ) and neglect the
second order term like \ 2 . The motion equations (3.13) (3.15) are approximated as the following

> 2m  M R  2 J  2n J @T  MLR  2n J \


MLR  2n J T  ML  J  2n J \  MgL\
2

We cannot use the DC motor current directly in order to control it because it is based on PWM (voltage)
control. Therefore, we evaluate the relation between current il , r and voltage v l , r using DC motor equation. If

vl ,r  K b (\  Tl ,r )  Rm il ,r

(3.20)

T
T
T
E  F  G


\
\
\

Here we consider that the motor inductance is negligible and is approximated as zero. Therefore the current is

il , r

vl ,r  K b (\  Tl ,r )

(3.21)

Rm

D v l  v r  2 E  f w T  2 E\

(3.22)

F\

D vl  v r  2ET  2E\

(3.23)

FI

W
W2
E  f w I
D v r  v l 
2R
2R 2

(3.24)

nK t
, E
Rm

nK t K b
 fm
Rm

(3.25)

-9-

(3.26)


I

(3.27)

(3.28)

FI

v
H l
v r

2m  M R 2  2 J w  2n 2 J m

MLR  2n 2 J m

E  f w  E
2
E
E

(3.29)

MLR  2n 2 J m

ML2  J \  2n 2 J m

0
0
0  MgL

D
D
H

 D  D

From Eq.(3.21), the generalized force can be expressed using the motor voltage.

FT

Eq. (3.26) and Eq. (3.27) has T and \ , Eq. (3.28) has I only. These equations can be expressed in the form

the friction inside the motor is negligible, the DC motor equation is generally as follows

Lm il ,r

1
W2
2
J w  n2 Jm
mW  J I 
2R 2
2

FT
F\

where il , r is the DC motor current.

II  JI

K (v r  v l )

(3.30)

1
W2
I
mW 2  J I 
J w  n2 Jm
2
2R 2
W2
E  f w
J
2R 2
W
D
K
2R

- 10 -

Here we consider the following variables x 1 , x 2 as state, and u as input. x T indicates transpose of x .

x1

>T ,

\ , T, \ @ , x 2

>I , I@ ,

>vl ,

vr @

(3.31)

Consequently, we can derive state equations of two-wheeled inverted pendulum from Eq. (3.29) and Eq. (3.30).

x 1

A1 x 1  B1u

(3.32)

x 2

A2 x 2  B2 u

(3.33)

A1

0
0

A2

1
0
0  J I , B 2

A1 (3,2)
A1 (4,2)
A1 (3,3)
A1 (4,3)
A1 (3,4)
A1 (4,4)

0
0

1
0

A1 (3,2)
A1 (4,2)

A1 (3,3)
A1 (4,3)

, B1
A1 (3,4)

A1 (4,4)
0
1

0
 K I

0
0
0
0

B1 (3) B1 (3)

B1 (4) B1 (4)

0
K I

(3.35)

 gMLE (1,2) det( E )


gMLE (1,1) det( E )

 2> E  f w E (2,2)  EE (1,2)@ det( E )


2 > E  f w E (1,2)  EE (1,1)@ det( E )

2 E >E (2,2)  E (1,2)@ det( E )

2E >E (1,1)  E (1,2)@ det( E )

B1 (3) D >E (2,2)  E (1,2)@ det( E )


B1 (4)
det( E )

(3.34)

 D >E (1,1)  E (1,2)@ det( E )


E (1,1) E (2,2)  E (1,2) 2

- 11 -

5 NXTway-GS Model

ANNEXE D Modle Simulink du robot lego NXT


tir de la notice NXTway-GS Model-Based Design - Control of self-balancing two-wheeled
robot built with LEGO Mindstorms NXT, Yorihisa Yamamoto.

This chapter describes summary of NXTway-GS model and parameter files.

5.1 Model Summary


The nxtway_gs.mdl and nxtway_gs_vr.mdl are models of NXTway-GS control system. Both models are
identical but different in point of including 3D viewer provided by Virtual Reality Toolbox.

Figure 5-1 nxtway_gs.mdl

Main parts of nxtway_gs.mdl and nxtway_gs_vr.mdl are as follows.

Environment
This subsystem defines environmental parameters. For example, map data, gyro offset value, and so on.

Figure 5-2 Environment subsystem

- 16 -

Reference Generator

Controller

This subsystem is a reference signal generator for NXTway-GS. We can change the speed reference and the
rotation speed reference by using Signal Builder block. The output signal is a 32 byte data which has dummy

This block is NXTway-GS digital controller and references nxtway_gs_controller.mdl with Model block. Refer
7 Controller Model (Single Precision Floating-Point Arithmetic) for more details.

data to satisfy the NXT GamePad utility specification.

Figure 5-3

Reference Generator subsystem

Figure 5-4 shows a relation between speed and rotation speed reference value and PC game pad analog sticks.
Figure 5-5

Controller block (nxtway_gs_controller.mdl)

The Controller block runs in discrete-time (base sample time = 1 [ms]) and the plant (NXTway-GS subsystem)
Forward Run
(- GP_MAX)

runs in continuous-time (sample time = 0 [s]). Therefore it is necessary to convert continuous-time to


discrete-time and vice versa by inserting Rate Transition blocks between them properly.

Backward Run
(+ GP_MAX)

Discrete-Time (1 [ms])
Left Turn
(- GP_MAX)

Right Turn
(+ GP_MAX)

GP_MAX is a maximum input from PC game pad.


(We set GP_MAX = 100)
Figure 5-4

Inputs from PC game pad analog sticks

Hold
(Disc
Cont)

Sampling
(Cont
Disc)

Figure 5-6

- 17 -

Rate conversions between the controller and the plant

- 18 -

NXTway-GS
This subsystem is mathematical model of NXTway-GS. It consists of sensor, actuator, and linear plant model.
The plant references nxtway_gs_plant.mdl with Model block. Refer 6 Plant Model for more details.

Figure 5-7 NXTway-GS subsystem

Viewer

Figure 5-9 Viewer subsystem (nxtway_gs_vr.mdl)

This subsystem includes simulation viewers. nxtway_gs.mdl includes a position viewer with XY Graph block,
and nxtway_gs_vr.mdl does 3D viewer provided by Virtual Reality Toolbox.

5.2 Parameter Files


Table 5-1 shows parameter files for simulation and code generation.

Table 5-1 Parameter files

File Name

Description

param_controller.m

M-script for controller parameters

param_controller_fixpt.m

M-script for fixed-point settings (Simulink.NumericType)

param_nxtway_gs.m

M-script for NXTway-GS parameters (It calls param_***.m)

param_plant.m

M-script for plant parameters

param_sim.m

M-script for simulation parameters

param_nxtway_gs.m calls param_***.m (*** indicates controller, plant, sim) and creates all parameters in base
workspace. Model callback function is used to run param_nxtway_gs.m automatically when the model is
loaded.

To display model callback function, choose [Model Properties] from the Simulink [File] menu.
Figure 5-8 Viewer subsystem (nxtway_gs.mdl)

- 19 -

- 20 -

6 Plant Model

6.2 Actuator

This chapter describes NXTway-GS subsystem in nxtway_gs.mdl / nxtway_gs_vr.mdl.

Actuator subsystem calculates the DC motor voltage by using PWM duty derived from the controller.
Considering the coulomb and viscous friction in the driveline, we model it as a dead zone before calculating the

6.1 Model Summary

voltage.

The NXTway-GS subsystem consists of sensors, actuators, and linear plant model. It converts the data type of
input signals to double, calculates plant dynamics using double precision floating-point arithmetic, and outputs
the results after quantization.

Physical
Value

Integer
Value

Dead zone of the


coulomb and
viscous friction

Maximum voltage
calculation with
battery voltage

Figure 6-2 Actuator subsystem

DC motor maximum voltage is necessary to calculate PWM duty. In the Cal vol_max subsystem, we use the
following experimental equation which is a conversion rule between the battery voltage V B and the maximum
DC motor voltage V max .
Integer
Value

Physical
Value
Double Precision Floating-Point Arithmetic
Figure 6-1 NXTway-GS subsystem

Vmax

0.001089 u V B  0.625

(6.1)

We have derived Eq. (6.1) as the following. Generally speaking, DC motor voltage and rotation speed are
proportional to battery voltage. Figure 6-3 shows an experimental result of battery voltage and motor rotation
speed at PWM = 100% with no load.

Figure 6-3

Experimental result of battery voltage and motor rotation speed at PWM = 100%

Eq. (6.1) is derived by relating Figure 6-3 and the data described in the reference [1].
- 21 -

- 22 -

6.3 Plant

6.4 Sensor

nxtway_gs_plant.mdl is a model of the state equation derived in 3.3 State Equations of Two-Wheeled

Sensor subsystem converts the values calculated in plant subsystem to several sensor outputs. Because the

Inverted Pendulum. It is referenced in Enabled Subsystem with Model block. Considering the calibration of

computation cost of distance (an output of ultrasonic sensor) calculation and wall hit detection are heavy, we cut

gyro offset, the plant is modeled so as to start calculation after gyro calibration. Refer 7.1 Control Program

the computation steps by inserting Rate Transition blocks. Refer Appendix B.3 for more details about the

Summary for more details about the gyro calibration.

distance calculation and wall hit detection.

Modeling to start the Enabled Subsystem


after gyro calibration

Figure 6-5 Sensor subsystem


Figure 6-4

Plant subsystem

- 23 -

- 24 -

You might also like