Arduino Polska Forum

Pełna wersja: Wysterowanie zaworu proporcjonalnego
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Hejka
Zrobiłem sobie sterownik do opryskiwacza polowego z funkcjami praca, przelew, zadawanie ciśnienia, sterowanie elektrozaworami od hydrauliki. Chciałbym jeszcze zrobić automatyczne regulowanie ciśnienia tylko nie wiem jak się za to zabrać. W opryskiwaczu mam zamontowany zawór proporcjonalny i przepływomierz. Zawór to nic innego jak silnik dc na 12V którym obracamy raz w jedną raz w drugą stronę, zwiększając lub zmniejszając ciśnienie. Zmiana ciśnienia powoduje oczywiście zmianę dawki oprysku którą odczytuje przepływomierzem.
Automat miałby utrzymywać zadaną dawkę na odpowiednim poziomie, niezależnie od prędkości ciągnika. Dane jakie mam do dyspozycji to prędkość ciągnika, przepływ w l/min, po przeliczeniu aktualnie odczytana dawka w l/hektar. Sterowanie silnikiem odbywa się poprzez L298n czyli mogę wysterować ten silnik zadając określone napięcie (PWM) oraz czas trwania sygnału

Nie mam koncepcji na algorytm sterujący tym silnikiem. Wiem tylko że na podstawie różnicy wartości zadanej dawki i tej odczytanej mogę uzyskać wartości o różnym znak, było by wtedy ewentualnie wiadomo w którą stronę kręcić silnikiem aby odczytana dawka zrównała się z tą zadana. Ale w którym momencie kręcić tym silnikiem, jak długo, jakim napięciem to nie mam pojęcia. Jak zrobić żeby ten silnik nie reagował zbyt nerwowo ale jednocześnie był w stanie utrzymywać dawkę na zadanym poziomie. 
Jakby ktoś mógł rzucić jakiś luźny koncept to byłoby fajnie. Cały projekt jest na atmega 328p
Pozdro
Są funkcje PID i ich warianty, masz tam współczynniki, które wpływają na szybkość dopasowania wyniku na podstawie zbieranych informacji zwrotnych. Znajdziesz mnóstwo przykładów, również w postaci filmów na Youtube,np:
https://www.youtube.com/watch?v=7Obp6s20NDU