Cours LabView : instrument virtuel, Principes et structures
Axe Instrumentation 2006
Travaux pratiques d’Instrumentation Numérique
1. GENERALITES .3
1.a Déroulement des TPs ..3 1.b Contenu de ce document : .4 2.INTRODUCTION A LABVIEW .5
2.a Introduction ..5
2.b Aide ..5
2.c Construction d’un premier instrument virtuel : 5
2.d Principes de Labview ..7
2.e Techniques de débogage : .8
2.f Les structures (Palette Structures): 8
2.g Sous VIs ..14 2.h Conclusion : 15 3.L’ECHANTILLONNAGE 17
3.a La discrétisation dans le temps : ..18 3.b La discrétisation de la grandeur mesurée : .18 3.c Le théorème de la moyenne : .19
4. TP N°1 REGULATION NUMERIQUE DE TEMPERATURE .21
4.a Principe général: ..21
4.b Dispositif, action et mesure : .22 4.c Identification du processus : ..23 4.d La régulation PID : .26 5. TP N°2: DETECTION SYNCHRONE ..31
5.a But: .31
5.b Préambule : Analyse fréquentielle & signaux périodiques ..31
5.c Quelques outils disponibles : .33 5.d VIs à réaliser : ..34
6. TP N°3 : LIAISONS NUMERIQUES / ETALONNAGE ..39
6.a Introduction : .39
6.b Préambule : Incertitude de mesure, régression linéaire 39
6.c Utilisation d’une liaison série RS232 : .43 6.d Première réalisation: milliVoltmètre .46
6.e Deuxième réalisation : balance numérique .46
6.f Annexe : fonction Excel « DROITEREG » 49
P Breuil 2006
2
1. Généralités
1.a Déroulement des TPs
Ces travaux pratiques ont une durée de 7 séances de 3 heures. La première séance, d’initiation à l’environnement Labview, ne sera pas évaluée.
Les 6 autres seront partagées en 3 TPs tournants, chaque TP de 2 séances faisant l’objet d’une évaluation séparée.
Planning des TPs en fonction des groupes de binômes :
Séances | TP1 : Régul. température | TP2 : détection synchrone | TP3 : Liaison numérique, calibrage |
2 et 3 | A1, A2, A3 | A4, A5 | A6, A7 |
4 et 5 | A6, A7 | A1, A2, A3 | A4, A5 |
6 et 7 | A4, A5 | A6, A7 | A1, A2, A3 |
Au cours de ces 3 TPs, les élèves construiront un ou des programmes (Ou V.I. = Virtual Instrument) qui seront sauvés sur le disque dur dans le répertoire « Mes Documents\xx » où xx est le nom du binôme (ex : A2). Si plusieurs VIs sont demandés, chacun pourra être construit à partir du précédent mais sera sauvegardé séparément sous un nom explicite et non fantaisiste.
Le travail demandé est dans les zones de texte encadrées et grisées de ce document.
Les VIs seront abondamment commentés, et les résultats complémentaires (réponses aux questions, calculs hors labview etc…) seront fournis sous forme de fichier Word ou Excel (notamment pour les TPs 1 : courbes de réponse et 3 : calculs et données d’étalonnage)
Remarque : il est impossible, pour des raisons pratiques et de licence de travailler sur les VIs en dehors des séances de TPs.
Il sera tenu compte lors de l’évaluation, de la démarche et de l’autonomie des élèves, du travail d’équipe, et il n’est pas forcément nécessaire de tout réaliser pour obtenir une bonne note.
Ces séances doivent être considérées comme des examens, c’est à dire que le travail ne doit être fait que pendant le temps imparti. Il sera aussi tenu compte, lors de l'évaluation, des retards et absences non justifiés.
Enfin, du matériel informatique et électronique parfois onéreux ou pouvant présenter des dangers (rares !) est mis à disposition : il est vivement recommandé aux élèves de toujours agir en connaissance de cause (une documentation complète peut être mise à leur disposition).
1.b Contenu de ce document :
Le chapitre 1 contient un tutorial Labview qui sera exécuté pendant la première séance, non évaluée.
Le chapitre 2 « l’échantillonnage », contient les principales règles et propriétés de l’échantillonnage, il est nécessaire de l’avoir assimilé avant d’aborder le premier « vrai » TP (donc avant la deuxième séance).
Les 3 autres chapitres sont relatifs aux 3 TPs et ne seront donc pas forcément vu dans l’ordre. Il est très fortement conseillé de les avoir lu, et d’en avoir assimilé les généralités, avant d’aborder le TP correspondant.
En tout état de cause, ne pas se lancer dans la programmation des instruments avant d’avoir lu et compris le document correspondant.
2. Introduction à Labview
2.a Introduction
Labview est un logiciel développé par National Instruments pour l’instrumentation. Il se caractérise par une programmation entièrement graphique.
De très nombreuses fonctions sont disponibles, notamment pour la génération, l’acquisition et le traitement du signal. Pensez à explorer les différents menus avant de réécrire les fonctions qui existent peut-être déjà.
(Pensez aussi à utiliser les menus « popup » (ou « surgissant ») avec le bouton droit de la souris.
2.b Aide
2 possibilités d’aide en ligne:
La fenêtre d’aide : menu Aide – Visualiser l’aide ou Ctrl-H : si cette aide est active, il suffit de placer le curseur sur un élément pour avoir une aide simplifiée.
Pour une aide plus complète : menu Aide – référence en ligne (et notamment Labview Référence - Functions & VIs).
Le jeu de manuels Labview est à votre disposition.
2.c Construction d’un premier instrument virtuel :
Cliquer sur « Nouveau » puis « VI vide ». 2 fenêtres composant un « instrument virtuel » (VI = Virtual Instrument )sont alors crées :
Une face avant (initialement grise) reproduisant les différents contrôles (action de l’utilisateur vers l’instrument, donc entrée d’une variable) et les différents indicateurs (visualisation d’une variable).
Un diagramme fonctionnel (initialement blanc) où l’on retrouve les contrôles, les indicateurs ainsi que des opérateurs. Ce diagramme est le programme.
On peut passer de l’un à l’autre par Ctrl-E ou par le menu Fenêtres.
Faire apparaître, si ce n’est déjà fait, la palette d’outils (Fenêtre / Palette d’outils) :
On va réaliser un instrument qui affiche une valeur saisie à l’aide d’un bouton et bruitée.
Ouvrir un nouveau VI (Fichier - Nouveau). Cliquez-droit dans la fenêtre « face avant » (fond gris) pour ouvrir un menu popup « Commandes ». Choisissez un indicateur de type « Vumètre » dans la palette « Numérique » et baptisez le « Signal », soit immédiatement après sa création soit en utilisant l’outil »d’édition chaîne ». Faire apparaître l’afficheur numérique en cliquant avec le bouton droit sur le Vu-mètre et en choisissant « éléments visibles / afficheur numérique »
Graduez le Vumètre de 0 à 100 (à l’aide de ). Faire la même chose avec un bouton rotatif. Basculez sur la fenêtre diagramme fonctionnel (Ctrl-E) (« diagramme », la blanche). |
Les 2 éléments crées apparaissent. Le premier est un « indicateur », servant à visualiser une variable, le deuxième une « commande », servant à saisir une variable.
cliquez-droit dans la fenêtre et dans le menu « Numérique », placer les 3 opérateurs (multiplieur, additionneur et aléatoire) et la constante ( ), comme ci-dessous. Remarquez qu’en « promenant le curseur de la souris, celui-ci change de forme ( ) lorsqu’il passe sur des zones sensibles des éléments dits « terminaux ». En cliquant, placez les « cables » comme ci-dessous. |
Commande |
indicateur |
constante |
Il est pratique d’ouvrir la fenêtre Help (Ctrl-H) pendant cette étape pour voir plus précisément les connecteurs des objets que l’on soude : en effet, ils clignotent dans cette fenêtre lorsque l’on passe dessus avec l’outil câblage.
Raccourci : Pour créer et câbler plus rapidement une constante sur une entrée d’un sous-
VI ou d’un opérateur, il est possible de faire un click droit avec l’outil puis utiliser le sous menu « Créer / Constante », on peut alors saisir la valeur de la constante si la valeur par défaut n’est pas la bonne. Il est possible, de la même manière, de créer et câbler un contrôle sur une entrée d’un sous-VI ou un indicateur sur une sortie d’un sous-VI. Il sont alors crées sur la face avant (mais n’importe où !).
Exécuter avec l’un ou l’autre des boutons .
(Attention, il ne s’agit que d’une simulation, pour le moment…)
Notez, à partir de la palette « fonctions » de la fenêtre « diagramme fonctionnel » et de ses sous-palettes, la très grande quantité de fonctions disponibles (plusieurs centaines).
2.d Principes de Labview
Les objets placés sur la « face avant » sont les variables du programme (A part bien sur les décorations). Ils peuvent être soit des contrôles, ou variables d’entrée, qui permettent à l’opérateur de « rentrer » des données, soit des indicateurs, ou variables de sorties, qui permettent de visualiser des données.
Le diagramme contient, outre les représentations des contrôles et indicateurs, des opérateurs ou sous-VIs que l’on peut considérer comme les procédures du programme. Ces éléments sont reliés par des connexions qui représentent les flux de données : ces flux sont sortant pour les contrôles, rentrants pour les indicateurs et rentrant et/ou sortant pour les opérateurs et sous-VI.
La condition nécessaire pour qu’un opérateur soit exécuté (et donc que ses sorties soient ensuite disponibles) est que toutes ses entrées soient disponibles. Il en est de même pour les indicateurs. Ainsi, dans l’exemple précédent, l’indicateur « Vumètre » est dépendant de l’opérateur addition, lequel est dépendant du bouton et du multiplicateur .
Labview est « multitâches », ce qui signifie que plusieurs groupes d’éléments sans relation de dépendance entre eux seront exécutés « simultanément ».
2.e Techniques de débogage :
Sondes
Afficher le diagramme pendant l’exécution d’un VI. Faites surgir un menu popup d’un fil du programme que vous avez réalisé et choisissez "Sonde". La sonde affiche en permanence les données correspondant à la liaison où elle est attachée.
Observation des flux de données
Revenir au diagramme. Cliquer sur le bouton ampoule pour qu'elle s'allume. Lancer l'exécution. Des points mobiles indiquent le flux des données le long des connections. Egalement, des indications sur les valeurs sortantes apparaissent sur les noeuds actifs.
Une expérience de ce type montre bien la logique de la séquencialité dans Labview. Chaque noeud peut s’exécuter dès que toutes les données sont arrivées aux bornes d’entrée. La disposition géométrique des noeuds dans le diagramme n’a aucune influence.
Il existe aussi des possibilités de point d’arrêt.
2.f Les structures (Palette Structures):
Boucle « While » (tant que)
Complétons le VI précédent. Un sélecteur en face avant permettra d’ajuster la période d’affichage entre 0 et 2 s et un interrupteur permettra d’arrêter.
Disposer les éléments en face avant suivant le schéma ci-dessous. L’afficheur est du type « graphe déroulant » (menu popup Commandes - Graphes). C’est donc un affichage point par point, contrairement à « graphe » qui affiche tout un tableau d’un seul coup.
Contrôle Numérique |
Contrôle Booléen |
(palette « structures », cliquer puis glisser autour des éléments…)
Il y a une borne lecture d’index et une borne écriture de condition de fin de boucle .
La boucle s’exécute tant que le booléen branché sur est « false » .
Le diagramme à réaliser est le suivant :
d’une itération de cette structure soit au minimum de 500 ms.
Il peut arriver qu’il soit nécessaire de changer un contrôle en indicateur ou réciproquement, cela se fait par le menu popup. Remarquer que les contrôles sont représentés par un trait plus gras. Remarquer aussi, dans le premier cas ci-dessous, le trait pointillé indiquant un pro-
Cliquer alors sur pour avoir des explications sur les causes du problème. Les fils « mauvais » (en pointillé) superflus (et parfois bien cachés…) peuvent tous être effacés avec « Edition / Supprimer les fils incorrects » ou Ctrl B.
Remarquez que les couleurs correspondent aux types : bleu = entier, orange = réel, violet = string, vert = booléen….
Nous allons maintenant chercher à afficher, en plus, la valeur moyenne de toutes les valeurs depuis le début :
Il faut donc que dans chaque itération de la boucle on ait accès à la valeur de la somme lors de l’itération précédente. Cela se fait en utilisant un registre à décalage que l’on fait apparaître à partir d’un popup ( clic droit) sur un des bords verticaux de la boucle : Sélectionner « Ajouter un registre à décalage ».
Il apparaît les symboles sur ces bords. La borne de droite est l’entrée où l’on va brancher la valeur de somme actuelle, celle de gauche est la sortie où la récupère la même valeur mais de l’itération précédente. |
Ce registre doit être initialisé « par la gauche » à l’extérieur de la boucle.
|
|
Le diagramme à obtenir est le suivant :
L’afficheur peut accepter plusieurs entrées si elles sont regroupées en « cluster » (ensemble de variables pouvant être de types différents, « struct » du C).
Le diagramme ci-dessus contient une petite erreur…
De retour sur la face avant, vous pouvez personnaliser votre afficheur en lui rajoutant différentes options afin d’obtenir quelques chose ressemblant à :
On a affiché ici la « légende » et la « palette » de l’afficheur (menu popup). La légende est redimensionnable à la souris, n’oubliez pas son menu popup.
Boucle « N fois (For Loop)
Cette boucle effectue un certain nombre de fois ce qu’elle contient :
est la borne d’entrée où l’on câble le nombre d’itérations désiré, est la borne de sortie indiquant l’indice de l’itération en cours.
Cette structure accepte aussi la temporisation ainsi que les registres à décalage.
Analyse/Traitement du signal / génération de signaux / motif de rampe |
On peut traiter facilement les éléments d’un tableau que l’on câble directement à travers la structure :
Ce VI calcule et affiche la racine carrée des éléments d’un tableau
À gauche, un tableau rentre dans la boucle par un « tunnel ». Le trait épais représentatif d'un tableau unidimensionnel s'est transformé en trait fin correspondant à la i-ième valeur du tableau. La borne N de la structure n'est pas connectée. Le nombre d'itérations est déterminé automatiquement d'après la taille du tableau. Inversement, quand on connecte un scalaire à l'intérieur de la boucle vers l'extérieur, on récupère automatiquement un tableau de dimension N; dans la figure ci-dessus, cela correspond à la sortie d'une connexion à droite vers un afficheur graphique.
Ce processus (auto-indexing) peut être désactivé par l'option "Désactiver l’indexation" du menu popup du tunnel (petit rectangle noir sur le bord de la structure, où les connexions pénètrent).
Ne pas réaliser cet exemple « pédagogique » à l’efficacité douteuse : En effet, on aurait pu faire l’économie :
- Soit du générateur de rampe en connectant l’indice de boucle à la racine carrée,
- Soit de la boucle en connectant directement l’opérateur « racine carrée » sur le tableau. Ainsi, beaucoup de traitements de tableaux peuvent être faits sans passer par des opérations élément par élément ; par exemple, additionner 2 tableaux de même taille se fait simplement avec un opérateur addition. On peut aussi faire des opérations mixtes scalaire/tableau (par exemple multiplier tous les éléments d’un tableau par une même constante).
Réaliser un VI affichant (à l’aide d’un « grapheXY ) sous forme de courbe paramétrée à 100 points, un cercle. On devra alors construire 2 tableaux (X et Y) et les assembler (cf aide « Ctrl H »).
Structure « Condition » (Case ou If then Else)
C’est une fenêtre à multifaces à laquelle doit être relié un booléen (issu souvent d’un opérateur comparaison, la fenêtre a alors 2 faces : « true » et « false »), soit un entier (autant de faces que l’on veut, équivalent du Case du Pascal).
(ne pas réaliser)
Application : Réaliser le bornage supérieur, ou écrêtage (limitation à une valeur maxi) puis l’affichage d’un signal sinusoïdal . Ne pas l’effacer afin de l’utiliser un peu plus loin.
Structure Séquence
Le diagramme suivant contient 3 éléments totalement indépendants (et bidons , ne pas le réaliser). Rien ne permet de savoir dans quel ordre ces 3 éléments seront exécutés, ils seront même probablement exécutés simultanément :
(ne pas réaliser)
Si cet ordre est important pour le bon déroulement du programme, on doit alors utiliser une structure « séquence » :
(ne pas réaliser)
On peut rajouter, supprimer ou déplacer des étapes avec un click droit sur un bord de la séquence.
Des variables peuvent être passées d’un étape aux étapes suivantes avec un click droit sur un bord et « Ajouter une variable locale de séquence ».
Pas d’exemple à réaliser !
Structure formule
Il peut être parfois fastidieux de « câbler » une formule complexe. Aussi les concepteurs de Labview ont prévus une exception à la programmation graphique : La structure « Boite de calcul » permet de taper directement une formule.
Le menu popup sur le bord de la structure permet de créer les éléments « entrée » et « sortie ». Les textes identificateurs que l’on doit mettre dans ces bornes doivent être repris à l’intérieur pour taper la formule.
Chaque formule doit se terminer par « ; », voir l’aide « Ctrl H » pour connaître les opérateurs et fonctions disponibles.
Vous pouvez réaliser le VI suivant :
(il y a un problème de syntaxe dans l’exemple ci-dessus que vous essaierez de résoudre avec l’aide en ligne…)
Remarquer que les 2 tableaux unidimensionnels (vecteurs) sont réunis en un tableau bidimensionnel (matrice) grâce à Construire un tableau dans Tableaux redimensionné à la souris).
2.g Sous VIs
Il est possible de transformer facilement tout ou une partie d’un VI en un « sous-VI » (fonction avec passage de variables par valeur) utilisable dans un autre VI appelant.
Dans ce cas, tout ou une partie des contrôles seront les variables d’entrée du sous-VI, et les indicateurs deviendront les variables de sortie.
Pour cela, Sélectionner la partie du diagramme à transformer en sous-VI, menu « Edition / Créer un sous-VI ». Le sous VI est créé, vous pouvez, en cliquant-droit sur l’icône en haut à droite de la face avant modifier les connecteurs ou redessiner l’icône. Il est alors nécessaire d’enregistrer le sous-VI.
Le sous-VI peut être utilisé à partir de la fenêtre diagramme du VI appelant grace au bouton du menu popup “Fonctions” qui permet de charger tout fichier VI.
Exemple: Réaliser un sous VI “écrétage” à l’aide du VI réalisé plus haut (3 entrées et 1 sortie).
Important : par défaut, Labview ne sauve pas les valeurs des controles, même si elles ont été modifiées. Pour conserver de nouvelles valeurs (qui deviendront celles par défaut), cliquer sur le menu « Execution / Désigner les valeurs actuelles par défaut » puis enregistrer le VI.
2.h Conclusion :
Vous connaissez maintenant environ 10% des possibilités de Labview, alors explorez, déroulez les menus, surgissez les popup !
Pour approfondir : livre « tutorial », en Français ,
Les excellents exemples de ni\Labview\exemples\
Les manuels de référence.
16
3. l’échantillonnage
L’échantillonnage est l’opération qui consiste à faire l’acquisition d’un signal à l’aide d’un système numérique.
Soit un signal continu réel (tension par exemple) V(t) : l’échantillonnage va consister à numériser périodiquement la valeur de ce signal. On effectue alors une double discrétisation de ce signal :
Discrétisation dans le temps : le signal ne sera connu que toutes les T secondes, T étant la période d’échantillonnage, et le nombre de points acquis sera fini (pour une durée d’acquisition finie),
Discrétisation de la grandeur mesurée : Apres numérisation, une valeur correspond toujours à un nombre fini de bits (ou d’octets…), d’autre part la « plage de mesure » d’un dispositif d’échantillonnage est finie, par conséquent, le nombre de valeurs mesurables différentes est aussi fini. Le plus petit écart mesurable est « la résolution » du dispositif.
Ces discrétisations sont donc des sources d’erreurs :
3.a La discrétisation dans le temps :
L’utilisateur peut généralement choisir la fréquence d’échantillonnage (inverse de la période), jusqu’à une limite supérieure, fonction du matériel utilisé (TPs 1 et 2 : carte d’acquisition, 200 kHz, TP3 : module d’acquisition , une acquisition toutes les 60 ms).
Si le signal échantillonné est rapidement variable, son échantillonnage peut alors poser quelques problèmes. Un échantillonnage sera dit correct si l’on peut, à partir des seuls points échantillonnés, reconstituer le signal (par exemple par interpolation entre les points) . Supposons que ce soit un signal sinusoïdal de fréquence f : Le théorème fondamental de l’échantillonnage, dit « théorème de Shannon », nous dit que :
L’échantillonnage d’un signal de fréquence f doit se faire avec une fréquence d’échantillonnage Fs supérieure à 2f.
Le non suivi de cette règle essentielle entraîne pratiquement à coup sur des résultats aberrants.
L’illustration et la justification pratique de ce théorème seront vus durant le TP2, la démonstration sera vue pendant le cours d’UP1
3.b La discrétisation de la grandeur mesurée :
La discrétisation intervient lorsque les valeurs finales constituent un ensemble discret. On peut alors définir un pas de mesure ? (ou parfois digit, ou LSB, Least Significant Byte) qui est le plus petit écart mesurable.
C’est la résolutiondu système d’acquisition, à ne pas confondre avec l’incertitude, ou la sensibilité.
On introduit alors une erreur aléatoire, dite erreur de discrétisation. On montre que son écart-type est : ?
?d =
2 3
18
3.c Le théorème de la moyenne :
De plus en plus souvent, le système d’acquisition est utilisé a des performances permettant d’avoir une fréquence d’acquisition grande par rapport à la cadence d’acquisition nécessaire pour une application donnée. Ainsi, pour le TP1 (régulation de température), 10 mesures par seconde suffisent alors que le système est capable d’échantillonner à 200 kHz !
On peut mettre à profit ces capacités en moyennant un grand nombre de mesures, en effet, le théorème de la moyenne nous indique que :
Si l’on prend comme nouvelle mesure la moyenne de n mesures élémentaires consécuti-
1 n
ves : x = ? xi
n1
Si ces n mesures ont une composante d’erreur aléatoire et indépendante d’écart-type ?,
Alors l’écart-type de la contribution de cette erreur sur la moyenne s’écrit :
?(x)
?(x) =
n
Ceci permet de réduire considérablement la composante aléatoire et indépendante de l’erreur (appelée parfois « bruit »), mais est bien sur sans effet sur les autres sources d’erreur (erreur d’étalonnage, dérives lentes etc…). De plus, l’acquisition dure n fois plus longtemps.
20
4. TP N°1 Régulation numérique de température
Le but de la régulation de température est de maintenir la température T(t) d'un système la plus proche possible d'une température Tc(t) dite de consigne (choisie par l'utilisateur et pouvant être variable), et dans de bonnes conditions de stabilité. La régulation se fait en 3 étapes:
Mesure de la température T(t) à l’aide d’un Convertisseur Analogique – Numérique (CAN).
Calcul de l'action P(t) à appliquer au processus (= puissance de chauffage) par un algorithme approprié .
Application de cette action à l’aide d’un Convertisseur Numérique – Analogique (CNA).
Ce cycle est appliqué périodiquement avec une période dite période de régulation, inférieure à la seconde dans ce cas.
Les notions vue au cours de ce TP seront acquises plus en détail lors du cours d’UP3, on pourra voir aussi :
4.b Dispositif, action et mesure :
On dispose d’une micro-plaquette chauffante (partie mesure : maxi environ 200°C, attention, l’élément chauffant peut atteindre 800°C !) dont on peut mesurer la température à l’aide d’un thermocouple.
La plaquette est chauffée par une source de tension issue de la voie 0, amplifiée en courant, du convertisseur numérique analogique 0 –10 V. Il est donc possible de piloter la puissance de chauffage à l’aide de Labview.
On utilise pour la mesure de température un thermocouple de type K (Chromel – Alumel) collé près de la source de chaleur. Un thermocouple est un capteur fournissant une tension sensiblement proportionnelle à la différence de température entre le point chaud (« soudure chaude ») et la soudure avec le reste du circuit (« soudure froide »). L’intérêt du thermocouple est qu’il permet de mesurer jusqu’à plus de 1000 °C.
Mais il ne mesure qu’une différence de température, il est donc nécessaire de connaître la température T0 de la soudure froide, proche de l’ambiante, à l’aide d’un autre capteur (dit CSF « Compensation de Soudure Froide »), de type LM35, fournissant une tension proportionnelle à la température T0, mais ne fonctionnant qu’en dessous de 100 °C.
Le signal du thermocouple (type « K », soit environ 40µV/°C) est envoyé sur la voie 0 du convertisseur analogique numérique (carte 6024 de National Instruments).
DE même, la voie 1 reçoit le signal « de soudure froide » issu d’un capteur semiconducteur (dit de type « IC », il s’agit ici d’un LM35 délivrant 10 mV/°C).
Réaliser un VI permettant d’émettre une action provenant d’un contrôle et de visualiser l’évolution de la température. On essaiera d’améliorer le rapport Signal/Bruit de la mesure tout en veillant à ce que celle-ci reste de courte durée (< 100 ms). Pour cela, on exploitera le théorème de la moyenne (p 19).
Vérifier et éventuellement corriger « l’offset » du thermocouple (valeur de tension à froid qui doit être nulle)
On veillera aussi, et ceci est valable pour les exercices suivant, à ce que l’arrêt du programme par un bouton adéquat provoque l’arrêt du chauffage.
Les outils nécessaires à l’acquisition et à l’action sont dans les palettes « Acquisition de données / Entrées analogiques, Sorties analogiques, Conditionnement de signaux » :
Outils d’acquisition avec carte National Instruments : La carte d’acquisition est du type « NI-PCI 6024E » (caractéristiques en annexe 2) qui utilise des outils situés dans le menu : « Mesure NI / DaqMX… »
Pour toute opération d’acquisition ou de génération, on utilisera plutôt l’outil de
« l’assistant DAQ » disponible dans le menu de fonctions (Mesures NI / DAQMX
/ Assistant DAQ). Il suffit alors de choisir « Entrée analogique » (mesure de tension) ou « Sortie analogique » (génération de tension), puis « Tension », puis de sélectionner la ou les voie(s) utilisées, dans le bon ordre (sélection multiple avec touche Ctrl). Modifier alors éventuellement la ou les gammes d’entrées, le nombre de points (« échantillons à lire » et la fréquence d’échantillonnage (maxi 200000 Hz) .
Les 2 mesures de tension seront alors converties en température à l’aide de l’outil « Mesure NI / Acquisition de données / Conditionnement de signaux » :
Calcul température à partir des signaux du thermocouple et du CSF. Cliquer avec le bouton droit sur les connecteurs de type de capteur et sélectionner « créer une constante » afin de pouvoir choisir le type. |
4.c Identification du processus :
Processus |
Action X(t) Mesure Y(t)
La fonction de transfert d’un processus permet de calculer la mesure Y(t) en fonction de l’action X(t). Son étude théorique fait appel à la transformée de Laplace pour les systèmes continus et la transformée en Z pour les systèmes échantillonnés (qui seront vu dans le cadre de l’UP2).
L’identification est une modélisation de comportement du processus qui permet d’écrire la fonction de transfert et de régler facilement les algorithmes de régulation. Elle se fait en 2 étapes :
1 : Détermination du type de loi physique à laquelle obéit le processus : Dans notre cas, un processus de type « Ordre 1 plus retard » (système obéissant à une équation différentielle d’ordre 1, suivi d’un retard pur, cas le plus courant) est une bonne approximation :
1
CdT = P(t)dt ? (T ?T0)dt , avec un temps de retard trGs
(C = capacité calorifique, P=puissance, T0=T ambiante)
Le retard tr est fonction de la conductivité thermique, de la capacité calorifique et de la géométrie.
La réponse à une action échelon (P(t)=0 si t<0 et P(t)=P si t>0) est dans ce cas:
?t ?tr ?
T(t)= GsP+(T0 ?GsP)exp?? ? (1) avec ?= C GS
2 : Détermination des constantes du modèle à partir de la réponse à un échelon d’action. Par soucis de simplification, on considèrera par la suite que l’action est la tension appliquée V (au lieu de la puissance P).
Les 3 paramètres à évaluer sont donc :
Gs, gain statique car T=GsV lorsque le régime permanent est atteint (On suppose que la loi T=f(V) est linéaire, ce qui est généralement une grossière approximation, et qu’il n’y a pas de perturbations, en fait, le gain statique dépendra un peu de la température).
?, constante de temps du système : Si C est la capacité calorifique, alors ?=CGs. ? peut être déterminée à partir de la tangente au point de départ, si l’on connaît le gain statique, ce qui n’est pas toujours évident.
tr, retard pur du système (noté parfois td, « delay ») : il dépend de la conductivité thermique des matériaux et de la géométrie du système, notamment de la distance entre la source de chauffage et le capteur. De plus, on peut considérer, en première approximation, que la période de régulation, ?t, s’ajoute au retard.
Travail à effectuer :
On considérera que la plaquette est un « ordre 1 avec retard » : Déterminer les 3 paramètres Gs, tr et ? à l’aide d’un VI permettant de visualiser la réponse à un échelon d’environ 50% de la puissance maxi. On soignera tout particulièrement le retard qui, bien que faible, a une influence capitale sur la stabilité de la régulation. Ces paramètres seront utilisés plus loin.
2 méthodes sont possibles :
Méthode graphique classique (et dépassée ?) : voir schéma ci dessus. Cette méthode nécessite de connaître l’asymptote et peut donc être longue : il faut en effet enregistrer la température pendant une durée égale à au moins 3 ou 4 fois la constante de temps.
Méthode de moindres carrés (« fittage de courbe », méthode qui a été (ou qui sera…) vue dans l’UP « automatique ») : à l’aide du solveur d’Excel :
Il est alors nécessaire d’enregistrer les couples (temps, température) dans un fichier lisible par Excel (facile avec « E/S fichiers / écrire dans un fichier tableur »).
Sous Excel, ajouter, en plus des 2 colonnes venant du fichier (temps et température mesurée), une colonne de température calculée selon le formule (1) (attention à la gestion du retard !) et faisant appel aux 3 paramètres à déterminer, initialisés arbitrairement dans 3 cellules. Calculer dans une autre cellule la somme des carrés des différences (mesure – calcul).
Enfin à l’aide du solveur, minimiser cette dernière cellule en prenant comme cellules variables les 3 cellules paramètres.
La deuxième méthode est beaucoup plus précise et il n’est plus nécessaire d’attendre le régime permanent. Elle est de plus généralisable à d’autres types de processus.
4.d La régulation PID :
Afin de simplifier, on prendra comme action la tension de chauffage V(t) au lieu de la puissance. On pourra discuter de la pertinence de cette approximation.
La régulation PID est l’algorithme de régulation le plus utilisé. L’action PID est en fait la somme de 3 actions :
L’action Proportionnelle ("P"):
L'action P est proportionnelle à l'écart e(t) entre la consigne et le signal:
V(t)=Kp(Tc(t)-T(t))=K*e(t)
Si le « coefficient proportionnel » Kp (paramètre réglable) est suffisamment faible, le système est stable, mais la température ne peut alors pas atteindre la consigne (sinon, on aurait V(t)=0 !): On a alors un écart, dit écart de statisme:
?T=e(t)=V(t)/Kp
Si Kp est grand et si il existe un retard, le système se met à osciller d'où un choix dramatique entre la sta-
bilité et la précision Réponse à un échelon de consigne
Remarque : Ici, l’action est bornée (entre 0 et +10V), il s’agit d’une non-linéarité par rapport à la théorie du PID. Dans le cas plus général, Kp grand peut entraîner une divergence dramatique.
?? ?
On montre que celle-ci a lieu si KGS ? ?1.57
2 tR tR
Pour avoir en même temps une bonne précision et une bonne stabilité, on doit ajouter:
L’action Intégrale ("I")
Pour compenser petit à petit l'écart de statisme, on ajoute à l'action un terme d'intégration de l'écart consigne - signal .
On a alors:
? 1 ?
V(t) = Kp?e(t) + ?e(t)dt?
? ti ?
L'action I est caractérisée par le paramètre réglable ti, homogène à un temps, est sera d'autant plus forte que ti sera faible.
Pour corriger les variations brusques de température (ou de consigne), on peut ajouter encore:
L’action Dérivée ("D")
On ajoute à l'action un terme de dérivée de l'écart consigne - signal . L'action D est caractérisée par le paramètre réglable td, homogène à un temps, est sera d'autant plus forte que td sera fort.
On a alors l’algorithme PID complet :
V(t) = Kp*???e(t) + 1 *?e(t)dt +td * d(e(t)???
? ti dt ?
Soit, en termes « discrets » :
Vk = Kp???Ek +?tdt (Ek ? Ek?1)+?tit?j=k0Ej???, où ?t est la période de régulation.
?
?
(Par convention, le terme proportionnel Kp agit sur les 2 autres termes).
Il existe de nombreuses « recettes » permettant de déterminer les bonnes valeurs des paramètres PID, les principales étant :
D’après les paramètres d’identification du processus: (nécessité de faire une identification, pas toujours évidente) qui sont, pour un ordre 1 avec retard :
- La constante de temps ? (ou « inertie »), - Le retard pur tr,
- Le gain statique Gs(rapport température / action en régime « permanent »).
On peut alors estimer les valeurs permettant de réguler en respectant les critères dits de « Ziegler & Nichols »: « Système oscillant amorti d’un facteur 4 entre les 2 premières oscillations »
Kp = ti=2tr Gstr On pourra aussi essayer les critères dits « CHR0 » : | td=0.4 tr |
0.6? Kp = ti=? | td=0.5 tr |
1.2?
Gstr
D’après la méthode dites « des oscillations entretenues » (moins efficace que la précédente mais souvent plus facile à mettre en œuvre, car ne nécessite pas d’identification):
Régler le PID en proportionnel pur, puis augmenter progressivement Kp jusqu’à ce que le signal commence à osciller, on notera alors Kpl la valeur de Kp et t0 la période des oscillations : Les paramètres selon les critères de Ziegler et Nichols seront alors :
Kp=0.62 Kpl ti=0.5*t0 td=ti/5
Ces 2 méthodes, plus ou moins empiriques, (qui donnent d’ailleurs parfois des résultats différents) sont très approximatives et doivent être affinées au cas par cas.
Réaliser un VI de régulation PID. On pourra régler, à partir de la face avant : la consigne, les 3 paramètres de régulation PID ainsi que la période de régulation. Pendant le fonctionnement, on réglera les paramètres de régulation à partir d’une des 2 méthodes, puis on « affinera » empiriquement afin d’avoir une régulation :
1 : précise
2 : rapide (consigne atteinte rapidement)
3 : répondant « efficacement » aux changements de consignes ou aux perturbations (on pourra utiliser le ventilateur).
Mesure de la température de l’élément chauffant: (à faire si la partie PID est terminée…)
Une résistance de 1 ohm est insérée dans le circuit de chauffage, la mesure de la tension à ces bornes (connectées à la voie 2 de la carte d’acquisition) permet alors de mesurer le courant de chauffage. Il est alors possible de calculer en temps réel :
- la tension de chauffage et le courant de chauffage, et donc,
- la puissance réelle de chauffage et la résistance de chauffage
- Cette dernière étant en platine pur, il est possible de connaître la température de l’élément chauffant (le coefficient du platine est : 0.00385 °C-1)
Afficher ces informations en temps réel.
IMPORTANT : Penser, avant d’enregistrer votre travail, à faire « Exécution / Prendre les valeurs actuelles par défaut », faute de quoi vos valeurs de contrôles seraient perdues lors de la prochaine réouverture du VI.
30
5. TP N°2: DETECTION SYNCHRONE
5.a But:
A : Utilisation d'une carte d'acquisition pour l’acquisition d’un signal (oscilloscope) + analyse fréquentielle.
B : Application à la détection et à la mesure d'un signal périodique de référence connue, ce signal pouvant être noyé dans un bruit (= signaux de fréquences différentes) qui lui est supérieur de plusieurs ordres de grandeur. Cette détection peut se faire de différentes façons.
Ici, il s'agira de détecter, à l'aide d'une photodiode, l'éclairage d'une diode électroluminescente alimentée par un courant sinusoïdal.
On utilise une carte d’acquisition National Instruments 6024E pouvant faire jusqu'à 200000 mesures par seconde.
5.b Préambule : Analyse fréquentielle & signaux périodiques
(Ces notions, déjà connues par certains, seront précisées lors du cours d’UP1)
Pour la suite, nous nommerons « signal » toute série Fi, ou tableau unidimensionnel, de mesures acquises avec un intervalle de mesure T dont l’inverse est la fréquence d’acquisition fs (ou d’échantillonnage).
L’information contenue dans un signal F peut être visualisée de 2 façons différentes :
Dans le domaine temporel : méthode classique, fonction Fk=F(kT)
Dans le domaine fréquentiel : permet de représenter la répartition de l’intensité (ou de la puissance) du signal dans les différentes fréquences du spectre :
1 : composante continue (= valeur moyenne)
2 : Signal triangulaire (1 fondamental + des harmoniques)
3 : « bruit » Gaussien haute fréquence
Le passage du domaine temporel vers le fréquentiel se fait par la transformée de Fourier. Comme le signal est échantillonné (on ne connaît sa valeur que fs fois par seconde), on utilise la transformée de Fourier discrète.
La transformée de Fourier discrète ou DFT permet de décomposer une fonction quelconque, périodique ou non, en sinus et cosinus, et donc de connaître ses composantes de fréquence:
Soit le signal échantillonné Fk=F(kT) où T est la période d'échantillonnage (et fs=1/T est la fréquence d’échantillonnage). N est le nombre de points, trouver les aj et bj tels que:
N ?1
Fk =?aj cos(2?jk / N) +bj sin(2?jk / N)
Solution: aj=2/N*Réel(fj) bj=-2/N*Imaginaire(fj) avec
N ?1 fj=?F(kT)e?2ijnk / N, jième composant de la DFT
k=0
Propriétés:
- f0 = composante continue du signal
j j
- fj = composante correspondant à une fréquence de NT=Nfs
- fN? j = fj , (j ? 0) et donc fj n'est utile que si j ? N / 2 qui correspond à la fréquence dite de Nyquist (moitié de la fréquence d'échantillonnage), d'où le théorème de Shannon, théorème fondamental de l’échantillonnage, (cf p 18) :
Un signal de fréquence f échantillonné avec une fréquence d’échantillonnage fs ne peut être reconstitué (= l’information du signal a été correctement acquise) que si :
fs>2f
Si la fonction F est périodique de fréquence s, alors la TFD se limite à une série de pics aux fréquences multiples entiers de s (plus éventuellement f0). Le pic de fréquence s est appelé fondamental, les pics de fréquence j.s (j entier >1) les harmoniques.
Pour un signal non sinusoïdal, le théorème de Shannon s’applique à toutes les composantes fréquentielles du signal. (Comme le nombre d’harmoniques est généralement infini, on ne garde que celles nécessaires pour reconstituer le signal avec une « certaine » précision.
Par conséquent, il est normalement nécessaire, avant d’échantillonner un signal, de s’assurer que toutes les composantes de fréquence supérieure à fs/2 ont été éliminées (par filtrage dit « antialiasing »).
Le nombre de multiplications nécessaires pour effectuer une DFT, proportionnel à N2, devient vite colossal. Heureusement, il existe un algorithme dichotomique ramenant ce nombre à NLog2(N), c'est la "Fast Fourier Transform" ou FFT. Seule contrainte de la FFT, N doit être une puissance de 2. Labview utilise l’un ou l’autre, suivant le nombre de points.
On utilise en fait plus souvent le spectre en puissance du signal:
?2? ?2?
??N?j?? ????
Pj= 2 , P0= 2
N N
qui, en vertu du théorème de Shannon, n'a de signification que jusqu'à j=N/2.
5.c Quelques outils disponibles :
Outils d’acquisition avec carte National Instruments : La carte d’acquisition est du type « NI-PCI 6221 » (caractéristiques en annexe 2) qui utilise des outils situés dans le menu : « Mesure NI / DaqMX… »
Pour toute opération d’acquisition, on utilisera plutôt l’outil de « l’assistant DAQ » dispo-
nible dans le menu de fonctions (Mesures NI / DAQMX / Assistant
DAQ). Il suffit alors de choisir « Entrée analogique », puis « Tension », puis de sélectionner la ou les voie(s) utilisées, dans le bon ordre (sélection multiple avec touche Ctrl). Modifier alors éventuellement la ou les gammes d’entrées, le nombre de points (« échantillons à lire » et la fréquence d’échantillonnage (maxi 250000 Hz) .
Le « signal dynamique » obtenu peut alors être envoyé directement sur un graphe. Pour en extraire un ou des signaux (« waveform »), voire directement des tableaux de valeurs, on utilisera l’outil de
/ Manipulation
DDT-> du menu fonctions que l’on confi-
gurera pour obtenir waveform, tableau de waveform ou tableau 1d ou 2d de scalaires, en choisissant éventuellement la voie (voir ci-contre).
5.d VIs à réaliser :
VI 1: Acquisition et analyse d’un signal:
L’entrée analogique 7 de la carte (Périphérique 1) est connectée à un générateur de signaux, dans un premier temps, on n’exploitera que cette voie :
Transformer le PC en oscilloscope une voie avec choix de la fréquence d’acquisition et du nombre d’échantillons. On affichera aussi le spectre de puissance gradué en Hz. On pourra afficher enfin : la fréquence fondamentale du signal, sa valeur moyenne, sa valeur efficace et tout autre information utile sur le signal.
On mettra en évidence différentes formes du théorème de Shannon :
- | Avec un signal sinus |
- | Avec un signal plus complexe : le signal carré, que se passe-t-il si le fondamental « respecte » le théorème de Shannon et pas les harmoniques ? |
Les principaux outils de traitement et de mesure sont dans :
Analyse / mesures sur Waveform
Analyse / Traitement du Signal
Analyse / Mathématiques / …
Ne pas hésiter à demander…
VI 2: Détection de l’allumage d’une LED :
Problème :
Le signal alimentant la source lumineuse (LED : diode electro-luminescente) est celui utilisé précédemment (voie 0) .
On utilisera comme signal de référence le signal précédent (issu du générateur BF), mais atténué d’un facteur 100 (pont diviseur 10 kohms / 100 ohms déjà installé) afin d’éviter les problèmes de diaphonie. Ce signal est présent sur la voie 0.
La LED ne laisse passer le courant que dans un sens : Régler l’amplitude et l’offset du générateur afin que le signal soit compris entre 1 et 8V.
Le signal de la photodiode est amplifié (le gain est négatif).
Un filtrage passe haut est effectué, sa fréquence de coupure est de l’ordre de 2 kHz. Un filtrage passe bas « antirepliement » coupe au delà de environ 15 kHz.
Si vous avez le temps à la fin de la première séance, essayez de réaliser la détection de la LED (indicateur booléen indiquant si la LED est visible ou non) soit à l’aide de la transformée de Fourier, soit par filtrage numérique.
Détection synchrone :
La détection synchrone, ou méthode du produit scalaire, est une méthode utilisée depuis longtemps car elle peut être traitée de façon entièrement analogique (c’est à dire alors sans calcul). Nous l’utiliserons de façon numérique:
Principe de la détection synchrone :
Soient S le signal de la photodiode (voie 1) et R le signal de référence en (voie 0) : Si tous deux sont de valeur moyenne nulle (pas de composante continue). On a alors:
R=Asin(?t)
S=Bsin(?t+?)+f(t) (B = grandeur à mesurer)
f(t) est le bruit (électronique ou optique), on peut le décomposer en son spectre de fréquence (TFD): f t( ) = ? fi *sin(?it)
i
Effectuons le produit : R*S = ABsin? ? ?t *sin( t + ) + A? fi sin? ?t sin it
i
Si l’on moyenne ce signal sur un nombre suffisamment grand de points, on obtient :
?
M = ? R Sdt*
Or on peut montrer facilement que :
si ?1 =?2
= 0 sinon
Donc M # ½ ABcos? si f(t) a peu d’harmoniques de pulsation ?.
Il s’agit ici d’un produit scalaire entre les 2 signaux, on obtient alors la composante X de S en phase avec R
La valeur moyenne de RS est donc proportionnelle à l'intensité du signal à détecter si les 2 signaux ne sont pas en quadrature et si le déphasage est constant. Nous l’appellerons « signal de détection ».
En supposant dans un premier temps que le déphasage est constant et différent de ?/2, réaliser le VI permettant de montrer l’évolution du signal de détection en fonction dutemps.
On vérifiera l’immunité du signal aux lumières parasites, en particulier les 50 Hz redressés des néons.
Dans un deuxième temps, on imaginera un dispositif permettant de mesurer aussi le déphasage. Indication : ce type de dispositif s’appelle alors « double détection synchrone », il consiste à effectuer, outre la détermination de la composante X, le calcul de la composante Y grâce à un « produit scalaire » avec un signal « calculé » déphasé de ?/2 avec R et de même module.
Afin de tester ce système, on pourra modifier le déphasage en se rapprochant de la fréquence de coupure du filtre passe-bas de l’électronique (15 kHz), pourquoi ?
A partir d’une estimation de la moyenne et de l’écart type du signal de détection mesuré lorsque la LED est invisible, on déterminera un seuil de détection au delà duquel un indicateur indiquera la visibilité de la LED avec un taux d’erreur inférieur à 0.5%. Ce seuil sera déterminé dans un premier temps de façon intuitive, puis, si il reste du temps, de façon plus rigoureuse en utilisant la « théorie » ci après.
Notion de seuil de détection
Supposons que l’on veuille déterminer si un événement mesurable (mesure X) est présent (X >0) ou absent (X =0).
On détermine alors un « seuil de décision » S (si X<S, événement absent, si X>S, événement présent) On montre alors que :
la plus petite mesure non nulle détectable, et pour laquelle le risque d’erreur est le même pour les 2 types d’erreurs possibles (erreur A = détection alors que l’événement est absent ; erreur B = non détection alors que l’événement est présent) est 2 fois le seuil de décision, on l’appelle seuil de détection.
Si X est de valeur moyenne nulle et de distribution normale, on peut montrer que le seuil de détection S est environ 3? pour un taux d’erreur de 5% et 5? pour un taux d’erreur de
0.5%, où ? est l’écart type de la mesure proche de zéro.
IMPORTANT : Penser, avant d’enregistrer votre travail, à faire « Exécution / Prendre les valeurs actuelles par défaut », faute de quoi vos valeurs de contrôles seraient perdues lors de la prochaine réouverture du VI.
6. TP N°3 : Liaisons numériques / ETALONNAGE
6.a Introduction :
Ce TP a 2 buts :
1 :Apprendre à dialoguer, grâce à Labview, avec un instrument numérique possédant une liaison numérique,
2 : Créer, étalonner et évaluer un instrument de mesure, ici une balance dont le capteur est une jauge de contrainte.
6.b Préambule : Incertitude de mesure, régression linéaire
Ces notions seront vues (ou revues) plus en détail pendant les activités d’UP3.
(ou sur )
Soit une variable x dont la valeur réelle (mais pas forcément connue) est xR,
On procède à n mesures, ou évaluations, de x appelées xi (1?i?n).
Ces mesures sont généralement différentes de xR, cette différence est la variable erreur ?, dont on distingue 2 composantes: ?=?A +?B
L'erreur systématique: ?B
La valeur moyenne de l'erreur systématique est non nulle: Le mesurage donne une valeur qui s'écarte systématiquement de la valeur vraie.
L'erreur systématique intervient dans la notion de justesse : une méthode d'analyse est juste quand on a pu éliminer l'erreur systématique. Cette élimination se fait le plus souvent à l'aide d'étalons qui ne doivent pas amener eux-mêmes une erreur .
D'une façon générale, on peut considérer que l'erreur systématique n'est finalement jamais évaluée car elle est:
soit inconnue,
soit connue et alors corrigée (par exemple par comparaison avec un étalon), auquel cas on
l'annule.
L'erreur accidentelle ou aléatoire (?A)
C'est une variable aléatoire. Lorsqu'on répète plusieurs fois le mesurage d'une grandeur physique ou chimique constante, on obtient généralement différentes valeurs plus ou moins dispersées (et qui sont souvent distribuées suivant une loi normale, voir plus loin) .
Par définition, la valeur moyenne de l’erreur accidentelle, ou aléatoire, est nulle.
Dans la plupart des cas, les erreurs accidentelles ont une distribution normale. Cette hypothèse de distribution normale, valable pour 99% des cas, provient du fait que plusieurs sources indépendantes contribuent généralement à cette erreur. Or le Théorème Central Limite nous dit qu'une combinaison linéaire d'un nombre suffisamment grand de variables indépendantes de distributions quelconques tend vers une distribution normale.
Caractérisation de la mesure et de son erreur:
On peut caractériser la mesure par:
une moyenne estimée de la mesure qui est la moyenne arithmétique des n mesurages x1,
x2…xi…xn faits pour caractériser une grandeur :
n
?xi
n
Si l'erreur systématique est nulle (ce que l'on suppose pour la suite), alors x ?xR quand n ?? (xR = valeur réelle, à priori inconnue).
un écart-type défini comme étant la racine carrée de la moyenne du carré de l'écart entre la mesure et la valeur réelle xR:
(fonction Excel ECARTYPEP)
Mais généralement, xR est inconnu, on en a juste une estimation par la moyenne x . On peut alors calculer une estimation de l'écart type notée s:
s = . (fonction Excel ECARTYPE)
De même, l'écart type estimé tend vers l'écart type réel quand n ?? .
la variance est égale au carré de l'écart-type :
V =?2
Si la distribution des erreurs est normale (ou gaussienne) (c'est généralement le cas), on peut alors déterminer, la probabilité p pour qu'une mesure individuelle soit hors de l'intervalle
[x ?ts,x +ts]
t.s est appelé incertitude élargie et t est le coefficient de Student .
Ainsi, pour n suffisamment grand (n>20), t vaut environ 2 et donc environ 95% des mesures sont dans l'intervalle [x ? 2s,x + 2s], ( 99.7% dans l'intervalle [x ?3s,x + 3s]).
Si n est plus faible, alors on on doit tenir compte d’une augmentation de t, donné par des tables (pour une probabilité de 95%, t vaut 2.26 pour n=10, et 2.78 pour n=5.
Rappelons que si l’on prend maintenant pour mesure la moyenne de n mesures individuelles dont les erreurs sont aléatoires et indépendantes, alors la valeur de l’écart type devient : ?
?x = (cf théorème de la moyenne, p 19)
Le résultat d’une mesure doit comporter 4 éléments :
Ex : CNO = 125.3 ppb ± 1.7 ppb (k=2)
1 2 3 4
1 : Valeur numérique avec un nombre correct de décimales
2 : Unité
3 : Incertitude élargie = t.? (= intervalle de confiance x 2)
4 : Le coefficient d’élargissement t utilisé (généralement noté k : ex k=2) Si la mesure est non nulle, on utilise souvent l’incertitude (élargie) relative (à la me-
?
sure), calculée à partir de l’écart type relatif : ?r =, souvent exprimée en pourcentage de x
la mesure.
Evaluation de l’incertitude :
On distingue 2 types de méthode :
Evaluation de type A : par analyse statistique de séries de mesures, à l’aide des formules du paragraphe précédent
Evaluation de type B : « Par tout autre moyen » ( !) : généralement, on évalue l’effet sur l’incertitude finale des différentes sources d’incertitude, elles même évaluées :
Par une méthode de type A,
Par des données constructeur, d’étalonnage etc…
Remarque: L'incertitude donnée par le constructeur peut être en partie constante pour un appareil donné. Mais on ne connaît ni sa valeur, ni même son signe, elle sera donc considérée comme une erreur aléatoire.
On utilise alors les lois de propagation des écart-type (ou des incertitudes, au facteur d’élargissement près) :
Si la mesure finale, y, est fonction de variables xi, indépendantes dont les ?(xi) sont connus:
y=f(x1…xn), alors l’écart type de y s’écrit :
2
?2(y) =?n ??????xfi ???? ?2(xi )
1
(Il s’agit en fait du théorème des accroissements finis appliqué à la variance)
Exemples : (variables indépendantes)
1 : Combinaison linéairey = ?aixi , alors s2 (y) = ?(ai s(xi ))2
i i
Ex: somme ou différence: y = a + b ? c, alors s(y) = s2 (a) + s2 (b) + s2 (c)
2 : Produits et puissances : y = A?x?ii
i
s(y)
Il est dans ce cas plus commode de considérer l’écart type relatif :
? s(y)? ?
On a alors : ?? ??2 = ????i s(xi ) ???2
Rappelons, pour mémoire (cf p 18), que l’écart-type de l’erreur due à la discrétisation s’écrit : ?d == 0.29?, où ? est la résolution.
L'étalonnage par régression linéaire
L'étalonnage (calibration en anglais) d'un instrument de mesure ou d'un capteur, consiste à modéliser le signal de sortie du capteur (appelé Xvariable, généralement un signal électrique) en fonction de la variable mesurée (appelée Yvariable, variable physico-chimique). Pendant l'étalonnage, les Yvariables, considérées comme étalons, sont connues ou évaluées, ainsi que les Xvariables associées.
Le modèle est alors une fonction F: Yˆ = F(X)
L'utilisation normal du modèle, ou prédiction, permet d'évaluer les Yˆ à l'aide des seuls X et du modèle F.
Si l’on fait l’hypothèse d’une loi linéaire reliant les X et les Yvariables, alors le modèle peut être déterminé par une régression linéaire :
Cette méthode permet de déterminer l’équation de la droite (pente a + ordonnée à l’origine b) minimisant la somme des carrés des écarts entre mesure et valeurs calculées yˆ = ax + b :
S = ?(y ? yˆ)2 minimale
En appliquant cette méthode, on
suppose implicitement que seules les Yvariables ont des erreurs aléatoires. Les calculs de régression linéaire seront faits à l’aide d’Excel qui offre 2 possibilités :
courbe de tendance, à partir d’un clic droit sur un graphe « nuage de points »
fonction DROITEREG, plus complexe, mais permettant, entre autres, de calculer les
écart-type de la pente et de l’ordonnée à l’origine (cf annexe en fin de chapitre)
6.c Utilisation d’une liaison série RS232 :
Les liaisons numériques permettent à certains instruments numériques (multimètre de table, data logger, régulateur etc ) de dialoguer avec un Micro-ordinateur ou avec d’autres instruments.
|
Il existe, en instrumentation, de nombreuses formes physiques de liaisons numériques (RS232, RS485, GPIB, ethernet, CAN bus etc…) et pour chaque forme de nombreux protocoles, souvent propres à chaque constructeur.
Nous allons étudier la forme de dialogue la plus simple à mettre en œuvre qui le dialogue « Maître – esclave ». Dans cette configuration, l’instrument, l’esclave, attend des ordres émis par le maître (ici un PC) pour y répondre.
Ces dialogues se font souvent en ASCII, c’est à dire à l’aide de chaînes de caractères. Du point de vue informatique, une chaîne de n caractères est un tableau de n octets (entier entre 0 et 255), la valeur de chaque octet correspondant au code « ASCII » d’un caractère.
Les codes des caractères dits imprimables (lettres, chiffres et ponctuation) sont compris entre 32 et 127. Les codes 0 à 31 sont des caractères de contrôle (ex : 13=CR=Carriage Return, 27=Esc=Escape ).
La liaison numérique utilisée pour ce TP est une liaison série RS232 qui a l’avantage d’être présente sur tous les PC.
C’est une liaison série (1 seul fil pour les données), asynchrone (pas de synchronisation avec un signal d’horloge), full duplex (un fil par sens). Elle est peu performante en vitesse mais facile à mettre en œuvre et présente sur tous les PC.
Transmission d’un octet: (pour info…)
start bit 1logique 0 logique | parity bit | - |
+1
Emission de 1010011 (ASCII S), en 7 bits et parité
Outils Labview utilisables : dans E/S d’instruments / Série
Initialisation : (une seule fois dans le programme)
Ecriture (PC périphérique) :
Lecture (périphérique PC) :
Ici, lecture s’arrête dès que le « nombre d’octets » est atteint ou que le caractère de terminaison est rencontré (si ce mode est activé)
L’enchaînement des « nom de ressource VISA » ou des entrées / sorties d’erreur permet de gérer la chronologie sans utiliser de structure séquence :
Protocole :
L’instrument étudié est un « module d’acquisition » de type 6B11 d’Analog Device. Ces modules permettent de faire l’acquisition d’une tension avec une bonne précision. Plusieurs gamme de mesure sont disponibles et programmables (de +/- 15 mV à +/- 5 V).
La durée d’une conversion analogique digitale est 60 ms.
Le module est configuré pour une vitesse de transmission de 19200 bauds (? bits / s) (8 bits de données, 1 bit stop, pas de parité, pas de protocole), une adresse 00 et pas de Checksum. La gamme de mesure est réglée sur +/- 15 mV . Ne pas tenter de modifier ces paramètres.
Protocole : extrait de la notice Analog Device relative à la lecture d’une mesure
Commande : #AA? avec :
# caractère « # » = code de la commande « Emission de la mesure la plus récente »,
AA adresse du module en hexadécimal sur 2 caractères (00 si adresse 0),
? caractère de contrôle « carriage return » (code ASCII 13) prédéfini dans Labview :
)
Réponse : >(data) ? avec :
> caractère de début de message,
(data) chaîne de caractères représentant le réponse sous forme décimale,
? carriage return (fin de message)
Exemple : Commande #00? réponse : >+4.7653? (4.7653 mV)
6.d Première réalisation: milliVoltmètre
1 : Réaliser un instrument (mVmètre numérique) permettant de lire et d’afficher graphiquement la tension présente à l’entrée.
On gérera l’erreur de communication la plus courantes qui est le time out (absence de réponse au bout d’un certain temps).
Quel est ,en µV, la résolution du convertisseur analogique-numérique ?
Etudier l’influence du nombre de mesures moyennées sur l’écart type de la mesure (cf théorème de la moyenne, p 19).
Vérifier notamment le type de la loi ?(x) = f (n) , correspond-il à la théorie ? Quelle peut être l’influence d’une éventuelle temporisation entre 2 mesures ? On choisira pour la suite un nombre de mesures correspondant à un temps de mesure total de l’ordre de 2 à 3 s. |
6.e Deuxième réalisation : balance numérique
L’entrée du module est en fait reliée à un système de mesure de masse :
On suppose ici que vous avez déterminé une méthode de mesure (moyenne sur n mesure) qui deviendra pour la suite LA mesure.
Afin de réaliser une balance numérique indiquant la masse mesurée en kg, procéder à un étalonnage à l’aide d’un certain nombre de mesures (20 à 40) à l’aide de masses calibrées utilisées dans un ordre aléatoire (il n’est pas impossible qu’il y ait une légère hystérésis mécanique…), on utilisera un minimum de 5 ou 6 valeurs de masse différentes. Ce sont les 20 à 40 mesures qui seront utilisées individuellement pour la régression linéaire.
Attention, les performances finales de l’instrument dépendront directement de la qualité de cet étalonnage :
Dans un premier temps, la gamme sera 0 à 2 kg et on supposera la linéarité du dispositif.
Pour faire les calculs statistiques (écart types, régressions linéaires ou non linéaires…), on pourra utiliser Excel.
Après avoir réalisé la régression linéaire, il est intéressant de tracer les « résidus » en fonction de la masse :
il s’agit des écarts entre la mesure réelle et le modèle, c’est donc l’information qui n’a pas
été modélisée et qui, si le modèle est correct, doit être aléatoire. Ce graphe permet donc :
• de détecter les valeurs aberrantes (« outliers »)
• de détecter les problèmes de non linéarité (« sous-modélisation »)
• d’évaluer la composante « erreur liée à la mesure » (voir plus loin) égale à l’écarttype des résidus ?R.
A l’aide du modèle, réaliser un affichage en masse, ajouter enfin un bouton de tarage permettant à tout moment de ramener la mesure à 0 (l’estimation de l’ordonnée à l’origine b devient alors inutile). Voir figure ci-dessous.
Il existe 2 méthodes pour calculer l’écart-type de la mesure (et donc l’incertitude à 95% qui est environ 2 fois l’écart-type) :
Méthode expérimentale :
Il est nécessaire de faire un certain nombres de mesures dans les conditions exactes d’utilisation et de calculer l’écart-type. Attention, celui-ci n’est pas forcément constant sur la gamme, et l’opération doit donc être renouvelée en plusieurs points de la gamme.
Par calcul :
Il s’agit de répercuter toutes les sources d’incertitude sur le résultat final. Elles sont au nombre de 2 : l’incertitude sur la mesure de tension (erreur « liée à la mesure ») et l’incertitude sur le coefficient « a » calculé lors de l’étalonnage (erreur « de modélisation »).
Montrer ( à l’aide de : ?(f (x1, ,xn))2= ?n??? ??xfi????2?(xi )2 ) que l’incertitude peut s’écrire :
1 ?
M
avec :
Vb=mesure brute de tension, avant correction d’offset, V0=mesure tension d’offset, mesurée lors d’un offset, a = pente déterminée par régression linéaire,
?V = écart type estimé de la mesure de tension, supposé constant sur toute la gamme de
tension, déterminé soit :
• à l’aide de plusieurs mesurages d’une même masse dans les conditions normales d’utilisation,
• à l’aide de l’écart-type de prédiction SY/X (écart-type des écarts entre la droite de régression et les points d’étalonnage, calculé par la fonction Excel droitereg) : SY/X =a?V.
?a = écart type estimé de la pente, donné par la fonction Excel « DROITEREG » (voir an-
nexe en fin de chapitre).
On observe que ?M0 dépend de V et donc de la masse, cela confirme que l’incertitude sur la mesure de la masse ne sera pas constante sur la gamme, même si l’incertitude sur la mesure de tension l’est.
Indiquer l’incertitude « à 95% » sur la mesure de la masse, avec les conditions de fonctionnement.
Compléter l’étalonnage précédent de quelques points pour étendre la gamme à 0 – 4 kg. Le modèle précédent est-il toujours valable ? Faire des suggestions pour un modèle plus performant.
6.f Annexe : fonction Excel « DROITEREG »
Cette fonction calcule les statistiques pour une droite par la méthode des moindres carrés, afin de calculer une droite qui s'ajuste au plus près à vos données, puis renvoie une matrice décrivant cette droite.
L'équation de la droite est la suivante :
y = mx + b
(ou, plus généralement, y = m1x1 + m2x2 + + b (s'il existe plusieurs plages de valeurs x)) Syntaxe
DROITEREG(y_connus;x_connus;constante;statistiques)
• y_connus est la série des valeurs y déjà connues par la relation y = m x + b.
• x_connus est une série de valeurs x. La matrice définie par l'argument x_connus peut contenir une ou plusieurs séries de variables
• constante est une valeur logique qui indique si la constante b doit être égale à 0.
o · Si l'argument constante est VRAI ou omis, la constante b est calculée normalement.
o · Si l'argument constante est FAUX, b est égal à 0 et les valeurs m sont ajustées de sorte que y = mx.
• statistiques représente une valeur logique indiquant si des statistiques de régression supplémentaires doivent être renvoyées.
o · Si l'argument statistiques est VRAI, la fonction DROITEREG renvoie des statistiques de régression supplémentaires et la matrice renvoyée devient : {-1 ..m1.b; -1 ; ; F.df; ssreg.ssresid}.
o · Si l'argument statistiques est FAUX ou omis, la fonction DROITEREG renvoie uniquement les coefficients m et la constante b.
Le résultat de DROITEREG est une matrice, il est donc indispensable:
• avant de taper =DROITEREG , d'avoir sélectionné une plage de cellule au moins aussi grande que cette matrice, soit, pour uns seule variable X et si l'argument statistique est VRAI, une plage de 2 colonnes par 5 lignes.
• Lorsque la formule est saisie, de la valider à l'aide de la combinaison de touches "Shift"+"Ctrl"+"Entrée" (au lieu de "Entrée").
Les statistiques de régression supplémentaires sont les suivantes (cas y=mx+b):
Annexe 1 : caractéristiques de la carte d’acquisition 6024e
Annexe 2 : caractéristiques de la carte d’acquisition NI-PCI6221