Chytrý průměr

B48_SMART_AVERAGE

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

LIB\CORE

V1.1

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.

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

Vstup Typ Význam Výchozí hodnota
IN MULTIIOREALVstupní hodnota[0,0,…,0]
INENABLEDMULTIIOBOOLPovolení vstupu[False,…,False]
IN1 REAL Vstupní hodnota
IN2 REAL Vstupní hodnota
TOL REAL Tolerance 2
VýstupTyp Význam
OUT REALVý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 BOOLZnaménko výstupního signálu
BSN BOOLNegace bs


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.

  • © Energocentrum Plus, s.r.o. 2017 - 2024