Priemer v čase (GCL)

// Vypocet priemernej hodnoty (17.3.2016-TURSOFT), v.3.1
// princip prace - pouziva algoritmus linearneho exponencialu
// program bol prevereny niekolkonasobnou kontrolou
// AI.x1   - hodnota
// AV.x100 - odlozeny priemer              (ak AV=99 >> RESET priemeru)
Variable CasAVG_min As Integer //...........doba priemerovania
Variable CycAVG_sec As Integer //...........interval priemerovania
CasAVG_min = 60
CycAVG_sec = 60
If AV.x100 >= 99 Then AV.x100 = AI.x1 End If
DoEvery CycAVG_sec:S
   AV.x100 = AI.x1 + 2.718 ^ (- CycAVG_sec / 3600 / (CasAVG_min / 60)) * (AV.x100 - AI.x1)
End Do

=============================================================

Rozdiely priemerov, medzi ver. 3.1 a 2.1 nie sú prakticky žiadne, zhoda na 3 desatinné miesta.

=============================================================
// Vypocet priemernej hodnoty (17.3.2016-TURSOFT), v.2.1
// princip prace - hned zaplnenie hodnotami
// program bol prevereny niekolkonasobnou kontrolou
// AI.x1   - hodnota
// AV.x100 - odlozeny priemer              (ak AV=99 >> RESET priemeru)
// AV.x102 - max.     pocet priem.(cyklov) (uzivatel ma moznost menit dobu priemerovania)
//.........................................(je mozne zadat priamo v programe)
If AV.x100 >= 99 Then AV.x100 = AI.x1 End If
DoEvery 60S //..............................vypocet raz za minutu je dostacsujuci
   AV.x100 = (AV.x100 * (AV.x102 - 1) + AI.x1) / (AV.x102)
End Do

=============================================================

Rozdiely priemerov, medzi ver. 2.1 a 1.2, sú až do okamžiku zaplnenia, pretože nepracujú s rovnakým počtom premenných. Akonáhle dôjde k zaplneniu hodnotami u verzie 1.2, nastáva úplná zhoda na 5 desatinných miest.

=============================================================

// Vypocet priemernej hodnoty (17.3.2016-TURSOFT), v.1.2
// princip prace - postupne zaplnanie hodnotami
// program bol prevereny niekolkonasobnou kontrolou
// AI.x1 -hodnota
// AV.x100 - odlozeny priemer
// AV.x101 - aktualny pocet priem.(cyklov) (ak AV=0 >> RESET priemeru)
// AV.x102 - max.     pocet priem.(cyklov) (uzivatel ma moznost menit dobu priemerovania)
//.........................................(je mozne zadat priamo v programe)
DoEvery 60S //..............................vypocet raz za minutu je dostacsujuci
   AV.x101 = Min (AV.x102 - 1, AV.x101) + 1
   If AV.x101 = 1 Then AV.x100 = AI.x1 End If
   AV.x100 = (AV.x100 * (AV.x101 - 1) + AI.x1) / (AV.x101)
End Do
=============================================================
// Vypocet priemernej hodnoty (12.3.2016-TURSOFT), v.1.1
// princip prace - postupne zaplnanie hodnotami
NEMÁ význam ho zverejňovať