Forum: Mikrocontroller und Digitale Elektronik Wie mache ich einen PWM-Filter richtig


von Michael S. (rbs_phoenix)


Lesenswert?

Hallo zusammen.
Ich habe letzte Woche angefangen, mich mal mit der DC-Spannungserzeugung 
durch ein PWM-Signal zu befassen. Dazu hab ich u.a. auch diesen 
Teil-Artikel gelesen:
http://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM

Die Ursache vom Ripple und dessen Berechnung ist dort meiner Meinung 
nach gut beschrieben, was mir jedoch nicht ganz in den Kopf will ist die 
Verwendung und Berechnung vom Filter.

Zuerst hab ich mir gedacht, dass es ja logisch ist, einen Tiefpass zu 
benutzen. Ich will ja am Ende eine Gleichspannung haben, die ja 
theoretisch 0Hz hat. Doch dann fängt es schon an. Wo soll die 
Grenzfrequenz sein? Im Artikel stand einmal was von 70Hz bei einer PWM 
von ~3-4kHz und später ein Filter 2ter Ordnung (um den Ripple zu 
eliminieren!?) mit einer Grenzfrequenz von 72Hz, wobei hier die 
PWM-Frequenz 100Hz war. Die Komponenten zu berechnen stell ich mir 
ansich nicht so schwer vor, doch dazu muss ich ja erstmal eine Frequenz 
festlegen. Wieso 70Hz und nicht 60Hz oder 80Hz? Warum nicht so niedrig 
wie möglich (1-3Hz), da die Gleichspannung ja 0Hz hat und ich da eh nie 
hinkomme? Oder ist es relativ egal, solange die Frequenz nicht zu hoch 
wird und Oberwellen oder sonstwas kommt?
Ich hab solange überlegt, bis mir dann auch noch die letzte E-Technik 
Vorlesung in den Kopf kam: Ein Rechteck ist laut Fourier eine Addition 
von unendlich vielen Sinus-Schwingungen, wobei die niedrigste Frequenz 
die Periodendauer des Ursprungssignals hat. Sprich: Hab ich eine 50%-PWM 
mit f_pwm von 100Hz, ist die kleinste Sinus-Frequenz 100Hz. Was bringt 
dann ein Tiefpass bei 70Hz, wenn dort eh kein Signal ist?
Ich glaub durch mein ganzes Grübeln hab ich mich selbst verwirrt. Mir 
wär denke ich schon sehr geholfen, wenn mir jemand oben stehende Fragen 
beantworten kann.
Ich habe mit LTSpice auch die Schaltung mit dem Filter 2ter Ordnung 
Simuliert. Jedoch kam bei mir mit 100Hz ein Signal raus, das einen 
Ripple von knapp 2V (bei 5V-PWM / 50%) hatte. Mit einem R2R-OPV am Ende 
und 10kHz PWM funktioniert alles gut.

Doch dann kamen mir noch 2 Fragen. Ich hab bei Wikipedia gelesen, dass 
sich die Grenzfrequenz eines Filters n-ter Ordnung (logischer Weise) 
nicht so berechnen lässt, wie bei einem Filter 1. Ordnung. Ich hab bei 
Google gesucht und die Formel 1/(2*pi*wurzel(R1*C1*R2*C2)) gefunden. 
Doch wenn ich danach die Grenzfrequenz vom Filter aus dem Artikel 
berechne, komme ich auf ca 230Hz und nicht auf 72Hz. Ist das richtig und 
im Artikel steht es falsch oder ist die Formel falsch?
Die 2. Frage: Wie wirken sich eigentlich die Toleranzen von den 
Widerständen und Kondensatoren auf die Spannung aus, die am Ende 
rauskommt? Mit diesen Werten berechne ich ja schließlich nur die 
Grenzfrequenz, die dann so ungenau wie die Bauteile ist. Doch 50% von 5V 
sind ja 2.5V, das ist ja den Bauteilen egal.


Vielen Dank schonmal im Vorraus.

von Falk B. (falk)


Lesenswert?

@  Michael Skropski (rbs_phoenix)

>ansich nicht so schwer vor, doch dazu muss ich ja erstmal eine Frequenz
>festlegen. Wieso 70Hz und nicht 60Hz oder 80Hz? Warum nicht so niedrig
>wie möglich (1-3Hz), da die Gleichspannung ja 0Hz hat und ich da eh nie
>hinkomme?

Eben weil man die Gleichspannung je nach Anwendung möglichst schnell 
verändern will. Wenn dir 3 Hz reichen, OK. Aber wenn man damit was 
schnelles steurn will, braucht man mehr. Bestes Beispiel ist 
Audioausgabe mit Klasse-D Verstärker, was ja eine PWM ist. Dort will man 
Pi mal Daumen 20khz Bandbreite.

>mit f_pwm von 100Hz, ist die kleinste Sinus-Frequenz 100Hz. Was bringt
>dann ein Tiefpass bei 70Hz, wenn dort eh kein Signal ist?

Er fängt dort an, langsam zu dämpfen. Einen Filter, der nur einzelne 
Frequenzen dämpft gibt es auch, ist hier aber nicht sinnvoll.


>Ich habe mit LTSpice auch die Schaltung mit dem Filter 2ter Ordnung
>Simuliert.

Mit welcher Grenzfrequenz?

> Jedoch kam bei mir mit 100Hz ein Signal raus, das einen
>Ripple von knapp 2V (bei 5V-PWM / 50%) hatte.

Kann sein.

> Mit einem R2R-OPV am Ende
> und 10kHz PWM funktioniert alles gut.

Schön.

>Doch dann kamen mir noch 2 Fragen. Ich hab bei Wikipedia gelesen, dass
>sich die Grenzfrequenz eines Filters n-ter Ordnung (logischer Weise)
>nicht so berechnen lässt, wie bei einem Filter 1. Ordnung.

Ist auch so.

> Ich hab bei
>Google gesucht und die Formel 1/(2*pi*wurzel(R1*C1*R2*C2)) gefunden.

Sie ist in diesem Fall falsch.

>Doch wenn ich danach die Grenzfrequenz vom Filter aus dem Artikel
>berechne, komme ich auf ca 230Hz und nicht auf 72Hz. Ist das richtig und
>im Artikel steht es falsch oder ist die Formel falsch?

Die 72 Hz wurden simuliert, dem Ergebnis trau ich eher als der öminösen 
Formel.

>Die 2. Frage: Wie wirken sich eigentlich die Toleranzen von den
>Widerständen und Kondensatoren auf die Spannung aus, die am Ende
>rauskommt?

Wenn der Filterausgang durch einen OPV entkoppelt wird, fast gar nicht.

von Nachtaktiver (Gast)


Lesenswert?

Um dir ein wenig auf die Sprünge zu helfen:

Ein einfacher Tiefpass 1.Ordnung hat eine Dämpfung von 20db/Dekade ab 
seiner Grenzfreqeunz. Da deine Filter nicht unendlich steil sind, wählt 
man die Grenzfreqeunz so tief, sodass der Filter bei der Grundfeqeunzes 
deines Pulswellenmoduliertes Rechtecksignal bereit eine große Dämpfung 
aufweist, die höheren Oberwellen werden noch stärker bedämpft.


Ein passiver Filter ist nicht wirklich belastbar und sollte besser mit 
einen Operationsverstärker entkoppelt werden. Z.B die Grenzfreqeunz 
eines Tiefpasses 2.Ordnung kann man ganz einfach bestimmen, inden man 2 
Tiefpasse erster Ordnung hintereinanderschaltet inden man diese mit 
Hilfe eines Operationsverstärkes entkoppelt. (Spannungsfolger)

von Nachtaktiver (Gast)


Lesenswert?

Nachtrag:
Was ich auf der schnelle vergessen habe:
Wie Falk schon sagte, je tiefer deine Grenzfrqeunz ist umso besser wird 
dein Wechselanteil bedämpft, aber dafür opfert man Bandbreite da das 
Filter eine gewisse Einschwingzeit hat.

Durch Filter höhere Ordnung kann man die Grenzfreqeunz erhöhen, und hat 
gleichzeitig eine höhere Bandbreite. (Und mehr Aufwand :>)

von Al3ko -. (al3ko)


Lesenswert?

Hi,

ich möchte mich auch mal einklinken:
Wie entkoppelt man den Tiefpass mit einem Operationsverstärker?

Ich kenne Tiefpassschaltungen, die mit einem OP realisiert werden. 
Standardschaltung ist ja hier:
http://www.loetstelle.net/content/grundlagen/operationsverstaerker/images/integrierer.gif
(Quelle: www.loetstelle.net)

Wenn du, Nachtaktiv, Spannungsfolger sagst, meinst du einfach ihn hier:
http://www.mikrocontroller.net/wikifiles/1/10/Op-spannungsfolger2.png

Soll heißen, man hat sein RC Glied wie gehabt und packt einfach den OP 
hinten dran.

Gut zu wissen :)

Gruß

von Michael S. (rbs_phoenix)


Lesenswert?

Falk Brunner schrieb:
> Eben weil man die Gleichspannung je nach Anwendung möglichst schnell
> verändern will. Wenn dir 3 Hz reichen, OK. Aber wenn man damit was
> schnelles steurn will, braucht man mehr. Bestes Beispiel ist
> Audioausgabe mit Klasse-D Verstärker, was ja eine PWM ist. Dort will man
> Pi mal Daumen 20khz Bandbreite.

Ok, das leuchtet ein.


Falk Brunner schrieb:
> Er fängt dort an, langsam zu dämpfen. Einen Filter, der nur einzelne
> Frequenzen dämpft gibt es auch, ist hier aber nicht sinnvoll.

Ich glaub, das was ich meine ist nicht richtig rüber gekommen. Ich 
meine, wenn man bei einer PWM-Frequenz von 100Hz einen Filter 
hinterschaltet, der eine Grenzfrequenz von 70Hz hat (also bei 70Hz eine 
Dämpfung von 3dB), wird die Sinuswelle bei 100Hz deutlich mehr gedämpft. 
Und die Oberwellen noch mehr. Nach meiner groben und offensichtlich 
falschen Überlegung müsste dahinter doch ein Sinusförmiges Signal 
rauskommen. Es entstehen Sinuswellen bei 100Hz, 300Hz, 500Hz, usw.. Doch 
je höher die Frequenzen sind, desto mehr werden sie gedämpft, so dass 
ansich nur die ersten paar noch erkennbar sind. Doch wo kommt dann die 
Gleichspannung her, wenn doch das Signal mit der geringsten Frequenz die 
100Hz-Sinuswelle ist?


Falk Brunner schrieb:
> Die 72 Hz wurden simuliert, dem Ergebnis trau ich eher als der öminösen
> Formel.

Ich ansich ja auch. Nur dachte ich, "muss" es doch für einen Filter 2. 
Ordnung auch eine Formel geben.


Nachtaktiver schrieb:
> Z.B die Grenzfreqeunz
> eines Tiefpasses 2.Ordnung kann man ganz einfach bestimmen, inden man 2
> Tiefpasse erster Ordnung hintereinanderschaltet inden man diese mit
> Hilfe eines Operationsverstärkes entkoppelt.

Doch wie? Für einen Tiefpass erster Ordnung ist die Formel ja 
1/(2*pi*R*C). Einfach Addieren oder so kann ich ja nicht. Und ich denke 
an der Stelle ist der OPV auch erstmal egal, oder?

von Falk B. (falk)


Lesenswert?

@  Michael Skropski (rbs_phoenix)

>meine, wenn man bei einer PWM-Frequenz von 100Hz einen Filter
>hinterschaltet, der eine Grenzfrequenz von 70Hz hat (also bei 70Hz eine
>Dämpfung von 3dB), wird die Sinuswelle bei 100Hz deutlich mehr gedämpft.

Nö, das passiert fast gar nichts. Deine 100 Hz Grundwele wird nur um 
weng mehr als 3dB gedämpft, hat also noch 70% Amplitude (Filter 1. 
Ordnung)

>Und die Oberwellen noch mehr.

Die erste kommt bei 200 Hz, da passiert auch nicht viel mehr, sagen wir 
4dB. Hast du doch selber simuliert.

> Nach meiner groben und offensichtlich
>falschen Überlegung müsste dahinter doch ein Sinusförmiges Signal
>rauskommen.

Wie denn?

> Es entstehen Sinuswellen bei 100Hz, 300Hz, 500Hz, usw.. Doch

Du vergisst die geradzahligen Vielfachen, die gibt es sehr wohl auch. 
Nur im Sonderfall von 50% Tastverhältnis verschwinden sie.

>je höher die Frequenzen sind, desto mehr werden sie gedämpft,

Prinzipiell ja, aber soooo schnell steigt die Dämpfung nicht an. Ein 
Tiefpass 1. Ordnung macht 20dB/Dekade. Sprich die 10fache Frequenz, hier 
700 Hz, wird nur um Faktor 10 gedämpft. Ist nicht sooo viel.

>ansich nur die ersten paar noch erkennbar sind. Doch wo kommt dann die
>Gleichspannung her, wenn doch das Signal mit der geringsten Frequenz die
>100Hz-Sinuswelle ist?

Das ist der arithmetische Mittelwert.

>Ich ansich ja auch. Nur dachte ich, "muss" es doch für einen Filter 2.
>Ordnung auch eine Formel geben.

Gibt es schon, wenn gleich komplizierter.

>Doch wie? Für einen Tiefpass erster Ordnung ist die Formel ja
>1/(2*pi*R*C). Einfach Addieren oder so kann ich ja nicht.

Jain. Wenn die beiden Filter durch einen OPV entkoppelt sind, kann man 
die Grenzfrequenzen bzw. Zeitkonstanten geometrisch addieren.

Wenn beide Stufen gleich sind, kommt da was mit 0,7 als Faktor raus.

> Und ich denke
> an der Stelle ist der OPV auch erstmal egal, oder?

Man kann auch passive Filter N. Ordnung ohne OPVs bauen. Dazu nimmt man 
sinnvollerweise die Tabellen und Dimensionierungsempfehlungen, die 
schlaue Leute vor vielen Jahrzehnten entwickelt haben.

MFG
Falk

von Nachtaktiver (Gast)


Lesenswert?

>Doch wie? Für einen Tiefpass erster Ordnung ist die Formel ja
>1/(2*pi*R*C). Einfach Addieren oder so kann ich ja nicht. Und ich denke
>an der Stelle ist der OPV auch erstmal egal, oder?

Wenn du beiden entkoppelten Filter die gleiche Grenzfreqeunz haben, 
bleibt die Grenzfreqeunz enthalten, aber die Dämpfung erhöht sich von 
-20dB/Dekade auf -40dB/Dekade.

Wenn du dann einen Operationsverstärker einsetzt, kannst du auch gleich 
darüber nachdenken einen Aktiven Filter einzusetzen. :>

von Falk B. (falk)


Lesenswert?

@  Nachtaktiver (Gast)

>Wenn du beiden entkoppelten Filter die gleiche Grenzfreqeunz haben,
>bleibt die Grenzfreqeunz enthalten,

Nein, man hat an Stelle der 3dB Frequenz schon 6dB.

> aber die Dämpfung erhöht sich von -20dB/Dekade auf -40dB/Dekade.

Das auch.

von Henrik Haftmann (Gast)


Lesenswert?

Grundsätzlich wählt man die PWM-Frequenz wesentlich (Faustregel: 10× 
und mehr) höher als die maximal auszugebende (Ton-)Frequenz, wenn man's 
glätten muss.

Dafür bieten sich die High-Speed-PWM-Timer der ATtinyX5, ATtinyX61 und 
ATmega32U4 an, die mit immerhin 64 MHz getaktet werden dürfen und bei 8 
Bit Auflösung 250 kHz und bei 10 Bit Auflösung (nicht ATtinyX5) noch 
62,5 kHz schaffen. (X = 2, 4 oder 8 = Kilobyte Flash-Programmspeicher)

Besser als jeder Tiefpass filtert ein Kerbfilter (Bandsperre) aus L und 
C: In Reihe zum R des gewöhnlichen RC-Tiefpasses bewirkt so ein 
Kerbfilter geradezu Wunder, besonders wenn man L oder C abgleichen kann. 
Denn während ein RC-Tiefpass mickrige 6 dB/Ordnung/Oktave schafft, 
schafft ein einziger Parallelschwingkeis 40..60 dB Dämpfung, je nach 
Güte von (vor allem) L.

Also: Keine Angst vor Spulen im Zusammenhang mit PWM! Jede OPV-Schaltung 
ist komplizierter.

Ganz nebenbei spart die Bandsperre Energie, die nicht mehr im Widerstand 
verheizt werden muss: Der Blindwiderstand ist für die PWM-Frequenz, dem 
Hauptanteil der Wechselstromleistung, maximal.

L und C des Schwingkeises dimensioniert man so, dass Z=√L/C dem 
Lastwiderstand || Blindwiderstand von C(TP) entspricht.

Der verbleibende Tiefpass muss dann bloß noch die ungeraden Vielfachen 
der PWM-Frequenz filtern.

Beitrag #5955576 wurde von einem Moderator gelöscht.
Beitrag #5955851 wurde von einem Moderator gelöscht.
von flomann (Gast)


Lesenswert?

Henrik Haftmann schrieb:
> Besser als jeder Tiefpass filtert ein Kerbfilter (Bandsperre) aus L und
> C: In Reihe zum R des gewöhnlichen RC-Tiefpasses bewirkt so ein
> Kerbfilter geradezu Wunder, besonders wenn man L oder C abgleichen kann.
> Denn während ein RC-Tiefpass mickrige 6 dB/Ordnung/Oktave schafft,
> schafft ein einziger Parallelschwingkeis 40..60 dB Dämpfung, je nach
> Güte von (vor allem) L.
>
Was in diesem Fall hier mit Wunsch nach 'DC' nicht wirklich 
funktioniert.

von flomann (Gast)


Lesenswert?

Ich denke ich habe
"aus L und C: In Reihe zum R des gewöhnlichen RC-Tiefpasses " anders 
interpretiert
als du es gemeint hast... dann okay

von Kriseninterventionsspezialist (Gast)


Lesenswert?

Selbst 16 bit Wandler (PT8211) kosten nur ein paar Cent.
Warum sollte man da mit PWM herummurksen.

PWM ist für Omas Heizkissen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.