Sensorwerte fuer Druck: Trend anzeigen

Gast #5154811
Lesenswert?

Hallo.

Ich "sammle" gerade mit einem Arduino fortlaufend die Sensorwerte des 
BMP180, also Temperatur und Druck und gebe Sie mir auf einem LCD-Display 
aus. Alle 30sec wird ein Wert genommen und angezeigt.
Jetzt moechte ich mir gerne einen Trend anzeigen lassen, also vor allem 
fuer den Druck. Ich moechte sehen ober dieser sich z.B. ueber einen 
Zeitraum von 3 Stunden tendenziell eher steigt oder sinkt.
Auf dem LCD wuerde ich dafuer einen Pfeil der nach unten oder oben zeigt 
vorsehen.

Jetzt meine Frage:
Wie sieht so ein Algorithmus aus? Die Zeitspanne wuerde ich mir hierbei 
gerne flexibel halten (1Std, 2Std, 3Std).

Einige Tipps dahingehend waeren hilfreich!
(Auf eine SD-Karte kann ich leider derzeit noch nicht zugreifen, daher 
muesste ich die Daten direkt im Mikrocontroller vorhalten und 
berechnen.)

DANKE!
#5154881
Lesenswert?

Arduino Nutzer können auch wirklich überhaupt nichts alleine auf die 
Kette bekommen. Man sollte meinen, wer Display und Drucksensor zum 
laufen bekommen hat, der hat kein Problem jetzt noch einen Trend 
anzuzeigen. Aber nööö, das gabs ja nicht per Copy&Paste und schon stehen 
sie wieder wie der Ochs vorm Berg.

Mensch Leute, gebt euch nicht auf, lernt man selber irgendwas zu machen.

> Auf eine SD-Karte kann ich leider derzeit noch nicht zugreifen
Ohne SD Karte wird es natürlich schwierig ein paar Werte für einen Trend 
vorzuhalten. Zumindest wenn man sein Gehirn im Einmachglas neben sich 
stehen hat.
Gast #5154890
Lesenswert?

Wir hatten mal etwas ähnliches umgesetzt:
1. Array definieren, um Differenzwerte zu speichern
z.B. int Array mit 12 Einträgen (3 h * 4 Werte)
2. Immer Differenzen zur vorausgegangenen Messung im Array abspeichern
3. Ist das Array "voll", Werte wieder von vorne eintragen (round robin)
4. Wenn der Trend festgestellt werden soll, Summe über das ganze Array 
bilden.
Gast #5155048
Lesenswert?

Da gibt es sehr viele Varianten einen Trend anzuzeigen. Ich vermute mal, 
dass z.B. ein quadratischer Mittelwert diese Aufgabe ganz passabel 
erfüllen würde.
Hängt von der weiteren Verwendung dieses Trends ab, denn ein RMS-Wert 
steigt natürlich langsamer an als z.B. ein über Periode gemittelter. 
Würde aber nicht so viele Speicherresourcen verbrauchen (aber eben ab 
und an mal die Rechenresourcen -  Wurzel + Potenz)
#5155246
Lesenswert?

Heinz schrieb:
> Jetzt meine Frage:
> Wie sieht so ein Algorithmus aus?

Fachbegriff: lineare regressionsanalyse

Wird von den Mathematikern gerne komplizierter dargestellt als es in der 
Praxis eigentlich ist. Ich habe mal eine Umsetzung in C herausgesucht. 
Es gibt aber noch mehr. Für Dich ist die Steigung der berechneten 
Geraden das gewünschte Ergebnis. Positiv = steigt, negativ = fällt.

http://c-program-example.com/2011/11/c-program-to-implement-linear-regression-algorithm.html
mfg klaus
Gast #5155270
Lesenswert?

Klaus R. schrieb:
> Wird von den Mathematikern gerne komplizierter dargestellt als es in der
> Praxis eigentlich ist.

Sich den Algorithmus aus einem C-Programm rauszuprökeln, macht die Sache 
nicht unbedingt leichter.
Das wird dann allenfalls Copy&Paste eine Stufe höher.

In Wikipedia steht für jederman zugänglich die Formel zur Berechnung der 
Ausgleichsgeraden fertig drin. Für die Prognose interessiert nur die 
Steigung, i.e. der Koeffizien a1
https://de.wikipedia.org/wiki/Methode_der_kleinsten_Quadrate#Herleitung_und_Verfahren
#5155276
Lesenswert?

Wolfgang schrieb:
> In Wikipedia steht für jederman zugänglich die Formel zur Berechnung der
> Ausgleichsgeraden fertig drin. Für die Prognose interessiert nur die
> Steigung, i.e. der Koeffizien a1
> 
https://de.wikipedia.org/wiki/Methode_der_kleinsten_Quadrate#Herleitung_und_Verfahren

Genau diese Art der Darstellung ist vielleicht für einen Abiturienten 
zugänglich. In der Praxis ist es aber viel einfacher. Ich habe ja auch 
nur die erste beste C - Funktion herausgesucht. Es gibt ja noch einige 
andere.

Hier der zweite Treffer mit Beispiel, schön übersichtlich.

https://stackoverflow.com/questions/5083465/fast-efficient-least-squares-fit-algorithm-in-c
mfg klaus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren