Structuri de date: clustere


Utilizarea cluster-elor

    LabVIEW permite realizarea structurilor de date prin utilizarea cluster-elor.
    Controalele grafice de tip "Graph" servesc pentru reprezentarea drafica a diverselor tipuri de date. De multe ori reprezentarea datelor este complexa si nu presupune numai reprezentarea evolutiei in timp a unei marimi. Pentru a utiliza majoritatea controalelor de tip "Graph", datele trebuie pregatite in structuri specifice fiecarui control "Graf". Este nevoie deci de a realiza diverse structuri de date in vederea utilizarii controalelor "Graph". Structurile de date sunt realizate utilizand clustere. Clusterele sunt functii grupate in :

Function-->Programming-->Claster, Class & Variant


Realizarea unei structuri

  • Afisarea in coordonate x, y.

        Vom realiza pentru o aplicatie pentru a fisarea functiei y=e^x in coordonate x,y cluster_v01 in care sa va realiza o structura de date necesara controlului grafic "XY Graph" allat in grupul Controls-->Modern-->Grapg-->XY Graph .


        Vom crea o structura de date in care sa fie cuprins un vector cu elementele lui x si un vector cu elementele lui y adica y=e^x.



        Structura de date necesara conrolului grafic XY Graph este realizata utilizand un cluster folosind "Bundel Function" pe care o gasim in Function-->Programming-->Claster, Class & Variant-->Bundle.
        Dupa cum se observa, calitatea graficului nu este prea buna pentru ca am afisat numai 10 puncte. Pentru o calitate mai buna, avem nevoie de cel putin 100 de puncte. Daca vrem sa pastram domeniul de definitie pentru x, intre 0-10, va trebui sa introducem o variabila noua numita x, deoarece nu mai putem folosi variabila i pe post de x. Obtinem astfel aplicatia : cluster_v02 in care se afiseaza 100 de puncte, fara a modifica domeniul de definitie 0-10.



        In diagrama bloc se va introduce variabila locala x.


        Pentru functia anterioara y=e^x, afisarea graficului functiei se putea realiza si prin intermediul unui control grafic "Waveform Graph", nemaifiind necesara definirea unei structuri de date.
        Exista functii care sunt mult mai usor de reprezentat in coordonate polare. Astfel un cerc este mult mai simplu de reprezentat. Chiar si in coordonate carteziene XY exte mai usor de reprezentat folosind ecuatile: x=sin(t); y=cos(t) insa pentru aceasta avem nevoie de un control XY Graph. Aceasta metoda de reprezentare grafica a unui cerc este utilizata in aplicatia: cluster_v03


        Metoda utilizata pentru reprezentarea functiei e^x s-a folosit si pentru reprezentarea grafica a unui cerc.



  • Figurile lui Lissajous

         Figurile lui Lissajous sunt grafice care rezulta din compunerea a doua functii sinus sau cosinus de diferite frecvente. Numarul de curbe inchise depinde de raportul dintre frecventele celor doua functii sinus. cluster_v04



        Diagrama bloc fiind asemanatoare cu diagrama anterioara, cu deosebirea ca se pot ajusta frecventele celor doua functii sinus.



    Descompunerea unei structuri in componente
  • Afisarea binara.

        Vom relua pentru inceput, o aplicatie pentru conversie binara si fisare pe 7 segmente cluster_v00


        In diagrama bloc se va utiliza o structura de date creata cu functia "Unbundle Function" folosind "Bundel Function" pe care o gasim in Function-->Programming-->Claster, Class & Variant-->Unbundle.


        Structura "Case" ne ofera un numar int a carui reprezentare binara o reprezinta combinatia de segmente care trebuie activate pentru a forma afisarea corespunzatoare pe 7 segmente. Numarul int se converteste in Uint dupa care e convertit intr-un vector binar. In urma conversiei "Array to Cluster" obtinem o structura de date pe care daca o despachetam cu functia "Unbundel" obtinem in sfarsit 7 iesiri binare necesare comandarii celor 7 segmente.

  • Roza polara

        Functia: se mai numeste roza polara cu 3 petale.
        Roza polara este o curba matematica celebra care arata ca o floare cu petale si care poate fi exprimata ca o ecuatie polara simpla, de forma r(t)=a*cos(n*t).Daca n este intreg, aceasta ecuatie produce o roza cu n petale, daca n este impar, sau cu 2n petale daca este par. Daca n este rational dar nu intreg, o forma asemanatoare cu roza ar putea aparea, dar va avea petale suprapuse.
        Tinand cont de ecuatiile de transformare in coordonate carteziene: , vom obtine expresiile lui x si y de forma:
        unde t ia valori intre o si 2pi adica 0 si 6.3 radiani Aplicatia: cluster_v05 incearca sa traseze grafic roza polara.



        Diagrama bloc fiind:



        Imaginea de sus nu prea seamana a roza polara, desi ecuatiile functiei sunt corecte. Din cauza "pasului" destul de grosier al unghiului alfa, reprezentarea nu este corecta.
        In urmatoarea aplicatie: cluster_v07 se foloseste o varabila separata pentru alfa reusindu-se sa se traseze grafic roza polara.



        Diagrama bloc fiind:



  • Utilizare avansata Waveform Graph

        Am utilizat pana acum controlul grafic Waveform Graph insa nu am exploatat la maxim facilitatile acestuia.
        In urmatoarea aplicatie: cluster_v11 se foloseste o varabila separata pentru alfa



        Aplicatia permite stabilirea momentului de afifare precum si reglarea ferestrei de timp.

        In diagrama bloc se observa folosirea structurii de date care permite facilitatile amintite.:

    Dupa acelasi principiu este realizata si aplicatia: cluster_v12 .



        Diagrama bloc fiind:



        Putem adauga un zgomot in aplicatia: cluster_v12_n prin adaugarea unui generator de zgomot din:
        Programming-->Signal Processing -->Sig Generation-->Gaussian Noise.



        Diagrama bloc fiind:



  • Afisare proportionala si log

        Combinarea controalelor grafice XY Graph si Waveform Graph ne permit afisarea graficului unei functii simultan atat proportional cat si logaritmic. cluster_v13 .



        Diagrama bloc fiind:



  • Afisare semnale digitale

        Controlul grafic Digital Waveform Graph este utilizat pentru afisarea valorilor digitale sub forma de forma de unda digitale cluster_v14





  • Afisare multiplexata pentru mai multe semnale simultan

        Utilizand controlul Waveform Graph si structuri de date se pot afisa multe semnale simultan. cluster_v18





        Putem folosi o functia Simulate Sig aflata in: Function->Programming->Waveforms->Analog Wfm->Generation->Simulate Sig care genereaza diverse forme de unda cluster_v40





        Folosim in continuare functia Simulate Sig pentru a afisa mai multe semnale simultan cluster_v41





        De data aceasta trebuie sa combinam doua structuri de date, deci nu vom putea folosi "Bundle Function", vom folosi in schimb "Merge Signals Function" pe care o gasim in: Programming-->Express->Sig Manip-->Merge Signal.