www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Berechnung der Phasendifferenz Strom und Spannung


Autor: Kamil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich möchte gerne ein kleines Netzanalysegerät in Matlab simulieren und 
gegebenfalls in einen DSP überführen.

Es sollen:

Strom
Spannung
Wirkleistung
Blindleistung
Scheinleistung
Leistungsfaktor
etc. p.p. :)

messen und Berechnen können.

Aber es kommt schon recht schnell zu Fragen.
Wenn ich eine Spannung und einen Strom habe, würde ich gerne die 
Phasendifferenz zwischen Strom und Spannung wissen.

Wie komme ich an diese Phasendifferenz?

Ich könnte natürlich die Zeit zwischen den Null-Durchläufen stoppen und 
pauschal mit der Freq. (50 Hz) verrechnen.

Aber geht es auch Mathematisch; und wenn ja wie ?

Vielen Dank

Gruß

Kamil

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Kamil

<<<
Ich könnte natürlich die Zeit zwischen den Null-Durchläufen stoppen und
pauschal mit der Freq. (50 Hz) verrechnen.

Aber geht es auch Mathematisch; und wenn ja wie ?

<<<

Du brauchst wohl beides. Woher soll Matlab wissen, wie gross der versatz 
ist ? Das musst du wohl simulieren. Im uC kannst du dann z.B. den 
Versatz der Nulldurchgänge von Strom und Spannung herausmessen und damit 
dann die Wirkleistung und den Leistungsfaktor berechnen.

Gerhard

Autor: pq (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathematisch:

Du erzeugst dir per Software einen Sinus und einen Cosinus mit 50Hz.
Dann Sinus mit dem Spannungssignal multiplizieren und Tiefpassfiltern.
Dann Cosinus mit dem Spannungssignal multiplizieren und Tiefpassfiltern.

Arctangens(Sinusergebnis gefilter/Cosinusergebnis gefiltert) = 
Phasenwinkel zwischen Spannung und dem virtuellen Sinussignal.

Das gleiche mit dem Stromsignal machen. Dann hast Du den Phasenwinkel 
zwischen Strom und virtuellem Sinussignal.

Differenz aus beiden ist Phasenwinkel zwischen Strom und Spannung.

Der Vorteil dieser Methode: Man schaut nicht nur auf die Nulldurchgänge, 
sondern auf den ganzen Verlauf. Deshalb ist die Messung auch bei 
verzerrten Stromsignalen noch richtig.

Autor: Kamil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo pq,

Ich habe da ein kleines problem:

strom_messung : zwei perioden mit jeweils 512 werten gesampelt (1024 
werte)
spannung_messung : zwei perioden mit jeweils 512 werten gesampelt(1024 
werte)
sin_wert: zwei perioden mit jeweils 512 stüzpunkten(1024 werte)
cos_wert: zwei perioden mit jeweils 512 stüzpunkten(1024 werte)

dann jeweils (für strom und spannung)[das verstehe ich nicht]:

erg_s[1] = sin_wert[1]*strom_messung[1];
erg_c[1] = cos_wert[1]*strom_messung[1];

phi_1 = arctan(erg_s[1]/erg_c[1]);

?!?!?

Ein weiteres Gedanken-häppchen wäre nett :)

Danke

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Im uC kannst du dann z.B. den
>Versatz der Nulldurchgänge von Strom und Spannung herausmessen und damit
>dann die Wirkleistung und den Leistungsfaktor berechnen.

So den Leistungsfaktor zu ermitteln, geht schief, sobald der Strom von 
der Sinusform abweicht!

Besser ist Scheinleistung durch Wirkleistung zu rechnen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<pedantic on>
PF = P / S
<pedantic off>

Ansonsten hat Matthias natürlich recht. Alternativ musst du die oben 
vorgeschlagenen Berechnungen bei nichtlinearen Verbrauchern für 
sämtliche signifikanten Harmonischen einzeln durchführen, also 50 Hz, 
100 Hz, ... 300 Hz usw.
Das dürfte aber die Rechenleistung deines DSP schnell sprengen, wenn du 
die Signale online (ohne Puffer) berechnen möchtest. Da sind etwa 10 kHz 
Samplerate sinnvoll, damit du pro Periode 200 Samples hast.
Für die Offline-Variante (mit Puffern) müsstest du die Puffer evtl. noch 
etwas größer machen, da die Filter etwas Zeit zum Einschwingen brauchen.

Was für eine Plattform + Entwicklungsumgebung setzt du ein?

Autor: Kamil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

@Alex

ich möchte das ganze erstmal simulieren mit matlab.

Später kann ich mir einen dsPIC o. einen Cortex M3 oder ähnliches 
vorstellen.
Je nachdem wieviele berechnungen durchgeführt werden müssen.


Gruß


Kamil

(heute abend werde ich mich mal anmelden...dann könnten wir emails 
austauschen :), falls jemand mit simulieren möchte)

Autor: Andreas R. (rebirama)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätte mal ne Idee, die ohne die ganzen Arrays auskommt und 
Frequenzunabhängig ist:

I: aktuelles stromsample
U: aktuelles spannungssample
Integral: Integral über ein bestimmtes Intervall, z.B. eine Sekunde 
(aufsummieren)
SPI: Samples pro Integrationszeitraum


Wirkleistung:
Integral(I*U) durch SPI

EffektivStrom:
sqrt((Integral(U^2) durch SPI)

EffektivSpannung:
sqrt((Integral(I^2) durch SPI)

Scheinleistung=Effektivspannung*Effektivstrom

Leistungsfaktor: Wirkleistung/Scheinleistung

"Aufwendige" Rechnungen Fallen nur einmal pro Intervall an.
Nulldurchganserkennung nicht zwingend notwendig.
Allerdings kann man nicht unterscheiden ob der Verbraucher kapazitiv 
oder induktiv ist.
Das schaft selbst n 8bitter ;-)

Erweiterung für Phasenwinkel:
Man könnte die Methode mit PQs Ansatz kombinieren und hätte den 
Phasenwinkel.
Stromwinkel:
arctan (Integral(Sinus*I)/SPI /Itegral(Cos*I)/SPI)
Spannungswinkel genauso,
Die Differenz ist die Winkelverschiebung zwischen beiden.
Wichtig: Wirkleistung=cos(phi)*Scheinleistung gilt nur wenn keine 
Oberwellen vorhanden sind, also nicht für Schaltnetzteile etc.

Autor: Kamil Tscherkowski (kamil09)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

das Netzanalysegerät(Simulation) soll möglichst real sein.
Es können in der Praxis ja Oberwellen vorhanden sein.

Gruß

Kamil

Autor: Andreas R. (rebirama)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich meinte mit den letzten zwei Zeilen meines Posts:

Blind- und Wirkleistung lassen sich mit der Methode bestimmen, aber die 
Angabe/Berechnung eines Winkels funktioniert nur, wenn die Blindleistung 
ihre Ursache in einer Verschiebung der Grundschwingung hat. 
Blindleistung kann auch durch Oberwellen "generiert" werden.
Mit der Integrationsmethode erhält man die komplette Blind- und 
Wirkleistungleistung unabhängig von der Frequenz, also auch die der 
erfassbaren (Nyquist!) Oberwellen.

Das Herausfiltern der Grundschwingung geschieht durch die Multiplikation 
mit Sinus und Cosinus (=Kreuzkorrelation). Die Oberwellen fallen dadurch 
raus und die Grundwelle bleibt übrig. Anschließen kann die 
Winkeldifferenz zwischen Strom und Spannung berechnet werden.

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal die Bilder im Anhang an, das Verfahren habe ich bereits 
erfolgreich genutzt.
KI = 2  PI  N * 50 Hz
KP = 0.001 ... 1 (je nach gewünschter Dynamik, kleiner Werte liefern 
bessere Ergebnisse, Lastwechsel werden aber langsamer erkannt)

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Just some text ...

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also für jeden interessanten Frequenzanteil einfach "in-phase" und 
"quadrature" Signale erzeugen und mit der Angegebenen Formel Blind- und 
Wirkleistung berechnen.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich möchte gerne ein kleines Netzanalysegerät in Matlab simulieren und
>gegebenfalls in einen DSP überführen.

>Es sollen:

>Strom
>Spannung
>Wirkleistung
>Blindleistung
>Scheinleistung
>Leistungsfaktor


Aber mal so in den Raum geworfen:

Sowas gibts doch schon fertig als IC.

Autor: znil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Kamil,

ich stehe vor einem ähnlichen Problem.
Wie hast du das Ganze nun gelöst?
Ich muss jedoch zunächst nur Wirk / Blind und Scheinleistung aus dem 
Spannungs - und Stromverlauf berechnen....
Da scheint die Methode von Andreas R. recht simpel.
Funktioniert das auf diese Weise?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.