Új hozzászólás Aktív témák

  • Dezsi82

    tag

    válasz bodnarg #2828 üzenetére

    Szia!
    A minimum és maximum meghatározására kaptál egy jó útbaigazítást.
    Anélkül, hogy a linkeket elolvastam volna, az átlagra én a következőket javaslom.
    Egyszerű megoldás
    4 db memóriérték kell.
    - Átlag
    - Pillanatnyi átlag
    - Elemek száma
    - Max elemek száma (esetleg lehet konstans is)

    Mert hát Neked nem kellenek (ha jól sejtem) az adott értékek, csak az átlag.
    Az elv a következő:
    -Jön a mért érték
    -Ha az elemek száma nagyobb, mint a max elemek száma, akkor
    átlag = pillanatnyi átlag,
    pillanatnyi átlag =mért érték,
    elemek száma = 0
    - Pillanatnyi átlag = ((Pillanatnyi átlag*Elemek száma)+mért érték)/(Elemek száma+1)
    - Elemek száma=elemek száma + 1

    Így ha mondjuk ha a max elemek száma 100, és minden ciklusban veszel mintát, akkor az átlagod 100 ciklusonként frissül és, az utolsó 100 ciklus átlagát adja ki.

    Ha Neked nem ez, hanem mozgó átlag kell(a kérdésed alapján sejtve ezt szeretnéd), akkor a tárolást a standard libraryban található FC85 FIFO-val csinálnám. Az átlagolás már macerásabb, nincs rá standard blokk(amennyire tudom). Vagy egyesével összeadod, ami 100 mérésnél elég favágó módszer.
    Vagy marad a pointer és ciklus használata.

Új hozzászólás Aktív témák