! Texte Son Images mesures Traitement Informatique Données Résultats Entrées Sorties Texte Son Images mesures " # ! Texte => Fichier source COMPILATEUR Écrire en respectant la syntaxe d'un langage, la suite des tâches devant être exécutées par l'ordinateur, de façon logique et structurée Langage de programmation Logiciel installé dans l'ordinateur $ Application autonome Fichier exécutable % Langage Evolués : C, Pascal, Fortran, Basic Visual Basic, LabVIEW Assembleur Compilation = Traduction Langage Machine Le seul compréhensible par l'ordinateur $ & $ " ' ( # " $ + ( " ) * ! , ) - " , + ! % A lg o r it h m e S u it e d 'in s t r u c t io n s q u i u n e f o is e x é c u t é e s c o r r e c t e m e n t c o n d u it à u n r é s u lt a t d o n n é A lg o r ith m iq u e ' S c ie n c e q u i é t u d ie la s t r u c t u r e lo g iq u e d e s p ro g ra m m e s % Pascal C Fortran Algorithme LabVIEW ( - Visual Basic , /0 / /1 /2 Basic . ( % ) 3456! ' ' - ) , ' , ! ! ) 1& ) 7 1 8& , 8 9!3 $ ' 3446! :! ! - , ' " ; % ) % La face avant est l’interface avec l’utilisateur. Le diagramme correspond aux circuits internes de l’appareil et constitue le cœur du programme % "# $ ' ) - ) ' ) < ' ) ' $ ' ) < < < ' % ' ' - 1 ") $ = = ! " # >= , = ' * ) Variables d’entrées % ' 0 7 ) 1 ' > < $ =! ! Variables de sortie Programme ? ! %"# ) entrées sorties o o o o 0 o > - ' , @ % ! o ' o 0 o / o > < = @ ; A $) ) B! * A B ! $! ! ! FACE ARRIERE : DIAGRAMME 1ère variable FACE AVANT 2ème variable ' , o o o o $ $ ' % * < " >= ! C * ? ' < , ' :? ' =! La palette d'outils (Tool Palette) Pour agir sur les commandes Bouger l'ensemble (diag ou FA) Texte Pipette (copier une couleur) Colorer un objet Pour câbler Placer un point d'arrêt Poser une sonde (probe) ' ) D < =! * " A B ' ) , * ; ' E ! " % ! ! ) 0 ) ! ) " ) ) ' $ ! LA MEMOIRE : Empilement d'octets Un contenu (valeur) variable Une adresse fixe ' ) o o ' ) ) ' " % % # ) % ) ! PALETTE DE COMMANDES Les commandes (sauf tableaux) Palette complète : il suffit de la parcourir pour tout comprendre (ou presque) # PALETTE DE COMMANDES Les indicateurs (sauf tableaux) Palette complète : On retrouve les commandes et les indicateurs ) & " ' ) ' @ " ' - ! ) ! $ & ! "# ! '( ) *+ +, 'CODAGE SUR UN OCTET Sans bit de signe Valeurs décimales possibles de 00000000 à 11111111 de 0 à 28 -1 = 255 Type unsigned char (langage C) Type U8 en LabVIEW Avec bit de signe positif Type char (langage C) Type I8 en LabVIEW de 00000000 à 01111111 de 0 27 -1 = 127 à de 11111111 à 10000000 f négati Complément à deux . '// , - ,) 0 1* , ', ( ,* de -1 à - 27 = -128 - '( ) *+ % '- * CO DAG E S UR DE UX O CTE TS S ans b i t d e si gne V aleurs décim ales possibles de 0 à 2 16 -1 = 65535 Type unsigned int (langage C ) Type U 16 en LabV IE W A vec b i t d e si gne p o s it i f de 0 à 2 15 -1 = 32767 de -1 à - 2 15 = -32768 Type int (langage C) Type I16 en LabV IE W n ég at Com plém ent à deux %"# ! if $ Un nombre à virgule flottante peut toujours s'écrire : + 0,662 * 2 - 26 Signe : 1 bit Mantisse : 23 bits Exposant :8 bits Valeurs extrêmes possibles : Nombre nul : 0 Nombre positifs de : 1,21 10 -38 à 3,40 10 38 Nombres négatifs de : - 1,21 10 -38 à - 3,40 10 38 Type : Float en C, Type SGL en LabVIEW SIMPLE PRECISION : 4 octets 1 bit 8 bits 23 bits DOUBLE PRECISION : 8 octets 1 bit 11 bits 52 bits PRECISION ETENDUE : 10 octets 1 bit 15 bits 64 bits 2"# ! ! Vraie : True Variable Booléenne Fausse : False Codage sur 1 seul bit N'existe pas dans tous les langages : OK en labVIEW mais pas en C ! $ $$ $ ' % 2 $ ) ' " ' 3 OUI NO TEST Instructions 1 Instructions 2 Suite 80 F % - & - - $ 3 ! ; I ) ' ) = * * E ' # % J H * ) G G! < ' ! ) J" K" L" M" N" O! < =! ' H) % G G! $ %< J = 1< J = % 1" " G G 1" G G " $ " > ! 4 G 0 0 0 ) ! ; A ' A ' G1 B 4 L G J 3H B GJ4 P 1 G M 3H # ! ; Q0G Q 088 % B % G - A ' - ! Début Saisir N OUI NO N M 3H OUI C = « c’est bien » C = « c’est insuffisant » NJ4 NO C = « c’est assez bien » Fin ) * ! ! ' ) ' E E ' $ ! ! ) ! ' ) ! , ' 0 ; ! G G C0 R ) ' ; , ' ! " ' ! Cliquer pour visualiser le diagramme réalisé si condition fausse Diagramme délimité, exécuté si condition vraie Condition à écrire R 8& % Un seul diag visible à la fois , . La transmission des données se fait via un « tunnel » d'entrée ou de sortie. La condition : met en jeux un opérateur de comparaison Les tunnels de sortie doivent être reliés dans les deux diagrammes conditionnels Le résultat booléen de la condition est connecté au sélecteur « ? » Le diagramme caché " La comparaison peut être simple : elle met en oeuvre un opérateur de comparaison (>, <, etc ... ou d'égalité) comme dans l'exemple précédent. Elle peut être plus complexe et mettre en oeuvre également des opérateurs logiques. Les structures conditionnelles peuvent être imbriquées Diagramme caché # 5 ! $ ' ' ! A 7 S! , ' , , " ! 0 C0 R ! & ' C0 R ! Instructions à répéter TEST NO OUI On peut permuter dans LabVIEW Suite $ % ! ) - ! I ) ' ) = * ' J" K" L" M" N" O! < ' ) % H) % G G! * # % 1" J " G G 1" G G $ %< J = 1< J = " $ " > ! 80 F % , ' ! , ! % ' , ! 4 "# ! 0 ' G1 2& 1 % / ) % 2&! 0 ! / ! % ! % 2& Q0G Q 088 % Début L = FAUX !'+-0 ( , BP appuyé L = VRAI Fin ! Diagramme répété Terminal conditionnel Terminal d'itération : compte les répétitions NON On ne fait rien tant que l’on n’appuie pas sur le BP ! $ % , Pseudo :code correspondant : Exercice Variable N type entier Dessiner Variable l’organigramme compt type entier correspondant à ce diagramme N 100 Faire compt N-1 afficher compt attendre 1s tant que N >0 Fin Attente (configurée à 1s) 2 possibilités 6. ! $ $ ' +, ,'/ 1(1 / ,1 ( 7' *8 0) " ; , ' ) ' ! & ' ) - ) " T , G/3 ) ' - G G ! ! - ! i=0 Ces instructions sont répétées N fois pour i variant de 0 à N-1 Instructions à répéter i<N Suite i= i+1 OUI Incrémente le compteur d’itérations . $$ ' NT ' ' TN ! ' % ) ' 7 * ' N ! T, ) ) @ D 3 ! ! ' ! ,TN3UUUU ' @ % 3! ) ) ) , ! & ) " $ % Pour i = 0 à N-1 Instructions à répéter Suite * " ) ! VI - EXEMPLE $ 6 6@ ', 6T" ! G1 1 - & - % ' " ! Q0G Q 088 Début Pour i = 0 à 10 i varie de 0 à 10 Il y aura donc 11 itérations. S=5*i Attendre 2s Fin ! ! $ " ! 7 % ! 0 80 F % Avec 10 tours de boucle, i évoluera de 0 à 9 Diagramme répété Nombre de tours de boucle Terminal d'itération : compte les répétitions ! Modifications par l'utilisateur prises en compte Valeur transmise au premier tour de boucle. Toute intervention de l'utilisateur devient inutile Valeur obtenue au dernier tour de boucle " 9 ! 4 $ Un tableau permet de regrouper plusieurs variables numériques de même type sous une même appellation. Les différents éléments du tableau (array) sont alors repérés par un indice (index). Le nombre N d’éléments du tableau constitue sa taille (array size) Exemple : Tableau nommé Tab de 3 entiers type U8 Chaque élément du tableau est repéré par un indice i allant de 0 à N-1 LA MEMOIRE : Empilement d'octets Tab[0] Tab[1] Tab[2] Les trois éléments se retrouvent à trois adresses différentes qui se suivent II – TABLEAUX DANS LabVIEW Clic droit sur la face avant Tableau vide Indice du 1er élément visible Tableau de variables numériques Quand on dépose le tableau sur la face avant, il est vide. Il convient donc de le remplir à l’aide du type de variable choisi : tableau de variables numériques, tableau de booléens, tableaux de chaînes de caractères etc… # Tableau vide Tableau de variables numériques ! 4 " $ % Les fils de liaisons des données tableaux sont en traits épais de la couleur du type de la variable : ici, on a des tableaux de variables numériques à virgule flottante, les connexions sont donc de couleur orange. Indice et taille du tableau sont des entiers donc couleur bleue. $ 4 "# , , 1 Indexation : Au ième tour de boucle, le ième élément du tableau est transmis par le tunnel d'entrée. Lors du câblage, l'indexation se réalise automatiquement. Tous les éléments du tableau sont multipliés par i à chaque tour de boucle Pas d'indexation : le tableau est transmis à chaque tour de boucle dans son intégralité par le tunnel d'entrée. %"# , *' Pas d'indexation : la dernière valeur calculée au dernier tour de boucle est transmise via le tunnel de sortie indexation : un tableau des valeurs calculées à chaque tour de boucle est transmis via le tunnel de sortie quand la boucle est terminée #Page 124 :. ! "# N+1 points régulièrement espacés ième point i+1 ème point a & % $ & ( 0 ! % % $ N$ , ( % /3 $N , +, *+ /1 >+ ( *;< b =# D D ! / ?@ ; / ( *', > ; * %"# N+1 points régulièrement espacés ième point i+1 ème point log a & % $ & 0 ( % , ( $ N D ! ! % % $N N N< $ D /3 V < ? =3?G =?GN D < ? =3?G N D < ? = ?G N 7 log b W ! < ? = ?G X % $ N ! < ? = ?G JNK $ N ! < ? = /3?G ! < ? =3?G $ /3 ! < ? =3?G $ N , +, *+ )1'/1 >+ ( / / ?@ ; $ N ! W< ? =3?G X ( *', > ; < # = # $$ Graphes déroulants !'+-0 Graphes 0 Graphes XY !'+-0 $' !'+-0 $' Terminal graphe déroulant équivalent à un indicateur numérique Terminal graphe équivalent à un tableau Terminal graphe reçoit 2 tableaux Graphe dans la boucle Graphe boucle Graphe boucle hors de la ! hors de la ! " " # # % - $ % &" '" (" ) XY * . F " ' ! 7 ! ' / - , ( * '* ( A 4/ ? 4/ , (+ ,'/ ( ', $ ' " , ( * '* ( A . 1 '( / , / 0 <7 1>+ ,- / ? = 8 % UUU ∆x = [ Xmax – Xmin ] / (N-1) ∆1 N 1 N 1?G % ; ∆x = [ Xmax/Xmin] 1/ (N-1) % 1 JJ 1 Boucle While Graphe déroulant l’intérieur. Boucle cadencée par Te. Déroulement en temps réel si Te pas trop faible (Pb de windows) ∆1 N 1 N Y1?G C KK C ) % + ∆1 N 1?G YG , B 00 , C - >+ DD E $NR % D ∆$ N ∆1 % $NR ! <∆$= ?G Boucle For, Graphe ou Graphe XY à l’extérieur Boucle For Graphe XY à l’extérieur Gradué en temps : simulation temporelle, pas de temps réel Début "# Saisir Te i=0 Déroulement en temps ≈ réel Calculer y(iTe) Afficher y(iTe) i = i+1 Attente Te OUI STOP = Vrai NON Fin %"# 2"# 4& Début Saisir Xmax, Xmin, N Pour i = 0 à N Début Début Saisir T, N, k Saisir xmin, xmax et N Pour i = 0 à N Pour i = 0 à N ∆x = (Xmax – Xmin) / N Calculer yi (i∆x) Te = kT/N Calculer yi (iTe) ∆x = (Xmax – Xmin) / N xi = i ∆x Calculer yi (xi) Afficher yi Afficher yi(iTe) Fin Afficher yi (xi) Fin Fin ! F ! A B 7' / Le rôle du graphe déroulant : Waveform Chart est d'afficher l'évolution temporelle d'une donnée variable dans le temps. Données perdues historique Partie visible A chaque instant le graphe ne reçoit qu'une donnée à la fois : Ce n'est pas un tableau de valeurs. Par programmation, il faut donc répéter l'envoi des données au graphe, le terminal graphe doit donc être dans une boucle while. ? / 0 ( ,* A Génération d'un nombre aléatoire Le Graphe déroulant est un indicateur. Par défaut son type est DBL. Ce n'est pas un tableau de valeur (trait fin): Cet indicateur ne reçoit qu'une valeur à la fois, il doit être dans la boucle. - ) * @ % ' @ ) LE FORMATAGE DU GRAPHE A B 7' / Le rôle du graphe est de représenter graphiquement un tableau de données. 0 1 2 3 4 5 6 7 donnée 5 10 15 20 25 30 35 40 Le graphe reçoit simultanément l'ensemble des données sous forme d'un tableau de valeurs. Les données sont généralement calculées dans une boucle Par programmation, il ne faut envoyer les données au graphe qu'une seule fois, le terminal graphe doit donc être hors de la boucle. Le tableau peut être obtenu par indexation du tunnel de sortie de la boucle " ! ? / 0 ( ,* A L'indice du point (n° ligne du tableau) Le Graphe est un indicateur de type tableau. Par défaut son type est DBL. Cet indicateur reçoit toutes les valeurs à la fois, il doit être hors de la boucle. 4& Le rôle du graphe XY est de représenter graphiquement un tableau de données Y en fonction d'un tableau de données X Donnée X Donnée Y Le graphe reçoit simultanément 5 0,1 l'ensemble des données 10 0,2 sous forme de 2 tableaux de valeurs. 15 0,3 20 0,4 25 0,5 Les données sont généralement 30 0,6 calculées dans une boucle 35 0,7 40 0,8 Par programmation, il ne faut envoyer les données au graphe qu'une seule fois, le terminal graphe XY doit donc être hors de la boucle. Les 2 tableaux sont obtenus directement au niveau des 2 tunnels de sortie de la boucle. Ils sont assemblés pour former un cluster. # 0* ', ( ,* A Connecter le tableau des abscisses ici Connecter le tableau des ordonnées ici ? / 0 ( ,* A Tracé de courbe, échelle linéaire : xi = xd + i * (xf-xd)/N apparaît automatiquement On dispose ici d'un cluster (assemblage) de 2 tableaux. $ G H 4 EXEMPLE : Programmer n! On sait que n! = (n-1)! . n Pour calculer n!, il faut avoir d'abord calculé (n-1)! Pour calculer (n-1)!, il faut avoir d'abord calculé (n-2) ! Pour calculer (n-2)!, il faut avoir calculé (n-3)! Etc .... Structure itérative boucle for Variable facto type entier Variable i type entier facto 1 Pour i = 1 à N faire facto facto.i i i+1 afficher facto fin A la ième itération, on utilise le résultat calculé à l'itération précédente En Labview cela se fait grâce au registre à décalage On utilise des registres à décalage dans les boucles For et dans les boucles While pour transmettre des valeurs d'une itération à l'itération suivante. Au ième tour de boucle, la valeur calculée est fonction de la valeur calculée au tour précédent Calcul i = N-1 Calcul i=N Calcul i = N+1 Exemple : factorielle n avec registre à décalage : Factorielle n Valeurs au dernier tour de boucle La valeur calculée à la dernière itération sort par le tunnel du registre Clic droit sur le bord de la boucle III – DECALAGES MULTIPLES 1°/ EXEMPLE $ % ,@ # 8 N< 8 D Z /3 - D VH = ?Z On répète la mesure périodiquement => boucle while Pour calculer Mi, on a besoin des valeurs mesurées dans les deux itérations précédentes. Acquisition Calcul Affichage Acquisition i = N-1 i=N Calcul Affichage Acquisition Calcul Affichage i = N+1 % La mesure est simulée par la génération d'un nombre aléatoire Tirer avec la souris pour disposer de la donnée transmise par la i-2ème itération Affichage sur un graphe déroulant de la moyenne des trois derniers nombres aléatoires générés mi mi-1 mi-2 Dans une boucle, si on retourne la valeur calculée sur l'entrée d'un opérateur, il apparaît un noeud de rétroaction, fonctionnant comme le registre à décalage. Noeud de rétroaction Initialisation du noeud de rétroaction pour le 1er tour de boucle & , ' " I ; ! @ Langage classique : Langage LabVIEW : Flot d'instructions Flot de données La structure séquence permet de reprendre le contrôle de l’ordre d’exécution du programme On ne maîtrise pas l'ordre d'exécution des « instructions » Les instructions écrites s'exécutent séquentiellement La structure séquence dans LabVIEW : La structure séquence se présente comme une succession d'étapes semblable à la pellicule d'un film Dans chaque étape (frame) : un diagramme. Les étapes successives sont exécutées dans l'ordre. Étape 1 diag 1 Étape 2 diag 2 Étape 3 diag 3 Etc ... Comme pour la structure condition, un seul diagramme n'est visible. Comme pour une boucle, on peut passer des valeurs d'une étape à l'autre. ) ) * < ) , = " E ' $ ! ! @ ! ! 4 Etape 0 : Acquisition du temps Génération du nombre aléatoire tant qu'il est différent du nombre à atteindre Etape 1 : Acquisition du temps Calcul et affichage de la durée $ Cette structure est souvent utilisée en informatique d'instrumentation Étape 1 Étape 2 Configuration Acquisition carte d'acquisition Sortie Commande Étape 3 RAZ carte daq Cette structure peut également être utilisée également pour commander un système séquentiel (feux de carrefour) ) ' ' , ' ' # ! Par contre dans une séquence empilée, il faut utiliser variable locale de séquence : clic droit sur le bord de la séquence. On dispose alors d’une flèche entrante distribuant la donnée dans les autres étapes de la séquence. " # @ ! & ) < ! ) ) " 7 ' $ / ! =" ' + , " ) ) <) ) " , * ! ' = ; <3TD =[ ! $ 7 ' $ " ) ! " 33 ) 3 *! A G ' " ! , ' E ' ) / ! ! ) ! * ) " ' ' @ ' ) ' ! ! & , ) " ) ' , , ' ' ' E ! " ! " ' E , % ' E ! ; * " ' / , ' E " ! ! ) ) , ' 0 7 ! % " % Sélectionner cette case de la palette de fonction ; ) ' E !< , ) ! * / ' =! ! ," 4 % I < 8 H) 0 ) ! % 3N D " HN V " ZN [ . 4 ' # ! " " % 4 5" 5" !< ' $ " @ $- / ) ) 3^? ' 1 0* Q N HT 0 E ) ) $ * ) ' 5" 5" 3\" 3\! $ * ] D ! % N ."9 YΩ" Hπ =H = X ) W 3?√<3 D < Q " ! N 3T C" ≈ 3TTT _P! ' 8* 8* ) 3H= ', ( +, - 0-+0 2 ' Z^? !< 3\" 3\ 3T= ) 85 H^? $ 82 4 $ .N ? 8% ) 7 7 F %= < $ ? = ' < ? ; = ! 4 86 %ϕN/ ) 3^? 8 < Hπ = ' $ . 3^? H^? ) Z^? ) 4 ! 89 1 + * ''01 ,* % / / / 3 H Z 4 8: '/ $ $ $ `3 `3 `3 `H `H `H ! ! " * -'/ 0 ? * < $HD $D N T= < 72=! ' $ $ " E <72 =! ) 4 8F 1 $! ) " , + ( B * ', +-0 ( ,, 3^? ) " @ " ' " ! H^? ) "@ " " ! 4 8G J, * ( - -K * ; ; - $ - ! ! ,"2 4 < 2= 28 H - K , ) - ) ! ≤ " 4 - 28% H - K ≤ N D < / =?H N D < V =?H 3^? 7 H^? 7 Z^? ' ! 282 . 1 4 ' 3H Z , , , 3^? 7 H^? 7 Z^? , ' '& - - '( ./ 1 - - '& ./ & - - 1 ./ - , - ) ! ! 0 2 3 ! !! ,"5 4 58 !'+-0 ( ! < 5= , ' G! 2 % ) ' $ 3^? 7 H^? 7 Z^? ' 4 ) ' $ ' ! 58% -+ +, ' , - - ) ) ! ' ! ' $ G <G ' 4 ) * ) 3^? 7 H^? 7 Z^? D ! U ) ' $ U ) ! 582 . + /1 >+ ) ! T ! 3 % . E T 3^? 7 H^? 7 Z^? .^? $ F = ' & ' ) * 4 ) ! ! ' $ ! T ] 4 585 '/ 01 ' T HT T"6 ! 3^? 7 H^? 7 Z^? ' .^? * ! ! ) = = ' ^ ' $ + ' , % < ^ ' =! - ! ! ,"6 4 68 T '/ $ < 6= 01 ' HT 3^? 7 H^? 7 Z^? ! T"6 ! ' 4 ! 68% . + )1'/1 >+ ) ! 3 T E T 3^? 7 H^? 7 Z^? .^? $ F ) ' HT . - ) & 5 ! ! ' $ ! T ] ,"9 4 ! 4< 9= 98 - T % 3T HT! 8 ) ! 4 98% - T 3- HT! < 3T =! ' $ " 6 " # = 0 = ! ) ' !" 4 982 ,( ? ', , *' - ' 3TT T"6 ! 0 H 4 Q 3T 8 T * $ 985 ! 0 +? '+-0 * / 36 >+1 * 3T , ' V D3T! T! 3^? 7 H^? 7 Z^? ' ! ,": 4 :8 ! *- ** * ( +, 1- Q G" GD3 4 < 00 0 ,1 ' < 7 9I :I F= 2%.26= $ ' ! ' 4 :8% ! (1 '+0 , ) ) " a 3 _P ' < ' ) ) ) a ) , 3T ! = ) ! a ! ! 3^? 7 H^? 7 Z^? .^? / 4 ' ! ' ] :82 . - G) #< = N 3T ) <H π =! * ! $ ) G ! !# G ) * ' # U 3^? 7 H^? 7 Z^? .^? 7 ' ! / ] 4 :85 8 , 4& ) #< = 4 :86 . Q G" Rb *- ** * ( +, 1GD3 :89 . 00 0') ' 4& 1- + ! / >+ < 7 2%.26= $ ' ! ' 4 ' 00 0') ! / >+ ' ' % Q < = N HT W3?√<3D< , ! G ) N 3T _P , N .9TT Ω" !Hπ = H = X ! N 3TTTTT _P N 3T C! < - = _P! 3^? 7 H^? 7 Z^? ' ! !$ ,"F 4 G ! < HT % N ' ! F8% 3T T 4 ) /3 [ 1 3^? 7 H^? 7 Z^? ) T ! 4 ' N /T"6 D3 N√< - ) % D 3= ! F82 % xn yn Filtre numérique #< = N < = / 3"\35T < / 3= D < / H= D 3"63\3#< / 3= / T"595T#< / H= % # /3 N T 1 ' % $ N c3"3"3 >! d K T! $ N T ) JT! # VH N T # , x 1 n 3^? 7 H^? 7 Z^? G= F8 ) 3^? 7 H^? 7 Z^? FI ' ! ," @ 4L < @= @8 DCy BP1 Led2 Led1 BP2 Capteur position initiale ) ' ' ' < ' ) < 3= - H=! : " ' 7 #< ) ' - # 2&3 7 # 2&3 = ) ) ! 2&H! 3^? 7 H^? 7 Z^? ' ! ) ! G! 2 % 4 ' $ ) ' $ U @8% Début OUI BP1 = Vrai NON Pour i = 0 à 9 Led 1 = Vrai Attente 3s Led 1 = Faux Fin 3^? F H^? $ Z^? 1 ) ' ] ! ! 4 @82 8* ! / 3T ' 2&! ) ! 2&H 3^? 7 H^? 7 Z^? ' ) ! ) 4 7 # ! @8 5 M + ( 0+/ K * ' 7 3T " ! ' ) ! # ) ! 7 $- 7 - 3T . " e ) @8 6 @ *+ ( +, ', ' + * ' ! ) ! / * ( ?1-+ ', ! 3^? 7 H^? 7 Z^? Z ! ! ! =! ^ # ' $ ' e ^ e " ) 4 < ' 3TTT 4 @8 9 $ +? ( - 7'+ ) " $ ! ! & * < ) ' 4 =! " ) ," 4 4 $ ! 8 , H 6TT ) % % W T " 3T τ X <3V $ </ ?τ== τ ) 0@ ' ! % ' ) ! ! 3^? Rb! H^? & " $ Z^? ! ) ) .^? Rb! , 4 - 8% ' ) ) ' ) ) ) ! !< <) Y ? ! =! = 120 100 90 60 50 3 1 $ 5 6 7 8 8,5 9 ! 9,5 10,5 11 4 82 '* / , ( * (',,1 * ) ! + 7 7 1 , ' % ) $ ! ! 7 f ! ) - $ ! ) 4 ! 85 ' $ H ' $ Z 4 86 @ ' ) ! ! 'N ,, )0 ** , # # # " + # # ) " , , ( + ( ! " # , ) / / ( @ ! # # ) ( / ) 8 ! # " ! " ' ' &83T < - , 8 3T g = .5 ! %??:::! / / ! ? ? ? ! 3? h h h ! % h6T! , , ! ' 1 1 F ' ) !& ! ! * # # 5 ! # ] ! ," % 4 %8 A '/ 4 + C N* 1 1* * # ' $ ) ! < = / ! s Quand e(t) augmente, s bascule à –10 quand e > 5. +10 -1 e 5 -10 Quand e(t) diminue, s bascule à +10 quand e < -1 3^? < 1 $ HT <: ) = = ' <= # ' ! e(t) +8 t -8 H^? C ; < = 4 %8% Rb! % <=N <Hπ = <Hπ = % JJ ! N T"3 _P ) N 3 _P! ) HT ! ! , ) ' $