Skocz do zawartości

Automat sterujący zaworem proporcjonalnym w opryskiwaczu


kellyq

Pomocna odpowiedź

Hej

Szukam konceptu na sterowanie zaworem proporcjonalnym w opryskiwaczu zależnie od przepływu cieczy i prędkości jazdy. Zawór ten jest zwykłym silnikiem prądu stałego, reguluje ciśnienie cieczy a co za tym idzie, to, ile cieczy jest wypryskiwane. Ciecz jest mierzona za pomocą przepływomierza a prędkość opryskiwacza za pomocą czujnika halotronowego przy kole. 

Interesuje mnie jak sensownie zrobić histerezę (chyba tego potrzebuję) odczytów przepływu i prędkości żeby zawór proporcjonalny nie reagował zbyt nerwowo, robił korekcję ciśnienia tylko po przekroczeniu wartości minimalnej i maksymalnej.

Link do komentarza
Share on other sites

Hmm...

O ile pamiętam opryski liczy się "na hektar", więc wiedząc ile cieczy wylatuje w danym momencie, prędkość i szerokość opryskiwacza możesz policzyć ilość cieczy na hektar.

S - pole powierzchni oprysku, V - ilość cieczy, s - pokonany dystans, d - szerokość opryskiwacza, p - przepływność cieczy (L cieczy / sek.), v - prędkość pojazdu, t - czas, H - ilość oprysku (L) na metr kwadratowy

Matematyka:
s ~=  v * t
V ~= p * t
S = ∫(v * t * d) dt

H = V/S = (p*t) / ((1/2) (v*t^2*d)) = 2p / dvt

O ile się nie pomyliłem powinno być dobrze policzone. (czytaj sprawdź obliczenia na wszelki wypadek)

Pod H masz szacunkową wartość, z której najlepiej byłoby zrobić histerezę, by ilość oprysku na hektar była równoznaczna ilości zadanej przez producenta (lub rolnika). W celu policzenia tego sensownie najlepiej zastosować równania różniczkowe, a do sterowania prawdopodobnie PID całkiem dobrze by sobie poradził, by wyregulować ilość wyrzucanego materiału na m3, tylko czujniki przepływu nie należą do najszybciej reagujących...

Edytowano przez H1M4W4R1
  • Lubię! 1
Link do komentarza
Share on other sites

Aktualnie to co mam teraz wgrane do sterownika to trochę inaczej liczę

aktualna dawka w l/hektar((odczyt z przepływomierza w litrach na minutę / liczba rozpylaczy aktywnych)*60000)/(predkosc*rozstaw rozpylaczy w cm

To się sprawdza w praktyce bardzo dobrze o ile trzymam stałą prędkość, taki jaki mam odczyt tyle cieczy na hektar wypryskuję, tylko teraz bym zrobił właśnie automat żeby się tą prędkością nie przejmować. Poczytałem trochę o tym PID i chyba faktycznie to jest to czego potrzebuję.

Link do komentarza
Share on other sites

1 godzinę temu, kellyq napisał:

aktualna dawka w l/hektar((odczyt z przepływomierza w litrach na minutę / liczba rozpylaczy aktywnych)*60000)/(predkosc*rozstaw rozpylaczy w cm

Uhm... Cytując nauczyciela od fizyki: jednostki się nie zgadzają. 0 punktów. 😉 Może liczy całkiem dobrze, nie wypowiem się... Ale coś czuję, że przy PID mogą pojawić się nieoczekiwane problemy, ponieważ PID wykorzystuje równanie różniczkowe do szacowania zmiany wartości funkcji w czasie, więc musiałbyś się sporo nakombinować, by do Twojego równania dodać czas...

Histerezą też da się to zrobić, ale stabilność ilościowa będzie znikoma zwłaszcza biorąc pod uwagę wahania przepływomierza

  • Lubię! 2
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

Znaczy się to równanie chciałbym zostawić w spokoju, jego wynik stanowiłby dane wejściowe do PID. Odczyt z prędkości i przepływu tego powyżej mam jako średnia krocząca. Nauczony już trochę doświadczeniem będę robił menu i tam wszystkie ustawienia będą dostępne, bo wgrywać co trochę nowy kod tylko poto żeby zmienić jedną wartość to paranoja. Tak na szybko przewertowałem biblioteki pid do arduino to jest tego trochę. Wieczorem poszperam więcej i coś napiszę jeszcze to zobaczyłbyś czy by to miało ręce i nogi.

Link do komentarza
Share on other sites

25 minut temu, kellyq napisał:

Tak na szybko przewertowałem biblioteki pid do arduino to jest tego trochę. Wieczorem poszperam więcej i coś napiszę jeszcze to zobaczyłbyś czy by to miało ręce i nogi.

Napisanie PID to jedno, a kalibracja by to poprawnie działało to już zupełnie inna sprawa... 😉 

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

Ogólnie, mówię tu o gotowcach, to realizuje się np. takimi sterownikami jak np. APAR AR-715, lub Simex SLIK-73. Są to ogólnie liczniki/przepływomierze z funkcja dozownika.

Możesz sobie poczytać instrukcje do nich, tam jest wyjaśnione co, po co, jak i dlaczego. Na pewno nakieruje cię taka lektura na metodykę.

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

Ja bym to sprowadził do dwóch zmiennych, potrzebnej dawki na ha i aktualnie opryskiwanej powierzchni na jednostkę czasu np. sekundę( zależną od prędkości i aktualnej szerokości oprysku). Wielkość jednostki czasu zależna od potrzebnej nam precyzji.

Link do komentarza
Share on other sites

Pobrałem sobie bibliotekę FastPID. Zmienna feedback to by był mój aktualny odczyt przepływu w l/ha, zmienna setpoint to by była zadana wartość przepływu np. 250l/ha do wypryskanej cieczy, natomiast zmienna output to wyjście do sterowania zaworem proporcjonalnym. Trzeba jeszcze mieć w pamięci że wykonując oprysk prędkość ciągnika ma wpływ na zmienną feedback. I dlatego poto jest ten automat żeby niezależnie od prędkości wypryskiwać zawsze tą samą ilość cieczy na hektar powierzchni. Wszystko pięknie ładnie bawię się tymi współczynnikami Kp, Ki, Kd. Tylko jedno ale jak mam potem wysterować silnik od zaworu proporcjonalnego jak on pracuje (kręci się, raz w jedną stronę raz w drugą) tylko w momencie kiedy trzeba zmienić przepływ. 

Nie wiem czy dobrze myślę ale może trzeba by porównać ostatni stan zmiennej output i aktualny i jeśli jest większy to kręcić silnikiem w prawo, jeśli mniejszy to w lewo. Tylko że znowu pytanie ile kręcić czy o ustaloną z góry wartość czy jakoś automatycznie to przeliczać. Już widzę że to może być ciężko z tym automatem sterującym. Chyba żeby dobrać takie ustawienia tego PID żeby wyjście output działało dość ospale, hmmm..... Znowu żeby nie było tak że silnik tego zaworu będzie napierdzielał raz w jedną raz w drugą stronę nonstop

Link do komentarza
Share on other sites

Wracam do tematu. Sterownik gotowy poza funkcją auto. Nie wiem czy regulator PID mi tutaj w czymś pomoże czy nie ale załóżmy, że zostanie użyty. Brakuje mi kodu wykonawczego do sterowania zaworem. Operując  na zmiennych zadanaDawka i odczytanaDawka myślałem żeby policzyć uchyb czyli zadanaDawka - odczytanaDawka. Dostaję wtedy pewną wartość, zależnie czy będzie dodatnia czy ujemna kręcę wtedy silnikiem w prawo albo w lewo. 

Silnikiem mogę kręcić określony czas który trzeba ustalić oraz z określonym napięciem (PWM). Jako że w sterowniku mam odbiornik nrf24L01 wolałbym uniknąć sterowania czasem żeby nie zamulić przypadkiem kumunikacji dwóch nrf-ów. Zostaje mi sterowanie napięciem chyba?

Jak myślicie zdało by to egzamin?

Link do komentarza
Share on other sites

32 minuty temu, kellyq napisał:

Wracam do tematu. Sterownik gotowy poza funkcją auto. Nie wiem czy regulator PID mi tutaj w czymś pomoże czy nie ale załóżmy, że zostanie użyty

Ja bym tu PID'a nie upychali bo jest on w sumie zbędny w twojej sytuacji...musisz znać przepływ zaworu w całym zakresie w jednostce czasu, np 1 sekunda...znając szerokość opryskiwacza i prędkość ciagnika można już łatwo ustalić jak ma być zawór ustawiony w zależności od prędkości i wartości zadanej...zakładam że zawór ma charakterystykę liniową (a taka pewnie ma)...jedynie do sterowania wykorzystał bym silnik krokowy, który da mi zawsze powtarzalne pozycję bez paprania się w pwm i czasy kręcenia...

Link do komentarza
Share on other sites

1 minutę temu, kellyq napisał:

Nie da rady zawory są to gotowe elementy, markowe i dość drogie jest tam zwykły silnik DC z przekładnią

Tak tak...sorki..teraz doczytałem 😉 no to skoro jest przepływomierz..to najpierw pasowało by obliczyć ile sekund potrzebujemy do przejechania ha przy aktualnej predkosci..później zadana wartość oprysku podzielić przez te sekundy i wyjdzie nam ile płynu ma być wypompowane w 1 sekundę, a to już łatwo zrobić mając wartość z przepływomierza...no chyba że ten zawór nie jest jakiś liniowy i ciągle trzeba nim manipulowac żeby mieć stabilne ciśnienie...

Link do komentarza
Share on other sites

Hmmm... nie wiem co odpowiedzieć. Ale po co ta wiedza ile płynu jest wypompowane przez 1 sekundę przez ten zawór? Nie da się wykorzystać tej zmiennej odczytanaDawka mam ją pięknie wyliczoną. Mnie martwi najbardziej algorytm który będzie sterował zaworem, właściwie jego brak. 

Jeszcze sprecyzuję może jedną rzecz, jadąc z opryskiwaczem to ile wypryskam cieczy zależy przede wszystkim od prędkości, bo jadąc wolniej pompa podaje mniej cieczy i mniejsze ciśnienie na zawór i zależy też od samego zaworu. Zawór zamknięty podaje całą ciecz na przelew a całkiem otwarty całą ciesz na wypryskanie. Jest jeszcze pierdyliard ustawień pomiędzy otwartym i zamkniętym. 

Link do komentarza
Share on other sites

14 minut temu, kellyq napisał:

Ale po co ta wiedza ile płynu jest wypompowane przez 1 sekundę przez ten zawór?

No ta 1 sekunda to takie moje założenie...chodzi o częstotliwość korygowania...wiadomo że im częściej tym dokładniej można ustalić zawór..

 

20 minut temu, kellyq napisał:

Jeszcze sprecyzuję może jedną rzecz, jadąc z opryskiwaczem to ile wypryskam cieczy zależy przede wszystkim od prędkości, bo jadąc wolniej pompa podaje mniej cieczy i mniejsze ciśnienie na zawór i zależy też od samego zaworu. Zawór zamknięty podaje całą ciecz na przelew a całkiem otwarty całą ciesz na wypryskanie. 

Hmm..to może faktycznie zainteresuj się tym PID...choć bez niego też idzie ogarnąć 😜 

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.