Wykres z kilku punktów pomiarowych

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
4B
Posty: 11
Rejestracja: 07 paź 2012 15:45
Wersja środowiska: LabVIEW 2009

Wykres z kilku punktów pomiarowych

Post autor: 4B »

Witam Wszystkich,

chciałbym się poradzić, bo zastanawiam się czy nie wywarzam przypadkiem otwartych drzwi. Otóż - muszę zrobić dla swojego profesora program, który (przynajmniej w pierwszej fazie, bo potem muszę go jeszcze rozbudować), ale który powinien utworzyć wykres w czasie od 0 do "czasu zatrzymania się łożyska" (które jest przedmiotem badania) ale problem pojawia się w tym - że powinien to z robić z paru (im więcej tym dokładniejszy) punktów pomiarowych, które po prostu sczytuje (i potem wprowadza do Labview) człowiek - nie ma żadnego połączenia między urządzeniami pomiarowymi, a komputerem na którym będzie działał program (trochę to dziwne, ale z tego co zauważyłem, to sprzęt jakiś stary tam mają).

I teraz moim pomysłem jest, aby zrobić jakiegoś stringa z pomiarami, dzielić go potem na pojedyncze pomiary i jakoś tą linię wykreślać, ale z drugiej strony - nie jestem pewien, jak zachowa się Labview, pomiędzy punktami pomiarowymi - czy wykreśli sobie jakąś linię dla wartości czasu t - w której akurat nie ma podanego żadnego punktu? Albo, czy nie ma po prostu jakiegoś jednego bloczka - który robi automatycznie wszystko to nad czym ja tu kombinuje?

(załączam rysunek przykładowego wykresu)
Załączniki
180 to początkowa liczba obrotów maszyny - zawsze taka sama. Oś y - to wspomniane obroty, oś x - czas.
180 to początkowa liczba obrotów maszyny - zawsze taka sama. Oś y - to wspomniane obroty, oś x - czas.
Grzesiek080
Posty: 82
Rejestracja: 26 maja 2009 07:18
Wersja środowiska: LabVIEW 2012
Lokalizacja: Sucha Beskidzka
Kontakt:

Re: Wykres z kilku punktów pomiarowych

Post autor: Grzesiek080 »

Hejka,

Na początku muszę Ci powiedzieć, że piszesz masakrycznie nieskładnie. Jakbyś był obcokrajowcem :).

Z tego co widze to jeśli dane są pobierane z dwóch niezsynchronizowanych urzadzen to jest duży problem. Jesli jednak uda Ci sie coś zrobic w tej kwestii i dane masz zapisane w pliku tekstowym, to trzeba te dane jakos probrać najlepszym sposobem byłoby, gdybyś miał je zapisane w dwóch kolumnach. W jednek kolumnie miałbyś czas a w drugiej np prędkość. I wtedy używając "read spreadscheet file", odczytujesz dane z pliku i otrzymujesz tablice dwuwymiarowa. Tablice te dzielisz na 2 tablice jednowymiarowe ( czas i predkość).
I wtedy używając X,Y Graph wyświetlasz te punkty na wykresie. Jeśli jednak bedzie brakowało jakichś punktów a koniecznie chcesz wpasować wykres to trzeba użyć jednej z funkcji z palety "Mathematics->Fitting ( w zależności od typu wykresu), która dobierze ci brakujące punkty i wpasuje najlepsza funkcje (zobacz przyklad - "Parametric Curve Fitting""

Przyklad który sklecilem jest w zaláczniku. Po odpaleniu programu bedzie on szukal pliku data, ktory musisz zlokalizowac.
Załączniki
Read_Data.vi
(56.12 KiB) Pobrany 374 razy
Grzesiek080
Posty: 82
Rejestracja: 26 maja 2009 07:18
Wersja środowiska: LabVIEW 2012
Lokalizacja: Sucha Beskidzka
Kontakt:

Re: Wykres z kilku punktów pomiarowych

Post autor: Grzesiek080 »

A i jeszcze plik z danymi...
Załączniki
data.txt
(115 Bajtów) Pobrany 323 razy
4B
Posty: 11
Rejestracja: 07 paź 2012 15:45
Wersja środowiska: LabVIEW 2009

Re: Wykres z kilku punktów pomiarowych

Post autor: 4B »

Grzesiek080 pisze:Na początku muszę Ci powiedzieć, że piszesz masakrycznie nieskładnie. Jakbyś był obcokrajowcem :).
Hehe :] Wiem, bo już mi znajomi mówili ;) Sory, postaram się bardziej kontrolować :)
Grzesiek080 pisze:Z tego co widze to jeśli dane są pobierane z dwóch niezsynchronizowanych urzadzen to jest duży problem. Jesli jednak uda Ci sie coś zrobic w tej kwestii i dane masz zapisane w pliku tekstowym, to trzeba te dane jakos probrać najlepszym sposobem byłoby, gdybyś miał je zapisane w dwóch kolumnach. W jednek kolumnie miałbyś czas a w drugiej np prędkość. I wtedy używając "read spreadscheet file", odczytujesz dane z pliku i otrzymujesz tablice dwuwymiarowa. Tablice te dzielisz na 2 tablice jednowymiarowe ( czas i predkość).
To może być lepsza opcja (a przynajmniej łatwiejsza), niż ja teraz próbuje zrobić. Wrzuciłem stringa (w Front Panel można teraz wpisywać dane pomiarowe) i do tego bloczek "Fract/Exp String To Number Function", żeby potem rozdzielić wprowadzone dane, ale na razie nie działa mi to jeszcze tak, jak bym sobie tego życzył.
Grzesiek080 pisze:Jeśli jednak bedzie brakowało jakichś punktów a koniecznie chcesz wpasować wykres to trzeba użyć jednej z funkcji z palety "Mathematics->Fitting ( w zależności od typu wykresu), która dobierze ci brakujące punkty i wpasuje najlepsza funkcje (zobacz przyklad - "Parametric Curve Fitting""
To przejże przede wszystkim. Dzięki za tipa.
Grzesiek080 pisze:Przyklad który sklecilem jest w zaláczniku. Po odpaleniu programu bedzie on szukal pliku data, ktory musisz zlokalizowac.
Mam prośbę - czy mógłbyś mi wrzucić jakiegoś printscreen'a tego przykładu? Mam Labview 2009 i wyskakuje mi błąd, że plik jest z nowszej wersji i nie mogę tego otworzyć.
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Re: Wykres z kilku punktów pomiarowych

Post autor: Harnas »

Wrzuciłem stringa (w Front Panel można teraz wpisywać dane pomiarowe) i do tego bloczek "Fract/Exp String To Number Function", żeby potem rozdzielić wprowadzone dane, ale na razie nie działa mi to jeszcze tak, jak bym sobie tego życzył.

Probujesz zrobic cos takiego, jak w zalaczniku?
Najlepiej bedzie zczytywac z pliku tekstowego. Mozesz tez pomiary wpisywac na frontpanel, potem przyciskiem "OK" dorzucac do pomiaru aktualny czas i z tym juz dzialac dalej. Zapisywac do pliku, pokazywac na wykresie czy cokolwiek innego.
Załączniki
test1.vi
wersja pod LV 2009
(10.57 KiB) Pobrany 382 razy
Grzesiek080
Posty: 82
Rejestracja: 26 maja 2009 07:18
Wersja środowiska: LabVIEW 2012
Lokalizacja: Sucha Beskidzka
Kontakt:

Re: Wykres z kilku punktów pomiarowych

Post autor: Grzesiek080 »

Zapisałem tego vi w Labview 2009. Jakby coś bylo nie tak to pisz.
Załączniki
Read_Data.vi
(49.43 KiB) Pobrany 349 razy
4B
Posty: 11
Rejestracja: 07 paź 2012 15:45
Wersja środowiska: LabVIEW 2009

Re: Wykres z kilku punktów pomiarowych

Post autor: 4B »

Grzesiek080 Już działa, dzięki. Natomiast tu właśnie wychodzi kwestia tych punktów "pomiędzy" i znacznie bliżej sedna sprawy trafił Harnas.

Bo właśnie cała zabawa polega na tym, że jeśli oni sobie będą mierzyć przez powiedzmy 2 min i załóżmy, że częstotliwość na osi x (czasu) ustawię 100Hz, to oś x będzie zawierała 100x60x2 punktów ( =12000 punktów). I teraz - efektem końcowym musi być wykres, który każdemu z tych punktów przyporządkuje jakąś konkretną wartość, z tym, że na podstawie kilku pomiarów które oni sobie zapiszą podczas trwania eksperymentu/próby. Całą resztę tych punktów Labview musi sobie po prostu "dosztukować", a jeszcze dodając do tego jakąś tam niepewność pomiarową-powinna to być ładna, gładziutka, wielomianowa krzywa - wcale nie koniecznie przechodząca przez wszystkie punkty. (EDIT: Teraz tak sobie myślę.. a może nawet się nie bawić w "nieprzechodzenie" tej krzywej przez punkty pomiarowe - może nawet to zrobić tak, żeby krzywa przez te punkty przechodziła, co powinno ułatwić sprawę-tyle, że nadal to nie może być linia prosta pomiędzy punktami - to nadal musi być krzywa wielomianowa)

Harnas mam takie pytanko, jak by to zrobić, żeby to działało na zasadzie stopera, a nie daty i godziny oraz czy w tym zapisie X0 jest moją wartością na osi x? Wrzuciłem sobie "Write to Measurement File" do Twojego pliku, żeby zobaczyć co w zasadzie otrzymuje na końcu. I otrzymałem to:

Writer_Version 2
Reader_Version 2
Separator Tab
Decimal_Separator ,
Multi_Headings Yes
X_Columns No
Time_Pref Absolute
Operator krzysiek
Date 2012/10/09
Time 14:01:51,5100531578063964844
***End_of_Header***

Channels 1
Samples 1
Date 2012/10/09
Time 14:01:51,5100531578063964844
X_Dimension Time
X0 0,0000000000000000E+0
Delta_X 1,000000
***End_of_Header***
X_Value Untitled Comment
20,000000

Channels 1
Samples 1
Date 2012/10/09
Time 14:01:55,9273056983947753907
X_Dimension Time
X0 4,4162526130676270E+0
Delta_X 1,000000
***End_of_Header***
X_Value Untitled Comment
2,000000

Channels 1
Samples 1
Date 2012/10/09
Time 14:02:01,4536218643188476563
X_Dimension Time
X0 9,9435687065124512E+0
Delta_X 1,000000
***End_of_Header***
X_Value Untitled Comment
3,000000


Pomiary zrobiłem o wartościach 20, 2 i 3, więc to widać od razu. Co do X0 nie jestem pewien co to dokładnie jest, no i "Delta_X 1,000000" też nie specjalnie rozumiem, biorąc pod uwagę jak "niepozaokrąglane" są wartości w X0.
Awatar użytkownika
Harnas
Posty: 152
Rejestracja: 16 mar 2011 09:56
Wersja środowiska: LabVIEW 2009

Re: Wykres z kilku punktów pomiarowych

Post autor: Harnas »

Delta_X to odstep pomiedzy dwoma punktami pomiarowymi, standardowo ustawiony na 1s. Dlaczego nie pozaokraglalo, nie wiem.
X0 to czas, kiedy zostal dokonany pomiar (mierzac od pierwszego pomiaru)

Program uruchomiles o 14:01:51 i czyli x0=0

O 14:01:55,927 wpisales kolejny pomiar i zostal on umieszczony na wykresie.
Zrobiles to ok. 4,5s po wpisaniu pierwszego pomiaru. x0= 4,42s

O 14:02:01 wpisales ostatnia liczbe, zostala ona umieszczona na wykresie. Od rozpoczecia pomiaru minelo niecale 10s (X0 u Ciebie to 9,94s).

W zalaczniku ten sam VI, z tym ze zasada dzialania bardziej przypomina stoper.

Pozdro :D
Załączniki
test1.vi
LV 2009
(11.38 KiB) Pobrany 357 razy
4B
Posty: 11
Rejestracja: 07 paź 2012 15:45
Wersja środowiska: LabVIEW 2009

Re: Wykres z kilku punktów pomiarowych

Post autor: 4B »

Dziekuje za pomoc :] Pozdrawiam :]
ODPOWIEDZ