Skocz do zawartości

Równania - regulator PI/PID


pearmilkhippo

Pomocna odpowiedź

Cześć! 

Mam do wykonania projekt - regulator PI. Zasada działania jest mi znana, natomiast potrzebuję wzorów. Wzory mogę "wziąć z Internetu". I tutaj pojawia się problem, bo chyba nie wiem o jakie wzory chodzi, tzn. temat projektu jest dosłownie dowolny, może to być jakiś termostat/automatyczne nawadnianie roślin/generalnie sterowanie czymkolwiek. Problem w znalezieniu wzorów - temat bardzo ogólny, ale nie mogę znaleźć żadnych gotowych wzorów na np. prędkość parowania wody z gleby, etc. Oczywiście chodzi mi o wzory, które będą zrozumiałe dla zwykłej osoby, a większośc jest bardzo skomplikowana. Czy ktoś jest w stanie pomóc z problemem? Regulator PID (PI) zaprojektuję już samodzielnie wraz z programem oraz przykładowymi wykresami. Program ma być tylko zasymulowany w Pythonie + wygenerowane zostaną do niego wykresy, brakuje tylko początku, bo kompletnie nie mam pojęcia skąd wziąć te wzory, a temat jak pisałem - dowolny. Projekt jest naprawdę "podstawowy" w porównaniu z większością rzeczy, o których czytam, także nie wiem dlaczego aż taki problem ze znalezieniem wzorów na dowolny temat. Nie mogę znaleźć nawet przykładowych/gotowych projektów z jakiegokolwiek sterowania regulatorem PI/PID. 

Edytowano przez pearmilkhippo
Link do komentarza
Share on other sites

Cześć,

jest bardzo dobrze działająca biblioteka do implementacji regulatora PID. Wstawiając zero dla współczynnika D możesz za jej pomocą zrealizować regulator PI (nie ma on członu rózniczkującego reagującego na gwałtowne zmiany regulowanej wielkości). Same równania regulatora PID są bardzo proste - ma on trzy człony:

1) proporcjionalny P  - głowny człon wzmocnienie w pętli sprzężenia zwrotnego

2) całkujący I - odpowiada za niwelowanie dryftów i zmian wolnych

3) rózniczkowy - odpowiadający za szybkie zmiany w regulowanym sygnale

Bibliotek PID dla Arduino:

https://www.arduino.cc/reference/en/libraries/pidcontroller/

Masz:

pid.tune(kP, kI, kD) to tune the controller.

dla ustawienia współczynników - więc wstawiając:

pid.tune(x, y, 0);    // Tune the PID, arguments: kP, kI, kD

będziesz miał tylko człony PI - gdzie x,y sa niezerowymi wartościami współczynników P i I

Pozdrawiam

 

Edytowano przez FlyingDutch
  • Lubię! 1
  • 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.