Wie bestimmen Sie die RC-Zeitkonstante im PWM-Digital-Analog-Tiefpassfilter?

Ich suche nach der besten RC-Zeitkonstante und ihrem Grund in einer PWM, digitale Signale basierend auf Arbeitszyklus und Frequenz und anderen Parametern in analoge umzuwandeln. Die PWM-Frequenz beträgt 10 kHz.

Ich suche nach den Gleichungen, um dies zu lösen und die Menge von Rc basierend auf Arbeitszyklus und Frequenz und anderen Parametern zu bestimmen. ich schätze es, wenn mir jemand helfen könnte

Antworten (5)

Der beste RC ist unendlich, dann haben Sie einen perfekt welligkeitsfreien DC-Ausgang. Das Problem ist, dass es auch ewig dauert, auf Änderungen im Arbeitszyklus zu reagieren. Es ist also immer ein Kompromiss.

Ein RC-Filter erster Ordnung hat eine Grenzfrequenz von

f c = 1 2 π R C

und einem Abfall von 6 dB/Oktave = 20 dB/Dekade. Das Diagramm zeigt den Frequenzverlauf für eine Grenzfrequenz von 0,1 Hz (blau), 1 Hz (lila) und 10 Hz (die andere Farbe).

Geben Sie hier die Bildbeschreibung ein

Wir können also sehen, dass für das 0,1-Hz-Filter die 10-kHz-Grundwelle des PWM-Signals um 100 dB unterdrückt wird, das ist nicht schlecht; Dies ergibt eine sehr geringe Welligkeit. Aber!

Geben Sie hier die Bildbeschreibung ein

Diese Grafik zeigt die Sprungantwort für die drei Grenzfrequenzen. Eine Änderung des Arbeitszyklus ist ein Schritt im DC-Pegel und einige Verschiebungen in den Harmonischen des 10-kHz-Signals. Die Kurve mit der besten 10-kHz-Unterdrückung reagiert am langsamsten, die x-Achse sind Sekunden.

Geben Sie hier die Bildbeschreibung ein

Dieses Diagramm zeigt die Reaktion einer RC-Zeit von 30 µs (Grenzfrequenz 5 kHz) für ein 10-kHz-Signal mit 50 % Tastverhältnis. Es gibt eine enorme Welligkeit, aber es reagiert auf die Änderung von 0 % Arbeitszyklus in 2 Perioden oder 200 µs.

Geben Sie hier die Bildbeschreibung ein

Dies ist eine RC-Zeit von 300 µs (Grenzfrequenz 500 Hz). Immer noch etwas Welligkeit, aber das Wechseln von 0 % auf 50 % Arbeitszyklus dauert etwa 10 Perioden oder 1 ms.

Eine weitere Erhöhung von RC auf Millisekunden verringert die Welligkeit weiter und erhöht die Reaktionszeit. Es hängt alles davon ab, wie viel Welligkeit Sie sich leisten können und wie schnell der Filter auf Änderungen des Arbeitszyklus reagieren soll.

Diese Webseite berechnet, dass wir für R = 16 kΩ und C = 1 µF eine Grenzfrequenz von 10 Hz, eine Einschwingzeit auf 90 % von 37 ms für eine Spitze-zu-Spitze-Welligkeit von 8 mV bei maximal 5 V haben.

Bearbeiten
Sie können Ihren Filter verbessern, indem Sie zu höheren Ordnungen gehen:

Geben Sie hier die Bildbeschreibung ein

Die blaue Kurve war ein einfacher RC-Filter mit einem Abfall von 20 dB/Dekade. Ein Filter zweiter Ordnung (lila) hat einen Abfall von 40 dB/Dekade, sodass bei gleicher Grenzfrequenz eine Unterdrückung von 120 dB bei 10 kHz statt 60 dB vorhanden ist. Diese Diagramme sind ziemlich ideal und können am besten mit aktiven Filtern wie einem Sallen-Key erreicht werden.

Geben Sie hier die Bildbeschreibung ein

Gleichungen

Spitze-zu-Spitze-Brummspannung für ein RC-Filter erster Ordnung als Funktion der PWM-Frequenz und der RC-Zeitkonstante:

v r ich p p l e = e d f P W M R C ( e 1 f P W M R C e d f P W M R C ) ( 1 e d f P W M R C ) 1 e 1 f P W M R C v +

E&OE. "d" ist das Tastverhältnis, 0..1. Die Welligkeit ist am größten für d = 0,5.

Sprungantwort auf 99 % des Endwertes ist 5 x RC.

Grenzfrequenz für das Sallen-Key-Filter:

f c = 1 2 π R 1   R 2   C 1   C 2

Für einen Butterworth-Filter (maximal flach): R1 = R2, C1 = C2

Hallo tnx für Ihre Antwort. Ich suche nach den Gleichungen, um dies zu lösen und die Menge an Rc basierend auf Arbeitszyklus und Frequenz und anderen Parametern zu bestimmen. ich schätze es, wenn mir jemand helfen könnte
Schöne Grafiken! Welche Software hast du verwendet?
@m.Alin - 1, 2 und 5: Mathematica, 3 und 4: einige alte Sachen, die ich einmal in Excel gemacht habe.
tnx viel für Ihre Antwort. es war sehr nützlich
@m.Alin - All Mathematica (ich habe die Excel-Bilder ersetzt)
Sie sehen sehr gepflegt aus. Ich wünschte, Matlab hätte so schöne Grafiken.
@m.Alin - Ich wünschte, Scilab hätte es auch getan - die sind wirklich sehr nett. Steven hat immer die besten Antworten :-)
@Oli und m.Alin - Ich habe erstaunliche Dinge gesehen, die man mit Mathematica machen kann. Es ist absolut ein großartiges Paket, nicht nur für mathematische Analysen. Ich habe dieses Bild , erstellt mit Mathematica, hier gefunden . Das ist auch schön. :-)
@m.Alin - siehe mein Kommentar 2 cm höher :-)
Das ist Magie! :-)
@Steven - das sind coole Sachen, muss ich irgendwann mal ausprobieren.

Wie Steven sagte, ist es ein Kompromiss zwischen der Dämpfung der PWM-Frequenz und der Reaktionszeit. Aus diesem Grund muss jede solche Entscheidung mit einer Spezifikation dessen beginnen, was Sie von dem resultierenden analogen Signal erwarten. Welches Signal-Rausch-Verhältnis muss es sein oder wie viel Rauschen bei der PWM-Frequenz können Sie zumindest tolerieren? Wie schnell muss es sich auf das Grundrauschen einpendeln? Oder umgekehrt, was ist die obere Frequenz, die Ihnen wichtig ist?

Beachten Sie, dass es möglicherweise nicht möglich ist, einen bestimmten Satz von Kriterien mit einem bestimmten PWM-Ausgang zu erfüllen. Angenommen, Sie wollten eine qualitativ hochwertige Sprachausgabe. Wir sagen, das sind bis zu 8 kHz und 60 dB Signal-Rausch-Verhältnis. Das wird mit keinem vernünftig handhabbaren Analogfilter mit 20-kHz-PWM passieren, und schon gar nicht mit etwas so Einfachem wie einem einzelnen R und C.

Lassen Sie uns als Beispiel rückwärts arbeiten und sehen, wie die PWM-Charakteristiken aussehen müssten, um das obige Sprachbeispiel mit einem einzelnen R, C-Filter zu unterstützen. Wir haben bereits gesagt, dass die -3-dB-Rolloff-Frequenz 8 kHz beträgt, also haben wir R und C darauf eingestellt. Die Rolloff-Frequenz eines einzelnen R,C-Filters ist:

  F = 1 / (2π RC)

Wenn R in Ohm, C in Farad und F in Hertz ist. Es sollte offensichtlich sein, dass diese Gleichung neu geordnet werden kann, um für jedes von R, C oder F zu lösen, wenn die anderen beiden gegeben sind. Ich halte 1/(2 π) = 0,15915 immer in einem Register in meinem Taschenrechner, weil diese Berechnung regelmäßig in der Elektronik vorkommt. Dann teile ich das einfach durch zwei von R, C oder F, um den dritten zu erhalten.

Wir haben zwei Freiheitsgrade und die obige Gleichung nagelt nur einen davon fest. Die andere kann man sich als die Impedanz vorstellen, die das resultierende Signal haben soll. Lassen Sie uns auf etwa 10 kΩ schießen, was wir aus R machen, nur um zu sehen, was C herauskommt:

  1 / (2 π 8kHz 10kΩ) = 1,99 nF

Das ist im Grunde der Standardkondensatorwert von 2 nF, also bleiben wir einfach dabei. Wenn es keinen gemeinsamen Wert ergeben hätte, hätten wir einen nahen Wert ausgewählt, wären dann zurückgegangen und hätten R entsprechend angepasst. Widerstände sind in viel feineren Variationen und mit höheren Toleranzen als gewöhnliche Kondensatoren erhältlich, sodass Sie normalerweise einen nahen Kondensatorwert finden und diesen dann den genauen Widerstandswert treiben lassen.

Wir haben uns also auf R = 10 kΩ und C = 2 nF festgelegt. Beachten Sie, dass dies von der 8-kHz-Oberfrequenzanforderung herrührt. Wir müssen keine weiteren Entscheidungen treffen, also werden die Einschwingzeit und das Signal-Rausch-Verhältnis so sein, wie sie sein werden. Alles, was wir jetzt tun können, ist festzustellen, ob es gut genug ist, oder umgekehrt, welche PWM-Eigenschaften erforderlich wären, um die Spezifikationen des Ausgangssignals zu unterstützen.

Da die Spezifikation ein Signal-Rausch-Verhältnis von 60 dB war, bedeutet dies, dass das Rauschen weniger als 1 Teil von 1000 der Spannung betragen muss, was bedeutet, dass die PWM-Frequenz um diesen Betrag gedämpft werden muss. Ein einzelnes RC-Filter dämpft nach der Rolloff-Frequenz umgekehrt proportional zur Frequenz. Dies ist eine Annäherung, die in der Nähe der Rolloff-Frequenz und darunter bricht, aber in den meisten Fällen nach ein oder zwei Oktaven nach der Rollof-Frequenz gut genug ist. Mit anderen Worten, 16 kHz werden mit einem gewissen Fehler um 2 gedämpft, 32 kHz mit weniger Fehler um 4, und danach können Sie die interessierende Frequenz so ziemlich einfach durch die Rolloff-Frequenz teilen, um eine Dämpfung zu erhalten. Wir möchten, dass die PWM-Frequenz um 1000 gedämpft wird, was bedeutet, dass sie 8 MHz oder höher sein muss. Das ist hoch, aber mit einigen Prozessoren machbar. Zum Beispiel,

Schauen wir uns nun die PWM-Auflösung an. Auch dies wird durch die 60-dB-Signal-Rausch-Spezifikation angetrieben, von der wir wissen, dass sie bereits 1: 1000 bedeutet. Das würde eine PWM-Auflösung von mindestens 999 erfordern (Sie erhalten immer eine Ausgangsstufe mehr als die PWM-Auflösung). Das bedeutet, dass der interne PWM-Slice-Takt das 999-fache der 8-MHz-PWM-Ausgangsfrequenz oder im Wesentlichen 8 GHz betragen muss. Mit halbwegs handelsüblichen Teilen passiert das nicht.

Es gibt jedoch eine Möglichkeit, diese Einschränkungen zu umgehen, und zwar die Verwendung von mehr als nur einem einzigen R,C-Filter. Wenn ich ein schönes analoges Signal haben möchte, verwende ich normalerweise zwei oder drei davon nacheinander. Mal sehen, wie die Verwendung von drei aufeinanderfolgenden R, C-Filtern die Dinge ändert.

Wir sagten ursprünglich, unsere interessierende obere Frequenz sei 8 kHz, was impliziert, dass wir es tolerieren können, dass sie um 3 dB niedriger ist, sofern wir nichts anderes sagen. Ein einzelnes R,C-Filter dämpft bei der Rolloff-Frequenz um 3 dB, also setzen wir es auf 8 kHz. Wir können nicht drei Filter bei 8 kHz haben, da sie dort zusammen um 9 dB dämpfen würden. Also verschieben wir die Filter um die Anzahl der Pole (in diesem Fall separate R, C-Filter).

Die drei R,C-Filter (drei Pole) liegen also bei 24 kHz. Es scheint, als hätten wir dabei an Boden verloren, aber der große Vorteil ist, dass die darüber liegenden Frequenzen jetzt durch das Verhältnis in der Kubikzahl gedämpft werden, anstatt nur durch das Verhältnis wie bei einem einzelnen Pol. Auch hier möchten wir, dass die PWM-Frequenz um 1000 gedämpft wird, was 10 ^ 3 entspricht, sodass wir nur 10x über den Filter-Rolloff-Frequenzen liegen müssen, was bedeutet, dass 240 kHz hoch genug sind. Das ist ein großer Unterschied zu 8 MHz. Jetzt muss der interne PWM-Takt oder die PWM-Slice-Frequenz nur noch 240 MHz betragen. Das ist immer noch hoch, aber erreichbar.

Hoffentlich hat Ihnen dies einen Einblick in die Probleme gegeben. Wenn Sie konkrete Spezifikationen angeben, können wir spezifische Werte für Ihren Fall durcharbeiten.

Hallo tnx für Ihre Antwort. Ich suche nach den Gleichungen, um dies zu lösen und die Menge an Rc basierend auf Arbeitszyklus und Frequenz und anderen Parametern zu bestimmen. ich schätze es, wenn mir jemand helfen könnte
@azin: Das Tastverhältnis hat damit nichts zu tun, aber die PWM-Frequenz, wie ich in meiner Antwort ausführlich beschrieben habe.

Es ist möglich, die Leistung gegenüber einem einzelnen RC zu verbessern, indem kaskadierte RC-Stufen verwendet werden. Man kann mit einem reinen mehrstufigen passiven RC-Filter keine so gute Leistung erzielen wie mit aktiven Filtern, aber die Leistung kann dennoch besser sein als mit einer einzelnen Stufe. Leider kenne ich keine besonders guten Methoden zur Berechnung optimaler RC-Werte.

Eine weitere zu beachtende Sache ist, dass die Pulsweitenmodulation zwar die häufigste Form der Tastgradmodulation ist, aber nicht die einzige. Ein einfacher Ansatz, der in Fällen sehr nützlich sein kann, in denen sich die Zielausgangsspannung nicht zu oft ändert und der Ausgang eher in der Mitte des Bereichs als an den Rändern liegt, besteht darin, einen Satz von Signalen zu erzeugen durch Berechnen (aktueller Zählerwert "und nicht" vorheriger Zählerwert) und UND-Verknüpfung dieses Signals mit den Bits des gewünschten Datenwerts in umgekehrter Reihenfolge (so dass das MSB des Datenwerts mit dem xor des aktuellen Zählers UND-verknüpft wird LSB und das vorherige). Die Verwendung eines solchen Ansatzes mit z. B. 6-Bit-Tastverhältnismodulation würde bedeuten, dass eine 32/64-Tastverhältniswelle durch eine Frequenz von der Hälfte des PWM-Takts dargestellt wird. anstelle einer Rechteckwelle mit einer Frequenz von 1/64 des PWM-Takts. Ein 33/64-Tastverhältnis würde hauptsächlich durch eine Frequenz von der Hälfte des PWM-Takts dargestellt, jedoch mit einigen extra hohen Impulsen.

Hier ist eine Demo von dem, worüber ich spreche.

Hallo tnx für Ihre Antwort. Ich suche nach den Gleichungen, um dies zu lösen und die Menge an Rc basierend auf Arbeitszyklus und Frequenz und anderen Parametern zu bestimmen. ich schätze es, wenn mir jemand helfen könnte
@supercat - Ihre Antwort scheint eine Technik zu beschreiben, die die Gesamteigenschaften aufweist, über die ich nachgedacht und gesucht habe (viel höhere Frequenz als eine Basis-PWM-Frequenz). Kennen Sie den Namen dieser Technik?
@gbulmer: Ich kenne keinen Namen für den Ansatz, aber er kann im Design des CD4089 beobachtet werden (siehe ti.com/lit/ds/symlink/cd4089b.pdf für das Datenblatt).

Alle bisher gegebenen großartigen Antworten, gut geschrieben und relevant, aber oft braucht die beste Antwort eine bessere Frage.

Welche Annahmen müssen für jedes Design berücksichtigt werden, wenn Sie die „beste RC-Menge“ betrachten?

  1. Was ist die Impedanz des Filters im Verhältnis zur Impedanz von Quelle und Last?

    Wenn nicht kritisch, wählen Sie R zwischen Quelle und Last. Aber sagen wir, wenn der CMOS-Treiber einen Wert von 10 bis 100 Ω hat und die Last 100 kΩ beträgt, Sie aber eine Genauigkeit von 0,3 % bei DC-Verlusten wünschen, dann wählen Sie R << 0,3 % der R-Last oder, wie ich es nenne, "Impedanzverhältnismethode". für Ladeüberlegungen also hier R < 0,003 * 1e5 = 300Ω. Diese Wahl von R ist nicht kritisch, aber Sie müssen darauf achten, den Filter nicht zu laden, sodass Sie zur schnellen Berechnung von DC-Verlust und AC -Unterdrückung nach Impedanzverhältnissen wählen können .

    • Wenn Sie möchten, dass das Rauschen bei 10-kHz-PWM < 1 % der Quelle beträgt, wählen Sie die Impedanz von Zc (f) als < 1 % von R für den Serien-RC-LPF.
    • Wenn Sie aus Interferenzgründen eine Welligkeit von> 80 dB auf allen Oberwellen über 0,5 MHz wünschen, z. B. bei AM-Radio- oder FCC / CE-EMV-Tests, sehen Sie sich erneut das Impedanzverhältnis der Kappe einschließlich ESR im Verhältnis zu R an. Schätzen Sie einen Wert von C und wählen Sie dann etwas größer mit Spielraum für Temp. Toleranz und überlegen Sie, wie viel Marge Sie benötigen. Sie wissen, dass Filter 1. Ordnung eine Flankensteilheit von 20 dB/Dekade haben und können dann entscheiden, ob Filter 1. Ordnung ausreichend sind. Kaskadierende RC-Filter müssen die Belastungseffekte auf jeder Stufe berücksichtigen. LC-Filter kosten mehr und es kann ein aktiver Filter erforderlich sein.

Angenommen, Sie kennen die Impedanzkriterien eines Kondensatorimpedanzverhältnisses, ist eine einfache Lösung. Um andernfalls eine Impedanz in der Mitte von Quelle und Last zu finden, betrachten Sie eine Methode Rf = √(Rs*Rl), wobei Rf der Filter-RC-Wert für Quelle, Rs und Last Rl als eine Methode für den mittleren Bereich ist.

Das Schöne am Design ist, dass es je nach Kriterien oft mehrere "beste" Antworten für den RC-Wert gibt. :)

Bestimmen Sie die beste RC-Zeitkonstante in einem PWM-Digital-Analog-Tiefpassfilter?

Die beste Antwort hängt von verschiedenen Fragen ab;

? Welches Spektrum haben die Originaldaten? BW=? ? Wie viel Ablehnung des PWM-Trägers ist akzeptabel? Atten= 40dB? 60? 10??

Das Entwerfen eines Filters allein auf der Grundlage der Zeitkonstante vernachlässigt die größere Bedeutung des Verständnisses der Erhaltung von Daten. Es ist am besten, das Originalsignal zu definieren, damit man ein einfaches "optimal angepasstes Filter" entwerfen kann. Wir müssen uns um die Erhaltung des Originalsignals und die Unterdrückung des Trägersignals (PWM f) kümmern.

Sie können einen LPF N-ter Ordnung wählen, um den Filter an das Originalsignal anzupassen. Einfache 1-Chip-Schaltkondensatorfilter oder aktive Filter liefern die besten Ergebnisse. Der LPF-Typ hängt von den Kriterien der Übereinstimmung mit dem Originalsignal ab.

Pick Best = maximal flache Frequenz. Antwort oder mf-Gruppenverzögerung oder steilste Röcke oder ein Nyquist-Filter auf 1/2 PWM f.

Dann die nächstbeste Methode:

Definieren Sie die Menge an Jitter in der Spannung von unvollkommenen RC-Filtern.

Wenn Sie einen PLL-VCXO für HF entwerfen und PWM zur Steuerung der Schleife verwenden, interessieren Sie sich möglicherweise für störende Seitenbänder aus der PWM, sodass Sie einen LPF mit einer Kerbe bei PWM in Betracht ziehen müssen . Dies ist einfach, sobald Sie die Antwort erhalten haben;

Wie viel Ablehnung des PWM-Trägers ist akzeptabel