[vz-dev] Messungenauigkeit
Jens Wilmer
volkszaehler at jenswilmer.de
Thu Dec 2 01:23:36 CET 2010
Hallo zusammen,
Am 01.12.2010 15:29, schrieb Harald Koenig:
> On Dec 01, Justin Otherguy wrote:
>> M.E. gibt es 2 Lösungen (an der Stelle haben wir schon so ein paar Runden gedreht, gelle Jens? (c; ):
>> - den Zeitstempel des Servers verwenden - der hat ja ms und mehr
>>
>> Dadurch kommt die Latenz im Netz ins Spiel- allerdings halte ich die für vernachlässigbar. Insbesondere bei unserem (inzwischen zum Standard gewordenen) Ansatz des lokalen Backends.
> IMHO eine ganz schlechte idee, damit ist der zentrale dienst im interent zum stromdaten abwerfen/halten voellig unbrauchbar.
Das ist so nicht ganz richtig, nur für die Zeit eines Netzausfalls
verlieren die gepufferten Daten ein wenig ihrer zeitlichen Genauigkeit,
wenn sie in der Summe noch stimmen, kann man trotzdem noch sehr viel mit
ihnen anfangen.
> ohne eine db auf volkszaehler.org ist der aufwand fuer den einzelnen *wesentlich* groesser in das projekt ueberhaupt einzusteigen.
>
> "geeignete" hardware fuer einen lokalen server zu finden mag fuer bastler wie uns ja machbar und gar interessant sein,
> fuer "die oma neben" an einfach nur ein weiteres K.O.-kriterium...
Ja.
> und wenn man lokal die zu puffernden daten (IMHO eine grundvoraussetzung fuer stabilen netzbetrieb, zumind. optional)
> lokal nur mit 1-sec-timestamps versehen kann, dann kann man die pufferung auch mehr oder minder vergessen...
Das stimmt nun wieder überhaupt nicht. Die Auflösung von einer Sekunde
ist mehr als ausreichend ...
> IMHO fuehrt kein weg daran vorbei, dass der controller eine vernuenftige und hochaufgeloeste zeitbasis hat!
siehe unten...
> gibts mit jedem linux-system als controller-hw quasi kostenlos dazu, also warum nicht WRT54GL/DockStar/TL-MR3420/...
> ab ~30 EUR incl. netzteil ...
Das stimmt so wieder nicht, obwohl hier nichts Falsches steht :) Die
Zeitbasis ist hoch aufgelöst. Allerdings ist es schwer an den
entsprechenden Controllern noch einen freien interruptfähigen Pin zu
finden und diesen dann im selbst gebastelten RT Linux auszuwerten.
Wenn man die interne Serielle Schnittstelle per Linux-Device anspricht,
kann man wahrscheinlich auf den eher kleinen Rechnern durchgehend auf
eine Genauigkeit von 100ms kommen, wenn sonst nichts passiert vielleicht
auch mal 10 ms, wozu noch ein ungefähr konstanter Bedarf für das Bündeln
zu ein Byte Paketen und Durchreichen bis zum Programm kommt. Wenn man
USB-Serial Wandler nimmt, kommt man wahrscheinlich ohne sonstige
Aktivitäten wahrscheinlich noch auf einen Wert um 50 ms, sonst
entsprechend schlechter.
Genauer zu werden ist nicht so einfach, wie es hier immer dargestellt
wird. Allerdings ist es auch völlig unnötig.
Die Genauigkeit von einer Sekunde mehr als ausreichend, weil ...
Mir würde eigentlich auch ein Messwert pro Minute reichen. Na gut,
deswegen nicht, obwohl es so ist. Was zur Zeit an den Mikrocontrollern
und sonstigen Rechnern hängt sind meistens Hutschienenzähler mit S0
Schaltausgang. Die meisten Leute hier haben anscheinend noch nicht
mitbekommen, dass es sich hierbei um Energiemessgeräte handelt. Die
gebräuchlichsten Geräte liefern ungefähr 1000 Impulse / kWh, Der
Nennstrom beträgt 5 A, das entspricht einer Nennleistung von etwas über
1000 Watt, je nach Spannung, nominal 230 V, bei mir sind es selten mehr
als 222 V. Bei diesem Strom haben sie in der besten Genauigkeitsklasse
eine Genauigkeit von +/- 1%, das heißt an der genauesten Stelle liegen
zwei Impulse zwischen 3,099 und 3,162 Sekunden auseinander. Immerhin
schon 60 ms Unterschied.
Außerdem liegen die einzelnen Messpunkte 3 Sekunden auseinander und die
der Zwischenzeit aufgenommene Leistung hat eine Energie von 1 Wh
verbraucht. Das kann bedeuten, das der Staubsauger die 3 Sekunden mit
einem kW lief, oder dass der Herd eine Sekunde mit 3 kW geheizt hat und
zwei Sekunden lang nicht. Was passiert ist, weiß man nicht, da es nicht
gemessen wird. Wenn man jetzt (so wie Justin es mir immer zu verkaufen
versucht :) ) Bei einem Impuls in drei Stunden eine hübsche Linie bei
0,3 W zieht, sieht das hübsch gerade aus, hat aber wahrscheinlich nichts
mit der Realität zu tun, da der Impuls von "Ich mit Licht auf dem Klo"
und nicht von "in der Steckdose vergessenes Ladegerät" kam. (Dazu kommt
auch noch, dass die alte Software dies auf die falsche Weise tut und
falsche Werte anzeigt.) Ein Energie-Impuls am Ende der 2 Stunden käme
dem wahren Verbrauch in diesem Fall schon viel näher und ist auch die
richtigere Darstellung, weil es das, was gemessen wurde besser
darstellt: Im vergangenen Zeitraum wurde eine bestimmte Menge Energie
verbraucht und zum Zeitpunkt des Impulses wurde auf jeden Fall Energie
verbraucht, was davor war, oder wie viel zu welchem Zeitpunkt verbraucht
wurde, weiß man nicht.
Der 3 Watt Dockstar bekommt in dieser Darstellung dann keine 3 Watt
Linie, sondern alle 20 Minuten einen 3600 Watt Peak über eine Sekunde.
Aber das ist auch genau das was wir messen. Schaut man sich das dann mit
einer Genauigkeit von 2 Sekunden an, bekommt er alle 20 Minuten einen
1800 Watt Peak von 2 Sekunden Dauer. Schaut man es sich mit einer
Genauigkeit von 20 Minuten an, gibt es viele Messwerte mit 3 Watt und
hin und wieder mal einen mit 6 Watt gefolgt von einem mit 0 Watt oder
umgekehrt. Schaut man sich die Messwerte pro Stunde an, gibt es viele
Messwerte mit 3 W, mal einen mit 4 W gefolgt von einem mit 2 W.
Genau die Darstellung wünsche ich mir, da ich mir dann endlich mal
ansehen kann, welchen Verbrauch ich gemessen habe.
Den Energieverbrauch einer Leistungsaufnahme von 3 W kann man auch in
Sekundenschritten messen. Aber nicht mit einer Auflösung von 1 Wh. Dafür
braucht man halt einen Zähler mit 3.000.000 Impulsen / Wh. Der ist dann
allerdings mit S0 Schnittstelle für meinen Herd wieder ungünstig.
Jetzt zurück zu den Millisekunden-Fetischisten:
Man kann die Durchschnittsleistung zwischen zwei Impulsen genauer
messen, wenn man den Abstand zwischen zwei Impulsen genauer misst.
Bekommt man das mit einem Standard-Linux auf einem WRT54GL hin?
Ein Bisschen, aber nicht so wie es sich viele hier anscheinend denken.
(Siehe oben)
Entspricht die errechnete Leistung der Leistung, die zwischen den beiden
Impulse verbraucht wurde?
Nein. [1]
Hat die höhere Auflösung irgendeine Relevanz?
Ja. Man kann damit auch den Verbrauch höher als eine Sekunde auflösen.
Wenn ich also wissen möchte ob mein Herd mit 12 kW auf einer Phase in
der ersten halben Sekunde nach dem Einschaltens mehr Strom verbraucht
hat als in der zweiten halben Sekunde, könnte ich es so vielleicht noch
herausfinden (wenn der WRT54GL den ersten Impuls nicht gerade in seine
Mysql-Datenbank auf der SD Karte speichert, die dafür eine SD-Karten
Speicherseite liest, die 5 Byte Daten hinein bastelt, die Speicherseite
löscht und wieder neu beschreibt, bevor sie auch den Logeintrag annimmt
und den Interrupt wieder freigibt, wodurch der zweite Impuls leider um
300 ms nach hinten geschoben wird und ich genau das Gegenteil zu messe
meine.)
Interessiert mich das?
Nein.
Aber wie messe ich dann den ständigen Verbrauch von 3 Watt?
Guck die Messwerte in einer passend gemittelten Skala an, vielleicht
findest Du ihn, wenn er nicht von den Schwankungen der anderen
Verbraucher überlagert wird.
Aber wie messe ich dann den ständigen Verbrauch von 3 Watt ohne andere
Verbraucher?
Guck Dir die stündlichen oder täglichen Messwerte an.
Aber wie messe ich den Verbrauch von 3 Watt während der 20 Minuten in
denen die restlichen Verbraucher ausgeschaltet sind?
Kauf Dir ein Leistungsmessgerät. Am Verbrauch kann man nicht
feststellen, ob in den 20 Minuten "Sendepause" durchgehend 3 Watt
verbraucht wurden, oder ob ein großer Verbraucher erst zwei Sekunden
nach dem vorherigen Impuls ausgeschaltet wurde und nur noch 0,1 W
verbraucht wurde, oder ob ein großer Verbraucher vielleicht 3 Sekunden
früher eingeschaltet wurde, oder ob nach zwanzig Minuten die
Toilettenbeleuchtung oder der automatische Lüfter der Katzentoilette
eingeschaltet wurden.
Aber wie messe ich dann den genau zwanzig Minuten dauernden Verbrauch
von 3 Watt?
Kauf Dir ein Leistungsmessgerät. Siehe oben.
Wie bekomme ich den Momentanverbrauch in dieser Sekunde?
Kauf Dir ein Leistungsmessgerät.
Wie bekomme ich meine 10 Leistungsmesswerte pro Sekunde?
Kauf Dir ein Leistungsmessgerät.
Und für Udo:
Wieso irritiert mich an Steffens Bild, dass pro Zeitabschnitt von 5
Minuten nur 24 Messwerte bei einem Verbrauch von ca. 140 W dargestellt
werden?
Kauf Steffen ein Leistungsmessgerät. [2]
Warum kann ich die Leistung nicht am Abstand der Impulse in
Millisekunden ausrechnen:
Weil es kein Leistungsmessgerät ist und nicht die Leistung misst.
Aber wenn ich dauernd 6 kW verbrauche, könnte ich mit einer höheren
Auflösung des Mikrocontrollers mehr Messwerte als einen pro Sekunde
speichern, warum muss mir die Ungenauigkeit des Mikrocontrollers diesen
einzigen Einsatzzweck den ich für den Aufbau hatte auch noch kaputt machen?
Wenn Du die Leistung messen möchtest: Kauf Dir ein Leistungsmessgerät.
Wenn Du den Verbrauch genauer messen möchtest, würde es nur Sinn machen,
die Anzahl der Impulse nicht mehr nur eine Sekunde, sondern einer Hälfte
einer Sekunde zuzuordnen..
Aber meiner Meinung nach macht das alles keinen Sinn. Wenn ich mein 6,
10, 100 kW Gerät betreibe, möchte ich eher wissen, was es pro Stunde,
pro Tag, pro Monat verbraucht. Oder was es verbraucht, wenn ich es
einmal benutze. Oder was es pro Aufheizphase verbraucht. In welcher
Hälfte einer Sekunde es den Strom verbraucht hat, interessiert mich
nicht, wenn doch, nehme ich mein Leistungsmessgerät.
Wenn ich die Leistung nicht messen kann ist das ganze Projekt ja
sinnlos, was bringt es mir dann?
Wenn Du die Leistung messen willst: Einen groben Schätzwert.
Einige hier wollen aber den Stromverbrauch messen, und den misst es
ziemlich gut. So als wäre es dafür gebaut worden.
Und zwar in einer Auflösung von 2, 1, oder sogar 0,5 Wh. Allerdings
völlig unabhängig von der Zeit, in der diese Energie verbraucht wird. Es
kann immer nur Bescheid sagen, wenn ein solches Paket verbraucht wurde.
Mal angenommen, die "richtige Linie" von Steffen (siehe unten, 2 mal 5
Sekunden 0 W, 5 Sekunden 360 W, 3 mal 5 Sekunden 0 W, 5 Sekunden 360 W)
ist einem zu krakelig und nicht das was verbraucht wurde, dann kann ich
das akzeptieren. Es ist halt nur das, was gemessen wurde. Ich kann die
Linie glatt bei 140 W zeichnen, wenn ich weiß, dass ich einen konstanten
Verbraucher mit 140 W habe. Dafür kann ich aber auch die Messung
weglassen. Wenn ich eine glattere Linie im 5 Sekunden Rhythmus bei 140 W
messen möchte, muss ich mir eben einen Zähler mit 30.000 Impulsen / kWh
kaufen. Oder wenn ich die Leistung messen will, muss ich eben ein
Leistungsmessgerät kaufen. Um die Energie zu messen muss man dann nur
noch ein paar tausend Leistungsmessungen pro Sekunde machen und die
Werte aufsummieren. So wie es die netten S0-Zähler für uns auch machen.
Mir reichen meine S0 Zähler. Die Auflösung meiner Zähler beträgt 0,5 Wh,
dass ich damit keine Leistung messen kann weiß ich, es steht ja drauf.
Und wenn ich die Leistung von Steffens 140 W halt nur im Stundentakt
fast völlig glatt sehe, weiß ich warum, und es reicht mir völlig aus.
Dafür weiß ich sehr genau, wie viel insgesamt verbraucht wurde,
wahrscheinlich genauer als jemand mit einem Leistungsmesser (Falls der
Verbrauch vielleicht doch nicht so konstant ist.)
Ein Leistungsmessgerät zu nehmen und den Verbrauch daraus zu errechnen
dürfte vom Aufwand her eher uninteressant sein, wenn man die Genauigkeit
der S0 Zähler erreichen möchte. Und mir geht es primär um den Verbrauch,
daher käme für mich eigentlich nur die zusätzliche Leistungsmessung in
Frage.
Was die mir bringt, ist der Momentanverbrauch, der mich nicht genug
interessiert, um den entsprechenden Aufwand dafür zu treiben; da er nur
für den aktuellen Moment interessant ist. (Und warum die anderen Leute
hier unbedingt zwei Messwerte pro Millisekunde messen, und wie sie die
Daten in Echtzeit transportiert und angezeigt bekommen wollen ist mir
immer noch schleierhaft.)
Wenn man die Leistungsdaten einfach so dazu bekommt, kann man sie ja
gerne nehmen. Aber ich würde wahrscheinlich auch nur den Verbrauch
speichern und die Leistung wirklich nur momentan für Anzeigen benutzen
oder Auswertungen benutzen (z.B. Verbraucheridentifikation). Das bietet
der eHZ. Und das ist das Gerät, mit dem der Volkszähler betrieben werden
wird, und mit dem er zum Volkszähler werden wird.
Die Gründe liegen klar auf der Hand:
Er wird überall verfügbar sein.
Er stellt kein zusätzliches "Sicherheitsrisiko" dar.
Jeder kann ihn ohne spezielle Kenntnisse bekommen
und es wird die günstigste Lösung sein, wenn man ihn schon hat, was in
absehbarer Zeit bei allen entfernt am Smartmetering Interessierten so
sein wird, falls sich die anderen überhaupt noch dagegen wehren können.
Wer einen für mich hat, immer zuschicken! Falls zu viele kommen, baue
ich vor jede Steckdose einen :o)
[1]: Im Durchschnitt schon, interessant wird es aber nur, wenn die
Impulse weit auseinander liegen, da dann die "Verbrauch dem
Impulszeitpunkt zuweisen" Methode "unglatter" wird. Aber gerade da ist
es unwahrscheinlicher, dass der wahre Verbrauch wirklich "glatt" ist.
(Es sei denn, man misst den Verbrauch einer geeichten 3 Watt Dummy-Load
unter Laborbedingungen, aber da kann man auch gleich 3 Watt dran
schreiben. Mir geht es um den Verbrauch in meinem Haushalt und der
ändert sich ständig und ich habe kaum Verbraucher mit völlig konstantem
Stromverbrauch.)
[2]: Wie Justin schon vorrechnete:
Mit den eher genauen 2000 Imp/kWh Zählern: bei 140 W ca. 12 Sekunden pro
Impuls, macht 21.4 Messwerte in 5 Minuten.
Und wie es aussieht malt auch das neue Frontend die gleichen falschen
Kurven wie das alte und verbindet die Punkte an den Stellen:
(Impulseintreffzeit, 1800Ws / letzte Differenz der der
Impulseintreffzeiten) Das ist und bleibt falsch, aber auf mich hört ja
keiner, vielleicht muss ich mir mein Frontend mit Anzeige richtiger
Daten doch irgendwann selbst schreiben, da außer mir niemand an
richtigen Daten interessiert ist. (Am richtigsten wäre eine vorgegebene
Auflösung, z.B. 5 Sekunden, dann eine Linie bei null und alle 2 - 3
Anzeigepunkte ein Ausschlag auf 360 W. Wenn man eine glattere Linie
haben möchte, muss man die Zeiten pro Anzeigepunkt verlängern und damit
über mehr Impulse mitteln.)
So, schon wieder mächtig überzogen (wollte eigentlich um 21 Uhr ins
Bett, dachte aber, die eine E-Mail kann ich ja noch schreiben.)
Gute Nacht!
Jens Wilmer
More information about the volkszaehler-dev
mailing list