Skocz do zawartości

Czujnik prędkości wiatru


SOYER

Pomocna odpowiedź

(edytowany)
1 godzinę temu, ethanak napisał:

@SOYER żaden sąsiad nie ma trachtora?

Co to za ustrojstwo?

Pierwsze testy za mną, powiem tak, prędkość ze wzoru nie ma nic wspólnego z rzeczywistością. Jeszcze nie analizowałem, to wieczorem, ale korekcja niezbędna, a najlepiej mapowanie jak pisaliśmy.

 

IMG_1492.PNG

Edytowano przez SOYER
Link do komentarza
Share on other sites

Pierwsza analiza, tak na szybko.

Faktycznie widać nieliniowość, wraz ze wzrostem prędkości rośnie różnica między wynikiem obliczeń, a wskazaniami prędkościomierza.

Ostatnia kolumna w tej „tabeli” to stosunek prędkości obliczonej do realnej.

Oczywiście wahania dość spore przy jednej prędkości, warunki różne przy takich pomiarach, a i wietrznie dzisiaj było.

IMG_1501.JPG

Link do komentarza
Share on other sites

(edytowany)
void temporaryRPM(){
    noInterrupts(); 
    if((last_event + 2000) < millis()){    
     rpm=0;
     moment_kmh = 0;
    }
    else{ 
      rpm = (30000 / half_revolutions_time) ;
      moment_kmh = 6.28 * 0.075 * rpm/60.0 * 3.6;
      if(moment_kmh < 8.5){
        correct_moment_kmh = moment_kmh * 1.9;
      }
      else if((moment_kmh >= 8.5) && (moment_kmh < 25)){
        correct_moment_kmh = moment_kmh * 2.4;
      }
      else if((moment_kmh >= 25) && (moment_kmh < 38)){
        correct_moment_kmh = moment_kmh * 2.8;
      }
    } 
    if(sekund6.available()){
      tempKmh = tempKmh + correct_moment_kmh;
      sample++;
      sekund6.restart();
     }
    if(sample==10){
      average_kmh = tempKmh / 10; 
      //wiatr->setValue(kmh);
      tempKmh = 0;
      sample=0;
      sekund6.restart();
    }
   interrupts() ; //Przywróć przerwania
}

Z powodu sporych rozbieżności w pomiarach na razie postanowiłem wprowadzić 3 stopniową korekcję przeliczania prędkości. Jutro będzie spokojniejsza pogoda to sprawdzę to w praktyce, ew. naniosę kolejne korekty. Zmieniłem również sposób obliczania średniej z ostatniej minuty, opierając się na prędkości po korekcie, a nie na RPM.

Edytowano przez SOYER
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

6 godzin temu, SOYER napisał:

prędkość ze wzoru nie ma nic wspólnego z rzeczywistością

Popatrz na to co napisałem powyżej. Wzór przelicza prędkość obrotową wirnika na km. Wszystko by się zgadzało gdyby prędkość liniowa miseczek była równa prędkości napływającego powietrza, ale tak nie jest.

6 godzin temu, SOYER napisał:

korekcja niezbędna, a najlepiej mapowanie

Tak na chłopski rozum, to masz rację. Można zmierzyć kilka prędkości, a wartości pośrednie interpolować prostą, albo krzywą.

  • Lubię! 2
Link do komentarza
Share on other sites

3 godziny temu, SOYER napisał:

Anemometr i esp8266, testy obliczeń

Aby zmniejszyć wpływ powietrza opływającego samochód możesz umieścić anemometr na kiju by był dalej od nadwozia.

Link do komentarza
Share on other sites

(edytowany)
5 godzin temu, SOYER napisał:

Faktycznie widać nieliniowość, wraz ze wzrostem prędkości rośnie różnica między wynikiem obliczeń, a wskazaniami prędkościomierza.

Pokazuję twoje pomiary na wykresie wraz z linią trendu w postaci liniowej.

506737273_Anemometrwykres.thumb.png.1b0fc5e8588459d4f4a784e2da13c520.png 

Drugi wykres pokazuje prędkość zmierzoną w funkcji prędkości obrotowej oraz prędkość obliczoną na podstawie wzoru. Tu też dodałem linie trendów w postaci funkcji liniowej. Dla wartości pomierzonej linię trendu opisuje równanie Vr = 0,0767*n - 2,6786. Równanie linii obliczonej ze wzoru Vw = 0,0282*n - 0,0449.

1891160235_Anemometrwykres3.thumb.png.d2cdd87c7fffccfad345aeac7241f536.png

Na tej podstawie proponuję być przyjąć wzór obliczający prędkość Vk = 2,72*n. Gdy podstawisz do tego wzoru zmierzone prędkości obrotowe otrzymasz takie wyniki. Pomiary trzeba by powtórzyć. Szczególnie te, które znacznie odchylają się od linii prostej.

11342239_Anemometrwykres4.thumb.png.56f4b43c60964e8dbb9bf98b2b4897ed.png

 

Edytowano przez Sylba
  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

7 godzin temu, Sylba napisał:

Pokazuję twoje pomiary na wykresie wraz z linią trendu w postaci liniowej.

506737273_Anemometrwykres.thumb.png.1b0fc5e8588459d4f4a784e2da13c520.png 

Drugi wykres pokazuje prędkość zmierzoną w funkcji prędkości obrotowej oraz prędkość obliczoną na podstawie wzoru. Tu też dodałem linie trendów w postaci funkcji liniowej. Dla wartości pomierzonej linię trendu opisuje równanie Vr = 0,0767*n - 2,6786. Równanie linii obliczonej ze wzoru Vw = 0,0282*n - 0,0449.

1891160235_Anemometrwykres3.thumb.png.d2cdd87c7fffccfad345aeac7241f536.png

Na tej podstawie proponuję być przyjąć wzór obliczający prędkość Vk = 2,72*n. Gdy podstawisz do tego wzoru zmierzone prędkości obrotowe otrzymasz takie wyniki. Pomiary trzeba by powtórzyć. Szczególnie te, które znacznie odchylają się od linii prostej.

11342239_Anemometrwykres4.thumb.png.56f4b43c60964e8dbb9bf98b2b4897ed.png

 

Dzięki za bardzo wyczerpującą i pouczającą odpowiedź. Jesteś pewny, że współczynnik korygujący powinien być stały wraz ze wzrostem prędkości?

Link do komentarza
Share on other sites

(edytowany)

Pora na deszczomierz. Tutaj również niespodzianki. Poradniki na internetach podają, że każdy impuls z czujnika to 0.2794mm opadu. W domyśle na m2.

Wziąłem do ręki strzykawkę 10ml, rozebrałem czujnik i zrobiłem kilka prob. Za każdym razem wychodziło mniej więcej 6 przechyleń wahadełka na strzykawkę. To nam daje ok 1.6ml na przechył. Celowo na razie nie piszę na impuls, o tym za chwilę. Te próby też powiedzmy średnio dokładne, bo jak widać na zdjęciach zdarza się, że napięcie powierzchniowe utrzymuje wodę w wahadełku pomimo przechylenia.

Obliczenia.

Pojemnik zbiorczy czujnika ma 110mm x 50mm to nam daje 0.0055m2. Czyli 1/181 część metra kwadratowego.

1.6ml na jeden przelew razy 181 daje nam 289ml/m2, czyli 0.289mm/m2. Czyli jesteśmy dość blisko wyniku podawanego przez producenta(?). Tak jak mówię pomiary są dość średnio precyzyjne ale śmiało możemy zaokrąglić ilość przelewanej wody z jednej części wahadełka na 0.28mm/m2.

 

IMG_1505.JPG

IMG_1507.JPG

IMG_1506.JPG

IMG_1508.JPG

Edytowano przez SOYER
Link do komentarza
Share on other sites

Teraz liczba impulsów z deszczomierza. Tu jest pewne zaskoczenie, którego przyznam nie rozumiem. Jeśli czytamy pin przy pomocy digitalRead() to faktycznie mamy stan wysoki po przelaniu na którąś ze stron. Jeden impuls na jedno wylanie. 

Jednak wszyscy piszą szkic na przerwaniach, a tutaj niespodzianka, dla ustawienia RISING lub FALLING mamy po dwa impulsy na każde wylanie. Dlaczego? To mi się nie zgadza ze zdrowym rozsądkiem. Dlaczego digitalRead widzi coś innego niż przerwanie. W funkcji przerwania mam debouncing:

void ICACHE_RAM_ATTR rn(){// wektor przerwania deszczomierza
  unsigned long static last_event1 = 0;
  if (millis() - last_event1 < 50) {   //debouncing
    return;
  }
  rai++;
}

To by znaczyło, że spora liczba tych urządzeń źle przelicza ilość opadów....

Opisywane rzeczy przedstawiam na filmach.

Kto wytłumaczy?

 

 

Link do komentarza
Share on other sites

Miałem błąd w funkcji przerwania, dotyczący eliminacji drgań, nie aktualizowałem zmiennej last_event1. Jednak poprawa nic nie zmieniła w wynikach szkicu.

Poprawiona funkcja:

void ICACHE_RAM_ATTR rn(){// wektor przerwania deszczomierza
  unsigned long static last_event1 = 0;
  if (millis() - last_event1 < 50) {   //debouncing
    return;
  }
  rai++;
  last_event1 = millis();
}

 

Link do komentarza
Share on other sites

Bardzo proszę kolegę @Treker, lub innego admina o wydzielenie moich trzech ostatnich postów w tym temacie(o deszczomierzu), do nowego wątku. Może się nazywać "Deszczomierz".

Niepotrzebnie pomieszałem sprawy, a tematu wątku już nie da się zmienić.

Dziękuję i przepraszam za zamieszanie.

Link do komentarza
Share on other sites

2 godziny temu, SOYER napisał:

Jesteś pewny, że współczynnik korygujący powinien być stały wraz ze wzrostem prędkości?

Jest to przybliżenie liniowe. W tym zakresie prędkości oraz mając na uwadze cel, któremu ma służyć, wydaje się zupełnie wystarczające.

Poprawiłem swoje szacunki przyjmując dodatkowo oczywisty punkt pomiarowy n = 0 [1/min] i odpowiadającą mu prędkość V = 0 [km/h]. Przyjmując zależność liniową V = a * n gdzie na podstawie pomiarów ap = Vmax / nmax = 100 / 1360 = 0,0735 oraz według wzoru aw = 3,6 * pi * R / 30000 = 0,0283 obliczyłem współczynnik do przeliczania prędkości wg wzoru na prędkość rzeczywistą k = ap / aw = 0,0735 / 0,0283 = 2,5972.

Wyniki pokazuję na wykresie. V teoretyczna to V = 2,5972 * Vwzór

674147493_Anemometrwykres5.thumb.png.d35850bb649d3e574f391c20653296ce.png

Tabela z obliczeniami.

730766327_Anemometrtabela.thumb.png.5d6bface857383ba2d8e692152a8f80b.png

Jeśli starczy ci cierpliwości, to możesz powtórzyć kalibrację zwracając uwagę na pomiary zaznaczone w tabeli na żółto, które znacznie odbiegały od teoretycznej wartości.

2045514193_Anemometrwykres7.thumb.png.d64b51bfd860a354030e2d07ebe04d91.png

 

Link do komentarza
Share on other sites

3 godziny temu, SOYER napisał:

każdy impuls z czujnika to 0.2794mm opadu. W domyśle na m2.

Jeśli podajemy wielkość opadu w mm słupa wody, to powierzchnia nie ma znaczenia - dla każdej będzie tyle samo.

Dopiero jeśli chcemy podać opad np. w litrach, to powierzchnia ma znaczenie (litry/m2).

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.