RC-Tiefpassfilter dimensionieren
Hi Leute,
ich benutze einen Arduino Uno und brauche für ein Gerät eine Gleichspannung von 0-5 V.
Praxiswerte meines Arduino : 0-4,385V, 35,08mA
Da der Arduino nur PWM-Ausgänge zum Schalten von 0-4,385V hat, möchte ich
das PWM-Signal durch einen Tiefpassfilter (RC-Glied) in eine Gleichspannung mit Wechselanteil, deren Mittelwert dem des PWM-Signals entspricht und dessen Wechselanteil von der Beschaltung des Filters abhängig ist, glätten.
Ich benutze willkürlich zum Testen einen Widerstand mit 10k Ohm und einen EKO mit 100nF.
Wenn ich nun mein Tastverhältnis auf 100% (255 Duty Cycle) schalte, dann kommt auch genau die gleiche Spannung heraus, wie vor dem Filter(Ua=4,385V).
Also würdeich sagen, dass mein Tiefpassfilter funktioniert und glättet.
Leider habe ich kein Oszilloskop zur Hand und kann dadurch mein Ausgangssignal nicht prüfen.
Deswegen versuche ich es auf die Rechnenweise.
Ich habe die Grenzfrequenz ausgerechnet fg=1/(2*Pi*R*C)
fg=1/(2*pi*10kOhm*100nF)
fg=159,1549 Hz
Die Ausgangspannung nach dem Tiefpass berechnet sich wie folgt:
Ua=Ue=1/(wurzel(1+(2*Pi*f*R*C)²)
Jetzt ist ja nur die Frage, was ich für eine Frequenz in der Formel verwenden soll.
Laut den Arduino- Datenblatt hat mein PWM 470Hz an den besagten Pin, den ich verwende.
Laut Wikipedia ist aber bei Gleichspannung die Frequenz =0 und deswegen ist Ue=Ua.
Ua=4,385V/(wurzel(1+(2*Pi*10kOhm*100nF)²)
Ua(f=0Hz) = 4,385V-> so würde schonmal der richtige Wert herauskommen.
Ua(f=470Hz)= 0,320V-> der Wert für f=470Hz in der Ausgangsspannungsformel des TP kann nicht stimmen.
Nach der Glättung bleibt ja auf der Gleichspannung immer noch eine Restwelligkeit (Ripple).
Beim idealen DA-Wandler beträgt die Ripplespannung= 20mV.
Deswegen wäre es interessant für mich zu wissen wieviel Ripple durch meinen DA-Wandler entstehen.
Berechnung Ripple:
Tpwm=1/f
=1/470Hz=2,12765ms
URipple= (Ue*Tpwm/(4*RC))
= (4,385V*2,127ms/(4*10kOhm*100nF)
=2,331V <--- das kann ja auch nicht stimmen.
Meine Frage ist, was habe ich falsch gemacht und wie kann ich meinen Tiefpassfilter richtig dimensionieren bzw. berechen,so dass ich am Ende eine Gleichspannung von 0-4,385V habe.
Ich hoffe mir kann jemand helfen.
Gruß Lord Integer
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
Die Ausgangsspannung hinter dem Tiefpassfilter ist im Mittel Ua=Ue*Tastverhältnis (der ripple ist hier noch nicht enthalten). Tastverhältnis in der Formel 0 (0%) ... 1 (100%).
Je weiter PWM-Frequenz und Grenzfrequenz des Filters auseinander liegen, desto niedriger wird der ripple, allerdings braucht die Ausgangsspannung hinter dem Filter dann auch länger, um sich auf ein geändertes Tastverhältnis anzupassen. Bei etwa 500 Hz PWM-Frequenz würde ich die Grenzfrequenz des Filters eher im Bereich 50 Hz wählen.
Das Ganze lässt sich natürlich auch mit SPICE simulieren (geeignete Programme: z.B. LTspice oder TINA-TI).
Deine Schaltung in der Simulation:
Anhang 31137
Da ist also wirklich noch sehr viel ripple drauf. Größenordnung 2,5 Volt ! Ist auch zu erwarten, da PWM-Frequenz und Grenzfrequenz des Filters nicht besonders weit auseinander liegen.
Mit 10k / 1uF werden es in der Simulation etwa 250mV.
Mit 10k / 10uF werden es etwa 25mV.
Dieses Verhalten ist auch zu erwarten, ein Filter 1.Ordnung fällt mit 20dB (=Faktor 10) pro Dekade im Frequenzbereich ab.
Anhang 31138
Warum wird der Arduino eigentlich mit 4,385V betrieben? :-k Üblich sind 5V oder 3,3V.
Woher kommt die Info
Zitat:
Beim idealen DA-Wandler beträgt die Ripplespannung= 20mV.
?
Grüße,
Bernhard
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
ich habe noch Probleme mit der Dimensionierung des Tiefpasses.
Habe meine Schaltung schon mit dem Op getestet und es klappt auch in der Praxis.
Aber ich möchte es auch verstehen , das ich es dokumentieren möchte.
Die Schaltung habe ich nun auf eine Verstärkung von 2 geändert , da ich doch eine 0-10V Gleichspannung brauche.
Erstes Problem:
R=10k Ohm, C= 10uF, Pwm Taktfrequenz 490Hz, Eingangsspannung 5V
Wenn ich nun den Ripple berechne dann komme ich auf 25, 5 mV, wenn ich mit der Software Tina das digitale Oscilloskop betrachte, dann habe ich beim Wechselspannungsanteil auch wie BMS 25 mV Ripplespannung.
(Habe aber mit halber Betriebsspannung gerechnet, da da der größe Ripple sein soll).
Anhang 31157
Meine Grenzfrequenz lautet 3,24mHZ bei 490 Hz.(liegt auch schön weit auseinander, so ist Restwelligkeit gut reduziert)
So nun ist der Ripple ja schön klein und eine schöne Gleichspannung kommt am Ende heraus
Jedoch wenn ich mit dem digitalen Oscilloskop das Bodediagramm betrachte um den Frequenzgang zu betrachten bekomme ich ein komisches Bild.
Da ist aufeinmal meine Grenzfrequenz bei 1100 Hz.
Wie kann das denn sein ?
Anhang 31156
Der ideale Tiefpass 1.Ordnung sieht anders aus. (siehe Link:https://de.wikipedia.org/wiki/Tiefpass)
Was mache ich nun falsch?
Was muss ich beachten?
Wie würde man den Tiefpassfilter mit dem nichtinvertierenden Op mit der Verstärkung von 2 am besten dimensionieren?
Gruß Lord Integer
- - - Aktualisiert - - -
Achja und normalerweise soll ja 20dB (=Faktor 10) pro Dekade im Frequenzbereich abfallen.
Bei mir fällt es aber -50 dB ab (siehe angehängtes Bild).
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Bernhard,
hier meine Schaltung.
Anhang 31175
Gruß Lord Integer
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
der erwartete Bodeplot sieht so aus:
In der Simulation ist also ein Fehler...
Grüße, Bernhard
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich hänge an den Tiefpassfilter noch einen invertierenden Operationsverstärker ran, der hat eine Verstärkung von 2 hat.
Somit erhalte ich eine Ausgangsspannung von 0-10V.
Ich verwende einen KIA 358P, der über eine externe Spannungsquelle mit 15V versorgt wird.
http://pdf.datasheetcatalog.com/data...58P_S_F_FK.pdf
Es hat ein Dip-8 Gehäuse und besteht aus 2 invertiereden Ops.
Ich steuere eine Pumpe über ein Spannungspotentiometer und eine LED mit 0-10V.
Also benutze ich beide Operationsverstärker im Dip-8 Gehäuse und glätte vorher von zwei PWM Ausgängen des Arduino Uno(Pin X für die Pumpe, Pin Y für die LED) deren PWM-Signale 0-5V durch einen Tiefpassfilter (RC-Glied) in eine analoge Spannung.
Mit dem Duty Cycle, also den Tastgrad im Programm mit 0-255=0-10V regle ich dann die beiden Bauteile.
Das ist meine OP- Schaltung.
Anhang 31182
Für die beiden Widerstände der OP-Schaltung verwende ich 10k Ohm,um auf einen Verstärkungsfaktor von 2 zu kommen.V=1+R1/R2`=1+10kOhm/10kOhm=2
Momentan habe ich in der Praxis für den Tiefpass einen Widerstand von10k und den Kondensator von 100nF gewählt(hatte nicht soviel Auswahl^^) und es funktioniert.
Jedoch möchte ich interessehalber meine Schaltung perfekt einstellen bzw.dimensionieren und alles verstehen warum und weshalb.
Gruß Lord Integer
- - - Aktualisiert - - -
Ich korrigiere: Es handelt sich natürlich um zwei nichtinvertierende Operationsverstärker