Forum: Analoge Elektronik und Schaltungstechnik PWM Spannungswandler mittels Operationsverstärker - Frage zu einer Erklärung in einen Link


von Tünnes (Gast)


Lesenswert?

Hallo

Als erste "Warnung": Wer keine Lust hat einen längeren Text auf der 
verlinkten Seite zu lesen, möge bitte direkt meine Frage ignorieren und 
zu irgendeinen anderen Thread wechseln - nicht das noch Beschwerden 
kommen man würde in seiner Ruhe gestört werden...


Es geht hier um : 
http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/arduino-lm358-op-amp-pwm-to-voltage-converter/

und dabei eigentlich nur um den ersten Teil bis zum Punkt "Arduino LM358 
Op Amp PWM to Voltage Out Tutorial"

Dort wird "vorgerechnet" wie sich ein Tiefpassfilter (für einen PWM - 
Spannungswandler mit einen OP) auflädt bzw. entlädt.
Leider aber nur über  Onlinetools - na ja mit welche Formel diese 
letztendlich arbeiten lässt sich aber herausfinden bzw. ich kenne diese 
schon und kann sie auch nachvollziehen.

Aber trotzdem: Es wird sich zwar sehr gut verständlich aber letztendlich 
doch umständlich "irgendwie durchgehangelt" und zu einen "richtigen" 
Endergebnis kommt man eigentlich auch nicht (das wäre zwar absolut nicht 
Praxis relevanten da reale Toleranzen und "Schmutzeffekte" sowieso schon 
viel früher einen Strich durch eine "perfekte Rechnung machen würden, 
aber... man ist ja neugierig).

Ich "weiß" das die Berechnung auch ohne durch hangeln möglich ist und 
man wohl (das ist dann aber nur eine Vermutung weil ja ein Kondensator 
theoretisch und von der physik her nie 100 % aufgeladen sein kann) zu 
einen mathematisch "vollkommenen" Endergebnis kommen kann:

Also was muß man wissen, bzw. wie wird die Rechenmethode genannt mit der 
man sich eben nicht "mühsam" (aber dafür auch leicht und verständlich 
nachvollziehbar) durchhangeln muss, sondern wo das mit einen (?) Schritt 
erledigt wird und  auch mathematisch "vollkommenen" Ergebnis kommt?

Die Krönung wäre es wenn dann noch erklärt werden würde wie man (ich) 
die Rechenmethode dann auch anwende - wobei ich die Befürchtung habe das 
es dann bei mir an Grundlagen mangeln wird...

Tünnes

von MaWin (Gast)


Lesenswert?

Die Exponengialfunktion (Schulmathemstik 9. Klasse) berechnet die 
e-Kurve nach der sich der Kondensator umlädt. Man braucht noch die 
Angabe, wie genau er den Endwert erreichen soll, denn zu 100% geht ja 
nicht. Meist nutzt man 1 bit, bei 8 Bit PWM also 1/256 (0.3%) der 
Gesamtspannung, bei 10 bit 0.1%.

http://www.lothar-miller.de/s9y/archives/11-RC-Glied-fuer-PWM.html#extended
http://sim.okawa-denshi.jp/en/Fkeisan.htm (RC Filter Rechner)
http://ltwiki.org/images/8/82/PWM_Filters.pdf (Filtering PWM Signals, 
"You CANNOT go all the way to zero with a single supply active filter!")
Microchip AN538 "Using PWM to Generate Analog Output"
1
uC --R--+-- Analog (gering belastbar) --|+\      besser belastbar
2
        |                               |  >-+-  geht aber nicht ganz auf 0V 
3
        C                             +-|-/  |   wenn OpAmp keine negative Versorgung hat
4
        |                             |      |   mindestens ein Widerstand nach Masse:
5
      Masse                           +------+----pulldown--- GND

von Olaf (Gast)


Lesenswert?

> Dort wird "vorgerechnet" wie sich ein Tiefpassfilter (für einen PWM -
> Spannungswandler mit einen OP) auflädt bzw. entlädt.

Vorgerechnet? Das ist so eine typische Seite fuer Arduinoanbeter die 
keine Grundlagen gelernt haben. Ich seh da eigentlich gar keinen 
richtigen Filter. Und LM358..oh backe...

> Die Krönung wäre es wenn dann noch erklärt werden würde wie man (ich)
> die Rechenmethode dann auch anwende - wobei ich die Befürchtung habe das

Du ueberlegst du zuerst mal wieviel Aufloesung du brauchst oder haben 
willst. Nehmen wir als Beispiel mal 13Bit. (um die abschreiber zu 
aergern :-) )

Dann kuckst du wie mit welcher Taktfrequenz du die PWM in deinem 
Prozessor laufe lassen kannst. Nehmen wir mal an das waeren 55Mhz.

Dann hast du eine PWM-Frequenz von 55Mhz/2^13=6.7khz. Das ist die 
Stoerung die du auf deiner Gleichspannung hast.

Dan ueberlegst du dir wie schnell du die Gleichspannung aendern musst. 
Nehmen wir mal an du willst 10x pro Sekunde einen neuen Wert ausgeben. 
Also 10Hz. Davon musst du noch ein bisschen abstand halten weil Filter 
ein gewisses Uebergangsverhalten haben. Sagen wir mal du willst einen 
Tiefpass mit fg= 100Hz haben. Jetzt musst du zwischen 100Hz und 6.7khz 
eine Daempfung von 13x6db = 78dB schaffen.
Also berechnest du dir dafuer einen passenden Filter. Grundlagen 
vermittelt dir Tietze und Schenk, Praxis geht gut mit Filterpro von TI. 
Filterpro ist deshalb geil weil man einfach alle C in E6 und alle R in 
E12 berechnen kann. Dadurch entfernt man sich etwas von der gewuenschten 
Filtercharakteristic (z.B Butterworth). Als letztes simulierst du 
nochmal alles in LT-Spice.

Ich hab damit schon problemlos 16Bit Systemdynamik erreicht. Ist billig, 
einfach und langsam.

Oh..und noch ein Trick. Schick den PWM-Ausgang des Mikrocontrollers 
nicht direkt auf dein Lade-C sondern durch ein Gatter das du sehr sauber 
versorgst. Vielleicht sogar aus einer Referenz.

Olaf

von Olaf (Gast)


Lesenswert?

> "You CANNOT go all the way to zero with a single supply active filter!")

Hehe..das stimmt natuerlich auch! Also entweder den Nullpunkt anheben 
oder -0.5V fuer den OP herbeizaubern.

Olaf

von HildeK (Gast)


Lesenswert?

Tünnes schrieb:
> Ich "weiß" das die Berechnung auch ohne durch hangeln möglich ist und
> man wohl (das ist dann aber nur eine Vermutung weil ja ein Kondensator
> theoretisch und von der physik her nie 100 % aufgeladen sein kann) zu
> einen mathematisch "vollkommenen" Endergebnis kommen kann:
Er wird hier auch nur dann komplett aufgeladen oder komplett entladen, 
wenn die PWM 100% oder 0% hat. Auch wenn die Physik sagt, dass es 
theoretisch erst  nach unendlicher Zeit möglich wäre, diese Zustände zu 
erreichen, so reicht einem in der Praxis mit 99,x% Genauigkeit die 
Abschätzung mit 5*tau. Tau = R*C.

> Also was muß man wissen, bzw. wie wird die Rechenmethode genannt mit der
> man sich eben nicht "mühsam" (aber dafür auch leicht und verständlich
> nachvollziehbar) durchhangeln muss, sondern wo das mit einen (?) Schritt
> erledigt wird und  auch mathematisch "vollkommenen" Ergebnis kommt?
Der Tiefpass soll ja den Mittelwert des PWM-Signals am Ausgang haben. 
Damit weiß man schon mal, was das Ziel ist: bei 50% Tastverhältnis 
erwartet man 5V/2.
Interessant ist eigentlich nur, wie viel Rest-Ripple noch auf dem 
Ausgang ist.

Das kann man jetzt dadurch bestimmen, dass man den Spannungsteiler aus R 
und C mit komplexer Rechnung bestimmt, den Betrag bildet und dann bei 
der PWM-Frequenz schaut, wie viel Dämpfung da vorhanden ist. Am Eingang 
sind es 5V Hub, am Ausgang dann eben x dB weniger.

Man kann auch von dem oben abgeschätzten Wert (50% Tastverhältnis ⇒ 
2.5V) ausgehen und dann mit der e-Funktion berechnen, um wie viel sich 
der Kondensator lädt bzw. entlädt, wenn der PWM-Eingang für 1ms auf 5V 
liegt und dann wieder für 1ms auf 0V. Siehe 
https://de.wikipedia.org/wiki/RC-Glied in den Abschnitten Ladevorgang 
und Entladevorgang.

Man kann es sich auch einfach machen und LTSpice zur Hilfe nehmen.
Da kann man die Dämpfung des RC-Glieds bei deiner PWM-Frequenz berechnen 
lassen oder direkt im Zeitbereich den Restripple anschauen.

Letztere wäre die Methode, die ich bevorzuge und die mir reicht.
Gut, ich habe mal vor langer Zeit gelernt, wie man das rechnet und damit 
ist das Verständnis für den Vorgang da, auch wenn ich heute tatsächlich 
die komplexe Betragsbildung nicht mehr so aus dem Ärmel schüttle - 
schließlich habe ich das in 40 Jahren kaum benötigt.
Mit deinen Zahlen ergibt das rund 50mV Ripple bei 50% Tastverhältnis.

von Wolfgang (Gast)


Lesenswert?

Olaf schrieb:
> Ich seh da eigentlich gar keinen richtigen Filter. ...
Dann mach mal die Augen auf und achte auf den passiven TP 1. Ordnung.

p.s.
Was ist in deinen Augen überhaupt ein "richtiger Filter"?

von Olaf (Gast)


Lesenswert?

> Was ist in deinen Augen überhaupt ein "richtiger Filter"?

Irgendwas hoeherer Ordnung. Liegt wohl daran das ich Messtechnik mache 
und da praktisch 16Bit die Grundanforderung ist.

Olaf

von Wolfgang (Gast)


Lesenswert?

Olaf schrieb:
> Irgendwas hoeherer Ordnung. Liegt wohl daran das ich Messtechnik mache
> und da praktisch 16Bit die Grundanforderung ist.

Die Ordnung eines Filters wird bestimmt nicht in Bit gemessen, hat also 
irgendwie erstmal nichts damit zu tun. ;-)
Und welche Filterordnung du brauchst, um bei geforderter Restwelligkeit 
auf die passende Amplitudendämpfung zu kommen, hängt vom Verhältnis von 
PWM-Frequenz zu Filtergrenzfrequenz ab - auch bei 16Bit Irgendwas.

von Olaf (Gast)


Lesenswert?

> Die Ordnung eines Filters wird bestimmt nicht in Bit gemessen, hat also
> irgendwie erstmal nichts damit zu tun. ;-)

Ja okay. Aber man will ja nicht zu weit weg sein von der Grenzfrequenz. 
PWM ist ja so schon lahm genug wenn du da Aufloesung rausquetschen 
willst.

Es gibt uebrigens noch eine coole Trickschaltung welcher sich Horrowitz 
und Hill in ihren X-chapters gewidmet haben. (s.383)
Geht auf einen EDN Artikel zurueck. Mompls...ist doch vielleicht im 
Netz...

https://www.edn.com/cancel-pwm-dac-ripple-with-analog-subtraction/


Olaf

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.