Sunteți pe pagina 1din 38

Lucrare laborator 1

1. Introducere
Lucrarea analizeaza funcționarea diferitelor etaje de conditionare (aici de
amplificare) asupra semnalor de nivel mic (de natura biomedicală).
În prima parte se simuleaza în LTSpice o serie de schema de amplificatoare, de
la o complexitate mică la o complexitate mare. Programul LTSpice este freeware
și se poate lua de pe rețea. Astfel sunt avute în vedere funcționarea etajelor de
amplificare cu amplificatoare operaționale de la configurații simple la
amplificatoare de instrumentație.

2. Desfășurarea lucrării
2.1. Amplificatorul operațional în configurație neinversoare
Pentru schema din figura 1 se dimensionează componentele pentru amplificarea
unui semnal de ordinul mV (valoare indicata de cadrul didactic) pentru a obție un
nivel maxim de 5V la ieșire.

 R 
U 0  A  U i = 1 + f   U i
 Re 

Fig. 1. Amplificator operațional în configurație neinversoare


Pentru realizarea unui decalaj (offset) a semnalului de la ieșire se folosește
schema din figura 2. De exemplu se poate considera o variație de 3 volți a
tensiunii de ieșire cu un decalaj inițial de 2 volți.
Fig. 2. Realizarea unui decalaj pentru tensiunea de ieșire
2.2. Amplificatorul operațional în configurație inversoare
Față de structura simplă, se analizeză funcționarea circuitului pentru
realizarea unui decalaj de 1 volt, figura 3. Semnalul de intrare să fie de ordinul
milivolților, iar cel de ieșire de ordinul volților (<10v).

Fig. 3. Amplificator operațional în configurație inversoare cu reglaj de decalaj


Potențiometrul se poate înlocui cu un divizor rezistiv.
2.3. Amplificatorul diferențial
Pentru simularea schemei amplificatorului diferențial se pot folosi doua
surse (de curent continuu sau alternativ) pentru semnalele de intrare, cu valori
ale tensiunii generate diferite. Diferența dintre valorile surselor de semnal de la
intrare trebuie să fie de ordinul milivolților iar nivelul tensiunii de ieșire să fie de
ordinul volților.

Fig. 4. Amplificator operațional în configurație diferențială


Relațiile de dimensionare sunt:

Dacă R1=R3 și R2=R4 atunci:

2.4. Amplificatorul de instrumentație


Este cel mai complet amplificator, caracterizat printr-o rejecție foarte bună
a tensiunii de mod comun, figura 5.
Dacă parametrii de simulare nu sunt bine corelați, este posibil ca simularea
să nu funcționeze (în special datorită idealizării amplificatoarelor operaționale).
Pentru funcționalitate este posibil să fie nevoie de rezistențe conectat la intrarea
amplificatorului de instrumentație și masă.
Fig. 5. Amplificatorul de instrumentație
Relațiile de funcționare sunt:

Pentru semnale de intrare și ieșire se folosesc indicațiile de la amplificatorul


diferențial.
3. TEMĂ DE PROIECT
Să se proiecteze un sistem de achiziție de date bazat pe componente
compatibile cu sisteme logice TTL (partea numerică are nivele logice TTL, 0
respectiv 5V). Datele achiziționate provin de la traductoare de temperatură de tip
termocuplu (TC).
Parametrii sunt următorii:
1. Număr de traductoare (canale): 8 ;
2. Gama de temperatură: -50…250 [ °C ] ;
3. Precizia traductoarelor să fie mai bună decât: 0.8 [%] ;
4. Tip senzor: TC .
3.1. SCHEMA DE PRINCIPIU

Fig. 6. Schema de principiu a unui termocuplu cu 8 canale

T1, T2 … T8 – Traductor de temperatură;


MUX – Circuit de multiplexare;
A/AD/AI – Amplificator;
E&M – Bloc de eșantionare și memorare;
CAN/CAD – Convertor analog/numeric;
n – Numărul de biți pe care se reprezintă datele = numărul de biți ai
convertorului analog-numeric;
m – Numărul de biti de selectie ai multiplexorului, rezultat din numărul de
intrări impus.
3.2. NOȚIUNI TEORETICE TERMOCUPLU
Materialele care puse împreună manifestă efect Seebeck, formează un
termocuplu. Intr-un fir metalic ale cărui capete se află la temperaturi diferite TA >
TB , apare o diferență de potențial electric UAB , cauzată de faptul că electronii de
conducție din capătul cu temperatură mai mare au o energie cinetică mai mare și
vor difuza către capătul mai rece. In acest fel capătul cald se va încărca pozitiv, iar
capătul rece al firului se va încărca negativ.
Tensiunea termoelectromotoare (t.t.e.m) care apare UAB este direct
proporțională cu diferența de temperatură dintre capetele firului:

Unde S este coeficientul Seebeck, o proprietate a materialului din care


este făcut firul.
Termocuplul se compune din două fire din materiale diferite, numite
termoelectrozi, sudate la un capăt 1. Capătul sudat se numeste sudură caldă, iar
celelalte capete 2 și 3, numite capete libere ale termocuplului, se leagă prin
conductoarele de legatură c la aparatul electric pentru măsurarea forței
termoelectromotoare. Legăturile dintre capetele libere și conductoarele de
legatură constituie sudura rece. Temperatura sudurilor reci trebuie menținută la o
valoare constantă.

Fig. 7. Structura unui termocuplu


Termocuplurile se execută din diferite metale sau aliaje. Valoarea
tensiunii termoelectromotoare a diferitelor termocupluri depinde atât de
materialul din care sunt executați termoelectrozii, cât și de temperatura sudurilor
calde și reci. Relația dintre temperatură și forța termoelectromotoare se poate
exprima printr-o ecuație de gradul al doilea de forma:

unde:
E – forța termoelectromotoare;
t – temperatura sudurii calde;
a, b, c – constante ale căror valori se determină prin măsurarea tensiunii
termoelectromotoare la temperaturi fixe cunoscute (temperaturi de solidificare
a stibiului, a argintului și a aurului). Valoarea constantelor a, b, c depinde numai
de materialul termoelectrozilor din care s-a executat termocuplul.
Tabelul 1 – tensiuni electromotoare în funcție de temperatură pentru
termocupluri uzuale
Temper Tip N Tip T Tip J Tip E Fe + Tip K Tip S Cromel
atura +Nicro Cu+ +Crom Cromel +PtRh Copel
– Const- Fe+ Copel
sil el + Pt-
(°C) Const-
Nisil Alumel -
Const-
-200 -5.7 -8.15 -8.824 -5.89
-100 -3.4 -4.60 -5.237 -3.55
0 0 0 0 0 0 0 0 0
100 2.774 4.25 5.37 6.317 5.75 4.10 0.64 6.95
200 5.912 9.20 10.95 13.419 12.0 8.13 1.44 14.66
300 9.34 14.89 16.55 21.033 18.11 12.21 2.32 22.391
400 12.972 20.99 22.15 28.943 24.56 16.40 3.26 31.49
500 16.744 27.40 27.84 36.999 30.91 20.65 4.22 40.16
600 20.609 34.30 33.66 45.085 37.41 24.91 5.23 49.02
700 24.526 39.79 53.11 44.12 29.15 6.27 57.77
800 28.456 46.23 61.022 51.17 33.32 7.34 66.42
900 32.37 53.15 68.783 37.37 8.45 74.90
1000 36.248 41.32 9.60
1100 40.076 45.16 10.77
1200 43.836 48.85 11.97
1300 47.502 13.17
1400 14.38
1500 15.58
1600 16.76
3.3. ALEGEREA SENZORULUI DE TEMPERATURĂ
Deoarece intervalul de temperatură al termocuplului este (-50°C … 250°C),
din Tabelul 1 se alege senzorul de tip T Cu + Const – , care poate măsura
temperaturi de la -200°C până la 600°C.
Tabelul 2. Caracteristica termocuplu tip T
Temperatura Tip T Cu+ Const-
-200 -5.7
-100 -3.4
0 0
100 4.25
200 9.2
300 14.89
400 20.99
500 27.4
600 34.3
Fig. 8. Valorile temperaturii pentru senzorul de tip T (Cu + Const -) extrase din
tabelul 1
Deoarece termocuplul are intervalul de temperatură între (-50°C … 250°C),
pentru aflarea legii de funcționare am realizat graficul pe un interval mai restrâns
din tabelul de mai sus, mai apropiat de intervalul de temperatură din tema de
proiectare.
Tabelul 3. Domeniul de interes pentru termocuplu
Temperatura Tip T Cu+Const.
-100 -3.4
0 0
100 4.25
200 9.2
300 14.89
Fig. 9. Caracteristica sensibilității în funcție de temperatura -100°C…300°C

y - tensiunea termoelectromotoare
x – temperatura
Pentru °C

Pentru °C

Pentru °C

3.4. ALEGEREA MULTIPLEXORULUI


Pe post de multiplexor vom folosi un circuit MMC 4097, care este un
multiplexor/demultiplexor analogic și conține comutatoare analogice controlate
digital, care prezintă o rezistență în starea ON de valoare coborâtă, curent
rezidual în starea OFF mic și decodare internă a adresei.
În plus, rezistența in starea ON a comutatoarelor este relativ constantă pe
toată plaja valorilor semnalului de intrare.
Circuitul MMC 4097 este un multiplexor diferențial cu 8 canale si are 3
intrări de control A, B, C și o intrare de inhibare (INHIBIT). Intrările permit selecția
uneia din cele 8 perechi de comutatoare.
Un nivel 1 logic pe intrarea INHIBIT blochează toate canalele.
Performanțe:
- Rezistența în starea ON: 125 Ω (tipic) pentru o plajă de valori
ale semnalului de intrare de pană la 15 V varf-la-varf si ;
- Împerechere de rezistența ON între comutatoare: 5 Ω (tipic)
pentru ;
- Decodarea adreselor binare pe circuit;
- Rezistența în starea OFF mare: curent rezidual (tipic)
pentru .

n = 2𝑚 si n = 8 => 8 = 2𝑚 => m = 3

Fig. 10. Semnificația terminalelor MMC 4097


Fig. 11. Tabela de adevăr pentru funcționarea multiplexorului

Fig. 12. Schema bloc a circuitului


Fig. 13. Modul de legare al termocuplului la multiplexor
3.5. ALEGEREA ETAJULUI DE AMPLIFICARE
Pentru alegerea etajului de amplificare sunt necesare următoarele calcule:
Pentru °C

Pentru °C
Amplificarea trebuie să fie fixă și este egală cu:

Fig. 14. Schema termocuplu cu amplificator diferențial

Fig. 15. Tensiunea de ieșire la temperatura de – 50°C


Fig. 16. Tensiunea de ieșire la temperatura de 250°C
4.4. ALEGEREA CONVERTORULUI ANALOG – NUMERIC
Convertorul se sintetizează din componente electronice, fiind de tip
paralel. Acesta elimina etajul de eșantionare și memorare, fiind un convertor
rapid.

Fig. 16. Rolul convertorului analog-numeric


Fig. 17. Schema de principiu

q = cuanta;
n = numărul de biți;

Numărul “n” a fost ales astfel incat eroarea cuantei să nu depășească


eroarea de conversie de 0.8 %.
5 V ……………. 100 %
ΔU ……………. 0.8 %
Fig. 18. Schema convertor analog – digital cu 7 biți
Numărul de biți se poate extinde, dar cu precauții datorită modelelor din
LTSpice pentru porțile inversoare
Lucrare laborator 3

1. Introducere
Lucrarea analizeaza funcționarea unui convertor analog-numeric de tip paralel
și a unui convertor digital-analogic. Convertorul analog digital exploatează
proprietatea circuitelor CMOS de a furniza la ieșire semnale de nivele foarte
apropiate de tensiunile de alimentare pentru curenți de sarcina mici. Convertorul
digital analogic este cu rețea R-2R.

2. Desfășurarea lucrării
2.1. Convertor analog-digital
Pentru schema din figura 1 se respecta cu strictețe topologia si valorile
componentelor, pentru a evita nefuncționarea. Valorile rezistențelor de la intrare
sunt de 10k. Apoi acestea au valori care cresc in trepte puteri ale lui 2 (20k, 40k,
80k, etc.).

Fig. 1. Schema convertorului analog-digital


Atributele pentru porților inversoare sunt prezentate in figura 2. Activarea
ferestrei se face prin „click” cu butonul din dreapta al mouse-ului. Sunt de interes
câmpurile pentru „Value” și „Value2”.
1
Inițial sursa de semnal de la intrare va avea o valoare fixă, de preferat
minimă (0V, maximă (5V) și intermediară (o valoare arbitrară cuprinsă între 1 și 4
volți).
Pentru a urmării funcționarea convertorului se poate parametriza sursa de
semnal de la intrare, ”.step param Uin 0 5 0.01”.

Fig. 2. Atributele porților inversoare


Dacă folosim notațiile:
Q -> reprezinta cuanta;

q=

n -> reprezinta numarul de biți;


Numărul de biți “n” trebuie ales astfel încât eroarea cuantei sa nu
depășească eroarea de conversie 0,5%.

5V 100%
U 0.8%

U=

2
q=  0.04=  =  =125 =126 n=6.97

Rezultă 7 biți
Dacă intervalul de la intrare este de 0...5V, cât trebuie să fie numărul de biți
ai convertorului pentru o eroare de 0,8%?
Un exemplu de semnale de la ieșire pentru variația tensiunii de intrare este
prezentat în figura 3.

Fig. 3. Simularea in LTspice a ieșirilor b0 , b1 ale etajului de conversie analog


– numerica

2.2. Convertorul digital –analogic


Vom crea un DAC de 10 biți folosind o scară de rezistențe, figura 4. Acest tip
special de DAC este cunoscut sub numele de DAC R-2R, deoarece treptele scării
vor fi construite din rezistențe de valoare R și 2R. R va fi 10k și 2R vor fi două
rezistențe de 10k în serie (pentru evidențierea dublării valorilor, dar se pot înlocui
cu o rezistență cu valoare corespunzătoare).
Pentru mai multa claritate, schema este prezentata si in ANEXA 2.

3
Fig. 4. Convertor digital-analogic în scară R-2R
O altă schemă de convertor digital-analogic, este reprezentat în figura 5. Se
implementeaza schema in LTSpice, pentru 3 biti la intrare.

Fig. 5. Alt model pentru convertorul digital-analogic (cu AO)

4
Valorile rezistoarelor se aleg astfel încât curenți să nu fie prea mari (consum
nejustificat) dar nici prea mici, apropiați de curenții de intrare ai amplificatorului
operațional. Se reprezintă semnalul de la ieșire în funcție de cel de la intrare.
După verificarea funcționării, se alege unul dintre convertoarele digital-
analogic și se combină cu cel analog-digital, asemănător cu reprezentarea din fig-
ura 6. Evident că numărul de biți trebuie să fie același pentru ambele convertoare.
Se reprezintă semnalul de la intrare și cel de la ieșire. Anexa 3 prezinta o schema
completa.

Fig. 6. Conectarea CAD-CDA


3. Tema
3.1. După realizarea schemei și verificarea funcționării, se caută o schema
pentru orice alt tip de convertor (CDA sau CAD, la alegere) și se realizează
schema în LTSpice.
3.2. Pentru schema din figura 5, sa se creasca numarul de biti la 8.

5
ANEXA 1
Schema CAD, detalii (exemplu)

6
ANEXA 2
Schema CDA

7
ANEXA 3
CAD-CDA

8
Laboratorul 4
Aplicaţia 4.1
Generarea de numere aleatoare şi afişarea lor pe un grafic
Aplicaţia ilustrează elementele fundamentale necesare editării şi rulării unui VI prin
afişarea, pe o diagramă pentru forme de undă, de numere cuprinse în intervalul (0 ... 1] generate
aleator.
1.1. Se lansează în execuţie programul LabVIEW. Se deschide un VI nou. Modul de lucru este
Edit.
1.2. După apariţia pe ecran a ferestrelor noului VI, din meniul Window se selectează Tile Left &
Right. În urma acestei manevre, pe ecran vor apărea ambele ferestre ale aplicaţiei care vor
acoperi tot ecranul: panou frontal în stânga şi diagrama bloc în dreapta.
1.3. Pentru început, se selectează cu mouse-ul fereastra Panel ca fereastră activă (curentă) cu un
click în interiorul ferestrei.
1.4. Din paleta Controls (dacă e vizibilă sau click–dreapta în interiorul ferestrei Panel) se alege
subpaleta Graph, iar din această subpaletă se alege Waveform Chart.

Observaţii:
1. În urma manevrelor descrise mai sus, în interiorul ferestrei Panel apare un ecran
înfăţişând un grafic cu abscisa scalată între 0 şi 100 şi ordonata între 0.0 şi 10.0.
2. Concomitent cu graficul din fereastra Panel, în fereastra Diagram apare un
dreptunghi în care este înscris DBL. Acesta este terminalul din Diagram
corespunzător indicatorului ecran din Panel. El nu se va putea şterge explicit din
fereastra Diagram; el se va şterge automat în momentul în care se va şterge
indicatorul corespunzător din Panel.

1.5. Se procedează la modificarea scalării pe axa Y, prin înlocuirea valorii 10.0 cu 1.0. Aceasta
se face astfel:
− din butoanele care se găsesc în paleta Instruments (care se poate activa şi folosind
combinaţia <Shift> + Click–dreapta) se alege, cu un click pe butonul stâng al

mouse-ului, instrumentul de operare , se deplasează până în locul în care este înscris


10 şi se dă un click pentru începerea editării;

− se înscrie 1.0 şi se face click pe butonul Enter Text care a apărut în bara de
instrumente în poziţia cea mai din stânga. Dacă calculatorul este setat pentru
reprezentarea numerelor specifică din limba română, folosiţi virgula în locul punctului.
1.6. Se repetă procedura anterioară pentru a schimba limita inferioară a scalei pe Y din –10.0 în
0;
1.7. Se trece în fereastra Diagram prin executarea unui click pe butonul stâng al mouse-ului cu
cursorul poziţionat în această fereastră.
1.8. Cu ajutorul mouse-ului (click–dreapta) se înscrie în Diagram simbolul reprezentat de două
zaruri. Acest simbol se găseşte în paleta Functions şi subpaleta Numeric. Aceste două zaruri
reprezintă, de fapt, un generator de numere reale aleatoare în intervalul [0, 1) (poate lua
valoarea 0 dar niciodată 1), sau, ca semnificaţie fizică, ar putea să simuleze, de exemplu, o
tensiune electrică de la ieşirea unui traductor, de exemplu de acceleraţie.

1.9. Cele două obiecte din Diagram vor fi interconectate cu ajutorul instrumentului de conectare
. Operaţia de legare a simbolurilor se face după următorii paşi:

− se alege instrumentul de conectare cu un click cu mouse-ul pe ;


− se poziţionează mouse-ul pe zaruri şi se dă un click cu butonul din stânga al mouse-ului;
− se deplasează cursorul deasupra terminalului (dreptunghiul înscris cu DBL); dacă doriţi
să fixaţi un colţ al legăturii pe parcursul traseului, daţi un click în poziţia intermediară
dorită; dacă doriţi să schimbaţi direcţia de trasare a legăturii din ultimul punct fixat,
apăsaţi tasta <Space>;
− deasupra terminalului se execută din nou un click cu butonul din stânga al mouse-ului
pentru a termina trasarea conexiunii.

Observaţii:
1. Dacă operaţia de legare a simbolurilor schemei nu a fost corectă, linia care le
leagă este de culoare neagră şi întreruptă, iar butonul de „Run” din bara de instrumente
se transformă într-o săgeata întreruptă . În acest caz, operaţia de legare se va
repeta, dar numai după ştergerea conexiunii incorecte.
2. Ştergerea tuturor conexiunilor invalide (chiar cele foarte scurte sau invizibile pe
ecran), care duc la „ruperea” butonului Run, se poate face cu comanda Remove
Broken Wire din meniul Edit. Se poate folosi şi combinaţia de taste <Ctrl> +
<B>.
3. Operaţia de ştergere a unui nod sau a unei linii de interconectare se face astfel:
− din paleta Instruments se alege instrumentul de poziţionare (săgeata) ;
− cu un click cu butonul din stânga al mouse-ului se marchează simbolul sau linia
care urmează a fi ştearsă; se poate utiliza şi tehnica click & drag pentru a
înconjura obiectul sau obiectele care doriţi să le selectaţi cu un dreptunghi
desenat de mouse;
− se apasă tasta Delete sau se selectează comanda Clear din meniul Edit.
4. Operaţia de schimbare în fereastră a poziţiei unui obiect se face în felul următor:
− din paleta Instruments se alege instrumentul de poziţionare (săgeata);
− se selectează obiectul sau obiectele care se doresc a fi mutate cu tehnica
prezentată mai sus (în jurul obiectelor selectate apare un contur care clipeşte);
− se poziţionează mouse-ul pe obiect şi cu butonul stâng al mouse-ului apăsat se
trage simbolul în poziţia dorită (click & drag); butonul se eliberează când
simbolul a ajuns în poziţia finală.

1. 10. Se trece la execuţia programului prin trecerea în modul Run. În Diagram avem zarurile
(generatorul de numere aleatoare între 0 şi 1) ca simulând semnalul de la un traductor şi,
legat de aceste zaruri, avem terminalul indicatorului (dreptunghiul înscris cu DBL), ceea ce
corespunde ecranului graficului din Panel, deci dorim să vizualizăm semnalul dat de un
traductor. Pentru aceasta trebuie să rulăm programul.
Aspectul programului este în figura 1.
Figura 1. Aspectul programului

Aplicația 4.2.
Aplicația dezvoltată anterior se optimizează prin folosirea unei structuri repetitive, a unei temporizări și a unui
schimbari a domeniuli de generare al valorilor (de exemplu 0-100).

Aplicația 4.3.
Construirea unui termometru
Tema acestei aplicaţii constă în construirea unui termometru prin citirea unei tensiuni de la
un canal al unei plăcii de achiziţie de date (DAQ) (care este legată la un traductor de temperatură),
sau printr-un simbol care simulează canalul plăcii de achiziţie de date, citire urmată de afişarea
acesteia pe un termometru aflat pe un panou frontal. De notat este faptul că termometrul va măsura
temperatura în grade Fahrenheit. Aspectul panoului frontal este prezentat în figura 2.
Se modifică programul astfel încât temperatura sa fie afișată și în grade Celsius.
Figura 2. Panoul frontal al aplicatiei
ANEXA
Aplicaţii propuse
[1] Să se realizeze un program de simulare a măsurării nivelului acustic într-o încăpere
industrială, cu semnalizarea unor semnale mai mari de 90 dB.
[2] Să se construiască o orgă de lumini, care să aprindă trei leduri colorate în funcţie de
amplitudinea semnalului de intrare (led-ul roşu pentru semnale mai mici de 0,33V; led-ul
albastru pentru semnale mai mari de 0,66V; led-ul verde pentru semnale cuprinse între cele
două valori precizate anterior).
[3] Într-o instalaţie industrială se produc şarje de diverse compoziţii. Din acest motiv,
temperatura care nu poate fi depăşită în procesul de elaborare a şarjei este reglabilă. Să se
realizeze un program LabVIEW de simulare a măsurării temperaturii care să semnalizeze
printr-un semnal optic depăşirea acestei temperaturi reglabile.
[4] Să se construiască o aplicaţie care să calculeze şi să afişeze suma, diferenţa, produsul, câtul şi
media a două numere introduse de utilizator.
[5] Se dă un generator de numere aleatoare între 0 şi 10. Valoarea aleatoare este împărţită cu o
valoare reglabilă de pe panoul frontal, valoare care va fi afişată digital. Daca împărţitorul este
zero, pe panoul frontal se va aprinde un LED de eroare.
[6] Să se realizeze două subVI-uri care să transforme valoarea unei temperaturi din grade Kelvin
în Celsius respectiv din grade Celsius în Kelvin.
[7] Să se simuleze aruncarea unui zar cu afişarea grafică a sa utilizând led-uri aprinse convenabil
în funcţie de valoarea aleatoare generată.
[8] Să se simuleze un sistem de monitorizarea temperaturii a 8 pacienţi dintr-o sală de reanimare
cu posibilitatea setării temperaturii minime şi maxime de avertizare luminoasă prin
aprinderea unor led-uri.
[9] Să se simuleze un monitor de pacient cu afişarea, selectarea limitelor şi avertizare luminoasă
în cazul depăşirii acestora pentru mai multe mărimi (presiune sanguină, ritm cardiac, ritm
respirator, saturaţie de oxigen, temperatură).
[10] Să se calculeze şi să se afişeze panta unei linii folosind formula Panta = (Y2 – Y1) / (X2 – X1)
unde (X1, Y1) şi (X2, Y2) sunt două puncte de pe linie introduse de utilizator. Să se
transforme VI-ul realizat într-un subVI.
[11] Să se realizeze un VI care să calculeze suma care trebuie plătită la cumpărarea unui produs
dacă se cunoaşte preţul în dolari, fără TVA. Cursul de schimb este variabil şi trebuie să poată
fi introdus de utilizator.
[12] Să se afişeze luminos relaţia (mai mic, egal sau mai mare) care există între două numere
întregi generate aleator, primul cuprins între 5 şi 20 iar al doilea cuprins între 0 şi 15.
[13] Să se realizeze un subVI care să calculeze numărul de secunde existente între două momente
de timp ale aceleiaşi zile. SubVI-ul trebuie să avertizeze dacă cele două momente de timp nu
au fost introduse corect de utilizator.
[14] Să se precizeze, prin aprinderea unor LED-uri, dacă numărul introdus de utilizator este
divizibil cu 2, 3, 5 şi 7. Să se transforme acest VI într-un subVI.
[15] Să se creeze două subVI-uri care să transforme pentru un punct din plan, coordonatele
carteziene în coordonate polare, respectiv, coordonatele polare în coordonate carteziene.
Laboratorul 5
Aplicaţia 5.1
Calculul unei funcţii definite pe intervale. Aplicaţia calculează valorile unei funcţii f(x)
definită astfel:

Se construieşte fereastra Panel din Fig. 5.1. Se construiesc subdiagramele ferestrei Diagram
din Fig. 5.2.
Se rulează programul cu , modificându-se în timpul execuţiei numărul de intrare (se variază
x). Pentru o mai clară înţelegere a programului, se recomandă rularea lui cu evidenţierea

execuţiei (butonul aprins).

Fig. 5.1. Panoul frontal al aplicatiei


Fig. 5.2. Diagrama de conexiuni (atentie, contitiile pentru case sunt suprapuse, aici fiind prezentate alaturat
pentru fiecare caz)

Aplicația 5.2.
Calculul funcţiei y=ln(x)+10
Se ilustrează în continuare utilizarea nodului formulă pentru calculul unor expresii
matematice mai complicate. Se construieşte panoul frontal şi diagrama din Fig 5.3.
Se rulează programul continuu. Se selectează mai multe valori ale lui x la intrare (cu
controlul din panoul frontal).
Se modifică diagrama bloc a programului pentru calculul funcţiei fără utilizarea structurii
Formula Node. Se observă diferentele.
Fig. 5.3. Panoul frontal si diagrama folosind formula node

Aplicația 5.3.
Potrivirea numerelor
VI-ul care se realizează în continuare generează un număr aleator până când numărul generat
se potriveşte cu numărul specificat de utilizator. Terminalul de iteraţie al buclei înregistrează
numărul de încercări până la potrivirea celor două numere.
Se deschide un nou panou frontal.
Se construieşte panoul din Fig. 5.4 şi se modifică proprietăţile obiectelor aşa cum sunt
precizate în figură şi cum se descrie în continuare. Controlul Numărul de potrivit permite
utilizatorului să specifice numărul cu care trebuie să se potrivească numărul generat aleator.
Indicatorul Numărul curent afişează numărul curent generat aleator iar indicatorul Numărul de
încercări afişează numărul de iteraţii executate până la potrivirea celor două numere.

Fig. 5.4. Panoul frontal

Se folosesc opţiunile Data Range ale controlului pentru a preveni situaţiile în care utilizatorul
introduce o valoare incompatibilă cu domeniul şi incrementul admis pentru corecta
funcţionare a programului. Aceste valori incompatibile pot fi fie ignorate, fie constrânse la
domeniul admis. Pentru a stabili domeniul acceptat între 0 şi 10.000, cu un increment de 1 şi
valoarea implicită de 50, se selectează din meniul contextual al controlului digital comanda
Data Range şi apoi se modifică valorile opţiunilor prezente în fereastra de dialog care se
deschide cu cele prezentate în Fig. 5.5.
Fig. 5.5. Stabilirea limitelor

Implicit, LabVIEW afişează valorile în controalele şi indicatoarele din Panel în formatul


zecimal şi notaţia cu virgulă mobilă. Aceste caracteristici pot fi modificate utilizând comanda
Format & Precision. Se setează precizia de afişare a controlului şi indicatoarelor de pe panou
la 0 selectând, pentru fiecare din ele, comanda Format & Precision din meniul contextual şi
setând opţiunile din fereastra de dialog care apare aşa cum sunt ele prezentate în Fig. 5.6.

Fig. 5.6. Stabilirea parametrilor Format & Precision

Se construieşte diagrama bloc prezentată în Fig. 5.7 astfel:


• Se plasează în diagramă funcţiile Random Number (0-1) şi Multiply din subpaleta Functions
» Numeric. Prima funcţie generează un număr aleator între 0 şi 1 iar a doua o înmulţeşte cu
10.000. Cu un click–dreapta pe terminalul y de intrare al nodului Multiply, selecţia comenzii
Create » Constant, tastarea numărului 10000 urmată de apăsarea tastei <Enter>, se creează o
constantă numerică conectată la terminalul de jos al funcţiei de înmulţire. La nevoie, după
selecţie, constanta se poate deplasa un pic în jos, cu instrumentul de poziţionare sau fin cu
tastele săgeţi, fără să se piardă legătura deja făcută.
• Pentru a rotunji numărul generat aleator între 0 şi 10.000 la cel mai apropiat întreg, se
plasează funcţia Round To Nearest situată în subpaleta Functions » Numeric.
• Din subpaleta Functions » Comparison se adaugă în diagramă funcţia Not Equal? Care
compară numărul aleator generat cu Numărul de potrivit şi întoarce valoarea logică True dacă
numerele nu sunt egale şi valoarea logică False în caz contrar.

Fig. 5.7. Diagrama bloc

•Se plasează o buclă While din Functions » Structures înglobând cu tehnica click & drag toate
elementele care trebuie să fie incluse în subdiagrama din buclă. Astfel se elimină necesitatea
mutării în interiorul buclei a elementelor deja editate. Bucla se execută atât timp cât nu există
o potrivire a celor două numere deoarece funcţia Not Equal? întoarce True dacă cele două
numere nu sunt egale. La fiecare iteraţie a buclei, terminalul de iteraţie este incrementat cu 1.
Valoarea terminalului de iteraţie părăseşte structura numai după execuţia completă a buclei.
• Deoarece terminalul de iteraţie ia valoarea 0 la începutul primei iteraţii, este necesar să
incrementăm cu 1 valoarea finală a lui pentru a stabili numărul de încercări până la potrivirea
numerelor. Pentru aceasta, se adaugă în exteriorul buclei o funcţie Increment din subpaleta
Functions » Numeric.
• Se deplasează cele două terminale ale structurii While în poziţie convenabilă şi se realizează
conexiunile încă neefectuate. Multe din legături pot fi deja realizate automat de LabVIEW
dacă la poziţionarea unui nou element acesta este plasat suficient de aproape de terminalul la
care el trebuie conectat.
La conectarea terminalului de ieşire Numărul de încercări, apare pe acesta un mic punct gri
(numit punct de constrângere) care indică faptul că LabVIEW constrânge reprezentarea
numerică a valorii terminalului de iteraţie astfel încât să se potrivească cu cea a terminalului
de ieşire.

Se salvează VI-ul sub numele Potrivire.vi deoarece va fi utilizat la o aplicaţie ulterioară.


Se afişează panoul frontal, se schimbă numărul din controlul Numărul de potrivit şi se execută
VI-ul. Se repetă pentru diverse valori introduse.
Se validează evidenţierea execuţiei pentru a vedea cum se actualizează cele două indicatoare.
În timp ce indicatorul Numărul curent se actualizează la fiecare iteraţie deoarece se află în
interiorul buclei, indicatorul Numărul de încercări se actualizează numai după terminarea
execuţiei buclei deoarece se află în exteriorul ei.
Se introduce un număr din afara domeniului admis (care este între 0 şi 10.000 cu pasul 1) şi se
rulează din nou VI-ul. Se observă cum LabVIEW constrânge valoarea introdusă în afara
domeniului la cea mai apropiată valoare din domeniul specificat.

Aplicatia 5.4.
Timpul necesar pentru potrivirea numerelor
VI-ul următor determină timpul care îi este necesar să genereze aleator un număr care să se
potrivească cu unul specificat de utilizator.
Se deschide fişierul salvat la Aplicaţia 5.3 (Potrivire.vi).
Se modifică panoul frontal aşa cum se precizează în Fig. 5.8.
Se salvează VI-ul sub numele Timp.vi.
Se modifică diagrama corespunzător celei din Fig. 5.9 corespunzator.

Fig. 5.8. Panlul frontal al aplicatiei

Fig. 5.9. Diagrama bloc (atentie, cele doua secvente de case sunt suprapuse!, aici au fost prezentate separat
pentru intelegere)

• Se înglobează într-o structură Sequence, selectată din subpaleta Functions » Structures,


întreaga diagramă a aplicaţiei realizată anterior.
• Se adaugă un Frame selectând Add Frame After din meniul contextual obţinut cu un click–
dreapta pe conturul structurii.
• Se plasează în diagramă funcţia Tick Count (ms) din subpaleta Functions » Time&Dialog.
Această funcţie citeşte valoarea ceasului sistemului de operare şi întoarce valoarea în
milisecunde.
• Se completează şi restul diagramei şi a subdiagramei 1 din structura Sequence.

Se salvează VI-ul.
Se afişează panoul frontal, se schimbă numărul din controlul Numărul de potrivit şi se execută
VI-ul. Se repetă execuţia pentru diverse valori introduse.
După ce citeşte ceasul sistemului cu funcţia din afara structurii, VI-ul începe să execute
structura Sequence. Întâi este executat Frame-ul 0 care repetă bucla While până când are loc
potrivirea celor două numere. Apoi este executat Frame-ul 1 care citeşte din nou ceasul
sistemului şi calculează timpul parcurs de la pornirea programului.
ANEXA
Aplicaţii propuse
[1] Să se rezolve o ecuaţie de gradul doi precizând tipul soluţiilor (reala/imaginare).
[2] Să se creeze un subVI care să rezolve un sistem de două ecuaţii liniare cu două necunoscute.
[3] Să se construiască un VI care să funcţioneze ca un calculator simplu de birou. Două controale
vor seta operanzii, un indicator va afişa rezultatul, iar selecţia operaţiei se va face cu un
control numeric de tip enumerare (Text Ring).
[4] Să se traseze pe un grafic o funcţie sin(x) cu posibilitatea selectării numărului de eşantioane
afişate pe fiecare perioadă.
[5] Să se afişeze graficul funcţiei y = ax2 + bx + c pentru x cuprins în intervalul [–50 ... 100].
[6] Să se realizeze un subVI care să calculeze factorialul lui n (n!).
[7] Să se simuleze o ruletă (roata norocului) prin aprinderea succesivă a unor LED-uri situate
circular. Să se afişeze şi numărul corespunzător generat aleator.
[8] Folosind o structură Case, să se creeze un subVI care să afişeze cu LED-uri, sub forma unui
zar, valoarea introdusă din exterior. Dacă valoarea nu este în domeniul 1 – 6, trebuie ca nici
un LED să nu fie aprins. Să se modifice apoi programul ca subVI-ul să constrângă valorile
introduse din exterior la domeniul menţionat anterior.
[9] Să se realizeze un cronometru având funcţiile start, stop, iniţializare şi timp intermediar.
[10] Să se calculeze suma pătratelor primelor n numere naturale impare.

[11] Să se calculeze produsul Π i2= ?, i=[1, n], pentru valorile lui n cuprinse în intervalul [2 ... 5].
[12] Să se creeze un joc de dexteritate în care utilizatorul trebuie să oprească, prin apăsarea unui
buton, un numărător în inel (de la 1 la 9) exact la valoarea generată aleator de către calculator.
Să se calculeze şi scorul realizat la 10 încercări.
[13] Să se realizeze un VI care să măsoare şi să afişeze pulsul instantaneu al unui pacient. Se
presupune că există un dispozitiv care măsoară pulsul şi schimbă starea unui control logic din
False în True şi apoi imediat înapoi în False la fiecare puls detectat.
[14] Să se simuleze măsurarea şi afişarea digitală a vitezei instantanee a unui automobil.
Măsurările se fac la fiecare secundă. Viteza automobilului variază în acest interval aleator cu
cel mult ±5 km/oră. Viteza maximă a automobilului este de 160 km/oră. VI-ul trebuie să
acţioneze închiderea automată a uşilor atunci când se depăşeşte 20 km/oră şi să le deschidă
atunci când automobilul staţionează cel puţin 3 secunde.
[15] Să se simuleze măsurarea vitezei automobilelor folosind un radar care semnalizează luminos
depăşirea vitezei maxime legale de 50 km/oră. Automobilele trec prin dreptul radarului la un
interval aleator cuprins între 3 şi 10 secunde cu viteze cuprinse între 20 şi 90 km/oră.

S-ar putea să vă placă și