Hey,
Ich suche nach einer zeitabhängigen Variablenänderungs Erkennung
Also wenn wert x sich in <= 6 Minuten um y wert ändert!
Da soll aber mit betrachtet werden das sich der Zeitraum auch variabel gestaltet das z.b zwischen 12:00 - 12:06 aber auch 12:02 - 12:08 sich wert x um y Änderungen kann und erkannt wird .
Jede Hilfe würde mich freuen
Mfg GPS
Zeitabhängige Variablen Änderung
-
- User
- Beiträge: 168
- Registriert: Montag 9. Mai 2016, 09:14
- Wohnort: Berlin
Ok.
Was ist dein Vorschlag, wie man das Problem lösen könnte?
Mein Vorschlag wäre:
Was ist dein Vorschlag, wie man das Problem lösen könnte?
Mein Vorschlag wäre:
Code: Alles auswählen
# Wert gesetzt
x = 1
# Wert gespeichert
old_x = x
# neuer Wert
x = 0
while True:
if x != old_x:
# Wert hat sich geaendert
Zuletzt geändert von Anonymous am Dienstag 8. November 2016, 10:45, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
-
- User
- Beiträge: 7
- Registriert: Montag 8. August 2016, 21:54
sebastian0202 hat geschrieben:Ok.
Was ist dein Vorschlag, wie man das Problem lösen könnte?
Mein Vorschlag wäre:
Code: Alles auswählen
# Wert gesetzt x = 1 # Wert gespeichert old_x = x # neuer Wert x = 0 while True: if x != old_x: # Wert hat sich geaendert
Hier wird nur der letzte wert verglichen und nicht zeitabhängig ? Sagen wir y soll sich um 8 verändern innerhalb von 4 min
12:01 y= 10
12:02 y= 14
12:03 y= 20
Deins würde hier nie sagen True
@raspberrygps: Dann musst Du Dir nicht nur Werte merken, sondern auch Zeiten. Das `datetime`-Modul ist in dem Zusammenhang sicher interessant.
-
- User
- Beiträge: 168
- Registriert: Montag 9. Mai 2016, 09:14
- Wohnort: Berlin
Das ist ja doof. So soll es ja nicht sein.
Wie sieht denn deine Lösung aus, oder deine Ideen?
Wie wäre es damit?
Wie sieht denn deine Lösung aus, oder deine Ideen?
Wie wäre es damit?
Code: Alles auswählen
import time
# Startwert gesetzt
x = 1
# Wert gespeichert
old_x = x
# zeit seit start
timestamp = time.time()
def do_whatever_i_want(x):
# 5 Minuten
if timestamp < (time.time() - 300):
return 2
else:
return 1
while True:
if x != old_x:
# Wert hat sich geaendert
break
x = do_whatever_i_want(x)
time.sleep(1)
-
- User
- Beiträge: 7
- Registriert: Montag 8. August 2016, 21:54
Code: Alles auswählen
x = 0
while True:
Letztwert‘x‘ = fwert
x=x+10
time.sleep(10)
if letzwerwert x >= (letztwert x-5)+10
if letzwerwert x >= (letztwert x-6)+10
if letzwerwert x >= (letztwert x-7)+10
@raspberrygps: Also mir ist die Fragestellung noch nicht so ganz klar. Soll ein Messwert genommen werden und nach x Minuten verglichen werden ob der um einen bestimmten Betrag abweicht? Oder gibt es kontinuierlich Messungen alle n Sekunden und es soll jedes mal geschaut werden ob die von der Messung vor x Minuten um einen bestimmten Betrag abweicht?
Beschreibe doch mal das zugrunde liegende Problem welches hier gelöst werden soll.
Beschreibe doch mal das zugrunde liegende Problem welches hier gelöst werden soll.
-
- User
- Beiträge: 7
- Registriert: Montag 8. August 2016, 21:54
@BlackJack Ja genau
es gibt einen kontinuierlichen Messwert der sich jede n Sekunde ändert.
Nun soll immer erkannt werden wenn innerhalb einer bestimmten x Zeit sich der Wert um einen bestimmten Wert y ändert.
es gibt einen kontinuierlichen Messwert der sich jede n Sekunde ändert.
Nun soll immer erkannt werden wenn innerhalb einer bestimmten x Zeit sich der Wert um einen bestimmten Wert y ändert.
@raspberrygps: Dann könntest Du alle n Sekunden messen und den Wert in eine `collections.deque` stecken und wenn die x/n Einträge hat, dann kannst Du den vordersten Wert entfernen und prüfen ob der entsprechend abweicht.
-
- User
- Beiträge: 7
- Registriert: Montag 8. August 2016, 21:54
Danke ich schau mal wie das klapptBlackJack hat geschrieben:@raspberrygps: Dann könntest Du alle n Sekunden messen und den Wert in eine `collections.deque` stecken und wenn die x/n Einträge hat, dann kannst Du den vordersten Wert entfernen und prüfen ob der entsprechend abweicht.
Noch mal eine Nachfrage:raspberrygps hat geschrieben:Nun soll immer erkannt werden wenn innerhalb einer bestimmten x Zeit sich der Wert um einen bestimmten Wert y ändert.
Brauchst du für deinen Anwendungszweck tatsächlich nur den absoluten Messwert-Unterschied zwischen zwei (variabel auseinander liegenden) Zeitpunkten? Alles was dazwischen passiert ist, (beispielsweise auch Messwerte oberhalb deines Schwellwerts) interessiert dich nicht?
-
- User
- Beiträge: 7
- Registriert: Montag 8. August 2016, 21:54
es sollte so aussehennezzcarth hat geschrieben:Noch mal eine Nachfrage:raspberrygps hat geschrieben:Nun soll immer erkannt werden wenn innerhalb einer bestimmten x Zeit sich der Wert um einen bestimmten Wert y ändert.
Brauchst du für deinen Anwendungszweck tatsächlich nur den absoluten Messwert-Unterschied zwischen zwei (variabel auseinander liegenden) Zeitpunkten? Alles was dazwischen passiert ist, (beispielsweise auch Messwerte oberhalb deines Schwellwerts) interessiert dich nicht?
es soll auch gesagt werden das eine Änderung innerhalb von 5 Sekunden um einen delta wert 9x angezeigt wird . in diesem Beispiel jetzt.
wie man sieht muss ab jeden Messwert geschaut werden ob bei 6 Sekunden oder wenigerr einen Änderung von x=>9 vorliegt.
im Bespielt ist in orange ab jeden Messwert getestet worden ob die Steigung nach 6 oder weniger Sekunden 9 oder mehr beträgt.
Das grüne Steigungsdreieck zeigt dann einen solchen Fund an.