Mittelwert Phyton

Moderator (Firma: Titel) Persönliche Seite #6882610
Lesenswert?

luky schrieb:
> wenn meine Spannung z.B. 14 V ist dann
> sprint der Wert am Programm von 13,9 auf 13,97 und auf 14,05.
Das sind weniger als 7 Bit (der Wert schwankt ein hundertstel), die du 
tatsächlich verwenden kannst. Du hast offenbar einen ziemlich schlechten 
Hardwareaufbau, wahrscheinlich mit Störeinkopplung und Brummschleifen. 
An dieser Stelle solltest du zuerst angreifen, das ist die Ursache 
deines Problems.

> Gibts da einen Befehl wie man den Mittelwert bildet??
Man kann das aus ein paar Befehlen selbst zusammenbauen...
Dazu musst du in bestimmten Zeitabständen mehrere Werte einlesen (das 
nimmt dir auch ein "fertige" Mittelwertfunktion nicht ab), diese dann 
zusammenaddieren und durch die Anzahl der eingelesenen Werte teilen.

Und wenn mir das zu viel Aufwand wäre, dann würde ich einfach mal Google 
benutzen:
https://www.google.com/search?q=python+mittelwertbildung+funktion
Moderator (Firma: Titel) Persönliche Seite #6882635
Lesenswert?

luky schrieb:
> ok danke wie denkst du ist die Störung zu lösen ?
Man muss erst mal wissen, welche Störung das ist. Und dazu braucht man 
Informationen zum Aufbau, also was wie womit verdrahtet ist. Denn "in 
der Theorie" sollte da bei 14V am ADC dieser auch 14V sehen, in der 
Praxis funktioniert das offenbar nicht.

> Tiefpassfilter oder was gäbe es noch
Kommt drauf an, wie schnell der Filter reagieren muss. Aber wenn du 
hochfrequente, schnelle Störungen herausfiltern willst, wird es 
letztlich immer eine Art Tiefpassfilter sein, das nur langsame, also 
niederfrequente Änderungen durchlässt.
Gast #6882638
Lesenswert?

luky schrieb:
> Eventuell Tiefpassfilter oder was gäbe es noch

Du hast Lothar glaube ich falsch verstanden. Er schlägt dir als erstes 
vor deinen Aufbau zu verbessern.
Ein paar Dinge hat er ja bereits genannt.

Lothar M. schrieb:
> Du hast offenbar einen ziemlich schlechten Hardwareaufbau,
> wahrscheinlich mit Störeinkopplung und Brummschleifen. An dieser Stelle
> solltest du zuerst angreifen, das ist die Ursache deines Problems.

Zusätzlich noch die Fragen zu den Basics:
Wie sieht dein Aufbau aus? (Mach ein Bild)
Hast du am ADC die im Datenblatt vorgeschlagenen 1uF, 10uF Kondensatoren 
und am besten noch ein 100nF parallel?
Woher kommt dein Messsignal und wie hast du den ADC daran abgeschlossen?
Was für eine Bandbreite hat dein Messsignal? Und hast du einen 
Eingangsfilter der Nyquist/Shennon erfüllt?
Moderator (Firma: Titel) Persönliche Seite #6882644
Lesenswert?

MaNi schrieb:
> Was für eine Bandbreite hat dein Messsignal?
14V Gleichspannung, also annähernd 0 Hz.

> Und hast du einen Eingangsfilter der Nyquist/Shennon erfüllt?
Das mit den Herren Nyquist und Shannon wird erst später interessant, 
wenn mal ein echtes Signal angelegt wird.

Weil diese Fragen für luky vermutlich zu abstrakt sind, probieren wir 
das andersrum:
- was für ein Signal soll da gemessen werden?
- was soll hinterher mit dem Signal passieren?
- warum ist es ein Problem, dass der Signalwert ein wenig "zappelt"?

luky schrieb:
> Phyton
Die von dir verwendete Sprache heißt übrigens nicht "Faiton", sondern 
"Paison" (= Python). Zugegebenermaßen schieriger als "C"...
Gast #6882659
Lesenswert?

Lothar M. schrieb:
> Die von dir verwendete Sprache heißt übrigens nicht "Faiton", sondern
> "Paison" (= Python). Zugegebenermaßen schieriger als "C"...

Wikipedia --> "Der Name geht nicht, wie das Logo vermuten lässt, auf die 
gleichnamige Schlangengattung Python zurück, sondern bezog sich 
ursprünglich auf die englische Komikertruppe Monty Python."

Ja, wieder was gelernt...
Gast #6882667
Lesenswert?

Lothar M. schrieb:
> Die von dir verwendete Sprache heißt übrigens nicht "Faiton", sondern
> "Paison" (= Python). Zugegebenermaßen schieriger als "C"...

Python ([ˈpʰaɪθn̩], [ˈpʰaɪθɑn], auf Deutsch auch [ˈpʰyːtɔn]) Quelle: 
Wikipedia

Ansonsten: Jeder soll nach seiner Façon selig werden.
Gast #6882800
Lesenswert?

Lothar M. schrieb:
> luky schrieb:
>> wenn meine Spannung z.B. 14 V ist dann
>> sprint der Wert am Programm von 13,9 auf 13,97 und auf 14,05.
> Das sind weniger als 7 Bit (der Wert schwankt ein hundertstel)

Woher hast Du diese Information?
Falls die Beschaltung auf "max. 75V" Messen ausgelegt ist, wäre ein Bit 
etwa 70mV, das Zappeln also eigentlich nur +/- 1 bit um die 13,97V.

Bevor man vorschlägt den Aufbau zu verbessern, sollte man ihn doch 
zumindest ein bisschen kennen.
Moderator (Firma: Titel) Persönliche Seite #6882807
Lesenswert?

luky schrieb:
> und nein ich habe keine Kondensatoren verbaut
Ja, war zu erwarten und deshalb zum wiederholten Mal: lass doch mal 
deinen Schaltplan und deinen realen Aufbau sehen. Sonst postet doch auch 
jeder sofort irgendwohin ein Foto von seiner Pizza beim 
Hipster-Italiener. Warum schafft man das hier im Forum nicht.

> Ist blöd wenn der Messwert zappelt
Jeder Messwert wird immer zappeln. Nur mit gutem Aufbau bei weitem nicht 
so stark. Trotzdem muss dein Programm damit zurechtkommen.

> da ich mit diesem noch weiterrechne.
Ja, war zu erwarten. Und was passiert deshalb?

mm schrieb:
> Woher hast Du diese Information?
So kurz im Kopf überschlagen: 14V/0,15V (wegen 14,05-13,9) = 93 = 
weniger als 7 brauchbare Bits, weil 7 Bits nämlich 2^8 = 128 sind.

> Falls die Beschaltung auf "max. 75V" Messen ausgelegt ist,
Was man mangles Plan und sonstiger Informatioenn nicht weiß...
> wäre ein Bit etwa 70mV
Bei einem 10-Bit ADC mit 1024 Schritten wäre 1 LSB nicht nur 70mV, 
sondern es ist 70mV.

> das Zappeln also eigentlich nur +/- 1 bit um die 13,97V.
Ist es aber nicht. Es gehen also deutlich mehr Bits verloren, sodass 
letztlich weniger als 7 übrig bleiben.
Gast #6882837
Lesenswert?

Wenn ich mir die 10k wegdenke und Vref=VCC=5V annehme, komme ich auf 
63,5mV pro bit. Also wäre das Zappeln tatsächlich in der Größenordnung 
2-3 digits - was mit Vref=VCC gar nicht so schlecht wäre.

Zum Ausrechnen mit den 10k bin ich grad zu faul, macht die Auflösung 
aber schlechter und somit den Fehler kleiner.
Gast #6882844
Lesenswert?

Noch was... in den meisten Zeichenprogramme gibt es Werkzeuge um Linien, 
Rechtecke und Texte so zu "malen", dass sie auch ohne Mühen erkennbar 
sind.

In der Regel werden Schaltpläne auch so dargestellt, dass der 
Signalfluss zumindest der ortsüblichen Leserichtung entspricht. Hier 
wäre das links nach rechts - also Eingänge der Schaltung (die zu 
messende Batterie) links, der ADC rechts.
Gast #6882889
Lesenswert?

mm schrieb:
> ... und wie ist Vref beschaltet? Vref=Versorgung?

jap Vref = 5V und das ist eine Sternschaltung die ich hierangebracht 
habe die muss so sein damit die Spannungen die höhe haben mit denen der 
MCP arbeiten kann und Anmerkung noch meine widerstände sind sehr genau

sorry ich weis dass es nicht schön gezeichnet ist aber grob ist alles 
erkennbar
Gast #6882892
Lesenswert?

Bei ADC ist saubere Leitungsführung nach den Regeln der Kunst elementar 
wichtig, um saubere Messergebnisse zu erhalten.

Vermutlich benutzt der ADC die 5V Versorgung als Referenz. Dadurch wird 
die Leitungsführung doppelt so wichtig. Ich bezweifle allerdings, dass 
die 5V stabil genug sind. Vermutlich brauchst du für den ADC eine 
bessere Referenzquelle.
Gast #6882909
Lesenswert?

ja benutzt er auch der Wert an sich passt auch nur die leichten 
Schwankungen sind nervig. Würde mir auch Vref messen lassen und den 
gemessenen Wert als Vref nehmen allerdings ist der MCP auf 5v ausgelegt 
und bei 5,1 wirds schwierig
Gast #6882959
Lesenswert?

luky schrieb:
> hab mich bei Python hald verschrieben omg wie schlimm

Das kann passieren, das ist nicht schlimm. Es ist auch nicht schlimm, 
daß Du da anscheinend etwas machen willst, von dem Du offensichtlich 
nicht so sehr viel Ahnung hast. Schlimm ist, daß Du nicht sagst, was das 
Ganze überhaupt werden soll, oder, kurz gefragt: WARUM Du das machen 
willst und WOZU Du so eine hohe Genauigkeit brauchst.
Gast #6883009
Lesenswert?

luky schrieb:
> jap Vref = 5V und das ist eine Sternschaltung die ich hierangebracht
> habe die muss so sein damit die Spannungen die höhe haben mit denen der
> MCP arbeiten kann und Anmerkung noch meine widerstände sind sehr genau

Äääh... bin ja jetzt schon eine Weile im Geschäft, aber von einer 
"Sternschaltung" am ADC höre ich zum ersten Mal. Beim Drehstrommotor ja, 
aber beim ADC???
Google findet da auch nur Forenposts, in denen eine sternförmige 
Leitungsführung für Masse/Versorgung gemeint ist.

Normalerweise nimmt man einen ganz einfachen Spannungsteiler. Evtl. noch 
einen Kondensator (100p .. 1n) oder einen Impedanzwandler falls der 
Spannungsteiler zu hochohmig wird.

Zusammenfassend würde ich sagen, dass das "zappeln" bei Vref=Vcc sogar 
weniger ist, als ich da erwartet hätte. Vielleicht dadurch, dass die 
"Sternschaltung" einen Teil des "Drecks" aus der 5V-Versorgung mit ins 
Messignal einprägt...

Jetzt zur ursprünglichen Frage:
Ich würde es wahrscheinlich manuell implementieren: Liste der letzten X 
Werte und ganz klassisch Mittelwert darüber bilden - ist natürlich nicht 
optimal/effizient, aber sonst langweilt sich der RaspPi ja.
Wenn man fertige Sachen nutzen will, wären numpy_ringbuffer und 
numpy.mean Kandidaten.
Gast #6883047
Lesenswert?

Lothar M. schrieb:
> mm schrieb:
>> Äääh... bin ja jetzt schon eine Weile im Geschäft, aber von einer
>> "Sternschaltung" am ADC höre ich zum ersten Mal.
> Den Offset des Widerstands gegen eine feste positive Spannung braucht
> man auch nur, wenn man auf einfach Art negative Spannungen mit einem
> unipolaren ADC messen will. Siehe Spannungsteiler

Ja, mit der Schaltung wird ein Offset addiert. Aber der Name 
"Sternschaltung" ist mir dafür noch nie unter gekommen.
Auch kann ich keinen Grund sehen, die Messung einer Batteriespannung mit 
einem (positiven) Offset zu beaufschlagen. Wenn sich die Batterie der 
Null auch nur nähert ist sie ja schon lange kaputt.
Gast #6883401
Lesenswert?

mm schrieb:
> Auch kann ich keinen Grund sehen, die Messung einer Batteriespannung mit
> einem (positiven) Offset zu beaufschlagen. Wenn sich die Batterie der
> Null auch nur nähert ist sie ja schon lange kaputt.

Dann wäre so eine Schaltung sinnvoller? Mit R1 = 15kΩ, R2 = 47kΩ (und C1 
= 100nF um ganz ganz ganz sicher zu gehen)?
Angehängte Dateien:
Gast #6884746
Lesenswert?

luky schrieb:
> jap Vref = 5V und das ist eine Sternschaltung die ich hierangebracht
> habe die muss so sein damit die Spannungen die höhe haben mit denen der
> MCP arbeiten kann

Was soll denn dein Messbereich sein? Von minus 10 V bis etwa 50V? Falls 
weniger, wird auch die Streuung weniger. Eine echte Referenzspannung 
hilft wie schon gesagt, natürlich auch.


> und Anmerkung noch meine widerstände sind sehr genau

Das spielt hier keine Rolle.
Gast #6884750
Lesenswert?

Wenn Du 100 (oder mehr) Rohwerte im festen Zeittakt (z.b. 10 ms) 
aufnimmst und hier postest (als Text, nicht handschriftlich), dann kann 
man ggf. Muster erkennen (zyklische Streuung, rauschen, 
Auflösungsprobleme, ...)

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