Dokumentace

Chytrý průměr

Název bloku

B48_SMART_AVERAGE

Volání v ST

PROGRAM B48_TEST
VAR
IN1, IN2, IN3:REAL;
FB: LIB.CORE.V1_0.B48_SMART_AVERAGE;
END_VAR

FB(IN[1]:=IN1, IN[2]:= IN2);
O1:= FB.OUT;
END_PROGRAM

Knihovna

LIB\CORE

Verze

V1.0

Popis

Tento blok je rozšířením bloku AVG. Blok AVG počítá obyčejný aritmetický průměr, který může způsobit problémy v reálných aplikacích. Ukažme si následující příklad: Mějme několik teploměrů (3,4,...), připojených k bloku AVG, který nám vypočítá průměrnou teplotu. Pokud se kterýkoli z teploměrů rozbije a poskytuje špatnou hodnotu (např. 10000), pak je průměrná teplota nepoužitelná, i když je počet funkčních teploměrů vysoký.

Oproti tomu blok B48 nejprve vypočítá pravděpodobnou průměrnou hodnotu vynecháním všech nerelevantních hodnot. To je dosaženo pomocí mediánu všech vstupních hodnot. Označme tento pravděpodobný průměr jako M. Všechny vstupní hodnoty X, které jsou blíže M do vzdálenosti tol jsou použity pro výpočet průměru, tj. OUT je roven aritmetickému průměru z těchto hodnot. Všechny ostatní hodnoty se neberou v úvahu.

Výstup BS určuje znaménko výstupu OUT. Když OUT>= 0 BS=TRUE, jinak BS=FALSE. Výstup BSN je negací výstupu BS.

Když je počet připojených zařízení roven třem, pak je blok schopen zvládnout jednu špatnou hodnotu. Když je počet připojených zařízení roven pěti, pak je blok schopen zvládnout dvě neplatné hodnoty. Obecně pokud je připojených n zařízení, kde n je libovolné číslo, pak je blok schopen zvládnout n-1/2×n špatných hodnot.

Pro připojení vstupních hodnot lze použít vstupní proměnné IN0, IN1 a IN3 (tj. max. 3 vstupy) nebo vstupní pole IN (multiioreal pro max. 16 vstupů).

Vstupní signály je třeba povolit v proměnné INENABLED (například inenabled[1]:=true; pro vstup IN1).

Vstupy

Vstup Typ Význam Výchozí hodnota
IN MULTIIOREAL Vstupní hodnota [0,0,...,0]
INENABLED MULTIIOBOOL Povolení vstupu [False,...,False]
IN0 REAL Vstupní hodnota  
IN1 REAL Vstupní hodnota  
IN2 REAL Vstupní hodnota  
TOL REAL Tolerance 2

Výstupy

Výstup Typ Význam
OUT REAL Výstupní signál
VAL INT Počet vstupů použitých při výpočtu výstupního signálu
INVAL INT Počet vynechaných vstupů
BS BOOL Znaménko výstupního signálu
BSN BOOL Negace bs

Příklad použití


U hodnoty real3 došlo k utržení čidla, které pak ukazuje rozpojený kabel a falešnou teplotu 200 °C. Průměrná teplota v místnosti se bere pouze z čidel real1 a real2.