projekt mikroprocesorowego miernika prędkości obrotowej
Transkrypt
projekt mikroprocesorowego miernika prędkości obrotowej
Autor: Piotr Macheta Koło Naukowe „Magnesik” Opiekun naukowy: dr inż. Tomasz Drabek POMIAR PRĘDKOŚCI OBROTOWEJ Z UŻYCIEM MIKROKONTROLERA Z RODZINY 8051. 1. 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 100 pomiarów na sekundę (czas pomiaru 10ms) przy prędkości 120 obr/min (dwa na sekundę) przy zastosowaniu impulsatora o 1000 impulsach na obrót, licznik zaliczy 2*1000/100=20 impulsów. Błąd rozdzielczości wynosi 1/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 120obr/min czas pomiaru wyniesie 10 ms, więc błąd kwantyzacji (rozdzielczość 1µs) wyniesie 1/10000=0,01% 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 10%, a błąd wypadkowy zaliczania N impulsów wynosi w przybliżeniu 10%/N, w naszym przykładzie wyniesie on10%/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 10ms dla 120obr/min natomiast przy prędkości 1500obr/min czas pomiaru będzie trwał poniżej 1ms Biorąc pod uwagę te rozważania proponuję metodę łączącą obie poprzednie mianowicie, zaliczanie impulsów przez określony odcinek czasu ( na przykład10ms) 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 10ms powoduje, że liczba impulsów zliczonych w tym czasie (dla impulsatora o 1000 impulsach na obrót) będzie odpowiadać prędkości obrotowej w Hz pomnożonej przez 10 (N=1000*f[Hz]*10[ms)=10*f). Oczywiście liczbę impulsów N trzeba będzie odpowiednio skorygować, ponieważ czas pomiaru nie będzie wynosił dokładnie 10ms ale więcej o czas poprawkowy więc powyższe równanie przyjmie postać 10*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 10*N – 10*dN (10*dN – pewna liczba 1 całkowita z zakresu 1 do 10), 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 T1=10ms 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 = (1/(N-1))*T1 dla N= 2÷Nmax T2max = 70ms dla N= 1 ( 70ms to pojemność licznika ) Zakres pomiarowy przyrządu. fmin=0,001*(1/(T1+T2max))=0.001/80ms=0,0125Hz=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 = 1Hz 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ż 11. Dlatego tak ponieważ czas poprawki maksymalny T2max= [1/(11-1)]*T1=10%T1. 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 10% czasu pomiaru. Do obliczenia poprawki wykorzystam algorytm: 1/(T1 + 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: 1/T1=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 10% T1 sprawa wygląda następująco. 1/(T1+T2) = (1/T1)/( T2/T1+1) = f/(T2/T1+1) = f - ∆f 1/(T2/T1+1) = 1 - ∆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/T1 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. 1/(T2/T1+1) - 1 + k*T2/T1 = σ zatem 1/(1+a) – 1+ k*a = σ oznaczmy ∆T/T=a gdzie a=(0; 0,1) czyli od 0 do 10% 3 Spróbujemy określić błędy dla różnych wartości „k”. W y k res y bł ę du wzglę dnego dla ró rz ny c h ws pó ł czynnikó w k 0.5 0,88 0,89 0,9 0,91 0,92 0,93 0,94 0,95 B ł ą d wz glę dny proc entowy w [% ] 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 0 0.01 0.02 0.03 0.04 0.05 0.06 W artoś ć a 0.07 0.08 0.09 0.1 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 = 10*f +dN (którą należy skorygować). W wyniku chcemy uzyskać liczbę całkowitą będącą wielokrotnością 0,01Hz czyli X=100*f. Na konie c pozostaje liczbę X zamienić na liczbę dziesiętną i wstawić przecinek (wyświetlanie jest stałoprzecinkowe). Naszą miarą T1 będzie T2max czyli maksymalny czas poprawkowy. Więc obliczenie wyglądać będzie następująco. X =100*f = 10*N – 10*dN gdzie natomiast dN=k*T2/T2max dN=k*(N-1)*T2/T1 f – prędkość w Hz T2max=T1/(N-1) T2/T1=r/9216 T1 = 10ms r – T2 jako liczba impulsów 100*f = 10*N – k*(N-1)*10*r/9216 za 9216 wstawimy 100*4*23.04 oraz k = (30*23,04)/(32*23) = 0,939 wstawiamy do równania i otrzymujemy X=100*f = 10*N – (N-1)*r*3/23*32*4 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.01Hz = 1/f [%] Błąd kwantowania – 1/9216=0.011% (Przyjmuję jako wartość stałą) Błąd impulsatora – 10%/N (N – w przybliżeniu 10*f więc błąd 1/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 100 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 Charaktery s tyk a pom iarowa m iernik a predk oś c i prac a s am otna Odc hy ł k a w [% ] 2.5 2 1.5 1 1 1.5 2 P rę dkoś ć f [Hz ] Cią g dalsz y tej c harak tery sty k i 2.5 Odc hy ł k a w [% ] 1.2 1 0.8 0.6 0.4 0.2 0 10 20 30 P rę dkoś ć f [Hz ] 40 50 60 WYKRES BŁĘDU DLA WWSPÓLPRACY Z KOMPUTEREM Charaktery s tyk a pom iarowa m iernik a predk oś c i wspó ł praca z k om puterem Odc hy ł k a w [% ] 15 10 5 0 0 0.2 0.4 0.6 0.8 1 P rę dkoś ć f [Hz ] Cią g dalsz y tej c harak tery sty k i 1.2 1.4 Odc hy ł k a w [% ] 1.5 1 0.5 0 0 10 20 30 P rę dkoś ć f [Hz ] 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 10%) i kwantyzacji czasu (około 1/10000=0,01%). 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 T1 nie będzie trzeba mierzyć gdyż będzie on liczbą stałą (10ms). Miernik będzie mierzył prędkość z częstotliwością około 100Hz (przy najmniejszych prędkościach kilkanaście Hz). Wyświetlany wynik będzie miał znaczenie kontrolne. 7