Prędkość i przyspieszenie kątowe na podstawie czujnika Halla

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Xi
Posty: 1
Rejestracja: 07 maja 2016 01:02
Wersja środowiska: LabVIEW 2013

Prędkość i przyspieszenie kątowe na podstawie czujnika Halla

Post autor: Xi » 07 maja 2016 13:27

Cześć wszystkim,
mam zamiar zbudować stanowisko składające się z czujnika Halla zamocowanego na wale pewnej rolki. Moim celem jest na podstawie impulsów z czujnika wyznaczenie prędkości obrotowej oraz przyspieszenia kątowego. Na podstawie jednego z programów znalezionego na forum chciałem wyznaczyć ów zależności jednak nie do końca wszystko działa jak powinno. Problemem jest na pewno kształt wykresu fi(t) jako, że jest za bardzo kanciasty to wykresy pochodnych wyglądają podobnie. W związku z tym mam do was kilka pytań:

1. Czy sama metoda różniczkowania przemieszczenia aby uzyskać prędkość przyspieszenie jest poprawna?
2. Czy sam licznik nie gubi przypadkiem impulsów? W przypadku gdy uruchamiam problem przy stałej częstotliwości wydaje się zliczać poprawnie jednak przy aktywowaniu zmiany częstotliwości sinusem licznik bardzo powoli liczy impulsy w porównaniu z wykresem "impulsy"
3. Czy da się w opcjach wykresu ustawić swego rodzaju aproksymację wykresu aby nie posiadał ostrych krawędzi? Jeżeli nie to czy najłatwiejszą opcją będzie tworzenie tablicy z wartościami czasu, w którym pojawił się impuls oraz kolejnego indexu impulsu i na podstawie tych punktów wyznaczenie wykresu?
4. Dlaczego na wykresach fi(t), omega(t) oraz epsilon(t) po pewnym czasie wartość początek osi x przestaje być zerem?

Wykresy "impulsy" oraz n(t) są tylko wykresami pomocniczymi.
Załączniki
licznik impulsów.vi
(84.63 KiB) Pobrany 54 razy

spalinowy
Posty: 82
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2016
Lokalizacja: Warszawa
Kontakt:

Prędkość i przyspieszenie kątowe na podstawie czujnika Halla

Post autor: spalinowy » 08 maja 2016 20:30

Następnym razem zadbaj o estetykę kodu i czytelność, bo to hamuje, aby go przeglądać.

1. Tak, ale krok różniczkowania musi być równy próbkowaniu.
2. Wg mnie to tylko kwestia typu danych (Dynamic Data i Duble)
3. Nie ma tak łatwo. Trzeba użyć np Spline interpolate
4. Domyślam się, że to się dzieje przy 1024. A ta wartość to domyślna wielkość historii wykresu.

ODPOWIEDZ