- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Immer noch Probleme mit der gleitenden Mittelung

  1. #11
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Mit echten Fließkommazahlen hat man kaum ein Problem mit der Rundung. Da müßte man schon in den Bereich von Millionen kommen. Ein Porblem kann es aber werden wenn man mit Festkommazahlen rechenet und z.B. nur 8 Bit fürs Nachkomma reserviert.

    Das mit dem keine Zeit finden für den ADC verstehe ich nicht so recht. Man ließt den ADC aus und verarbeitet den Wert im Filter bzw. Mittelwertbilder. Man hat also für jeden ADC wert genau einen Schritt beim Mitteln. Das einzige was sich ändert ist die Konstante.

    Für die Anwendung mit der Pumpe würde ich mal davon ausgehen, dass man über 1-2 Sekunden mitteln will. Das wäre dann z.B. ein Sampling Rate für den ADC von etwa 1000 / s und dann ein Wert von Anzahl von etwa 1000-2000. Je nach geschmack kann man auch weniger Werte nehmen und dafür langsamer messen.

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.12.2004
    Ort
    Ulm
    Alter
    37
    Beiträge
    136
    Danke mare_crisum und allen anderen für ihre Mühe.

    Die Erklärung war jetzt endlich einfach genug für mich um die Sache mit der gleitenden Mittelung zu verstehen. Das ist wirklich genial einfach und spart eine Menge Rechenzeit wenn man sich das aufsummieren sparen kann.

    Habe deinen Beispiel Code jetzt an mein Programm angepasst und zunächst einfach Anzahl=100 benutzt und direkt so gelassen. Es kommt ein sehr gutes Ergebnis heraus. Der Wert ist sehr stabil. Auf Änderungen reagiert er trotzdem schnell genug. Die Erklärung von Besserwissi mit ca 1000 bis 2000 Messwerten über die gemittelt werden sollte klingt logisch. Ich werde auch noch ausprobieren in wiefern das besser oder schlechter für meine Anwendung ist. Mit den 100 bin ich aber auch schon sehr zufrieden.


    Gruss


    Florian.

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    @Florian
    sorry, habe nicht mitbekommen, dass du über die "For I = ...." Schleife gestolpert bist.
    Die gehört natürlich nicht zur Bildung des fliessenden Mittelwerts, sondern war nur dazu da das Beispiel auf eine bestimmte Anzahl Durchläufe zu begrenzen, um ein buschen herumzuexperimentieren, wie sich die Änderungen der Messwerte auf den fliessenden Mittelwert auswirken.

    Ich habe mit dem Beispielcode ja wie ich glaube ich in dem anderen Thread geschrieben habe im Bascom -Simulator herumgespielt.
    D.h. ich hatte keinen Sensor der mir Werte gibt und woillte auch nicht unbedingt x-mal 50 Werte manuell per Input eingeben

    Die eigentliche Bildung des fliessenden Mittelwerts war in meinem Beispiel nur der folgende Code:

    Code:
    Const Anzahl = 50                                           ' Anzahl Messwerte 
    Dim Mittelwert As Single 
    Dim Temp As Single 
    
    
       Temp = Mittelwert / Anzahl 
       Mittelwert = Mittelwert - Temp 
       Temp = Messwert / Anzahl 
       Mittelwert = Mittelwert + Temp
    Der Wert für Masswert kommt dann vom Sensor. Da man den Werte eines ADCs nicht direkt einer Single Variable zuweisen kann, üsste da aber noch eine zusätzliche Zeile rein, z.B.

    Dim Messwert_int as Integer
    Messwert_int = getAdc(x): Messwert = Messwert_int
    Mit dem Zeilen die mare_crisum in meinem Code als überflüssig bezeichnet hat, hat er natürlich völlig recht.

    Die gehören auch nicht zur Bildung des fliessenden Mittelwerts.

    Der obere Teil meines Beispielcodes sollte nur veranschaulichen, wieviele Durchläufe man bem fliessenden Mittelwert braucht, bis sich tatsächlich der Mittelwert einstellt.

    Wenn du einen Fliessenden Mittelwert über 1000 Werte bildest, wird bei jeder neuen Messung 1/1000 vom bestehenden Mittelwert abgezogen und der neue Messwert/1000 hinzuaddiert.

    D.h. wenn das Programm mit einem Mittelwert von 0 anfängt, und bei der 1. Messsung nur 1/1000 des Messwertes hinzuaddiert, ist das ja noch lange nicht der Mittelwert.
    Der stellt sich erst nach X*1000 Messungen ein.

    D.h, der erste Teil meines Beispielcodes hat erst mal soviele Durchläufe gemacht, dass der fliessende Mittelwert auch tatsächlich dem Mittelwert entspricht und dann als "Zaehler" ausgegeben, wieviel Durchläufe das sind.

    Der zweite Teil hat dann berechnet, wie sich der fliessende Mittelwert über 50 Werte ändert, wenn 50 gleiche neue Werte hinzukommen.
    Das ganze war wie gesagt nur ein Beispiel um durch "Spielen" im Bascom Simulator ein bischen Gefühl für den fliessenden Mittelwert zu bekommen.

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.07.2009
    Ort
    Wien
    Beiträge
    131
    Zitat Zitat von Besserwessi
    Ob man jetzt den Spitzenwert, oder den unteren Wert nimmt ist relativ egal. Der Spitzenwert des Drucks entspricht etwa der Flüssigkeitssäule mit Rohr+Blase, der mindestwert ist etwa der Druck wenn sich gerade eine Blase gelöst hat, also das was dem reinen Rohr entspricht.
    ich befürchte, daß es in wirklichkeit noch komplizierter ist -- einerseits hängt der spitzenwert des drucks vermutlich teilweise von der oberflächenspannung der blase und damit von der zusammensetzung der abwässer ab, und wenn die blase wegblubbert, wird die luftsäule im meßrohr etwas schwingen.

    inwieweit diese effekte von der größenordnung her relevant sind, ist eine frage, für die mir das physikalische hintergrundwissen fehlt.

    ich würde aber, wenn ich florian wäre, die messgenauigkeit jedenfalls einmal mit unterschiedlichen abwasserzusammensetzungen durchtesten. theoretisch jedenfalls, ist ja nicht meine nase, die da involviert wäre

    ciao,

    cm.

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.12.2004
    Ort
    Ulm
    Alter
    37
    Beiträge
    136
    Zitat Zitat von recycle

    Die eigentliche Bildung des fliessenden Mittelwerts war in meinem Beispiel nur der folgende Code:

    Code:
    Const Anzahl = 50                                           ' Anzahl Messwerte 
    Dim Mittelwert As Single 
    Dim Temp As Single 
    
    
       Temp = Mittelwert / Anzahl 
       Mittelwert = Mittelwert - Temp 
       Temp = Messwert / Anzahl 
       Mittelwert = Mittelwert + Temp
    Ich war mir schon bewusst, dass du dir die Messwerte künstlich generiert hast und, dass dein Code dazu gedacht war so eine Situation zu simulieren. Ich habe auch tatsächlich nur die For Schleife nicht entfernt, weil ich ihren Sinn und auch die ganze gleitende Mittelung inkl. der vereinfachenden Annahmen, die zu dieser einfachen Methode führen, nicht ganz verstanden hatte.

    Durch Eure ausführlichen Schilderungen glaube ich aber mittlerweile, dass mir das Prinzip klar geworden ist. Es ist, wie auch Manf schon im 1. Thread zu diesem Thema immer gesagt hat, wirklich eine sehr schöne und extrem einfache / ressourcensparende Methode. Das kann ich aber erst jetzt wirklich nachvollziehen

    @cmock:

    Ja da sprichst du Dinge an, die ich mit meinem ebenfalls nicht uneingeschränkten physikalischen Verständnis nachvollziehen kann. Die Gleichung scheint sehr viele Unbekannte zu haben. Aber ist für mich ziemlich irrelevant. Mir gehts schließlich nur um 2 Schaltschwellen. Ob die Grube nun heute 10cm voller wird bis abgepumpt wird als gestern mit anderer Abwasserkonsistenz spielt keine Rolle. Wichtig ist nur, dass sie weder überläuft, noch die Tauchpumpe längere Zeit trocken läuft. Aber da habe ich genügend Spielraum einkalkuliert. Diese auszuwechseln stelle ich mir dann wirklich als unschöne Arbeit vor. Bisher konnte ich meine ganzen Versuche schön am anderen Ende des Luftschlauches einige 10m entfernt von der Grube im Schaltschrank durchführen. Und ich möchte es auch gerne dabei belassen: )

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress