le TP 2009-2010

Transcription

le TP 2009-2010
MASTER ASE 1ère année
Unité "Modélisation & Identification"
Travaux Pratiques 2009-2010
Travaux Pratiques Modélisation Identification des Processus
2
QUELQUES CONSEILS…
Les textes de TP vous paraissent longs…Tout simplement parce qu'ils sont beaucoup plus
qu'un simple texte de TP! Ils sont un rappel de cours, une approche concrète (photos, schémas…).
La partie manipulation se réduit souvent à deux pages ! Mais pour comprendre ces deux pages, il
faudrait avoir bien compris les enseignements de Licence, venir régulièrement en cours et TD…
Les manipulations ont aussi pour objectif de vous hisser à un niveau scientifique comparable
à celui des autres universités européennes et mondiales. Ainsi, vous mériterez pleinement votre titre
de "Master" en Sciences et Technologies. Les références sont Lund (Suède) et EPFL (Suisse)
Note: selon votre niveau personnel, vous aborderez plus ou moins complètement les
manipulations. Les temps d'exécution sont indiqués pour vous donner une échelle d'importance de
chaque partie. Il ne faut surtout pas consacrer 2 heures à une partie affichée 30mn ! Cependant,
mieux vaut bien faire une partie que de massacrer l'ensemble !
LE CODE D'HONNEUR DES TRAVAUX PRATIQUES
L'exemple d'une Université étrangère et un peu d'anglais…
During this course, you will be working with one or more partners with whom you may
discuss any points concerning laboratory work. However,you must write your lab report, in your
own words. Lab reports that contain identical language are not acceptable, so do not copy your
lab partner's writing.
If there is a problem with your data, include an explanation in your report.
Recognition of a mistake and a well-reasoned explanation is more important than having
high-quality data, and will be rewarded accordingly by your instructor. A lab report containing data
that is inconsistent with the original data sheet will be considered a violation of the Honor Code.
Falsification of data or plagiarism of a report will result in prosecution of the offender(s)
under the University Honor Code.
On your first lab report you must write out the entire honor pledge:
"The work presented in this report is my own, and the data was obtained by my lab
partner and myself during the lab period."
On future reports you may simply write "Laboratory Honor Pledge" and sign your name.
Exemple à suivre ?
Bonnes manipulations.
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
3
TP n° 1
MESURE DIRECTE
DE LA REPONSE D'UN SYSTEME
I - BUT DE LA MANIPULATION
Cette première manipulation a pour but de vous familiariser avec les techniques de mesure
directe sur Matlab et à exploiter les données de mesure par des méthodes simples.
Le poste de travail est constitué d'un PC avec Matlab, d'un boîtier E/S connecté par une prise
USB au PC et d'une plaquette RC câblée en circuit passif qui constitue le processus.
La manipulation vous amène à caractériser la fonction de transfert de la plaquette à partir de
plusieurs méthodes d'analyse des mesures.
Ces méthodes élémentaires d'identification, complémentaires du cours, peuvent être
appliquées à de nombreux processus industriels, pourvu que l'installation s'y prête (disponibilité du
processus pour une mesure directe).
: un modèle de comportement a pour objectif de reproduire approximativement le
comportement d'un système; les équations du modèle ne correspondent pas aux équations
exactes du système. Dans ces manipulations, les modèles retenus sont du 1 er ordre alors que le
système étudié est du 2ème ordre.
Rappel
II - MATERIEL DE MANIPULATION
Le matériel de manipulation se compose des éléments suivants :
Fig 1. - Le matériel de manipulation
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus

4
un PC sous Matlab, avec boîtier entrées-sorties ADUSB dont la description matérielle et
logicielle est donnée en Annexe de cette manipulation. Cet ensemble permet de faire des
mesures en temps réel (temps réel dit "mou"ou approximatif) directement depuis Matlab;
le résultat d'une acquisition est directement disponible comme variable Matlab mémorisée
dans le "workspace" et disponible pour les calculs.
Lire attentivement l'annexe en fin de manipulation et le programme Exemple page 11 qui
sert de modèle pour le travail d'acquisition.

un processus composé de résistance et condensateurs, formant un circuit du 2 ème ordre.
L'entrée se fait à gauche de la plaquette (entrée sur un premier circuit R-C) , la sortie se
fait à droite. L'entrée du processus sera désignée par e pour la suite et la sortie s .
III – RELEVE DE LA REPONSE DU SYSTEME
a) Relevé de la réponse à l'échelon
L'objectif de cette partie est de relever la réponse s(t) à l'échelon du système et d'en déduire
la réponse indicielle.
Travail à faire (1H)
• Relier l'entrée du processus à la sortie analogique de votre choix sur le boîtier ADUSB; relier
la sortie du processus à l'entrée analogique de votre choix. Ne pas oublier la masse !
• Démarrer le logiciel Matlab et ouvrez un nouveau fichier M (code source Matlab).
•
En prenant comme base l'exemple de l'annexe page 11, écrire un script Matlab permettant
d'appliquer un échelon de 4V à partir de t = 1 s et de relever la réponse du système sur une
durée totale de 20s avec comme pas d'échantillonnage  T = 0.2s . Ne pas oublier
d'annuler l'échelon en fin d'expérience!
Conseil: les échantillons seront rassemblés dans un vecteur-mesure S et les valeurs du temps
seront rassemblées dans un vecteur temps T.
• Recaler la réponse en éliminant le niveau continu (soustraire la première mesure à toutes les
mesures) puis Normaliser la réponse en divisant les mesures S par l'amplitude de l'échelon afin
de déterminer la réponse à l'échelon unitaire Sunit.
• Tracer la réponse à l'échelon unitaire Sunit du système en fonction du temps T et la
commenter.
b) Relevé de la réponse impulsionnelle
On souhaite maintenant relever la réponse impulsionnelle h(t) en utilisant les mêmes outils
que pour la réponse à l'échelon puis comparer les deux approches.
Travail à faire (1H)
• Appliquer maintenant une impulsion  t  d'amplitude 4V et de durée 2 T soit 0,4s et
relever la réponse . Les mesures seront rassemblées dans le vecteur H .
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
5
Travail à faire (suite)
• Recaler sur la valeur initiale (théoriquement nulle) et normaliser la réponse mesurée en
divisant les mesures H par l'amplitude de l'impulsion afin déterminer la réponse impulsionnelle
unitaire. On rappelle que la norme d'une impulsion de Dirac  t  est le produit amplitude x
durée, soit 4x0,4 dans cette manipulation.
• Tracer la réponse impulsionnelle ht  du système sur le même graphe que le résultat
précédent
• Théoriquement, la réponse à l'échelon est l'intégrale de la réponse impulsionnelle. Pour vérifier
cette hypothèse, calculer l'intégrale de H par la méthode d'Euler appelée aussi méthode des
rectangles(initialiser SomH à zéro et faire une boucle pour i variant de 1 à taille(H)-1 ):
SomH(i+1)=SomH(i) + H(i)*  T
• Tracer SomH sur le même graphe
• L'intégrale de la réponse impulsionnelle est-elle proche de la réponse à l'échelon expérimentale?
(superposer les courbes pour faire la comparaison)
IV - CARACTERISATION DE LA REPONSE DU SYSTEME
a) Modèle de base
Bien que le système réel soit un circuit du second ordre, on choisit comme modèle de
comportement une fonction de transfert du 1er ordre avec retard de la forme :
−T P
K e r
L  p =
1 p
La
réponse
théorique
d'un
tel
système
à
un
−T p
r
échelon
−
e
, ce qui correspond à : s t = K e1 1 − e
p1   p
exponentielle de valeur finale s1 = K e 1 .
S  p = K e1
de
hauteur
e1
est
t−T r

 , réponse à forme
L'identification des paramètres de ce modèle est limitée à la détermination de K gain statique
du système, de τ constante de temps et T r retard.
τ
s(t)
s1
0
t
0'
Fig 2: Réponse du modèle du 1er ordre avec retard
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
On remarque que : K =
6
s1
s t 
= lim
e1
t ∞ e  t 
Pour déterminer τ, on porte la tangente à l'origine de la partie exponentielle 0’ (ou à défaut
au point d'inflexion si la forme n'est pas réellement une exponentielle) .
Remarque : La méthode est applicable que le système ait un retard pur ou pas ( si T R = 0
alors O = O').
b) Construction graphique
Travail à faire (30mn)
• Faire la construction graphique directement sur le relevé de la réponse indicielle du système en
adaptant le principe au système évalué (utiliser les outils interactifs de traçage et de
commentaire des graphiques de Matlab, directement accessibles dans la fenêtre graphique)
Expliciter clairement le choix fait pour le placement de la tangente.
• Donner les valeurs:
- du gain statique K
- de la constante de temps 
- du retard pur T r
−
• Calculer les valeurs prises par le modèle de base s t = K e1 1 − e
définis par T
t−T r

 aux instants
Conseil : le calcul se fait sans boucle, Matlab étendant les fonctions usuelles aux vecteurs et
matrices ; pensez à annuler les valeurs pour tT r
• Tracer sur le même graphique la réponse expérimentale et la réponse du modèle. Calculer
l'écart quadratique cumulé J . Conclusion sur la qualité de la modélisation.
• Conclusion sur son intérêt et ses limitations pratiques. Cette méthode graphique peut-elle être
facilement transposée en langage informatique ?
c) Modèle de Broïda
La méthode tient compte de l'incertitude de détermination de la "cassure" de la courbe. Elle
s'appuie sur la mesure graphique des temps t 1 et t 2 caractérisant les instants à 28% et 40% de la
valeur finale s 1 .
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
7
s(t)
s1
0.40
0.28
0
t
t1
t2
Fig 3: Modèle de Broïda
La méthode propose comme valeurs calculées pour τ et T r :
T r = 2 .8 t 1 − 1.8 t 2
τ = 5.5  t 2 − t 1 
Le modèle est considéré comme valide si
Tr

 0.25
Travail à faire (30mn)
• Faire la repérage graphique des valeurs de t 1 et t 2 sur le relevé de la réponse indicielle du
système et déterminer les valeurs de τ et T r obtenues avec cette méthode .
• Tracer la courbe de réponse de ce nouveau modèle et la superposer au relevé. Calculer l'écart
quadratique cumulé J .
• Comparer aux valeurs précédentes et discuter des écarts expérimentaux.
d) Identification automatisée
Travail à faire (30mn)
• Transposer en langage Matlab la méthode de Broïda pour obtenir un outil permettant de
caractériser automatiquement un système par la méthode de Broïda.
Conseils: rechercher dans le vecteur des mesures les indices (<->temps) des valeurs
caractéristiques de Broïda (28% et 40% de la valeur finale mesurée)
e) Etudes complémentaires
Travail à faire (30mn)
• Pour les systèmes du 2nd ordre à deux constantes de temps, il existe la méthode de Caldwell
citée par quelques auteurs. Consulter le site de l'INP de Grenoble http://wwwhadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
8
• Les étudiants les plus avancés pourront envisager un interface graphique de pilotage de cette
manipulation (utilisation du GUIDE Matlab) !
Note importante : si vous avez terminé cette manipulation dans les temps, il vous est vivement
conseillé de démarrer la suivante....
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
9
ANNEXE TP1
DESCRIPTION DU BOITIER D'ENTREE-SORTIES
ADUSB
I - SPECIFICATIONS
Le boîtier d'entrées-sorties ADUSB est un ensemble construit autour du module NI USB6008/9
de National Intruments. Ce module à fonctions multiples permet de coupler un processus analogique
ou logique à un PC, avec une mise en place très simple (branchement sur le port USB de l'ordinateur
et installation des logiciels). Son emploi est adapté à des travaux de laboratoire; pour un usage
industriel, il faudrait compléter la structure par des interfaces électroniques appropriés (amplification
et isolation des signaux).
Fig 1 – Le boitier Entrées-Sorties basé sur le module NI-6009
Entrées analogiques
La carte possède 8 entrées analogiques multiplexées de faible qualité (impédance d'entrée de
seulement 144 K à laquelle s'ajoute un courant de polarisation est présent sur chaque entrée). La
gamme de tension des entrées est [-10V,+10V] . La protection des entrées permet d'appliquer
jusque 35V sans destruction.
Le signal amplifié est appliqué à un échantillonneur-bloqueur pour le maintenir constant
pendant la conversion analogique-numérique puis au convertisseur. Ce dernier est un modèle 12-14
bits; l'erreur totale annoncée le constructeur est de 15mV à 25°C.
La vitesse de conversion est bridée par le Bus USB. En effet, la cadence des requêtes USB
(demande+réponse) ne dépasse pas 8KHz, chaque requête pouvant demander les 8 voies en une
seule transaction.
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
10
Sorties Analogiques
La carte possède deux convertisseurs D/A 12 bits indépendants. Un amplificateur du type
ampli opérationnel ramène l'impédance de sortie à 50  (valeur considérée comme nulle pour la
plupart des applications). La gamme de sortie est [0,+5v] pour les deux convertisseurs; la fréquence
de rafraîchissement est de 150Hz maximum.
Entrées-sorties logiques
Le boîtier ADUSB possède 12 entrées-sorties logiques compatibles TTL(logique 5V),
répartie en deux groupes: le port 0 avec 8 bits et un port 1 avec 4 bits. Lorsqu'un bit de port est
utilisé en sortie, la fonction est du type collecteur ouvert (sortance très faible au niveau 1). Au
démarrage, les ports sont programmés en sortie (collecteur ouvert inactif).
Ces entrées-sorties sont accessibles sous forme d'un seul mot de 12 bits par concaténation de
Port0 et Port1, en logique directe (un "1" logique correspond à 5V sur la borne). Pour une utilisation
en milieu industriel, il est nécessaire de prévoir des interfaces complémentaires pour isoler les E/S du
calculateur et pour adapter les niveaux (relais de sortie par exemple) .
Entrées-sorties relatives au temps
La carte est équipée d'un compteur/temporisateur. Ces fonctions ne sont pas
encore développées dans la version actuelles.
II - PROGRAMMATION SOUS MATLAB
L'ensemble des fonctions Matlab du boîtier ADUSB est intégré dans une fonction unique
nommée adusb. Le premier paramètre passé dans cette fonction indique la sous-fonction utilisée.
Initialisation de la carte
Syntaxe:
adusb( 'init' ) ;
Description:
La sous-fonction adusb( 'init' ) charge le driver en mémoire (opération assez lente),
recherche le boîtier et initialise le module (mise à zéro des sorties analogiques )
Acquisition des entrées digitales
(inutilisé dans cette manipulation)
Syntaxe:
a = adusb( 'digital_in' ) ;
Description:
La sous-fonction adusb('digital_in') lit la valeur des bits des deux ports et retourne les
12 bits dans une variable Matlab. L’entrée digitale, exprimée sous forme d’un entier
peut prendre des valeurs comprises entre 0 et 2047.
Ecriture d'une ou plusieurs sorties digitales (inutilisé dans cette manipulation)
Syntaxe:
adusb('digital_out' , x )
Description:
La sous-fonction adusb('digital_out' , x ) écrit les bits des Port0 et Port1, exprimée sous
forme d’un entier x compris entre 0 et 2047. L'écriture d'un "1" en sortie ayant pour
objet de désactiver le collecteur ouvert, cette sortie pourra être utilisée comme entrée.
Exemple :
adusb('digital_out' , 15 ) ; met à 1 les 4 bits de poids faible et à 0 les 8 autres
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
11
Lecture d'une entrée analogique
Syntaxes:
x = adusb( 'analog_in' , voie ) ;
[ x1 ...xn ] = adusb('analog_in' , n°_première voie , nombre_voies ) ;
x = adusb( 'analog_in', n°voie , n°bit_trigger , front ) ;
Description:
La sous-fonction adusb( 'analog_in' , n°voie ) lit la valeur de l'entrée analogique
désignée par le n°voie et l'exprime sous forme d'une grandeur comprise entre -10V et
10V . La valeur x retournée est scalaire.
Il est possible de faire de plusieurs voies simultanément, ce qui améliore la cadence
d'acquisition.
L'acquisition peut être synchronisée par une entrée digitale (signal 0-5V) avec
déclenchement sur front montant ( front = 0 ) ou sur front descendant ( front = 1).
Cette fonction sert à l'acquisition d'une suite de mesures avec cadencement par un
générateur externe.
Exemple :
x = adusb ('analog_in' , 0 );
[x1 x2 x3] = adusb('analog_in', 4 , 3 ) ;
y = adusb('analog_in' , 7 , 0 , 1 )
acquisition sur la voie 0
acquisition simultanée des entrées 4, 5 et 6
acquisition sur voie 7 avec déclenchement par
l'entrée digitale 0 sur front descendant
Ecriture d'une sortie analogique
Syntaxes:
adusb('analog_out' , valeur_voie , n°voie ) ;
adusb('analog_out' , [ valeur_voie1 ; valeur_voie2 ] ) ;
Description:
La sous-fonction adusb('analog_out' , valeur , n°voie ) écrit la valeur de la sortie
analogique n°0 ou n°1 exprimée sous forme d'un grandeur comprise entre 0 et 5V
Lorsque la valeur est fournie sous forme d'un vecteur de dimension 2, l'écriture sur les
deux voies est simultanée. Une erreur est signalée pour des valeurs hors limites .
Exemple :
adusb('analog_out' , 3 , 1 ) ;
adusb('analog_out' , [ 3 ; 1 ] )
;
met la sortie 1 à 3V
met la sortie 0 à 3V et la sortie 1 à 1V
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
12
Programme exemple
Acquisition de 100 valeurs sur la voie 0 avec cadencement de 0.1s sans erreur cumulée de
timing. Le principe de l'acquisition est le suivant:
clear all;
delta_t = 0.1;
adusb('init');
t_wait = 0;
t_ini = cputime ;
% hardware initialization
% start time
for i = 1 : 100 ;
S(i) = adusb('analog_in' , 0);
T(i) = cputime - t_ini;
while t_wait < i*delta_t
t_wait = cputime - t_ini;
end;
end
plot (T, S )
% <-- here, analog_output for example
%analog input of channel 0
%exact time value is stored for plotting
% waiting loop
% wait for time value i*delta_t
% end of acquistion loop
% plot of acquired values
Veuillez consulter l'aide en ligne de la fonction adusb pour les mises à jour et correction d'erreurs
(faire "help adusb" sur Matlab)
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
13
TP n° 2
MESURE DE LA REPONSE D'UN SYSTEME
PAR SBPA
I - BUT DE LA MANIPULATION
Le but de cette manipulation est de proposer une méthode de détermination de la réponse
impulsionnelle beaucoup plus performante que celle du TP n°1 . Elle est appliquée très couramment
en laboratoire ou sur site industriel. Ses principaux avantages sont la possibilité de travailler "en
ligne" (l'installation continue à fonctionner quasi normalement pendant la mesure) et une bonne
robustesse (peu sensible aux bruits et perturbations).
Le signal SBPA (Séquence Binaire Pseudo Aléatoire) utilisé dans cette manipulation possède
des propriétés qui permettent simplifier considérablement l'étude. L'analyse de la sortie obtenue dans
ces conditions particulières permettra de déterminer avec précision la réponse impulsionnelle.
Cette méthode est appliquée au même processus que celui du TP n°1 couplé à un calculateur
type PC sous Matlab par l'intermédiaire du boîtier ADUSB ..
II - LE SIGNAL SBPA
a) Séquence binaire pseudo-aléatoire
C'est un signal binaire généré par un registre à décalage de N bits rebouclé par une fonction
spécifique à base de "OU exclusifs". L'état des N bascules forment un mot de N bits observé par
sérialisation.
Horloge
D Q1
D
Q2
D Q...
D QN
s équence
binaire
Fonction com binatoire
rebouclage
Fig 1: Registre générateur de séquence SBPA
Si la fonction de bouclage est bien choisie, le registre peut prendre au mieux toutes les
combinaisons possibles des N bits soit 2 N états différents, sauf la combinaison "0 0 0 ....0" (le
registre resterait à une valeur nulle indéfiniment!). Cette structure sert de générateur de mots binaires
N
aléatoires, la séquence étant formée de 2 − 1 valeurs différentes du mot. A partir de la 2 N ième
valeur, il y a répétition de la première valeur ; le générateur "reboucle" sur sa première valeur. La
N
séquence est donc cyclique et se répète tous les 2 − 1 coups d'horloge.
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
14
Pour les applications d'identification, on utilise la sortie obtenue par sérialisation (la sortie de
n'importe quelle bascule peut servir de sortie série). La sortie du registre binaire présente une
succession de "0" et de "1" pseudo-aléatoire. Après translation de niveau et amplification d'un
facteur a , la séquence présente l'allure suivante.
Fig 2: Allure d'une séquence binéaire pseudo aléatoire à niveaux
symétriques
Le signal obtenu est aléatoire (on ne peut prédire la valeur suivante connaissant la valeur
courante) et forme une Séquence Binaire Pseudo Aléatoire. Sa longueur maximale est donc
N
L = 2 N − 1 ; à partir de la 2 ième valeur, il y a répétition de la première valeur (périodicité de
la SBPA).
La fonction combinatoire généralement adoptée est le "OU EXCLUSIF" ou somme modulo
2. Le tableau ci-dessous donne les fonctions de rebouclage pour diverses valeurs de N donnant les
N
séquences de longueur maximale L = 2 − 1 :
N
Longeur de la séquence
Fonction
2
3
D1 = Q1 ⊕ Q2
3
7
D1 = Q2 ⊕ Q3
7
127
D1 = Q6 ⊕ Q7
8
255
D1 = Q2 ⊕ Q3 ⊕ Q4 ⊕ Q8
9
511
D1 = Q5 ⊕Q9
Fig 3 - Tableau des fonctions de rebouclage SBPA
b) Génération d'une séquence sous Matlab
La génération de SBPA peut se faire sous Matlab (ou n'importe quel autre langage!). A titre
d'exemple; voici un programme permettant de générer une séquence vecteur Z avec N = 6 .
clear all
pboucle = [0 0 0 0 1 1] ;
N = size(pboucle,2) ;
register = ones(1,N ) ;
Z = [] ;
% polynome de bouclage pour N = 6
% definition et initialisation du registre a decalage
%declaration de la structure de sauvegarde de la sortie
for i=1:2^N-1
q = rem( sum( register.*pboucle ) , 2 ) ; %calcul de la fonction de bouclage modulo 2
for j = N : -1 : 2
register(j) = register(j-1) ;
% decalage du registre
end
register(1) = q ;
% application du bouclage
Z=[Z ; q];
end
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
15
Une fois la séquence construite, il est facile de la visualiser . Attention, ne pas utiliser la
fonction "plot" dans le mode de base qui interpole les points et crée donc un artefact de visualisation.
stairs(1:2^N-1,Z)
title(['Sequence binaire pour N = ' num2str(N)])
% trace en echelon
Travail à faire (45mn)
• Générer sur Matlab une séquence binaire pseudo aléatoire pour N = 6 en utilisant la fonction
sbpa(N) (cette fonction supplémentaire dispose d'une aide directe sous la syntaxe " help
nom_fonction" ).
• Déterminer la longueur de cette séquence à l'aide de la fonction size . Est-elle conforme à
l'exposé théorique ?
• Tracer la séquence obtenue. Quels sont ses niveaux ?
• Modifier les valeurs de la séquence pour que ces niveaux soient +2 et -2; la tracer pour
vérification.


Calculer la valeur moyenne de la séquence (utiliser sum ). La SBPA est-elle un signal à valeur
moyenne nulle ? Eventuellement, éliminer la composante continue pour la suite.
Vérifier la valeur de son amplitude a par calcul de la moyenne de la valeur absolue .
c) Propriétés fondamentales d'une séquence binaire pseudo-aléatoire
La séquence binaire pseudo aléatoire SBPA s'apparente à l'impulsion de Dirac pour certaines
propriétés fondamentales en traitement du signal comme sa fonction d'auto-corrélation ou sa densité
spectrale de puissance.
La fonction d'autocorrélation d'un signal x(t) périodique est donnée par :
 xx  =
1 T
∫ x  t  x t − dτ
T 0
La fonction d'autocorrélation permet d'observer le caractère aléatoire d'un signal. Si la
fonction est nulle pour une valeur donnée de  , cela veut dire qu'il n'y a aucune relation statistique
entre x t et x t    . Elle permet donc de vérifier ce caractère aléatoire de la séquence.
Pour une SBPA périodique, l'intégration est limitée à une période de la séquence. L'allure de
la fonction d'autocorrélation est la suivante:
Figure 4 - Fonction d'autocorrélation d'une séquence binaire pseudo-aléatoire
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
16
Dans le cas d'une séquence suffisamment longue, la fonction d'autocorrélation de la SBPA
peut être approximée par une impulsion de Dirac pour une observation de durée T (remarquer que
 XX  0  = a 2 , avec a amplitude de la SBPA).
Etant donné que la séquence SBPA est un signal échantillonné à la cadence T , on définit la
fonction d'autocorrélation discrète par :
L
 XX k T  =
1
∑ x i T − k T  x i T  avec 0k L−1
L 1
Travail à faire (15mn)
Calculer la fonction d'autocorrélation discrète de la séquence pour N = 6 en utilisant la
fonction corrxx(signal) (cette fonction supplémentaire dispose d'une aide directe sous la syntaxe
"help nom_fonction" ).


Tracer la fonction d'autocorrélation ; le résultat a-t-il la forme prévue ?
La SBPA étant un signal à caractère aléatoire, il est usuel de caractériser les propriétés
fréquentielles par la densité spectrale de puissance. La densité spectrale de puissance n'est rien
d'autre que la transformée de Fourrier de la fonction d'autocorrélation.
Travail à faire (30mn)
Calculer la transformée de Fourier discrète de  XX  k T  en utilisant la fonction fft(signal)
(cette fonction Matlab dispose d'une aide directe sous la syntaxe "help nom_fonction " ).

Tracer le module et la phase de la TdF de la fonction d'autocorrélation (remarquer que l'échelle
2
des abcisses représente les fréquences jusqu'à la pulsation
(2 x fréquence de Shannon)).
T
Le signal présente-t-il les caractéristiques d'un bruit blanc ? Pourquoi la TdF est-elle nulle pour
la fréquence nulle ? Quelles sont les fréquences minimales et maximales contenues dans une
SBPA de longueur L ?

L'ensemble des propriétés que vous venez d'étudier justifie l'emploi fréquent de la SBPA
comme signal d'excitation pour l'identification des processus.
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
17
III - DETERMINATION DE LA REPONSE IMPULSIONNELLE D'UN SYSTEME
PAR SBPA
a) Réponse d'un système à une SBPA
Soit s(t) la réponse d'un système linéaire auquel est appliqué une entrée e(t) de type SBPA.
Fig 4 – Réponse d'un système à une SBPA
L'étude des systèmes linéaires en Licence a montré que la sortie s(t) est le produit de
convolution entre l'entrée appliquée e(t) et la réponse impulsionnelle h(t).
s t =
∞
∫0 e t−θ  hθ  dθ
Dans un premier temps, on se propose d'appliquer la SBPA comme signal d'entrée à un
processus dont désire déterminer h(t) .
Travail à faire (60mn)

Refaire le montage électrique du TP n°1 (sortie DA --> entrée du processus, sortie processus
--> entrée AD )

Le processus à étudier (cellules RC avec condensateurs polarisés) ne pouvant accepter de
signaux négatifs, il est nécessaire de décaler la séquence construite précédemment par ajout d'une
composante continue de décalage +2.5V. La séquence variera donc entre [+0.5V,+4.5V] au lieu
[-2V,+2V] .

N
Appliquer (sortie analogique) au processus les 2 −1 valeurs du signal SBPA avec une
période d'échantillonnage  T = 0.5s et relever (entrée analogique) simultanément la sortie du
N
processus (il y a 2 −1 valeurs lues!).
( Faire 2 fois en boucle cette acquisition pour éliminer l'influence du régime transitoire qui
fausse les premières mesures)
Tracer la réponse du système (pas d'interpolation entre les points de mesure!) en fonction du
temps. Quelle allure présente-t-elle à vos yeux?

USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
18
b) Détermination de la réponse impulsionnelle
Pour une entrée du type SBPA, la sortie présente une allure aléatoire mais en réalité, elle est
corrélée à l'entrée.
Le but de cette dernière partie est démontrer que la réponse impulsionnelle peut être déduite
du calcul de la fonction d'inter-corrélation entrée-sortie du système.
Note : Il est tout à fait possible de continuer la manipulation même en cas
d'incompréhension de la démonstration!
Principe
La caractérisation se fait à l'aide des outils adaptés à cette classe des signaux aléatoires,
comme la fonction d'intercorrélation entrée-sortie du système qui s'écrit:
 XY  τ =
1 T
∫ s t e t−dt
T 0
Le processus étant un système linéaire, sa sortie est liée à l'entrée par la relation:
s t =
∞
∫0 e t− h  d 
 XY  τ =
d'où
T
∫0 h  XX  τ− d 
La fonction d'intercorrélation  XY  peut s'exprimer par le produit de convolution entre la
réponse impulsionnelle du système et la fonction d'autocorrélation du signal d'entrée.
Les résultats précédents ont montré que l'autocorrélation de la SBPA est proche d'un Dirac
de la forme  XX  t  ≃a2   t  =  XX  0    t  . D'où :
 XY  ≃
T
∫0 h  XX 0 − d 
ce qui donne :  XY  ≃ h . XX 0
Nous pouvons donc en déduire que :
h   ≃
 XY   
 XX  0 
.
Mise en oeuvre :
Les signaux étant discrets, les intégrales sont à remplacer par des sommes discrètes. La
fonction d'intercorrélation discrète entre e et s s'écrit :
L
 XY kΔT  =
1
∑ siΔT e iΔT −kΔT 
L 1
La réponse impulsionnelle a pour expression discrète:
L
1
1
hk  T  ≃ 2
∑ si T  ei T −k T 
a T L 1
d'où
hk  T  =
1
 XY k T 
a Δt
2
1
dont la justification n'est pas donnée dans cet
T
exposé.(voir P. Borne "Modélisation et Identification des Processus" page185 tome 2 Editions Technip 1992 )
On remarque la présence d'un coefficient
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
19
c) Application de la méthode d'intercorrélation au processus
Travail à faire (30mn)

A partir du relevé de la sortie précédent, déterminer la réponse impulsionnelle discrète
1
h k T  = 2
 XY k T  du système en utilisant corrxy(signal1,signal2) pour le
a T
calcul de l' intercorrélation

Tracer la réponse impulsionnelle discrète en superposition avec la réponse déterminée au
TP1 (reprendre le script du relevé de S du TP1 si vous n'avez pas gardé les mesures).
Correspond-elle à celle du relevé direct ?

Ajouter un bruit aléatoire aux mesures de S . Pour cela, utiliser rand fonction de
génération d'un bruit vectoriel :
rand()
génère un bruit compris entre 0 et 1, avec une moyenne de 0.5
appliquer la règle suivante (addition d'un bruit d'amplitude Crête à Crête A et de
moyenne nulle) :
signal_bruité = signal + A * ( rand ( size (signal) - 0.5 ) ;

Etudier la robustesse de la méthode vis-à-vis de l'amplitude du bruit (ne pas refaire les
mesures pour chaque essai!). Y a-t-il un niveau de bruit à partir duquel la réponse est
inexploitable?

Conclusion sur les performances globales de la méthode.
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
20
TP n° 3
IDENTIFICATION D'UN SYSTEME
MODELISE PAR ARMA
I - INTRODUCTION
La méthode AutoRégressive à Moyenne Mobile Ajustée ARMA utilise un modèle de
représentation très universel, traduisant une relation entrée-sortie du processus du type récurrence en
tenant compte d'un éventuel retard. L'ajustage des coefficients se fait par mesure des signaux entréesortie sur le processus réel pour une large gamme de signaux d'entrée.
Le modèle de comportement défini dans la méthode ARMA est du type discret: ce choix
facilite son utilisation dans les algorithmes de commande complexes qui seront établis sur machine
numérique; de plus la simulation des résultats (validation du modèle) est directe par calcul
numérique. L'ajustement des paramètres du modèle se fait par une méthode de moindres carrés
récursifs, ce qui minimise la taille des données intervenant dans les calculs. Cette technique permet
de plus de modéliser des systèmes dont les paramètres évoluent dans le temps: le modèle suit ces
variations avec un effet de "filtrage" réglable.
II - LE MODELE ARMA
Le modèle ARMA correspond à une fonction de transfert discrète développée sous forme
d'une récurrence qui établit une relation linéaire entre la suite des entrées {u k} et celle des
sorties modélisées { ym k} de la forme:
a 0 y m n   a1 y m  n−1  a 2 ym  n−2  ... a p y m n− p  = b 0 un   b1 u n−1 ... b q u n−q
Prise en compte d'un retard pur :
Si le système comporte un retard pur T r (en s) correspondant à r périodes
d'échantillonnages (r entier), celui-ci est pris en compte dans le modèle à travers une translation de
toutes les données de l'entrée:
a 0 y m n   a 1 y m n−1  a2 ym n−2  ... a p ym n− p  = b0 un −r  b1 un−r−1  ... b q un−r−q 
Dans la suite, l'écriture des relations sera faite sans retard pur dont il est aisé de tenir compte
dans les programmes.
III - AJUSTEMENT DES PARAMETRES DU MODELE ARMA
L'identification des coefficients du modèle ARMA s'appuie sur l'observation des signaux
u(t) et y(t). Il est à remarquer que la forme du signal u(t) n'intervient pas directement dans la phase
d'identification, contrairement aux méthodes qui s’appuient sur une excitation particulière du système
(impulsion, échelon, SBPA...).
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
21
a) Méthode des moindres carrés
La méthode la plus utilisée pour déterminer les paramètres ai et bi du modèle consiste à
évaluer l'écart quadratique moyen entre la sortie réelle du processus y(k) et celle du modèle
ym k et à ajuster les paramètres du modèle pour minimiser cet écart quadratique.
La sortie y m du modèle à l'instant k connaissant la suite des entrées peut s'écrire (en
supposant que a0 =1 ):
ym n  = −a1 y m n −1 − a 2 y m  n−2 −...− a p ym n− p   b0 u n  b1 u n−1  ... b q u n−q 
Soit v(i) l'écart entre la sortie réelle y du processus et la sortie y m du modèle à l'instant i:
vi = y i  − ym i 
L'équation précédente devient:
y n = −a1 y n−1 − a 2 yn−2  −... − a p yn− p   b0 u n  ... b q u n−q   e n 
avec
e n = − v n  a1 v n−1   a2 v n−2 −...− a p v n− p 
e(n) est appelé résidu ou erreur de prédiction. C'est l'écart entre la sortie réelle et la sortie
prédite à l'instant k.
Supposons que l'on fasse N mesures successives sur le processus du couple entrée-sortie.
On peut écrire (N-p) fois l'équation (2) , l'ensemble des relations est regroupé sous forme matricielle:
[ ][
yN 
−y N −1  y N −2 
y N −1 = −y N −2  y N −3 
...
...
...
y  p1 
−y p
−y  p−1 
...
−y N − p 
u N 
... −y N − p−1 u N −1 
...
...
...
...
− y1
u p 1
[]
a1
...
εN 
ap
 ε N −1 
...
b0
ε p1 
...
bq
] [ ]
...
u N −q
... uN −q−1 
...
...
... u p1−q
de la forme : Y = H    avec  vecteur des paramètres à estimer.
Remarque : Les équations peuvent s'écrire pour un instant n < p + 1 en affectant éventuellement
des valeurs nulles aux signaux u(j) et y(j) pour lesquels j < 0. Ceci permet de traiter sans différence
d'écriture la phase de démarrage du processus d'identification.
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
22
b) Estimation de θ
La méthode d'estimation des meilleures valeurs des paramètres est la méthode des
moindres-carrés dont les étapes principales sont rappelées ici:
Pour estimer  mise un critère quadratique J somme des carrés des erreurs de prédiction:
N
J  =
∑
i=p+1
2i = T  = Y −H T Y − H 
Le minimum de J est obtenu en recherchant la valeur θ qui annule les dérivées partielles par
∂J
= 0 et l'optimum de  est donné par :
rapport à chacune des composantes de  soit
∂
 H T H −1 H T Y
=
Le vecteur paramètre ainsi obtenu permet de définir ainsi les coefficients du modèle ARMA
du processus qui minimise l'erreur entre les sorties réelles et celle du modèle au sens des moindres
carrés.
c) Signal d'excitation
La détermination des valeurs des paramètres du modèle par les moindres-carrés se fait en
observant la relation entrée-sortie du système. La sortie doit donc évoluer sous l'action d'un signal
d'entrée. Les signaux d'excitation du système les plus courants sont:
- l'impulsion de Dirac ou l'échelon (position ou vitesse), signaux simples mais donnant
des résultats médiocres (faible contenu informationnel et fréquentiel)
- un signal analogique aléatoire ou pseudo-aléatoire
- la commande du régulateur lorsque le système est déjà sous contrôle en boucle fermée.
(identification "en ligne" très utilisée dans l'industrie).
Pour la manipulation, on se limite à l'échelon (les étudiants les plus avancés peuvent utiliser la
SBPA)
d) application à un processus du premier ordre
On se propose de modéliser la fonction de transfert du processus vu au TP n°1 par le même
modèle soit un 1er ordre avec retard pur . Le schéma fonctionnel du modèle est le suivant, compte
tenu des éléments de contrôle/commande (convertisseurs A/D et D/A) :
Te
u(t)
depuis
calculateur
u*(t)
Te
Bloqueur
u(nTe)
entrée
physique
y(t)
− Tp
K
G e
1+ τ p
sortie
physique
avec K gain statique, τ constante de temps et T r retard pur .
USTL - Master ASE M1 – 2009/2010
y(nTe)
vers
calculateur
Travaux Pratiques Modélisation Identification des Processus
23
L'équation de récurrence de ce système s'obtient en calculant la réponse à l'instant nT e
depuis la valeur à l'instant n1T e prise comme valeur initiale (calcul par l'exponentielle de la
matrice d'état par exemple, plus précis que l'approximation d'Euler utilisée dans le cours).
Pour un système du 1er ordre sans retard ( T r =0 ) , la récurrence est :
y  n  = − a 1 y  n − 1   b1 u n − 1 
avec :
a1 = − D
(pour r = 0 )
−T /
e
b1 = K 1 − D 
D =e
Travail de Préparation (30mn)
• Quel est le vecteur paramètre  de ce système du 1er ordre à identifier ?
• Donner l'expression formelle de la matrice H pour le modèle du premier ordre (nombre
et contenu des colonnes, indice des valeurs formant les colonnes, nombre de lignes ).
Voir l'exemple en fin de TP pour une meilleure compréhension.
IV MANIPULATION
La manipulation se fait entièrement sous MATLAB, y compris les mesures sur le processus
physique avec le matériel utilisé pour les TP 1 et 2.
Travail à faire (60mn)

Câbler le processus comme pour le TP N°1 .
Reprendre le script Matlab permettant d'appliquer un échelon de 5V et de relever la réponse y
du système sur une durée de 20s avec comme pas d'échantillonnage  t = 0.2s . Ne pas
oublier d'annuler l'échelon en fin d'expérience!

Conseil : les échantillons seront rassemblés dans un vecteur-mesure Y et les valeurs de temps dans
un vecteur-temps T
• Normaliser Y et tracer la réponse Y à l'échelon unitaire du système en fonction du temps T
Important : si la courbe ne part pas de zéro, corriger les mesures Y de cette erreur de décalage
par soustraction de la première mesure.
• Déduire graphiquement du relevé de Y les valeurs de T r , K et τ caractéristiques du processus
continu (utiliser la méthode de la tangente au point d'inflexion par exemple).
• En déduire les coefficients a1 et b 1 du modèle discret (utiliser Matlab pour faire les calculs et
les insérer dans le script du TP).
On rappelle que : a1 = − D
−T e /
b = K 1 − D avec D = e
1
USTL - Master ASE M1 – 2009/2010
.
Travaux Pratiques Modélisation Identification des Processus
24
Simulation du modèle de récurrence(60mn)
• Avec les valeurs de a 1 et b1 déterminées précédemment, simuler le système numérique par
calcul itératif de l'équation de récurrence y n = − a 1 y n − 1   b1 u n − 1
Conseil : partir des valeurs initiales y −1=0 et u −1=0
en déduire y 0 [valeur évidente!]
puis reprendre y 0 calculé et u 0=1 pour en déduire y 1
puis reprendre y 1 calculé et u 1=1 pour en déduire y 2 .....
(voir exemple en fin de TP pour la méthode de simulation)
• Tracer la simulation sur le même graphe que la réponse réelle. La simulation est-elle acceptable ?
• Pour améliorer le modèle, tenir compte du retard T r
. Reprendre la récurrence qui devient y n = − a 1 y  n − 1   b1 u n − 1 − r 
avec r =round T r /T e 
• Conclure sur l'adéquation du modèle retenu par rapport au processus réel.
Identification non-récursive (60mn)
• Modifier le script de mesure sous Matlab pour acquérir l'entrée u et la sortie y
Conseil : les échantillons de l'entrée seront rassemblés dans un vecteur U .
• A l'aide des valeurs de u et y relevées, construire la matrice H pour environ 50 lignes
Conseil: attention aux premières lignes de H qui sont spécifiques (les valeurs de y et u ne font pas
partie des mesures); le plus simple est de ne pas tenir compte de ces instants pour l'identification et
de démarrer les calculs pour t=2Te par exemple.
• Calculer le vecteur des paramètres identifiés par la méthode des moindres-carrés. .
• Comparer aux valeurs obtenues directement.
• Simuler le système obtenu et superposer le tracé graphique à celui de la réponse directe.
• Bruiter les mesures par ajout d'un bruit aléatoire à moyenne nulle et analyser la robustesse de la
méthode vis-à-vis du bruit.
Les étudiants qui le souhaitent ont la possibilité de continuer la manipulation en utilisant la
SBPA comme signal d'excitation et/ou en exploitant la méthode récursive en remplacement de la
méthode directe (exemple en fin de texte).
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
EXEMPLE DE PROGRAMME SOUS MATLAB
%
%
%
%
%
%
Exemple d'identification des paramètres d'un modèle récursif du 2ème ordre du type :
y(n) + a1.y(n-1) + a2.y(n-2) = b1.u(n-1)
Ce modèle correspond celui d'un système analogique du 2nd ordre dont l'entrée est échantillonnée-bloquée.
Le calcul des paramètres est fait dans une première étape par la méthode non-récursive des moindre-carrés;
il est fait ensuite par la méthode récursive.
Les résultats finaux doivent concorder entre les deux méthodes !
clear all;
% La dimension de theta est celle du nombre total de paramètres inconnus (a1, a2 et b1 dans cet exemple).
thetan= [0 0 0]';
Pn=1000*eye(size(thetan,1));
% Vecteur des mesures (vous pouvez placer vos propres points de mesures) ,
% le programme tient compte automatiquement du nombre de mesures définies dans Y .
% L'exemple initial est celui d'un second ordre avec dépassement.
Y=[0 .1 1.8 .9 1.1 .95 .97 .99 1.02 1.01 ]';
% L'entrée est supposée être un échelon. Le vecteur d'entrée peut être remplacé par
% une autre fonction des valeurs mesurées.
U=ones(size(Y),1);
% Détermination du vecteur-temps associé aux mesures.
Te=1;
T=[0:Te:(size(Y,1)-1)*Te];
stem(T,Y)
AXIS([0 Te*size(Y,1) 0 max(Y)*1.1])
hold on
% Méthode directe: construction de la matrice H puis calcul de la pseudo-inverse theta
for i = 3:size(Y,1)
H(i,:) = [-Y(i-1) -Y(i-2) U(i-1)];
end
theta = inv(H'*H)*H'*Y
% Méthode récursive
for i = 3:size(Y,1)
hn1=[-Y(i-1) -Y(i-2) U(i-1)]';
Kn1 = Pn*hn1/(1+hn1'*Pn*hn1);
thetan1=thetan + Kn1*(Y(i) - hn1'*thetan);
Pn1 = Pn - Kn1*hn1'*Pn;
Pn=Pn1;
thetan=thetan1;
end
thetan
% Simulation avec les valeurs finales de thetan
Ysim=zeros(size(Y,1));
for i =3:size(Y,1)
Ysim(i)= - Ysim(i-1)*thetan(1) - Ysim(i-2)*thetan(2) + U(i-1)*thetan(3);
end
plot(T,Ysim, 'r')
USTL - Master ASE M1 – 2009/2010
25
Travaux Pratiques Modélisation Identification des Processus
26
TP n° 4
COMMANDE D'UN SYSTEME AVEC RETARD
I - PRESENTATION DE LA MANIPULATION
L'identification de nombreux systèmes industriels (fours, chaudières, réseaux
d'alimentation...) conduit à introduire dans la fonction de transfert un retard pur pour prendre en
compte divers phénomènes (présence effective d'un retard ou plusieurs constantes de temps
"lentes"). De tels systèmes ont l'inconvénient d'avoir un déphasage important pour des fréquences
relativement basses et de poser des problèmes vis à vis de la mise en place de correcteurs classiques (
P.I.D. ou équivalents). On adopte pour ces systèmes une structure de correction particulière qui
prend en compte le retard de la sortie et permet d'adopter ensuite une correction classique.
Cette manipulation se fait sous le logiciel SIMULINK, dont l'intérêt est la programmation
graphique appliquée aux systèmes. Dans un premier temps, Simulink est utilisé en simulation pour
une analyse des performances des méthodes. Dans un deuxième temps, le processus réel est introduit
dans le schéma de simulation (méthode HIL - hardware in the loop-), ce qui permettra de valider la
méthode en situation réelle.
II - SYSTEMES A RETARD PUR
a) Description des systèmes à retard pur
De nombreux systèmes possèdent par nature un retard pur: générateur d'air chaud, circuit
de chauffage, système d'irrigation, ... . Il est donc logique d'introduire dans leur description un retard
−T r p
sous la forme d'un terme e
au numérateur de leur fonction de transfert.
De plus, dès que l'ordre du système est au moins égal à 2 (sans numérateur), le début de la
réponse indicielle possède une tangente horizontale; la sortie n'évolue que très faiblement pendant un
certain temps qui est assimilable à un retard pur. Le modèle de Broïda prend en compte ces formes
de réponse grâce à une fonction de transfert de la forme:
−T p
K e r
L  p =
1 p
C'est ce modèle qui sera retenu pour cette manipulation. Le valeurs de K et  seront
celles évaluées lors des manipulations précédentes. Le retard pur sera artificiellement augmenté pour
mettre en évidence la spécificité d'un système à retard pur.
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
27
Système en boucle ouverte (45mn)

Construire avec SIMULINK un système à retard pur en boucle ouverte de la forme:
−T p
e r
L  p = K
1p
avec T r =1s
 = 3s
K =0.6
Pour que le schéma de simulation ait la même topologie que le processus réel, il est demandé de
placer le retard pur en tête de schéma et à la suite la fonction 1er ordre.

Observer sa réponse en boucle ouverte sur 20s . Quelle est la différence avec le processus réel
utilisé en manipulation ?
Note : Pour une meilleure qualité de présentation des résultats, reporter les grandeurs utiles
(temps, entrée, sortie) dans le workspace de Matlab à l'aide d'un bloc "to workspace" (mettre le
paramètre de format sur "array") et tracer les résultats à l'aide de la fonction "plot" (échelles,
grille, titre...).
b) Bouclage classique d'un système à retard pur
Le bouclage en retour unitaire d'un système à retard pur pose des problèmes de stabilité
pour des valeurs restreintes de gain de boucle. En effet, le terme e−T r p provoque un déphasage
proportionnel à la fréquence. Pour les fréquences élevées, le déphasage atteint très rapidement la
valeur critique de (–180°) en laissant une marge de gain très réduite, voire provoquant l'instabilité.
fig.1: Commande Proportionnelle
Les performances de ces systèmes sont donc limitées:
- mauvaise précision statique (erreur de position importante)
- faible stabilité (réponse avec un dépassement important)
Comme pour un système classique, on peut mettre en place une compensation du type
Proportionnelle Intégrale Dérivée suivant le schéma ci-dessous: (l'action dérivée est placée seulement
sur le retour pour limiter la répercussion des brusques variations de l'entrée sur la chaîne d'action).
fig. 2: Commande PID
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
28
Les coefficients gr, Td et Ti du régulateur peuvent être définis par une étude fréquentielle ou
plus simplement en fonction des paramètres du système non compensé. C'est la méthode la plus
retenue dans les applications industrielles.
Parmi les différentes méthodologies de réglage directe, Broïda a proposé une solution
s'appuyant directement sur les paramètres de l'identification; le tableau suivant résume les valeurs
adoptées pour les différents types de régulateurs:
Type de
régulateur
P
PI
PID
gr

4Tr K

4T r K
0.8 
Tr K
Ti
∞
τ
τ
Td
0
0
0.4 T r
tableau1: paramètres de réglage du correcteur
L'étude expérimentale du système corrigé montrera que les résultats sont médiocres pour des
valeurs de T r importantes devant τ c'est à dire lorsque le retard pur est prépondérant sur la
constante de temps .
Commande proportionnelle classique (45mn)

Boucler le système avec le gain de réglage gr défini par Broïda (valeur limite autorisée). Observer
la réponse à l'échelon correspondante. Quelle est alors la précision statique du système?

Déterminer le gain grc amenant le système en oscillation limite de stabilité et observer la
fréquence des oscillations. Comparer le gain gr à la valeur limite grc .

Relever la réponse à une entrée en rampe de pente 0.1s-1 et donner l'erreur de traînage .
Commande PID classique (30mn)

Mettre en place une structure de correction PI classique de la figure 2. Régler les coefficients
suivant Broïda et si besoin les ajuster pour de meilleures performances (justifier vos réglages ).

Observer la réponse à l'échelon et déterminer l'erreur de position. Relever la réponse à une rampe
et donner la nouvelle erreur de traînage.

Reprendre avec le PID .
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
29
III - REGULATION AVEC COMPENSATION DU RETARD PUR
a) Compensateur du retard pur
Dans un système présentant un retard pur, la réaction de la sortie se fait toujours avec retard
par rapport à l'établissement de l'entrée. L'asservissement se faisant par comparaison entre la sortie et
la consigne, il apparaît donc un écart "systématique" lors des transitoires de l'entrée.
On utilise le plus souvent un "Compensateur de Temps Mort" ou CTM dont le rôle est
d'empêcher la réaction instantanée du comparateur lors d'un changement de consigne. La méthode
est aussi appelée "Régulateur PIR" ou encore "prédicteur de Smith" .
fig 3: Correction avec CTM
La fonction de compensation/prédiction est :
−T p
1− e r
CTM  p = K
1 p
Avec cette technique, il est possible de faire intervenir un correcteur PID classique de façon
satisfaisante (tout se passe comme si le retard était rejeté en dehors de la boucle de régulation).
b) Préparation
Analyse du CTM à faire en préparation (60 mn)

Montrer que le schéma de la correction avec CTM de la figure 3 est équivalent au schéma fictif
suivant:
où G(p) est la fonction de transfert du processus non retardé: G  p =
K
1 p
fig. 4: Schéma équivalent à la correction avec CTM
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
30
c) Simulation analogique
Mise en place du CTM sous Simulink (60 mn)
Mettre en place la structure de compensation du type CTM (figure 3). La correction étant
appliquée à 'un système du premier ordre, seuls les correcteurs P et PI sont à envisager.

Pour le régulateur PI, avec T i =  , observer les réponses du système pour différentes valeurs du
gain proportionnel (par exemple gr -valeur de Broïda-, puis 2gr).

Comparer avec la correction PID du paragraphe précédent.

Observer la réponse du système lorsque, suite à une identification peu précise, les paramètres du
correcteur CTM ne sont plus rigoureusement les mêmes que ceux du processus réel (ne pas
hésiter à faire des variations de paramètre de l'ordre de 30 à 50% !)

Conclure.
d) Application au processus
La simulation permet d'étudier le comportement du modèle du processus. Le passage au
processus réel implique d'insérer le processus réel dans la boucle, l'action sur le processus étant
pilotée par un convertisseur D/A et les mesures étant faites par un convertisseur A/D .
fig 5 – Contrôleur numérique de processus HIL
La simulation HIL -Hardware In the Loop- propose d'utiliser le PC sous Windows comme
contrôleur numérique temps-réel avec Simulink comme langage de programmation.
Les convertisseurs A/D et D/A seront ceux du boîtier ADUSB. Le logiciel Simulink est
complété par une bibliothèque de fonctions de pilotage des convertisseurs et la maîtrise du tempsréel (fonctions ajoutées à la toolbox ADUSB) [ces outils ont été développés au LAGIS et n'existent
pas dans la distribution standard de Matlab/Simulink; ils sont libres et disponibles sur Internet! ]
Les boîtes fonctionnelles sont regroupées dans le chapitre ES ADUSB de la librairie de
Simulink, dont le détail est donné en annexe. Cette sous-librairie comprend :
- un module de lecture des 8 entrées analogiques 0-5V
- un module d'écriture sur les 2 sorties analogiques 0-5V
- un module d'initialisation (permet la détection automatique du boîtier ADUSB)
- un module horloge temps-réel, dont le rôle est de cadencer physiquement les calculs de
Simulink à la valeur définie par le simulation step (menu "simulation parameters...")
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
31
A titre d'exemple, voici la structure minimale de commande HIL du processus réel en boucle
fermée:
fig 6 – Schéma de simulation HIL de la commande du processus en boucle fermée
Les éléments spécifiques à la commande HIL sont :
- une saturation de la commande qui limite le signal de commande à la dynamique matérielle
du convertisseur D/A soit 0-5V (fixer les limites par la boîte de dialogue de la fonction saturation)
- un décalage de la commande de 2,5V pour garantir une commande positive à tout moment
,en particulier lorsque l'erreur  est nulle
- un retard pur , qui permet d'augmenter le retard propre du système réel (second ordre
matériel) pour obtenir T r =1s .
Commande du processus réel (60 mn)
Faire le montage HIL selon la figure 6 avec un régulateur PI sans CTM , ajuster les paramètres
aux valeurs utilisée dans la simulation précédente. Pour le retard pur complémentaire, ajuster sa
valeur pour que le retard total T r (retard simulé+ retard identifié sur la process) soit de 1s .

Fixer le temps de simulation à 30s et le pas de simulation à 0.1s . Appliquer un échelon de 1V (de
2V à 3V) à l'instant t = 10s .

Ne pas oublier de ramener l'échelon à sa valeur initiale 2V en fin de programme!
Relever la réponse. Comparer aux résultats de la simulation pure. Est-elle satisfaisante en
asservissement ?

Mettre en place la correction CTM et relever la nouvelle réponse.
Est-elle améliorée ?
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
32
ANNEXE TP4UTILISATION DU BOITIER ADUSB SOUS SIMULINK
Les fonctionnalités du boîtier
ADUSB sont directement accessibles sous
Simulink grâce à une bibliothèque de
modules complémentaires dénommée "ES
ADUSB", visible depuis le navigateur de
Simulink.
Ces modules permettent de réaliser une
application HIL (Hardware In the Loop)
temps-réel.
Fig 1. - La bibliothèque complémentaire ADUSB
•
Initialisation de la carte
Le module d'initialisation ne possède ni entrée ni sortie ni paramètres(pas de câblage à
prévoir, pas de double-clic sur le module!). Son fonctionnement est automatique: lors du
lancement de la simulation (simulation start) , la fonction est exécutée une fois . Un
compte-rendu textuel est donné dans la fenêtre de commande de Matlab (reconnaissance
du module ou absence).
Lecture d'une ou plusieurs entrées analogiques
Le module permet d'acquérir les valeurs des voies analogiques 0 à 7 du module ADUSB.
La valeur est retournée sous forme d'un vecteur (à démultiplexer pour un usage individuel
des signaux). Le paramétrage se fait par dialogue (double-clic sur la boite).
Ecriture d'une ou plusieurs sorties analogiques
Le module permet de transformer un signal numérique Simulink en signal physique sur le
boîtier ADUSB. Il est possible de sortir un vecteur à 2 composantes (sortie simultanée sur
les deux voies analogiques). Attention : les signaux doivent être strictement bornés entre 0
et 5V , tout dépassement provoquant une erreur d'exécution.
Fig 2. - Ecran de paramétrage des fonctions A/D et D/A
USTL - Master ASE M1 – 2009/2010
Travaux Pratiques Modélisation Identification des Processus
33
Simulation temps-réel
Par défaut, Simulink exécute les fonctions d'un schéma cycliquement avec incrémentation du
temps apparent à chaque boucle. L'incrément de temps ou step est défini par Simulink pour donner le
résultat de simulation le plus efficace possible.
Pour commander un processus, il est impératif de définir un pas d'exécution fixe (au moins égal au
temps nécessaire à l'exécution des entrées/sorties physiques et du calcul). Pour cela, paramétrer
l'écran Simulation/parameters en pas fixe avec un pas suffisant :
Fig 3. - Ecran de paramétrage de la simulation et module d'exécution temps-réel
Pour une exécution temps-réel, il faut de plus vérifier que le temps de cycle correspond
physiquement à l'horloge du PC. Cette fonctionnalité est apportée par le module Timer Function. Son
fonctionnement est automatique: il provoque une attente jusqu'à ce que l'incrément de temps soit
écoulé. Il ne demande aucun paramétrage ni câblage: la valeur du step est directement transmise à ce
module.
Attention :
ne pas donner une priorité totale à l'exécution de Simulink: un choix à priorité trop
élevée (accessible par double-clic dans ce module) peut amener à perdre toute reprise en main du PC
(seule possibilité: arrêt par coupure du secteur et pertes de toutes les données courantes!)
Ce document a été entièrement réalisé sous OpenOffice 3
USTL - Master ASE M1 – 2009/2010