Interfejs KIDE->Prawa lista->Bloki funkcyjne->Różne->AnalogDynFilter_const_time

AnalogDynFilter_const_time (Dynamiczny filtr ze stałym czasem)

Wejścia:

Wyjście:

Algorytm:

Funkcja uśrednia wartość parametru dokonując odczytu wartości stałej co określony czas. Ustawiając N=10, Cycle_100ms = 10, funkcja zwróci średnią wartość parametru z ostatnich 10 sekund, odczytanego raz na sekundę. Po uruchomieniu programu, blok ma zapisane do pamięci MaxN próbek o wartości 0, które co określony czas (Cycle_100ms * 0,1s) wypełnia kolejnymi wartościami wejścia IN. Na wyjście Out wystawiana jest średnia wartość z N próbek, N <= MaxN. Przykład: Do wejścia IN podłączony jest czujnik temperatury w pomieszczeniu ze wskazaniem w okolicach 20°C, MaxN == 20, N = 5, Cycle_100ms = 10, przez pierwsze 5 sekund działania programu, wyjście Out będzie podawało zaniżone wartości, bo do obliczenia średniej program będzie wykorzystywał zapisane w bloku zera. Po 5 sekundach działania programu, funkcja będzie prawidłowo przedstawiała średnią wartość z ostatnich 5 sekund. W pracującym programie, zmieniając wartość N, można zmniejszyć lub zwiększyć ilość próbek branych do obliczenia średniej. Zwiększając N z 5 do 20, od razu na wyjście Out zostanie podana średnia z ostatnich 20 sekund. Wykorzystanie bloku: Blok sprawdza się w przetwarzaniu danych w zmiennych warunkach; można go wykorzystać np. do przedstawienia przebiegu temperatury lub przepływu powietrza w kanale wentylacyjnym. Przepływ powietrza przepływającego w kanale wentylacyjnym zazwyczaj wyznacza się pośrednio, przez odczyt różnicy ciśnienia. Przepływ powietrza zazwyczaj nie jest laminarny, więc obliczając przepływ powietrza możemy dostać różnice pomiędzy pomiarami nawet powyżej 10%. Stosując standardowe bloki AnalogFilter możemy zwiększyć ilość próbek do obliczenia średniej, ale może się to odbić na dynamice interpretacji zmian wartości, jeśli nastąpiły pewne zmiany w systemie. Podczas zwykłego pomiaru ciśnienia, zmiany do 10% mogą wynikać z zawirowań powietrza, jednak podczas zmiany obrotów wentylatora, zmiany ustawienia przepustnicy itp. Może nastąpić nagły skok odczytywanego ciśnienia, którego nie chcemy przeoczyć. Możemy więc zastosować algorytm, który będzie badał różnice między próbkami, który jeśli wykryje zmianę w zachowaniu układu, zmniejszy wartość wejścia N, tak, aby reakcja wyjścia była szybsza, następnie po wyrównaniu wartości, zwiększy N, wyrównując przebieg wyjścia Out.

Przykład:

Dla N=64

Wykres przedstawia 64-próbkowy filtr, dla próbek od 1 do 64 widać stopniowe dojście filtra do wartości zadanej. W okolicach próbki 80 następuje krótki wzrost wartości wejściowej In, który powoduje krótkotrwałe, niewielkie odchylenie Out od wartości średniej. Dla próbek od 170 do 210 pokazano, że krótkotrwałe, nawet relatywnie duże odchylenia sygnału wejściowego nie wpływają na sygnał wyjściowy.


powrót