Escolar Documentos
Profissional Documentos
Cultura Documentos
Page 1 sur 55
Chapitre 1 INTRODUCTION
I LA PROGRAMMATION
Un ordinateur en fonctionnement ralise des tches pour lesquelles il a t programm.
Le programme est crit dans un langage de programmation, en respectant une syntaxe propre au langage choisi.
COMPILATEUR
Langage de programmation
crire en respectant la syntaxe d'un langage, la suite des tches devant tre excutes par l'ordinateur, de faon logique et structure
Assembleur
Compilation = Traduction
Langage Machine
Page 2 sur 55
II ALGORITHME
Programmer, cest crire en respectant la syntaxe d'un langage, la suite des tches devant tre excutes par l'ordinateur, de faon logique et structure. On ne se lance pas crire un programme sans avoir rflchi au problme pos, et la faon de le rsoudre. Il faut laborer un algorithme :
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 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
A lg o r ith m iq u e
Fortran
Algorithme
Basic
LabVIEW
Visual Basic
L'algorithme se ramne une combinaison de 4 familles d'instructions : - Affectation de variables - Lecture criture - Tests - Boucles
Page 3 sur 55
Un diagramme :
Ces donnes constituent des variables dentre. Leur traitement (par exemple : filtrage, analyse frquentielle ) donne naissance des rsultats (affichage dun graphe dvolution de la temprature mesure) ou engendre des actions de commande dlivres par lordinateur (commande darrt de chauffage). Ces informations constituent des variables de sortie. Variables dentres Programme Variables de sortie
Page 4 sur 55
2/ ENTREES SORTIE DANS LabVIEW Les entres sorties sont dposes sur la face avant sous la forme dobjets tels que : o o o o o o o o o boutons poussoirs interrupteurs potentiomtres rotatifs ou glissire Afficheur numrique en lecture. Etc crans doscilloscope Afficheurs numriques en criture (affichage) Vu-mtres Etc
entres
sorties
Ces objets sont disponibles dans la palette de commandes qui apparat par clic droit sur la face avant. On les place par gliss dpos .
VI LE PROGRAMME LabVIEW
Le programme est crit en langage graphique dans une deuxime fentre diagramme indissociable de la face avant. Les entres sorties apparaissent alors sous la forme de terminaux.
Page 5 sur 55
1re variable
Lcriture du programme consiste relier entre eux les terminaux dentres sorties en utilisant : o o o o des oprateurs arithmtiques des oprateurs boolens des fonctions de calcul toutes prtes des structures de programmation (boucles, tests etc )
Ces outils sont disponibles dans la palette fonction apparaissant par clic droit dans le diagramme.
Page 6 sur 55
Les liaisons sont ralises laide de la bobine de la palette doutils disponible par le menu Fentre/palette doutils (Windows/tools palette).
Texte
Pour cbler
Colorer un objet
Lensemble face avant + diagramme constitue un programme LabVIEW encore appel VI (Virtual Instrument). Ce VI peut tre encapsul cest dire mis en bote sous la forme dune icne constituant un sous programme, une fonction pouvant tre utilise dans un autre diagramme.
Page 7 sur 55
Lorsque lon dpose une variable dentre ou sortie sur la face avant dun VI, on dfinit : o Le nom de la variable : son tiquette o La reprsentation ou le type de la variable : la place en octet occupe par la variable et le mode de codage.
PALETTE DE COMMANDES
Page 8 sur 55
PALETTE DE COMMANDES
III INITIALISATION
Initialiser la variable, cest lui donner une valeur quelle prendra ds le dbut du programme. Pour cela un clic droit sur lobjet, puis oprations sur les donnes puis valeur actuelle par dfaut.
Page 9 sur 55
IV TYPE DE VARIABLE
1/ CODAGE DES NOMBRES ENTIERS a Codage sur un octet
CODAGE SUR UN OCTET
S a ns b it d e s ig ne
Valeurs dcimales possibles
de 00000000 11111111
de
28 -1 = 255
A v e c b it d e s ig ne
de 00000000 01111111
positif
Type char (langage C) Type I8 en LabVIEW
de
27 -1 = 127
f ngati
Complment deux
Page 10 sur 55
S a n s b it d e s ig n e
V aleurs dcim ales possibles de 0 2 16 -1 = 65535
A v e c b it d e s ig n e
p o s it i
Type int (langage C) Type I16 en LabV IE W
f
de 0 2 15 -1 = 32767
n g at
Com plm ent deux
if
de -1 - 2 15 = -32768
+ 0,662 * 2 - 26
Signe : 1 bit Exposant :8 bits Mantisse : 23 bits
Valeurs extrmes possibles : Nombre nul : 0 Nombre positifs de : 1,21 10 -38 3,40 10 38 Nombres ngatifs de : - 1,21 10 -38 - 3,40 10 38
Type : Float en C, Type SGL en LabVIEW
Page 11 sur 55
3/ VARIABLES BOOLEENNES
Vraie : True
Variable Boolenne
Fausse : False
Codage sur 1 seul bit
N'existe pas dans tous les langages : OK en labVIEW mais pas en C !
V FORMATS DAFFICHAGE
Page 12 sur 55
VI - EXERCICES CHAPITRE 2
EXERCICE 2.1 Reprendre le programme de lexercice 1.1 et modifier le type des variables a et b. Excuter le programme, noter et commenter les rsultats surprenants obtenus. EXERCICE 2.2 Raliser un programme qui calcule les racines dune quation du second degr si >0. On pourra utiliser la bote de calcul. EXERCICE 2.3 Raliser un programme qui convertit un nombre de mois, de jours, dheures, de minutes et de secondes en secondes. EXERCICE 2.4 Raliser un programme qui convertit un nombre de secondes en mois, jours, heures, minutes et secondes.
Page 13 sur 55
oui
Contact appuy ?
non
Arrt moteur
Variable Mav boolenne Variable contact boolenne Mav 1 Lire contact Si contact = 1 alors Mav 0 sinon aller 4me ligne fin Pseudo code
Dbut Si condition vraie alors instructions 1 sinon instructions 2 Suite
Organigramme
II - DEFINITION
Dbut
oui
Condition
non
Instructions 1
Instructions 2
Suite
Une structure conditionnelle (structure de choix) permet de raliser une suite d'instructions ou une autre, en fonction du rsultat d'un test.
En LabVIEW : excution d'un diagramme ou d'un autre suivant le rsultat vrai ou faux d'un test
Page 14 sur 55
III EN LabVIEW
Cliquer pour visualiser le diagramme ralis si condition fausse Diagramme dlimit, excut si condition vraie Condition crire Un seul diag visible la fois
La transmission des donnes se fait via un tunnel d'entre ou de sortie. La condition : met en jeux un oprateur de comparaison
Les tunnels de sortie doivent tre relis dans les deux diagrammes conditionnels Le diagramme cach
Page 15 sur 55
IV LA CONDITION
La comparaison peut tre simple : elle met en oeuvre un oprateur de comparaison (>, <, etc ... ou d'galit) comme dans l'exemple prcdent. Elle peut tre plus complexe et mettre en oeuvre galement des oprateurs logiques.
V IMBRICATION
C'est insuffisant
Diagramme cach
Page 16 sur 55
VI - EXERCICES CHAPITRE 3
EXERCICE 3.1 Ecrire un programme qui : - compare deux nombres a et b - allume une led si a > b - affiche sur un afficheur numrique a si a < b - affiche b sur le mme afficheur si a > b. EXERCICE 3.2 Reprendre le programme de lexercice 2.2 de calcul des racines de lquation du second degr et traiter en utilisant la structure conditionnelle tous les cas possibles en fonction de la valeur du discriminant. On utilisera la reprsentation complexe pour les indicateurs numriques affichant les solutions de lquation.
Page 17 sur 55
Contact appuy ?
Arrt moteur
Variable Mav boolenne Variable contact boolenne Mav 1 Faire tant que contact = 0 Lire contact Mav 0 fin Pseudo code
Organigramme
Dbut
Instructions rpter
non
Condition
oui
Page 18 sur 55
Diagramme rpt
Page 19 sur 55
III EXEMPLE 2
Le wagon doit faire 10 aller-retour.
Dbut
i 0
oui
non
i=9
aller-retour
i+1
Fin
Organigramme
Instructions du dbut Pour i = 0 N-1, faire : instructions rpter i i+1 suite du programme non Instructions rpter
i i+1
oui
i = N-1
Suite
Page 20 sur 55
Diagramme rpt Nombre de tours de boucle Terminal d'itration : compte les rptitions
Valeur transmise au premier tour de boucle. Toute intervention de l'utilisateur devient inutile Valeur obtenue au dernier tour de boucle
Page 21 sur 55
Page 22 sur 55
Exemple : Tableau nomm Tab de 3 entiers type U8 Chaque lment du tableau est repr par un indice i allant de 0 N-1
Tableau vide
Page 23 sur 55
Tableau vide
Page 24 sur 55
IV INDEXATION
1/ En entre
Indexation : Au ime tour de boucle, le ime lment du tableau est transmis par le tunnel d'entre. Lors du cblage, l'indexation se ralise automatiquement.
Tous les lments du tableau sont multiplis par i chaque tour de boucle
Pas d'indexation : le tableau est transmis chaque tour de boucle dans son intgralit par le tunnel d'entre.
Page 25 sur 55
2/ En sortie
Pas d'indexation : la dernire valeur calcule au dernier tour de boucle est transmise via le tunnel de sortie
indexation : un tableau des valeurs calcules chaque tour de boucle est transmis via le tunnel de sortie quand la boucle est termine
#Page 124
V EXERCICES
EXERCICE 5.1 Raliser un programme qui gnre automatiquement un tableau de 10 nombres entiers compris entre 0 et 20. Modifier ce programme pour afficher successivement toutes les secondes les lments du tableau sur un afficheur numrique. EXERCICE 5.2 Raliser un programme qui gnre automatiquement un tableau de 10 nombres entiers compris entre 0 et 20. (faire un copier coller de la 1re partie de lexercice prcdent). Une fois le tableau gnr, on souhaite liminer les 5 lments les plus petits sans les remplacer, et afficher sur un afficheur numrique la moyenne des lments du tableau. a) Aprs avoir raliser le tri du tableau b) Sans trier pralablement le tableau et sans changer lordre des lments
Page 26 sur 55
EXERCICE 5.3 : abscisses dune chelle linaire. Gnrer un tableau de N+1 points dabscisse x compris entre a et b dune graduation linaire. N, a et b sont des commandes numriques saisies par lutilisateur du programme. ECHELLE LINEAIRE N+1 points rgulirement espacs ime point a i+1 me point b
Pas : distance entre deux points. On a : pas = (b a) / N Passage d'un point l'autre : xi = x i-1 + pas Ainsi : xi = a + i . pas
EXERCICE 5.4 : abscisses dune chelle logarithmique Gnrer un tableau de N+1 points dabscisse x compris entre a et b dune chelle logarithmique. N, a et b sont des commandes numriques saisies par lutilisateur du programme. ECHELLE LOGARITHMIQUE N+1 points rgulirement espacs ime point log a i+1 me point log b
Pas : distance entre deux points. On a : pas = (log b log a) / N = log (b/a)1/N Passage d'un point l'autre : log xi = log x i-1 + pas Ainsi : log xi = log a + i . pas = log a + i log (b/a)1/N = log a + log (b/a)i/N = log [ a . (b/a)i/N ] Donc : xi = a . (b/a)i/N <=> xi = a . (b/a)i-1/N . (b/a)1/N xi = xi-1 . (b/a)1/N ou xi = a . [(b/a)1/N ] i
Page 27 sur 55
Donnes perdues
historique
Partie visible
A chaque instant le graphe ne reoit qu'une donne la fois : Ce n'est pas un tableau de valeurs. Par programmation, il faut donc rpter l'envoi des donnes au graphe, le terminal graphe doit donc tre dans une boucle while.
Exemple dans LabVIEW :
Le Graphe droulant est un indicateur. Par dfaut son type est DBL. Ce n'est pas un tableau de valeur (trait fin): Cet indicateur ne reoit qu'une valeur la fois, il doit tre dans la boucle.
Page 28 sur 55
Certains paramtres du graphe peuvent tre ajusts : clic droit sur lobjet graphe dans la face avant.
LE FORMATAGE DU GRAPHE
Le rle du graphe est de reprsenter graphiquement un tableau de donnes. 0 1 2 3 4 5 6 7 donne 5 10 15 20 25 30 35 40 Le graphe reoit simultanment l'ensemble des donnes sous forme d'un tableau de valeurs. Les donnes sont gnralement calcules dans une boucle
Par programmation, il ne faut envoyer les donnes 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
Page 29 sur 55
III GRAPHE XY
Le rle du graphe XY est de reprsenter graphiquement un tableau de donnes Y en fonction d'un tableau de donnes X Donne X Donne Y Le graphe reoit simultanment 0,1 5 l'ensemble des donnes 10 0,2 sous forme de 2 tableaux de valeurs. 0,3 15 0,4 20 0,5 25 Les donnes sont gnralement 0,6 30 calcules dans une boucle 35 0,7 0,8 40 Par programmation, il ne faut envoyer les donnes 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 assembls pour former un cluster.
Page 30 sur 55
Page 31 sur 55
IV - EXERCICES EXERCICE 6.1 : Graphe droulant Raliser un programme qui affiche sur un graphe droulant une sinusode bruite. La fonction sinusodale sera y = 10 sinx Le bruit est gnr par un nombre alatoire dont lamplitude est rglable grce une commande situe sur la face avant. Le programme sarrtera lors de lappui sur un bouton STOP. EXERCICE 6.2 : Graphe Reconsidrer le programme prcdent pour afficher deux priodes de la sinusode bruite. 100 points seront calculs. EXERCICE 6.3 : Graphe XY chelle linaire Ecrire le programme permettant dafficher sur un graphe la fonction f(t) = U sin (2f t + ) pour t compris entre 0 et Tmax. Le nombre de points N, f, et Tmax seront modifiables sur la face avant. Le graphe doit tre gradu en temps. Lchelle temporelle est linaire. EXERCICE 6.4 : Graphe XY chelle logarithmique Ecrire un programme permettant dafficher sur un graphe la courbe de rponse en frquence dun circuit RC : G (f) = 20 log [ 1 / ( 1 + (RC.2f) 2 ) ] R et C sont modifiables grce une commande numrique. Le nombre de points N est modifiable galement sur la face avant. Le graphe utilisera en abscisses une chelle logarithmique (points rgulirement espacs) qui sera gradue en Hz.
Page 32 sur 55
On utilise des registres dcalage dans les boucles For et dans les boucles While pour transmettre des valeurs d'une itration l'itration suivante. Au ime tour de boucle, la valeur calcule est fonction de la valeur calcule au tour prcdent Calcul
i = N-1
Calcul
i=N
Calcul
i = N+1
Page 33 sur 55
Factorielle n
Valeurs au dernier tour de boucle La valeur calcule la dernire itration sort par le tunnel du registre
III DECALAGES MULTIPLES 1/ EXEMPLE Exemple : Calculer et mettre jour la moyenne M des 3 dernires mesures mi
On a M = ( m + m +m ) /3 i i i -1 i2
Page 34 sur 55
On rpte la mesure priodiquement => boucle while Pour calculer Mi, on a besoin des valeurs mesures dans les deux itrations prcdentes.
Acquisition Calcul Affichage i = N-1 Acquisition Calcul Affichage Acquisition Calcul i = N+1 Affichage
i=N
Tirer avec la souris pour disposer de la donne transmise par la i-2me itration
Affichage sur un graphe droulant de la moyenne des trois derniers nombres alatoires gnrs
mi mi-1 mi-2
Page 35 sur 55
IV NOEUDS DE RETROACTION
Dans une boucle, si on retourne la valeur calcule sur l'entre d'un oprateur, il apparat un noeud de rtroaction, fonctionnant comme le registre dcalage.
Noeud de rtroaction Initialisation du noeud de rtroaction pour le 1er tour de boucle
Par rapport au registre dcalage, le nud de rtroaction simplifie le cblage et fait apparatre clairement lappel du rsultat du calcul du tour de boucle prcdent. V EXERCICES EXERCICE 7.1 Avec laide de ce chapitre, reprendre lexercice 4.2 en utilisant un nud de rtroaction : Raliser un programme qui calcule n! (factorielle n). n est un nombre entier positif. EXERCICE 7.2 Reprendre lexercice 4.3 en utilisant le registre dcalage : Raliser un programme qui affiche successivement toutes les secondes les 20 premires valeurs de la suite gomtrique dfinie par son premier terme u0 et sa raison q entrs au clavier sur des afficheurs numriques. Rappel : un = un-1 * q EXERCICE 7.3 Tableaux et boucles imbriques (ne concerne pas forcment ce chapitre) Gnrer un tableau de 15 lignes et 10 colonnes laide de nombres entiers alatoires compris entre 10 et +10. Modifier le programme pour remplacer les nombres pairs par 0.
Page 36 sur 55
La structure squence dans LabVIEW : La structure squence se prsente comme une succession d'tapes semblable la pellicule d'un film Dans chaque tape (frame) : un diagramme. Les tapes successives sont excutes 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.
Les diffrentes tapes peuvent tre empiles (une seule visible la fois) ou droules. On retrouve cette structure dans la palette de fonctions, contrles dexcution.
Page 37 sur 55
On ajoute les tapes grce au menu local apparaissant par clic droit sur le bord de la squence.
Page 38 sur 55
III EXEMPLE
Etape 0 : Acquisition du temps Gnration du nombre alatoire tant qu'il est diffrent du nombre atteindre
Cette structure peut galement tre utilise galement pour commander un systme squentiel (feux de carrefour)
Page 39 sur 55
V PASSAGE DE VALEURS DANS LA SEQUENCE Le passage de valeurs dune tape lautre dune squence droule se fait naturellement au moyen dun tunnel.
Par contre dans une squence empile, il faut utiliser variable locale de squence : clic droit sur le bord de la squence. On dispose alors dune flche entrante distribuant la donne dans les autres tapes de la squence.
Page 40 sur 55
VI EXERCICE EXERCICE 8.1 : Ecrire un programme simulant et grant les feux de signalisation dun carrefour routier. Les 4 feux fonctionnant 2 par 2 sont raliss avec des leds colores.
Page 41 sur 55
Chapitre 9 COMPLEMENTS
I VARIABLES LOCALES
Pour simplifier le cblage (liminer des fils de trop grande longueur), on peut avoir recours une variable locale. La variable locale cre prend le nom de la variable dorigine, et peut tre utilise en lecture ou en criture, forant ainsi la donne changer de valeur.
Dans lexemple ci-dessous, la variable locale est en lecture (variable dentre) et apparat comme une copie de a. Le terminal de sortie affichera donc (10+a)*a.
Page 42 sur 55
Dans lexemple ci dessous, la variable locale est en criture. Si la valeur de a tait 1 au lancement du programme, elle se transforme en 11 lors de son arrt.
LabVIEW sait que le programme manipule trois variables dentre et une sortie, et propose le connecteur correspondant. Il peut cependant tre chang. Il convient ensuite dassocier chaque rectangle du connecteur une variable dentre ou sortie. Pour cela il faut cliquer laide de loutil bobine, dabord sur lobjet de la face avant correspondant la variable, puis sur le rectangle de licne.
Page 43 sur 55
Ensuite, on peut modifier licne correspondant ce sous programme : Choisir modifier licne dans le menu local obtenu par clic droit sur le connecteur.
Il apparat alors la fentre ci-dessous permettant de modifier, grce une palette de dessin, lapparence de licne associe au sous VI.
Page 44 sur 55
Il convient ensuite de sauvegarder ce sous VI lemplacement dsir. Appel au sous dans un programme principal : Dans le diagramme du programme principal, on utilise la palette de fonction :
Page 45 sur 55
1/ Ecrire un programme affichant sur un graphe droulant (waveform chart) la sortie s(t) pour une entre triangulaire priodique (priode T par exemple de 20 ms) tant que lon na pas appuy sur un bouton stop. e(t) +8 t -8 2/ Faire apparatre la caractristique de transfert s(e) sur un graphe XY.
Page 46 sur 55
IUT BELFORT MONTBELIARD Dpt MESURES PHYSIQUES EXAMEN PARTIEL DINFORMATIQUE 2004/2005 Sujet D Dure 3h Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits Sauvegardez priodiquement votre travail EXERCICE 9.2 7 pts (2+2+3) Un rcepteur inductif aliment sous U = 220 V consomme une puissance active P . Lintensit du courant quil absorbe est I. P et I sont des commandes (potentiomtre rotatifs) sur la face avant. 0 < P < 5000 W et 0 < I < 50 A. 1/ Afficher sur un vu-mtre le cos. 2/ Ajouter une commande sur la face avant reprsentant un condensateur en parallle. Afficher le nouveau cos obtenu sur un second vu-mtre. Afficher le courant nouveau courant I consomm sur un indicateur. Rappel : Qc = - C 100 U2 tg = (Q+Qc)/P P = UI cos = U I cos
Tout contrle continu est soumis au rglement des examens de luniversit. Toute tentative de fraude ou fraude avre, sous quelque forme que ce soit, met immdiatement fin lexamen, est immdiatement sanctionne par la note zro et est passible du conseil de discipline de luniversit.
3/ Modifier le programme pour que la valeur idale de C conduisant cos dsir plac sur une commande en face avant soit trouve automatiquement et affiche sur un indicateur numrique.
EXERCICE 9.3 6 pts (4+1+1) Un projectile est lanc dans le champ de pesanteur terrestre avec une vitesse initiale V0 faisant un angle avec lhorizontale, partir dune position initiale de coordonnes (0,0). Les frottements tant ngligs, les quations horaires des coordonnes cartsiennes du centre dinertie sont : y = - g t / 2 + ( V0 sin ) t x = ( V0 cos ) t V0 et son des commandes sur la face avant telles que 0 < V0 < 100 et 0 < < 90 (attention, labVIEW calcule le cos ou sin dun angle en radians).
Page 47 sur 55
1/ Faire apparatre dans un graphe xy la trajectoire du centre dinertie. Le programme devra tourner en boucle avec arrt par appui sur un bouton STOP. 2/ Modifier le VI pour faire apparatre sur un indicateur la flche (la hauteur maximale) de la trajectoire. 3/ Modifier le VI pour faire apparatre sur un indicateur la porte du tir : distance atteinte quand la coordonne y redevient nulle. N.B : Avec les valeurs de V0 et de proposes, le pas temporel pourra tre t = 0,1 nombre de points N = 100.
et le
EXERCICE 9.4 7 pts (3,5+3,5) 1/ Raliser un programme qui affiche la variable yi pour i allant de 0 9 sur un graphe droulant sachant qu la ime itration : yi = (xi /2 + x i-1/4 + x i-2 / 8) xi est un tableau de commandes numriques initialis (1, 0, 0.) Le droulement du graphe sera temporis par une attente de 100 ms. Lensemble du programme tournera en boucle et sarrtera par appui sur un bouton STOP.
N. B : Pour extraire llment dindice i dun tableau : palette fonction/tableau/index array : 2/ Raliser un programme qui affiche la variable yi pour i allant de 0 9 sur un graphe droulant sachant qu la ime itration : yi = (xi + y i-1 ) / 2 xi est un tableau de commandes numriques initialis (1, 0, 0.) Le droulement du graphe sera temporis par une attente de 100 ms. Lensemble du programme tournera en boucle et sarrtera par appui sur un bouton STOP.
Page 48 sur 55
Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits
Sauvegardez priodiquement votre travail Traiter les exercices dans lordre impos
EXERCICE 10.1 Drivation dun sinus 1/ Tracer sur un graphe normal (waveform graphe) la courbe reprsentant la fonction sin(t) (On calculera N points pour quelques priodes). 2/ Sachant que la drive y(ti) = [ y(ti) y(ti-1) ] / t, laborer un tableau des valeurs de la drive chaque instant et superposer la courbe reprsentant y sur le mme graphe que y. N.B : On nutilisera pas de vi express pour laborer la drive, ni doutils labVIEW de drivation. EXERCICE 10.2 Cyclode Une roue de charrette de rayon R roule sans frottements ni glissement sur un plan horizontal la frquence de rotation n en tours/s. Les coordonnes dun point M de la roue vrifient les quations paramtriques suivantes : x(t) = R [ 2n t - sin( 2nt) ] et y(t) = R [ 1 cos(2nt) ] 1/ Raliser un programme qui affiche la courbe sur un graphe xy. On calculera N = 1000 points, le pas temporel pourra tre t = 0,001s. R, n et t seront des commandes situes sur la face avant. 2/ Complter le programme pour afficher sur un indicateur numrique : La distance d parcourue par le point M cest dire la longueur des arches de cyclodes dessine reprsentes, sachant que : d = { [x(t)]2 + [y(t)]2} On utilisera le procd ralis au 2/ de lexercice 1 pour laborer x et y. Pour lintgration, on pourra utiliser un VI express en choisissant le calcul par segments, et en divisant le rsultat par le nombre de points. EXERCICE 10.3 Le Zanzibar Ce jeux se joue avec trois ds et deux joueurs. Le premier joueur (que l'on dterminera comme on veut mais sans dispute!) lance les ds. S'il fait un as (ou 1) il marque 100 points, s'il fait un 6 il marque 60 points, les autres faces du d indiquant le nombre de points correspondant (2= 2 points, 3= 3 points, 4= 4 points, 5= 5 points)
Page 49 sur 55
= 100 points = 2 points = 3 points = 4 points = 5 points = 60 points Chaque joueur joue alternativement en un lancer de 3 ds et on fait 3 tours. Le gagnant est celui qui a le plus de points. Laction de jeu sera lance par lappui par le joueur concern sur un bouton poussoir. Les points de chaque joueurs seront affichs sur deux indicateurs numriques. Afficher le joueur gagnant.
Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits
Sauvegardez priodiquement votre travail sous h:\ le fichier sera nomm : aa-votrenom1.vi pour lexo1 etc
I - Exercice 11.1
Une courbe cardiode est dfinie par son quation polaire : r = 1 + cos . Les coordonnes cartsiennes en fonction de sont donc : x = (1+ cos ) cos et y = (1 + cos ) sin Tracer sur un graphe XY la courbe cardiode. On prendra 100 points sur une priode de 2. Le fichier sera nomm : a-votrenom1.vi
Page 50 sur 55
II EXERCICE 11.2
Un nombre alatoire compris entre 0 et 10 est gnr toute les 500 ms pour simuler un signal audio. Les variations de ce signal sont visualises grce un vu-mtre. Une deuxime aiguille (clic droit sur le vu-mtre) permet de suivre lvolution de la crte du signal : elle affiche la valeur max des 5 dernires valeurs gnres. Les volutions du signal et de la crte seront galement observes sur un graphe droulant. Lappui sur un bouton Stop mettra fin lvolution. Le fichier sera nomm : a-votrenom2.vi
Page 51 sur 55
Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits Web mail interdits N.B : Rseau sous surveillance
Sauvegardez priodiquement votre travail Le fichier sera nomm : a-votrenom3.vi EXERCICE 12.1
Tout contrle continu est soumis au rglement des examens de luniversit. Toute tentative de fraude ou fraude avre, sous quelque forme que ce soit, met immdiatement fin lexamen, est immdiatement sanctionne par la note zro et est passible du conseil de discipline de luniversit.
On souhaite reprsenter sur un graphe XY la courbe dquation paramtrique : x(t) = r(t) cos (t) et y(t) = r(t) sin(t) R(t) et (t) sont les coordonnes polaires donnes par : r(t) = V t et (t) = t V et sont des variables numriques dentres : commandes sur la face avant. Ecrire le programme permettant dafficher le graphe XY sur la face avant : On calculera 200 points pour : 0 < t < .
EXERCICE 12.2
Soit P une population danimaux prdateurs (Lynx) et H une population de proies (Livre). Lvolution de ces deux populations sont troitement lies. Elles sont modlises de la faon suivante : Pi+1 = a p Pi Hi + (1 - d) Pi Hi+1 = (r + 1) Hi p Hi Pi r : taux daccroissement naturel de la population de proies p : proportion de rencontres entranant la mort dune proie (efficacit du prdateur) d : taux de mortalit du prdateur a : fraction de lnergie apporte par la capture dune proie convertie en naissance. r, p, a, d sont des commandes numriques places sur la face avant. On prendra les coefficients suivants :
r 0,05 p 0,001 a 0,2 d 0,03
H0 et P0 populations linstant initial sont des commandes situes en face avant initialises H0 = 200 et P0 = 50.
Page 52 sur 55
Ecrire le programme LabVIEW permettant de visualiser sur un mme graphe droulant lvolution des populations des prdateurs et des proies. Le programme sarrtera par lappui sur un bouton STOP.
EXERCICE 12.3
4 boutons (potentiomtres rotatifs) de type U8 rgls pour permettre une variation de 0 9 sont placs sur la face avant. Ces 4 boutons permettent loprateur de saisir son code pouvant tre modifi tant quil na pas appuy sur un bouton poussoir VALID. Le code secret sera : 1789. Si le code entr correspond au code secret, le programme allumera une led en vert et le programme sarrtera. Si le code entr ne correspond pas au code secret, le programme allumera la mme led en rouge. Loprateur aura droit trois essais pour entrer le bon code. Au del, le programme sarrtera. 1/ Ecrire lorganigramme de ce programme au verso de cette feuille 2/ Raliser le programme LabVIEW.
Page 53 sur 55
EXAMEN PARTIEL DINFORMATIQUE 2007/2008 Sujet C Dure 3h - Sorties interdites Tous documents manuscrits autoriss Accs rpertoire personnel autoris Tlphones portables interdits Web, mail, cls USB interdits N.B : Rseau sous surveillance Sauvegardez priodiquement votre travail la racine de votre rpertoire personnel sous un nom du type : A_votrenom_nexo.vi EXERCICE 1 30 min Reprsenter sur un graphe droulant le signal modul en amplitude : h(t) = sin (2 fm t) sin(2 fp t) fp est la frquence porteuse et fm est la frquence modulante : fm << fp. fm et fp sont des variables numriques disponibles sur la face avant. Elles seront initialises fm = 0,1 Hz et fp = 1 Hz. On souhaite disposer de 20 points par priode de la porteuse tout en visualisant sur lcran deux priodes du signal modulant. EXERCICE 2 1h30 Soit un nombre virgule flottante X, correspondant une commande numrique en face avant, suppos inconnu du programme. X est compris entre 0 et Uref On cherche dterminer la valeur approche de X et donner la valeur numrique correspondante sous la forme dun mot binaire 12 bits (b0, b1, b2, b3, , b10, b11), par la mthode des approximations successives. Pour cela, 1) on compare X V = Uref/21 Si X > V => b0 = 1 puis, on ajoute Uref/22 V Si X < V => b0 = 0 puis, on enlve Uref/22 V 2) on compare X V nouvellement obtenu : = Uref/21 + ou - Uref/22 Si X > V => b1 = 1 puis, on ajoute Uref/23 V Si X < V => b1 = 0 puis, on enlve Uref/23 V Ainsi de suite jusqu avoir dtermin b11
Page 54 sur 55
La valeur de V obtenue alors donne la valeur approche de V qui sera convertie ; le mot binaire (b0, b1, b2, b3, , b10, b11) constitue la conversion numrique de X, b0 tant le bit de poids le plus fort et b11 celui de poids le plus faible. 1/ Dessiner lorganigramme du programme schmatisant lalgorithme permettant de dterminer la valeur approche V de X et dafficher le mot binaire (b0, b1, b2, b3, , b10, b11) sur un tableau de 12 leds. 2/ Raliser le programme LabVIEW correspondant. X et Uref commandes numriques en face avant. Uref initialise 12 V. V indicateur numrique en face avant (b0, b1, b2, b3, , b10, b11) tableau de 12 leds. EXERCICE 3 30 min
Led Tmoin moteur : vert Marche avant. Led Tmoin moteur : rouge Marche arrire.
Capteur C1
Capteur C2
On considre un chariot pouvant se dplacer sur des rails, en marche avant ou arrire. 2 capteurs C1 et C2 tout ou rien (boolen) sont 1 quand le chariot est dans la position correspondante. C1 et C2 sont deux boutons poussoirs sur la face avant. Lorsque le capteur C1 est 1 (wagon en position initiale) et lorsque loprateur appuie sur le bouton poussoir dpart cycle (commande boolenne sur la face avant), le chariot attend 2 s, puis passe en marche avant. Quand il arrive en bout de rail, le capteur C2 passe 1 (appuyer sur le bouton poussoir), le moteur sarrte alors pendant 3s puis la marche arrire senclenche. Quand le chariot arrive en position initiale (appuyer sur le bouton poussoir), le capteur C1 passe 1, le moteur sarrte, et le systme attend un nouveau dpart cycle. 1/ Dessiner lorganigramme 2/ Raliser le programme LabVIEW correspondant.
Page 55 sur 55