Forum: Mikrocontroller und Digitale Elektronik Wie hoch muss die PWM Auflösung für Spannungsregelung sein


von DPC (Gast)


Lesenswert?

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

von pete (Gast)


Lesenswert?

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

von Alex S. (thor368)


Lesenswert?

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

von Stampede (Gast)


Lesenswert?

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.

von Michael B. (laberkopp)


Lesenswert?

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ö.

von Stampede (Gast)


Lesenswert?

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.

von Michael B. (laberkopp)


Lesenswert?

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.

von Stampede (Gast)


Lesenswert?

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

von Michael B. (laberkopp)


Lesenswert?

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.

: Bearbeitet durch User
von Stampede (Gast)


Lesenswert?

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

von Stampede (Gast)


Lesenswert?

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"

von Pandur S. (jetztnicht)


Lesenswert?

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.

: Bearbeitet durch User
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.