33
MASTER ASE 1ère année Unité "Modélisation & Identification" Travaux Pratiques 2009-2010

MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

  • Upload
    lynhu

  • View
    228

  • Download
    1

Embed Size (px)

Citation preview

Page 1: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

MASTER ASE 1ère annéeUnité "Modélisation & Identification"

Travaux Pratiques 2009-2010

Page 2: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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

2

Page 3: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

TP n° 1

MESURE DIRECTE DE LA REPONSE D'UN SYSTEME

I - BUT DE LA MANIPULATIONCette 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).

Rappel : 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 1er ordre alors que le système étudié est du 2ème ordre.

II - MATERIEL DE MANIPULATIONLe matériel de manipulation se compose des éléments suivants :

Fig 1. - Le matériel de manipulation

USTL - Master ASE M1 – 2009/2010

3

Page 4: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus 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 2T soit 0,4s et relever la réponse . Les mesures seront rassemblées dans le vecteur H .

USTL - Master ASE M1 – 2009/2010

4

Page 5: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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 :

L p =K e

−T r P

1 p

La réponse théorique d'un tel système à un échelon de hauteur e1 est

S p = K e1e−Tr p

p1 p, ce qui correspond à : s t = K e1 1 − e

−t−T r , réponse à forme

exponentielle de valeur finale s1 = K e1 .

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.

Fig 2: Réponse du modèle du 1er ordre avec retard

USTL - Master ASE M1 – 2009/2010

5

s(t)s1

t0 0'

τ

Page 6: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

On remarque que : K =s1

e1= lim

t∞

s 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−

t−T r aux instants

définis par T

Conseil : le calcul se fait sans boucle, Matlab étendant les fonctions usuelles aux vecteurs et matrices ; pensez à annuler les valeurs pour tT 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 s1 .

USTL - Master ASE M1 – 2009/2010

6

Page 7: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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 t2 − t1

Le modèle est considéré comme valide si T r

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://www-hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm

USTL - Master ASE M1 – 2009/2010

7

s(t)s1

tt1

0

0.40

0.28

t2

Page 8: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

• 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

8

Page 9: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

ANNEXE TP1

DESCRIPTION DU BOITIER D'ENTREE-SORTIES

ADUSB

I - SPECIFICATIONSLe 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 analogiquesLa 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

9

Page 10: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

Sorties AnalogiquesLa 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 logiquesLe 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 MATLABL'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 carteSyntaxe:

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

10

Page 11: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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 ); acquisition sur la voie 0 [x1 x2 x3] = adusb('analog_in', 4 , 3 ) ; acquisition simultanée des entrées 4, 5 et 6 y = adusb('analog_in' , 7 , 0 , 1 ) 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 ) ; met la sortie 1 à 3Vadusb('analog_out' , [ 3 ; 1 ] ) ; met la sortie 0 à 3V et la sortie 1 à 1V

USTL - Master ASE M1 – 2009/2010

11

Page 12: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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'); % hardware initialization t_wait = 0;t_ini = cputime ; % start time

for i = 1 : 100 ; % <-- here, analog_output for example

S(i) = adusb('analog_in' , 0); %analog input of channel 0T(i) = cputime - t_ini; %exact time value is stored for plotting

while t_wait < i*delta_t % waiting loopt_wait = cputime - t_ini;

end; % wait for time value i*delta_t

end % end of acquistion loop

plot (T, S ) % 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

12

Page 13: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

TP n° 2

MESURE DE LA REPONSE D'UN SYSTEME PAR SBPA

I - BUT DE LA MANIPULATIONLe 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.

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 aléatoires, la séquence étant formée de 2N − 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 séquence est donc cyclique et se répète tous les 2N − 1 coups d'horloge.

USTL - Master ASE M1 – 2009/2010

13

Fig 1: Registre générateur de séquence SBPA

D Q1 D Q2 D Q... D QN

rebouclage

Horloge

Fonction com binatoire

séquence

binaire

Page 14: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des ProcessusPour 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 L = 2 N − 1 ; à partir de la 2 N 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 séquences de longueur maximale L = 2 N − 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] ; % polynome de bouclage pour N = 6N = size(pboucle,2) ;register = ones(1,N ) ; % definition et initialisation du registre a decalageZ = [] ; %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

14

Page 15: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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) % trace en echelon title(['Sequence binaire pour N = ' num2str(N)])

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 =1T ∫0

Tx t x t−dτ

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

15

Page 16: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des ProcessusDans 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 = a2 , 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 :

XX k T = 1L∑1

L

x iT − k T x iT avec 0kL−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 kT 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

des abcisses représente les fréquences jusqu'à la pulsation 2T

(2 x fréquence de Shannon)).

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

16

Page 17: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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] .

Appliquer (sortie analogique) au processus les 2N−1 valeurs du signal SBPA avec une période d'échantillonnage T = 0.5s et relever (entrée analogique) simultanément la sortie du processus (il y a 2N−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

17

Page 18: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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 τ =1T ∫0

Ts t e t−dt

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 d'où XY τ = ∫0

Th 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 ≃ ∫0

Th 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 :

XY kΔT =1L∑1

L

s iΔT e iΔT−kΔT

La réponse impulsionnelle a pour expression discrète:

hkT ≃1

a2T1L∑1

L

s iT e iT −kT d'où hkT = 1a2 Δt

XY kT

On remarque la présence d'un coefficient1

T dont la justification n'est pas donnée dans cet

exposé.(voir P. Borne "Modélisation et Identification des Processus" page185 tome 2 Editions Technip 1992)

USTL - Master ASE M1 – 2009/2010

18

Page 19: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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

h k T =1

a2TXY k T du système en utilisant corrxy(signal1,signal2) pour le

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

19

Page 20: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

TP n° 3

IDENTIFICATION D'UN SYSTEME MODELISE PAR ARMA

I - INTRODUCTIONLa 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ée-sortie 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 ARMALe 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:

a0 ymn a1 ymn−1 a2 ymn−2 ... a p ymn−p = b0 un b1 un−1 ... bq un−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:

a0 ymn a1 ymn−1 a2 ym n−2 ... a p ym n− p = b0 un−r b1 un−r−1 ... bq un−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 ARMAL'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

20

Page 21: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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 ym du modèle à l'instant k connaissant la suite des entrées peut s'écrire (en supposant que a0 =1 ):

ym n = −a1 ymn−1 − a2 ymn−2 −...− a p ym n−p b0 un b1 u n−1 ... bq u n−q Soit v(i) l'écart entre la sortie réelle y du processus et la sortie ym du modèle à l'instant i:

v i = y i − ym i

L'équation précédente devient:

yn = −a1 yn−1 − a2 yn−2 −...− ap yn−p b0 u n ... bq u n−q e n

avec en = −vn a1 vn−1 a2 vn−2 −...− a p vn−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:

[ yN yN−1

...y p1 ] = [−yN−1 y N −2 ... −yN−p uN ... u N −q

−yN−2 y N −3 ... −y N −p−1 u N −1 ... uN −q−1 ... ... ... ... ... ... ...

−y p −y p−1 ... − y1 u p1 ... u p1−q] [a1

...a p

b0

...bq

][ ε N ε N −1

...ε p1 ]

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

21

Page 22: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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:

J = ∑i=p+1

N

i2 = T = Y −H T Y −H

Le minimum de J est obtenu en recherchant la valeur θ qui annule les dérivées partielles par

rapport à chacune des composantes de soit∂ J∂

= 0 et l'optimum de est donné par :

=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) :

peG

Tp

τ+−

1Bloqueur y(t)

sortiephysique

Teu(t)

depuiscalculateur

u*(t) u(nTe)

entréephysique

Tey(nTe)

verscalculateur

avec K gain statique, τ constante de temps et T r retard pur .

USTL - Master ASE M1 – 2009/2010

22

K

Page 23: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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 n1T 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 =− a1 y n − 1 b1 u n − 1 (pour r = 0 )

avec : a1 =−D b1 = K 1 − D D = e−T 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 MANIPULATIONLa 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 b1 du modèle discret (utiliser Matlab pour faire les calculs et les insérer dans le script du TP).

On rappelle que : a1 =−D b1 = K 1 − D avec D = e−T e / .

USTL - Master ASE M1 – 2009/2010

23

Page 24: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

Simulation du modèle de récurrence(60mn)

• Avec les valeurs de a1 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 =− a1 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 1puis 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 =− a1 y n − 1 b1 un− 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

24

Page 25: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

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)];endtheta = 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; endthetan

% 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); endplot(T,Ysim, 'r')

USTL - Master ASE M1 – 2009/2010

25

Page 26: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

TP n° 4

COMMANDE D'UN SYSTEME AVEC RETARD

I - PRESENTATION DE LA MANIPULATIONL'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 sous la forme d'un terme e

−T r p 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:

L p =K e

−T r 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

26

Page 27: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

Système en boucle ouverte (45mn) Construire avec SIMULINK un système à retard pur en boucle ouverte de la forme:

L p = K e−T r p

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

27

Page 28: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des ProcessusLes 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 4T r K

4T r K

0.8T r K

T i ∞ τ τ

T d 0 0 0.4T 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

28

Page 29: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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 :

CTM p = K 1− e−T r p

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 = K1 p

fig. 4: Schéma équivalent à la correction avec CTM

USTL - Master ASE M1 – 2009/2010

29

Page 30: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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 temps-ré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

30

Page 31: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des ProcessusA 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

31

Page 32: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

ANNEXE TP4- UTILISATION 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 carteLe 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

32

Page 33: MASTER ASE 1ère année - bonnet/identif/TP_Identif.pdf · hadoc.lag.ensieg.inpg.fr/hadoc/continu/n00/caldwell.htm USTL - Master ASE M1 – 2009/2010 7 s(t) s1 t t1 0 0.40 0.28 t2

Travaux Pratiques Modélisation Identification des Processus

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

33