True RMS Messung mit uC

M

Michael Dreschmann

Guest
Hallo!

Vor ein paar Wochen bat ich euch schonmal um eure Meinung zu diesem 12
Kanal Dimmer:
http://home.rz-online.de/~wdreschm/load_sch.jpg
http://home.rz-online.de/~wdreschm/load_brd.jpg
Mittlerweile läuft das Teil.

Nun würde ich in der nächsten Version gerne nur 8 anstatt 12 Kanäle
verwenden aber dafür für jeden Kanal eine (möglichst genaue)
Strommessung realisieren. Aufgrund des Phasenanschnitts und der mehr
oder weniger unbekannten Last ist wohl eine True RMS Messung nötig.
Ich dachte zunächst daran das ganze mit einem AD736
(http://www.datasheetcatalog.com/datasheets_pdf/A/D/7/3/AD736.shtml)
zu lösen. Jeder der 8 Kanäle wird der Reihe nach per 4051 auf dessen
Eingang geschaltet und das Ergebnis dann per AD Wandler digitalisiert.
Wenn ich das Datenblatt vom AD736 auf Seite 9 richtig interpretiere
würde er für die Messung eines Kanals (SCR Wave) über eine Sekunde
benötigen und selbst dann ist der Fehler noch etwa 1%.

Nun kam mir der Gedanke das ganze direkt mit dem AVR zu machen. D.h.
die Messwerte der Kanäle werden vom 4051 direkt auf den AD Wandler
gelegt. Den tiny2313 würde ich gegen einen mega48 austauschen, der
geht ebenfalls bis 20MHz und besitzt einen Hardware-Multiplyer und ein
paar mehr Pins brauche ich sowiso noch...
Die Berechnung würde ich mir dann so vorstellen: Alle 10us wird in
einem Timerinterrupt (bereits für den Phasenanschnitt vorhanden) ein
neues Sample vom AD Wandler eingelesen, quadriert und den vorherigen
quadrierten Samples aufaddiert. Das ganze passiert dann für ein paar
Halbwellen (Start und Ende der Messung kann ich ja durch die
Nulldurchgangserkennung passend wählen). Danach wird die Summe durch
die Anzahl der Samples geteilt (also etwa Halbwellen * 1000) und die
Wurzel daraus berechnet. Damit müsste ja die RMS Formel
" ű = sqrt( S u(t)^2 dt ) " erfüllt sein.

Von der Rechenleistung müsste der AVR das bei 20 MHz mit 16 Bit
Eingangswerten noch schaffen, allerdings habe ich keine Ahnung, ob das
ganze 1. überhaupt so funktioniert und 2. wenn ja, wie genau das
Messergebnis dann ungefähr ist, z.B. wenn ich einen 12 Bit AD Wandler
verwende und über 6 Halbwellen messe.
Das wären dann ja 6000 Samples, bedeutet das, dass die 12 Bit
Auflösung des Wandlers etwa erhalten bleibt, also das Ergebnis auch
auf 12 Bit genau angenommen werden kann?

Wäre super, wenn mit das jemand kurz erklären könnte.

Viele Dank,
Michael
 
"Michael Dreschmann" <michaeldre@gmx.de> schrieb im Newsbeitrag
news:433314ca.13382412@news.rhein-zeitung.de...
Nun kam mir der Gedanke das ganze direkt mit dem AVR zu machen. D.h.
die Messwerte der Kanäle werden vom 4051 direkt auf den AD Wandler
gelegt. Den tiny2313 würde ich gegen einen mega48 austauschen, der
geht ebenfalls bis 20MHz und besitzt einen Hardware-Multiplyer und ein
paar mehr Pins brauche ich sowiso noch...

Du musst Spannung und Strom an der Last zum genau gleichen
Zeitpunkt messen, sonst kommt so ein Murks raus wie bei
taiwanesischen Leistungsmessern. Wenn du nur einen A/D-Wandler hast, muss
das andere Signal so lange in einem Sample&Hold zwischengespeichert
werden. Wenn du sowieso Analogschalter per uC steuerst, kann damit
der Sample&Hold gleich erledigt werden, einfach den 1:8 Strom-MUX zum
gleichen Zeitpunkt wie den 1:8 Volt-MUX abschalten, und bei beiden
am Ausgang die Spannung in einem Kondenstaor puffern und dann erst
den einen in Ruhe, dann den anderen Kondensator per A/D-Wandler
messen (noch ein 1:2 MUX). Damit 12 bit erreicht werden, muss es ein
besserer MUX sein als ein 405x.
Wiwe viele Wanldungen du pro Sekunde schaffst, ist egal, Hauptsache
unsnchron zur Netzfrequenz. Je schneller du die Kanaele misst, um
so schnller stellen sich korrekte Messwerte ein.
12 bit erlaubt einen Messbereich von 8A bis 2mA, wobei es unter 100mA
und damit 23 Watt grausam ungenau wird. Eine Bereichsumschaltung ist
nicht unbedingt unklug (wenn <25 Watt ueberhaupt dranhaengen koennen).
--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
 
Hallo MaWin,

danke für die schnelle Antwort.

Du musst Spannung und Strom an der Last zum genau gleichen
Zeitpunkt messen, sonst kommt so ein Murks raus wie bei
taiwanesischen Leistungsmessern.
Soweit bin ich noch gar nicht... Erstmal wollte ich nur den
Effektivwert des Stromes messen, da dieser ja auch entscheidend für
Leitungs- und Sicherungsbelastungen ist.
Aber ich habe auch schon an eine (Wirk)Leistungsmessung gedacht. Dabei
war mein Gedanke, dass ich ja den Zündzeitpunkt und die Position
innerhalb der Halbwelle kenne (vom Phasenanschnittsteil der Software).
D.h. ich könnte sobald der Triac des Kanals gezündet ist die Spannung
an der Last mit k*sin(Pos_in_der_Halbwelle) simulieren. Mit dem
Parameter k und der Netzspannung, die in einem anderen Teil des
Gerätes gemessen wird, müsste ich doch dann die Leistung berechnen
können. So wie ich das bei Wikipedia sehe gilt für die
Effektivleistung:

P = 1/T S U(t) * I(t) dt
Also mit den Samples:
P = 1/n_sample * Summe_über_n_samples( U(t) * I(t) )

(Das ganze soll einen etwas leistungsstärkeren Dimmer geben)
Aber wie gesagt, darum soll es jetzt erstmal noch nicht gehen, ich
weiss auch nicht, wie man diesen Sinus geschickt berechnen könnte.

Damit 12 bit erreicht werden, muss es ein besserer MUX sein als ein 405x.
Das führt mich zum nächsten Problem:
Jeder Kanal soll mit max. 16A belastbar sein (natürlich dann mit etwas
grösseren Triacs) und ich fände einen Messbereich von 0 bis 20A schön.
Dazu ist es natürlich günstig, wenn der Messwiderstand (zwischen Triac
und Lastversorgung (= +5V im Schaltplan oben)) möglichst klein ist.
Bei Conrad gäbe es z.B. 4W Widerstände mit 0.01 Ohm (416703).
Bei 20A würden also genau 4W abfallen. Die +-5% Toleranz sind, wenn
ich das richtig sehe, kein Problem da der Faktor R bei der
Effektivwertbildung keine Rolle spielt und im Endergebnis genauso als
Faktor R eingeht. D.h. durch einmaliges, genaues Ausmessen jedes
Kanals könnte man entsprechende Korrekturfaktoren ermitteln.
An dem 0.01 Ohm Widerstand würden dann zwischen 0 und +-200mV
abfallen.
Ich dachte mir direkt diese Spannung mit dem Multiplexer auf einen OPV
zu geben, der sie dann auf 0-5V für den AD Wandler übersetzt. Ich
weiss allerdings nicht, ob es überhaupt einen Muxer gibt, der dafür
geeignet ist oder ob man ein wesentlich besseres Ergebnis bekommt,
wenn man pro Kanal einen OPV spendiert und erst danach multiplext.
Ausserdem gibt's ja dann noch das Problem mit der Bezugsmasse der
Messschaltung, denn darüber fliesst ja auch der Laststrom von mehreren
Kanälen. Daher dachte ich wäre eine Vierpunktmessung vielleicht nicht
schlecht, also von den Enden jedes Widerstands aus zwei Leitungen zum
OPV der dann entsprechend als Differenzverstärker geschaltet ist.
Was meint ihr dazu? Ich hatte bis jetzt noch nichts mit so geringen
Spannungen zu tun, daher fehlt mir etwas die Vorstellung wie kritisch
das ist.

Wiwe viele Wanldungen du pro Sekunde schaffst, ist egal, Hauptsache
unsnchron zur Netzfrequenz.
Unsynchron ist gegeben, der Interrupttimer wird nicht von einem
Nulldurchgang der Netzspannung beeinflusst.

12 bit erlaubt einen Messbereich von 8A bis 2mA, wobei es unter 100mA
und damit 23 Watt grausam ungenau wird.
Warum genau wird es da ungenau? Wegen Quantisierungsfehlern des AD
Wandlers oder weil die Messspannung zu klein wird?

Eine Bereichsumschaltung ist
nicht unbedingt unklug (wenn <25 Watt ueberhaupt dranhaengen koennen).
Wenn's am AD Wandler liegt könnte man ja vielleicht die Vorverstärkung
mit den OPVs umschalten und dann den Messalgorithmus so aufbauen, dass
zunächst über zwei Halbwellen die max Messspannung ermittelt wird und
eine passende Verstärkung gewählt wird.

Kann man den Zusammenhang zwischen Anzahl der gemittelten Messwerte
mit n Bit und der Auflösung des errechneten Messwertes irgend wie in
einer Formel ausdrücken? Also z.B. wie viele Samples sind bei 12 Bit
ADW Auflösung nötig um nicht zu viel zu Verschenken?

Viele Grüsse,
Michael
 
MaWinschrieb:
"
"Michael Dreschmann" <michaeldre@gmx.de> schrieb im Newsbeitrag
news:433314ca.13382412@news.rhein-zeitung.de...

Nun kam mir der Gedanke das ganze direkt mit dem AVR zu machen. D.h.
die Messwerte der Kanäle werden vom 4051 direkt auf den AD Wandler
gelegt. Den tiny2313 würde ich gegen einen mega48 austauschen, der
geht ebenfalls bis 20MHz und besitzt einen Hardware-Multiplyer und ein
paar mehr Pins brauche ich sowiso noch...


[...]
Wiwe viele Wanldungen du pro Sekunde schaffst, ist egal, Hauptsache
unsnchron zur Netzfrequenz. Je schneller du die Kanaele misst, um
so schnller stellen sich korrekte Messwerte ein.
12 bit erlaubt einen Messbereich von 8A bis 2mA, wobei es unter 100mA
und damit 23 Watt grausam ungenau wird. Eine Bereichsumschaltung ist
nicht unbedingt unklug (wenn <25 Watt ueberhaupt dranhaengen koennen).
Mal eine andere Aspekt in diesem Zusammenhang.

Es fällt mir schwer zu glauben, dass der Einschaltmoment der Triacs
immer in dem selben Punkt gehalten werden kann, zumal wenn der
Nulldurchgang so simpel wie hier, über den Interruptpin erkannt werden
soll. Ein gewisser Jitter ist da wohl nicht auszuschließen und dieser
würde das Ergebnis erheblich verfälschen. Man müßte mal abschätzen
(oder besser messen), wie groß dieser Jitter ist und daraus ableiten,
wie viele Perioden man zur Bestimmung des Durchschnittswertes
benötigt. Da könnte dann leicht mehr als eine Sekunde herauskommen,
weil die Last ebend in jeder Periode eine andere Leistung aufnimmt.

Solange die Schaltung also so "wackelt", und das wird mehr als 1%
sein, weil schon die Schaltschwelle des Portpins nicht auf 1% genau
ist (von der Temperatur mal ganz abgesehen), macht es IMHO nicht viel
Sinn über eine Genauigkeit von 12bit zu reden.

Dirk
 
Michael Dreschmann <michaeldre@gmx.de> wrote:
Hallo MaWin,

danke f?r die schnelle Antwort.

Du musst Spannung und Strom an der Last zum genau gleichen
Zeitpunkt messen, sonst kommt so ein Murks raus wie bei
taiwanesischen Leistungsmessern.

Soweit bin ich noch gar nicht... Erstmal wollte ich nur den
Effektivwert des Stromes messen, da dieser ja auch entscheidend f?r
Leitungs- und Sicherungsbelastungen ist.
Aber ich habe auch schon an eine (Wirk)Leistungsmessung gedacht. Dabei
war mein Gedanke, dass ich ja den Z?ndzeitpunkt und die Position
innerhalb der Halbwelle kenne (vom Phasenanschnittsteil der Software).
D.h. ich k?nnte sobald der Triac des Kanals gez?ndet ist die Spannung
an der Last mit k*sin(Pos_in_der_Halbwelle) simulieren. Mit dem
Parameter k und der Netzspannung, die in einem anderen Teil des
Ger?tes gemessen wird, m?sste ich doch dann die Leistung berechnen
k?nnen. So wie ich das bei Wikipedia sehe gilt f?r die
Effektivleistung:

P = 1/T S U(t) * I(t) dt
Also mit den Samples:
P = 1/n_sample * Summe_?ber_n_samples( U(t) * I(t) )

(Das ganze soll einen etwas leistungsst?rkeren Dimmer geben)
Aber wie gesagt, darum soll es jetzt erstmal noch nicht gehen, ich
weiss auch nicht, wie man diesen Sinus geschickt berechnen k?nnte.

Damit 12 bit erreicht werden, muss es ein besserer MUX sein als ein 405x.

Das f?hrt mich zum n?chsten Problem:
Jeder Kanal soll mit max. 16A belastbar sein (nat?rlich dann mit etwas
gr?sseren Triacs) und ich f?nde einen Messbereich von 0 bis 20A sch?n.
Schau Dir doch mal die Analog Devices " Energy Measurement" Bausteine an...
--
Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
 
Hallo,

Es fällt mir schwer zu glauben, dass der Einschaltmoment der Triacs
immer in dem selben Punkt gehalten werden kann, zumal wenn der
Nulldurchgang so simpel wie hier, über den Interruptpin erkannt werden
soll.
In der nächsten Version will ich dafür auch den analog Komparator
benutzen.

Man müßte mal abschätzen (oder besser messen), wie groß dieser Jitter
Alle 10us wird geschaut, ob ein Triac gezündet werden muss. Das stimmt
auch mit dem Bild auf dem Oszi überein. Wenn ich den 8 Bit
Anschnittsollwert um eine Stufe verändere ist der Sprung deutlich
grösser als der Jitter, ungefähr vier mal so gross. Und das kommt so
wie ich das sehe auch ungefähr hin, denn 8 Bit erlauben bei 100Hz
Halbwellenfrequenz ja eine Auflösung von ungefähr 40us.

ist und daraus ableiten, wie viele Perioden man zur Bestimmung des Durchschnittswertes
benötigt.
Ja, aber wie mach ich das? Hätte ich dann bei 1000 Samples pro
Halbwelle ungefähr eine 10 Bit genauigkeit wenn der Wandler etwas mehr
kann oder wie berechnet sich das?

Solange die Schaltung also so "wackelt", und das wird mehr als 1%
sein, weil schon die Schaltschwelle des Portpins nicht auf 1% genau
ist
Ja, wie gesagt, dass soll mal der Komparator machen, aber scheinbar
funktioniert es zumindest bei meinem Testexemplar ganz gut.

macht es IMHO nicht viel
Sinn über eine Genauigkeit von 12bit zu reden.
Ich bin eigentlich auch nicht davon ausgegangen, dass am Ende 12 Bit
rauskommen, dachte aber wenn das gesampelte Signal schonmal halbwegs
genau ist, schadet das dem Ergebnis sicherlich nicht. 10 Bit wären als
Ergebnis z.B. auch schon toll.
Aber so wie ich das sehe scheint die Grundidee das ganze digital zu
machen ja zu funktionieren, wie lange man für wie genau messen muss
wird sich dann ja zeigen. Bleibt also "nur noch" das Mess signal
möglichst sauber an den Wandler zu bringen...

Vielen Dank,
Michael
 
Hallo,

Schau Dir doch mal die Analog Devices " Energy Measurement" Bausteine an...
Danke für den Tipp, behalte ich mal im Hinterkopf, aber ich glaube ich
mag das jetzt mal selber bauen...

Michael
 
Am Fri, 23 Sep 2005 00:36:41 GMT schrieb Michael Dreschmann
<michaeldre@gmx.de>:
Aber ich habe auch schon an eine (Wirk)Leistungsmessung gedacht. Dabei
war mein Gedanke, dass ich ja den Zündzeitpunkt und die Position
innerhalb der Halbwelle kenne (vom Phasenanschnittsteil der Software).
D.h. ich könnte sobald der Triac des Kanals gezündet ist die Spannung
an der Last mit k*sin(Pos_in_der_Halbwelle) simulieren. Mit dem
Wenn es halbwegs genau werden soll, musst du sie messen, nicht simulieren
oder berechnen. Die Netzspannung ist im allgemeinen nicht sinusförmig.
Einmal im Büro (am Trenntrafo) gemessen, war sie eher Trapezförmig, also
im Bereich des Scheitels über 1/4 bis 1/3 der (Halb-)periode kräftig
eingedellt, waagrecht, mit leichtem Hang nach links. Das war natürlich
durch die vielen PCs und Monitore mit ihren Schaltnetzteilen. Was glaubst
du, wie die Spannung aussieht, wenn du einige 16A Lasten mit
unterschiedlichen Phasenanschnittwinkeln dimmst, ev. noch an einer
schwachen Leitung (Veranstaltung o.ä.)

Das führt mich zum nächsten Problem:
Jeder Kanal soll mit max. 16A belastbar sein (natürlich dann mit etwas
grösseren Triacs) und ich fände einen Messbereich von 0 bis 20A schön.
Dazu ist es natürlich günstig, wenn der Messwiderstand (zwischen Triac
und Lastversorgung (= +5V im Schaltplan oben)) möglichst klein ist.
Bei Conrad gäbe es z.B. 4W Widerstände mit 0.01 Ohm (416703).
Hier solltest du über die Verwendung eines Stromwandlertrafos nachdenken,
du kannst wesentlich höhere Signalspannungen bei wesntlich kleineren
Verlusten erzielen.

Bei 20A würden also genau 4W abfallen. Die +-5% Toleranz sind, wenn
ich das richtig sehe, kein Problem da der Faktor R bei der
Effektivwertbildung keine Rolle spielt und im Endergebnis genauso als
Faktor R eingeht. D.h. durch einmaliges, genaues Ausmessen jedes
Kanals könnte man entsprechende Korrekturfaktoren ermitteln.
An dem 0.01 Ohm Widerstand würden dann zwischen 0 und +-200mV
abfallen.
Ich dachte mir direkt diese Spannung mit dem Multiplexer auf einen OPV
zu geben, der sie dann auf 0-5V für den AD Wandler übersetzt. Ich
weiss allerdings nicht, ob es überhaupt einen Muxer gibt, der dafür
geeignet ist oder ob man ein wesentlich besseres Ergebnis bekommt,
wenn man pro Kanal einen OPV spendiert und erst danach multiplext.
Ausserdem gibt's ja dann noch das Problem mit der Bezugsmasse der
Messschaltung, denn darüber fliesst ja auch der Laststrom von mehreren
Auch dieses Löst der Wandlertrafo elegant - seine Sekundärwicklung ist
galv.getrennt.

--
Martin
 
Hallo,

Wenn es halbwegs genau werden soll, musst du sie messen, nicht simulieren
oder berechnen. ... Was glaubst du, wie die Spannung aussieht, wenn du einige
16A Lasten mit unterschiedlichen Phasenanschnittwinkeln dimmst, ev. noch an
einer schwachen Leitung (Veranstaltung o.ä.)
Da ist natürlich was dran, danke für den Hinweis. So eine
Spannungsmessung wäre ja auch gar nicht so schwierig weil der ganze
Kram sowiso schon auf Netzpotential liegt. Ich glaub das bau ich noch
ein...

Hier solltest du über die Verwendung eines Stromwandlertrafos nachdenken,
Ja, daran hab ich auch schon gedacht, vermute aber, dass die bei den
steilen Phasenanschnittsflanken das Signal zu sehr verfälschen. Und
davon abgesehen sind die grösser, teurer und schwerer. (Keine Sorge,
soll kein kommerzielles Produkt werden, auch wenn's sich so anhört :))
Ich denke ich werd's jetzt mal so versuchen:
An den Messwiderstand jedes Kanals direkt in der Nähe einen OPV als
Differenzverstärker und dann alle acht Kanäle per Multiplexer auf den
AD Wandler. Ein zweiter AD Wandler ermöglicht dann das parallele
sampeln der Netzspannung.

Michael
 
Michael Dreschmannschrieb:
"
Hallo,

Es fällt mir schwer zu glauben, dass der Einschaltmoment der Triacs
immer in dem selben Punkt gehalten werden kann, zumal wenn der
Nulldurchgang so simpel wie hier, über den Interruptpin erkannt werden
soll.

In der nächsten Version will ich dafür auch den analog Komparator
benutzen.
Komperator ist schon mal eine gute Idee. Problem ist immer, je genauer
das ganze sein soll, um so empfindlicher wird es gegenüber Störungen.
Auch ein ordendlicher Filter würde an der Stelle auch nicht schaden.
Interessant ist auch:
http://www.elektronik-kompendium.de/public/schaerer/zerosync.htm
http://www.elektronik-kompendium.de/public/schaerer/phasecnt.htm


Man müßte mal abschätzen (oder besser messen), wie groß dieser Jitter

Alle 10us wird geschaut, ob ein Triac gezündet werden muss. Das stimmt
auch mit dem Bild auf dem Oszi überein. Wenn ich den 8 Bit
Anschnittsollwert um eine Stufe verändere ist der Sprung deutlich
grösser als der Jitter, ungefähr vier mal so gross. Und das kommt so
wie ich das sehe auch ungefähr hin, denn 8 Bit erlauben bei 100Hz
Halbwellenfrequenz ja eine Auflösung von ungefähr 40us.
Vier mal so groß heist 2bit, also würde ich nicht mehr als 9bit
erwarten. Wenn Du ein Digitaloszi hast, dann stell es doch mal auf
Line-Trigger und Envelope-Erfassung und erhitze Deine Schaltung mal
mit einem Fön auf 50°C.

ist und daraus ableiten, wie viele Perioden man zur Bestimmung des Durchschnittswertes
benötigt.
Kann man so pauschal nicht sagen. Da greifen die Grundlagen der
Statistik.

Ja, aber wie mach ich das? Hätte ich dann bei 1000 Samples pro
Halbwelle ungefähr eine 10 Bit genauigkeit wenn der Wandler etwas mehr
kann oder wie berechnet sich das?
Ich zitiere mal:
--------------------------------------------------------------------
Die Auflösung eines ADCs oder DAC’s kann durch Oversampling gesteigert
werden, indem für jeden Messwert mehrere Abtastwerte gemittelt werden.
Der Informationsgewinn wird dabei mit der Quadratwurzel der Anzahl der
Mittelungen berechnet, Oversampling um den Faktor 4 (Mittelwert aus 4
unabhängigen Abtastungen) kann also die Genauigkeit nur um maximal 1
Bit erhöhen, obwohl der Zahlenumfang um den Faktor 4, also 2 Bit,
zugenommen hat. Oversampling kann bei allen A/DWandlern zur Steigerung
der Auflösung eingesetzt werden. Dies kann aber nicht allgemein
behauptet werden, denn die Eingangsspannung kann ja eine stabile
Gleichspannung sein. Hier nutzt das Oversampling allein überhaupt
nichts, denn der Ausgangswert ist immer gleich und wird durch
Mittelung nicht genauer. Kann dieser Fall eintreten, so muss man dem
Eingangssignal (oder dem Referenzwert) eine Wechselspannung
überlagern, welche eine Gleichverteilung der Amplituden aufweist und
einen Hub von mehr als 1 LSB hat, meist ein symmetrisches
Sägezahnsignal oder ein künstlich erzeugtes Rauschen. Dieses Verfahren
nennt man Dithering. Es ergibt sich dadurch die erforderliche
Verteilung der Digitalwerte entsprechend der Lage der Eingangsspannung
zwischen den Schwellen der benachbarten Ausgangswerte. Damit macht die
digitale Mittelung Sinn und ergibt die angestrebte Erhöhung der
Auflösung. Sind dem Signal Wechselspannungen jeder Art überlagert, ist
das Dithering normalerweise nicht nötig. Oversampling ist ebenso bei
der D/A Wandlung einsetzbar. Von einer Digitalzahl mit größerer
Wortlänge werden nur die ersten N Bit ausgeben, wobei das
Tastverhältnis entsprechend den restlichen Bits gesteuert wird.
-------------------------------------------------------------------


Aber ich glaube Du verwechselst hier etwas. Du mußt unterscheiden
zwischen Oversampling z.B. bei einer Halbwelle und der
Leistungsaufname in jeder Halbwelle. Wenn Dein Triac 40us eher
angesteuert wird, dann ändert sich T1 in
http://public.rz.fh-wolfenbuettel.de/~hamannm/umdrucke/mtlab2v102.pdf
Punkt 1.8
und somit die Leistung. Diese mußt Du dann statistisch über mehrere
Halbwellen mitteln.

Solange die Schaltung also so "wackelt", und das wird mehr als 1%
sein, weil schon die Schaltschwelle des Portpins nicht auf 1% genau
ist

Ja, wie gesagt, dass soll mal der Komparator machen, aber scheinbar
funktioniert es zumindest bei meinem Testexemplar ganz gut.

macht es IMHO nicht viel
Sinn über eine Genauigkeit von 12bit zu reden.

Ich bin eigentlich auch nicht davon ausgegangen, dass am Ende 12 Bit
rauskommen, dachte aber wenn das gesampelte Signal schonmal halbwegs
genau ist, schadet das dem Ergebnis sicherlich nicht. 10 Bit wären als
Ergebnis z.B. auch schon toll.
10 bit braucht z.B. Wiederstände <0,1% Toleranz. Ich denke da gerade
an Deine Strommessung, die Du mit einem Shunt realisieren willst.
Einerseits muss dieser möglichst klein sein, um die Eigenerwärmung
möglichst klein zu halten, anderseits mußt Du aber an diesem Shunt bei
10bit noch sicher mit dem Faktor 1:1024 messen können.

Aber so wie ich das sehe scheint die Grundidee das ganze digital zu
machen ja zu funktionieren, wie lange man für wie genau messen muss
wird sich dann ja zeigen. Bleibt also "nur noch" das Mess signal
möglichst sauber an den Wandler zu bringen...
Bedenke auch, dass letztendlich die Additon aller Fehler und
Toleranzen den max. Gesamtfehler ergibt. Ich glaube nicht, dass Du mit
dieser simplen Schaltung über eine Genauigkeit von 8bit hinauskommst
und das wird schon schwer. Zwar kann man versuchen, dass System zu
kalibrieren und eine Korrekturtabelle zu hinterlegen, aber das setzt
ein anderes professionelles Power-Meter vorraus, denn
Leistungswiderstände von 2KW und 0,1% Toleranz (10bit!) sind mir
bisher nicht untergekommen. Für eine genauere Messung muss man sicher
mehr Aufwand treiben. Schau Dir mal die Innenschaltung diverser
Leistungsmessungs-ICs an.
Um Aufwand zu sparen würde ich auch nur eine richtige (und sicher
aufwendigere) Strommessung für die gesamte Schaltung aufbauen und
wären der Messung alle anderen Verbraucher für diese eine Halbwelle
abschalten.

Dirk
 
Hallo,

Komperator ist schon mal eine gute Idee. Problem ist immer, je genauer
das ganze sein soll, um so empfindlicher wird es gegenüber Störungen.
Auch ein ordendlicher Filter würde an der Stelle auch nicht schaden.
Interessant ist auch:
Ich hab den Controller so programmiert, dass er mögliches "prellen"
filtert, also nach einem Nulldurchgang ist der nächste erst wieder
nach 10ms möglich. Die Dauer der Halbwellen wird auch über 16
Halbwellen gemittelt.
Ob das so in rauer Umgebung funktioniert wird sich noch zeigen müssen.

Vier mal so groß heist 2bit, also würde ich nicht mehr als 9bit
erwarten.
Der 10us Jitter müsste sich über die Halbwellen doch auch rausmitteln,
wenn man die Helligkeit von etwas so trägem wie der nacher
anzuschliessenden Glühlampe betrachtet. Irgendwas zwischen 9 und 10
wirds sein.

Wenn Du ein Digitaloszi hast, dann stell es doch mal auf
Line-Trigger und Envelope-Erfassung und erhitze Deine Schaltung mal
mit einem Fön auf 50°C.
Ich habs jetzt noch nicht gemacht, aber was soll sich da ändern? Ist
doch alles digital oder denkst du an die Schaltschwelle des Portpins?
Die ist ja noch nicht repräsentativ ;)

Bedenke auch, dass letztendlich die Additon aller Fehler und
Toleranzen den max. Gesamtfehler ergibt. Ich glaube nicht, dass Du mit
dieser simplen Schaltung über eine Genauigkeit von 8bit hinauskommst
und das wird schon schwer.
Naja, ich bau das jetzt mal so auf und dann seh ich ja was rauskommt.
Es gilt die Devise: so genau wie möglich mit vertretbarem
schaltungstechnischen Aufwand.
Was die Kalibrierung angeht, kann man mit einem guten Multimeter nicht
bis auf etwa 10 Bit messen, bei 20A Messbereich? (Natürlich nur bei
kompletten Sinuswellen)

Michael
 
Michael Dreschmannschrieb:
"
Hallo,

Komperator ist schon mal eine gute Idee. Problem ist immer, je genauer
das ganze sein soll, um so empfindlicher wird es gegenüber Störungen.
Auch ein ordendlicher Filter würde an der Stelle auch nicht schaden.
Interessant ist auch:

Ich hab den Controller so programmiert, dass er mögliches "prellen"
filtert, also nach einem Nulldurchgang ist der nächste erst wieder
nach 10ms möglich. Die Dauer der Halbwellen wird auch über 16
Halbwellen gemittelt.
Ob das so in rauer Umgebung funktioniert wird sich noch zeigen müssen.
Gut schau'n wir mal. Kannst Dich ja mal melden, wenn Du soweit bist.

Vier mal so groß heist 2bit, also würde ich nicht mehr als 9bit
erwarten.

Der 10us Jitter müsste sich über die Halbwellen doch auch rausmitteln,
wenn man die Helligkeit von etwas so trägem wie der nacher
anzuschliessenden Glühlampe betrachtet. Irgendwas zwischen 9 und 10
wirds sein.
Klar kann man letzendlich alles irgenwie mitteln, aber das kostet Zeit
und letztendlich muß man sich fragen, welchen Sinn eine so hohe
Genauigkeit macht, wenn am Ende 1000 Messwerte gemittelt werden.

Wenn Du ein Digitaloszi hast, dann stell es doch mal auf
Line-Trigger und Envelope-Erfassung und erhitze Deine Schaltung mal
mit einem Fön auf 50°C.

Ich habs jetzt noch nicht gemacht, aber was soll sich da ändern? Ist
doch alles digital oder denkst du an die Schaltschwelle des Portpins?
Die ist ja noch nicht repräsentativ ;)
Es würde eine Aussage über die Stabilität machen. Genauigkeit setzt
auch Stabilität voraus.

Bedenke auch, dass letztendlich die Additon aller Fehler und
Toleranzen den max. Gesamtfehler ergibt. Ich glaube nicht, dass Du mit
dieser simplen Schaltung über eine Genauigkeit von 8bit hinauskommst
und das wird schon schwer.

Naja, ich bau das jetzt mal so auf und dann seh ich ja was rauskommt.
Es gilt die Devise: so genau wie möglich mit vertretbarem
schaltungstechnischen Aufwand.
Was die Kalibrierung angeht, kann man mit einem guten Multimeter nicht
bis auf etwa 10 Bit messen, bei 20A Messbereich? (Natürlich nur bei
kompletten Sinuswellen)
Das kommt darauf an, was man unter einem guten Multimeter versteht.
Einem Multimeter <100EUR würde ich eine Genauigkeit >8bit nicht
zutrauen. Noch trauriger sieht es im Strommessbereich aus. Dazu kommt
noch, dass sie regelmäßig Kalibriert werden müssten.

Wenn ich mir die Multimeter beim großen C* ansehe, dann haben die im
Wechselstrommessbereich alle einen Fehler von mind. +-1%, also
nichtmal 6bit, oder man findet solche Angaben wie +-0,8% + 50Digits.
Selbst das teure Fluke für 450EUR hat gerade +-0,75%, schafft also
gerade 6bit. Bis 10bit ist es da noch weit.

Ich hab das Gefühl, dass viele denken, von 8bit nach 16bit nach 32bit
wird nun alles viel genauer und Digitalanzeigen zeigen ja soviel mehr
an. Das alles bringt aber kein Mehr, wenn Sensoren und Aktoren die
gleichen wie vor 20 Jahren sind. Ach vor 20 Jahren gab es schon gute
analoge Zeigerinstrumente mit einem Fehler von 1% (auch im
Wechselstrommessbereich). Vor dem PIC ist alles analog und präzise
analoge Bauelemente kosten richtig Geld. Ein Messgerät mit einer
Genauigkeit von 10bit ist schon ein Präzisionsinstrument.


Wie auch immer Du es drehen magst, es wird nicht genauer.
Aber warum willst Du überhaupt so einen Aufwand treiben? Da Du rein
ohmsche Lasten treiben willst und somit die Stromkurve im Grunde
sinusförmig ist würde ich hier nochmals auf
http://public.rz.fh-wolfenbuettel.de/~hamannm/umdrucke/mtlab2v102.pdf
und Punkt 1.8 verweisen. T1 kennst Du schon (Dein Timer) und den
Spitzenwert der Spannung kann man über einen simplen
Spitzenwertdedektor messen. Den Strom kann man direkt nach der Zündung
des Triacs messen und anhand seiner zeitlichen Lage auf den
Spitzenwert zurückrechen (evtl muss man ohnehin mal prüfen, wie sich
das PTC-Verhalten im Einschaltmoment auswirkt).

Ich würde viel mehr Aufwand in eine Kalibrierung des Systems stecken
und Kalibrierwerte im Controller hinterlegen.
Ich habe mal gehört, dass man sich beim örtlichen Energieversorger
Leistungsverbrauchsmessgeräte ausleihen kann. Wenn die was taugen,
dann kann man mit einer Heizung (2000W/1000W) für alle 256 Punkte
deines Timers das System kalibrieren. Wenn Du einen Regeltrafo hast,
dann kann man das auch noch für 250V und 185V machen usw.

Dirk
 
Hallo,

Gut schau'n wir mal. Kannst Dich ja mal melden, wenn Du soweit bist.
Werde ich tun.

Es würde eine Aussage über die Stabilität machen. Genauigkeit setzt
auch Stabilität voraus.
Als ich mit dem Heißluftfön draufgepustet habe konnte ich tatsächlich
einen wesentlich grösseren Jitter feststellen. Allerdings stellte sich
recht schnell heraus, dass der nich von der Temperatur kam, sondern
von Rückwirkungen des Föns auf das Stromnetz, die waren immerhin so
stark, dass auch das Licht im Raum flackerte. Der
Phasenanschnittssteuerung machte das übrigends nicht's aus, die hat
unbeeindruckt weitergedimmt. Insgesamt sieht die Versorgungsspannung
der Schaltung im Moment ziemlich grauenhaft aus, da ich das Teil über
nen Trenntrafoersatz aus 230V:12V -> 12V:230V speise.

Ich hab das Gefühl, dass viele denken, von 8bit nach 16bit nach 32bit
wird nun alles viel genauer und Digitalanzeigen zeigen ja soviel mehr
an.
Schon klar, deshalb zog ich ja auch nur max. 12 Bit in Erwägung. Vor
allem wird auch irgendwie alles > 8 Bit ganz schön teuer...

Aber warum willst Du überhaupt so einen Aufwand treiben? Da Du rein
ohmsche Lasten treiben willst und somit die Stromkurve im Grunde
sinusförmig ist
Das weiss ich noch nicht so genau, wass da rankommt. Es soll halt ein
Alleskönner werden, der z.B. auch die Gesamtlast der vorgeschalteten
Absicherung anpassen kann usw... Der Weg ist sozusagen das Ziel.

Ich würde viel mehr Aufwand in eine Kalibrierung des Systems stecken
und Kalibrierwerte im Controller hinterlegen.
Das ist ohnehin nötig, da ja schon die Messwiderstände unglaublich
ungenau sind. Woher ich dann ein genaues Vergleichsmessgerät bekomme
überleg ich mir, wenn (oder falls) ich mal soweit bin es zu
brauchen... :)

Ich habe mal gehört, dass man sich beim örtlichen Energieversorger
Leistungsverbrauchsmessgeräte ausleihen kann.
Danke für den Tipp, das wär ja vielleicht schonmal was.

Viele Grüsse,
Michael
 
On Mon, 26 Sep 2005 00:49:58 +0200, Dirk Ruth <d.ruth@itecnet.de>
wrote:

Wie auch immer Du es drehen magst, es wird nicht genauer.
Aber warum willst Du überhaupt so einen Aufwand treiben? Da Du rein
ohmsche Lasten treiben willst und somit die Stromkurve im Grunde
sinusförmig ist würde ich hier nochmals auf
Eben genau _davon_ kann man ja nicht ausgehen!

Das einzige was relativ gesichert scheint: Bei vernachlässigung
diverser parasitärer Effekte (müsste aber ganz gut hinkommen) kann nur
gesagt werden, dass bei der Last der Strom mit der Spannung in Phase
sein wird.

Nachdem aber bei typ. Installationen, wo Dimmer-Batterien gefahren
werden, das Netz alles ist - nur bloss kein Sinus - wird das so nix.
Da hilft nur messen....

Heinz
 
Heinz, Liebhart wrote:

Das einzige was relativ gesichert scheint: Bei vernachlässigung
diverser parasitärer Effekte (müsste aber ganz gut hinkommen)
kann nur gesagt werden, dass bei der Last der Strom mit der
Spannung in Phase sein wird.
Das waere aber ausreichend.

Nachdem aber bei typ. Installationen, wo Dimmer-Batterien gefahren
werden, das Netz alles ist - nur bloss kein Sinus - wird das so nix.
Da hilft nur messen....
Ja. Es ist aber ein Unterschied, ob ich nur den Effektivwert des
Stromes bestimmen muss oder die Wirkleistung. Bei rein reellen
Lasten wuerde ich aber davon ausgehen, dass der Effektivwert des
Stromes die Wirkleistung widerspiegelt.


Grusz,
Rainer
 

Welcome to EDABoard.com

Sponsor

Back
Top