Wykres z kilku punktów pomiarowych
Wykres z kilku punktów pomiarowych
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)
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)
-
- Posty: 82
- Rejestracja: 26 maja 2009 07:18
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Sucha Beskidzka
- Kontakt:
Re: Wykres z kilku punktów pomiarowych
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.
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 466 razy
-
- Posty: 82
- Rejestracja: 26 maja 2009 07:18
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Sucha Beskidzka
- Kontakt:
Re: Wykres z kilku punktów pomiarowych
A i jeszcze plik z danymi...
- Załączniki
-
- data.txt
- (115 Bajtów) Pobrany 429 razy
Re: Wykres z kilku punktów pomiarowych
Hehe :] Wiem, bo już mi znajomi mówili ;) Sory, postaram się bardziej kontrolowaćGrzesiek080 pisze:Na początku muszę Ci powiedzieć, że piszesz masakrycznie nieskładnie. Jakbyś był obcokrajowcem.

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: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 przejże przede wszystkim. Dzięki za tipa.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""
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ć.Grzesiek080 pisze:Przyklad który sklecilem jest w zaláczniku. Po odpaleniu programu bedzie on szukal pliku data, ktory musisz zlokalizowac.
Re: Wykres z kilku punktów pomiarowych
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 501 razy
-
- Posty: 82
- Rejestracja: 26 maja 2009 07:18
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Sucha Beskidzka
- Kontakt:
Re: Wykres z kilku punktów pomiarowych
Zapisałem tego vi w Labview 2009. Jakby coś bylo nie tak to pisz.
- Załączniki
-
- Read_Data.vi
- (49.43 KiB) Pobrany 468 razy
Re: Wykres z kilku punktów pomiarowych
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.
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.
Re: Wykres z kilku punktów pomiarowych
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
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

- Załączniki
-
- test1.vi
- LV 2009
- (11.38 KiB) Pobrany 477 razy
Re: Wykres z kilku punktów pomiarowych
Dziekuje za pomoc :] Pozdrawiam :]