Hallo,
ich soll einen digitalen programmierbare "Interleved Boost" DC/DC
Boostwandler bauen (Vin ca. 12Vdc, Vout 24-36Vdc @ 100W).
Von der "digitalen Seite" her ist mir frei gestellt ob ich einen kleinen
FPGA oder einen DSPIC nehme (ich würde momentan einen DSPIC bevorzuge).
Die Schaltfrequenz soll mindestens 250kHz sein - das geht schon einmal
mit einem DSpic (einem PIC33EP64GP504 @ 120MHz).
Jetzt ist aber die Frage, wie hoch die PWM Auflösung sein muss um
Spannungen zu regeln. Reichen 6Bit oder müssten es eher 10/12 oder gar
16 Bit sein?
Ich habe davon momentan leider noch keine Ahnung :-(
Hat vielleicht jemand tiefere Kenntnis der DSPICs?
Ich habe zwar den PTPER berechnen können, aber wie hoch die max.
Auflösung sein kann habe ich nicht heraus bekommen.
Danke für die Hilfe
Die Dinge stehen zwangsläufig in Zusammenhang, da von der Clockrate
(hier 120 MHz) abgeleitet.
Je höher die PWM Frequenz, desto weniger Schritte sind möglich.
Siehe
http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F70323B.pdf
Kapitel 43.6 Table 43-1
Wie viele bits du für deinen DAC benötigst (dein Timer ist ja nichts
anderes) hängt von der geforderten Bandbreite hab. Die erreichbare
Auflösung ist nicht festgelegt durch die Anzahl Bits die dein timer hat.
Durch dithern und filtern kannst du beliebige Auflösung erreichen. Durch
filtern reduzierst du allerdings im Umkehrschluss dann die Bandbreite.
Ein Extrembeispiel ist ein Delta Sigma Wandler. Hier wird nur ein
einziges Bit im Frontend verwendet um einen bit stream zu erzeugen.
Dieser wird gefiltert um auf die gewünschte Auflösung zu kommen. Die
Bandbreite des Wandlers wird durch die Eckfrequenzen des Filters
festgelegt. Diese wiederum wird durch die maximale Schaltfrequenz des
Frontend vorgegeben.
Thor
Die PWM Auflösung muss größer sein als die des ADC der die Spannung
misst.
DPC schrieb:> Ich habe zwar den PTPER berechnen können, aber wie hoch die max.> Auflösung sein kann habe ich nicht heraus bekommen.
? Wenn PTER zB 3000 ist, hast du auch 3000 mögliche Schritte und das ist
dann deine Auflösung. Das wären dann ca. 11,5 Bit.
DPC schrieb:> Jetzt ist aber die Frage, wie hoch die PWM Auflösung sein muss um> Spannungen zu regeln
Eigentlich egal.
Geringere PWM Auflösung kann man durch einen grösseren Ausgangselko
abpuffern, dann regelt der Regler eben langsamer nach, und da es dazu
keine Vorgabe gibt, ist man dort frei.
Wenn man nur 8 bit PWM hat und 10 bit haben wollte, dann macht man eben
4 Takte und verteilt die 2 bits darauf (dithering). Im Prinzip passiert
das auch bei 24 bit PWM, das ist also kein plötzlicher
Paradigmenwechsel.
Stampede schrieb:> Die PWM Auflösung muss größer sein als die des ADC der die Spannung> misst.
Nö.
Michael B. schrieb:> Stampede schrieb:>> Die PWM Auflösung muss größer sein als die des ADC der die Spannung>> misst.>> Nö.
Doch. Denn sonst bekommst du Oszillationen am Ausgang. Du willst ja auf
eine Quantisierungsstufe deines ADC regeln. Wenn die PWM nicht genügend
Auflösung bietet, um diese auszugeben, wird die PWM immer um die
geforderten Wert hin und her springen. Du siehst also die minimale
Änderung deines Tastgrades (Auflösung der PWM) multipliziert mit der
Übertragungsfuntkion der Regelstreck am Ausgang. Das willst du
normalerweise nicht.
Stampede schrieb:>>> Die PWM Auflösung muss größer sein als die des ADC der die Spannung>>> misst.>>>> Nö.>> Doch.
Nö.
Eher andersrum: Wenn der ADC gar keine Änderung sieht, ist es sinnlos,
die PWM feiner auflösend einstellen zu wollen.
Aber wie schon geschrieben, gibt es zwischen PWM (Einschaltzeit) und
Ausgangsspannung (ADC) einen Filter, das ist der Ausgangselko.
Oszillationen um zumindest 1 ADC Digit bekommst du sowieso immer, denn
was der ADC nicht als Fehlerwert sieht, kann nicht ausgeregelt werden.
Michael B. schrieb:> Oszillationen um zumindest 1 ADC Digit bekommst du sowieso immer, denn> was der ADC nicht als Fehlerwert sieht, kann nicht ausgeregelt werden.
Ja, aber nur wenn die PWM besser auflöst als der ADC. Sonst ist es
umgekehrt, und das sage ich ja.
Michael B. schrieb:> Aber wie schon geschrieben, gibt es zwischen PWM (Einschaltzeit) und> Ausgangsspannung (ADC) einen Filter, das ist der Ausgangselko.
Klar, ich schrieb ja auch "Übertragungsfunktion der Regelstrecke" oben.
Nur viel Ausgangskapazität ist auch nicht immer sinnvoll möglich zu
teuer.
Michael B. schrieb:> Eher andersrum: Wenn der ADC gar keine Änderung sieht, ist es sinnlos,> die PWM feiner auflösend einstellen zu wollen.
Doch. Es bringt ja nichts, einen 12BIT Adc zu nehmen und die PWM nur mit
8Bit zu stellen. Klar, die Sprünge kann man mit dem Ausgangselko
(Übertragungsfunktion der Regelstrecke) irgendwie wegbügeln, ist von der
Auslegung des Systems und dessen Dynamik ist das aber kacke.
Lies doch mal die Appnote durch, Seite 13, Abschnitt D.:
http://www.ti.com/lit/ml/slup232/slup232.pdf
Stampede schrieb:>> Eher andersrum: Wenn der ADC gar keine Änderung sieht, ist es sinnlos,>> die PWM feiner auflösend einstellen zu wollen.>> Doch. Es bringt ja nichts, einen 12BIT Adc zu nehmen und die PWM nur mit> 8Bit zu stellen.
Nun, die Seiten 6-8..6-10 behandeln ausschliesslich den steady state,
also Eingangsspannung und Last konstant, PWM Duty Cycle konstant,
Betrachtung der asymptotischen Endwerte.
Das ist aber uninteressant, weil es ja eine Regelung gibt, und da findet
sich:
"This means that the converter's output voltage can change as much as
14.6mV before it will become evident at the output of the analogto-
digital converter and the duty cycle could be modified."
Dazu spielt die reale PWM Auflösung keine Rolle, denn nach verändertem
PWM braucht es einige Zeit (Ausgangselko) bis sich der
Ausgangsspannungswert wieder dem asymptotischen Endewert annähert. Da
kann eine höher auflösende ADC schon vorher wieder den PWM Duty Cycle
ändern.
Einfachstes Beispiel: Man könnte einen analogen Schaltregler, der die
Ausgangsspannung nur mit einem Komparator vergleicht, als 1 bit A/D
verstehen, und die PWM auch als 1 bit weil der Schalter nur ein oder aus
sein kann.
Beide Betrachtungsweisen ignorieren aber die Zeit.
Man könnte den analogen Schaltregler auch über das Poti zur Einstellung
dieser Komparatorspannung als mit unendlich vielen bits auflösend
auffassen, ebenso wie man die analoge PWM als zeitlich mit unendlich
vielen bits auflösend auffassen kann.
Die Betrachtung ignoriert aber auch die Zeit, denn um sich auf unendlich
viele bits einzupendeln braucht die Regelschleife unendlich viel Zeit.
Was aber geht: Ein typischer Fernseher-Flyback transportiert pro Impuls
einfach eine diskrete Menge an Energie in den Ausgang. Ist die
Ausgangsspannung (Komparator) erreicht, lässt man einfach Impulse weg
bis sie wieder abgesunken ist. Hier wäre die PWM immer mit fester
Breite, und die ADC Auflösung 1 bit. Und es funktioniert. Man bekommt
eine präzise (weit besser als 1 bit, sondern Komparatorauflösung) genaue
Ausgangsspannung wenn die Ausgangskapazität gross genug ist um die
Energieimpulse zu mitteln.
Das ist fast die Regelung des MC34063, zumindest wenn er bei jedem
Impuls in die Strombegrenzung geht. Zugegeben, der MC34063 gilt also
nicht besonders gut regelnd, reicht aber für 90% aller
Kleinspannungsregelungen.
Natürlich kann man nun die Regelschleife verbessern, wenn man mehr
Auskunft über die Ausgangsspannung hat und die Energiemenge pro Impuls
regeln kann. Aber NOTWENDIG ist das nicht um einen step down zu
bekommen.
Stampede schrieb:> Lies doch mal die Appnote durch, Seite 13, Abschnitt D.:> http://www.ti.com/lit/ml/slup232/slup232.pdf
Sagt auch aus, daß die ADC-Auflösung wichtiger ist als die PWM
Auflösung. Im Diagramm die untere Kurve ist NICHT de PWM, sondern der
Prozentwert der viel schnelleren PWM über die Dank Ausgangselko
langsamere Schwankung der Ausgansspannung (obere Kurve). JEDE digitale
Regelung muss so regeln, daß sie Schwankungen im OK Feld nicht sieht und
erst bei high und low nachregeln kann. Einzig die zeitliche Länge der
Schwankung hängt von PWM Auflösung und Ausgangselko ab.
Hallo Michael,
ich freue mich dass es hier mal eine sachliche Diskussion ohne das
übliche Geflame gibt. :)
Michael B. schrieb:> Was aber geht: Ein typischer Fernseher-Flyback transportiert pro Impuls> einfach eine diskrete Menge an Energie in den Ausgang. Ist die> Ausgangsspannung (Komparator) erreicht, lässt man einfach Impulse weg> bis sie wieder abgesunken ist. Hier wäre die PWM immer mit fester> Breite, und die ADC Auflösung 1 bit. Und es funktioniert. Man bekommt> eine präzise (weit besser als 1 bit, sondern Komparatorauflösung) genaue> Ausgangsspannung wenn die Ausgangskapazität gross genug ist um die> Energieimpulse zu mitteln.
Das ist aber ein Vergleich von Äpfeln mit Birnen, denn hier ist die
Frequenz veränderlich und nicht fix. Konstante Energiemenge entspricht
ja einer fixen ON-Time bei variabler Frequenz. Und da die Frequenz (und
damit virtuell der Tastgrad bei einer Frequenz) nur durch die
Genauigkeit des Komparators gegeben ist, hast du defacto eine
gigantische PWM Auflösung und somit eine sehr genaue Regelung. Das ist
ja wiederum auch die analoge Welt und nicht die digitale
Regelungstechnik.
Michael B. schrieb:> "This means that the converter's output voltage can change as much as> 14.6mV before it will become evident at the output of the analogto-> digital converter and the duty cycle could be modified."
Da sind wir uns einig.
Michael B. schrieb:> Sagt auch aus, daß die ADC-Auflösung wichtiger ist als die PWM> Auflösung. Im Diagramm die untere Kurve ist NICHT de PWM, sondern der> Prozentwert der viel schnelleren PWM über die Dank Ausgangselko> langsamere Schwankung der Ausgansspannung (obere Kurve). JEDE digitale> Regelung muss so regeln, daß sie Schwankungen im OK Feld nicht sieht und> erst bei high und low nachregeln kann. Einzig die zeitliche Länge der> Schwankung hängt von PWM Auflösung und Ausgangselko ab.
Nun gut, ohne ADC Auflösung ist klar dass das alles nicht richtig
funktioniert, da denke ich sind wir uns einig :)
Und die Bedeutung des Diagramm ist mir einleuchtend, es zeigt die
Auswirkung eines Steps der PWM auf die Ausgangsspannung. Und das ist
durch die Übertragungsfuntkion der Regelstrecke, inklusive der von dir
erwähnten Kondensatoren zum Glätten, bestimmt. Das kann ausreichend
sein, keine Frage. Aber sinnvoll ist es nicht.
Auf was ich hinaus will ist, dass es nichts bringt, die Frequenz
hochzusetzen, aber dann nur noch geringe Auflösung der PWM zu haben.
Höhere Frequenz erlaubt kleinere Bauteile (L und C), und höhere Dynamik.
Aber wenn ich mir diese wieder kaputt mache weil ich die
Unzulänglichkeiten der PWM mit einem riesigen C am Ausgang wieder
wettmache ist nichts gewonnen (außer höhere frequenzabhängige Verluste).
Daher sollte man gucken, dass die Auflösung des ADC und die der PWM in
einem sinnvollen Verhältnis stehen. Und da wird der Themenersteller mit
6 Bit defintiv nicht weit kommen.
Michael B. schrieb:> Natürlich kann man nun die Regelschleife verbessern, wenn man mehr> Auskunft über die Ausgangsspannung hat und die Energiemenge pro Impuls> regeln kann. Aber NOTWENDIG ist das nicht um einen step down zu> bekommen.
Zwingend notwendig vielleicht nicht, aber man macht sich das Leben ohne
wildes Filtern einfacher.
Grüße
Stampede
Stampede schrieb:> Die PWM Auflösung muss größer sein als die des ADC der die Spannung> misst.
Da hätte ich im Nachhinein lieber "Die PWM Auflösung sollte größer
sein als die des ADC der die Spannung misst"
Nicht zwingend. Man rechnet mit mehr bits, als man effektiv hat. Ich
rechne zB immer mit 32 bit. Skalierung irgendwie. Der ADC geht immer
gerade rein, dh ich rechne in ADC Koordinaten. Am Schluss skaliert man
irgendwie mit rightshift runter in einen sinnvollen Bereich, der auch
ausgebbar ist. Dh auch wenn rechts ein paar bits beim Stellglied
abgeschnitten werden, der Integrator laeuft weiter, und wenn das
naechste ausgebbare bit angeschnitten wird, wird es eben ausgegeben. Das
Stellglied springt dann eben bei Steady State mehr oder weniger
periodisch um ein bit rum, das ist ok so. Dessen duty cycle zeigt dann
an wie dann man zwischen den bits steht.
Man kann durchaus mit einem 8Bit Stellglied 16bit genau sein.