www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik PWM Tiefpass Restwelligkeit Berechnung


Autor: Klaus Albers (klaus-albers)
Datum:
Angehängte Dateien:

Habe mal ein paar Berechnungen zur PWM Restwelligkeit von passiven
RC-Filtern erster bis dritter Ordnung aufgestellt. Am Ende gibt's einen
Graphen, der bei der praktischen Auslegung eines Filters helfen kann.
Vielleicht hat ja mal jemand die Muße, da drüber zu schauen. Ist alles
nicht wirklich neu aber die Berechnungen habe ich in der Form im Netz
nicht gefunden, sind also zumindest "nice to know" und helfen unter
Umständen für eigene Berechnungen.


Cheers

Klaus
Autor: Yalu X. (yalu) (Moderator)
Datum:
Angehängte Dateien:

Hallo Klaus,

Schöne Darstellung!

Dein Artikel ergänzt sehr gut die folgenden Passagen in der Artikel-
sammlung:

Filterung mit RC-Tiefpass von Falk Brunner:
  Pulsweitenmodulation: RC-Filter dimensionieren

Filterung mit Cauer-Tiefpass von Christoph Kessler:
  AVR PWM: Tiefpassfilter-Berechnung

Vielleicht hast du ja Lust, deine Berechnungen dort ebenfalls zu
verewigen.

Noch eine kleine Anmerkung: Du hast der Einfachheit halber das Rechteck-
signal am Eingang des Filters auf dessen Grundton reduziert. Für den
Tiefpass 1. Ordnung ist es nicht schwer, auch die Oberschwingungen zu
berücksichtigen, wenn man mit der exponentiellen Lade- und Entladekurve
rechnet. Dann erhält man als Ripplespannung
U_{\mathrm ss}=U_0\cdot\tanh\frac 1{4\cdot R\cdot C\cdot f}

Für niedrige Frequenzen erhält man dadurch erwartungsgemäß einen Ripple
in der Höhe von U0 (bei dir sind es U0·4/π), für hohe Frequenzen einen
von U0/(4·R·C·f) (bei dir sind es 2·U0/(π²·R·C·f). Der Unterschied
spielt in der Praxis allerdings keine so große Rolle, da er sich unab-
hängig von der Frequenz immer innerhalb von ±25% bewegt.

Mit etwas mehr Aufwand lassen sich in ähnlicher Weise wahrscheinlich
auch die RC-Tiefpässe 2. und 3. Ordnung berechnen, hab's aber noch nicht
probiert.
Autor: Klaus Albers (klaus-albers)
Datum:
Angehängte Dateien:

Schön, so geht das natürlich viel besser, vielen Dank :-) Komme für den
Filter 1. Ordnung auf ungefähr das gleiche Ergebnis. Rechnung: Während
der Einschaltphase der PWM lade ich den Kondensator ausgehend von
Spannung U1 auf Spannung U2 auf, während der Entladephase entlädt sich
der Kondensator wieder auf U1. Im eingeschwungenen Zustand muss U1 am
Anfang und am Ende des Auf-/Entladezyklus identisch sein.

Gleichung für's Aufladen:
U_2=U_1+\left(U_0-U_1\right)\left(1-\mathrm{e}^{-\frac{2}{R\,C\,f_{pwm}}}\right)

Gleichung für's Entladen:
U_1=U_2\cdot\mathrm{e}^{-\frac{2}{R\,C\,f_{pwm}}}
\Rightarrow U_2=U_1\cdot\mathrm{e}^{\frac{2}{R\,C\,f_{pwm}}}

Um schneller zu tippen:
x=\frac{2}{R\,C\,f_{pwm}}

Beide Gleichungen für U2 gleichsetzen, dann nach U1 auflösen:
U_1=U_0\cdot\frac{1-\mathrm{e}^{-x}}{\mathrm{e}^x-\mathrm{e}^{-x}}

U2 berechnen:
U_2=U_1\cdot\mathrm{e}^x=U_0\cdot\frac{\mathrm{e}^x-1}{\mathrm{e}^x-\mathrm{e}^{-x}}

Spannungsdifferenz berechnen:
\Delta U_{ss}=U_2-U_1=U_0\cdot\frac{\mathrm{e}^x+\mathrm{e}^{-x}-2}{\mathrm{e}^x-\mathrm{e}^{-x}}=U_0\frac{2\cosh x-2}{2\sinh x}=\frac{U_0}{\tanh x}-\frac{U_0}{\sinh x}

Hab's noch nicht geprüft, aber der sinh-Term kann wahrscheinlich als
Null angenommen werden (vielleicht hab ich mich auch verrechnet?).

Das gleiche Verfahren sollte sich tatsächlich auch auf Tiefpässe höherer
Ordnung anwenden lassen, deren DC Verhalten ich zum Glück im PDF schon
berechnet habe :-) Mach mich da irgendwann diese Woche mal dran.

Wenn das alles fluppt, kann ich das schon in Kurzform in die
Artikelsammlung tippen. Erstmal schauen, ob da was Sinnvolles rauskommt.

Cheers

Klaus
Autor: Yalu X. (yalu) (Moderator)
Datum:

... und
\frac{U_0}{\tanh x}-\frac{U_0}{\sinh x}=U_0\tanh\frac x2

Du kommst leichter dahin, wenn du vor dem Ersetzen der Exponential-
durch Hyperbelfunktionen Zähler und Nenner des Bruchs mittels der
binomischen Formeln faktorisierst, wodurch der Bruch gekürzt werden
kann.

Allerdings ist
x=\frac 1{2R\,C\,f_\mathrm{PWM}}

(die 2 gehört in den Nenner). Dann kommt das Gleiche heraus wie bei mir.
Autor: Klaus Albers (klaus-albers)
Datum:

Yepp, hab's :-) Dann steht den höheren Ordnungen nichts mehr im Weg,
danke.
Autor: Klaus Albers (klaus-albers)
Datum:

So, für den Tiefpass 2. Ordnung müsste ich bis auf die finale
Vereinfachung soweit sein.

Aufladekurve:
U_{auf}(t)=U_0\left(1-\mathrm{e}^{-x}-\frac{x}{2}\mathrm{e}^{-x}\right)
Entladekurve:
U_{ent}(t)=-U_{auf}(t)+U_0=U_0\left(\mathrm{e}^{-x}+\frac{x}{2}\mathrm{e}^{-x}\right)
Damit rechnen für U1 und U2 wie oben:
U_2=U_1+(U_0-U_1)\left(1-\mathrm{e}^{-x}-\frac{x}{2}\mathrm{e}^{-x}\right)
U_1=U_2\left(\mathrm{e}^{-x}+\frac{x}{2}\mathrm{e}^{-x}\right)\Rightarrow U_2=U_1\frac{\mathrm{e}^x}{1+\frac{x}{2}}
Abkürzung:
a=1+\frac{x}{2}
\frac{\Delta U_{ss}}{U_0}=\frac{\frac{1}{a}\mathrm{e}^x+a\mathrm{e}^{-x}-2}{\frac{1}{a}\mathrm{e}^x-a\mathrm{e}^{-x}+1}=\frac{\mathrm{e}^x\mathrm{e}^{-\ln a}+\mathrm{e}^{-x}\mathrm{e}^{\ln a}-2}{\mathrm{e}^x\mathrm{e}^{-\ln a}-\mathrm{e}^{-x}\mathrm{e}^{\ln a}+1}=\frac{2\cosh\left(x-\ln a\right)-2}{2\sinh\left(x-\ln a\right)+1}

Das müsste jetzt noch über irgendeinen windigen Trick in einen tanh
transformiert werden. Bauchgefühl sagt mir was von Summe oder Produkt
aus zwei tanh, aber dafür würde ich wohl ein Weilchen brauchen.

Tiefpass 3. Ordnung sollte wohl auch noch gehen...
Autor: Klaus Albers (klaus-albers)
Datum:

Tiefpass 3. Ordnung liefert ein sehr ähnliches Ergebnis, spannend.

Aufladekurve:
U_{auf}(t)=U_0\left[1-\mathrm{e}^{-x}\left(1+x+\frac{1}{2}x^2\right)\right]=U_0\left[1-b\cdot\mathrm{e}^{-x}\right)
Vereinfachung:
b=1+x+\frac{1}{2}x^2
Entladekurve:
U_{ent}(t)=-U_{auf}(t)+U_0=U_0\cdot b\cdot\mathrm{e}^{-x}
Dann wieder wie oben zwei Gleichungen für U2 aufstellen und
gleichsetzen:
U_2=U_1+\left(U_0-U_1\right)\left(1-b\cdot\mathrm{e}^{-x}\right)
U_1=U_2\cdot b\cdot\mathrm{e}^{-x}\Rightarrow U_2=U_1\frac{1}{b}\mathrm{e}^x
\frac{\Delta U_{ss}}{U_0}=\frac{\frac{1}{b}\mathrm{e}^x+b\,\mathrm{e}^{-x}-2}{\frac{1}{b}\mathrm{e}^x-b\,\mathrm{e}^{-x}+1}=\frac{2\cosh\left(x-\ln b\right)-2}{2\sinh\left(x-\ln b\right)+1}

Wenn jetzt noch jemand mit viel Brain eine Vereinfachung für den letzten
Bruch finden würde wäre man wohl sehr schnell bei einer allgemeinen
Gleichung für die Restwelligkeit von passiven RC-Tiefpässen n-ter
Ordnung...
Autor: Kai Klaas (Gast)
Datum:

Nimms mir bitte nicht übel, aber bevor ich so eine Abhandlung
durcharbeiten würde, würde ich das viel lieber mit Tina-TI oder einem
ähnlichen Simulationsprogramm durchsimulieren.

Da habe ich jederzeit die Möglichkeit auch etwaige Abweichungen von
einer reinrassigen Filterschaltung oder den Standardgüten zu
berücksichtigen. Auch die Eigenschaften von realen Bauteilen (endlicher
Innenwiderstand von Treibern, parasitäre Serienwiderstände und
Induktivitäten von Elkos, etc.) lassen sich sehr realitätsnah
berücksichtigen.

Kai Klaas
Autor: Simon K. (simon) Benutzerseite
Datum:

Für eine schnelle Abschätzung sind doch so ein paar (unter Umständen
linearisierte bzw. angenäherte Formeln (wenn man den tanh, cosh oder
sinh noch irgendwie umbastelt) doch nett. Am besten wenn man die noch
"so halb" im Kopf überschlagen kann. In der Zeit wo das Filterprogramm
startet (bzw. möglicherweise vorher noch installiert) habe ich meinen
Taschenrechner schon gezückt und das Ergebnis erhalten.

Für genauere und "professionellere" Ergebnisse ist ein Filterprogramm
natürlich vorhanden und die bessere Wahl.
Autor: Falk Brunner (falk)
Datum:

@  Simon K. (simon) Benutzerseite

>Für eine schnelle Abschätzung sind doch so ein paar (unter Umständen
>linearisierte bzw. angenäherte Formeln

Dafür kann man es recht einfach hinschreiben.

Wenn die PWM-Frequenz mindestens 3x größer als die Tiefpassgrenzfrequenz
ist, was praktisch immer gilt, kann man Pi mal Daumen abschätzen.

Tiefpass Nter Ordnung mach N*20db/Dekade.

Die Dämpfung des Wechselanteils ist dann grob
D(dB)=1,3 \cdot N \cdot \frac{f_{PWM}}{10 \cdot f_{TP}}\cdot 20dB

Die 1,3 sind ein Korrekturfaktor, der empirisch aus einer Simulation
gewonnen wurde. Wer mit dB auf Kriegsfuss steht, kann es auch direkt
ausrechnen, die Wechselspannung wird dabei als Spitze-Spitze-Wert
abgeschätzt.
U_{AC}=\frac{U_{PWM}}{1,3 \cdot (\frac{f_{PWM}}{f_{TP}})^N}

MfG
Falk
Autor: Simon K. (simon) Benutzerseite
Datum:

@Falk: Wenn das tatsächlich so gut funktioniert: Nett!
Autor: Klaus Albers (klaus-albers)
Datum:

Naja, wenn man jeden Tag 1.5 Stunden im Zug verbringt braucht man
irgendeine "sinnvolle" Beschäftigung :-) Bin einfach neugierig, ob man
da eine handliche Gleichung rausbekommt. Außerdem kommen einem dabei
schnell weitere Ideen. Mir sagt mein "Bauchgefühl" zum Beispiel, daß für
eine wirklich saubere Filterung ein Energiespeicher mit 90°
Phasenversatz her muss. Vermutlich ist das der Grundgedanke eines RLC
Filters. ABER: Mein AVR hat 2 PWM Ausgänge, mit denen ich zwei 90°
versetzte PWM Signale erzeugen kann. Wenn ich die z. B. beide auf je
einen Tiefpassfilter gebe und dann addiere, sollte ich abhängig von der
Frequenz eine absolut saubere Spannung bekommen. Ist nur eine halbgare
Idee, vielleicht taugt das was. Mein grundsätzlicher Antrieb war
eigentlich, den einfachst möglichen DAC ohne DAC zu bauen, der noch
halbwegs gut rennt. Am liebsten noch direkt einen LM317 oder ähnliches
ansteuern und ohne OP auskommen. Aber das ist ein anderes Thema...

@Kai: Stimme Dir vollkommen zu. Der Grundgedanke der Rechnung war auch,
"andersrum" rechnen zu können, also "was brauche ich". Hab ehrlich
gesagt noch nie ein Filterprogramm benutzt, daher weiß ich nicht, ob die
sowas können. Komme eigentlich aus der Laser/Optik Richtung, da muss man
meistens SEHR genaue Vorstellungen haben, bevor man überhaupt anfängt zu
rechnen :-)

@Simon: So war's gedacht!

@Falk: Das sieht gut aus!

Ich schau mal der Vollständigkeit halber, ob ich die Gleichungen noch
irgendwie handlicher kriege, wenn jemand da eine Idee hat, wäre ich sehr
neugierig.

Cheers

Klaus
Autor: Klaus Albers (klaus-albers)
Datum:

Ähm, 180° meinte ich.
Autor: Kai Klaas (Gast)
Datum:
Angehängte Dateien:

>@Kai: Stimme Dir vollkommen zu. Der Grundgedanke der Rechnung war auch,
>"andersrum" rechnen zu können, also "was brauche ich". Hab ehrlich
>gesagt noch nie ein Filterprogramm benutzt, daher weiß ich nicht, ob die
>sowas können.

Was ich meinte ist nicht ein gewöhnliches Filterprogramm, sondern ein
Simulationsprogramm a la Spice.

Im Anhang habe ich die Situation für R x C x fpwm = 1 also fpwm = 3030Hz
gezeigt. Das erste Bild ist ohne Kursor, das zweite mit und das dritte
zeigt das Einschwingverhalten.

Danach die Situation für ein 5-poliges Filter.

Danach die Situation für ein hinsichtlich Ripple und Einschwingen
optimiertes 5-poliges Filter mit unterschiedlichen Bauteilewerten aber
gleichen Zeitkonstanten.

Die Eingabe der Schaltung und die Anzeige der Resultate ist eine Frage
von nur wenigen Minuten bei "Tina-TI".

Kai Klaas
Autor: Kai Klaas (Gast)
Datum:

>Danach die Situation für ein hinsichtlich Ripple und Einschwingen
>optimiertes 5-poliges Filter mit unterschiedlichen Bauteilewerten aber
>gleichen Zeitkonstanten.

Korrektur: Optimiert ist nur das Einschwingen, der Ripple ist
geringfügig größer.

Kai Klaas

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net