Autor: Piotr Macheta Koło Naukowe Magnesik Opiekun naukowy: dr inż. Tomasz Drabek POMIAR PRĘDKOŚCI OBROTOWEJ Z UŻYCIEM MIKROKONTROLERA Z RODZINY 805.. Pomiar prędkości obrotowej wykonuje się na ogół na dwa sposoby. Można mierzyć prędkość przez zliczanie liczby impulsów w określonym wyznaczonym odcinku czasu, albo też zliczać określoną liczbę impulsów i mierzyć czas zaliczania. Obie metody są bardzo dobre, gdy nie jest istotna szybkość dokonywania pomiarów. Przy szybkim dokonywaniu pomiarów czasy odmierzane są bardzo krótkie a liczby impulsów zliczanych w tym czasie są małe, powoduje to wzrost błędów rozdzielczości. Na przykład dla dokonania 00 pomiarów na sekundę (czas pomiaru 0ms) przy prędkości 20 obr/min (dwa na sekundę) przy zastosowaniu impulsatora o 000 impulsach na obrót, licznik zaliczy 2*000/00=20 impulsów. Błąd rozdzielczości wynosi /20=5% a więc dość dużo. W takim przypadku wydaje się bardziej rozsądna metoda pomiaru czasu trwania określonej liczby impulsów. Na przykład dla liczby impulsów 20 i prędkości 20obr/min czas pomiaru wyniesie 0 ms, więc błąd kwantyzacji (rozdzielczość µs) wyniesie /0000=0,0% czyli dość mało, ale stają się widoczne inne błędy pomiarowe, które wprowadza sam impulsator. Otóż nierównomierność długości poszczególnych impulsów sięga 0%, a błąd wypadkowy zaliczania N impulsów wynosi w przybliżeniu 0%/N, w naszym przykładzie wyniesie on0%/20= 0,5%. Metoda ta ma jednak pewne wady: - jedną z nich jest konieczność przeliczania czasu na prędkość. Zabieg jest bardzo utrudniony gdyż zamierzamy użyć prostego 8 bitowego mikrokontrolera a liczby pomiarowe będą szesnastobitowymi - inną wadą jest to że okres pomiaru czyli szybkość próbkowania zmienia się w bardzo szerokim zakresie. W naszym przykładzie 0ms dla 20obr/min natomiast przy prędkości 500obr/min czas pomiaru będzie trwał poniżej ms Biorąc pod uwagę te rozważania proponuję metodę łączącą obie poprzednie mianowicie, zaliczanie impulsów przez określony odcinek czasu ( na przykład0ms) i dodatkowe zaliczanie czasu do pełnej liczby impulsów. W ten sposób unikniemy błędów rozdzielczości i otrzymamy prawie stałą częstotliwość pomiarów. Proponowany czas pomiaru 0ms powoduje, że liczba impulsów zliczonych w tym czasie (dla impulsatora o 000 impulsach na obrót) będzie odpowiadać prędkości obrotowej w Hz pomnożonej przez 0 (N=000*f[Hz]*0[ms)=0*f). Oczywiście liczbę impulsów N trzeba będzie odpowiednio skorygować, ponieważ czas pomiaru nie będzie wynosił dokładnie 0ms ale więcej o czas poprawkowy więc powyższe równanie przyjmie postać 0*f = N dn. Ponieważ N może być co najwyżej o jeden większe od wartości rzeczywistej więc trzeba będzie odjąć liczbę ułamkową co jest niemożliwe. Więc zastosujemy odejmowanie 0*N 0*dN (0*dN pewna liczba
całkowita z zakresu do 0), ma to swoje uzasadnienie w dalszej części referatu. 2. 3. Zobrazowanie metody pomiarowej (dla małej prędkości). Okres jednego impulsu Poprawka Czas odmierzany T=0ms T2 U góry są narysowane impulsy impulsatora, zaś na dole odmierzane czasy. Łatwo można zauważyć, że czas poprawkowy T2 zależy od liczby zaliczanych impulsów N. T2max będzie odpowiadał czasowi miedzy kolejnymi impulsami. T2max = (/(N-))*T dla N= 2 Nmax T2max = 70ms dla N= ( 70ms to pojemność licznika ) Zakres pomiarowy przyrządu. fmin=0,00*(/(t+t2max))=0.00/80ms=0,025hz=0,75obr/min fmax ograniczona możliwościami maszyny jednak nie większa od 60Hz (ze względu na dużą częstotliwość impulsów) To jest całkowity zakres pomiarowy (te pomiary wysyłane będą do komputera), ale częstotliwości obrotowe przeznaczone do wyświetlania będą pochodziły z ograniczonego zakresu pomiarowego od dołu. fmin2 = Hz To ograniczenie podyktowane jest sposobem obliczania poprawki wynikającej z metody pomiaru oraz błędami rozdzielczości wyświetlacza (4 cyfry). 2
3. Problem wykorzystania zmierzonej poprawki czasu. Problem się pojawia gdyż trzeba przeliczać czas na prędkość. Wcześniej była mowa, że mikrokontroler nie będzie w stanie dzielić liczb większych od ośmiobitowych. Zostanie, więc zastosowany inny algorytm przeliczania czasu na prędkość. Poprawka prędkości będzie obliczana dla zakresu prędkości gdzie liczba zaliczonych impulsów będzie nie mniejsza niż. Dlatego tak ponieważ czas poprawki maksymalny T2max= [/(-)]*T=0%T. Prędkość będzie skorygowana w następujący sposób. Dla zakresu przewidzianego do odczytu na wyświetlaczu własnym poprawka czasu T nie będzie przekraczała 0% czasu pomiaru. Do obliczenia poprawki wykorzystam algorytm: /(T + T2) = f - f Oczywiście nie znamy przyrosty prędkości. Zastosuje te wielkości jako względne T/T i f/f oraz założę, że: /T=f=const Funkcja odwrotna jest nieliniowa a więc powstaje pytanie. Jaki błąd popełnimy przy takim przeliczaniu i czy jest on dopuszczalny? Otóż dla T w zakresie od 0 do 0% T sprawa wygląda następująco. /(T+T2) = (/T)/( T2/T+) = f/(t2/t+) = f - f /(T2/T+) = - f/f dzielę przez f Tu była założona równość ale przy założeniu że w ograniczonych zmianach względnego przyrostu czasu f/f = k* T2/T gdzie k pewna stała liczba. Szukamy największej wartości funkcji różnicy lewej i prawej strony równania (różnica będzie błędem względnym spowodowanym taki obliczaniem) uwzględniając wcześniejsze założenie. /(T2/T+) - + k*t2/t = σ oznaczmy T/T=a zatem /(+a) + k*a = σ gdzie a=(0; 0,) czyli od 0 do 0% 3
Spróbujemy określić błędy dla różnych wartości k. Bł ą d wzglę dny procentowy w [%] 0.5 0.4 0.3 0.2 0. 0-0. -0.2 Wykresy bł ę du wzglę dnego dla ró rznych wspó ł czynnikó w k 0,88 0,89 0,9 0,9 0,92 0,93 0,94 0,95-0.3-0.4 0 0.0 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0. Wartość a Widzimy że, błędy obliczeniowe są nieznaczne i dla k=0.93 maksymalny błąd wynosi około 0,2%. Zastosowany będzie współczynnik k= 0,939 który jest realizowalny w łatwy sposób w mikrokontrolerze. Błąd maksymalny metody wyniesie 0,3%. 4
4. Sposób właściwego obliczenia poprawki. Poprzednie rozważania odnosiły się do licz względnych, a my musimy skorygować wielkość bezwzględną. Zrealizowane to zostanie w następujący sposób. Wstępnie zliczona liczba impulsów N = 0*f +dn (którą należy skorygować). W wyniku chcemy uzyskać liczbę całkowitą będącą wielokrotnością 0,0Hz czyli X=00*f. Na konie c pozostaje liczbę X zamienić na liczbę dziesiętną i wstawić przecinek (wyświetlanie jest stałoprzecinkowe). Naszą miarą T będzie T2max czyli maksymalny czas poprawkowy. Więc obliczenie wyglądać będzie następująco. X =00*f = 0*N 0*dN gdzie f prędkość w Hz natomiast dn=k*t2/t2max T2max=T/(N-) dn=k*(n-)*t2/t 00*f = 0*N k*(n-)*0*r/926 za 926 wstawimy 00*4*23.04 oraz k = (30*23,04)/(32*23) = 0,939 i otrzymujemy T2/T=r/926 T = 0ms r T2 jako liczba impulsów X=00*f = 0*N (N-)*r*3/23*32*4 wstawiamy do równania 5. Określimy błędy pomiarowe w poszczególnych fragmentach pomiarowych. Pod uwagę należy wziąć błędy wprowadzane przez impulsator są one szczególnie istotne przy pomiarach najmniejszych prędkości (mała liczba impulsów), błędy kwantowania wynikające z częstotliwości zegara mikrokontrolera, błędy wprowadzane przez część obliczeniową, wynikające z rozdzielczości wyświetlacza, błędy wynikające z niestabilności częstotliwości pracy. DLA MIERNIKA PRACUJĄCEGO SAMODZIELNIE Błąd rozdzielczości wyświetlacza - 0.0Hz = /f [%] Błąd kwantowania /926=0.0% (Przyjmuję jako wartość stałą) Błąd impulsatora 0%/N (N w przybliżeniu 0*f więc błąd /f [%] ) Błąd metody przeliczania występuje (0.3%) DLA MIERNIKA WSPÓŁPRACUJĄCEGO Z KOMPUTEREM Błędy kwantowania i impulsatora pozostaną bez zmian zaś pozostałe będą zależały od programu obsługi. Będą one dość małe dla rozważań przyjmę je na poziomie 0.02% (Tylko w celu sporządzenia wykresu). Inna będzie też metoda uwzględniania poprawki możliwość dzielenia liczb szesnastobitowych. Na podstawie tych wykresów można powiedzieć, że dokładność głównie zależy od błędu impulsatora, można go zmniejszyć, ale kosztem szybkości dokonywania pomiarów (w naszym przypadku jest ich 00 na sekundę) lub przez zastosowanie impulsatora lepszej klasy i o większej liczbie impulsów na jeden obrót. 5
CHARAKTERYSTYKA MIERNIKA PRACUJĄCEGO SAMODZIELNIE 2.5 Charakterystyka pomiarowa miernika predkoś ci praca samotna 2.5.5 2 2.5.2 Cią g dalszy tej charakterystyki 0.8 0.6 0.4 0.2 0 0 20 30 40 50 60 5 WYKRES BŁĘDU DLA WWSPÓLPRACY Z KOMPUTEREM Charakterystyka pomiarowa miernika predkoś ci wspó ł praca z komputerem 0 5 0 0 0.2 0.4 0.6 0.8.2.4.5 Cią g dalszy tej charakterystyki 0.5 0 0 0 20 30 40 50 60 6
Wnioski Wyeliminowanie błędów rozdzielczości znacznie zwiększa dokładność pomiaru zwłaszcza przy małych prędkościach gdzie liczba impulsów jest niewielka. Pozostają jednak błędy wprowadzane przez sam impulsator (nierównomierność pojedynczych impulsów do 0%) i kwantyzacji czasu (około /0000=0,0%). Przy współpracy z zewnętrznym komputerem zadaniem mikrokontrolera będzie zliczenie liczby impulsów oraz odmierzenie czasu T2 i wysłanie tych informacji do komputera. Czasu T nie będzie trzeba mierzyć gdyż będzie on liczbą stałą (0ms). Miernik będzie mierzył prędkość z częstotliwością około 00Hz (przy najmniejszych prędkościach kilkanaście Hz). Wyświetlany wynik będzie miał znaczenie kontrolne. 7