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

Podobne dokumenty