Anstieg einer Funktion berechnen



  • ich nehme über einen Timer alle 1 Minute einen Messwert auf. Daraus ergibt sich dann ein Parabelförmiger Verlauf, der sich immer wieder widerholt. Nun möchte ich, dass bei Werten unter 1,0 eine bestimmte Aktion ausgeführt wird. Durch den Kurvenverlauf gibt es diesen Zustand natürlich 2 mal. Die Aktion soll aber nur bei negativen Anstieg (abfallende Kurve) ausgelöst werden. Wie kann ich das am schlausten machen?


  • Mod

    Zwei aufeinander folgende Messwerte vergleichen?



  • ich denke 2 werden nicht reichen, da es teilweise auch mal Schwankungen gibt. Sicherheitshalber würde ich 10 Messwerte nehmen.



  • Interpolation + Central Differences sollte gute Ergebnisse geben.
    Da du das aber nicht allgemein brauchst kann auch eine einfachere Näherung reichen.



  • Wenn du dir sicher bist, dass der Graph eine Parabel ist, er sich also durch eine Funktion f(x) = ax[h]2[/h] + bx + c umschreiben lässt, dann würde ich eher die Ableitung verwenden: f'(x) = 2ax + b

    Um die Funktion f(x) überhaupt erst einmal zu finden, brauchst du 3 Bedingungen. Bei einer Parabel bieten sich 3 Punkte an, aber auch zwei Punkte, wobei einer der Scheitelpunkt sein muss. Da ich allerdings ja nicht weiß, wie dein Graph aussieht, gehe ich jetzt nur mal auf die erste Variante ein, wobei ich hier auch davon ausgehe, dass es die ersten drei Messwerte zu den Zeiten t1 = 0s, t2 = 1s, t3 = 2s sind.

    Die Funktion hat die Form:
    f(x) = ax[h]2[/h] + bx + c

    Es sind drei Punkte gegeben:
    `P( 0 | f(0) )

    Q( 1 | f(1) )

    R( 2 | f(2) )`

    Daraus folgt:
    `1. c = f(0)

    1. a + b + c = f(1) <=> b = f(1) - f(0) - a

    2. 4a + 2b + c = f(2) <=> 4a + 2f(1) - 2f(0) - 2a + f(0) = f(2) <=> a = f(0)/2 - f(1) + f(2)/2`

    Setzt man 3. wieder in 2. ein, folgt:
    b = f(1) - f(0) - f(0)/2 + f(1) - f(2)/2 = 2f(1) - 3/2 f(0) - 1/2 f(2)

    Setzt man a und b nun in die Ableitung f'(x) = 2ax + b ein, ergibt sich:
    f'(x) = ( f(0) - 2f(1) + f(2) ) x + 2f(1) - 3/2 f(0) - 1/2 f(2)

    Nun lässt sich für jeden Punkt die Steigung berechnen; ist sie größer als 0, steigt der Graph; ist sie kleiner als 0, fällt der Graph.


Anmelden zum Antworten