Keresés

Ú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.

  • Szirty

    őstag

    válasz bodnarg #2828 üzenetére

    Helló bodnarg!

    A maximum és a minimum meghatározása elég egyszerű. Két változóra van szükség és minden mérési ciklusban a mért eredményre.
    Nézzük a MAX-ot.

    Kell egy változó, amiben az addig mért legnagyobb értéked lesz majd (MAX). Ebbe kezdetben nullát töltesz. Amikor mérsz egyet megvizsgálod, hogy mért érték nagyobb-e mint MAX. Ha nem, akkor nem bántod, ha nagyobb, akkor a mért értéket beleteszed MAX-ba. Ezzel kész is. Ez akár milliárd mérés közül is tárolja az addigi maximumot. Egészen addig, amíg le nem nullázod újra (vagy feltétel nélkül bele nem töltöd a mért értéket).
    A minimum meghatározása ugyanez, csak kisebbre hasonlítasz.

    Az átlag rafináltabb. Több módszer is van, nemrég volt szó róla a PLC levelező listán is. Szerintem olvasd el ott mit hoztak ki belőle.

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