TRUE RMS mit 8 Bit CPU

Guten Morgen!

Ein Kunde w=FCnscht sich auf ein Mal statt einer Peak-Messung eine True RMS Messung, na klar mit der gleichen Hardware (PIC16F690). Hardwareseitig w=FCrde dies auch gehen, doch softwareseitig stehe ich mit dem Rechenverfahren an.

Gemessen soll eine Netzspannung mit 48..63Hz werden. Na klar macht die CPU auch andere Dinge, da sollte f=FCr die Messung bzw. deren Berechnung keine Zeit verschwendet werden :-))) und genau da h=E4nge ich.

Die einfachste bisher ermittelte Variante ist die Ermittlung der genauen Netzfrequenz und dann in dieser Zeit mit festen Intervallen samplen und die endlose Rechnerei durchf=FChren. [(u*u)*dt] f=FCr jeden Sample anschlie=DFend Addition aller Zwischenwerte und dann daraus die Quadratwurzel. Soweit ok, da mache ich die M=FChle, sprich CPU dicht und komme nicht mehr weiter.

Habt ihr irgendwo ein einfaches Software-Verfahren gesehen? Vielleicht auch noch einen Link dazu? (d=FCrfen ruhig auch zwei Links sein :-)

Die Messung selbst muss nicht mit Genauigkeit gl=E4nzen, wenn ich 5% Toleranz schaffe, dann bin ich schon schneewei=DF.

Vielen Dank f=FCr die Hilfe.

Herzliche Gr=FC=DFe Peter

Reply to
Peter Reiter
Loading thread data ...

"Netzspannung" in so weitem Bereich? Wie soll das passieren?

Ist es denn eine reine Sinusspannung? Dann muss ihm Peak reichen können. Wenn es aber keine Sinusspannung ist, dann brauchst du vor allem Abtastrate ohne Ende - du kennst überhaupt schon das Frequenzspektrum?

Oder wofür soll True RMS hier sonst gut sein?

5 % Abweichung ist ja dann auch schon wieder heftig...

Will dein Kunde denn TrueRMS wirklich nur für die Spannung oder will er echte Leistungsmessung?

Schönen Gruß Martin

Reply to
Martin Trautmann

Nicht dt=1 annehmen ?

Letztlich a) Quadrieren der Samples, b) Summieren, c) SQRT

Wenn das Sample 8 Bit ist und der Controller

8x8->16 Bit Multiplikationsbefehl sollte a) kein Problem sein.

Die üblichen 16 - 32 Bit Algorithmen für SQRT sind relativ langsam:

formatting link
Heft4 (kostenpflichtig) Newton & Goldschmidt machen ausser Division auch SQRT aber wohl nur für >>32 Bit attraktiv:
formatting link
Heft12 (kostenpflichtig)

Varianten für Multiplikation finden sich natürlich auch über die Hefte verstreut.

MfG JRD

Reply to
Rafael Deliano

Es sind Suchverfahren. D.h. wenn der Wert von Sample zu Sample recht wenig schwankt kann man aus dem letzten Wert einen guten Startwert gewinnen. Das dürfte spürbare Auswirkungen auf Rechenzeit haben.

MfG JRD

Reply to
Rafael Deliano

Peter Reiter :

Nimm einfach nur jede 2. Messung, oder jede 4. oder jede 8., solange, bis er es schafft :-). Die Wurzel mach über ne Tabelle (sofern Platz da ist).

M.

Reply to
Matthias Weingart

Martin Trautmann schrieb:

Hallo,

es geht um die Frequenz, nicht um die Spannung. Wenn das Gerät in allen Netzen weltweit funktionieren soll, auch an einem Notstromaggregat, dann ist 48 bis 63 Hz nicht übertrieben. Hoffentlich soll es nicht auch noch in Flugzeugbordnetzen mit 400 Hz arbeiten.

Bye

Reply to
Uwe Hercksen

Lieber Ralf!

Das Ganze ist gleichzeitig f=FCr 3Phasen. Einen Startwert kann/traue ich mich nicht zu nehmen, da ich von keinen stabilen Verh=E4ltnissen ausgehen kann. Da die Anlagen nicht um die Ecke gebaut und eingesetzt werden, kann ich auch nicht mal vorbeischauen.

Die Zeit kann ich aus der Rechnung aus draussenhalten, dann erspare ich mir auch die Multiplikation damit. Der PIC16F690 hat keine MUL Einheit, geht alles zu Fuss. Es gibt einen pinkompatiblen uC der eine MUL-Einheit besitzt, aber nachdem ich das Ganze mit 3 Phasen machen muss ist auch dieser mit der Rechenleistung am Ende.

Der Tipp mit den Heften ist auf jeden Fall mal super, auf diese Seite habe ich komplett vergessen.

thx lg Peter

Reply to
Peter Reiter

Lieber Martin!

Ich habe solche Einw=E4nde/Informationen/Fragen kommen sehen, jedoch wollte ich nicht schon am Anfang mit der T=FCre in Haus fallen (oder so):

Das Ger=E4t wird in Netzen mit 50 und 60 Hz eingesetzt. Nachdem die Quelle aber ein Diesel-Generator ist, gibt es hier angeblich diese Toleranzen.

.

Der Kunde ist erst jetzt, nach 2 Jahren und 1000 Ger=E4ten draufgekommen, dass er keinen Sinus zusammenbringt (war aber am Projektstart eine Frage meinerseits, viel Fragen hilft auch nicht weiter).

Angeblich hat er Probleme bis zur 7ten Oberwelle, aber Fragen brauch ich nicht wirklich, denn gemessen hat dies keiner, da bin ich mir sicher.

Korrekt.

Es ist eine Spannungsmessung.

lg Peter

Reply to
Peter Reiter

Es gäbe für x^2 die Näherung in zwei Bereiche zu teilen:

  • den gebogenen unteren Teil per 256 Byte Tabelle, notfalls noch per Shifts skalieren.
  • den "geraden" oberen Teil linear d.h. a + k*x Wobei die Multiplikation per Shifts+Add ausgeführt wird und man k so wählen kann/muß daß es aufwandsarm wird. Vgl dazu CSD "canonical signed digits" in Heft 12 bzw Heft VD 1/2007 der Forth e.V.

Aber seit Controller multiplizieren können kaum noch attraktiv.

MfG JRD

Reply to
Rafael Deliano

Hi,

So würde ich die Sache auch angehen. Die Abtastpunkte müssen quasi-zufällig verteilt sein. Die Frequenz der zu messenden Spannung spielt dann gar keine Rolle mehr.

Gruss Michael

Reply to
Michael Koch

Wenn die Ausgabe auf einem Display erfolgt sollte ja update

1sec reichen. Dann ist der Zeitaufwand für Quadratwurzel auch nichtmehr so erheblich.

MfG JRD

Reply to
Rafael Deliano

Leider nicht ganz.

Es sollte eine =DCber- und/oder Unterspannung erkannt werden und ein Ausgang (Relais) als Aktion gesetzt werden. Die Ein- bzw. Vorgaben erfolgen durch Potentiometer auf der Frontseite des Ger=E4ts.

MUL mit SHIFT und ADD sind halt nicht so richtig flotti, machen wir aber jetzt auch schon.

Naja, die CPU hat schon was zu tun:

-) 4 Poti einlesen und die Schaltschwellen errechnen

-) ein 6poliger DIP-Switch wird analog eingelesen und gibt die Funktionsmodi vor

-) die drei Au=DFenleiter werden auf Reihenfolge und den Spannungsgrenzen (unterhalb, innerhalb, oberhalb) =FCberwacht

-) die Schaltpegel sind mit Hysteresen versehen

-) die internen Versorgungsspannung werden stetig =FCberpr=FCft

-) der Programmspeicher wird stetig auf Bitfehler hin =FCberpr=FCft

-) vorgegebene Zeitfunktionen bei den Schaltpegeln werden ausgef=FChrt

-) und dann gibt es auch noch ein paar andere Kleinigkeit so nebenbei Und dies alles sollte recht flotti passieren, eine Fehlererkennung sollte innerhalb von 200ms passiert sein.

Nun mit der RMS Geschichte reden wir schon =FCber andere Auswertezeiten, aber von der Sekunde sind wir noch weit entfernt. Die CPU l=E4uft mit 8MHz was auf 2MIPS umzurechnen ist, auch nicht sooo viel.

lg Peter

Reply to
Peter Reiter

Peter Reiter schrieb:

Hallo,

man kann auch einen analogen TrueRMS-Wandler davorschalten.

Z.B. von

formatting link
oder
formatting link
da braucht man nicht lange Programmieren und das Ergebnis liegt quasi in Echtzeit vor.

Bernd Mayer

Reply to
Bernd Mayer

Die Spitzenwert-Messung wird wohl bei Spikes ausgelöst haben. Da gehts aber wohl nicht um "TrueRMS" sondern um die Glättung die TrueRMS mitbringt.

Wenns ein Sinus ist: Mittelwert bilden und Faktor ins Ergebnis multiplizieren wie bei den alten primitiven Spulenmeßgeräten. Für PseudoRMS reichts.

Wenns eine beliebige, unvorhersehbare Kurvenform ist und man ein "thermisches" Äquivalent will um Überhitzung zu erkennen, dann würde man wohl tatsächlich bei TrueRMS landen.

--
Wenn man nur hinter Glättung her ist aber schnellere 
Ansprechgeschwindigkeit als Averager oder andere
simple Tiefpaßfilter benötigt:
"sprungfähiges Tiefpaßfilter". In Software z.B. Median-Filter. Ist
zwar mehr Aufwand als simples lineares Filter, aber auf 8 Bit
Controller durchaus zu bewältigen. ( Artikel kommt erst in Heft 14
das noch nicht erschienen ist. Existiert aber schon als pdf kann
ich bei Bedarf raussuchen ).

MfG  JRD
Reply to
Rafael Deliano

Peter Reiter schrieb:

nen.

m?

Dreifache Netzfrequenz w=FCrde mir ja noch einleuchten. Aber siebte Oberwelle? An Maschinensender ist wohl nicht gedacht ;-)

er

Mich w=FCrde eher der Blindstrom, mit dem der Generator belastet wird, interessieren.

--=20 mfg hdw

Reply to
Horst-D.Winzler

Also schrieb Horst-D.Winzler:

In dem Zusammenhang können auch höhere Harmonische (bis zur 23., oder so), interessant sein. Ohne dass man einen Maschinensender betreiben will. :)

Ansgar

--
*** Musik! ***
Reply to
Ansgar Strickerschmidt

Die wirklichen Probleme liegen ganz woanders. Unser Ger=E4t ist im weitesten Sinne ein Schutzger=E4t, d.h. es soll bei Unterspannungen oder =DCberspannungen ausl=F6sen. In der Praxis sind die Unterspannungsfehler am ehesten im Peak vom Sinus zu finden, da er hier am meisten belastet wird. =DCberspannungen k=F6nnen zeitlich =FCberall auftreten sind aber f=FCr die angeschlossenen Ger=E4te meist erst beim =DCberschreiten der normalen Spitzenspannung problematisch. Die urs=E4chlich gew=E4hlte Messung hat also schon Ihren Sinn.

Der gute Kunde hat aber ein anderes Problem wie ich nun erfahren musste. Er setzt unser Ger=E4t parallel mit einem anderen Schaltger=E4t ein und dieses hat eine True RMS Auswertung (irgend eine =DCber-Dr=FCber- Notstromversorgung). Nachdem nun die Schaltpunkte durch die Peak (bei unseren Ger=E4t) und die RMS Auswertung (bei der =DCber-Dr=FCber- Notstromversorgung) unterschiedlich sind, hat er seine Sorgen. Warum aber sein Netz so einen bescheidenen Sinus hat, wei=DF ich nicht. Aus diesem Grund ergibt sich aber die Anforderung, dass unser Ger=E4t die gleichen Schaltpunkte aufweisen muss wie das andere Ger=E4t.

Wenn ich jetzt so nachdenke warum ich mir den Kopf zerbrechen muss, verlangt mein K=F6rper nach einer Baldrian-Tablette, aber so ist es eben.

Reply to
Peter Reiter

IMHO keine Chance - das geht nur, wenn du die genau gleiche Logik wie das andere Geraet einsetzt. Nimm doch gleich das andere als Vorstufe?

Denn solltest du tatsaechlich eine gute Loesung finden, dann musst du die wieder so weit verschlechtern, bis sie wieder genau mit dem anderen Geraet uebereinstimmt - und du wirst intensive Tests vor Ort brauchen, um sicherzustellen, dass dies auch in allen anderen Arbeitspunkten der Fall sein wird.

Schoenen Gruss Martin

Reply to
Martin Trautmann

Peter Reiter schrieb:

i

Also Verbraucher mit kleinem Stromflu=DFwinkel.

die

Parallelbetrieb kenne ich als betriebssicher L=F6sung nur im Master-Slave-Betrieb. Martin hats ja schon angedeutet.

Also ohne das die Ger=E4te daf=FCr eingerichtet sind. Manchmal ist es besser, Kunden vor zuviel Sparsamkeit zu warnen.

n.

Augenblicklich scheint noch die Sonne. Also 1/2h Spaziergang mit anschlie=DFender Erkenntnis, das analoge Effektivwertgleichrichter durchaus ihre Daseinsberechtigung besitzen ;-)

--=20 mfg hdw

Reply to
Horst-D.Winzler

MSP430F427

Hast Du in den letzten Wochen auch so aetzend lange Antwortzeiten von news.individual.de? Die Header kommen recht schnell, aber nach Klick auf einzelne Posts dauert das oft 5-10 Sekunden. Um auf diesen Post zu antworten, musste ich dreimal versuchen und fast eine halbe Minute warten. Das kann IMHO nur am Server liegen, denn andere wie Gmane und Cadsoft reagieren wie ueblich im zig Millisekundenbereich.

--
Gruesse in den Sueden, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.