Automatyzacja centrali wentylacyjnej – regulator PID

Witam.

     Automatyczna regulacja przepływu powoli staje się faktem. Na dzień dzisiejszy zainstalowałem przepływomierze oraz zaimplementowałem regulator PID w programie. Centrala nie jest już pudłem które tłoczy powietrze, ale pudłem, które zaczyna reagować na zmienne warunki.

     Sam regulator PID w automatyce nie jest niczym nowym. Od wielu lat jest powszechnie wykorzystany w różnego rodzaju aplikacjach. Od trywialnego utrzymania temperatury na piecu, do bardzo szybkich i dokładnych serwonapędów. Początkowo był zaprojektowany jako układ analogowy, ale wraz z rozwojem cyfrowych układów automatyki, został dostosowany do warunków i zasad panujących w układach dyskretnych. Jego podstawowym zadaniem jest regulacja układem wykonawczym, w tak sposób, aby uzyskać  pożądany stan obiektu. Prościej, ma tak regulować układem, aby różnica między wartością rzeczywistą, a wartością zadaną była jak najmniejsza.  Obecnie regulator PID jest tylko zwykłą procedurą, która liczy jak program ma zareagować, na zmieniającą się rzeczywistość. Nie planuję wyprowadzać wzorów na transmitancje obiektu, układu regulacji. Chce go tylko użyć. Dla chcących zgłębić temat odsyłam do bardziej kompetentnych źródeł. Jest tego pełno w Internecie. Wystarczy wpisać w wyszukiwarkę Regulator PID, a dostaniemy całą masę mniej lub bardziej wartościowych opracowań.

Realizacja regulatora PID w mikroprocesorze jest banalnie prosta. Ogranicza się do napisania prostej procedury, która dokonuje kilku podstawowych  działań matematycznych. Jego prostota na pierwszy rzut oka, może być  zwodnicza. Teoretycznie tylko kilka mnożeń, dodawanie i odejmowanie. Nic szczególnego. Jednak to co reprezentuje sobą ta procedura, jest czymś zaskakującym. Jeżeli popatrzymy na to co się dzieje fizycznie z obiektem, można odnieść wrażenie, że układ wie co się działo wcześniej, widzi co się dzieje obecnie oraz wie co się stanie za chwilę.  Po prostu coś niesamowitego. Wszystko łanie i pięknie, jest tylko jeden mały haczyk. Należy ją prawidłowo ustawić.

 

     Na początku kilka pojęć, które muszę użyć. Dla łatwiejszego zrozumienia. Odniosę się bezpośrednio do mojego przypadku – centrali wentylacyjnej.

Obiekt – centrala wentylacyjna. Właściwie można podzielić go na dwa oddzielne obiekty. Jednym z nich jest układ nawiewu, drugim układ wywiewu. Naturalnie będą na siebie oddziaływać. Jeżeli zwiększymy nawiew, to w części wywiewu zmniejszy  się opór ssania. Co będzie skutkowało zmianą przepływu. Oba układy będą sobie wzajemnie przeszkadzać, do chwili kiedy stany się ustabilizują.

Układ wykonawczy – wentylator w centrali. Ważne jest aby posiadał płynną regulacje. W moim przypadku jest to sygnał 0-10 V. W sterowniku zawarta jest funkcja, która pobiera wartość ze zmiennej i konwertuje ja na poziom napięcia w podanym zakresie. Wystarczy, że do zmiennej wpiszę wartość odpowiadającą procentowemu poziomowi napięcia. Przykładowo jeżeli wpiszę wartość 43, to na wyjściu ze sterownika uzyskam napięcie 4,3 V. To napięcie podane jest na układ sterownika w wentylatorze.

Sygnał zwrotny (sprzężenie zwrotne) – dla mnie jest to częstotliwość impulsów z przepływomierzy. Jest to informacja bezpośrednia o wartości prędkości przepływającego powietrza.

Wartość zadana – częstotliwość jaką chce uzyskać. Jest to oczekiwany przepływ, w kanałach.

Uchyb – różnica między wartością zadaną, a sygnałem zwrotnym. Uchyb może być dodatni lub ujemny. Czasami tłoczone jest więcej powietrza niż sterownik oczekuje, w innych przypadkach mniej.

Regulator PID – procedura która wylicza poziom sygnału zdającego –  napięcie sterujące podane na wentylator.

Stan ustalony – sytuacja kiedy wentylatory pracują z określoną stabilną prędkością. Regulator nie zmienia już nastaw napięcia sterującego, Praca jest ciągła, bez znacznych zmian.

Przeregulowanie – sytuacja kiedy wentylatory tłoczą więcej lub mniej  powietrza niż jest potrzebne. Jest to stan przejściowy, kiedy regulator chce szybko i mocno wymusić  zmianę stanu obiektu, który posiada własną inercje. Regulator mocno rozkręci wentylatory, a powietrze popłynie ze znacznie różną prędkością od zakładanej.

Oscylacje – sytuacje kiedy regulator próbuje osiągnąć stan ustalony, ale nie jest w stanie tego dokonać. Prędkość raz jest większa, raz mniejsza. Takie falowanie obrotów.

Układ stabilny – regulator tak sparametryzowany, że przy zmianie wartości zadanej, lub wprowadzeniu innego zakłócenia, układ (regulator – obiekt) osiągnie jakąś stabilną wartość. Nie wpadnie w oscylacje.

 

     A więc zaczynamy.

Regulator PID ma trzy człony. Część proporcjonalna P, część całkująca I oraz część różniczkująca D.

Część proporcjonalna reaguje na uchyb w danej chwili. Jest to proste działanie. Mnoży uchyb przez stały współczynnik. Wartość tego współczynnika nazywana jest wzmocnieniem. Im większy tym mocniej regulator zareaguje. Reakcja ta nie zależy od czasu. Kiedy procedura jest wywoływana, dla tego członu, jedynie co jest ważne, to jak mocno różni się wartość zadana od odpowiedzi.

Część całkująca I „patrzy” nie tylko na to jaki jest uchyb, ale jednocześnie jak długo ten uchyb się utrzymuje.  Najzwyczajniej sumuje sobie kolejne uchyby i mnoży je przez współczynnik. W ten sposób regulator zapamiętuje co działo się wcześniej. Od wartości tego działania  zależne jest czy układ będzie mógł osiągnąć zadaną wartość, w jakimś realnym czasie. Obrazowo można przedstawić to tak, że część P widzi uchyb, mnoży go przez wzmocnienie Kp i podaje wynik do wyjścia. Mały uchyb-  mała wartość, duży uchyb –  duża wartość. Zależność jest liniowa. Dlatego nazywa się go proporcjonalny, bo wyjście zależy proporcjonalnie do uchybu.

Część różniczkująca D jest czymś w rodzaju hamulca dla regulatora. Patrzy jak szybko zmienia się uchyb. Znając tą wartość, układ może przewidzieć w jakim stanie będzie za chwilę. Można to wykorzystać do odpowiedniego zareagowania, tak aby części P i I nie rozpędził y się za nadto. Są to swoiste lejce, które zaciągane są  na regulatorze.

Każdy z tych elementów ma swój parametr, współczynnik. Sztuką jest dobranie takich wartości, aby nasz układ zachowywał się, tak jak my tego oczekujemy.  W Internecie można bez problemu, znaleźć procedury doboru nastaw regulatorów.  Jedne są lepsze inne gorsze. Zależy do czego chcemy ich użyć. W moim przypadku proces jest bezpieczny. Moim układem jest wentylator w centrali, który w najgorszym przypadku, będzie działał w oscylacjach. Będzie przyśpieszał i zwalniał. Nie groźne są też przeregulowania. Nie jest to kocioł wysokociśnieniowy, gdzie przeregulowanie może doprowadzić do wybuchu. Tu tylko poleci więcej powietrza w kanały. Ważne jest aby być świadomym, co może się stać, jeżeli coś pójdzie nie tak. W tym przypadku niewiele, więc można bezpiecznie eksperymentować.

 

     W pierwszym kroku sprawdziłem wzmocnienie krytyczne. Współczynniki części D i I są wyzerowane, wiec nie wnoszą nic do układu. Współczynnik wzmocnienia ustawiam na 1. Pierwsze włączenie centrali. Obroty powinny po pewnym czasie się ustabilizować. Jeżeli tak się dzieje to można stopniowo zwiększać wzmocnienie, aż układ nie będzie w stanie ustabilizować obrotów. Wartość wzmocnienia przy której zaczyna tak się dziać jest wartością krytyczną. By zachować stabilność na tym etapie strojenia, wzmocnienie dzielimy na pół i wpisujemy w sterownik. Niestety wartość uchybu nie zostanie zredukowana, z obiekt ustabilizuje się gdzie poniżej. Następnie zaczynam zwiększać współczynnik Ki, części całkującej. Niezerowa wartość Ki, powoduje, że  już od samego początku równolegle wchodzi do działania część I. Moduł ten zaczyna sprawdzać jak duży uchyb jeszcze został do wyzerowania. Zaczyna  powoli dodawać coś od siebie, aby go zminimalizować. Moduł widzi różnicę, to dodaje lekka korektę do sygnału wyjściowego. Sygnał wyjściowy jest już sumą sygnału od części proporcjonalnej i całkującej. W następnym kroku uchyb jest mniejszy, ale jest, to znów dodaje mniejszą korektę. Dzieje się tak aż uchyb zostanie wyzerowany. W początkowej fazie regulacji, może pojawić się przeregulowanie. Jest to sytuacja, kiedy część P i I razem podają taki sygnał, że wentylatory rozpędzą się aż nadto i prędkość powietrza będzie większa od zakładanej. W takiej przypadku korekty będą na „minus”.  Część I koryguje uchyb dokładając w każdym kroku małe korekty, tak aby osiągnąć cel.

Jeżeli przeregulowania nie przeszkadzają i są akceptowalne, to można już powoli kończyć regulacje. W innym przypadku należy dołączyć część D. Jest to hamulec regulatora. Sprawdza jak szybko zmienia się wartość błędu i czy zmniejsza się czy zwiększa. Zrealizowane jest to przez zapamiętanie wartości uchybu z kroku poprzedniego. Od bieżącej wartości uchybu odejmowana jest poprzednia, a wynik dzielony przez odcinek czasu próbkowania. Znak działania może być ujemny lub dodatni, w zależności czy układ dąży do wartości zadanej, czy się od niej oddala. Część ta mocno wpływa na sygnał, kiedy różnice w uchybach kolejnych próbek są duże. Działa tym mocniej im mocniejsza jest zmiana uchybu.

     Cała sztuka prawidłowego doboru nastaw, jest wyznaczenie wszystkich współczynników, tak aby uzyskać możliwie szybkie ustabilizowanie się obrotów na zadanym poziomie, bez znaczących przeregulowań, a stan ustalony był osiągnięty w zadowalającym czasie. Finalnie udało się uzyskać zadawalającą odpowiedź. Regulator po uruchomieniu sterownika, ok. 50-60 sekundach potrafi uzyskać zadaną wartość. Ważne jest to, że należy ustawić dwa różne regulatory, na każdą ze stron. Parametry pracy są inne dla nawiewu i wywiewu.  Na koniec ustawiłem pas nieczułości regulatora. Zmiana częstotliwości o +/- jeden Hz nie uruchamia regulatora, a wartość napięcia sterowniczego pozostaje bez zmiany. Chciałem ograniczyć ilość zmian obrotów na wentylatorach.

Moja procedura regulatora

 

float WykonajPID(float Przeplyw, float wartoscZadana,bool PIDNawiewu){

       float Output;

       double timeChange = 1;

       double error = (wartoscZadana - Przeplyw);

       if (PIDNawiewu)

             {

                    errSumI += (error * timeChange);

                    double dErr = (error - lastErrI) / timeChange;

                    lastErrI = error;

                    Output = kpI * error + kiI * errSumI + kdI * dErr;

             }

       else

             {

                    errSumO += (error * timeChange);

                    double dErr = (error - lastErrO) / timeChange;

                    lastErrO = error;

                    Output = kpO * error + kiO * errSumO + kdO * dErr;

             }

       return Output;

}

Error – zmienna z bieżącym uchybem

errSumI – suma błędów z przeszłości dla części całkującej

dErr – pochodna sygnału zwrotnego

Output – Sygnał zadający dla wentylatorów

 

Kiedy mamy już wyznaczone współczynniki regulatora, centrala działa stabilnie, a przepływy stabilizują się na zadanych poziomach, zaczynamy przeszkadzać. Tu niestety wymagana jest spora cierpliwość. Mała zmiana jednej nastawy i obserwacja czy obiekt reaguje lepiej czy gorzej. Cała seria prób i można dostroić wszystkie współczynniki.

Regulator PID obserwuje wartość uchybu. Nie jest ważne czy powietrza będzie fizycznie leciało mniej, czy zmiana naszej decyzji, że chcemy teraz aby leciało więcej, dla regulatora jest to niezerowy uchyb, który należy zminimalizować. Zmiana wartości zadanej jest traktowane jak zakłócenie. Tak samo na zmianę przepływu, PID powinien zareagować.

W ramach sprawdzania czy sterownik potrafi zareagować na zmieniające się warunki , zamykałem mu jeden z anemostatów wywiewu. Była to symulacja zamarzania wymiennika, lub ekstremalnego zatkania filtrów.

Dwa górne wykresy przedstawiają częstotliwość impulsów z przepływomierzy. Dwa dolne to napięcie sterownicze podawane na wentylatory. Opisy na osiach pionowych są błędne. Wykorzystałem procedury wysyłania danych na serwer, które wcześniej reprezentowały inne parametry.  Podmieniłem tylko niektóre dane w pakiecie, który jest wysyłany.

Stan ustalony pracy centrali wentylacyjnej

Wartość zadana, na obu kanałach, wynosi  38 Hz. Oba regulatory mają dążyć do tej wartości. Regulatory mają nie reagować, jeżeli zmiana będzie w przedziale +/- 1 Hz. Takie oscylacje są wynikiem błędu pomiarowego, a nie samą zmianą przepływu. Na wyciągu widać delikatne korekty w chwilach kiedy przepływ zmienił się więcej niż zakładane pasmo.

W tym przypadku zacząłem zakręcać anemostat wywiewu. Kiedy przepływ zaczął spadać regulator zareagował, przez podniesienie obrotów wentylatora.

Reakcja regulatora PID na zakłócenie

Po odkręceniu anemostatu i uwolnieniu przepływu, obroty zaczęły wracać do pierwotnego ustawienia.

Powrót do stanu ustalonego

Pomimo znaczącej zmiany w układzie, regulator utrzymał przepływ na zadanym poziomie. Pozwoli  to na utrzymaniu odpowiedniego zbilansowania układu nawiew/wywiew. Centrala taka jest niezależna od stopnia zatkania filtrów. Na podstawie analizy sygnału zadającego można określić czy filtry nadają się do wymiany, czy wymiennik zaczął zamarzać.

Następnym etapem będzie wykorzystanie tych informacji, do wcześniejszego zdiagnozowania zamarzania wymiennika.

 

Pozdrawiam

GrzegorzM

5 thoughts on “Automatyzacja centrali wentylacyjnej – regulator PID”

  1. AK_new

    Cześć,
    Przy jakich ustawieniach pracuje twoja centrala w okresie zimowym(m3/h)?
    Jaka wymiana jest dla was optymalna(m3/h)?
    Czy zmieniłbyś wymiennik na większy, mniejszy?
    Zaczynam budowę swojego rekuperatora(wentylatory już zamówione).
    Pozdrawiam Andrzej.

    1. GM Post Author

      Witam.
      Ad 1) ok 40% kubatury mieszkania/h,
      Ad 2) powyżej ok 65% pojawiła się uczucie ruchu powietrza. Początkowo przeszkadzało, teraz jest ok.
      Ad 3) Obecnie przymierzam się do zbudowania nowej centrali z mniejszym wymiennikiem i nowym sterowaniem.

      Powodzenia w budowie. Każda praca i rozsądnie wydane pieniądze są warte komfortu jakie daje wentylacja mechaniczna ;)

      Pozdrawiam
      GrzegorzM

  2. Piotr

    Witam kombinuje sam wykonac rekuperator mozesz teoretycznie pomóc o zestawienie czesci
    1. Wentylatory R3G190 RG 23-03 czy beda dobre i co ze sterowaniem( moja slaba strona)
    2. Wymiennik GS. ALUMINIUM
    tylko nie wiem jaki duzy w domu 5 osób 140m2.
    3. Kanaly peflex na strychu.
    4. Z czego zrobiles obudowę masz foto?

Leave a Comment

Your email address will not be published.