Witam
mam taki problem - tworzę aplikację pomiarową do czujnika przyspieszenia. Mam już rozseparowane sygnały z osi X i Y, przerobiłem je ze stringa na number, i te dane idą z portu RS232 cały czas - trochę ich gubię po drodze ale nie jest to problemem. I tutaj pojawia się pytanie - moim zadaniem jest uśredniać te dane - od 1 do 60, z możliwością zmiany w czasie rzeczywistym. Czy ktoś może mi pomóc? Próbowałem zrobić to na maszynie stanów ale nie idzie mi to totalnie. Myślałem o pętach producer/consumer.
Uśrednianie danych
Uśrednianie danych
Witaj,
Według mnie dałeś trochę za mało informacji na temat programu aby pomóc Ci z architekturą(jakie są założenia dla programu, może jakiś fragment kodu?). A co do wartości średniej, polecam zapoznać się z VI "Mean PtByPt", wydaje się być dokładnie tym czego potrzebujesz.
Według mnie dałeś trochę za mało informacji na temat programu aby pomóc Ci z architekturą(jakie są założenia dla programu, może jakiś fragment kodu?). A co do wartości średniej, polecam zapoznać się z VI "Mean PtByPt", wydaje się być dokładnie tym czego potrzebujesz.
Uśrednianie danych
Jeśli chodzi o sens tego programu - z czujnika przez układ wychodzą dane do RS232 z komputera. Idą cały czas a struktura danych wygląda tak: )()()()Y()()()()X()()()()Y()()()()...... czyli po identyfikatorze kanału mamy 4 bajty danych. Mam już wszystko rozseparowane i przeliczone ze stringa na number. Na każdą oś przypadają dwie dane (długość okresu sygnału prostokątnego, i długość stanu wysokiego. Wychylenia płytki z sensorem zmieniają szerokość stanu wysokiego w okresie). Poza tym mam na każdą daną warunek - aby nie było jakichś wychyleń skrajnych wynikających z zakłóceń. na wyjściu mojego SubVI mam tak: 4 linie, Xstanwysoki, Xokres, Ystanwysoki, Yokres i stan logiczny - jeśli jest na 1, to znaczy że nie było żadnych przekłamań i dane są OK, jeśli na 0 - trzeba te dane usunąć. Więc pewnie będzie potrzebna pętla True/False. Dane idą cały czas. Chodzi mi o to aby móc uśrednić np 30 danych (ogólnie od jednej do 60, z możliwością zmian wielkości hmmm bufora/array który utrzymuje te dane). Kiedy bufor (przykładowo na 30 danych) się napełni - chcę żeby te 30 danych poszło na VI który je uśredni. Patrzyłem na helpa Mean PtByPt - to chyba będzie ok - ale czy on store'uje te dane zanim je uśredni?
Dzięki za odpowiedź
Dzięki za odpowiedź
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Uśrednianie danych
Napewno ci ich nie posortuje...
Najprosciej zrob arraya w petli while ktory dodaje poszczegolne pomiary, a nastepnie podzielil je na ilosc probek. nazwyklejsze arytmetyczne usrednianie. Przed da petla zrb testowanie warunku, czy przeszly dane, czy masz same zera...
Najprosciej zrob arraya w petli while ktory dodaje poszczegolne pomiary, a nastepnie podzielil je na ilosc probek. nazwyklejsze arytmetyczne usrednianie. Przed da petla zrb testowanie warunku, czy przeszly dane, czy masz same zera...
Uśrednianie danych
Dzięki za pomoc temat do zamknięcia