Arduino Polska Forum
Regulator PID wilgotność - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Instalacja i rozwiązywanie problemów (https://forum.arduinopolska.pl/dzial-instalacja-i-rozwi%C4%85zywanie-problem%C3%B3w)
+--- Wątek: Regulator PID wilgotność (/watek-regulator-pid-wilgotno%C5%9B%C4%87)



Regulator PID wilgotność - steven093 - 10-06-2016

Witam wszystkich na forum chciałbym zrobić regulator do sterowania wilgotnością. Silnik który otwiera klapę przez co spada wilgotność, jest to silnik krokowy sterowany sygnałem 0-10 V. Chciałbym zapytać jak zrealizować takie regulator w sieci znalazłem taki fragment kodu, chciałbym zapytać czy jest on poprawny oczywiście Kp Ti i Td dobiorę sobie sam. Wartość wo oraz w mam obliczone. Posiadam arduino Uno i żeby sygnał sterujący pojawił się na pinie analogowym. Wiem że arduino ma wyjście 0-5 V ale sprawę załatwią wzmacniacze operacyjne

Kod:
int dt = 20; //co ile pobiera się próbkę
int ep; //uchyb poprzedni
int en; //uchyb następny
int U; //sygnał sterujący
int C; //część całkująca
int Kp; //wzmocnienie
int Ti; //stała całkowania
int Td; //stała różniczkowania
...
void loop()
{
 en = wo-w; // wartość uchybu poznajemy za pomocą równania wo-wartość zadana, w-wartość danej chwili
 C += ((ep + en)/2)*dt;
 U = Kp*(en + (1/Ti)*C/1000 + Td*(en - ep)*1000/dt)
 ep = en;
}