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 389 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 359 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 431 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 389 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 401 razy
Re: Wykres z kilku punktów pomiarowych
Dziekuje za pomoc :] Pozdrawiam :]